diff options
Diffstat (limited to '.extras/test-logic.sh')
| -rw-r--r-- | .extras/test-logic.sh | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/.extras/test-logic.sh b/.extras/test-logic.sh index 027fdb9..e48586e 100644 --- a/.extras/test-logic.sh +++ b/.extras/test-logic.sh @@ -70,6 +70,43 @@ resolve_target "$T/cat/d" resolve_target "$T/cat/e" [[ ${#CYCLES[@]} -ge 1 ]] && ok "cycle caught" || bad "cycle missed" +# --- overrides -------------------------------------------------------------- +VERSION_ID="current" # reset: left at 15.0 by the version-selection checks above +OV=$(mktemp) +cat > "$OV" <<'EOF' +# comment ignored +drop: dropme +rename: oldname -> newname +fetch: fetchme +EOF +TB_OVERRIDES="$OV" +load_overrides + +[[ "${OV_DROP[dropme]:-}" == "1" ]] && ok "override drop parsed" || bad "drop not parsed" +[[ "${OV_RENAME[oldname]:-}" == "newname" ]] && ok "override rename parsed" || bad "rename not parsed" +[[ "${OV_FETCH[fetchme]:-}" == "1" ]] && ok "override fetch parsed" || bad "fetch not parsed" + +# rename maps a token +[[ "$(apply_rename oldname)" == "newname" ]] && ok "apply_rename maps" || bad "apply_rename wrong: [$(apply_rename oldname)]" +[[ "$(apply_rename untouched)" == "untouched" ]] && ok "apply_rename passthrough" || bad "apply_rename mangled untouched" + +# drop filters the order (build a fake order of dirs; dropme is removed) +mk dropme "" +mk keepme "" +RESOLVED_ORDER=("$T/cat/dropme" "$T/cat/keepme") +apply_overrides_to_order +kept=""; for x in "${RESOLVED_ORDER[@]}"; do kept+="$(basename "$x") "; done +kept="${kept% }" +[[ "$kept" == "keepme" ]] && ok "drop removes from order" || bad "drop failed, order=[$kept]" +rm -f "$OV" + +# overrides only apply on current; on 15.0 they are a no-op +VERSION_ID="15.0" +TB_OVERRIDES="$OV" # file gone; must not error, must clear maps +load_overrides +[[ ${#OV_DROP[@]} -eq 0 ]] && ok "overrides inert on 15.0" || bad "overrides applied on 15.0" +VERSION_ID="current" + echo echo "$pass passed, $fail failed" [[ $fail -eq 0 ]] || exit 1 |
