test(e2e): migrate more e2e suites to proposer pipelining#23482
Merged
Conversation
Migrates the §8a "genuinely un-migrated" e2e suites onto PIPELINING_SETUP_OPTS
where the test actually enables pipelining. Excludes docker-compose-only
composed tests (e2e_cheat_codes, e2e_local_network_example,
e2e_token_bridge_tutorial_test) and integration_proof_verification, which
either need separate compose env-var work or have no sequencer/prover
pipelining surface.
Suites migrated:
- e2e_cross_chain_messaging: l1_to_l2, l2_to_l1, token_bridge_{failure_cases,
private, public}; CrossChainMessagingTest.setup(opts) added.
- e2e_fees: account_init, fee_juice_payments, public_payments,
sponsored_payments via FeesTest.setup(opts).
- e2e_prover: client, full; FullProverTest.setup(opts) added; TIMEOUT
branches on REAL_PROOFS (15min fake, 45min real).
- e2e_p2p: fee_asset_price_oracle_gossip, reqresp, reqresp_no_handshake
(inline enableProposerPipelining + inboxLag + slot offset on
getProposerIndexes).
- composed: e2e_persistence (PIPELINING_SETUP_OPTS into all 7 setup()
calls), uniswap_trade_on_l1_from_l2 (via shared/uniswap_l1_l2.ts).
- composed/web3signer/e2e_multi_validator_node_key_store: opted into
PIPELINING_SETUP_OPTS with aztecEpochDuration=8 and
aztecProofSubmissionEpochs=4 to keep the proven-wait under the 10min
jest budget; B2 fix is already on merge-train/spartan via the squashed
PR #23165 (a7a0d8c).
- Standalone: e2e_fee_asset_price_oracle, e2e_multi_eoa (rotation test
it.skip with sharpened TODO — pipelining has no same-proposal-retry
semantic), e2e_multiple_blobs, e2e_simple, e2e_snapshot_sync,
e2e_synching, e2e_sequencer/reload_keystore.
Files modified: 28. All within yarn-project/end-to-end/src/. No
source-code changes.
…lic} The migration commit added jest.setTimeout(...) inside the describe body but didn't add the import — token_bridge_private failed at suite-load with ReferenceError: jest is not defined. Matches the pattern already in l2_to_l1.test.ts.
…eckpointed chain Under pipelining, publisher #1's mocked silent-drop in slot N invalidates the proposed chain (parent-of-pipelined-child verification fails for slot N+1), and the resulting archiver prune + world-state reorg used to drop the wallet's in-flight tx from the mempool before slot N+2's publisher #2 could mine it. Anchoring the PXE to the checkpointed chain (syncChainTip: 'checkpointed') keeps the wallet's anchor block on the last sealed-on-L1 checkpoint, which predates the discarded proposed chain. The mempool re-validation finds the anchor still present, the tx stays, and slot N+2's rotation publishes it. Verified locally: 1/1 passes in 72.5s with two rotation cycles (publisher A blocked → B fallback; B blocked → C fallback).
CI hit a propose_action_not_successful → Reorg/Chain pruned to block 0 cascade on slot 12. The cascade dropped the wallet's in-flight tx via handlePrunedBlocks (Block header not found) with the canonical Tx dropped by P2P node thrown out of waitForTx. Same family as the e2e_multi_eoa rotation case (commit 55ee51b): proposed-chain invalidation kills the wallet tx because the PXE anchored to a proposed-but-not-yet-checkpointed block. Anchoring to the checkpointed chain leaves the wallet's anchor on the last sealed L1 checkpoint, which survives the prune. Threads pxeOpts: Partial<PXEConfig> through CrossChainMessagingTest (4th constructor arg, 2nd setup() arg) so opt-in is per-test. Verified locally: 1 passed / 3 skipped in 389.83s, no Tx dropped, no Chain pruned to block 0, only benign trim-the-pipeline prunes back to the last sealed block.
14547fe to
60a0bbb
Compare
PhilWindle
approved these changes
May 22, 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.
Migrates more e2e suites onto
PIPELINING_SETUP_OPTS(or inlineenableProposerPipelining: truefor tests that build their own config). Excludes docker-compose-only composed tests (e2e_cheat_codes,e2e_local_network_example,e2e_token_bridge_tutorial_test) andintegration_proof_verificationfor now.