Commit e9fa1f8
authored
fix: update spec-test runners for the latest leanSpec fixture schema (#429)
## Motivation
#385 switched CI to download the latest leanSpec fixtures release
instead of generating them from a pinned commit. The current release
carries fixture-schema changes the test runners don't understand yet, so
the Test job on `main` fails.
Note: leanSpec's release is a single rolling `latest` tag — it was
republished mid-review (2026-06-10 17:31 UTC), which is what the second
commit addresses.
## Description
Runner/harness-only changes — no consensus behavior is touched, and
ethlambda already matches the spec in every affected case:
- **`tickToSlot` (fork-choice block steps):** new flag, default `true`.
The early-arrival tests set it to `false` to deliver a block ahead of
the store clock and assert the clock doesn't move. The forkchoice
spectest runner and the Hive test driver now only tick to the block's
slot when the flag is set.
- **`rejectionReason`:** leanSpec renamed `expectException`. The
`verify_signatures` and `state_transition` fixture types accept both
spellings via a serde alias.
- **`ssz_test`:** the SSZ fixture format string was renamed from `ssz`;
the runner accepts both.
- **`proofSetting` / mocked proofs:** leanSpec now fills most vectors
with placeholder aggregation proofs (`MOCKED-AGGREGATION-PROOF`
sentinel) instead of paying for recursive SNARK merges, marking the
regime in a top-level `proofSetting` field (0 = mocked, must not be
verified; 1 = real and valid; 2 = real and invalid). The forkchoice
runner routes mocked vectors through a new
`on_gossip_aggregated_attestation_without_verification` (mirroring the
`on_block`/`on_block_without_verification` split). Production paths
always verify.
Known follow-ups (out of scope):
- The Hive test driver receives fork-choice steps one at a time with no
fixture-level context, so it cannot honor `proofSetting` yet; Hive runs
against mocked-proof fixtures will need a protocol addition.
- Tracking the rolling `latest` release means any upstream republish can
break `main`'s CI at any time; pinning the fixtures tarball SHA256 would
restore reproducibility.
## How to Test
```
make test # downloads latest release fixtures, all suites green
```
Locally verified against the 2026-06-10 17:31 UTC fixtures drop: full
`cargo test --workspace --release` passes (108 forkchoice, 118 SSZ, 67
STF, all remaining suites green).1 parent ed2fea0 commit e9fa1f8
7 files changed
Lines changed: 75 additions & 14 deletions
File tree
- crates
- blockchain
- src
- tests
- common
- test-fixtures/src
- types/tests
- net/rpc/src
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
392 | 392 | | |
393 | 393 | | |
394 | 394 | | |
| 395 | + | |
| 396 | + | |
| 397 | + | |
| 398 | + | |
| 399 | + | |
| 400 | + | |
| 401 | + | |
| 402 | + | |
| 403 | + | |
| 404 | + | |
| 405 | + | |
| 406 | + | |
| 407 | + | |
| 408 | + | |
| 409 | + | |
| 410 | + | |
| 411 | + | |
| 412 | + | |
| 413 | + | |
| 414 | + | |
395 | 415 | | |
396 | 416 | | |
397 | 417 | | |
| |||
420 | 440 | | |
421 | 441 | | |
422 | 442 | | |
423 | | - | |
| 443 | + | |
424 | 444 | | |
425 | 445 | | |
426 | 446 | | |
427 | 447 | | |
428 | 448 | | |
429 | 449 | | |
430 | 450 | | |
| 451 | + | |
431 | 452 | | |
432 | | - | |
433 | 453 | | |
434 | 454 | | |
435 | 455 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
41 | 41 | | |
42 | 42 | | |
43 | 43 | | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
44 | 48 | | |
45 | 49 | | |
46 | 50 | | |
| |||
93 | 97 | | |
94 | 98 | | |
95 | 99 | | |
96 | | - | |
97 | | - | |
98 | | - | |
| 100 | + | |
| 101 | + | |
99 | 102 | | |
100 | | - | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
101 | 108 | | |
102 | 109 | | |
103 | 110 | | |
| |||
184 | 191 | | |
185 | 192 | | |
186 | 193 | | |
187 | | - | |
| 194 | + | |
| 195 | + | |
| 196 | + | |
| 197 | + | |
| 198 | + | |
| 199 | + | |
| 200 | + | |
188 | 201 | | |
189 | 202 | | |
190 | 203 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
44 | 44 | | |
45 | 45 | | |
46 | 46 | | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
47 | 52 | | |
48 | 53 | | |
49 | 54 | | |
50 | 55 | | |
51 | 56 | | |
52 | 57 | | |
53 | 58 | | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
54 | 71 | | |
55 | 72 | | |
56 | 73 | | |
| |||
76 | 93 | | |
77 | 94 | | |
78 | 95 | | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
79 | 101 | | |
80 | 102 | | |
81 | 103 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
19 | 19 | | |
20 | 20 | | |
21 | 21 | | |
22 | | - | |
| 22 | + | |
23 | 23 | | |
24 | 24 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
44 | 44 | | |
45 | 45 | | |
46 | 46 | | |
47 | | - | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
48 | 51 | | |
49 | 52 | | |
50 | 53 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
5 | 5 | | |
6 | 6 | | |
7 | 7 | | |
8 | | - | |
| 8 | + | |
9 | 9 | | |
10 | 10 | | |
11 | 11 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
356 | 356 | | |
357 | 357 | | |
358 | 358 | | |
359 | | - | |
360 | | - | |
361 | | - | |
362 | | - | |
| 359 | + | |
| 360 | + | |
| 361 | + | |
| 362 | + | |
| 363 | + | |
| 364 | + | |
| 365 | + | |
363 | 366 | | |
364 | 367 | | |
365 | 368 | | |
| |||
0 commit comments