gecko/chains/atomic/blockchain_memory_test.go

35 lines
903 B
Go

// (c) 2019-2020, Ava Labs, Inc. All rights reserved.
// See the file LICENSE for licensing terms.
package atomic
import (
"bytes"
"testing"
"github.com/ava-labs/gecko/database/memdb"
"github.com/ava-labs/gecko/utils/logging"
)
func TestBlockchainSharedMemory(t *testing.T) {
sm := SharedMemory{}
sm.Initialize(logging.NoLog{}, memdb.New())
bsm0 := sm.NewBlockchainSharedMemory(blockchainID0)
bsm1 := sm.NewBlockchainSharedMemory(blockchainID1)
sharedDB0 := bsm0.GetDatabase(blockchainID1)
if err := sharedDB0.Put([]byte{1}, []byte{2}); err != nil {
t.Fatal(err)
}
bsm0.ReleaseDatabase(blockchainID1)
sharedDB1 := bsm1.GetDatabase(blockchainID0)
if value, err := sharedDB1.Get([]byte{1}); err != nil {
t.Fatal(err)
} else if !bytes.Equal(value, []byte{2}) {
t.Fatalf("database.Get Returned: 0x%x ; Expected: 0x%x", value, []byte{2})
}
bsm1.ReleaseDatabase(blockchainID0)
}