From b7d9210784a5e05feaad3a3a49ceb3703e69a144 Mon Sep 17 00:00:00 2001 From: archipelago Date: Fri, 26 Jun 2026 05:22:45 -0400 Subject: [PATCH] =?UTF-8?q?test(gate):=20optional=20ARCHY=5FGATE=5FCASCADE?= =?UTF-8?q?=20pass=20=E2=80=94=20wire=20the=20cascade=20tier=20in?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit run-gate.sh ran only the DESTRUCTIVE tier; the cascade-uninstall suite (uninstall→no-ghost→reinstall, the #13/#14/uninstall-hang regression guard) existed but was never enabled by the gate. Add an opt-in single cascade pass after the 5× loop (ARCHY_GATE_CASCADE=1, requires ARCHY_ALLOW_DESTRUCTIVE=1), counted into the pass/fail tally. Kept out of the 5× loop deliberately — uninstall/reinstall every iteration would balloon runtime and re-pull images; one pass guards the class. Default gate behavior unchanged. Validated: cascade-uninstall.bats 7/7 on .228. Co-Authored-By: Claude Opus 4.8 (1M context) --- tests/lifecycle/run-gate.sh | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/tests/lifecycle/run-gate.sh b/tests/lifecycle/run-gate.sh index fe1fad7f..4310e9b4 100755 --- a/tests/lifecycle/run-gate.sh +++ b/tests/lifecycle/run-gate.sh @@ -8,6 +8,9 @@ # Env: # ARCHY_ITERATIONS (default: 5) # ARCHY_FAIL_FAST=1 stop on first failed iteration +# ARCHY_GATE_CASCADE=1 after the 5× loop, run ONE cascade pass +# (uninstall→no-ghost→reinstall a throwaway +# app); requires ARCHY_ALLOW_DESTRUCTIVE=1 # plus everything run.sh / lib/rpc.bash respects # (ARCHY_PASSWORD, ARCHY_HOST, ARCHY_SCHEME, ARCHY_ALLOW_DESTRUCTIVE, # ARCHY_ALLOW_CASCADE_DESTRUCTIVE, ARCHY_ALLOW_NOAUTH) @@ -20,6 +23,10 @@ # Suggested release-gate invocation: # ARCHY_PASSWORD=password123 ARCHY_ALLOW_DESTRUCTIVE=1 \ # tests/lifecycle/run-gate.sh +# +# Release-gate WITH the cascade tier (uninstall/reinstall regression guard): +# ARCHY_PASSWORD=password123 ARCHY_ALLOW_DESTRUCTIVE=1 ARCHY_GATE_CASCADE=1 \ +# tests/lifecycle/run-gate.sh set -euo pipefail @@ -100,6 +107,27 @@ for i in $(seq 1 "$ITER"); do ./setup-teardown.sh done +# Optional CASCADE pass — uninstall → no-ghost → reinstall of a throwaway app +# (default grafana, via cascade-uninstall.bats). Run ONCE, not folded into the +# 5× loop on purpose: uninstall/reinstall every iteration would balloon runtime +# and re-pull images. One pass gates the #13 ghost / #14 reinstall-stop / +# uninstall-hang class (the bug fixed in 71cc9ac4). Opt-in so default gate +# behavior is unchanged; counts into the pass/fail tally. +if [[ "${ARCHY_GATE_CASCADE:-0}" == "1" && "${ARCHY_ALLOW_DESTRUCTIVE:-0}" == "1" ]]; then + echo + echo "═══ CASCADE pass (1×) ═══" + settle_stack + if ARCHY_ALLOW_CASCADE_DESTRUCTIVE=1 ./run.sh cascade-uninstall; then + passed=$((passed + 1)) + echo "── CASCADE: PASS ──" + else + failed=$((failed + 1)) + failures+=("cascade") + echo "── CASCADE: FAIL ──" + fi + ./setup-teardown.sh +fi + end=$(date +%s) echo