Skip to content

Tests update 13 Cancun tests

Compare
Choose a tag to compare
@winsvega winsvega released this 02 Nov 09:44
· 112 commits to develop since this release

The recent tests changes:

Regenerate all tests using cancun rules
Move Cancun eip tests from EIPTests folder into normal test folders
Test diagram updated: https://tinyurl.com/y525ezs7

Announcement

New docker instructions for all t8n supported clients: https://github.com/ethereum/retesteth/tree/develop#docker-instructions
The test process diagram: https://tinyurl.com/y525ezs7
Reminder of a brand new web interface for test debugging: http://retesteth.ethdevops.io/web/
Tests stats on latest builds: http://retesteth.ethdevops.io/
(implement test RPC support or t8ntool protocol to apply for the page. https://ethereum-tests.readthedocs.io/en/latest/t8ntool-ref.html)
Previous release link: https://github.com/ethereum/tests/releases/tag/v12.4

Test format

New test folder GeneralStateTests/Cancun
New test folder /src/GeneralStateTestsFiller/Cancun

Tests Fillers

defining solidity yul now allows to switch optimisations and select evm version:
--evm-version shanghai, use default solc optimisations

      code: |
        :yul shanghai optimise {
          sstore(0, 1)
      } 

--evm-version london, no optimisations (default)

      code: |
        :yul london {
          sstore(0, 1)
      } 

This is because each new version of solc introduce default optimisations that change the compiled code bytes. to avoid this affecting the tests by default solc optimisations in tests are disabled

GeneralStateTests/BlockchainTests Filled

Invalid blocks are now transcripted. new format of invalid bc block:

{
                "blocknumber" : "3",
                "chainname" : "default",
                "expectException" : "InvalidGasLimit2",
                "rlp" : "0x...",
                "rlp_decoded" : {
                    "blockHeader" : {
                             ...
                    },
                    "transactions" : [
                        {
                               ...
                        }
                    ],
                    "uncleHeaders" : [
                        {
                               ...
                        }
                    ],
                    "withdrawals" : [
                    ]
                }
}

Keep in mind that this are debug info fields: blocknumber, chainname, expectException

Test Regeneration

Update all:

  • All tests regeneration with Cancun rules
    PR #1297
    PR #1312

  • Documentation
    PR ---

TESTS

  • Tests for contract creation
    PR #1306

  • Regenerate transaction sequence into invalid blocks
    PR #1316

  • Move Cancun tests from EIP Tests
    PR #1313

EIPTests/EOFTests

  • Pyspecs Cancun tests
    PR #1299 Update Pyspecs to 1.0.5

Cosmetic

  • Fix fillers json with missing commas
    PR #1310

Upcoming changes:

Support pyspec .py test filling with different clients using retesteth
Nimbus --vmtrace support