enhance(test-tests): tests for even modexp with long trailing zeros#1781
Merged
Conversation
b58b343 to
66179b4
Compare
Member
Author
|
The |
DeborahOlaboye
pushed a commit
to DeborahOlaboye/execution-specs
that referenced
this pull request
Nov 13, 2025
…thereum#1781) * feat(static): implement address tag resolution for static test fillers Hard-coded address conversion in yml and json fillers: - Add convert_addresses.py script to automate tag conversion - The correct way to run this is with the ``CONVERT_COINBASE`` flag set to ``False`` as this allows the same coinbase for all tests (just as python tests do). If we decide we want to handle the coinbase setting on the python side, we can turn this flag on and hard-code on the python side... but the currect approach seems correct. - Convert 1000+ static test YAML/JSON files to use address tags (Python) Generate deterministic addresses from tags coming from static test fillers: - Resolve tags to deterministic addresses in the same way python tests do - via pytest static filler plugin - Add ``BlockchainEngineXFixture`` support for pre-allocation groups This enables static tests to use symbolic address tags instead of hardcoded addresses, minimizing muddied context across tests when running via pre alloc sharing. ---- fix(tests/static): Fine tune addr tag script, turn on more static tests for tagging. - Wrap up stTransaction tests fine-tuning - [fine-tuning] Replace 0 address in CALL code if in pre - Changes from comments on PR ethereum#1781: - Use Prague.precompiles() for precompile addresses in convert_addresses.py - Revamp script, simplify Claude code over-engineering. - fine tune by not tagging some addrs, add short name tag compat for selected tests * refactor(tests/static): Use of pydantic to resolve tags in static tests * All pydantic simplifications * refactor(tests/static): rename sender:key -> eoa:sender * refactor: rename, use generics * fix: consider empty accounts * fix(tests): tests with empty accounts * fix(tests): addressOpcodesFiller.yml * feat: significantly improve test ids * fix: bugs in tag resolution * fix(tests): CREATE2_HighNonceDelegatecallFiller.yml * fix: types * Update src/ethereum_test_specs/static_state/account.py --- Co-authored-by: felipe <fselmo2@gmail.com> * fix: comment and generic tag regex * fix: Code raw code tag substitution * fix(tests/static): Resolve discrepancies with pydantic logic refactor fix: fix when tabs are found in lines with spaces; fix shortnames fix: Resolve issues with label: / raw: parsing Turn off more tests, mostly related to create / `creation` addresses * feat(tests/static): Mark tagged / untagged tests - Add marker for tagged + untagged tests to make them easier to identify * feat: Add `fully_tagged` marker * fix(tests/static): Fully tag some tests * fix(tests/static): Remove hard-coded addresses from transStorageResetFiller.yml * fix(tests/static): Add tags to `tests/static/state_tests/stCreate2/CREATE2_HighNonceDelegatecallFiller.yml` --------- Co-authored-by: Mario Vega <marioevz@gmail.com>
66179b4 to
43ffe64
Compare
SamWilsn
pushed a commit
that referenced
this pull request
Dec 9, 2025
…1781) * feat(static): implement address tag resolution for static test fillers Hard-coded address conversion in yml and json fillers: - Add convert_addresses.py script to automate tag conversion - The correct way to run this is with the ``CONVERT_COINBASE`` flag set to ``False`` as this allows the same coinbase for all tests (just as python tests do). If we decide we want to handle the coinbase setting on the python side, we can turn this flag on and hard-code on the python side... but the currect approach seems correct. - Convert 1000+ static test YAML/JSON files to use address tags (Python) Generate deterministic addresses from tags coming from static test fillers: - Resolve tags to deterministic addresses in the same way python tests do - via pytest static filler plugin - Add ``BlockchainEngineXFixture`` support for pre-allocation groups This enables static tests to use symbolic address tags instead of hardcoded addresses, minimizing muddied context across tests when running via pre alloc sharing. ---- fix(tests/static): Fine tune addr tag script, turn on more static tests for tagging. - Wrap up stTransaction tests fine-tuning - [fine-tuning] Replace 0 address in CALL code if in pre - Changes from comments on PR #1781: - Use Prague.precompiles() for precompile addresses in convert_addresses.py - Revamp script, simplify Claude code over-engineering. - fine tune by not tagging some addrs, add short name tag compat for selected tests * refactor(tests/static): Use of pydantic to resolve tags in static tests * All pydantic simplifications * refactor(tests/static): rename sender:key -> eoa:sender * refactor: rename, use generics * fix: consider empty accounts * fix(tests): tests with empty accounts * fix(tests): addressOpcodesFiller.yml * feat: significantly improve test ids * fix: bugs in tag resolution * fix(tests): CREATE2_HighNonceDelegatecallFiller.yml * fix: types * Update src/ethereum_test_specs/static_state/account.py --- Co-authored-by: felipe <fselmo2@gmail.com> * fix: comment and generic tag regex * fix: Code raw code tag substitution * fix(tests/static): Resolve discrepancies with pydantic logic refactor fix: fix when tabs are found in lines with spaces; fix shortnames fix: Resolve issues with label: / raw: parsing Turn off more tests, mostly related to create / `creation` addresses * feat(tests/static): Mark tagged / untagged tests - Add marker for tagged + untagged tests to make them easier to identify * feat: Add `fully_tagged` marker * fix(tests/static): Fully tag some tests * fix(tests/static): Remove hard-coded addresses from transStorageResetFiller.yml * fix(tests/static): Add tags to `tests/static/state_tests/stCreate2/CREATE2_HighNonceDelegatecallFiller.yml` --------- Co-authored-by: Mario Vega <marioevz@gmail.com>
SamWilsn
pushed a commit
that referenced
this pull request
Dec 9, 2025
…1781) * feat(static): implement address tag resolution for static test fillers Hard-coded address conversion in yml and json fillers: - Add convert_addresses.py script to automate tag conversion - The correct way to run this is with the ``CONVERT_COINBASE`` flag set to ``False`` as this allows the same coinbase for all tests (just as python tests do). If we decide we want to handle the coinbase setting on the python side, we can turn this flag on and hard-code on the python side... but the currect approach seems correct. - Convert 1000+ static test YAML/JSON files to use address tags (Python) Generate deterministic addresses from tags coming from static test fillers: - Resolve tags to deterministic addresses in the same way python tests do - via pytest static filler plugin - Add ``BlockchainEngineXFixture`` support for pre-allocation groups This enables static tests to use symbolic address tags instead of hardcoded addresses, minimizing muddied context across tests when running via pre alloc sharing. ---- fix(tests/static): Fine tune addr tag script, turn on more static tests for tagging. - Wrap up stTransaction tests fine-tuning - [fine-tuning] Replace 0 address in CALL code if in pre - Changes from comments on PR #1781: - Use Prague.precompiles() for precompile addresses in convert_addresses.py - Revamp script, simplify Claude code over-engineering. - fine tune by not tagging some addrs, add short name tag compat for selected tests * refactor(tests/static): Use of pydantic to resolve tags in static tests * All pydantic simplifications * refactor(tests/static): rename sender:key -> eoa:sender * refactor: rename, use generics * fix: consider empty accounts * fix(tests): tests with empty accounts * fix(tests): addressOpcodesFiller.yml * feat: significantly improve test ids * fix: bugs in tag resolution * fix(tests): CREATE2_HighNonceDelegatecallFiller.yml * fix: types * Update src/ethereum_test_specs/static_state/account.py --- Co-authored-by: felipe <fselmo2@gmail.com> * fix: comment and generic tag regex * fix: Code raw code tag substitution * fix(tests/static): Resolve discrepancies with pydantic logic refactor fix: fix when tabs are found in lines with spaces; fix shortnames fix: Resolve issues with label: / raw: parsing Turn off more tests, mostly related to create / `creation` addresses * feat(tests/static): Mark tagged / untagged tests - Add marker for tagged + untagged tests to make them easier to identify * feat: Add `fully_tagged` marker * fix(tests/static): Fully tag some tests * fix(tests/static): Remove hard-coded addresses from transStorageResetFiller.yml * fix(tests/static): Add tags to `tests/static/state_tests/stCreate2/CREATE2_HighNonceDelegatecallFiller.yml` --------- Co-authored-by: Mario Vega <marioevz@gmail.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
🗒️ Description
Add the modexp precompile test cases increasing coverage of handling even modulus with longer than one word (8 bytes) trailing zeros.
🔗 Related Issues or PRs
N/A.
✅ Checklist
toxchecks to avoid unnecessary CI fails, see also Code Standards and Enabling Pre-commit Checks:uvx tox -e statictype(scope):.