mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-05-22 15:59:26 +00:00
tests: split up state test execution
This commit is contained in:
parent
817553cc28
commit
96017c248c
1 changed files with 38 additions and 29 deletions
|
|
@ -35,7 +35,24 @@ import (
|
||||||
"github.com/ethereum/go-ethereum/eth/tracers/logger"
|
"github.com/ethereum/go-ethereum/eth/tracers/logger"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestState(t *testing.T) {
|
func TestStateCurrent(t *testing.T) {
|
||||||
|
testState(t, stateTestDir)
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestStateLegacy(t *testing.T) {
|
||||||
|
// For Istanbul, older tests were moved into LegacyTests
|
||||||
|
testState(t, legacyStateTestDir)
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestStateBenchmarks(t *testing.T) {
|
||||||
|
testState(t, benchmarksDir)
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestStateFuture(t *testing.T) {
|
||||||
|
testState(t, filepath.Join(baseDir, "EIPTests", "StateTests"))
|
||||||
|
}
|
||||||
|
|
||||||
|
func testState(t *testing.T, dir string) {
|
||||||
t.Parallel()
|
t.Parallel()
|
||||||
|
|
||||||
st := new(testMatcher)
|
st := new(testMatcher)
|
||||||
|
|
@ -66,38 +83,30 @@ func TestState(t *testing.T) {
|
||||||
st.fails(`stEIP4844-blobtransactions/opcodeBlobhashOutOfRange.json`, "test has incorrect state root")
|
st.fails(`stEIP4844-blobtransactions/opcodeBlobhashOutOfRange.json`, "test has incorrect state root")
|
||||||
st.fails(`stEIP4844-blobtransactions/opcodeBlobhBounds.json`, "test has incorrect state root")
|
st.fails(`stEIP4844-blobtransactions/opcodeBlobhBounds.json`, "test has incorrect state root")
|
||||||
|
|
||||||
// For Istanbul, older tests were moved into LegacyTests
|
st.walk(t, dir, func(t *testing.T, name string, test *StateTest) {
|
||||||
for _, dir := range []string{
|
for _, subtest := range test.Subtests() {
|
||||||
filepath.Join(baseDir, "EIPTests", "StateTests"),
|
subtest := subtest
|
||||||
stateTestDir,
|
key := fmt.Sprintf("%s/%d", subtest.Fork, subtest.Index)
|
||||||
legacyStateTestDir,
|
|
||||||
benchmarksDir,
|
|
||||||
} {
|
|
||||||
st.walk(t, dir, func(t *testing.T, name string, test *StateTest) {
|
|
||||||
for _, subtest := range test.Subtests() {
|
|
||||||
subtest := subtest
|
|
||||||
key := fmt.Sprintf("%s/%d", subtest.Fork, subtest.Index)
|
|
||||||
|
|
||||||
t.Run(key+"/trie", func(t *testing.T) {
|
t.Run(key+"/trie", func(t *testing.T) {
|
||||||
withTrace(t, test.gasLimit(subtest), func(vmconfig vm.Config) error {
|
withTrace(t, test.gasLimit(subtest), func(vmconfig vm.Config) error {
|
||||||
_, _, err := test.Run(subtest, vmconfig, false)
|
_, _, err := test.Run(subtest, vmconfig, false)
|
||||||
return st.checkFailure(t, err)
|
return st.checkFailure(t, err)
|
||||||
})
|
|
||||||
})
|
})
|
||||||
t.Run(key+"/snap", func(t *testing.T) {
|
})
|
||||||
withTrace(t, test.gasLimit(subtest), func(vmconfig vm.Config) error {
|
t.Run(key+"/snap", func(t *testing.T) {
|
||||||
snaps, statedb, err := test.Run(subtest, vmconfig, true)
|
withTrace(t, test.gasLimit(subtest), func(vmconfig vm.Config) error {
|
||||||
if snaps != nil && statedb != nil {
|
snaps, statedb, err := test.Run(subtest, vmconfig, true)
|
||||||
if _, err := snaps.Journal(statedb.IntermediateRoot(false)); err != nil {
|
if snaps != nil && statedb != nil {
|
||||||
return err
|
if _, err := snaps.Journal(statedb.IntermediateRoot(false)); err != nil {
|
||||||
}
|
return err
|
||||||
}
|
}
|
||||||
return st.checkFailure(t, err)
|
}
|
||||||
})
|
return st.checkFailure(t, err)
|
||||||
})
|
})
|
||||||
}
|
})
|
||||||
})
|
}
|
||||||
}
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
// Transactions with gasLimit above this value will not get a VM trace on failure.
|
// Transactions with gasLimit above this value will not get a VM trace on failure.
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue