Phase 4 of the v1.7.52 container excellence plan: a release-gate harness
that loops the bats suite N times in a row, with teardown between
iterations, and reports a pass/fail tally.
* setup-teardown.sh — clears /tmp/archy-rpc-session-* between runs so
iteration N+1 doesn't reuse a logged-out cookie from iteration N.
Idempotent; safe to run anytime. Designed to grow as we add suites
that leave other transient state.
* run-20x.sh — wraps run.sh in a loop of ARCHY_ITERATIONS (default 20).
Tracks per-iteration pass/fail with wall-clock timing, prints a
results block, exits non-zero on any failure. Honors ARCHY_FAIL_FAST
for short-circuit during dev.
Suggested release-gate command:
ARCHY_PASSWORD=password123 ARCHY_ALLOW_DESTRUCTIVE=1 \
tests/lifecycle/run-20x.sh
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
39 lines
1.3 KiB
Bash
Executable File
39 lines
1.3 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# tests/lifecycle/setup-teardown.sh
|
|
#
|
|
# Cleanup helper used between lifecycle test iterations. Run before AND after
|
|
# a full bats pass (run-20x.sh handles this). Idempotent — safe to run any
|
|
# time, on any host.
|
|
#
|
|
# Removes:
|
|
# - /tmp/archy-rpc-session-* — stale RPC session cookies from earlier runs.
|
|
# If absent we'd reuse a session that was logged out by an auth.logout
|
|
# test, then the next iteration would silently 401.
|
|
# - Per-bats-run scratch files our tests may leave behind (none yet, but
|
|
# this is the place when we add them).
|
|
#
|
|
# Does NOT touch:
|
|
# - Real archipelago state (state.json, secrets, packages.json).
|
|
# - Running containers — destructive container teardown is the test's
|
|
# responsibility, not the harness's. We only clean the harness's own
|
|
# transient state.
|
|
# - SSH known_hosts, archipelago configs, etc.
|
|
|
|
set -euo pipefail
|
|
|
|
cleaned=0
|
|
|
|
# Match the pattern from lib/rpc.bash:26
|
|
session_glob="/tmp/archy-rpc-session-*"
|
|
# shellcheck disable=SC2086 # we want word-splitting on the glob
|
|
for f in $session_glob; do
|
|
if [[ -f "$f" ]]; then
|
|
rm -f "$f"
|
|
cleaned=$((cleaned + 1))
|
|
fi
|
|
done
|
|
|
|
if [[ "${ARCHY_TEARDOWN_VERBOSE:-0}" == "1" ]]; then
|
|
echo "setup-teardown: cleaned $cleaned stale session file(s)"
|
|
fi
|