test: harden harness reproducibility and cleanup

This commit is contained in:
2026-09-11 06:05:52 +00:00
parent 51fa88d05b
commit e7b9625210
5 changed files with 523 additions and 77 deletions
+41 -1
View File
@@ -4,11 +4,51 @@ set -eu
repo_root=$(CDPATH= cd -- "$(dirname -- "$0")/.." && pwd)
command=${1:-}
if [ -z "$command" ]; then
echo "usage: scripts/test-env doctor|coverage|status|logs|collect|recover|reuse|stop|reset|purge [--run-id ID]" >&2
echo "usage: scripts/test-env doctor [--e2e] | coverage|status|logs|collect|recover|reuse|stop|reset|purge|gc [options]" >&2
exit 2
fi
shift
if [ "$command" = --help ] || [ "$command" = -h ]; then
echo "usage: scripts/test-env doctor [--e2e] | coverage|status|logs|collect|recover|reuse|stop|reset|purge|gc [options]"
exit 0
fi
fail() { printf '%s\n' "test-env: $*" >&2; exit 2; }
doctor() {
e2e=no
while [ "$#" -gt 0 ]; do
case $1 in
--e2e) e2e=yes ;;
--help|-h) echo "usage: scripts/test-env doctor [--e2e]"; return 0 ;;
*) fail "unknown doctor option $1" ;;
esac
shift
done
docker version >/dev/null || fail "Docker is unavailable"
docker compose version >/dev/null || fail "Docker Compose is unavailable"
defaults=$repo_root/test/harness/defaults.toml
[ -r "$defaults" ] || fail "harness defaults are unreadable"
floor=$(awk -F '=' '/^free_space_floor_bytes[[:space:]]*=/{gsub(/[[:space:]]/, "", $2); print $2; exit}' "$defaults")
case $floor in ''|*[!0-9]*) fail "harness free-space floor is invalid" ;; esac
available_kib=$(df -Pk "$repo_root" | awk 'NR == 2 { print $4 }')
case $available_kib in ''|*[!0-9]*) fail "could not determine available disk space" ;; esac
available_bytes=$((available_kib * 1024))
[ "$available_bytes" -ge "$floor" ] || fail "available disk space $available_bytes is below harness floor $floor"
printf 'docker=ready compose=ready disk_available_bytes=%s disk_floor_bytes=%s cpus=%s\n' "$available_bytes" "$floor" "$(getconf _NPROCESSORS_ONLN 2>/dev/null || printf '?')"
if [ "$e2e" = yes ]; then
"$repo_root/scripts/windows/test-host" status
fi
cd "$repo_root"
exec docker compose -f deploy/compose.yaml run --rm toolchain go run ./test/harness doctor
}
if [ "$command" = doctor ]; then
doctor "$@"
exit $?
fi
docker version >/dev/null
docker compose version >/dev/null