testsAndMisc/linux_configuration/scripts/single_use
Krzysztof kuhy Rudnicki 0e9cc0ce95
Some checks are pending
Pre-commit checks / pre-commit (push) Waiting to run
Shell tests / shell-tests (push) Waiting to run
Shell tests / arch-tests (push) Waiting to run
Test bt_pairing.sh to 100%: allowlist 97 -> 96
Second of the 16 untested fixes/lib libs. 65/65 = 100.00% through
run_all.sh, twice, the second at --min 100 (exit 0), then cleared from the
allowlist and confirmed by the real gate with no exemption.

Two findings worth keeping:

- udevadm was NOT in the harness's stub list, so `udevadm control
  --reload-rules` was reaching the REAL binary during the suite. A
  prepended stub dir cannot hide a tool the host actually has. Caught by
  asserting on the recorded call rather than by reading the code, which is
  the argument for asserting on calls at all.

- _disable_usb_autosuspend writes /etc/udev/rules.d/50-bluetooth-no-
  autosuspend.rules. Binding /etc in the jail would have covered it, and
  was rejected: run_all.sh runs UN-jailed in ci_mirror.sh and in the
  shell-tests workflow, as its own header says, so a bind mount protects
  the coverage run and leaves every bare run writing to a real root-owned
  file. Instead the lib gained a UDEV_RULES_DIR override, defaulting to the
  real path -- the same env-override seam pacman_hook_stall_harness.sh uses
  for PACMAN_LOG/CACHE_DIR/PACMAN_LOCK.

Proof the suite is safe where it runs un-jailed: after a bare run_all.sh,
the real rule file still has its 2026-02-21 mtime (it is a genuine artifact
of a production run six months ago) and the probed power/control values are
unchanged. The jail cannot give that check.

fix_usb_autosuspend globs the real /sys/bus/usb/devices/*/ with no override,
so its branches are driven through stubbed lsusb output: ffff:ffff matches
nothing on any machine and reaches the not-found arm, while 046d:c077
(control=on) and 046d:0825 (control=auto) are read-only probes, each guarded
so the case self-skips with a note if the host state changes rather than
silently asserting nothing.

Split across two test files to stay under the 250-line cap; run_all.sh globs
test_*.sh, so splitting costs nothing.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-22 16:47:40 +02:00
..
features Make the gate read jail_args and refuse a suite that dies partway 2026-08-22 13:36:54 +02:00
feedback-appimage feedback: local-only pacman package build, and ignore build artifacts 2026-08-10 15:33:18 +02:00
fixes Test bt_pairing.sh to 100%: allowlist 97 -> 96 2026-08-22 16:47:40 +02:00
fresh-install fresh-install: split main.sh 308 -> 200 + 121 2026-08-17 14:11:26 +02:00
lib Split install_joplin.sh and establish the shell-split pattern 2026-08-16 18:33:59 +02:00
misc/testsAndMisc-bash Cover clean_audio_filters.sh (89.25%), completing testsAndMisc-bash/lib 2026-08-22 13:27:44 +02:00
utils generate_study_materials: split into lib/ under the 250-line cap 2026-08-21 14:32:08 +02:00
install_code_insiders.sh refactor(linux_configuration/scripts): split all scripts into single_use/ and periodic_background/ 2026-05-15 00:32:35 +02:00
install_feedback.sh feedback: local-only pacman package build, and ignore build artifacts 2026-08-10 15:33:18 +02:00
install_joplin.sh Split install_joplin.sh and establish the shell-split pattern 2026-08-16 18:33:59 +02:00
install_ungoogled_chromium_ubuntu.sh Wire uBlock Origin into every real Chromium launch, alongside LeechBlock 2026-08-12 22:44:28 +02:00
test_bad.sh refactor(linux_configuration/scripts): split all scripts into single_use/ and periodic_background/ 2026-05-15 00:32:35 +02:00
test_removal.sh refactor(linux_configuration/scripts): split all scripts into single_use/ and periodic_background/ 2026-05-15 00:32:35 +02:00