140 lines
5.7 KiB
Bash
140 lines
5.7 KiB
Bash
|
|
#!/usr/bin/env bash
|
||
|
|
# ============================================================
|
||
|
|
# HCIE-Rust v3.05 — Bulk All-Tests Execution Script (bash)
|
||
|
|
# Usage: bash run_all_tests.sh [--no-io] [--no-4k] [--ignored]
|
||
|
|
#
|
||
|
|
# Flags:
|
||
|
|
# --no-io Skip hcie-io tests (slow, needs PSD fixtures)
|
||
|
|
# --no-4k Skip the 4K performance benchmark
|
||
|
|
# --ignored Also run #[ignore] tests (visual checks, benchmarks)
|
||
|
|
# ============================================================
|
||
|
|
set -euo pipefail
|
||
|
|
|
||
|
|
ROOT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
||
|
|
cd "$ROOT_DIR"
|
||
|
|
|
||
|
|
PASS=0
|
||
|
|
FAIL=0
|
||
|
|
SKIP=0
|
||
|
|
START_TIME=$(date +%s)
|
||
|
|
|
||
|
|
SKIP_IO=false
|
||
|
|
SKIP_4K=false
|
||
|
|
INCLUDE_IGNORED=false
|
||
|
|
EXTRA_ARGS=()
|
||
|
|
|
||
|
|
for arg in "$@"; do
|
||
|
|
case "$arg" in
|
||
|
|
--no-io) SKIP_IO=true ;;
|
||
|
|
--no-4k) SKIP_4K=true ;;
|
||
|
|
--ignored) INCLUDE_IGNORED=true ;;
|
||
|
|
*) EXTRA_ARGS+=("$arg") ;;
|
||
|
|
esac
|
||
|
|
done
|
||
|
|
|
||
|
|
SEPARATOR() { printf '%*s\n' 80 '' | tr ' ' '='; }
|
||
|
|
|
||
|
|
run_crate() {
|
||
|
|
local crate="$1"
|
||
|
|
local label="$2"
|
||
|
|
local extra="${3:-}"
|
||
|
|
|
||
|
|
SEPARATOR
|
||
|
|
echo "[$label] Running: cargo test -p $crate $extra"
|
||
|
|
SEPARATOR
|
||
|
|
|
||
|
|
# shellcheck disable=SC2086
|
||
|
|
if cargo test -p "$crate" $extra "${EXTRA_ARGS[@]+${EXTRA_ARGS[@]}}" 2>&1; then
|
||
|
|
PASS=$((PASS + 1))
|
||
|
|
else
|
||
|
|
FAIL=$((FAIL + 1))
|
||
|
|
fi
|
||
|
|
}
|
||
|
|
|
||
|
|
display_summary() {
|
||
|
|
local elapsed=$(( $(date +%s) - START_TIME ))
|
||
|
|
echo ""
|
||
|
|
SEPARATOR
|
||
|
|
echo " BULK TEST EXECUTION COMPLETE"
|
||
|
|
echo " Crates passed: $PASS"
|
||
|
|
echo " Crates failed: $FAIL"
|
||
|
|
echo " Crates skipped: $SKIP"
|
||
|
|
echo " Elapsed time: ${elapsed}s"
|
||
|
|
SEPARATOR
|
||
|
|
[ "$FAIL" -eq 0 ] && echo " ALL CRATES PASSED" || echo " $FAIL crate(s) have failing tests"
|
||
|
|
exit "$FAIL"
|
||
|
|
}
|
||
|
|
|
||
|
|
# ──────────────────────────────────────────────────────────
|
||
|
|
# Layer 1: DATA
|
||
|
|
# ──────────────────────────────────────────────────────────
|
||
|
|
run_crate "hcie-protocol" "Layer 1"
|
||
|
|
run_crate "hcie-color" "Layer 1"
|
||
|
|
|
||
|
|
# ──────────────────────────────────────────────────────────
|
||
|
|
# Layer 2: ENGINE CORE
|
||
|
|
# ──────────────────────────────────────────────────────────
|
||
|
|
run_crate "hcie-blend" "Layer 2"
|
||
|
|
run_crate "hcie-brush-engine" "Layer 2"
|
||
|
|
run_crate "hcie-draw" "Layer 2"
|
||
|
|
run_crate "hcie-composite" "Layer 2"
|
||
|
|
run_crate "hcie-filter" "Layer 2"
|
||
|
|
run_crate "hcie-selection" "Layer 2"
|
||
|
|
run_crate "hcie-vector" "Layer 2"
|
||
|
|
run_crate "hcie-history" "Layer 2"
|
||
|
|
|
||
|
|
if [ "$SKIP_IO" = true ]; then
|
||
|
|
echo "[SKIP] hcie-io (--no-io flag)"
|
||
|
|
SKIP=$((SKIP + 1))
|
||
|
|
else
|
||
|
|
run_crate "hcie-io" "Layer 2"
|
||
|
|
fi
|
||
|
|
|
||
|
|
run_crate "hcie-psd" "Layer 2"
|
||
|
|
run_crate "hcie-vision" "Layer 2"
|
||
|
|
run_crate "hcie-build-info" "Layer 2"
|
||
|
|
|
||
|
|
# ──────────────────────────────────────────────────────────
|
||
|
|
# Layer 4: ENGINE API
|
||
|
|
# ──────────────────────────────────────────────────────────
|
||
|
|
if [ "$SKIP_4K" = true ]; then
|
||
|
|
run_crate "hcie-engine-api" "Layer 4" "--skip benchmark_4k_stroke_on_multilayer_document"
|
||
|
|
else
|
||
|
|
run_crate "hcie-engine-api" "Layer 4"
|
||
|
|
fi
|
||
|
|
|
||
|
|
# ──────────────────────────────────────────────────────────
|
||
|
|
# Layer 6: GUI — egui
|
||
|
|
# ──────────────────────────────────────────────────────────
|
||
|
|
run_crate "hcie-gui-egui" "Layer 6"
|
||
|
|
|
||
|
|
# ──────────────────────────────────────────────────────────
|
||
|
|
# Layer 6: GUI — iced
|
||
|
|
# ──────────────────────────────────────────────────────────
|
||
|
|
run_crate "hcie-iced-gui" "Layer 6"
|
||
|
|
|
||
|
|
# ──────────────────────────────────────────────────────────
|
||
|
|
# Brush Catalogs
|
||
|
|
# ──────────────────────────────────────────────────────────
|
||
|
|
run_crate "hcie-dry-media-brushes" "Brushes"
|
||
|
|
run_crate "hcie-paint-brushes" "Brushes"
|
||
|
|
run_crate "hcie-digital-brushes" "Brushes"
|
||
|
|
run_crate "hcie-watercolor-brushes" "Brushes"
|
||
|
|
run_crate "hcie-ink-brushes" "Brushes"
|
||
|
|
|
||
|
|
# ──────────────────────────────────────────────────────────
|
||
|
|
# Ignored tests (visual checks, benchmarks)
|
||
|
|
# ──────────────────────────────────────────────────────────
|
||
|
|
if [ "$INCLUDE_IGNORED" = true ]; then
|
||
|
|
echo ""
|
||
|
|
SEPARATOR
|
||
|
|
echo "Running IGNORED tests (visual checks, benchmarks)"
|
||
|
|
SEPARATOR
|
||
|
|
cargo test -p hcie-engine-api -- --ignored || true
|
||
|
|
cargo test -p hcie-brush-engine -- --ignored || true
|
||
|
|
cargo test -p hcie-iced-gui -- --ignored || true
|
||
|
|
cargo test -p hcie-fx -- --ignored || true
|
||
|
|
fi
|
||
|
|
|
||
|
|
display_summary
|