{ "intent": "Give linux_configuration/scripts/single_use/fixes/lib a run_all.sh so its six already-tested libs become measurable by the coverage gate, which measures through a suite runner and not through single test files.", "scope": [ "linux_configuration/scripts/single_use/fixes/lib/tests/run_all.sh - new suite runner", "NEXT_SESSION_PROMPT.md - rewritten; the instrument is no longer the bottleneck", "Non-goal: writing tests for the 16 fixes/lib libs that have none", "Non-goal: clearing any lib off the allowlist" ], "changes": [ "run_all.sh follows the transcribe suite's shape: iterate test_*.sh in one process tree, count failures, exit non-zero if any failed.", "Deliberately no jail_args file beside it. The harness confines every write to its own `mktemp -d` and intercepts external commands with a PATH stub dir, and grep found no absolute writes to /etc, /var or /usr in any test, so the suite runs bare rather than inside the namespace jail.", "Corrects the previous handoff, which recorded fixes/lib as having 'no harness at all'. It already had 8 test files and 2 harnesses; the missing piece was the runner that is_covered() builds as its subject." ], "verification": [ { "command": "timeout 300 bash linux_configuration/scripts/single_use/fixes/lib/tests/run_all.sh", "result": "pass", "evidence": "All 8 test files pass through the runner, ending 'All fixes lib test files passed.' -- e.g. pacman_hook_stall_usage 4 passed 0 failed, pacman_hook_stall_watch 5 passed 0 failed." }, { "command": "shell_coverage_jail.sh --subject fixes/lib/tests/run_all.sh --measure pacman_hook_stall_usage.sh --min 1 --fail-on-case-error", "result": "pass", "evidence": "1/1 lines = 100.00%. The lib is a single usage() whose body is one `cat <[[:space:]]*/etc|>[[:space:]]*/var|>[[:space:]]*/usr' fixes/lib/tests/*.sh", "result": "pass", "evidence": "No matches, confirming the suite writes nothing outside its mktemp -d and so needs no jail_args." } ], "risks": [ "16 of the 22 libs in fixes/lib still have no tests, so the runner unblocks measurement for 6 libs rather than all 22.", "This suite is noticeably slower under the jail than the features suite, because the watch_forever tests exercise timing loops; a future --all sweep should expect that." ], "rollback": [ "git revert this commit, or delete tests/run_all.sh; the eight test files remain runnable individually and nothing else references the runner yet.", "After rollback, confirm the individual test files still pass by running one directly." ] }