aboutsummaryrefslogtreecommitdiffstats
path: root/core/state/managed_state_test.go
diff options
context:
space:
mode:
authorobscuren <geffobscura@gmail.com>2015-03-23 23:59:09 +0800
committerobscuren <geffobscura@gmail.com>2015-03-23 23:59:09 +0800
commit0330077d76b48934ab024a309000f83c78047d8a (patch)
tree2a3ffbcd5bd941b30ed28d0eb5c30553a25324e0 /core/state/managed_state_test.go
parentd7eaa97a297151637af090ecb05bbd6d260d90b8 (diff)
downloaddexon-0330077d76b48934ab024a309000f83c78047d8a.tar
dexon-0330077d76b48934ab024a309000f83c78047d8a.tar.gz
dexon-0330077d76b48934ab024a309000f83c78047d8a.tar.bz2
dexon-0330077d76b48934ab024a309000f83c78047d8a.tar.lz
dexon-0330077d76b48934ab024a309000f83c78047d8a.tar.xz
dexon-0330077d76b48934ab024a309000f83c78047d8a.tar.zst
dexon-0330077d76b48934ab024a309000f83c78047d8a.zip
moved state and vm to core
Diffstat (limited to 'core/state/managed_state_test.go')
-rw-r--r--core/state/managed_state_test.go89
1 files changed, 89 insertions, 0 deletions
diff --git a/core/state/managed_state_test.go b/core/state/managed_state_test.go
new file mode 100644
index 000000000..b61f59e6d
--- /dev/null
+++ b/core/state/managed_state_test.go
@@ -0,0 +1,89 @@
+package state
+
+import (
+ "testing"
+
+ "github.com/ethereum/go-ethereum/common"
+)
+
+var addr = common.BytesToAddress([]byte("test"))
+
+func create() (*ManagedState, *account) {
+ ms := ManageState(&StateDB{stateObjects: make(map[string]*StateObject)})
+ so := &StateObject{address: addr, nonce: 100}
+ ms.StateDB.stateObjects[addr.Str()] = so
+ ms.accounts[addr.Str()] = newAccount(so)
+
+ return ms, ms.accounts[addr.Str()]
+}
+
+func TestNewNonce(t *testing.T) {
+ ms, _ := create()
+
+ nonce := ms.NewNonce(addr)
+ if nonce != 100 {
+ t.Error("expected nonce 100. got", nonce)
+ }
+
+ nonce = ms.NewNonce(addr)
+ if nonce != 101 {
+ t.Error("expected nonce 101. got", nonce)
+ }
+}
+
+func TestRemove(t *testing.T) {
+ ms, account := create()
+
+ nn := make([]bool, 10)
+ for i, _ := range nn {
+ nn[i] = true
+ }
+ account.nonces = append(account.nonces, nn...)
+
+ i := uint64(5)
+ ms.RemoveNonce(addr, account.nstart+i)
+ if len(account.nonces) != 5 {
+ t.Error("expected", i, "'th index to be false")
+ }
+}
+
+func TestReuse(t *testing.T) {
+ ms, account := create()
+
+ nn := make([]bool, 10)
+ for i, _ := range nn {
+ nn[i] = true
+ }
+ account.nonces = append(account.nonces, nn...)
+
+ i := uint64(5)
+ ms.RemoveNonce(addr, account.nstart+i)
+ nonce := ms.NewNonce(addr)
+ if nonce != 105 {
+ t.Error("expected nonce to be 105. got", nonce)
+ }
+}
+
+func TestRemoteNonceChange(t *testing.T) {
+ ms, account := create()
+ nn := make([]bool, 10)
+ for i, _ := range nn {
+ nn[i] = true
+ }
+ account.nonces = append(account.nonces, nn...)
+ nonce := ms.NewNonce(addr)
+
+ ms.StateDB.stateObjects[addr.Str()].nonce = 200
+ nonce = ms.NewNonce(addr)
+ if nonce != 200 {
+ t.Error("expected nonce after remote update to be", 201, "got", nonce)
+ }
+ ms.NewNonce(addr)
+ ms.NewNonce(addr)
+ ms.NewNonce(addr)
+ ms.StateDB.stateObjects[addr.Str()].nonce = 200
+ nonce = ms.NewNonce(addr)
+ if nonce != 204 {
+ t.Error("expected nonce after remote update to be", 201, "got", nonce)
+ }
+}