Fixed gas check for vm test

This commit is contained in:
obscuren 2014-12-30 17:16:28 +01:00
parent 89244981a8
commit 16460b0048

View File

@ -107,7 +107,9 @@ func RunVmTest(p string, t *testing.T) {
logs state.Logs logs state.Logs
) )
if len(test.Exec) > 0 { isVmTest := len(test.Exec) > 0
if isVmTest {
ret, logs, gas, err = helper.RunVm(statedb, env, test.Exec) ret, logs, gas, err = helper.RunVm(statedb, env, test.Exec)
} else { } else {
ret, logs, gas, err = helper.RunState(statedb, env, test.Transaction) ret, logs, gas, err = helper.RunState(statedb, env, test.Transaction)
@ -124,12 +126,16 @@ func RunVmTest(p string, t *testing.T) {
t.Errorf("%s's return failed. Expected %x, got %x\n", name, rexp, ret) t.Errorf("%s's return failed. Expected %x, got %x\n", name, rexp, ret)
} }
if len(test.Gas) > 0 { if isVmTest {
if len(test.Gas) == 0 && err == nil {
t.Errorf("%s's gas unspecified, indicating an error. VM returned (incorrectly) successfull")
} else {
gexp := ethutil.Big(test.Gas) gexp := ethutil.Big(test.Gas)
if gexp.Cmp(gas) != 0 { if gexp.Cmp(gas) != 0 {
t.Errorf("%s's gas failed. Expected %v, got %v\n", name, gexp, gas) t.Errorf("%s's gas failed. Expected %v, got %v\n", name, gexp, gas)
} }
} }
}
for addr, account := range test.Post { for addr, account := range test.Post {
obj := statedb.GetStateObject(helper.FromHex(addr)) obj := statedb.GetStateObject(helper.FromHex(addr))