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.tgz
To 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
--input
flag ofconsume
commands (#1306). - ✨ Add support for Nethermind's
nethtest
command 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
forks
andfixture_formats
to the index file that list all the forks and fixture formats used in the indexed fixtures (#1318). - ✨ Enable logging from
consume
commands (#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
consume
test collection (#1315). - 🐞 Fix the the hive command printed in test reports to reproduce tests in isolation by prefixing the
--sim.limit
flag value withid:
(#1333). - 🐞 Improve index generation of ethereum/tests fixtures: Allow generation at any directory level and include
generatedTestHash
in the index file for thefixture_hash
(#1303). - 🐞 Fix loading of ethereum/tests and ethereum/legacytests fixtures for the case of mixed
0x0
and0x1
transaction 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/until
for transition forks when usingfill
#1311. - 🐞 Fix the node id for state tests marked by transition forks (#1313).
- ✨ Add
static_filler
plug-in which allows to fill static YAML and JSON tests (from ethereum/tests) by adding flag--fill-static-tests
touv 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-specs
used by the framework to the packageethereum-execution==1.17.0rc6.dev1
; bump the version used for test fixture generation for forks < Prague to currentexecution-specs
master, fa847a0 (#1310). - 🐞 Init
TransitionTool
inGethTransitionTool
(#1276). - 🔀 Refactored RLP encoding of test objects to allow automatic generation of tests (#1359).
- ✨ Document how to manage
execution-spec-tests
package dependencies (#1388).
Packaging
- 🐞 Fix
eest make test
whenethereum-execution-spec-tests
is installed as a package (#1342). - 🔀 Pin
setuptools
andwheel
in[build-system]
, bumptrie>=3.1
and removesetuptools
from 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