tests: update tests, use blockchain test "network" field

Blockchain tests now include the "network" which determines the chain
config to use. Remove config matching based on test name and share the
name-to-config index with state tests.

Byzantium/Constantinople tests are still skipped because most of them
fail anyway.
This commit is contained in:
Felix Lange
2017-08-10 11:38:17 +02:00
parent 17ce0a37de
commit 6a56b15019
6 changed files with 111 additions and 85 deletions

View File

@ -33,11 +33,9 @@ func TestState(t *testing.T) {
st.skipShortMode(`^stQuadraticComplexityTest/`)
// Broken tests:
st.skipLoad(`^stTransactionTest/OverflowGasRequire\.json`) // gasLimit > 256 bits
st.skipLoad(`^stStackTests/shallowStackOK\.json`) // bad hex encoding
st.skipLoad(`^stTransactionTest/zeroSigTransa[^/]*\.json`) // EIP-86 is not supported yet
// Expected failures:
st.fails(`^stCallCreateCallCodeTest/createJS_ExampleContract\.json`, "bug in test")
st.fails(`^stCodeSizeLimit/codesizeOOGInvalidSize\.json/(Frontier|Homestead)`,
st.fails(`^stCodeSizeLimit/codesizeOOGInvalidSize\.json/(Frontier|Homestead|EIP150)`,
"code size limit implementation is not conditional on fork")
st.fails(`^stRevertTest/RevertDepthCreateAddressCollision\.json/EIP15[08]/[67]`, "bug in test")
st.fails(`^stRevertTest/RevertPrecompiledTouch\.json/EIP158`, "bug in test")
@ -49,8 +47,8 @@ func TestState(t *testing.T) {
key := fmt.Sprintf("%s/%d", subtest.Fork, subtest.Index)
name := name + "/" + key
t.Run(key, func(t *testing.T) {
if subtest.Fork == "Metropolis" {
t.Skip("metropolis not supported yet")
if subtest.Fork == "Constantinople" || subtest.Fork == "Byzantium" {
t.Skip("constantinople, byzantium not supported yet")
}
withTrace(t, test.gasLimit(subtest), func(vmconfig vm.Config) error {
return st.checkFailure(t, name, test.Run(subtest, vmconfig))