aboutsummaryrefslogtreecommitdiffstats
path: root/tests/vm
diff options
context:
space:
mode:
authorTaylor Gerring <taylor.gerring@gmail.com>2015-01-21 03:22:38 +0800
committerTaylor Gerring <taylor.gerring@gmail.com>2015-01-21 03:22:38 +0800
commitd92fde698031758f64fcabe7af354360a93f6326 (patch)
tree5f843fe17762e0aa87a0e790d527886f2cc8eea5 /tests/vm
parent499bc404e818848e53c8c7f4f6d1bfe2349e97ae (diff)
parent87f50659db7a4bf194769b05f541d2ccf02f4fc8 (diff)
downloaddexon-d92fde698031758f64fcabe7af354360a93f6326.tar
dexon-d92fde698031758f64fcabe7af354360a93f6326.tar.gz
dexon-d92fde698031758f64fcabe7af354360a93f6326.tar.bz2
dexon-d92fde698031758f64fcabe7af354360a93f6326.tar.lz
dexon-d92fde698031758f64fcabe7af354360a93f6326.tar.xz
dexon-d92fde698031758f64fcabe7af354360a93f6326.tar.zst
dexon-d92fde698031758f64fcabe7af354360a93f6326.zip
Merge branch 'develop' into jsonrpc
Diffstat (limited to 'tests/vm')
-rw-r--r--tests/vm/gh_test.go26
1 files changed, 10 insertions, 16 deletions
diff --git a/tests/vm/gh_test.go b/tests/vm/gh_test.go
index 698b0aefc..e1fdcd658 100644
--- a/tests/vm/gh_test.go
+++ b/tests/vm/gh_test.go
@@ -7,6 +7,7 @@ import (
"testing"
"github.com/ethereum/go-ethereum/core/types"
+ "github.com/ethereum/go-ethereum/ethdb"
"github.com/ethereum/go-ethereum/ethutil"
"github.com/ethereum/go-ethereum/logger"
"github.com/ethereum/go-ethereum/state"
@@ -38,8 +39,8 @@ func (self Log) Topics() [][]byte {
return t
}
-func StateObjectFromAccount(addr string, account Account) *state.StateObject {
- obj := state.NewStateObject(ethutil.Hex2Bytes(addr))
+func StateObjectFromAccount(db ethutil.Database, addr string, account Account) *state.StateObject {
+ obj := state.NewStateObject(ethutil.Hex2Bytes(addr), db)
obj.SetBalance(ethutil.Big(account.Balance))
if ethutil.IsHex(account.Code) {
@@ -78,15 +79,10 @@ func RunVmTest(p string, t *testing.T) {
helper.CreateFileTests(t, p, &tests)
for name, test := range tests {
- /*
- helper.Logger.SetLogLevel(5)
- if name != "jump0_jumpdest2" {
- continue
- }
- */
- statedb := state.New(helper.NewTrie())
+ db, _ := ethdb.NewMemDatabase()
+ statedb := state.New(nil, db)
for addr, account := range test.Pre {
- obj := StateObjectFromAccount(addr, account)
+ obj := StateObjectFromAccount(db, addr, account)
statedb.SetStateObject(obj)
for a, v := range account.Storage {
obj.SetState(helper.FromHex(a), ethutil.NewValue(helper.FromHex(v)))
@@ -120,12 +116,6 @@ func RunVmTest(p string, t *testing.T) {
ret, logs, gas, err = helper.RunState(statedb, env, test.Transaction)
}
- // Log the error if there is one. Error does not mean failing test.
- // A test fails if err != nil and post params are specified in the test.
- if err != nil {
- helper.Log.Infof("%s's: %v\n", name, err)
- }
-
rexp := helper.FromHex(test.Out)
if bytes.Compare(rexp, ret) != 0 {
t.Errorf("%s's return failed. Expected %x, got %x\n", name, rexp, ret)
@@ -133,10 +123,14 @@ func RunVmTest(p string, t *testing.T) {
if isVmTest {
if len(test.Gas) == 0 && err == nil {
+ // Log VM err
+ helper.Log.Infof("%s's: %v\n", name, err)
t.Errorf("%s's gas unspecified, indicating an error. VM returned (incorrectly) successfull", name)
} else {
gexp := ethutil.Big(test.Gas)
if gexp.Cmp(gas) != 0 {
+ // Log VM err
+ helper.Log.Infof("%s's: %v\n", name, err)
t.Errorf("%s's gas failed. Expected %v, got %v\n", name, gexp, gas)
}
}