aboutsummaryrefslogtreecommitdiffstats
path: root/state/managed_state_test.go
diff options
context:
space:
mode:
authorobscuren <geffobscura@gmail.com>2015-03-13 23:29:04 +0800
committerobscuren <geffobscura@gmail.com>2015-03-13 23:29:04 +0800
commitf1fcda4f2fe05e46e3d350cb89a52fd33df3767f (patch)
tree3e714df981ccdaedabad2ebb8f684c8889a1c544 /state/managed_state_test.go
parentcda88ce31a45af001443c71fb16bdb2bbe1efbc7 (diff)
downloadgo-tangerine-f1fcda4f2fe05e46e3d350cb89a52fd33df3767f.tar
go-tangerine-f1fcda4f2fe05e46e3d350cb89a52fd33df3767f.tar.gz
go-tangerine-f1fcda4f2fe05e46e3d350cb89a52fd33df3767f.tar.bz2
go-tangerine-f1fcda4f2fe05e46e3d350cb89a52fd33df3767f.tar.lz
go-tangerine-f1fcda4f2fe05e46e3d350cb89a52fd33df3767f.tar.xz
go-tangerine-f1fcda4f2fe05e46e3d350cb89a52fd33df3767f.tar.zst
go-tangerine-f1fcda4f2fe05e46e3d350cb89a52fd33df3767f.zip
Implemented managed state
* Reimplemented nonce management for known accounts.
Diffstat (limited to 'state/managed_state_test.go')
-rw-r--r--state/managed_state_test.go54
1 files changed, 54 insertions, 0 deletions
diff --git a/state/managed_state_test.go b/state/managed_state_test.go
new file mode 100644
index 000000000..ae374f728
--- /dev/null
+++ b/state/managed_state_test.go
@@ -0,0 +1,54 @@
+package state
+
+import "testing"
+
+var addr = []byte("test")
+
+func create() (*ManagedState, *account) {
+ ms := ManageState(nil)
+ ms.accounts[string(addr)] = newAccount(&StateObject{nonce: 100})
+
+ return ms, ms.accounts[string(addr)]
+}
+
+func TestNewNonce(t *testing.T) {
+ ms, _ := create()
+
+ nonce := ms.NewNonce(addr)
+ if nonce != 100 {
+ 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)
+ }
+}