From ebea970f587479f841fb988640a49a9043563665 Mon Sep 17 00:00:00 2001 From: khaeljy Date: Sat, 30 Sep 2023 09:41:39 +0000 Subject: [PATCH] add `stStaticCall` testsuite --- blockchain-tests-skip.yml | 208 ++++++++++++++++++++++++++++++- crates/ef-testing/tests/tests.rs | 2 +- 2 files changed, 208 insertions(+), 2 deletions(-) diff --git a/blockchain-tests-skip.yml b/blockchain-tests-skip.yml index 72af20e3..8a801515 100644 --- a/blockchain-tests-skip.yml +++ b/blockchain-tests-skip.yml @@ -319,7 +319,213 @@ filename: - NonZeroValue_SUICIDE.json # ef-tests #361 - RETURN_Bounds.json # ef-tests #366 - FillStack.json # ef-tests #367 - + - StaticcallToPrecompileFromContractInitialization.json # ef-tests #421 + - static_CallContractToCreateContractAndCallItOOG.json # ef-tests #421 + - static_CallContractToCreateContractOOG.json # ef-tests #421 + - static_CallContractToCreateContractOOGBonusGas.json # ef-tests #421 + - static_CallContractToCreateContractWhichWouldCreateContractIfCalled.json # ef-tests #421 + - static_callCreate2.json # ef-tests #421 + - static_callCreate3.json # ef-tests #421 + - static_CREATE_EmptyContractAndCallIt_0wei.json # ef-tests #421 + - static_CREATE_EmptyContractWithStorageAndCallIt_0wei.json # ef-tests #421 + - static_RETURN_BoundsOOG.json # ef-tests #421 + - static_contractCreationMakeCallThatAskMoreGasThenTransactionProvided.json # ef-tests #422 + - static_contractCreationOOGdontLeaveEmptyContractViaTransaction.json # ef-tests #422 + - static_CallSha256_1_nonzeroValue.json # ef-tests #423 + - static_CallIdentity_1_nonzeroValue.json # ef-tests #423 + - StaticcallToPrecompileFromCalledContract.json # ef-tests #424 + - StaticcallToPrecompileFromTransaction.json # ef-tests #424 + - static_ABAcalls0.json # ef-tests #424 + - static_ABAcalls1.json # ef-tests #424 + - static_ABAcalls2.json # ef-tests #424 + - static_ABAcalls3.json # ef-tests #424 + - static_ABAcallsSuicide0.json # ef-tests #424 + - static_Call10.json # ef-tests #424 + - static_Call1024BalanceTooLow.json # ef-tests #424 + - static_Call1024BalanceTooLow2.json # ef-tests #424 + - static_Call1024OOG.json # ef-tests #424 + - static_Call1024PreCalls.json # ef-tests #424 + - static_Call1024PreCalls2.json # ef-tests #424 + - static_Call1024PreCalls3.json # ef-tests #424 + - static_Call1MB1024Calldepth.json # ef-tests #424 + - static_Call50000.json # ef-tests #424 + - static_Call50000bytesContract50_1.json # ef-tests #424 + - static_Call50000bytesContract50_2.json # ef-tests #424 + - static_Call50000bytesContract50_3.json # ef-tests #424 + - static_Call50000_ecrec.json # ef-tests #424 + - static_Call50000_identity.json # ef-tests #424 + - static_Call50000_identity2.json # ef-tests #424 + - static_Call50000_rip160.json # ef-tests #424 + - static_CallAskMoreGasOnDepth2ThenTransactionHas.json # ef-tests #424 + - static_callBasic.json # ef-tests #424 + - static_callcallcallcode_001.json # ef-tests #424 + - static_callcallcallcode_001_2.json # ef-tests #424 + - static_callcallcallcode_001_OOGE.json # ef-tests #424 + - static_callcallcallcode_001_OOGE_2.json # ef-tests #424 + - static_callcallcallcode_001_OOGMAfter.json # ef-tests #424 + - static_callcallcallcode_001_OOGMAfter2.json # ef-tests #424 + - static_callcallcallcode_001_OOGMAfter_2.json # ef-tests #424 + - static_callcallcallcode_001_OOGMAfter_3.json # ef-tests #424 + - static_callcallcallcode_001_OOGMBefore.json # ef-tests #424 + - static_callcallcallcode_001_OOGMBefore2.json # ef-tests #424 + - static_callcallcallcode_001_SuicideEnd.json # ef-tests #424 + - static_callcallcallcode_001_SuicideEnd2.json # ef-tests #424 + - static_callcallcallcode_001_SuicideMiddle.json # ef-tests #424 + - static_callcallcallcode_001_SuicideMiddle2.json # ef-tests #424 + - static_callcallcall_000.json # ef-tests #424 + - static_callcallcall_000_OOGE.json # ef-tests #424 + - static_callcallcall_000_OOGMAfter.json # ef-tests #424 + - static_callcallcall_000_OOGMAfter2.json # ef-tests #424 + - static_callcallcall_000_OOGMBefore.json # ef-tests #424 + - static_callcallcall_000_SuicideEnd.json # ef-tests #424 + - static_callcallcall_000_SuicideMiddle.json # ef-tests #424 + - static_callcallcodecallcode_011.json # ef-tests #424 + - static_callcallcodecallcode_011_2.json # ef-tests #424 + - static_callcallcodecallcode_011_OOGE.json # ef-tests #424 + - static_callcallcodecallcode_011_OOGE_2.json # ef-tests #424 + - static_callcallcodecallcode_011_OOGMAfter.json # ef-tests #424 + - static_callcallcodecallcode_011_OOGMAfter2.json # ef-tests #424 + - static_callcallcodecallcode_011_OOGMAfter_1.json # ef-tests #424 + - static_callcallcodecallcode_011_OOGMAfter_2.json # ef-tests #424 + - static_callcallcodecallcode_011_OOGMBefore.json # ef-tests #424 + - static_callcallcodecallcode_011_OOGMBefore2.json # ef-tests #424 + - static_callcallcodecallcode_011_SuicideEnd.json # ef-tests #424 + - static_callcallcodecallcode_011_SuicideEnd2.json # ef-tests #424 + - static_callcallcodecallcode_011_SuicideMiddle.json # ef-tests #424 + - static_callcallcodecallcode_011_SuicideMiddle2.json # ef-tests #424 + - static_callcallcodecallcode_ABCB_RECURSIVE.json # ef-tests #424 + - static_callcallcodecallcode_ABCB_RECURSIVE2.json # ef-tests #424 + - static_callcallcodecall_010.json # ef-tests #424 + - static_callcallcodecall_010_2.json # ef-tests #424 + - static_callcallcodecall_010_OOGE.json # ef-tests #424 + - static_callcallcodecall_010_OOGE_2.json # ef-tests #424 + - static_callcallcodecall_010_OOGMAfter.json # ef-tests #424 + - static_callcallcodecall_010_OOGMAfter2.json # ef-tests #424 + - static_callcallcodecall_010_OOGMAfter_2.json # ef-tests #424 + - static_callcallcodecall_010_OOGMAfter_3.json # ef-tests #424 + - static_callcallcodecall_010_OOGMBefore.json # ef-tests #424 + - static_callcallcodecall_010_OOGMBefore2.json # ef-tests #424 + - static_callcallcodecall_010_SuicideEnd.json # ef-tests #424 + - static_callcallcodecall_010_SuicideEnd2.json # ef-tests #424 + - static_callcallcodecall_010_SuicideMiddle.json # ef-tests #424 + - static_callcallcodecall_010_SuicideMiddle2.json # ef-tests #424 + - static_callcallcodecall_ABCB_RECURSIVE.json # ef-tests #424 + - static_callcallcodecall_ABCB_RECURSIVE2.json # ef-tests #424 + - static_callcallcode_01_2.json # ef-tests #424 + - static_callcallcode_01_OOGE_2.json # ef-tests #424 + - static_callcallcode_01_SuicideEnd.json # ef-tests #424 + - static_callcallcode_01_SuicideEnd2.json # ef-tests #424 + - static_callcall_00.json # ef-tests #424 + - static_callcall_00_OOGE.json # ef-tests #424 + - static_callcall_00_OOGE_1.json # ef-tests #424 + - static_callChangeRevert.json # ef-tests #424 + - static_callcodecallcallcode_101.json # ef-tests #424 + - static_callcodecallcallcode_101_2.json # ef-tests #424 + - static_callcodecallcallcode_101_OOGE.json # ef-tests #424 + - static_callcodecallcallcode_101_OOGE_2.json # ef-tests #424 + - static_callcodecallcallcode_101_OOGMAfter.json # ef-tests #424 + - static_callcodecallcallcode_101_OOGMAfter2.json # ef-tests #424 + - static_callcodecallcallcode_101_OOGMAfter_1.json # ef-tests #424 + - static_callcodecallcallcode_101_OOGMAfter_3.json # ef-tests #424 + - static_callcodecallcallcode_101_OOGMBefore.json # ef-tests #424 + - static_callcodecallcallcode_101_OOGMBefore2.json # ef-tests #424 + - static_callcodecallcallcode_101_SuicideEnd.json # ef-tests #424 + - static_callcodecallcallcode_101_SuicideEnd2.json # ef-tests #424 + - static_callcodecallcallcode_101_SuicideMiddle.json # ef-tests #424 + - static_callcodecallcallcode_101_SuicideMiddle2.json # ef-tests #424 + - static_callcodecallcallcode_ABCB_RECURSIVE.json # ef-tests #424 + - static_callcodecallcallcode_ABCB_RECURSIVE2.json # ef-tests #424 + - static_callcodecallcall_100.json # ef-tests #424 + - static_callcodecallcall_100_2.json # ef-tests #424 + - static_callcodecallcall_100_OOGE.json # ef-tests #425 + - static_callcodecallcall_100_OOGE2.json # ef-tests #425 + - static_callcodecallcall_100_OOGMAfter.json # ef-tests #425 + - static_callcodecallcall_100_OOGMAfter2.json # ef-tests #425 + - static_callcodecallcall_100_OOGMAfter_2.json # ef-tests #425 + - static_callcodecallcall_100_OOGMAfter_3.json # ef-tests #425 + - static_callcodecallcall_100_OOGMBefore.json # ef-tests #425 + - static_callcodecallcall_100_OOGMBefore2.json # ef-tests #425 + - static_callcodecallcall_100_SuicideEnd.json # ef-tests #425 + - static_callcodecallcall_100_SuicideEnd2.json # ef-tests #425 + - static_callcodecallcall_100_SuicideMiddle.json # ef-tests #425 + - static_callcodecallcall_100_SuicideMiddle2.json # ef-tests #425 + - static_callcodecallcall_ABCB_RECURSIVE.json # ef-tests #425 + - static_callcodecallcall_ABCB_RECURSIVE2.json # ef-tests #425 + - static_callcodecallcodecallcode_111_SuicideEnd.json # ef-tests #425 + - static_callcodecallcodecall_110.json # ef-tests #425 + - static_callcodecallcodecall_1102.json # ef-tests #425 + - static_callcodecallcodecall_110_2.json # ef-tests #425 + - static_callcodecallcodecall_110_OOGE.json # ef-tests #425 + - static_callcodecallcodecall_110_OOGE2.json # ef-tests #425 + - static_callcodecallcodecall_110_OOGMAfter.json # ef-tests #425 + - static_callcodecallcodecall_110_OOGMAfter2.json # ef-tests #425 + - static_callcodecallcodecall_110_OOGMAfter_2.json # ef-tests #425 + - static_callcodecallcodecall_110_OOGMAfter_3.json # ef-tests #425 + - static_callcodecallcodecall_110_OOGMBefore.json # ef-tests #425 + - static_callcodecallcodecall_110_OOGMBefore2.json # ef-tests #425 + - static_callcodecallcodecall_ABCB_RECURSIVE.json # ef-tests #425 + - static_callcodecallcodecall_ABCB_RECURSIVE2.json # ef-tests #425 + - static_callcodecall_10.json # ef-tests #425 + - static_callcodecall_10_2.json # ef-tests #425 + - static_callcodecall_10_OOGE.json # ef-tests #425 + - static_callcodecall_10_OOGE_2.json # ef-tests #425 + - static_callcode_checkPC.json # ef-tests #425 + - static_callCreate.json # ef-tests #425 + - static_calldelcode_01.json # ef-tests #425 + - static_calldelcode_01_OOGE.json # ef-tests #425 + - static_CallEcrecover0_0input.json # ef-tests #425 + - static_CallEcrecover1.json # ef-tests #425 + - static_CallEcrecover2.json # ef-tests #425 + - static_CallEcrecover80.json # ef-tests #425 + - static_CallEcrecoverCheckLengthWrongV.json # ef-tests #425 + - static_CallEcrecoverR_prefixed0.json # ef-tests #425 + - static_CallIdentitiy_1.json # ef-tests #425 + - static_CallIdentity_5.json # ef-tests #425 + - static_CallLoseGasOOG.json # ef-tests #425 + - static_callOutput1.json # ef-tests #425 + - static_callOutput2.json # ef-tests #425 + - static_callOutput3.json # ef-tests #425 + - static_callOutput3Fail.json # ef-tests #425 + - static_callOutput3partial.json # ef-tests #425 + - static_callOutput3partialFail.json # ef-tests #425 + - static_CallRecursiveBomb0.json # ef-tests #425 + - static_CallRecursiveBomb0_OOG_atMaxCallDepth.json # ef-tests #425 + - static_CallRecursiveBomb1.json # ef-tests #425 + - static_CallRecursiveBomb2.json # ef-tests #425 + - static_CallRecursiveBomb3.json # ef-tests #425 + - static_CallRecursiveBombLog.json # ef-tests #425 + - static_CallRecursiveBombLog2.json # ef-tests #425 + - static_CallRecursiveBombPreCall.json # ef-tests #425 + - static_CallRecursiveBombPreCall2.json # ef-tests #425 + - static_CallRipemd160_4_gas719.json # ef-tests #425 + - static_CallRipemd160_5.json # ef-tests #425 + - static_CallSha256_1.json # ef-tests #425 + - static_CallSha256_2.json # ef-tests #425 + - static_CallSha256_3.json # ef-tests #425 + - static_CallSha256_3_postfix0.json # ef-tests #425 + - static_CallSha256_3_prefix0.json # ef-tests #425 + - static_CallSha256_4.json # ef-tests #425 + - static_CallSha256_4_gas99.json # ef-tests #425 + - static_CallSha256_5.json # ef-tests #425 + - static_callToDelCallOpCodeCheck.json # ef-tests #425 + - static_callToStaticOpCodeCheck.json # ef-tests #425 + - static_callWithHighValueOOGinCall.json # ef-tests #425 + - static_CALL_OneVCallSuicide.json # ef-tests #425 + - static_call_value_inherit_from_call.json # ef-tests #425 + - static_CheckOpcodes.json # ef-tests #425 + - static_CheckOpcodes2.json # ef-tests #425 + - static_CheckOpcodes3.json # ef-tests #425 + - static_CheckOpcodes4.json # ef-tests #425 + - static_CheckOpcodes5.json # ef-tests #425 + - static_log0_emptyMem.json # ef-tests #425 + - static_LoopCallsDepthThenRevert.json # ef-tests #425 + - static_LoopCallsThenRevert.json # ef-tests #425 + - static_PostToReturn1.json # ef-tests #425 + - static_RawCallGasAsk.json # ef-tests #425 + - static_refund_CallToSuicideNoStorage.json # ef-tests #425 + - static_Return50000_2.json # ef-tests #425 + - static_RETURN_Bounds.json # ef-tests #425 + - static_RevertDepth2.json # ef-tests #425 # List of file names regex to be skipped regex: - ^opc.*\.json$ # ef-test #120 diff --git a/crates/ef-testing/tests/tests.rs b/crates/ef-testing/tests/tests.rs index 6efd4a52..7f5abc70 100644 --- a/crates/ef-testing/tests/tests.rs +++ b/crates/ef-testing/tests/tests.rs @@ -119,7 +119,7 @@ mod blockchain_tests { blockchain_tests!(st_solidity_test, stSolidityTest); // blockchain_tests!(st_special_test, stSpecialTest); // 3 failing tests // blockchain_tests!(st_stack_tests, stStackTests); // 7 failing tests - // blockchain_tests!(st_static_call, stStaticCall); // 207 failing tests + blockchain_tests!(st_static_call, stStaticCall); // blockchain_tests!(st_static_flag_enabled, stStaticFlagEnabled); // 13 failing tests // blockchain_tests!(st_system_operations_test, stSystemOperationsTest); // 28 failing tests // blockchain_tests!(st_time_consuming, stTimeConsuming); // 14 failing tests