Skip to content

Commit 58cab80

Browse files
authored
Enable running new Istanbul tests, add list of failing tests (#599)
* evm, state-loader: add Istanbul schedule * Makefile: use Istanbul tests and LegacyTests * tests/{failing,slow}.{llvm,ocaml}: add failing/slow Istanbul tests A test is `slow` if it either takes longer that 120s or passes in 120s but takes >10G RAM. A test is `failing` if it exits with code non-0 in less than 120s.
1 parent 4d66123 commit 58cab80

File tree

7 files changed

+2866
-1
lines changed

7 files changed

+2866
-1
lines changed

Makefile

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -467,7 +467,8 @@ test-all-vm: $(all_vm_tests:=.run)
467467
test-rest-vm: $(rest_vm_tests:=.run)
468468
test-vm: $(passing_vm_tests:=.run)
469469

470-
all_bchain_tests = $(wildcard tests/ethereum-tests/LegacyTests/Constantinople/BlockchainTests/GeneralStateTests/*/*.json)
470+
all_bchain_tests = $(wildcard tests/ethereum-tests/BlockchainTests/GeneralStateTests/*/*.json) \
471+
$(wildcard tests/ethereum-tests/LegacyTests/Constantinople/BlockchainTests/GeneralStateTests/*/*.json)
471472
quick_bchain_tests = $(filter-out $(slow_conformance_tests), $(all_bchain_tests))
472473
passing_bchain_tests = $(filter-out $(failing_conformance_tests), $(quick_bchain_tests))
473474
rest_bchain_tests = $(filter-out $(passing_bchain_tests), $(all_bchain_tests))

evm.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1690,6 +1690,7 @@ Precompiled Contracts
16901690
rule #precompiledAccounts(BYZANTIUM) => #precompiledAccounts(SPURIOUS_DRAGON) SetItem(5) SetItem(6) SetItem(7) SetItem(8)
16911691
rule #precompiledAccounts(CONSTANTINOPLE) => #precompiledAccounts(BYZANTIUM)
16921692
rule #precompiledAccounts(PETERSBURG) => #precompiledAccounts(CONSTANTINOPLE)
1693+
rule #precompiledAccounts(ISTANBUL) => #precompiledAccounts(PETERSBURG)
16931694
```
16941695

16951696
- `ECREC` performs ECDSA public key recovery.
@@ -2431,6 +2432,16 @@ A `ScheduleConst` is a constant determined by the fee schedule.
24312432
requires notBool ( SCHEDFLAG ==K Ghasdirtysstore )
24322433
```
24332434

2435+
### Istanbul Schedule
2436+
2437+
```k
2438+
syntax Schedule ::= "ISTANBUL" [klabel(ISTANBUL_EVM), symbol]
2439+
// -------------------------------------------------------------
2440+
rule SCHEDCONST < ISTANBUL > => SCHEDCONST < PETERSBURG >
2441+
2442+
rule SCHEDFLAG << ISTANBUL >> => SCHEDFLAG << PETERSBURG >>
2443+
```
2444+
24342445
EVM Program Representations
24352446
===========================
24362447

state-loader.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -171,6 +171,7 @@ The `"network"` key allows setting the fee schedule inside the test.
171171
rule #asScheduleString("Byzantium") => BYZANTIUM
172172
rule #asScheduleString("Constantinople") => CONSTANTINOPLE
173173
rule #asScheduleString("ConstantinopleFix") => PETERSBURG
174+
rule #asScheduleString("Istanbul") => ISTANBUL
174175
```
175176

176177
The `"rlp"` key loads the block information.

tests/failing.llvm

Lines changed: 1419 additions & 0 deletions
Large diffs are not rendered by default.

tests/failing.ocaml

Lines changed: 1415 additions & 0 deletions
Large diffs are not rendered by default.

tests/slow.llvm

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,9 @@
1+
tests/ethereum-tests/BlockchainTests/GeneralStateTests/stQuadraticComplexityTest/QuadraticComplexitySolidity_CallDataCopy.json
2+
tests/ethereum-tests/BlockchainTests/GeneralStateTests/stQuadraticComplexityTest/Return50000_2.json
3+
tests/ethereum-tests/BlockchainTests/GeneralStateTests/stQuadraticComplexityTest/Return50000.json
4+
tests/ethereum-tests/BlockchainTests/GeneralStateTests/stStaticCall/static_Call50000.json
5+
tests/ethereum-tests/BlockchainTests/GeneralStateTests/stStaticCall/static_Call50000_rip160.json
6+
tests/ethereum-tests/BlockchainTests/GeneralStateTests/stTimeConsuming/static_Call50000_sha256.json
17
tests/ethereum-tests/LegacyTests/Constantinople/BlockchainTests/GeneralStateTests/stAttackTest/ContractCreationSpam_d0g0v0.json
28
tests/ethereum-tests/LegacyTests/Constantinople/BlockchainTests/GeneralStateTests/stCodeSizeLimit/codesizeOOGInvalidSize_d0g0v0.json
39
tests/ethereum-tests/LegacyTests/Constantinople/BlockchainTests/GeneralStateTests/stCodeSizeLimit/codesizeValid_d0g0v0.json

tests/slow.ocaml

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,15 @@
1+
tests/ethereum-tests/BlockchainTests/GeneralStateTests/stQuadraticComplexityTest/Call50000.json
2+
tests/ethereum-tests/BlockchainTests/GeneralStateTests/stQuadraticComplexityTest/Callcode50000.json
3+
tests/ethereum-tests/BlockchainTests/GeneralStateTests/stQuadraticComplexityTest/QuadraticComplexitySolidity_CallDataCopy.json
4+
tests/ethereum-tests/BlockchainTests/GeneralStateTests/stQuadraticComplexityTest/Return50000_2.json
5+
tests/ethereum-tests/BlockchainTests/GeneralStateTests/stQuadraticComplexityTest/Return50000.json
6+
tests/ethereum-tests/BlockchainTests/GeneralStateTests/stStaticCall/static_Call50000_ecrec.json
7+
tests/ethereum-tests/BlockchainTests/GeneralStateTests/stStaticCall/static_Call50000_identity2.json
8+
tests/ethereum-tests/BlockchainTests/GeneralStateTests/stStaticCall/static_Call50000_identity.json
9+
tests/ethereum-tests/BlockchainTests/GeneralStateTests/stStaticCall/static_Call50000.json
10+
tests/ethereum-tests/BlockchainTests/GeneralStateTests/stStaticCall/static_Call50000_rip160.json
11+
tests/ethereum-tests/BlockchainTests/GeneralStateTests/stStaticCall/static_Return50000_2.json
12+
tests/ethereum-tests/BlockchainTests/GeneralStateTests/stTimeConsuming/static_Call50000_sha256.json
113
tests/ethereum-tests/LegacyTests/Constantinople/BlockchainTests/GeneralStateTests/stCreateTest/CREATE_ContractRETURNBigOffset_d0g0v0.json
214
tests/ethereum-tests/LegacyTests/Constantinople/BlockchainTests/GeneralStateTests/stQuadraticComplexityTest/Call50000bytesContract50_1_d0g0v0.json
315
tests/ethereum-tests/LegacyTests/Constantinople/BlockchainTests/GeneralStateTests/stQuadraticComplexityTest/Call50000bytesContract50_1_d0g1v0.json

0 commit comments

Comments
 (0)