Skip to content

Releases: ethereum/execution-spec-tests

[email protected]

03 Jan 15:14
Compare
Choose a tag to compare
[email protected] Pre-release
Pre-release

Second EEST pre-release for Pectra Devnet-5.

PRs Included

Following unmerged PRs are manually merged into the branch used to generate this release:

Execution Layer EIP List for pectra-devnet-5

The list below links the specific commit versions of the EIPs included in devnet-5 and in this release:

Breaking Changes

Transaction Tests

New test format is included in this release called Transaction Tests.

The fixtures of this type are included in folder ./fixtures/transaction_tests/.

Important Notes

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

[email protected]

23 Dec 17:47
Compare
Choose a tag to compare
[email protected] Pre-release
Pre-release

First EEST pre-release for Pectra Devnet-5.

Execution Layer EIP List for pectra-devnet-5

The list below links the specific commit versions of the EIPs included in devnet-5 and in this release:

Breaking Changes

Transaction Tests

New test format is included in this release called Transaction Tests.

The fixtures of this type are included in folder ./fixtures/transaction_tests/.

Important Notes

None

[email protected]

10 Dec 18:01
3fcba12
Compare
Choose a tag to compare

[email protected]

29 Nov 10:15
5cf1f24
Compare
Choose a tag to compare
[email protected] Pre-release
Pre-release

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

  • new(tests): EOF - EIP-4750: Stack validation in CALLF by @shemnon in #889
  • new(tests): EOF - EIP-5450: RJUMP* vs CALLF tests by @pdobacz in #833
  • bug(tests) - CALLF rule #4 applies to return stack, not operand stack by @shemnon in #907
  • feat(exceptions,specs): class to verify exception strings by @winsvega in #795
  • new(tests): basic EOF execution tests by @chfast in #912
  • new(tests): EOF - EIP-4200: migrate remaining RJUMP* execution tests by @chfast in #916
  • refactor(tests): EOF - EIP-4750: parametrize CALLF execution tests by @chfast in #913
  • new(cli): Introduce eofwrap tool by @pdobacz in #896
  • new(tests): EOF - EIP-6206: Add stack overflow by rule check to JUMPF by @shemnon in #902
  • new(tests): Explicit test for EXTDELEGATECALL value cost by @pdobacz in #911
  • new(tests): EOF - EIP-4750: add fibonacci and factorial tests for CALLF by @chfast in #915
  • new(tests): EOF - EIP-7692: migrate CALLF execution tests by @chfast in #914
  • new(tests): EOF - EIP-4200 EIP-6206 RJUMPI with JUMPF by @pdobacz in #928
  • feat(forks): Add gas costs functions by @marioevz in #779
  • new(tests): EOF - EIP-3540: validation of opcodes by @chfast in #932
  • feat(docs): add prague-devnet-5 link; add EOF EIP links/info by @danceratopz in #957
  • feat(ci,eof): include eofwrap in EOF prerelease by @pdobacz in #962

New Contributors

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

[email protected]

22 Nov 13:21
6e79a74
Compare
Choose a tag to compare
[email protected] Pre-release
Pre-release

What's Changed

This release includes extra tests that reproduce bugs found in some EL clients in the new devnet7:

  • verkle: add extra SSTORE test by @jsign in #936
  • verkle: add contract creation failure scenario by @jsign in #944

Please see PR descriptions to understand better what new tests try to cover.

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

[email protected]

01 Nov 16:12
67266d5
Compare
Choose a tag to compare
[email protected] Pre-release
Pre-release

What's Changed

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

[email protected]

04 Nov 13:53
b08a60a
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!

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:

  • The parentStateRoot field was added to the witness.
  • In backported tests, if the test is running in Overlay Tree mode, we won't generate a witness (since it doesn't make sense).
  • Important note: the backported tests under tests/cancun/eip6780_selfdestruct might fail for some clients. This is expected since there's an ongoing discussion on how to resolve a spec issue.

🐘 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]

22 Oct 22:29
26aa41b
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:

  • A SELFDESTRUCT test targeting insufficient gas case was improved.
  • There was a bug in Geth that generated incorrect filling for backported tests (i.e: Shanghai ones).

🐘 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]

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