feat(riscv-guest): l2 exec guest coverage test harness - #3784
Open
Filter94 wants to merge 2 commits into
Open
Conversation
Filter94
changed the base branch from
main
to
feat/l2-execution-guest-rollup-v2
August 13, 2026 09:36
Contributor
There was a problem hiding this comment.
Pull request overview
This PR significantly expands the riscv-guests/l2-execution test and tooling surface to improve coverage and debuggability of the extended L2 execution guest, including (1) a test-only SSZ encoder for vanilla stateless inputs, (2) a conflation-plan DSL with scenario/parity tests, and (3) native host tools and JSON output support for local runs.
Changes:
- Added a test-only SSZ encoder for vanilla
StatelessInputplus round-trip and golden re-encode tests against EF fixtures. - Added a
runL2ExecutionWithEngineseam and a conflation-plan DSL + scenario/parity tests to exercise conflation logic end-to-end on real bytes with a stubbed per-block engine. - Added native host tools (
l2-execution-wrap,l2-execution-runner) and a JSON output encoder + golden test; wired new tests/tools/deps intobuild.zig.
Reviewed changes
Copilot reviewed 15 out of 15 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| riscv-guests/l2-execution/test/stateless_input_encode.zig | Test-only SSZ encoder for vanilla StatelessInput wire format. |
| riscv-guests/l2-execution/test/stateless_input_encode_test.zig | Round-trip + golden re-encode tests validating the encoder against the real decoder/fixtures. |
| riscv-guests/l2-execution/test/legacy_tx_rlp.zig | Shared legacy transaction RLP builder for test fixtures. |
| riscv-guests/l2-execution/test/l2_execution_wrap.zig | Native CLI tool to wrap vanilla inputs into extended inputs for the extended guest/harness. |
| riscv-guests/l2-execution/test/l2_execution_ssz_test.zig | Unit tests for SSZ input/output encoding/decoding behavior. |
| riscv-guests/l2-execution/test/l2_execution_runner.zig | Native CLI runner for extended guest logic with SSZ/JSON output toggle. |
| riscv-guests/l2-execution/test/l2_execution_range_test.zig | Scenario suite exercising conflation logic over a realistic multi-block range plus mutation cases. |
| riscv-guests/l2-execution/test/l2_execution_json.zig | JSON encoder for guest output (native-only convenience). |
| riscv-guests/l2-execution/test/l2_execution_json_test.zig | Golden JSON shape test matching the Python reference output (minus proof metadata). |
| riscv-guests/l2-execution/test/conflation_plan.zig | Conflation-plan DSL + stub engine to generate consistent inputs and drive conflation logic. |
| riscv-guests/l2-execution/test/conflation_plan_parity_test.zig | Guards stub realism vs real execution seam + DSL smoke tests. |
| riscv-guests/l2-execution/src/l2_execution.zig | Adds runL2ExecutionWithEngine seam and exposes internal helpers for tests via test_api. |
| riscv-guests/l2-execution/src/execution.zig | Tightens pre-state root derivation: requires resolvable parent header witness for non-genesis. |
| riscv-guests/l2-execution/build.zig.zon | Adds ssz.zig dependency (lazy) for test-only SSZ serialization. |
| riscv-guests/l2-execution/build.zig | Wires in new tests/modules and installs new native tools. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Filter94
added a commit
that referenced
this pull request
Aug 13, 2026
Keeps the unit-test-only reflection surface out of the production guest binary instead of exporting it unconditionally. Addresses a Copilot review comment on PR #3784. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
gauravahuja
previously approved these changes
Aug 19, 2026
Reintroduce l2_execution_ssz_test.zig and the JSON/runner/wrap host tooling (relocated from the base branch, unmodified) alongside this PR's own seam-injection DSL (runL2ExecutionWithEngine, ConflationPlan, parity guard, range scenarios) and the vanilla StatelessInput SSZ encoder. Rename conflation_plan.zig's reused zero_hash/zero_addr locals to distinct per-field names instead of leaning on 16 trailing index comments to disambiguate them.
Keeps the unit-test-only reflection surface out of the production guest binary instead of exporting it unconditionally. Addresses a Copilot review comment on PR #3784. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Filter94
force-pushed
the
test/l2-exec-guest-coverage-pr1-v2
branch
from
August 26, 2026 15:17
cdd3579 to
36a2bca
Compare
gauravahuja
approved these changes
Aug 26, 2026
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.
This PR implements issue(s) #
Checklist
PR.