feat(test-client-clis): add stream-mode opcode count support for geth#2170
Open
spencer-tb wants to merge 4 commits intoethereum:forks/amsterdamfrom
Open
feat(test-client-clis): add stream-mode opcode count support for geth#2170spencer-tb wants to merge 4 commits intoethereum:forks/amsterdamfrom
spencer-tb wants to merge 4 commits intoethereum:forks/amsterdamfrom
Conversation
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## forks/amsterdam #2170 +/- ##
================================================
Coverage 86.07% 86.07%
================================================
Files 599 599
Lines 39472 39472
Branches 3780 3780
================================================
Hits 33977 33977
Misses 4862 4862
Partials 633 633
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
4 tasks
fselmo
reviewed
Feb 9, 2026
marioevz
reviewed
Feb 9, 2026
Member
marioevz
left a comment
There was a problem hiding this comment.
Nice addition, just one comment, and we should wait until the Geth's PR is reviewed and eventually merged.
packages/testing/src/execution_testing/test_types/receipt_types.py
Outdated
Show resolved
Hide resolved
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Contributor
Author
|
Changes implemented and tested with fill again. Lets wait for the Geth PR. Thanks. |
RazorClient
pushed a commit
to RazorClient/execution-specs
that referenced
this pull request
Feb 11, 2026
* fix: use engine_newPayloadV5 for Amsterdam * fix: update exception mapper for geth * fix: We should update BAL hash in fixture for invalid tests * Clean up extraneous BAL exceptions * refactor: use fork check for BAL in engine payload
RazorClient
pushed a commit
to RazorClient/execution-specs
that referenced
this pull request
Feb 11, 2026
* fix: use engine_newPayloadV5 for Amsterdam * fix: update exception mapper for geth * fix: We should update BAL hash in fixture for invalid tests * Clean up extraneous BAL exceptions * refactor: use fork check for BAL in engine payload
RazorClient
pushed a commit
to RazorClient/execution-specs
that referenced
this pull request
Feb 11, 2026
* fix: use engine_newPayloadV5 for Amsterdam * fix: update exception mapper for geth * fix: We should update BAL hash in fixture for invalid tests * Clean up extraneous BAL exceptions * refactor: use fork check for BAL in engine payload
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
Extends
_evaluate_stream()inTransitionToolto read opcode count output fromopcodes.json(mirrors existing_evaluate_filesystem()logic), updatessafe_t8n_args()to set--output.basedirand--opcode.countflags whensupports_opcode_countis true (even without--trace), and enablessupports_opcode_count = TrueforGethTransitionTool.The EELS benchmark framework uses opcode frequency counts to verify that benchmark tests exercise the intended opcodes at the expected iteration counts. This is critical for the gas repricing work where we need precise control over how many times each opcode executes.
Currently, benchmark tests can only be filled with opcode count verification using evmone or EELS. However, for Amsterdam (which evmone does not support currently) we need to fill benchmark tests with geth. As geth has this implemented the hope is to use geth as the default benchmark test filler moving forward. EELS is too slow.
Previously, opcode count support in EELS was only wired for filesystem-mode tools (evmone). Since geth uses stream mode (
t8n_use_stream = True), the_evaluate_stream()path needed the same opcode count file reading that_evaluate_filesystem()already had. This PR adds that wiring so geth has full feature parity with evmone for benchmark fills.🔗 Related Issues or PRs
--opcode.countsupport--opcode.countPR: ethereum/go-ethereum#33800 — companion PR adding--opcode.countflag to geth'sevm t8n✅ Checklist
toxchecks to avoid unnecessary CI fails, see also Code Standards and Enabling Pre-commit Checks:uvx tox -e statictype(scope):.Cute Animal Picture