Enable constantinople tests and blacklist the ones that are currently failing (#65)

* Update to latest ethereum reference tests to pull and enable a bunch of Constantinople tests they fix.

* Blacklist test that consumes a huge amount of memory on Constantinople as well.
Adrian Sutton 6 years ago committed by GitHub
parent 3abd8643a2
commit 7cddc9a892
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 5
      ethereum/core/src/test/java/tech/pegasys/pantheon/ethereum/core/TransactionTest.java
  2. 127
      ethereum/core/src/test/java/tech/pegasys/pantheon/ethereum/vm/BlockchainReferenceTestTools.java
  3. 116
      ethereum/core/src/test/java/tech/pegasys/pantheon/ethereum/vm/GeneralStateReferenceTestTools.java
  4. 2
      ethereum/referencetests/src/test/resources

@ -76,6 +76,11 @@ public class TransactionTest {
milestone("Byzantium");
}
@Test
public void constantinople() {
milestone("Constantinople");
}
public void milestone(final String milestone) {
final TransactionTestCaseSpec.Expectation expected = spec.expectation(milestone);

@ -31,7 +31,7 @@ public class BlockchainReferenceTestTools {
System.getProperty(
"test.ethereum.blockchain.eips",
"FrontierToHomesteadAt5,HomesteadToEIP150At5,HomesteadToDaoAt5,EIP158ToByzantiumAt5,"
+ "Frontier,Homestead,EIP150,EIP158,Byzantium");
+ "Frontier,Homestead,EIP150,EIP158,Byzantium,Constantinople");
NETWORKS_TO_RUN = Arrays.asList(networks.split(","));
}
@ -49,12 +49,13 @@ public class BlockchainReferenceTestTools {
}
// TODO: Determine and implement cross-chain validation prevention.
params.blacklist("ChainAtoChainB_BlockHash_(Frontier|Homestead|EIP150|EIP158|Byzantium)");
params.blacklist(
"ChainAtoChainB_BlockHash_(Frontier|Homestead|EIP150|EIP158|Byzantium|Constantinople)");
// Known bad test.
params.blacklist("RevertPrecompiledTouch_d0g0v0_(EIP158|Byzantium)");
// Consumes a huge amount of memory
params.blacklist("static_Call1MB1024Calldepth_d1g0v0_Byzantium");
params.blacklist("static_Call1MB1024Calldepth_d1g0v0_(Byzantium|Constantinople)");
// Pantheon is incorrectly rejecting Uncle block timestamps in the future
params.blacklist("futureUncleTimestampDifficultyDrop2");
@ -63,6 +64,126 @@ public class BlockchainReferenceTestTools {
// Needs investigation
params.blacklist("RevertInCreateInInit_d0g0v0_Byzantium");
params.blacklist("RevertInCreateInInit_d0g0v0_Constantinople");
// Constantinople failures to investigate
params.blacklist("badOpcodes_d115g0v0_Constantinople\\[Constantinople\\]");
params.blacklist("Call1024PreCalls_d0g0v0_Constantinople\\[Constantinople\\]");
params.blacklist("CallRecursiveBombPreCall_d0g0v0_Constantinople\\[Constantinople\\]");
params.blacklist("Call1024BalanceTooLow_d0g0v0_Constantinople\\[Constantinople\\]");
params.blacklist("Callcode1024BalanceTooLow_d0g0v0_Constantinople\\[Constantinople\\]");
params.blacklist("Callcode1024OOG_d0g0v0_Constantinople\\[Constantinople\\]");
params.blacklist("Delegatecall1024OOG_d0g0v0_Constantinople\\[Constantinople\\]");
params.blacklist("Callcode1024BalanceTooLow_d0g0v0_Constantinople\\[Constantinople\\]");
params.blacklist("Call1024BalanceTooLow_d0g0v0_Constantinople\\[Constantinople\\]");
params.blacklist("Call1024PreCalls_d0g0v0_Constantinople\\[Constantinople\\]");
params.blacklist("create2InitCodes_d4g0v0_Constantinople\\[Constantinople\\]");
params.blacklist("create2InitCodes_d5g0v0_Constantinople\\[Constantinople\\]");
params.blacklist("Create2OnDepth1023_d0g0v0_Constantinople\\[Constantinople\\]");
params.blacklist("create2callPrecompiles_d6g0v0_Constantinople\\[Constantinople\\]");
params.blacklist("create2callPrecompiles_d7g0v0_Constantinople\\[Constantinople\\]");
params.blacklist(
"create2collisionSelfdestructedRevert_d2g0v0_Constantinople\\[Constantinople\\]");
params.blacklist("create2collisionStorage_d0g0v0_Constantinople\\[Constantinople\\]");
params.blacklist("create2collisionStorage_d1g0v0_Constantinople\\[Constantinople\\]");
params.blacklist(
"create2collisionSelfdestructedRevert_d0g0v0_Constantinople\\[Constantinople\\]");
params.blacklist(
"create2collisionSelfdestructedRevert_d1g0v0_Constantinople\\[Constantinople\\]");
params.blacklist("create2collisionStorage_d2g0v0_Constantinople\\[Constantinople\\]");
params.blacklist("CREATE2_Suicide_d7g0v0_Constantinople\\[Constantinople\\]");
params.blacklist("RevertInCreateInInitCreate2_d0g0v0_Constantinople\\[Constantinople\\]");
params.blacklist(
"call_outsize_then_create2_successful_then_returndatasize_d0g0v0_Constantinople\\[Constantinople\\]");
params.blacklist("CREATE2_Suicide_d10g0v0_Constantinople\\[Constantinople\\]");
params.blacklist("CREATE2_Suicide_d11g0v0_Constantinople\\[Constantinople\\]");
params.blacklist("CREATE2_Suicide_d9g0v0_Constantinople\\[Constantinople\\]");
params.blacklist("CREATE2_Suicide_d5g0v0_Constantinople\\[Constantinople\\]");
params.blacklist("CreateMessageReverted_d0g1v0_Constantinople\\[Constantinople\\]");
params.blacklist("create2callPrecompiles_d4g0v0_Constantinople\\[Constantinople\\]");
params.blacklist("create2callPrecompiles_d5g0v0_Constantinople\\[Constantinople\\]");
params.blacklist("create2collisionNonce_d0g0v0_Constantinople\\[Constantinople\\]");
params.blacklist("create2collisionNonce_d1g0v0_Constantinople\\[Constantinople\\]");
params.blacklist(
"Create2OOGafterInitCodeReturndata2_d0g1v0_Constantinople\\[Constantinople\\]");
params.blacklist("Create2Recursive_d0g1v0_Constantinople\\[Constantinople\\]");
params.blacklist("create2SmartInitCode_d0g0v0_Constantinople\\[Constantinople\\]");
params.blacklist("create2SmartInitCode_d1g0v0_Constantinople\\[Constantinople\\]");
params.blacklist(
"returndatasize_following_successful_create_d0g0v0_Constantinople\\[Constantinople\\]");
params.blacklist("create2collisionCode_d2g0v0_Constantinople\\[Constantinople\\]");
params.blacklist("RevertDepthCreate2OOG_d1g1v1_Constantinople\\[Constantinople\\]");
params.blacklist("create2InitCodes_d8g0v0_Constantinople\\[Constantinople\\]");
params.blacklist("create2callPrecompiles_d2g0v0_Constantinople\\[Constantinople\\]");
params.blacklist("create2callPrecompiles_d3g0v0_Constantinople\\[Constantinople\\]");
params.blacklist("RevertDepthCreateAddressCollision_d1g1v0_Constantinople\\[Constantinople\\]");
params.blacklist("create2InitCodes_d6g0v0_Constantinople\\[Constantinople\\]");
params.blacklist("create2InitCodes_d7g0v0_Constantinople\\[Constantinople\\]");
params.blacklist("create2InitCodes_d0g0v0_Constantinople\\[Constantinople\\]");
params.blacklist("create2checkFieldsInInitcode_d4g0v0_Constantinople\\[Constantinople\\]");
params.blacklist("create2checkFieldsInInitcode_d5g0v0_Constantinople\\[Constantinople\\]");
params.blacklist("RevertDepthCreateAddressCollision_d1g1v1_Constantinople\\[Constantinople\\]");
params.blacklist("create2checkFieldsInInitcode_d2g0v0_Constantinople\\[Constantinople\\]");
params.blacklist("Create2Recursive_d0g0v0_Constantinople\\[Constantinople\\]");
params.blacklist("create2checkFieldsInInitcode_d6g0v0_Constantinople\\[Constantinople\\]");
params.blacklist("create2collisionBalance_d1g0v0_Constantinople\\[Constantinople\\]");
params.blacklist("create2collisionSelfdestructedOOG_d2g0v0_Constantinople\\[Constantinople\\]");
params.blacklist("RevertDepthCreate2OOG_d1g1v0_Constantinople\\[Constantinople\\]");
params.blacklist("create2collisionBalance_d0g0v0_Constantinople\\[Constantinople\\]");
params.blacklist("create2collisionCode_d1g0v0_Constantinople\\[Constantinople\\]");
params.blacklist("create2noCash_d1g0v0_Constantinople\\[Constantinople\\]");
params.blacklist("create2callPrecompiles_d0g0v0_Constantinople\\[Constantinople\\]");
params.blacklist("create2callPrecompiles_d1g0v0_Constantinople\\[Constantinople\\]");
params.blacklist("create2collisionNonce_d2g0v0_Constantinople\\[Constantinople\\]");
params.blacklist("create2collisionSelfdestructed_d0g0v0_Constantinople\\[Constantinople\\]");
params.blacklist("Create2OnDepth1024_d0g0v0_Constantinople\\[Constantinople\\]");
params.blacklist("create2collisionCode2_d0g0v0_Constantinople\\[Constantinople\\]");
params.blacklist("create2collisionCode2_d1g0v0_Constantinople\\[Constantinople\\]");
params.blacklist("create2collisionSelfdestructed2_d0g0v0_Constantinople\\[Constantinople\\]");
params.blacklist("create2collisionSelfdestructed2_d1g0v0_Constantinople\\[Constantinople\\]");
params.blacklist("CREATE2_Suicide_d1g0v0_Constantinople\\[Constantinople\\]");
params.blacklist("create2collisionSelfdestructed_d1g0v0_Constantinople\\[Constantinople\\]");
params.blacklist("CREATE2_Suicide_d3g0v0_Constantinople\\[Constantinople\\]");
params.blacklist("CreateMessageRevertedOOGInInit_d0g1v0_Constantinople\\[Constantinople\\]");
params.blacklist(
"call_then_create2_successful_then_returndatasize_d0g0v0_Constantinople\\[Constantinople\\]");
params.blacklist("create2collisionSelfdestructed_d2g0v0_Constantinople\\[Constantinople\\]");
params.blacklist("CREATE2_Suicide_d8g0v0_Constantinople\\[Constantinople\\]");
params.blacklist("Create2OOGafterInitCode_d0g1v0_Constantinople\\[Constantinople\\]");
params.blacklist(
"returndatacopy_0_0_following_successful_create_d0g0v0_Constantinople\\[Constantinople\\]");
params.blacklist("create2checkFieldsInInitcode_d0g0v0_Constantinople\\[Constantinople\\]");
params.blacklist("create2collisionBalance_d2g0v0_Constantinople\\[Constantinople\\]");
params.blacklist("create2collisionBalance_d3g0v0_Constantinople\\[Constantinople\\]");
params.blacklist("create2collisionSelfdestructedOOG_d0g0v0_Constantinople\\[Constantinople\\]");
params.blacklist("create2collisionSelfdestructedOOG_d1g0v0_Constantinople\\[Constantinople\\]");
params.blacklist("Call1024OOG_d0g0v0_Constantinople\\[Constantinople\\]");
params.blacklist("Call1024PreCalls_d0g0v0_Constantinople\\[Constantinople\\]");
params.blacklist("CallRecursiveBombPreCall_d0g0v0_Constantinople\\[Constantinople\\]");
params.blacklist("Delegatecall1024_d0g0v0_Constantinople\\[Constantinople\\]");
params.blacklist("Call1024BalanceTooLow_d0g0v0_Constantinople\\[Constantinople\\]");
params.blacklist("create2collisionCode_d0g0v0_Constantinople\\[Constantinople\\]");
params.blacklist("Call1MB1024Calldepth_d0g1v0_Constantinople\\[Constantinople\\]");
params.blacklist("LoopCallsThenRevert_d0g0v0_Constantinople\\[Constantinople\\]");
params.blacklist("LoopCallsDepthThenRevert2_d0g0v0_Constantinople\\[Constantinople\\]");
params.blacklist("LoopCallsDepthThenRevert_d0g0v0_Constantinople\\[Constantinople\\]");
params.blacklist("LoopCallsDepthThenRevert3_d0g0v0_Constantinople\\[Constantinople\\]");
params.blacklist("LoopDelegateCallsDepthThenRevert_d0g0v0_Constantinople\\[Constantinople\\]");
params.blacklist("LoopCallsThenRevert_d0g1v0_Constantinople\\[Constantinople\\]");
params.blacklist("Call1024OOG_d0g1v0_Constantinople\\[Constantinople\\]");
params.blacklist("static_Call1024PreCalls2_d0g0v0_Constantinople\\[Constantinople\\]");
params.blacklist("ABAcalls2_d0g0v0_Constantinople\\[Constantinople\\]");
params.blacklist("CallRecursiveBombLog2_d0g0v0_Constantinople\\[Constantinople\\]");
params.blacklist("CallRecursiveBomb0_d0g0v0_Constantinople\\[Constantinople\\]");
params.blacklist("CallRecursiveBombLog_d0g0v0_Constantinople\\[Constantinople\\]");
params.blacklist("CallRecursiveBomb2_d0g0v0_Constantinople\\[Constantinople\\]");
params.blacklist("CallRecursiveBomb3_d0g0v0_Constantinople\\[Constantinople\\]");
params.blacklist("ABAcalls3_d0g0v0_Constantinople\\[Constantinople\\]");
params.blacklist("CallRecursiveBomb1_d0g0v0_Constantinople\\[Constantinople\\]");
params.blacklist(
"CallRecursiveBomb0_OOG_atMaxCallDepth_d0g0v0_Constantinople\\[Constantinople\\]");
params.blacklist("suicideStorageCheckVCreate2_Constantinople\\[Constantinople\\]");
params.blacklist(
"create2collisionwithSelfdestructSameBlock_Constantinople\\[Constantinople\\]");
}
public static Collection<Object[]> generateTestParametersForConfig(final String[] filePath) {

@ -35,7 +35,8 @@ public class GeneralStateReferenceTestTools {
static {
final String eips =
System.getProperty(
"test.ethereum.state.eips", "Frontier,Homestead,EIP150,EIP158,Byzantium");
"test.ethereum.state.eips",
"Frontier,Homestead,EIP150,EIP158,Byzantium,Constantinople");
EIPS_TO_RUN = Arrays.asList(eips.split(","));
}
@ -68,7 +69,7 @@ public class GeneralStateReferenceTestTools {
// Gas integer value is too large to construct a valid transaction.
params.blacklist("OverflowGasRequire");
// Consumes a huge amount of memory
params.blacklist("static_Call1MB1024Calldepth-Byzantium");
params.blacklist("static_Call1MB1024Calldepth-(Byzantium|Constantinople)");
// Needs investigation (tests pass in other clients)
params.blacklist("createNameRegistratorPerTxsNotEnoughGas-Frontier\\[0\\]");
@ -130,6 +131,117 @@ public class GeneralStateReferenceTestTools {
params.blacklist("UserTransactionGasLimitIsTooLowWhenZeroCost-Frontier");
params.blacklist("UserTransactionGasLimitIsTooLowWhenZeroCost-Homestead");
params.blacklist("ecmul_0-3_5616_28000_96-Byzantium\\[3\\]");
// Constantinople failures to investigate
params.blacklist("badOpcodes-Constantinople\\[115\\]");
params.blacklist("Call1024OOG-Constantinople\\[0\\]");
params.blacklist("Call1024OOG-Constantinople\\[1\\]");
params.blacklist("CallRecursiveBombPreCall-Constantinople");
params.blacklist("Call1024PreCalls-Constantinople");
params.blacklist("Callcode1024OOG-Constantinople");
params.blacklist("Callcode1024BalanceTooLow-Constantinople");
params.blacklist("Call1024BalanceTooLow-Constantinople");
params.blacklist("Callcode1024BalanceTooLow-Constantinople");
params.blacklist("Call1024PreCalls-Constantinople");
params.blacklist("CallRecursiveBombLog2-Constantinople");
params.blacklist("CREATE2_Suicide-Constantinople\\[10\\]");
params.blacklist("CREATE2_Suicide-Constantinople\\[11\\]");
params.blacklist("CREATE2_Suicide-Constantinople\\[1\\]");
params.blacklist("CREATE2_Suicide-Constantinople\\[3\\]");
params.blacklist("CREATE2_Suicide-Constantinople\\[5\\]");
params.blacklist("CREATE2_Suicide-Constantinople\\[7\\]");
params.blacklist("CREATE2_Suicide-Constantinople\\[8\\]");
params.blacklist("CREATE2_Suicide-Constantinople\\[9\\]");
params.blacklist("create2collisionSelfdestructed2-Constantinople\\[0\\]");
params.blacklist("create2collisionSelfdestructed2-Constantinople\\[1\\]");
params.blacklist("create2collisionSelfdestructedRevert-Constantinople\\[0\\]");
params.blacklist("create2collisionSelfdestructedRevert-Constantinople\\[1\\]");
params.blacklist("create2collisionSelfdestructedRevert-Constantinople\\[2\\]");
params.blacklist("create2collisionNonce-Constantinople\\[0\\]");
params.blacklist("create2collisionNonce-Constantinople\\[1\\]");
params.blacklist("create2collisionNonce-Constantinople\\[2\\]");
params.blacklist("RevertInCreateInInitCreate2-Constantinople");
params.blacklist("create2InitCodes-Constantinople\\[0\\]");
params.blacklist("create2InitCodes-Constantinople\\[4\\]");
params.blacklist("create2InitCodes-Constantinople\\[5\\]");
params.blacklist("create2InitCodes-Constantinople\\[6\\]");
params.blacklist("create2InitCodes-Constantinople\\[7\\]");
params.blacklist("create2InitCodes-Constantinople\\[8\\]");
params.blacklist("create2collisionCode-Constantinople\\[0\\]");
params.blacklist("create2collisionCode-Constantinople\\[1\\]");
params.blacklist("create2collisionCode-Constantinople\\[2\\]");
params.blacklist("returndatacopy_0_0_following_successful_create-Constantinople");
params.blacklist("Create2OnDepth1024-Constantinople");
params.blacklist("CreateMessageRevertedOOGInInit-Constantinople\\[1\\]");
params.blacklist("RevertDepthCreate2OOG-Constantinople\\[6\\]");
params.blacklist("RevertDepthCreate2OOG-Constantinople\\[7\\]");
params.blacklist("create2noCash-Constantinople\\[1\\]");
params.blacklist("create2collisionCode2-Constantinople\\[0\\]");
params.blacklist("create2collisionCode2-Constantinople\\[1\\]");
params.blacklist("returndatasize_following_successful_create-Constantinople");
params.blacklist("RevertDepthCreateAddressCollision-Constantinople\\[6\\]");
params.blacklist("RevertDepthCreateAddressCollision-Constantinople\\[7\\]");
params.blacklist("call_outsize_then_create2_successful_then_returndatasize-Constantinople");
params.blacklist("create2callPrecompiles-Constantinople\\[0\\]");
params.blacklist("create2callPrecompiles-Constantinople\\[1\\]");
params.blacklist("create2callPrecompiles-Constantinople\\[2\\]");
params.blacklist("create2callPrecompiles-Constantinople\\[3\\]");
params.blacklist("create2callPrecompiles-Constantinople\\[4\\]");
params.blacklist("create2callPrecompiles-Constantinople\\[5\\]");
params.blacklist("create2callPrecompiles-Constantinople\\[6\\]");
params.blacklist("create2callPrecompiles-Constantinople\\[7\\]");
params.blacklist("create2checkFieldsInInitcode-Constantinople\\[0\\]");
params.blacklist("create2checkFieldsInInitcode-Constantinople\\[2\\]");
params.blacklist("create2checkFieldsInInitcode-Constantinople\\[4\\]");
params.blacklist("create2checkFieldsInInitcode-Constantinople\\[5\\]");
params.blacklist("create2checkFieldsInInitcode-Constantinople\\[6\\]");
params.blacklist("create2collisionBalance-Constantinople\\[0\\]");
params.blacklist("create2collisionBalance-Constantinople\\[1\\]");
params.blacklist("create2collisionBalance-Constantinople\\[2\\]");
params.blacklist("create2collisionBalance-Constantinople\\[3\\]");
params.blacklist("Create2OnDepth1023-Constantinople");
params.blacklist("Create2Recursive-Constantinople\\[0\\]");
params.blacklist("Create2Recursive-Constantinople\\[1\\]");
params.blacklist("create2SmartInitCode-Constantinople\\[0\\]");
params.blacklist("create2SmartInitCode-Constantinople\\[1\\]");
params.blacklist("create2collisionStorage-Constantinople\\[0\\]");
params.blacklist("create2collisionStorage-Constantinople\\[1\\]");
params.blacklist("create2collisionStorage-Constantinople\\[2\\]");
params.blacklist("CreateMessageReverted-Constantinople\\[1\\]");
params.blacklist("create2collisionSelfdestructedOOG-Constantinople\\[0\\]");
params.blacklist("create2collisionSelfdestructedOOG-Constantinople\\[1\\]");
params.blacklist("create2collisionSelfdestructedOOG-Constantinople\\[2\\]");
params.blacklist("Create2OOGafterInitCodeReturndata2-Constantinople\\[1\\]");
params.blacklist("call_then_create2_successful_then_returndatasize-Constantinople");
params.blacklist("create2collisionSelfdestructed-Constantinople\\[0\\]");
params.blacklist("create2collisionSelfdestructed-Constantinople\\[1\\]");
params.blacklist("create2collisionSelfdestructed-Constantinople\\[2\\]");
params.blacklist("Call1024OOG-Constantinople");
params.blacklist("Delegatecall1024OOG-Constantinople");
params.blacklist("CallRecursiveBombPreCall-Constantinople");
params.blacklist("Call1024PreCalls-Constantinople");
params.blacklist("Delegatecall1024-Constantinople");
params.blacklist("Create2OOGafterInitCode-Constantinople\\[1\\]");
params.blacklist("Call1MB1024Calldepth-Constantinople\\[1\\]");
params.blacklist("LoopCallsDepthThenRevert3-Constantinople");
params.blacklist("LoopCallsDepthThenRevert-Constantinople");
params.blacklist("LoopDelegateCallsDepthThenRevert-Constantinople");
params.blacklist("LoopCallsThenRevert-Constantinople\\[0\\]");
params.blacklist("LoopCallsThenRevert-Constantinople\\[1\\]");
params.blacklist("RevertInCreateInInit-Constantinople");
params.blacklist("LoopCallsDepthThenRevert2-Constantinople");
params.blacklist("Call1024BalanceTooLow-Constantinople");
params.blacklist("Call1024BalanceTooLow-Constantinople");
params.blacklist("static_Call1024PreCalls2-Constantinople\\[0\\]");
params.blacklist("CallRecursiveBomb0_OOG_atMaxCallDepth-Constantinople");
params.blacklist("CallRecursiveBomb3-Constantinople");
params.blacklist("ABAcalls3-Constantinople");
params.blacklist("CallRecursiveBomb2-Constantinople");
params.blacklist("CallRecursiveBombLog-Constantinople");
params.blacklist("CallRecursiveBomb0-Constantinople");
params.blacklist("CallRecursiveBomb1-Constantinople");
params.blacklist("ABAcalls2-Constantinople");
params.blacklist("ecmul_0-3_5616_28000_96-Constantinople\\[3\\]");
}
public static Collection<Object[]> generateTestParametersForConfig(final String[] filePath) {

@ -1 +1 @@
Subproject commit 0c76bf7d18e63bb65e4b8ffdd20e602e97e1c83b
Subproject commit 95a309203890e6244c6d4353ca411671973c13b5
Loading…
Cancel
Save