test: add Deneb light client sync spec test with real fixtures#50
Open
EchoAlice wants to merge 1 commit into
Open
test: add Deneb light client sync spec test with real fixtures#50EchoAlice wants to merge 1 commit into
EchoAlice wants to merge 1 commit into
Conversation
Wires the Deneb fork end-to-end through the spec-test harness, mirroring
the Capella pattern.
- Adds RawExecutionPayloadHeaderDeneb (17 fields = Capella + blob_gas_used
+ excess_blob_gas), RawDenebLightClientHeader, and Raw{Bootstrap,Update}
SSZ types in test_utils, with conversion helpers that lift them into
the existing fork-aware LightClientHeader::Deneb variant.
- Adds TestFork::Deneb plus its chain_spec arm (sets bellatrix, capella,
and deneb fork epochs to 0 to match minimal-preset fixtures).
- Adds SpecTestLoader::minimal_deneb_sync() and Deneb dispatch in
load_bootstrap and load_update.
- Adds test_deneb_light_client_sync covering steps 1-5 of the upstream
minimal spec test, including execution_root verification on both
finalized and optimistic headers.
- Imports the upstream minimal/deneb/light_client/sync/light_client_sync
fixtures (bootstrap, config, meta, steps, 8 update files).
force_update steps (6, 9) and the steps that depend on them (7, 8, 10)
remain out of scope, matching the Altair/Bellatrix/Capella tests.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.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.
Builds on #48 (Deneb header types, already merged) to wire Deneb end-to-end through the spec-test harness, mirroring the Capella pattern.
Summary
minimal/deneb/light_client/sync/light_client_syncfixtures (bootstrap, config, meta, steps, 8 update files).RawExecutionPayloadHeaderDeneb(17 fields = Capella +blob_gas_used+excess_blob_gas),RawDenebLightClientHeader, andRawDeneb{Bootstrap,Update}SSZ types intest_utils.rs, with conversion helpers that lift them into the existingLightClientHeader::Denebvariant. Carries forward Capella'sslot == 0finality-sentinel handling so default-zero finalized headers don't trigger spurious execution-branch failures.TestFork::Denebplus itschain_spec()arm (sets bellatrix, capella, and deneb fork epochs to 0 to match the minimal-preset fixtures).SpecTestLoader::minimal_deneb_sync()and Deneb dispatch inload_bootstrap/load_update.test_deneb_light_client_syncexercising steps 1-5 of the upstream test, includingexecution_rootverification on both finalized and optimistic headers.check_execution_rootto a small match-then-compare so Capella and Deneb share the comparison/print path.Out of scope
force_updatesteps (6, 9) and the steps that depend on them (7, 8, 10) — same posture as the existing Altair / Bellatrix / Capella tests; gated by the#[ignore]pattern already in place.clippy::duplicated_attributeslint that surfaces undercargo clippy --testsonbls_spec_tests.rs:1andlight_client_spec_tests.rs:1— this exists onmaster(verified viagit show master:...) and is unrelated to this PR.Test plan
cargo test --lib test_deneb_light_client_sync— passes 5/5 steps (Combined, Combined, Finality, Committee, Combined updates with all execution_root checks succeeding).cargo test --lib light_client_spec_tests— Altair, Bellatrix, Capella, Deneb all green; force_update test still ignored.cargo test— 76 passed, 0 failed, 1 ignored (76 = 75 baseline + 1 new Deneb test).cargo fmtcargo clippy -- -D warnings(matches existing CI invocation)🤖 Generated with Claude Code