test: harden harness reproducibility and cleanup
This commit is contained in:
+41
-1
@@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user