state_test.go 849 Bytes
Newer Older
obscuren's avatar
obscuren committed
1
package state
2 3

import (
4 5
	"testing"

6 7
	"github.com/ethereum/go-ethereum/ethdb"
	"github.com/ethereum/go-ethereum/ethutil"
Felix Lange's avatar
Felix Lange committed
8
	"github.com/ethereum/go-ethereum/trie"
9 10 11 12 13 14 15 16 17
)

var ZeroHash256 = make([]byte, 32)

func TestSnapshot(t *testing.T) {
	db, _ := ethdb.NewMemDatabase()
	ethutil.ReadConfig(".ethtest", "/tmp/ethtest", "")
	ethutil.Config.Db = db

Felix Lange's avatar
Felix Lange committed
18
	state := New(trie.New(db, ""))
19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36

	stateObject := state.GetOrNewStateObject([]byte("aa"))

	stateObject.SetStorage(ethutil.Big("0"), ethutil.NewValue(42))

	snapshot := state.Copy()

	stateObject = state.GetStateObject([]byte("aa"))
	stateObject.SetStorage(ethutil.Big("0"), ethutil.NewValue(43))

	state.Set(snapshot)

	stateObject = state.GetStateObject([]byte("aa"))
	res := stateObject.GetStorage(ethutil.Big("0"))
	if !res.Cmp(ethutil.NewValue(42)) {
		t.Error("Expected storage 0 to be 42", res)
	}
}