Finding
The required Unit tests check in .github/workflows/pr-validation.yml runs:
- name: Run unit tests
run: bats --formatter tap tests/unit/ | tee results.tap
The pipeline's exit status is tee's, so a failing BATS run never fails the step. On the ubuntu-latest runner today, 18 of 148 tests fail and the check still reports green — for example all of tests/unit/04-install-kernel-akmods_test.bats tests 26-42 ([ "$status" -eq 0 ]' failed), plus 20-framework: non-writable brew prefix skips install with warning and Stable image embeds the Titanoboa ISO contract and installer configuration.
Discovered while landing #911 (BATS coverage, #518): the new instrumented coverage rerun ran under set -euo pipefail and was the only step that surfaced these failures. Reproduced identically in a clean ubuntu:24.04 container with and without kcov, so this is not an instrumentation artifact.
Recommendation
- Set
shell: bash + set -o pipefail (or use bats ... > results.tap and cat afterwards) so the step's status reflects the BATS result.
- Fix or quarantine the 18 currently-failing tests first — flipping the gate before that will immediately red-line every PR.
Priority
- Impact: high (a required status check is not actually gating)
- Effort: low for the gate, medium for the test fixes
Finding
The required
Unit testscheck in.github/workflows/pr-validation.ymlruns:The pipeline's exit status is
tee's, so a failing BATS run never fails the step. On the ubuntu-latest runner today, 18 of 148 tests fail and the check still reports green — for example all oftests/unit/04-install-kernel-akmods_test.batstests 26-42 ([ "$status" -eq 0 ]' failed), plus20-framework: non-writable brew prefix skips install with warningandStable image embeds the Titanoboa ISO contract and installer configuration.Discovered while landing #911 (BATS coverage, #518): the new instrumented coverage rerun ran under
set -euo pipefailand was the only step that surfaced these failures. Reproduced identically in a cleanubuntu:24.04container with and without kcov, so this is not an instrumentation artifact.Recommendation
shell: bash+set -o pipefail(or usebats ... > results.tapandcatafterwards) so the step's status reflects the BATS result.Priority