diff options
author | Taylor Gerring <taylor.gerring@gmail.com> | 2015-01-21 03:22:38 +0800 |
---|---|---|
committer | Taylor Gerring <taylor.gerring@gmail.com> | 2015-01-21 03:22:38 +0800 |
commit | d92fde698031758f64fcabe7af354360a93f6326 (patch) | |
tree | 5f843fe17762e0aa87a0e790d527886f2cc8eea5 /cmd/ethtest | |
parent | 499bc404e818848e53c8c7f4f6d1bfe2349e97ae (diff) | |
parent | 87f50659db7a4bf194769b05f541d2ccf02f4fc8 (diff) | |
download | go-tangerine-d92fde698031758f64fcabe7af354360a93f6326.tar go-tangerine-d92fde698031758f64fcabe7af354360a93f6326.tar.gz go-tangerine-d92fde698031758f64fcabe7af354360a93f6326.tar.bz2 go-tangerine-d92fde698031758f64fcabe7af354360a93f6326.tar.lz go-tangerine-d92fde698031758f64fcabe7af354360a93f6326.tar.xz go-tangerine-d92fde698031758f64fcabe7af354360a93f6326.tar.zst go-tangerine-d92fde698031758f64fcabe7af354360a93f6326.zip |
Merge branch 'develop' into jsonrpc
Diffstat (limited to 'cmd/ethtest')
-rw-r--r-- | cmd/ethtest/main.go | 29 |
1 files changed, 17 insertions, 12 deletions
diff --git a/cmd/ethtest/main.go b/cmd/ethtest/main.go index 96ef94e40..e1c4806ad 100644 --- a/cmd/ethtest/main.go +++ b/cmd/ethtest/main.go @@ -17,8 +17,6 @@ /** * @authors: * Jeffrey Wilcke <i@jev.io> - * @date 2014 - * */ package main @@ -26,12 +24,15 @@ package main import ( "bytes" "encoding/json" + "io" "io/ioutil" "log" "os" "strings" + "github.com/ethereum/go-ethereum/ethdb" "github.com/ethereum/go-ethereum/ethutil" + "github.com/ethereum/go-ethereum/logger" "github.com/ethereum/go-ethereum/state" "github.com/ethereum/go-ethereum/tests/helper" ) @@ -43,8 +44,8 @@ type Account struct { Storage map[string]string } -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) { @@ -66,19 +67,20 @@ type VmTest struct { Pre map[string]Account } -func RunVmTest(js string) (failed int) { +func RunVmTest(r io.Reader) (failed int) { tests := make(map[string]VmTest) - data, _ := ioutil.ReadAll(strings.NewReader(js)) + data, _ := ioutil.ReadAll(r) err := json.Unmarshal(data, &tests) if err != nil { log.Fatalln(err) } for name, test := range tests { - state := state.New(helper.NewTrie()) + db, _ := ethdb.NewMemDatabase() + state := state.New(nil, db) for addr, account := range test.Pre { - obj := StateObjectFromAccount(addr, account) + obj := StateObjectFromAccount(db, addr, account) state.SetStateObject(obj) } @@ -118,6 +120,8 @@ func RunVmTest(js string) (failed int) { } } } + + logger.Flush() } return @@ -125,9 +129,10 @@ func RunVmTest(js string) (failed int) { func main() { helper.Logger.SetLogLevel(5) - if len(os.Args) == 1 { - log.Fatalln("no json supplied") - } - os.Exit(RunVmTest(os.Args[1])) + if len(os.Args) > 1 { + os.Exit(RunVmTest(strings.NewReader(os.Args[1]))) + } else { + os.Exit(RunVmTest(os.Stdin)) + } } |