Skip to content

Tests update 10.3: Test Headers

Compare
Choose a tag to compare
@winsvega winsvega released this 09 Jan 12:43
· 661 commits to develop since this release

The recent tests changes:

A few more edge test cases around jump, return, revert, maxnonce, maxcodesize, sar/shr/shl.
Updated the test headers to include solidity version.
Transactions include sender field.

Announcement

The test process diagram: http://tinyurl.com/2ctak8yn
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/v10.2

Test format

Tests Fillers

"indexes" section can be entirely/partially omitted. the defult value is -1 to all fields.
individual fields in "indexes" can be omitted. the default value is -1.

        "expect" : [
            {
                "indexes" : {  #the entire section can be omitted
                    "data" : -1,
                    "//gas" : -1,  #this field can be omitted.
                    "value" : -1
                },

GeneralStateTests/BlockchainTests Filled

Changes in the "_info" section:
Optional field "labels" with debug info on transaction index labels does not include : label prefix to save space
Added solidity solc version string info

        "_info" : {
            ...
            "labels" : {
                "0" : "transaction1"
            },
            "solidity" : "Version: 0.8.5+commit.a4f2e591.Linux.g++"
            ...
        }

Changes in the "transaction" section:
Added "sender" field to recover the public address from secretKey

        "transaction" : {
            "secretKey" : "0x45a915e4d060149eb4365960e6a7a45f334393093061116b197e3240065ff2d8",
            "sender" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b"
            ...
        },
        "transaction" : {
             "r" : "0x8bb6e17e660cdefc2f6f8124e8f11cd74ac6d91ee05d3a1aa6f513335da0e4a7",
             "s" : "0x1d356c9ff34a96d10ec2e0f9d708eea9da2801a37de491c5af43df7c77d56c0c",
             "sender" : "0xa94f5374fce5edbc8e2a8697c15331677e6ebf0b",
             "v" : "0x1b",
            ...
        }

Test Regeneration

Update all:
PR #1009 (regenerate test headers)

  • Documentation
    PR #999
    PR #1005

  • More codesize limit tests around contract creation
    PR #986 (tests for account with max code size)

  • Max account nonce tests
    PR #934 (check that create/create2 with account max nonce does not work)
    PR #989 (delegate call + create with max nonce)

  • Additional tests around return buffer
    PR #994 (check return buffer, revert buffer)

  • Additional test vectors around SAR/SHR/SHL
    PR #1004 (shift operations test vectors)

  • Stress test for max contract code size creation/revert
    PR #992 (create maxCodeSize x 250, OOG/revert, selfdestruct)

  • Correctnes of revert operation (refunds) upon oog/revert inside create/2 and transaction create subcall
    PR #1003 (correctness of revert operation (refunds) in subcalls)

  • Random test generator script for retesteth from ORI
    PR #949 (random test generator script for retesteth)

  • More tests around JUPM/JUMPDEST
    PR #1006

  • Random test failing on besu
    PR #1007

Upcoming changes:

Implement PoS/Merge tests
Implement malicious rlp tests in StateTest or BlockchainTest format (need more debugging with t8n)
Besu retesteth RPC support (web vmtracing support)
Random state test script