Vyšehrad (v4.2.0)
Summary
This release introduces more coverage for Prague EIPs, along with many new features described below.
💥 Breaking Change
Note: Although not a breaking change, consume users should delete the cache directory (typically located at ~/.cache/ethereum-execution-spec-tests) used to store downloaded fixture release tarballs. This release adds support for ethereum/tests and ethereum/legacytests fixture release downloads and the structure of the cache directory has been updated to accommodate this change.
To try this feature:
consume direct --input=https://github.com/ethereum/tests/releases/download/v17.0/fixtures_blockchain_tests.tgzTo determine the cache directory location, see the --cache-folder entry from the command:
consume cache --help🛠️ Framework
consume
- ✨ Add support for ethereum/tests and ethereum/legacytests release tarball download via URL to the
--inputflag ofconsumecommands (#1306). - ✨ Add support for Nethermind's
nethtestcommand toconsume direct(#1250). - ✨ Allow filtering of test cases by fork via pytest marks (e.g.,
-m "Cancun or Prague") (#1304, #1318). - ✨ Allow filtering of test cases by fixture format via pytest marks (e.g.,
-m blockchain_test) (#1314). - ✨ Add top-level entries
forksandfixture_formatsto the index file that list all the forks and fixture formats used in the indexed fixtures (#1318). - ✨ Enable logging from
consumecommands (#1361). - ✨ Propagate stdout and stderr (including logs) captured during test execution to the Hive test result (#1361).
- 🐞 Don't parametrize tests for unsupported fixture formats; improve
consumetest collection (#1315). - 🐞 Fix the the hive command printed in test reports to reproduce tests in isolation by prefixing the
--sim.limitflag value withid:(#1333). - 🐞 Improve index generation of ethereum/tests fixtures: Allow generation at any directory level and include
generatedTestHashin the index file for thefixture_hash(#1303). - 🐞 Fix loading of ethereum/tests and ethereum/legacytests fixtures for the case of mixed
0x0and0x1transaction types in multi-index (data,gas,value) state test fixtures (#1330). - ✨ Add Osaka to the hive ruleset, includes a small ruleset refactor (#1355).
fill
- 🐞 Fix
--fork/from/untilfor transition forks when usingfill#1311. - 🐞 Fix the node id for state tests marked by transition forks (#1313).
- ✨ Add
static_fillerplug-in which allows to fill static YAML and JSON tests (from ethereum/tests) by adding flag--fill-static-teststouv run fill(#1336).
execute
- 🔀 Test IDs have changed to include the name of the test spec where the test came from (e.g.
state_test,blockchain_test, etc) (#1367). - ✨ Markers can now be used to execute only tests from a specific test spec type (e.g.
-m state_test,-m blockchain_test, etc) (#1367).
📋 Misc
- 🔀 Bump the version of
execution-specsused by the framework to the packageethereum-execution==1.17.0rc6.dev1; bump the version used for test fixture generation for forks < Prague to currentexecution-specsmaster, fa847a0 (#1310). - 🐞 Init
TransitionToolinGethTransitionTool(#1276). - 🔀 Refactored RLP encoding of test objects to allow automatic generation of tests (#1359).
- ✨ Document how to manage
execution-spec-testspackage dependencies (#1388).
Packaging
- 🐞 Fix
eest make testwhenethereum-execution-spec-testsis installed as a package (#1342). - 🔀 Pin
setuptoolsandwheelin[build-system], bumptrie>=3.1and removesetuptoolsfrom package dependencies (#1345, #1351).
🧪 Test Cases
- ✨ Add additional test coverage for EIP-152 Blake2 precompiles (#1244). Refactor to add variables for spec constants and common fixture code. (#1395), (#1405).
- ✨ Add EIP-7702 incorrect-rlp-encoding tests (#1347).
- ✨ Add EIP-2935 tests for all call opcodes (#1379).
- ✨ Add more tests for EIP-7702: max-fee-per-gas verification, delegation-designation as initcode tests (#1372).
New Contributors
- @lightsing made their first contribution in #1276
- @sonhv0212 made their first contribution in #1349
- @hugo-dc made their first contribution in #1341
- @Olexandr88 made their first contribution in #1401
Full Changelog: v4.1.0...v4.2.0