plugeth/ethchain/state_test.go

31 lines
793 B
Go
Raw Normal View History

2014-05-25 22:09:38 +00:00
package ethchain
import (
"github.com/ethereum/eth-go/ethdb"
"github.com/ethereum/eth-go/ethutil"
"testing"
)
func TestSnapshot(t *testing.T) {
ethutil.ReadConfig(".ethtest", "/tmp/ethtest", "", "ETH")
2014-05-25 22:09:38 +00:00
db, _ := ethdb.NewMemDatabase()
state := NewState(ethutil.NewTrie(db, ""))
stateObject := NewContract([]byte("aa"), ethutil.Big1, ZeroHash256)
state.UpdateStateObject(stateObject)
stateObject.SetStorage(ethutil.Big("0"), ethutil.NewValue(42))
2014-06-30 18:03:31 +00:00
snapshot := state.Copy()
2014-05-25 22:09:38 +00:00
stateObject = state.GetStateObject([]byte("aa"))
stateObject.SetStorage(ethutil.Big("0"), ethutil.NewValue(43))
2014-06-30 18:03:31 +00:00
state.Set(snapshot)
2014-05-25 22:09:38 +00:00
stateObject = state.GetStateObject([]byte("aa"))
if !stateObject.GetStorage(ethutil.Big("0")).Cmp(ethutil.NewValue(42)) {
t.Error("Expected storage 0 to be 42")
}
}