testsAndMisc/linux_configuration/boot_recovery/lib/tests/run_all.sh
Krzysztof kuhy Rudnicki 0fb3e3eee2 Cap extensionless scripts, and split the one that was hiding
check_file_length.sh required a dot in the filename, so every
extensionless executable was silently uncapped. is_source_file() now
reads the first two bytes and accepts a shebang, which catches real
scripts while still skipping data files like i3/config.

That immediately surfaced boot_recovery/boot-repair at 756 lines --
three times the largest capped shell file in the repo, uncapped purely
because its name has no dot in it. Split along its own section markers
into lib/{discovery,repair_fs,repair_kernel,modes}.sh, leaving the entry
script at 218.

The report block stays inline on purpose. It is top-level code with exit
calls rather than function definitions, and sourcing it changed control
flow: 30 of 42 tests failed. That is recorded in the lib headers so the
next reader does not retry it.

No vmbox pass for this one, deliberately. boot-repair is UEFI/ESP tooling
and the guest is BIOS/GRUB, so a sandbox green would be actively
misleading -- the vmbox skill says so itself. The evidence is the fixture
suite, which drives the real script against synthetic root trees: 42
passed before, 42 passed after.

verify_shell_split.sh reports 31 of 32 functions byte-identical. The one
difference is clean_shadow_files, where quoting $ESP_MOUNTPOINT fixed a
genuine SC2086 that only became visible once the function left the
monolith -- shellcheck could no longer see the readonly declaration and
stopped assuming the expansion was safe.

lib/tests/run_all.sh delegates to that same suite rather than standing up
a second, weaker harness: these libraries need the entry script's strict
mode and globals, so testing them in isolation would test a fiction.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PJrqKERAo5QUeEHWS5Asgp
2026-08-23 19:13:40 +02:00

26 lines
1.0 KiB
Bash
Executable File

#!/usr/bin/env bash
# Runs the suite that covers this directory's libraries.
#
# The libraries here are sourced by ../../boot-repair and depend on its strict
# mode, its $ROOT/$MODE globals and its output helpers, so they cannot be
# exercised in isolation without reimplementing all of that. The real suite
# drives the entry script against throwaway fixture root trees, which executes
# every one of them end to end -- that is the honest test, so this runner
# delegates to it rather than standing up a second, weaker harness.
#
# This file's existence is also what meta/scripts/check_shell_coverage.sh
# checks: is_covered() looks for tests/run_all.sh beside the libs and nothing
# more, so a stub here would mark them covered while testing nothing.
set -euo pipefail
HERE="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
readonly SUITE="${HERE}/../../tests/test_boot_repair.sh"
[[ -x "$SUITE" ]] || {
printf 'boot_recovery lib tests: %s is missing or not executable\n' "$SUITE" >&2
exit 1
}
printf '\n=== %s ===\n' "$(basename "$SUITE")"
exec "$SUITE"