testsAndMisc/meta/shell-coverage-allowlist.txt
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

119 lines
7.3 KiB
Plaintext

# Shell libraries that predate the coverage ratchet.
#
# Each line is a file exempt from check_shell_coverage.sh. The exemption
# is static: editing one of these files is fine and does not require
# tests. An entry goes away when its lib/ directory gains a
# tests/run_all.sh, at which point every file in that directory is
# enforced.
#
# This list only ever shrinks. Never add a path to it by hand -- a new
# library must ship with its tests.
#
# Regenerate (only ever to REMOVE now-covered entries):
# bash meta/scripts/check_shell_coverage.sh --seed
linux_configuration/.githooks/lib/common.sh
linux_configuration/scripts/meta/lib/shell_check_discover.sh
linux_configuration/scripts/meta/lib/shell_check_install.sh
linux_configuration/scripts/meta/lib/shell_check_lint.sh
linux_configuration/scripts/mtk_root/lib/dump_partitions.sh
linux_configuration/scripts/mtk_root/lib/dump_verify.sh
linux_configuration/scripts/mtk_root/lib/mtk_udev.sh
linux_configuration/scripts/mtk_root/lib/recon_report.sh
linux_configuration/scripts/periodic_background/digital_wellbeing/pacman/lib/install_files.sh
linux_configuration/scripts/periodic_background/digital_wellbeing/pacman/lib/integrity.sh
linux_configuration/scripts/periodic_background/digital_wellbeing/pacman/lib/managed_copy.sh
linux_configuration/scripts/periodic_background/digital_wellbeing/pacman/lib/protect_and_extras.sh
linux_configuration/scripts/periodic_background/digital_wellbeing/virtualbox/lib/vbox_disk_inject.sh
linux_configuration/scripts/periodic_background/system-maintenance/bin/lib/catchup_timer.sh
linux_configuration/scripts/periodic_background/system-maintenance/bin/lib/distro_detect.sh
linux_configuration/scripts/periodic_background/system-maintenance/bin/lib/nvidia_pmon.sh
linux_configuration/scripts/periodic_background/system-maintenance/bin/lib/packages.sh
linux_configuration/scripts/periodic_background/system-maintenance/bin/lib/system_services.sh
linux_configuration/scripts/single_use/features/lib/aw_autostart.sh
linux_configuration/scripts/single_use/features/lib/aw_install.sh
linux_configuration/scripts/single_use/features/lib/aw_service.sh
linux_configuration/scripts/single_use/features/lib/dns_dhcp.sh
linux_configuration/scripts/single_use/features/lib/dns_firewall.sh
linux_configuration/scripts/single_use/features/lib/dns_units.sh
linux_configuration/scripts/single_use/features/lib/dwm_config.sh
linux_configuration/scripts/single_use/features/lib/gitea_network.sh
linux_configuration/scripts/single_use/features/lib/kcd2_autorebuild.sh
linux_configuration/scripts/single_use/features/lib/kcd2_expose.sh
linux_configuration/scripts/single_use/features/lib/kcd2_serve.sh
linux_configuration/scripts/single_use/features/lib/local_llm_model.sh
linux_configuration/scripts/single_use/features/lib/mobile_service.sh
linux_configuration/scripts/single_use/features/lib/nc_discover.sh
linux_configuration/scripts/single_use/features/lib/nc_flash.sh
linux_configuration/scripts/single_use/features/lib/nc_image.sh
linux_configuration/scripts/single_use/features/lib/nc_packages.sh
linux_configuration/scripts/single_use/features/lib/nc_php.sh
linux_configuration/scripts/single_use/features/lib/nc_remote_flash.sh
linux_configuration/scripts/single_use/features/lib/nc_remote.sh
linux_configuration/scripts/single_use/features/lib/nc_services.sh
linux_configuration/scripts/single_use/features/lib/pi_flash_exec.sh
linux_configuration/scripts/single_use/features/lib/pi_flash_image.sh
linux_configuration/scripts/single_use/features/lib/pi_flash_remote.sh
linux_configuration/scripts/single_use/features/lib/rpi_nc_ca.sh
linux_configuration/scripts/single_use/features/lib/rpi_nc_deps.sh
linux_configuration/scripts/single_use/features/lib/rpi_nc_fixes.sh
linux_configuration/scripts/single_use/features/lib/rpi_nc_install.sh
linux_configuration/scripts/single_use/features/lib/rpi_nc_ssl_remote.sh
linux_configuration/scripts/single_use/features/lib/rpi_nc_ssl.sh
linux_configuration/scripts/single_use/features/lib/rpi_nc_system.sh
linux_configuration/scripts/single_use/features/lib/searxng_expose.sh
linux_configuration/scripts/single_use/features/lib/searxng_limiter.sh
linux_configuration/scripts/single_use/features/lib/searxng_settings.sh
linux_configuration/scripts/single_use/features/lib/searxng_stack.sh
linux_configuration/scripts/single_use/features/lib/searxng_start.sh
linux_configuration/scripts/single_use/features/lib/searxng_status.sh
linux_configuration/scripts/single_use/features/lib/syncyomi_expose.sh
linux_configuration/scripts/single_use/features/lib/syncyomi_stack.sh
linux_configuration/scripts/single_use/features/lib/unreal_mcp_repo.sh
linux_configuration/scripts/single_use/features/lib/website_build.sh
linux_configuration/scripts/single_use/features/lib/wg_firewall.sh
linux_configuration/scripts/single_use/features/lib/wg_keys.sh
linux_configuration/scripts/single_use/features/lib/wg_sshd.sh
linux_configuration/scripts/single_use/fixes/lib/arch_cpu.sh
linux_configuration/scripts/single_use/fixes/lib/arch_hardware.sh
linux_configuration/scripts/single_use/fixes/lib/arch_perf_fixes.sh
linux_configuration/scripts/single_use/fixes/lib/arch_perf_probes.sh
linux_configuration/scripts/single_use/fixes/lib/arch_perf_report.sh
linux_configuration/scripts/single_use/fixes/lib/arch_sysctl.sh
linux_configuration/scripts/single_use/fixes/lib/bt_adapter.sh
linux_configuration/scripts/single_use/fixes/lib/bt_audio.sh
linux_configuration/scripts/single_use/fixes/lib/bt_pairing.sh
linux_configuration/scripts/single_use/fixes/lib/bt_report.sh
linux_configuration/scripts/single_use/fixes/lib/hosts_guard_migrate.sh
linux_configuration/scripts/single_use/fixes/lib/hosts_guard_rollback.sh
linux_configuration/scripts/single_use/fixes/lib/nvidia_config.sh
linux_configuration/scripts/single_use/fixes/lib/pacman_hook_stall_capture.sh
linux_configuration/scripts/single_use/fixes/lib/pacman_hook_stall_load.sh
linux_configuration/scripts/single_use/fixes/lib/pacman_hook_stall_setup.sh
linux_configuration/scripts/single_use/fixes/lib/pacman_hook_stall_summary.sh
linux_configuration/scripts/single_use/fixes/lib/pacman_hook_stall_usage.sh
linux_configuration/scripts/single_use/fixes/lib/pacman_hook_stall_watch.sh
linux_configuration/scripts/single_use/fixes/lib/thorium_repairs.sh
linux_configuration/scripts/single_use/fixes/lib/ubuntu_perf_fixes.sh
linux_configuration/scripts/single_use/fixes/lib/ubuntu_perf_more.sh
linux_configuration/scripts/single_use/fresh-install/lib/packages.sh
linux_configuration/scripts/single_use/lib/joplin_server.sh
linux_configuration/scripts/single_use/misc/testsAndMisc-bash/lib/clean_audio_filters.sh
linux_configuration/scripts/single_use/misc/testsAndMisc-bash/lib/transcribe_deps.sh
linux_configuration/scripts/single_use/misc/testsAndMisc-bash/lib/transcribe_pkgmgr.sh
linux_configuration/scripts/single_use/misc/testsAndMisc-bash/lib/transcribe_venv.sh
linux_configuration/scripts/single_use/misc/testsAndMisc-bash/lib/unity_handler.sh
meta/lib/lint_full_tools.sh
meta/lib/lint_output.sh
meta/scripts/lib/disk_cleanup_common.sh
meta/scripts/lib/trace_prefix.sh
meta/scripts/lib/trace_stubs.sh
phone_focus_mode/lib/adb_common.sh
phone_focus_mode/lib/adb_locking.sh
phone_focus_mode/lib/adb_trusted.sh
phone_focus_mode/lib/backup_capture.sh
phone_focus_mode/lib/backup.sh
phone_focus_mode/lib/monitor_checks_health.sh
phone_focus_mode/lib/monitor_checks_policy.sh
phone_focus_mode/lib/monitor.sh
phone_focus_mode/lib/restore.sh