testsAndMisc/linux_configuration/scripts/single_use/features
Krzysztof kuhy Rudnicki 61ff5eacac Cover nc_php.sh (98.82%) and teach the jail to measure foreign platforms
nc_php.sh was the next-hardest library on the allowlist. It targets a
Debian Raspberry Pi -- it edits /etc/php/<ver>/apache2/php.ini, drives
occ as www-data and installs a crontab -- so none of its write targets
exist on this Arch host and the jail had nothing to mirror.

- --seed-dir / --seed-file create the paths a foreign-platform subject
  expects. Verified with a probe: /etc/php/8.2/apache2 exists inside
  the jail while /etc/php does not exist outside it.
- A failed bind is now FATAL, and missing mountpoints are created
  first. A bind that fails silently is indistinguishable from
  unreachable code in the report, which is the misdiagnosis this
  runner exists to prevent.
- Mirroring skips unreadable targets (/root as a normal user) rather
  than aborting under set -e.

nc_php.sh: 84/85 = 98.82%, 24 assertions. It STAYS on the allowlist,
because 98.82% is below the bar. Line 111 -- the crontab first-run
fallback -- hung the suite on both attempts to cover it, so it is left
uncovered and documented rather than tried a third time.

Two harness hazards found the hard way and written down: a top-level
stub function shadows the subject's own function for every later
assertion (this silently dropped coverage 83.53% -> 57.65% while the
tests still passed), and a stub for a piped-into command must drain
stdin or the writer takes SIGPIPE.

dot_resolver_install.sh still measures 39/39 = 100.00%.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DbD4nco3EgL1UFoZKmKsLE
2026-08-22 11:30:32 +02:00
..
lib Cover nc_php.sh (98.82%) and teach the jail to measure foreign platforms 2026-08-22 11:30:32 +02:00
systemd Extract dufs cloud (web + app + scripts) to github.com/kuhyx/dufs-cloud 2026-07-12 18:38:37 +02:00
control_from_mobile.sh Split two more linux_configuration scripts; revert a third 2026-08-16 18:44:18 +02:00
install_unreal_mcp_kvick.sh refactor(linux_configuration/scripts): split all scripts into single_use/ and periodic_background/ 2026-05-15 00:32:35 +02:00
install_unreal_mcp.sh Split five more linux_configuration single_use scripts 2026-08-16 18:51:28 +02:00
keepass_consolidate.sh linux_configuration: unified multi-device KeePass sync over dufs 2026-07-12 05:00:27 +02:00
keepass_sync.sh Fix the 11 shellcheck findings that kept CI red since b83ce5d 2026-08-04 20:55:02 +02:00
keepass-open.sh linux_configuration: unified multi-device KeePass sync over dufs 2026-07-12 05:00:27 +02:00
migrate_github_to_gitea.sh Add self-hosted Gitea deployment, mirroring all GitHub repos publicly 2026-07-04 07:45:00 +02:00
raspberry_pi_flash_sd.sh Split the Pi flasher and the boot-repair test harness 2026-08-16 20:21:44 +02:00
raspberry_pi_nextcloud.sh Split three more linux_configuration giants 2026-08-16 19:43:55 +02:00
setup_activitywatch.sh Split three more scripts; make the verifier catch heredoc cuts 2026-08-16 20:16:08 +02:00
setup_dns_blocker.sh Split setup_dns_blocker.sh, a live systemd unit target 2026-08-16 21:31:03 +02:00
setup_dot_resolver.sh Split seven more linux_configuration scripts 2026-08-16 18:56:05 +02:00
setup_dwm.sh Split five more linux_configuration single_use scripts 2026-08-16 18:51:28 +02:00
setup_gitea.sh Split three near-miss linux_configuration scripts 2026-08-16 18:38:43 +02:00
setup_kcd2_dice_solver.sh Split three large linux_configuration scripts, defer a fourth 2026-08-16 19:06:16 +02:00
setup_keepass_sync.sh linux_configuration: unified multi-device KeePass sync over dufs 2026-07-12 05:00:27 +02:00
setup_local_llm.sh Split five more linux_configuration single_use scripts 2026-08-16 18:51:28 +02:00
setup_nextcloud_raspberry.sh Split setup_nextcloud_raspberry.sh 1383 -> 231 2026-08-16 19:37:07 +02:00
setup_personal_website.sh Split three more linux_configuration feature and fix scripts 2026-08-16 18:48:01 +02:00
setup_phone_wireguard.sh Park phone DNS filtering: Private DNS fails closed, so the PC cannot host it 2026-08-05 10:05:16 +02:00
setup_searxng.sh Split setup_searxng.sh 912 -> 184 2026-08-16 19:11:40 +02:00
setup_syncyomi_guard.sh syncyomi_guard: refuse a collapsed payload as the new good copy 2026-08-10 15:33:18 +02:00
setup_syncyomi.sh Split three more linux_configuration feature and fix scripts 2026-08-16 18:48:01 +02:00
setup_wireguard_ssh.sh Split three more scripts; make the verifier catch heredoc cuts 2026-08-16 20:16:08 +02:00