chore: switch ethereum state tests from ethereum/tests to EEST#501
chore: switch ethereum state tests from ethereum/tests to EEST#501
Conversation
Replaces the deprecated ethereum/tests git submodule with fixtures downloaded from ethereum/execution-spec-tests (the current standard, now maintained in ethereum/execution-specs). Run once before testing: bash scripts/fetch-eest-fixtures.sh Key changes: - Remove the ethereum/tests submodule - Add scripts/fetch-eest-fixtures.sh to download fixtures_stable.tar.gz - Rewrite main.rs to walk state_tests/ instead of GeneralStateTests/, map all EEST exception strings (with pipe-separated OR support), and skip the same create-collision tests revm can't handle correctly - Add fixtures directory to .gitignore Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
There was a problem hiding this comment.
Code Review
This pull request replaces the Ethereum tests submodule with a script-based fixture download mechanism (fetch-eest-fixtures.sh) and refactors the test runner in crates/pevm/tests/ethereum/main.rs to map EEST exception strings to internal transaction errors. The changes also include updated test filtering and documentation. Feedback suggests improving error handling by returning a boolean instead of panicking on unknown exceptions to provide better assertion context, and removing an unsafe unwrap() call.
| | InvalidTransaction::CallerGasLimitMoreThanBlock | ||
| ) | ||
| } | ||
| _ => panic!("Unknown EEST exception: {exception}"), |
There was a problem hiding this comment.
Instead of panicking on an unknown exception, returning false allows the assertion in run_test_unit to fail with a descriptive message including the file path and the actual error received. This makes debugging much easier when EEST introduces new exception strings.
| _ => panic!("Unknown EEST exception: {exception}"), | |
| _ => false, |
| ), | ||
| spec_id, | ||
| build_block_env(&unit.env, spec_id), | ||
| vec![tx_env.unwrap()], |
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Replaces the deprecated ethereum/tests git submodule with fixtures downloaded from ethereum/execution-spec-tests (the current standard, now maintained in ethereum/execution-specs). Run once before testing:
bash scripts/fetch-eest-fixtures.sh
Key changes: