aboutsummaryrefslogtreecommitdiffstats
path: root/.extras/test-logic.sh
diff options
context:
space:
mode:
Diffstat (limited to '.extras/test-logic.sh')
-rw-r--r--.extras/test-logic.sh13
1 files changed, 13 insertions, 0 deletions
diff --git a/.extras/test-logic.sh b/.extras/test-logic.sh
index 469ac1d..7dc7387 100644
--- a/.extras/test-logic.sh
+++ b/.extras/test-logic.sh
@@ -181,6 +181,19 @@ CACHE_ROOT_SAVE="$CACHE_ROOT"; USE_CACHE=0
[[ "$(cache_decision net libfoo 1.2)" == "new" ]] && ok "--no-cache disables (new)" || bad "disabled cache got [$(cache_decision net libfoo 1.2)]"
USE_CACHE=1; CACHE_ROOT="$CACHE_ROOT_SAVE"
+# resolve_cache_root prunes stale digests of the SAME variant, keeps the other.
+# No docker here, so the digest falls back to the tag-derived name; seed sibling
+# dirs and confirm only the active-variant orphan is removed.
+PRUNE_CACHE=$(mktemp -d)
+PKG_CACHE="$PRUNE_CACHE"; ACTIVE_IMAGE="sbo-testbuild:current"; VERSION_ID="current"
+mkdir -p "$PRUNE_CACHE/current-oldstale" "$PRUNE_CACHE/15.0-keepme"
+resolve_cache_root
+[[ -d "$CACHE_ROOT" ]] && ok "cache root created" || bad "cache root missing"
+[[ ! -e "$PRUNE_CACHE/current-oldstale" ]] && ok "prune drops stale same-variant digest" || bad "stale current digest survived"
+[[ -d "$PRUNE_CACHE/15.0-keepme" ]] && ok "prune keeps other-variant cache" || bad "15.0 cache wrongly pruned"
+rm -rf "$PRUNE_CACHE"
+VERSION_ID="current"; CACHE_ROOT="$CACHE_ROOT_SAVE"
+
# --- BLOCKED-BY-DEP (depends_on_failed) -------------------------------------
dead=(b)
if depends_on_failed "$T/cat/g" dead; then ok "g blocked when b dead"; else bad "g should block on b"; fi