Skip to content

test(e2e): merge single-node fee, proving, and sequencer config suites#24492

Open
spalladino wants to merge 1 commit into
merge-train/spartan-v5from
spl/e2e-r2-single-node-merges
Open

test(e2e): merge single-node fee, proving, and sequencer config suites#24492
spalladino wants to merge 1 commit into
merge-train/spartan-v5from
spl/e2e-r2-single-node-merges

Conversation

@spalladino

Copy link
Copy Markdown
Contributor

Round-2 e2e consolidation, PR 4 of 9 (single-node merges). All merges preserve every asserted behavior; no assertions dropped.

Merges (old → new)

  • single-node/fees/public_payments.test.ts + single-node/fees/sponsored_payments.test.ts → folded into single-node/fees/private_payments.parallel.test.ts as two unrolled its (plain string titles — the target is .parallel). All three ran the same FeesTest+FPC fixture; the shared beforeAll gains applySponsoredFPCSetup(), which is a PXE contract registration (the SponsoredFPC is already funded at genesis via fundSponsoredFPC), not an extra tx. The folded its compute their padded-max-fee gas settings locally, matching the originals.
  • single-node/proving/empty_blocks.test.ts + single-node/proving/world_state_pruning.test.ts + single-node/misc/node_block_api.test.tssingle-node/proving/default_node.test.ts: one context-default setupWithProver({}) node, one describe per former file. Ordered so world_state_pruning (needs minTxsPerBlock:0 empty checkpoints) runs before empty_blocks (raises minTxsPerBlock). node_block_api queries the genesis block, which is setup-agnostic, so it drops its former bespoke PIPELINING setup.
  • single-node/sequencer/slasher_config.test.ts + single-node/sequencer/sequencer_config.test.tssingle-node/sequencer/runtime_config.test.ts: one setupBlockProducer carrying both suites' knobs (slasher inactivity config + maxL2BlockGas/manaTarget/bot account). The sequencer half keeps its syncChainTip: 'checkpointed' via explicit pxeOpts since setupBlockProducer defaults to 'proposed'.
  • single-node/block-building/block_building.test.ts: the 8-it double-spend suite is now an it.each table over {firstKind, secondKind, sameBlock, expectedError} (plain file, tables safe). Filename kept so the bootstrap.sh TIMEOUT=25m override and the .test_patterns.yml entry keep applying. All other its unchanged.

Container count

  • Plain-file containers: −5 (public_payments, sponsored_payments, empty_blocks, world_state_pruning, node_block_api, slasher_config, sequencer_config deleted; default_node, runtime_config added).
  • .parallel per-it containers: +2 (the folded fee its), each far cheaper than the full plain-file fixture they replace.
  • its: 8 double-spend its → 1 it.each × 8 rows (same coverage, one title pattern).

Folds skipped

  • single-node/proving/cross_chain_public_message.test.ts stays put: it is not default-compatible (sequencerPublisherAllowInvalidStates: true, minTxsPerBlock: 1, numberOfAccounts: 1), unlike the plan's assumption.

Docs

  • docs/docs-developers/docs/aztec-js/how_to_pay_fees.md: #include_code sponsored_fpc_simple path repointed to private_payments.parallel.test.ts; the docs:start/end:sponsored_fpc_simple block moved byte-identical.

Local runs

  • runtime_config.test.ts: 3/3 in 140s
  • default_node.test.ts: 3/3 in 183s
  • block_building.test.ts: 18 passed / 1 skipped (pre-existing manual-only skip) in 564s
  • private_payments.parallel.test.ts: 8/8 in 333s

Deferred

  • end-to-end/README.md example command and single-node/README.md per-file blurbs still name the old files (README sweep is deferred per the round-2 plan; PR 5+ owns it).

Round-2 e2e consolidation (single-node merges):

- Fold fees/public_payments.test.ts (1 it) and fees/sponsored_payments.test.ts
  (1 it) into fees/private_payments.parallel.test.ts as unrolled its on the
  shared FeesTest+FPC fixture (adds applySponsoredFPCSetup to the beforeAll —
  a PXE registration, no extra tx). Docs snippet sponsored_fpc_simple moved
  verbatim; include path updated in how_to_pay_fees.md.
- Merge proving/empty_blocks, proving/world_state_pruning, and
  misc/node_block_api into proving/default_node.test.ts sharing one
  context-default setupWithProver({}) node. proving/cross_chain_public_message
  stays put (needs sequencerPublisherAllowInvalidStates + minTxsPerBlock:1).
- Merge sequencer/slasher_config and sequencer/sequencer_config into
  sequencer/runtime_config.test.ts with one setupBlockProducer carrying both
  suites' config knobs.
- Convert block_building.test.ts 8-it double-spend suite into an it.each table
  over {firstKind, secondKind, sameBlock, expectedError}.
@AztecBot

AztecBot commented Jul 3, 2026

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/cac25b9251c99496�cac25b9251c994968;;�): yarn-project/end-to-end/scripts/run_test.sh ha src/composed/ha/e2e_ha_full.parallel.test.ts "should produce blocks with HA coordination and attestations" (68s) (code: 0)

@spalladino spalladino added wip Work in progress and removed wip Work in progress labels Jul 3, 2026
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.

2 participants