Skip to content

Releases: ethereum/execution-spec-tests

[email protected]

17 Oct 15:11
32fad71
Compare
Choose a tag to compare
[email protected] Pre-release
Pre-release

⚠️ Note these tests are up to date with the latest devnet-7 spec!

This release is filled with a specific geth branch gballet/jsign-witness-fix aligned with devnet-7. It contains updates and fixes for the past genesis tests due to the addition of witness checks within the testing framework. These verify the correct behavoiur of the witness for specific test cases if defined.

A reasonable order of steps for client teams to start running tests can be found below, starting with the genesis tests from: fixtures_verkle-genesis.tar.gz

  • Run the EIP-6800 tests for a good first check, fixtures/verkle/eip6800_genesis_verkle_tree/ within the extracted the fixture genesis tar.
    • Followed by EIP-4762 tests: fixtures/verkle/eip4762_verkle_gas_witness/.
    • And EIP-7709 tests: fixtures/verkle/eip7709_blockhash_witness/.
  • Run "backfilled" tests, all previous fork tests filled for Verkle, i.e all tests excludingfixtures/verkle/*.
  • (Optional) Run the fixtures_verkle-conversion-stride-0.tar.gz tests, as these contain basic pre-fork tests to make sure nothing is broken on the fork before Verkle.

Changes:

🐘 Verkle Genesis Test Fixtures

Contains verkle specific test vectors from #659 including all existing EEST test cases filled for a verkle configured fork. Note these tests assume the MPT to VKT conversion has completed where we start at the Verkle fork.

Please use fixtures_verkle-genesis.tar.gz!

Generating Genesis Fixtures

Using the geth evm binary from this commit, fill with the following command:

fill --fork Verkle --evm-bin=<path_to_geth_evm> -n auto -m blockchain_test

🔁 Verkle Conversion Test Fixtures - 0 Stride

These aim to verify a basic fork transition from Shanghai to Verkle. 0 stride denotes that the initial MPT remains frozen. Thus the MPT is not being converted to a VKT within these tests. The intention is to check that only blocks after the transition update the VKT, isolating VKT fork transition issues without touching MPT stride conversion logic.

Test cases additionally include Shanghai genesis tests to assert that the fork before Verkle is not broken.

Please use fixtures_verkle-conversion-stride-0.tar.gz!

Generating Conversion Fixtures

Using the geth evm binary from this commit, fill with the following command:

fill --from Shanghai --until EIP6800Transition --evm-bin=<path_to_geth_evm> -n auto -m blockchain_test

[email protected]

15 Oct 21:34
10860cc
Compare
Choose a tag to compare
[email protected] Pre-release
Pre-release

First EIP-7692 release filled for the Osaka fork.

Filled tests in tests/prague and tests/osaka folders.

Prague fork follows devnet-3 specification (see https://github.com/ethereum/execution-spec-tests/releases/tag/pectra-devnet-3%40v1.5.0 for details).

What's Changed (Only EOF-relevant changes listed)

  • fix(tests): fix TSTORE EOF variant test by @shemnon in #831
  • new(tests): EOF - EIP-6206: clarify "non-returning instruction" by @pdobacz in #837
  • feat(docs,tests): add links to the online test case docs in the EOF tracker by @danceratopz in #838
  • refactor(tests): unify EOF return code constants by @shemnon in #834
  • new(tests): EOF validation tests of stack height with double RJUMPI by @chfast in #851
  • new(tests): EOF - EIP-4750: unreachable code sections by @chfast in #856
  • fix(fw): EOF - Fix EXCHANGE's data_portion_length by @pdobacz in #849
  • new(tests): EIP-7069 and EIP-7620 - failures and context vars by @pdobacz in #836
  • feat(forks,tests): Osaka by @marioevz in #869
  • fix(github): Fix eip7692-osaka to also fill tests/prague by @marioevz in #897

Full Changelog: https://github.com/ethereum/execution-spec-tests/compare/[email protected]@v2.0.0

[email protected]

14 Oct 20:32
Compare
Choose a tag to compare
[email protected] Pre-release
Pre-release

Second EEST pre-release for Pectra Devnet-4. Fixes a small issue on some negative tests that override the expected requests with an empty requests hash but the block does indeed contain transactions that trigger at least one request.

For a full description of the fixtures included please check [email protected] release notes.

Full Changelog: https://github.com/ethereum/execution-spec-tests/compare/[email protected]@v1.0.1

Test Case Documentation: https://ethereum.github.io/execution-spec-tests/[email protected]/tests/prague/

[email protected]

14 Oct 04:00
Compare
Choose a tag to compare
[email protected] Pre-release
Pre-release

First EEST pre-release for Pectra Devnet-4.

Included Specification PRs

New Tests

  • EIP-7685: Invalid request type in block
  • EIP-7002, EIP-7251: Add tests for system contracts execution pre-fork.
  • EIP-7702: Add deploy delegation-like contract test

Breaking Changes

Blockchain Fixtures Changes

  • blockHeader.requests_root field has been renamed to requests_hash in the blockchain_test fixture type.
  • FixtureBlockBase and FixtureExecutionPayload fields deposit_requests, withdrawal_requests and consolidation_requests are replaced by a single field requests which contains a list of hex strings, each element represents the bytes of a flattened request.
  • Fourth parameter has been added to FixtureEngineNewPayload.params which represents the flattened requests.

Important Notes

  • EIP-2935 slow tests (256+ blocks) have been skipped.

Included EIP Versions

[email protected]

01 Oct 22:30
Compare
Choose a tag to compare
[email protected] Pre-release
Pre-release

⚠️ Note these tests are up to date with the latest devnet-7 spec!

This release is filled with a specific geth branch gballet/jsign-witness-fix aligned with devnet-7. It contains updates and fixes for the past genesis tests due to the addition of witness checks within the testing framework. These verify the correct behavoiur of the witness for specific test cases if defined.

A reasonable order of steps for client teams to start running tests can be found below, starting with the genesis tests from: fixtures_verkle-genesis.tar.gz

  • Run the EIP-6800 tests for a good first check, fixtures/verkle/eip6800_genesis_verkle_tree/ within the extracted the fixture genesis tar.
    • Followed by EIP-4762 tests: fixtures/verkle/eip4762_verkle_gas_witness/.
    • And EIP-7709 tests: fixtures/verkle/eip7709_blockhash_witness/.
  • Run "backfilled" tests, all previous fork tests filled for Verkle, i.e all tests excludingfixtures/verkle/*.
  • (Optional) Run the fixtures_verkle-conversion-stride-0.tar.gz tests, as these contain basic pre-fork tests to make sure nothing is broken on the fork before Verkle.

Full Changelog: https://github.com/ethereum/execution-spec-tests/compare/[email protected]@v0.0.4

🐘 Verkle Genesis Test Fixtures

Contains verkle specific test vectors from #659 including all existing EEST test cases filled for a verkle configured fork. Note these tests assume the MPT to VKT conversion has completed where we start at the Verkle fork.

Please use fixtures_verkle-genesis.tar.gz!

Generating Genesis Fixtures

Using the geth evm binary from this commit, fill with the following command:

fill --fork Verkle --evm-bin=<path_to_geth_evm> -n auto -m blockchain_test

🔁 Verkle Conversion Test Fixtures - 0 Stride

These aim to verify a basic fork transition from Shanghai to Verkle. 0 stride denotes that the initial MPT remains frozen. Thus the MPT is not being converted to a VKT within these tests. The intention is to check that only blocks after the transition update the VKT, isolating VKT fork transition issues without touching MPT stride conversion logic.

Test cases additionally include Shanghai genesis tests to assert that the fork before Verkle is not broken.

Please use fixtures_verkle-conversion-stride-0.tar.gz!

Generating Conversion Fixtures

Using the geth evm binary from this commit, fill with the following command:

fill --from Shanghai --until EIP6800Transition --evm-bin=<path_to_geth_evm> -n auto -m blockchain_test

[email protected]

23 Sep 19:28
b035ad3
Compare
Choose a tag to compare
[email protected] Pre-release
Pre-release

Filled using Besu commit hyperledger/besu@0d63955

What's Changed

  • new(tests): EOF - EIP-7620 EOFCREATE gas testing by @pdobacz in #785

Full Changelog: https://github.com/ethereum/execution-spec-tests/compare/[email protected]@v1.1.1

[email protected]

19 Sep 18:41
c0a381c
Compare
Choose a tag to compare
[email protected] Pre-release
Pre-release

Contains several EIP-7702 Devnet-3 tests parametrized to use EOF.

What's Changed

  • chore(tests): update EOF tests tracker by @chfast in #791
  • new(tests): EOF: more fuzzing disovered tests by @shemnon in #789
  • fix(fw): DATALOAD pushed_stack_items by @pdobacz in #784
  • new(tests): EOF: tests for invalid non-returning sections by @chfast in #794
  • new(tests): EOF - EIP-7069 - expand EXT*CALL gas testing by @pdobacz in #771
  • fix(tests): EOF - Remove duplicate container tests, automatically check for duplicates by @marioevz in #800
  • fix(fw): max stack height calculation in add by @pdobacz in #810
  • new(test): EIP-7702 + EIP-1153: test that TransientStorage stays at correct address by @jochem-brouwer in #799
  • new(tests): TSTORE: ensure transient storage is cleared after transactions by @jochem-brouwer in #798
  • new(tests): EOF - EIP-7620: EOFCREATE referencing the same subcontainer twice by @MariusVanDerWijden in #809
  • new(tests): EOF - EIP-7620: Dangling data in subcontainer test by @shemnon in #812
  • fix(fw): EOF - Accept initcode_prefix on EOF Container.Init by @marioevz in #819
  • fix(tests): Fix Existing EOF + EIP-7702 Tests by @marioevz in #821

Full Changelog: https://github.com/ethereum/execution-spec-tests/compare/[email protected]@v1.1.0

[email protected]

10 Sep 15:14
Compare
Choose a tag to compare

[email protected]

06 Sep 14:10
52aa13d
Compare
Choose a tag to compare
[email protected] Pre-release
Pre-release

Important Notes

EIP-7702 breaks Prague+EOF tests at the moment, therefore this release does not contain them, but they should be expected at a later release.

What's Changed

  • fix(docs): Add some more cases to EOF tracker by @gumb0 in #747
  • new(tests): EOF - EIP-3540: Migrate validation tests: EIP3540/validInvalidFiller.yml by @chfast in #598
  • new(tests): EOF - EIP-7620: tests for msg.depth and static flag by @pdobacz in #732
  • new(tests): EOF - EIP-7069: Call Gas Testing for EXT*CALL by @shemnon in #713
  • new(tests): EIP-7069 - EXTCALL with balance and other by @pdobacz in #755
  • new(tests): EOF - EIP-3540: Test types with 128 inputs by @gurukamath in #749
  • new(tests): EOF - EIP-3540: out of order container section by @chfast in #741
  • chore: simplify python project config by @danceratopz in #764
  • feat(tests): Add multiple exception support to EOF tests by @shemnon in #759
  • new(tests): EOF - EIP-7620: migrate "embedded container" tests by @chfast in #763
  • new(tests): EIP-5656/7692 - use new marker to EOF-ize MCOPY test (2) by @pdobacz in #754
  • feat(tests): EOF - EIP-3540/EIP-4200: Move and rename oritests by @winsvega in #731
  • new(tests): EOF - Tests from Fuzzing by @shemnon in #756
  • feat(docs/tests): EOF: Update tracker, add unimplemented tests by @marioevz in #773
  • new(tests): EOF: Validate EOF only opcodes are invalid in legacy by @shemnon in #768

Full Changelog: https://github.com/ethereum/execution-spec-tests/compare/[email protected]@v1.0.9

[email protected]

28 Aug 18:35
Compare
Choose a tag to compare
[email protected] Pre-release
Pre-release

Fixes to test_set_code_using_invalid_signatures where the test expected an invalid transaction in some cases where only an invalid authorization list element was expected (but a valid transaction): e70d831

Important Notes

  • EIP-2935 slow tests (256+ blocks) have been skipped.

Included EIPs

Missing EIPs

Full Changelog: https://github.com/ethereum/execution-spec-tests/compare/[email protected]@v1.4.0