aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorobscuren <geffobscura@gmail.com>2015-03-03 00:55:45 +0800
committerobscuren <geffobscura@gmail.com>2015-03-03 00:55:45 +0800
commit200f66537cdf21a69ddda74eedfee30c14fb6ba6 (patch)
tree02861804635a9e132b3d5a17e464e361950af21f
parent0823254c3bc2560f8e0dd6f19d05f471f8af94f4 (diff)
downloaddexon-200f66537cdf21a69ddda74eedfee30c14fb6ba6.tar.gz
dexon-200f66537cdf21a69ddda74eedfee30c14fb6ba6.tar.zst
dexon-200f66537cdf21a69ddda74eedfee30c14fb6ba6.zip
updated tests
-rw-r--r--tests/vm/gh_test.go38
-rw-r--r--vm/vm.go10
2 files changed, 30 insertions, 18 deletions
diff --git a/tests/vm/gh_test.go b/tests/vm/gh_test.go
index 2151cf9a5..a23076b74 100644
--- a/tests/vm/gh_test.go
+++ b/tests/vm/gh_test.go
@@ -79,10 +79,12 @@ func RunVmTest(p string, t *testing.T) {
helper.CreateFileTests(t, p, &tests)
for name, test := range tests {
- helper.Logger.SetLogLevel(4)
- if name != "TransactionNonceCheck2" {
- continue
- }
+ /*
+ helper.Logger.SetLogLevel(4)
+ if name != "log1_nonEmptyMem_logMemSize1_logMemStart31" {
+ continue
+ }
+ */
db, _ := ethdb.NewMemDatabase()
statedb := state.New(nil, db)
for addr, account := range test.Pre {
@@ -159,10 +161,14 @@ func RunVmTest(p string, t *testing.T) {
}
if len(test.Logs) > 0 {
- for i, log := range test.Logs {
- genBloom := ethutil.LeftPadBytes(types.LogsBloom(state.Logs{logs[i]}).Bytes(), 64)
- if !bytes.Equal(genBloom, ethutil.Hex2Bytes(log.BloomF)) {
- t.Errorf("bloom mismatch")
+ if len(test.Logs) != len(logs) {
+ t.Errorf("log length mismatch. Expected %d, got %d", len(test.Logs), len(logs))
+ } else {
+ for i, log := range test.Logs {
+ genBloom := ethutil.LeftPadBytes(types.LogsBloom(state.Logs{logs[i]}).Bytes(), 64)
+ if !bytes.Equal(genBloom, ethutil.Hex2Bytes(log.BloomF)) {
+ t.Errorf("bloom mismatch")
+ }
}
}
}
@@ -176,11 +182,6 @@ func TestVMArithmetic(t *testing.T) {
RunVmTest(fn, t)
}
-func TestSystemOperations(t *testing.T) {
- const fn = "../files/VMTests/vmSystemOperationsTest.json"
- RunVmTest(fn, t)
-}
-
func TestBitwiseLogicOperation(t *testing.T) {
const fn = "../files/VMTests/vmBitwiseLogicOperationTest.json"
RunVmTest(fn, t)
@@ -201,6 +202,17 @@ func TestFlowOperation(t *testing.T) {
RunVmTest(fn, t)
}
+func TestLogTest(t *testing.T) {
+ const fn = "../files/VMTests/vmLogTest.json"
+ RunVmTest(fn, t)
+}
+
+func TestPerformance(t *testing.T) {
+ t.Skip()
+ const fn = "../files/VMTests/vmPerformance.json"
+ RunVmTest(fn, t)
+}
+
func TestPushDupSwap(t *testing.T) {
const fn = "../files/VMTests/vmPushDupSwapTest.json"
RunVmTest(fn, t)
diff --git a/vm/vm.go b/vm/vm.go
index 791718fb2..e3b7df329 100644
--- a/vm/vm.go
+++ b/vm/vm.go
@@ -34,7 +34,7 @@ func New(env Environment) *Vm {
lt = LogTyDiff
}
- return &Vm{debug: false, env: env, logTy: lt, Recoverable: true}
+ return &Vm{debug: true, env: env, logTy: lt, Recoverable: true}
}
func (self *Vm) Run(me, caller ContextRef, code []byte, value, gas, price *big.Int, callData []byte) (ret []byte, err error) {
@@ -56,8 +56,6 @@ func (self *Vm) Run(me, caller ContextRef, code []byte, value, gas, price *big.I
err = fmt.Errorf("%v", r)
- } else {
- fmt.Println(me.(*state.StateObject).Storage())
}
}()
}
@@ -668,7 +666,6 @@ func (self *Vm) Run(me, caller ContextRef, code []byte, value, gas, price *big.I
}
addr = ref.Address()
- fmt.Printf("CREATE %X\n", addr)
stack.Push(ethutil.BigD(addr))
}
@@ -860,6 +857,8 @@ func (self *Vm) calculateGasAndSize(context *Context, caller ContextRef, op OpCo
// Stack Check, memory resize & gas phase
switch op {
+ case PUSH1, PUSH2, PUSH3, PUSH4, PUSH5, PUSH6, PUSH7, PUSH8, PUSH9, PUSH10, PUSH11, PUSH12, PUSH13, PUSH14, PUSH15, PUSH16, PUSH17, PUSH18, PUSH19, PUSH20, PUSH21, PUSH22, PUSH23, PUSH24, PUSH25, PUSH26, PUSH27, PUSH28, PUSH29, PUSH30, PUSH31, PUSH32:
+ gas.Set(GasFastestStep)
case SWAP1, SWAP2, SWAP3, SWAP4, SWAP5, SWAP6, SWAP7, SWAP8, SWAP9, SWAP10, SWAP11, SWAP12, SWAP13, SWAP14, SWAP15, SWAP16:
n := int(op - SWAP1 + 2)
stack.require(n)
@@ -897,11 +896,12 @@ func (self *Vm) calculateGasAndSize(context *Context, caller ContextRef, op OpCo
g = GasStorageMod
}
gas.Set(g)
- newMemSize = calcMemSize(stack.Peek(), u256(32))
case MLOAD:
newMemSize = calcMemSize(stack.Peek(), u256(32))
case MSTORE8:
newMemSize = calcMemSize(stack.Peek(), u256(1))
+ case MSTORE:
+ newMemSize = calcMemSize(stack.Peek(), u256(32))
case RETURN:
newMemSize = calcMemSize(stack.Peek(), stack.data[stack.Len()-2])
case SHA3: