#!/usr/bin/env bash
set -euo pipefail
echo "======================================"
echo "[INFO] Pre-smoke test start"
echo "======================================"
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
PRESMOKE_DIR="${SCRIPT_DIR}/test/presmoke"
if [ ! -d "$PRESMOKE_DIR" ]; then
echo "[ERROR] presmoke directory not found: $PRESMOKE_DIR"
exit 1
fi
mapfile -t CASES < <(
find "$PRESMOKE_DIR" -type f -name "*.sh" | sort
)
if [ "${#CASES[@]}" -eq 0 ]; then
echo "[ERROR] No presmoke cases found in $PRESMOKE_DIR"
exit 1
fi
echo "[INFO] Found ${#CASES[@]} presmoke case(s):"
for c in "${CASES[@]}"; do
echo " - $(basename "$c")"
done
for case in "${CASES[@]}"; do
case_name="$(basename "$case")"
echo
echo "--------------------------------------"
echo "[INFO] Running presmoke case: $case_name"
echo "--------------------------------------"
chmod u+x "$case"
bash "$case"
echo "[INFO] Case passed: $case_name"
done
echo
echo "======================================"
echo "[SUCCESS] All presmoke cases PASSED"
echo "======================================"