Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 18 additions & 8 deletions .test_patterns.yml
Original file line number Diff line number Diff line change
Expand Up @@ -267,18 +267,23 @@ tests:
- *charlie
- *adam

- regex: "src/e2e_epochs/epochs_l1_reorgs.parallel.test.ts"
- regex: "src/single-node/l1-reorgs/blocks.parallel.test.ts"
owners:
- *phil

- regex: "epochs_mbps.pipeline.parallel.test.ts.*prunes uncheckpointed"
- regex: "src/single-node/l1-reorgs/messages.parallel.test.ts"
owners:
- *phil

- regex: "src/multi-node/recovery/pipeline_prune.test.ts.*prunes uncheckpointed"
owners:
- *sean

# Asserts all late txs land in the checkpoint's last block, but the proposer seals the last block as
# soon as one tx is available and snapshots the mempool, so late txs still propagating over gossip
# spill into the next checkpoint. Flaky until the sequencer waits for the last block's tx window.
- regex: "src/e2e_epochs/epochs_mbps_redistribution.test.ts"
# Asserts a late tx burst is redistributed across the checkpoint's last two blocks, but the proposer
# seals the one-before-last block as soon as one tx is available and snapshots the mempool, so late
# txs still propagating over gossip spill into the next checkpoint. Flaky until the sequencer waits
# for the last block's tx window.
- regex: "src/multi-node/block-production/redistribution.parallel.test.ts.*redistributes checkpoint budget"
owners:
- *phil

Expand All @@ -290,7 +295,12 @@ tests:
owners:
- *phil

- regex: "src/e2e_epochs/.*\\.test\\.ts"
- regex: "src/single-node/.*\\.test\\.ts"
flake_group_id: e2e-p2p-epoch-flakes
owners:
- *palla

- regex: "src/multi-node/.*\\.test\\.ts"
flake_group_id: e2e-p2p-epoch-flakes
owners:
- *palla
Expand Down Expand Up @@ -408,7 +418,7 @@ tests:
# http://ci.aztec-labs.com/930ddc9ede87059f
# Pipelining race: slasher doesn't record the duplicate proposal offense before
# the test's wait timeout — same family as #23501.
- regex: "src/e2e_p2p/duplicate_proposal_slash.test.ts"
- regex: "src/multi-node/slashing/duplicate_proposal.test.ts.*duplicate proposals"
error_regex: "TimeoutError: Timeout awaiting duplicate proposal offense"
owners:
- *palla
34 changes: 26 additions & 8 deletions yarn-project/end-to-end/bootstrap.sh
Original file line number Diff line number Diff line change
Expand Up @@ -34,18 +34,28 @@ function test_cmds {
fi
echo "$prefix:TIMEOUT=25m:NAME=e2e_block_building $(set_dump_avm e2e_block_building) $run_test_script simple e2e_block_building"
echo "$prefix:TIMEOUT=30m:NAME=e2e_avm_simulator $(set_dump_avm e2e_avm_simulator) $run_test_script simple src/e2e_avm_simulator.test.ts"
echo "$prefix:TIMEOUT=15m:NAME=e2e_epochs/epochs_long_proving_time $run_test_script simple src/e2e_epochs/epochs_long_proving_time.test.ts"

local tests=(
# List all standalone and nested tests, except for the ones listed above.
src/e2e_!(prover|epochs)/*.test.ts
src/e2e_epochs/!(epochs_long_proving_time).test.ts
src/e2e_!(prover)/*.test.ts
src/single-node/proving/*.test.ts
src/single-node/l1-reorgs/*.test.ts
src/single-node/recovery/*.test.ts
src/single-node/partial-proofs/*.test.ts
src/single-node/misc/*.test.ts
src/multi-node/block-production/*.test.ts
src/multi-node/recovery/*.test.ts
src/multi-node/invalid-attestations/*.test.ts
src/multi-node/high-availability/*.test.ts
src/multi-node/slashing/*.test.ts
src/e2e_p2p/reqresp/*.test.ts
src/e2e_!(block_building|avm_simulator).test.ts
)
for test in "${tests[@]}"; do
local name=${test#*e2e_}
name=e2e_${name%.test.ts}
# Derive a CI test name from the path: drop the leading "src/" and trailing ".test.ts".
# This keeps e2e_<dir>/<file> names while also handling the multi-node/ category folder.
local name=${test#src/}
name=${name%.test.ts}

# Per-test bash TIMEOUT overrides — keep in sync with the test file's jest.setTimeout.
local test_prefix="$prefix"
Expand All @@ -56,14 +66,20 @@ function test_cmds {
e2e_cross_chain_messaging/l1_to_l2)
test_prefix="$prefix:TIMEOUT=20m"
;;
single-node/proving/long_proving_time)
# The long-proving-time scenario waits out a multi-epoch prover delay.
test_prefix="$prefix:TIMEOUT=15m"
;;
esac

# Check if this is a .parallel.test.ts file
if [[ "$test" == *.parallel.test.ts ]]; then
# Extract individual test names and create a command for each
while IFS= read -r test_name; do
# Create a safe name for the individual test (replace spaces with underscores)
local safe_test_name=$(echo "$test_name" | sed 's/ /_/g')
# Create a safe name for the individual test. This becomes the docker container name via
# docker_isolate, so every character outside docker's allowed set [a-zA-Z0-9_.-] (spaces,
# parentheses, etc.) must be collapsed to an underscore or `docker run --name` rejects it.
local safe_test_name=$(echo "$test_name" | sed 's/[^a-zA-Z0-9_.-]/_/g')
local full_name="${name}_${safe_test_name}"
echo "$test_prefix:NAME=$full_name $(set_dump_avm $full_name) $run_test_script simple $test \"$test_name\""
done < <(extract_test_names "$test")
Expand Down Expand Up @@ -276,7 +292,9 @@ function compat_test_cmds {

if [[ "$test" == *.parallel.test.ts ]]; then
while IFS= read -r test_name; do
local safe_test_name=$(echo "$test_name" | sed 's/ /_/g')
# See the matching note in test_cmds: collapse docker-illegal characters so NAME is a valid
# container name for docker_isolate.
local safe_test_name=$(echo "$test_name" | sed 's/[^a-zA-Z0-9_.-]/_/g')
local full_name="compat_${version}_${name}_${safe_test_name}"
echo "$prefix:NAME=$full_name $compat_env $run_test_script simple $test \"$test_name\""
done < <(extract_test_names "$test")
Expand Down
3 changes: 2 additions & 1 deletion yarn-project/end-to-end/package.local.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
"test": "NODE_NO_WARNINGS=1 node --experimental-vm-modules ../node_modules/.bin/jest --passWithNoTests src/fixtures"
},
"jest": {
"setupFilesAfterEnv": ["../../foundation/src/jest/setupAfterEnv.mjs", "jest-extended/all", "./shared/jest_setup.ts"]
"setupFilesAfterEnv": ["../../foundation/src/jest/setupAfterEnv.mjs", "jest-extended/all", "./shared/jest_setup.ts"],
"testEnvironment": "./shared/timing_env.mjs"
}
}
Loading
Loading