Skip to content

test(e2e): migrate block_building, multi_validator_node, publisher_funding, invalid_checkpoint_proposal to pipelining#23414

Merged
spalladino merged 4 commits into
merge-train/spartanfrom
palla/pipelining-batch-3-v2
May 21, 2026
Merged

test(e2e): migrate block_building, multi_validator_node, publisher_funding, invalid_checkpoint_proposal to pipelining#23414
spalladino merged 4 commits into
merge-train/spartanfrom
palla/pipelining-batch-3-v2

Conversation

@spalladino
Copy link
Copy Markdown
Contributor

@spalladino spalladino commented May 19, 2026

Migrates more e2e tests to pipelining

  • e2e_block_building: re-enables the nullifier-cleanup and reorg coverage under PIPELINING_SETUP_OPTS, avoids latest block races, and bounds proven-tip waits.
  • e2e_multi_validator_node: opts into PIPELINING_SETUP_OPTS, anchors PXE to the checkpointed chain, deploys accounts after epoch warps, removes unnecessary proving waits, and asserts attestations come from the checkpoint committee.
  • e2e_publisher_funding_multi: opts into PIPELINING_SETUP_OPTS and makes the second funding round deterministic by lowering a publisher balance after the first refill.
  • e2e_slashing/broadcasted_invalid_checkpoint_proposal_slash: removes the non-pipelined override and runs with pipelining plus inboxLag: 2.

Continues the pipelining e2e migration. Cherry-picks the actual test-side
adjustments from #23328 (which was a mess of unrelated changes) and skips
anything covered by #23327 or #23354.

- e2e_block_building "clears up all nullifiers if tx processing fails":
  un-skipped under fixed world-state fork-close. Promise.race -> Promise.any
  so we wait for the surviving tx (the failing one's rejection no longer
  settles the race first). Reads the block via getTxReceipt(minedTxHash)
  instead of getBlockData('latest') -- the latter can race against empty
  pipelined checkpoints.

- e2e_block_building > reorgs describe: un-skipped under the same fix.
  beforeEach now drives the proven tip with markAsProven() explicitly
  (AnvilTestWatcher.markAsProven is dormant under interval mining), and the
  open-ended while+sleep is bounded into a retryUntil. minTxsPerBlock: 1 keeps
  sequential block-number assertions tight under pipelining's empty-checkpoint
  cadence.

- e2e_multi_validator_node test 2: rewrote the over-pinned arrayContaining
  assertion to "no withdrawn validator attests" -- the test's actual
  motivation. Committee selection is RNG-sampled over the active set, so the
  original assertion pinned to a non-deterministic subset.
  jest.setTimeout(15min) added at the describe level so waitForProven has
  wall-clock budget.

- composed/ha/e2e_ha_full: replaced the strict
  `l1VoteCount === uniqueSlots.size` invariant (broken by design: HA dedup
  suppresses duplicate signatures, and the pipelined build-slot/target-slot
  offset means a vote signed in slot N mines in slot N+1) with an outcome
  assertion: poll until on-chain signal count for our payload >= 1, then
  assert payloadWithMostSignals matches, no (slot, validator) double-signs,
  every duty SIGNED. Pipelining opt-in held back behind a TODO.

- e2e_publisher_funding_multi: sharpened TODO documenting why pipelining
  opt-in is held back -- second funder round goes silent, needs source-level
  investigation of the RunningPromise cycle in publisher_manager.ts.
@spalladino spalladino changed the title test(e2e): batch 3 of pipelining e2e tests (clean redo of #23328) test(e2e): migrate block_building, multi_validator_node, publisher_funding, invalid_checkpoint_proposal to pipelining May 21, 2026
@spalladino spalladino enabled auto-merge (squash) May 21, 2026 09:29
@AztecBot
Copy link
Copy Markdown
Collaborator

Flakey Tests

🤖 says: This CI run detected 1 tests that failed, but were tolerated due to a .test_patterns.yml entry.

\033FLAKED\033 (8;;http://ci.aztec-labs.com/92a6d77ac063d6b6�92a6d77ac063d6b68;;�):  yarn-project/end-to-end/scripts/run_test.sh simple src/e2e_epochs/epochs_mbps.pipeline.parallel.test.ts "pipelining builds blocks using slot plus 1 proposer and proves them" (294s) (code: 0) group:e2e-p2p-epoch-flakes

@spalladino spalladino merged commit e011d80 into merge-train/spartan May 21, 2026
23 checks passed
@spalladino spalladino deleted the palla/pipelining-batch-3-v2 branch May 21, 2026 09:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants