diff options
author | Felix Lange <fjl@users.noreply.github.com> | 2018-01-04 20:18:30 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-01-04 20:18:30 +0800 |
commit | 1c2378b926b4ae96ae42a4e802058a2fcd42c87b (patch) | |
tree | 07c3f0e70e514625e5770d5f922b878b84a3b59a | |
parent | ae71da1b03c6eee82b714ef81b4fc59bcc130bb2 (diff) | |
download | go-tangerine-1c2378b926b4ae96ae42a4e802058a2fcd42c87b.tar go-tangerine-1c2378b926b4ae96ae42a4e802058a2fcd42c87b.tar.gz go-tangerine-1c2378b926b4ae96ae42a4e802058a2fcd42c87b.tar.bz2 go-tangerine-1c2378b926b4ae96ae42a4e802058a2fcd42c87b.tar.lz go-tangerine-1c2378b926b4ae96ae42a4e802058a2fcd42c87b.tar.xz go-tangerine-1c2378b926b4ae96ae42a4e802058a2fcd42c87b.tar.zst go-tangerine-1c2378b926b4ae96ae42a4e802058a2fcd42c87b.zip |
tests: update to upstream commit 2bb0c3da3b (#15806)
Also raise traceLimit once again and print the VM
error and output on failure.
-rw-r--r-- | core/vm/logger.go | 20 | ||||
-rw-r--r-- | tests/state_test.go | 13 | ||||
m--------- | tests/testdata | 0 |
3 files changed, 17 insertions, 16 deletions
diff --git a/core/vm/logger.go b/core/vm/logger.go index 1a6e43ee3..119181433 100644 --- a/core/vm/logger.go +++ b/core/vm/logger.go @@ -100,6 +100,8 @@ type StructLogger struct { logs []StructLog changedValues map[common.Address]Storage + output []byte + err error } // NewStructLogger returns a new logger @@ -172,17 +174,19 @@ func (l *StructLogger) CaptureFault(env *EVM, pc uint64, op OpCode, gas, cost ui } func (l *StructLogger) CaptureEnd(output []byte, gasUsed uint64, t time.Duration, err error) error { - fmt.Printf("0x%x", output) - if err != nil { - fmt.Printf(" error: %v\n", err) - } + l.output = output + l.err = err return nil } -// StructLogs returns a list of captured log entries -func (l *StructLogger) StructLogs() []StructLog { - return l.logs -} +// StructLogs returns the captured log entries. +func (l *StructLogger) StructLogs() []StructLog { return l.logs } + +// Error returns the VM error captured by the trace. +func (l *StructLogger) Error() error { return l.err } + +// Output returns the VM return value captured by the trace. +func (l *StructLogger) Output() []byte { return l.output } // WriteTrace writes a formatted trace to the given writer func WriteTrace(writer io.Writer, logs []StructLog) { diff --git a/tests/state_test.go b/tests/state_test.go index 5a67b290d..100c776c1 100644 --- a/tests/state_test.go +++ b/tests/state_test.go @@ -39,16 +39,12 @@ func TestState(t *testing.T) { st.fails(`^stRevertTest/RevertPrefoundEmptyOOG\.json/EIP158`, "bug in test") st.fails(`^stRevertTest/RevertPrecompiledTouch\.json/Byzantium`, "bug in test") st.fails(`^stRevertTest/RevertPrefoundEmptyOOG\.json/Byzantium`, "bug in test") - st.fails(`^stRandom/randomStatetest645\.json/EIP150/.*`, "known bug #15119") - st.fails(`^stRandom/randomStatetest645\.json/Frontier/.*`, "known bug #15119") - st.fails(`^stRandom/randomStatetest645\.json/Homestead/.*`, "known bug #15119") - st.fails(`^stRandom/randomStatetest644\.json/EIP150/.*`, "known bug #15119") - st.fails(`^stRandom/randomStatetest644\.json/Frontier/.*`, "known bug #15119") - st.fails(`^stRandom/randomStatetest644\.json/Homestead/.*`, "known bug #15119") + st.fails(`^stRandom2/randomStatetest64[45]\.json/(EIP150|Frontier|Homestead)/.*`, "known bug #15119") st.fails(`^stCreateTest/TransactionCollisionToEmpty\.json/EIP158/2`, "known bug ") st.fails(`^stCreateTest/TransactionCollisionToEmpty\.json/EIP158/3`, "known bug ") st.fails(`^stCreateTest/TransactionCollisionToEmpty\.json/Byzantium/2`, "known bug ") st.fails(`^stCreateTest/TransactionCollisionToEmpty\.json/Byzantium/3`, "known bug ") + st.walk(t, stateTestDir, func(t *testing.T, name string, test *StateTest) { for _, subtest := range test.Subtests() { subtest := subtest @@ -68,8 +64,7 @@ func TestState(t *testing.T) { } // Transactions with gasLimit above this value will not get a VM trace on failure. -//const traceErrorLimit = 400000 -const traceErrorLimit = 0 +const traceErrorLimit = 400000 func withTrace(t *testing.T, gasLimit uint64, test func(vm.Config) error) { err := test(vm.Config{}) @@ -93,4 +88,6 @@ func withTrace(t *testing.T, gasLimit uint64, test func(vm.Config) error) { } else { t.Log("EVM operation log:\n" + buf.String()) } + t.Logf("EVM output: 0x%x", tracer.Output()) + t.Logf("EVM error: %v", tracer.Error()) } diff --git a/tests/testdata b/tests/testdata -Subproject 37f555fbc091fbf761aa6f02227132fb31f0681 +Subproject 2bb0c3da3bbb15c528bcef2a7e5ac4bd73f81f8 |