Commit 492bbf2
feat(fill): implement address tag resolution for static test fillers (ethereum#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 <[email protected]>
* 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 <[email protected]>1 parent 62732f5 commit 492bbf2
1 file changed
+1
-0
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
72 | 72 | | |
73 | 73 | | |
74 | 74 | | |
| 75 | + | |
75 | 76 | | |
76 | 77 | | |
77 | 78 | | |
| |||
0 commit comments