Skip to content
Merged
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
39 changes: 39 additions & 0 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -48,5 +48,44 @@ jobs:
- name: Real iroh folder sync and restart
run: timeout 10m cargo test --locked --test sync_slice -- --test-threads=1

# The adversarial delete matrix. It was added on 2026-08-25 and NOT added
# here, so the two tests that reproduce a file-loss incident ran only on
# the author's laptop. That is the same shape as the `--bins` gap above.
- name: Adversarial folder sync matrix
run: timeout 10m cargo test --locked --test folder_sync -- --test-threads=1

- name: Serial local multi-node daemon slice
run: timeout 15m cargo test --locked --test local_slice -- --test-threads=1

# A NEW FILE IN tests/ DOES NOT RUN HERE UNLESS SOMEBODY ADDS A STEP FOR
# IT, and forgetting is silent: the suite goes green while the new tests
# never execute. That has now happened twice, once for the binary's own
# tests and once for the delete matrix.
#
# So every target must be either RUN above or named below with a reason.
# Adding a test file and nothing else fails this step, which is the point.
- name: Every test target is accounted for
run: |
set -euo pipefail
# Named here, deliberately not run, with the reason. Shorten this list.
not_yet_verified_on_linux="lifecycle pathwatch_slice shell"
missing=""
for path in tests/*.rs; do
target="$(basename "$path" .rs)"
if grep -q -- "--test $target" .github/workflows/test.yml; then
continue
fi
case " $not_yet_verified_on_linux " in
*" $target "*)
echo "known gap, not run here: $target"
continue
;;
esac
missing="$missing $target"
done
if [ -n "$missing" ]; then
echo "these test targets never run in CI:$missing" >&2
echo "add a step for each, or name it in not_yet_verified_on_linux with a reason" >&2
exit 1
fi
echo "every tests/*.rs target is run or explicitly accounted for"
Loading