testsAndMisc/linux_configuration/scripts/single_use
Krzysztof kuhy Rudnicki bca70b67b5 Shell coverage: convert the ratchet to a measured 100% bar
The gate was a presence check -- 'a run_all.sh exists beside this lib' --
which an empty suite that asserts nothing satisfies. It now measures.

100% is reachable with no suppressions and no production source changes:
run the suite inside a user+mount namespace and the sudo-writes, systemd
units and nftables rules execute for real against a throwaway /etc.

- meta/scripts/shell_coverage_jail.sh: the runner, promoted out of a
  session scratchpad. Two fixes it needed on the way: bind targets mirror
  the real directory tree (an empty bind makes writes fail with ENOENT,
  which reads as unreachable code), and sudo gets a pass-through stub
  because real sudo cannot setresuid inside a userns.
- It fingerprints git status before and after and fails the run if a
  write escapes the jail. Verified with a deliberate escapee.
- dot_resolver_install.sh: 39/39 = 100.00%, 28 assertions. Picked by
  scoring every allowlisted lib on root ops, system writes and
  destructive calls -- it scored highest in the repo. Allowlist 106 -> 105.
- jscpd was already over its own threshold at 2.45% and would have
  rejected every commit staging a .sh file. Excluding vendored .venv/
  shell alone gives 1.67%; also excluding lib/tests/ gives 1.47%.

The gate is deliberately NOT wired into the hook chain yet.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DbD4nco3EgL1UFoZKmKsLE
2026-08-22 11:20:58 +02:00
..
features Shell coverage: convert the ratchet to a measured 100% bar 2026-08-22 11:20:58 +02:00
feedback-appimage feedback: local-only pacman package build, and ignore build artifacts 2026-08-10 15:33:18 +02:00
fixes diagnose_pacman_hook_stall.sh: split 493 -> 249 + 6 libs, 100% coverage 2026-08-18 22:33:57 +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 Archive libre_translate.sh: unused, moved to testsAndMisc-archive 2026-08-18 21:00:33 +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