2018-09-19 16:46:14 +00:00
|
|
|
# Nimbus
|
|
|
|
# Copyright (c) 2018 Status Research & Development GmbH
|
|
|
|
# Licensed under either of
|
|
|
|
# * Apache License, version 2.0, ([LICENSE-APACHE](LICENSE-APACHE) or http://www.apache.org/licenses/LICENSE-2.0)
|
|
|
|
# * MIT license ([LICENSE-MIT](LICENSE-MIT) or http://opensource.org/licenses/MIT)
|
|
|
|
# at your option. This file may not be copied, modified, or distributed except according to those terms.
|
|
|
|
|
|
|
|
# XXX: when all but a relative few dozen, say, GeneralStateTests run, remove this,
|
|
|
|
# but for now, this enables some CI use before that to prevent regressions. In the
|
|
|
|
# separate file here because it would otherwise just distract. Could use all sorts
|
|
|
|
# of O(1) or O(log n) lookup structures, or be more careful to only initialize the
|
|
|
|
# table once, but notion's that it should shrink reasonable quickly and disappear,
|
|
|
|
# being mostly used for short-term regression prevention.
|
|
|
|
func allowedFailingGeneralStateTest*(folder, name: string): bool =
|
2019-03-11 05:12:35 +00:00
|
|
|
let allowedFailingGeneralStateTests = @[
|
2018-11-28 19:02:21 +00:00
|
|
|
"TransactionCollisionToEmptyButCode.json",
|
|
|
|
"TransactionCollisionToEmptyButNonce.json",
|
|
|
|
"deleagateCallAfterValueTransfer.json",
|
|
|
|
"delegatecallInInitcodeToEmptyContract.json",
|
|
|
|
"delegatecallInInitcodeToExistingContract.json",
|
|
|
|
"delegatecallSenderCheck.json",
|
|
|
|
"delegatecallValueCheck.json",
|
|
|
|
"delegatecodeDynamicCode.json",
|
|
|
|
"delegatecodeDynamicCode2SelfCall.json",
|
|
|
|
"CALLCODEEcrecoverV_prefixedf0.json",
|
|
|
|
"randomStatetest14.json",
|
|
|
|
"randomStatetest184.json",
|
2019-03-13 07:41:16 +00:00
|
|
|
"randomStatetest85.json",
|
2018-11-28 19:02:21 +00:00
|
|
|
"RevertOpcodeCalls.json",
|
|
|
|
"RevertOpcodeDirectCall.json",
|
|
|
|
"RevertOpcodeInCallsOnNonEmptyReturnData.json",
|
|
|
|
"RevertOpcodeMultipleSubCalls.json",
|
|
|
|
"RevertOpcodeReturn.json",
|
|
|
|
"tx_e1c174e2.json",
|
|
|
|
"suicideCoinbase.json",
|
|
|
|
"Opcodes_TransactionInit.json",
|
|
|
|
"SuicidesMixingCoinbase.json",
|
|
|
|
"TransactionFromCoinbaseHittingBlockGasLimit1.json",
|
|
|
|
"delegatecallAfterTransition.json",
|
|
|
|
"delegatecallAtTransition.json",
|
|
|
|
"delegatecallBeforeTransition.json",
|
|
|
|
# 2018-12-07:
|
2019-02-07 05:48:10 +00:00
|
|
|
# 2019-02-07:
|
2019-02-15 07:47:13 +00:00
|
|
|
# 2019-02-15:
|
|
|
|
"randomStatetest101.json",
|
|
|
|
"randomStatetest7.json",
|
2019-02-17 01:02:04 +00:00
|
|
|
# 2019-02-17:
|
2019-02-20 08:27:46 +00:00
|
|
|
"pairingTest.json",
|
|
|
|
"pointAdd.json",
|
|
|
|
"pointAddTrunc.json",
|
|
|
|
"pointMulAdd.json",
|
|
|
|
"pointMulAdd2.json",
|
|
|
|
# most likely to crash:
|
|
|
|
"ContractCreationSpam.json",
|
|
|
|
"Call1024OOG.json",
|
|
|
|
"Call1024PreCalls.json",
|
|
|
|
"CallRecursiveBombPreCall.json",
|
|
|
|
"Delegatecall1024.json",
|
|
|
|
"Delegatecall1024OOG.json",
|
|
|
|
"recursiveCreate.json",
|
|
|
|
"recursiveCreateReturnValue.json",
|
|
|
|
"JUMPDEST_Attack.json",
|
|
|
|
"JUMPDEST_AttackwithJump.json",
|
|
|
|
"ABAcalls1.json",
|
|
|
|
"ABAcalls2.json",
|
|
|
|
"CallRecursiveBomb0.json",
|
|
|
|
"CallRecursiveBomb0_OOG_atMaxCallDepth.json",
|
|
|
|
"CallRecursiveBomb1.json",
|
|
|
|
"CallRecursiveBomb2.json",
|
|
|
|
"CallRecursiveBombLog.json",
|
|
|
|
"CallRecursiveBombLog2.json",
|
2019-03-18 02:15:37 +00:00
|
|
|
"Call1024BalanceTooLow.json",
|
|
|
|
# Frontier recursive
|
|
|
|
"Callcode1024OOG.json",
|
|
|
|
"callcallcodecall_ABCB_RECURSIVE.json",
|
|
|
|
"callcallcodecallcode_ABCB_RECURSIVE.json",
|
|
|
|
"callcodecallcall_ABCB_RECURSIVE.json",
|
|
|
|
"callcodecallcallcode_ABCB_RECURSIVE.json",
|
|
|
|
"callcodecallcodecall_ABCB_RECURSIVE.json",
|
|
|
|
"callcodecallcodecallcode_ABCB_RECURSIVE.json",
|
2019-03-18 05:48:32 +00:00
|
|
|
# Frontier failed test cases
|
2019-03-18 04:27:32 +00:00
|
|
|
"callcallcallcode_001_OOGMAfter_1.json",
|
|
|
|
"callcallcallcode_001_OOGMAfter_2.json",
|
|
|
|
"createInitFailUndefinedInstruction.json",
|
|
|
|
"callcallcodecall_010_OOGMAfter.json",
|
|
|
|
|
|
|
|
# Failed in homestead but OK in Frontier
|
|
|
|
"callcallcallcode_001.json",
|
2019-03-18 02:15:37 +00:00
|
|
|
"callcallcallcode_001_OOGE.json",
|
|
|
|
"callcallcallcode_001_OOGMAfter.json",
|
2019-03-18 04:27:32 +00:00
|
|
|
"callcallcallcode_001_OOGMBefore.json",
|
2019-03-18 02:15:37 +00:00
|
|
|
"callcallcallcode_001_SuicideEnd.json",
|
|
|
|
"callcallcallcode_ABCB_RECURSIVE.json",
|
2019-03-18 04:27:32 +00:00
|
|
|
"callcallcode_01.json",
|
2019-03-18 02:15:37 +00:00
|
|
|
"callcallcode_01_OOGE.json",
|
|
|
|
"callcallcode_01_SuicideEnd.json",
|
2019-03-18 04:27:32 +00:00
|
|
|
"callcallcodecall_010.json",
|
2019-03-18 02:15:37 +00:00
|
|
|
"callcallcodecall_010_OOGMBefore.json",
|
|
|
|
"callcallcodecall_010_SuicideEnd.json",
|
|
|
|
"callcallcodecall_010_SuicideMiddle.json",
|
2019-03-18 04:27:32 +00:00
|
|
|
"callcallcodecallcode_011.json",
|
|
|
|
"callcallcodecallcode_011_OOGMAfter.json",
|
2019-03-18 02:15:37 +00:00
|
|
|
"callcallcodecallcode_011_SuicideEnd.json",
|
|
|
|
"callcallcodecallcode_011_SuicideMiddle.json",
|
2019-03-18 04:27:32 +00:00
|
|
|
"callcallcallcode_001.json",
|
|
|
|
"callcallcallcode_001_OOGMAfter.json",
|
|
|
|
"callcallcode_01.json",
|
|
|
|
"callcallcodecall_010.json",
|
|
|
|
"callcallcodecallcode_011.json",
|
|
|
|
"callcodecallcall_100.json",
|
|
|
|
"callcodecallcallcode_101.json",
|
|
|
|
"callcodecallcode_11.json",
|
|
|
|
"callcodecallcodecall_110.json",
|
|
|
|
"callcodecallcodecallcode_111.json",
|
|
|
|
"CallLoseGasOOG.json",
|
|
|
|
"CallcodeLoseGasOOG.json",
|
|
|
|
"callOutput1.json",
|
|
|
|
"callOutput2.json",
|
|
|
|
"callOutput3.json",
|
|
|
|
"callOutput3Fail.json",
|
|
|
|
"callOutput3partial.json",
|
|
|
|
"callOutput3partialFail.json",
|
|
|
|
"callcodeOutput1.json",
|
|
|
|
"callcodeOutput2.json",
|
|
|
|
"callcodeOutput3.json",
|
|
|
|
"callcodeOutput3Fail.json",
|
|
|
|
"callcodeOutput3partial.json",
|
|
|
|
"callcodeOutput3partialFail.json"
|
2018-11-28 19:02:21 +00:00
|
|
|
]
|
|
|
|
result = name in allowedFailingGeneralStateTests
|