Releases: ethereum/execution-spec-tests
v1.0.4
🐍 Cancun Devnet 9 Release 2
This release adds additional coverage to the current set of cancun tests, up to the Devnet-9 Cancun specification, noting the following considerations:
- Beacon root contract is pre-deployed at
0xbEAC020008aFF7331c0A389CB2AAb67597567d7a
- Additional EIP-4788 updates from the following PR will be included in the next release.
- Adds EIP-7516 Tests
🧪 Tests include the following EIPs
EIP-4844: Shard Blob Transactions
EIP-5656: MCOPY - Memory copying instruction
EIP-6780: SELFDESTRUCT only in same transaction
EIP-4788: Beacon block root in the EVM
EIP-1153: Transient storage opcodes
EIP-7516: BLOBBASEFEE opcode
⚙️ Test Generation
Fixtures for these tests can be generated using the geth
t8n tool with the following branch & command:
marioevz/go-ethereum@cancun-t8n
fill --until Cancun
📄 Documentation
Further information on each test can be found within the docs:
https://ethereum.github.io/execution-spec-tests/main/tests/cancun/
What's Changed
- tests/cancun/eip_1153: Remove conftest '+1153' in network field. by @spencer-tb in #299
- improvement: Deprecate empty accounts within framework. by @spencer-tb in #300
- tests/4844: Add EIP-7516, BLOBBASEFEE, verification to excess blob gas tests by @marioevz in #294
- tests/cancun/eip_4788: Update predeploy address(0xbEAC02..7d7a), add additional tests by @spencer-tb in #297
- feature: Add engine API forkchoice updated information in fixtures by @spencer-tb in #256
- improvement: Fixture generation split based on hive specificity by @spencer-tb in #301
Full Changelog: v1.0.3...v1.0.4
v1.0.3
🐍 Cancun Devnet 9 Release
This release adds additional coverage to the current set of cancun tests, up to the Devnet-9 Cancun specification, noting the following considerations:
- Beacon root contract is pre-deployed at
0xbEac00dDB15f3B6d645C48263dC93862413A222D
- Additional EIP-4788 updates from the following PR will be included in the next release.
- Further coverage includes tests for EIP-1153, and additional tests for EIP-4788 & EIP-6780.
🧪 Tests include the following EIPs
EIP-4844: Shard Blob Transactions
EIP-5656: MCOPY - Memory copying instruction
EIP-6780: SELFDESTRUCT only in same transaction
EIP-4788: Beacon block root in the EVM
EIP-1153: Transient storage opcodes
⚙️ Test Generation
Fixtures for these tests can be generated using the geth
t8n tool with the following branch & command:
marioevz/go-ethereum@cancun-t8n
fill --until Cancun
📄 Documentation
Further information on each test can be found within the docs:
https://ethereum.github.io/execution-spec-tests/main/tests/cancun/
v1.0.2
🐍 Cancun Devnet 8 + 4788 v2 Pre-Release
This pre-release updates all cancun tests according to Update EIP-4788: initial stab at v2, and the Devnet-8 Cancun specification, with a few considerations:
- Beacon root contract is pre-deployed at address
0x000000000000000000000000000000000000000b
instead of the address described in the EIP PR - No system transactions are executed for the generation of the fixtures and instead a direct storage update is performed at the beginning of the block
🧪 Tests include the following EIPs
EIP-4844: Shard Blob Transactions
EIP-5656: MCOPY - Memory copying instruction
EIP-6780: SELFDESTRUCT only in same transaction
EIP-4788: Beacon block root in the EVM
Our full release will include tests for EIP-1153: Transient storage opcodes including additional coverage for the above EIPs.
⚙️ Test Generation
Fixtures for these tests can be generated with the following geth
commit:
marioevz/go-ethereum@7c8719cddf12097101ccbdec8c9bbd7cf7686e4e
fill --until Cancun
📄 Documentation
Further information on each test can be found within the docs:
https://ethereum.github.io/execution-spec-tests/main/tests/cancun/
v1.0.1
🐍 Cancun Devnet-8 Pre-Release
This pre-release holds our initial set of tests for the current Devnet-8 Cancun specification.
🧪 Tests include the following EIPs
EIP-4844: Shard Blob Transactions
EIP-5656: MCOPY - Memory copying instruction
EIP-6780: SELFDESTRUCT only in same transaction
EIP-4788: Beacon block root in the EVM
Our full release will include tests for EIP-1153: Transient storage opcodes including additional coverage for the above EIPs.
Beacon block root pre-compile tests are to be updated following its change to a system call:
https://ethereum-magicians.org/t/eip-4788-beacon-root-in-evm/8281/33
⚙️ Test Generation
Fixtures for these tests can be generated on main
with the following geth
branch:
spencer-tb/go-ethereum@4844-devnet-6-t8n-update
fill --from Cancun --until Cancun
📄 Documentation
Further information on each test can be found within the docs:
https://ethereum.github.io/execution-spec-tests/main/tests/cancun/
v1.0.0
🧪 Welcome to the PyTest Era
We are extremely happy to announce this major new release as it marks a huge milestone for execution-spec-tests.
With this release, adding tests has become easier than ever, so we invite and encourage all client developers to seize this opportunity and contribute to the continuous enhancement of the ethereum testing ecosystem.
🗝️ Key Changes
- Pytest takes the stage: Introducing the upgrade to pytest, now used to collect and execute tests, including generation of fixtures.
- Shiny new documentation: A full revamp of the docs which is now available at ethereum.github.io/execution-spec-tests.
- Tests by fork: Tests (previously named fillers) and fixtures, are now re-organized by fork name for improved clarity and usage.
- Commands with comfort: Tests are now filled with a new user friendly and readable CLI, including a new additional option to specify the
solc
binary. - Write tests like a pro: the repo now includes recommended extensions & settings for a seamless new developer start.
Full Changelog: v0.2.5...v1.0.0
🐍 Tests
Updates to Existing Tests
fixtures.tar.gz
includes a refresh of previous State & Blockchain tests, up to and including Shanghai:- Each test has been refactored and now utilizes Pytest parameterization. These can be viewed within the test case reference section of the docs.
New EIP-4844 Tests
fixtures-cancun.tar.gz
includes a full set of Blockchain tests for EIP-4844, up to date with the latest Devnet 6 & 7 changes
🛠️ Usage
All tests can be filled with the new CLI using the fill
command. (Note: tf
is deprecated and will be removed in the next release).
By default fill
generates fixtures for all tests up to the current mainnet fork - Shanghai. Detailed information on the new CLI can be found within the docs.
Generating EIP-4844 Tests
To only generate the new EIP-4844 tests the following command can be run:
fill -v tests/cancun --until=Cancun
Versions Used
Main fixtures: ethereum/go-ethereum @ c7b099b
go-ethereum branch.
Cancun fixtures: marioevz/go-ethereum @ d36b63d
go-ethereum branch.
Additional dependency versions used (others may work):
🐝 Pyspec Hive Simulator
Each EIP-4844 test case within fixtures-cancun.tar.gz
can additionally be run within the updated pyspec hive simulator. It sends each block within a test fixture as a payload to the execution client using the Engine API.
💬 Contact Us
We are here to help!
If you stumble over any issues with this release please reach out to us.
You can find our contact details within the docs!
v0.2.5
Tests
Cancun
- Separate fixtures to test for Cancun: includes the first version of the 4844 fixtures. (#63)
- These currently test for valid/invalid blob transactions, excess data gas calculations and the
DATAHASH
opcode. - Additional tests for kzg pre-compiles and ssz will be added in a future release.
- Test documentation can be found -> here.
- These will be run within the hive
pyspec
simulator on this branch.
Important: These tests can only be filled using the geth
version listed below, alongside the --latest-fork Cancun
flag. As an example, you can run the 4844 tests with the following command: tf --force-refill --latest-fork Cancun --test-categories eips.eip4844
.
Pre-Cancun
- New filler category added for security tests, used to verify previously identified client vulnerabilities. (#112)
- Access list test case example filler added. (#83)
Changes
- Reference spec feature added to fillers & fixtures. (#81)
- Fork object feature added to fillers. (#91)
- Can now write tests for fork transitions.
- Callable Op-codes feature added reducing the dependency of Yul code (#102)
- Most filler modules are now entirely python.
- Access list type support added. (#83)
- Documentation updated to include 4884 test descriptions -> here.
Fixes
- Small bug fixes on the fixture format (#80 #92 #109)
- Correctly handle the processing of negative integer indexes in storage (#106)
Versions Used
go-ethereum: mdehoog/go-ethereum@ac64c44
v0.2.4
Changes
- Additional checks added to the Tox pipeline. Python file and function names now checked in accordance with PEP8. (PR: #59)
- Naming style structure changed in the fixture format.
withdrawals_
head removed from name of all withdrawals fixtures. Fixture test case names now like000/shanghai
instead of000_shanghai
. Tags added to specific test case names i.e.001/multiple_blocks/shanghai
. (PR: #69) - Updates and additions to the test filler
tf
: (PRs: #66 & #72)- Refactor of
ethereum_test_filling_tool
. - Default
tf
execution is now concurrent/parallel. So far ~65% increase in speed which will scale as more tests are added. - Filling is skipped for tests that don't need to be filled by default. Improvement to
tf
execution speed. tf --benchmark
. Adds timing of filling to the console logs.tf --max-workers
. Allows the user to set the number of workers used for concurrenttf
execution. For serial execution (the previous way) usetf --max-workers 1
.tf --force-refill
. Force tests to be filled. Works with--test-module
and--test-categories
.tf --no-output-structure
. When enabled all tests are added to a single equivalent output folder.
- Refactor of
Versions Used
go-ethereum: https://github.com/ethereum/go-ethereum/tree/v1.11.3
v0.2.3
v0.2.2
Changes
- Test for withdrawals with a large gwei amount (PR: #44)
Fixes
- All fixtures now have withdrawals in their candidate block RLP. (PR: #37)
Versions Used
go-ethereum: lightclient/go-ethereum@b49a883