2025-09-18 06:35:49 +09:00
|
|
|
#!/usr/bin/env bash
|
|
|
|
|
set -euo pipefail
|
|
|
|
|
|
|
|
|
|
ROOT=$(CDPATH= cd -- "$(dirname -- "$0")/../../.." && pwd)
|
|
|
|
|
LIB="$ROOT/tools/test/lib/shlib.sh"
|
|
|
|
|
if [[ ! -f "$LIB" ]]; then echo "lib/shlib.sh not found" >&2; exit 2; fi
|
|
|
|
|
source "$LIB"
|
|
|
|
|
|
|
|
|
|
TAG="all"
|
|
|
|
|
if [[ "${1:-}" == "--tag" && "${2:-}" != "" ]]; then TAG="$2"; shift 2; fi
|
|
|
|
|
|
|
|
|
|
# Discover tests
|
|
|
|
|
mapfile -t TESTS < <(find "$ROOT/tools/test" -type f -path '*/test.sh' | sort)
|
|
|
|
|
[[ ${#TESTS[@]} -eq 0 ]] && { echo "no tests found" >&2; exit 2; }
|
|
|
|
|
|
|
|
|
|
ok=0; fail=0; skip=0
|
|
|
|
|
|
|
|
|
|
for t in "${TESTS[@]}"; do
|
|
|
|
|
case "$TAG" in
|
|
|
|
|
fast)
|
2025-09-18 13:35:38 +09:00
|
|
|
# Very small subset: crate-exe, bridge shortcircuit, and tiny LLVM checks
|
|
|
|
|
if [[ "$t" != *"/smoke/crate-exe/"* && "$t" != *"/smoke/bridge/"* && "$t" != *"/smoke/llvm/quick/"* && "$t" != *"/smoke/llvm/ifmerge/"* && "$t" != *"/smoke/python/unit/"* ]]; then
|
2025-09-18 06:35:49 +09:00
|
|
|
echo "[SKIP] $t"; skip=$((skip+1)); continue
|
|
|
|
|
fi
|
|
|
|
|
;;
|
|
|
|
|
all) ;;
|
|
|
|
|
*) ;;
|
|
|
|
|
esac
|
|
|
|
|
echo "[RUN ] $t"
|
|
|
|
|
if ( cd "$(dirname "$t")" && bash ./test.sh ); then
|
|
|
|
|
echo "[ OK ] $t"
|
|
|
|
|
ok=$((ok+1))
|
|
|
|
|
else
|
|
|
|
|
echo "[FAIL] $t"
|
|
|
|
|
fail=$((fail+1))
|
|
|
|
|
fi
|
|
|
|
|
done
|
|
|
|
|
|
|
|
|
|
echo "Summary: ok=$ok fail=$fail skip=$skip"
|
|
|
|
|
exit $([[ $fail -eq 0 ]] && echo 0 || echo 1)
|