refactor(test-fill): rebuild the Engine X drift check on typed fixture models - #3265
Draft
spencer-tb wants to merge 6 commits into
Draft
refactor(test-fill): rebuild the Engine X drift check on typed fixture models#3265spencer-tb wants to merge 6 commits into
spencer-tb wants to merge 6 commits into
Conversation
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## forks/amsterdam #3265 +/- ##
================================================
Coverage 93.42% 93.42%
================================================
Files 625 625
Lines 37032 37032
Branches 3385 3385
================================================
Hits 34597 34597
Misses 1666 1666
Partials 769 769
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
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
Rebuild
engine_x_checks.pyper the review feedback on #3219: fixtures were compared as black-box JSON dicts, the BAL parent-hash mask was a byte-pattern match over the whole RLP tree, and drift failures gave no indication of cause.BlockchainEngineXFixture/BlockchainEngineFixture; a fixture that fails typed validation is a loud error naming file and test id, never a silent degradation of the check.BlockAccessList.from_rlpand mask only the EIP-2935 history-contract write whose value equals the payload's own parent hash (integer comparison, so the leading-zero trimming special case disappears). A parent-hash-valued write to any other account is drift again, and there is a regression test for it.preand thepre_allocgroup file to the address, the group, and the tests that packed it; identical causes collapse into one diagnosis instead of one failure per fixture.verify_engine_x_executionalways returns a result with an explicitskip_reason, simplifying thepytest_sessionfinishcaller; the not-clean-exit gate now logs that the check was skipped.Example failure output after injecting a leak into a real fill:
Validated with
tests/amsterdam/eip7928_block_level_access_listsfilled at Amsterdam with--generate-all-formats: 1013 Engine X fixtures execute identically against their packed group's genesis, including the corrupted-BAL negative tests; injected gas and BAL-leak drifts produce the diagnostics above and the output verifies green again once restored.Related Issues or PRs
Stacked on #3219 (includes its commits until it merges; only the last commit is new). Addresses marioevz's
engine_x_checks.pyreview comments on #3219.Checklist
just static<type>(<area>): <title>, where<type>and<area>come from an appropriateC-<type>, respectivelyA-<area>, label. The title should match the target squash commit message.Cute Animal Picture