From c0630f3d9d2afdc55fb6bd9a5907ab102e08957b Mon Sep 17 00:00:00 2001 From: Sam Sung <51686767+samwhosung@users.noreply.github.com> Date: Sun, 11 Oct 2026 19:53:35 +0700 Subject: [PATCH] check.sh and gates.sh report every failing test, not the first crate's (#869) `cargo test` stops at the first test binary that fails, so a red `scripts/check.sh` or gate run showed one crate's failures and hid the rest: the next run found more. Both scripts now pass `--no-fail-fast`, so one run reports every failing test across the workspace. The exit status is unchanged: any failure still fails the step. Co-Authored-By: Claude Opus 5.5 --- scripts/check.sh | 3 ++- scripts/gates.sh | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/scripts/check.sh b/scripts/check.sh index 9cdccfce..44ae113e 100755 --- a/scripts/check.sh +++ b/scripts/check.sh @@ -110,7 +110,8 @@ run() { run fmt cargo fmt --all -- --check run clippy cargo clippy $pflags --all-targets -- -D warnings -run test env BENILLA_SKIP_LOG="$skips" cargo test $pflags +# --no-fail-fast: one red test binary does not hide the failures in the ones after it. +run test env BENILLA_SKIP_LOG="$skips" cargo test --no-fail-fast $pflags # Data-gated tests skip without the install or the addon corpus and libtest swallows their line, # so each skip is also logged to $BENILLA_SKIP_LOG and counted here. if [ -s "$skips" ]; then diff --git a/scripts/gates.sh b/scripts/gates.sh index b3cb45b4..ed3fbc50 100755 --- a/scripts/gates.sh +++ b/scripts/gates.sh @@ -120,12 +120,12 @@ else "corpus=$([ -d "$root/wow-addons-vanilla" ] && echo yes || echo no)):" \ "data-gated tests skip silently on this machine" fi -run test env ${require_data:+BENILLA_REQUIRE_DATA=1} BENILLA_SKIP_LOG="$skips" cargo test --workspace +run test env ${require_data:+BENILLA_REQUIRE_DATA=1} BENILLA_SKIP_LOG="$skips" cargo test --no-fail-fast --workspace report_skips test # test-no-install: refuses a test that reads the install without `wow_data_or_skip!`. `WOW_DATA=` # (set, empty) is the resolver's "no install"; no build reads it, so the test binaries are reused. -run test-no-install env -u BENILLA_REQUIRE_DATA WOW_DATA= cargo test --workspace +run test-no-install env -u BENILLA_REQUIRE_DATA WOW_DATA= cargo test --no-fail-fast --workspace # doc-links: refuses a doc link to a `crate::`, `super::`, `self::` or `Self::` path whose leaf is # declared nowhere in the workspace. Narrow on purpose: every other unresolved link is a convention.