updated tests
This commit is contained in:
parent
0823254c3b
commit
200f66537c
@ -79,10 +79,12 @@ func RunVmTest(p string, t *testing.T) {
|
|||||||
helper.CreateFileTests(t, p, &tests)
|
helper.CreateFileTests(t, p, &tests)
|
||||||
|
|
||||||
for name, test := range tests {
|
for name, test := range tests {
|
||||||
helper.Logger.SetLogLevel(4)
|
/*
|
||||||
if name != "TransactionNonceCheck2" {
|
helper.Logger.SetLogLevel(4)
|
||||||
continue
|
if name != "log1_nonEmptyMem_logMemSize1_logMemStart31" {
|
||||||
}
|
continue
|
||||||
|
}
|
||||||
|
*/
|
||||||
db, _ := ethdb.NewMemDatabase()
|
db, _ := ethdb.NewMemDatabase()
|
||||||
statedb := state.New(nil, db)
|
statedb := state.New(nil, db)
|
||||||
for addr, account := range test.Pre {
|
for addr, account := range test.Pre {
|
||||||
@ -159,10 +161,14 @@ func RunVmTest(p string, t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if len(test.Logs) > 0 {
|
if len(test.Logs) > 0 {
|
||||||
for i, log := range test.Logs {
|
if len(test.Logs) != len(logs) {
|
||||||
genBloom := ethutil.LeftPadBytes(types.LogsBloom(state.Logs{logs[i]}).Bytes(), 64)
|
t.Errorf("log length mismatch. Expected %d, got %d", len(test.Logs), len(logs))
|
||||||
if !bytes.Equal(genBloom, ethutil.Hex2Bytes(log.BloomF)) {
|
} else {
|
||||||
t.Errorf("bloom mismatch")
|
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)
|
RunVmTest(fn, t)
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestSystemOperations(t *testing.T) {
|
|
||||||
const fn = "../files/VMTests/vmSystemOperationsTest.json"
|
|
||||||
RunVmTest(fn, t)
|
|
||||||
}
|
|
||||||
|
|
||||||
func TestBitwiseLogicOperation(t *testing.T) {
|
func TestBitwiseLogicOperation(t *testing.T) {
|
||||||
const fn = "../files/VMTests/vmBitwiseLogicOperationTest.json"
|
const fn = "../files/VMTests/vmBitwiseLogicOperationTest.json"
|
||||||
RunVmTest(fn, t)
|
RunVmTest(fn, t)
|
||||||
@ -201,6 +202,17 @@ func TestFlowOperation(t *testing.T) {
|
|||||||
RunVmTest(fn, 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) {
|
func TestPushDupSwap(t *testing.T) {
|
||||||
const fn = "../files/VMTests/vmPushDupSwapTest.json"
|
const fn = "../files/VMTests/vmPushDupSwapTest.json"
|
||||||
RunVmTest(fn, t)
|
RunVmTest(fn, t)
|
||||||
|
10
vm/vm.go
10
vm/vm.go
@ -34,7 +34,7 @@ func New(env Environment) *Vm {
|
|||||||
lt = LogTyDiff
|
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) {
|
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)
|
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()
|
addr = ref.Address()
|
||||||
|
|
||||||
fmt.Printf("CREATE %X\n", addr)
|
|
||||||
stack.Push(ethutil.BigD(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
|
// Stack Check, memory resize & gas phase
|
||||||
switch op {
|
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:
|
case SWAP1, SWAP2, SWAP3, SWAP4, SWAP5, SWAP6, SWAP7, SWAP8, SWAP9, SWAP10, SWAP11, SWAP12, SWAP13, SWAP14, SWAP15, SWAP16:
|
||||||
n := int(op - SWAP1 + 2)
|
n := int(op - SWAP1 + 2)
|
||||||
stack.require(n)
|
stack.require(n)
|
||||||
@ -897,11 +896,12 @@ func (self *Vm) calculateGasAndSize(context *Context, caller ContextRef, op OpCo
|
|||||||
g = GasStorageMod
|
g = GasStorageMod
|
||||||
}
|
}
|
||||||
gas.Set(g)
|
gas.Set(g)
|
||||||
newMemSize = calcMemSize(stack.Peek(), u256(32))
|
|
||||||
case MLOAD:
|
case MLOAD:
|
||||||
newMemSize = calcMemSize(stack.Peek(), u256(32))
|
newMemSize = calcMemSize(stack.Peek(), u256(32))
|
||||||
case MSTORE8:
|
case MSTORE8:
|
||||||
newMemSize = calcMemSize(stack.Peek(), u256(1))
|
newMemSize = calcMemSize(stack.Peek(), u256(1))
|
||||||
|
case MSTORE:
|
||||||
|
newMemSize = calcMemSize(stack.Peek(), u256(32))
|
||||||
case RETURN:
|
case RETURN:
|
||||||
newMemSize = calcMemSize(stack.Peek(), stack.data[stack.Len()-2])
|
newMemSize = calcMemSize(stack.Peek(), stack.data[stack.Len()-2])
|
||||||
case SHA3:
|
case SHA3:
|
||||||
|
Loading…
Reference in New Issue
Block a user