Refactor dependencies and improve test runner diagnostics
mandatory-regression-gate / deterministic-tests (push) Has been cancelled
mandatory-regression-gate / protected-performance-path (push) Has been cancelled

- Updated `Cargo.toml` files across multiple crates to replace local `egui` and `eframe` dependencies with workspace references, ensuring consistent platform support.
- Enhanced `run_all_tests.bat` and `run_all_tests.sh` scripts to capture and report names of failed and skipped crates, improving test diagnostics.
- Fixed duplicate keys in `hcie-text/Cargo.toml` and ensured proper feature activation for Linux builds in affected crates.
- Added a new repair plan document outlining steps to address failing crates and improve overall test execution reliability.
This commit is contained in:
Your Name
2026-07-23 16:34:05 +03:00
parent 8447b2d796
commit 513efcdcff
14 changed files with 378 additions and 81 deletions
+48 -10
View File
@@ -11,15 +11,26 @@ cd "$ROOT_DIR"
PASS=0
FAIL=0
SKIP=0
FAILED_CRATES=()
SKIPPED_CRATES=()
SKIP_IO=false
SKIP_4K=false
INCLUDE_IGNORED=false
CARGO_ARGS=()
TEST_ARGS=()
PARSING_TEST_ARGS=false
for arg in "$@"; do
if [ "$PARSING_TEST_ARGS" = true ]; then
TEST_ARGS+=("$arg")
continue
fi
case "$arg" in
--no-io) SKIP_IO=true ;;
--no-4k) SKIP_4K=true ;;
--ignored) INCLUDE_IGNORED=true ;;
--) PARSING_TEST_ARGS=true ;;
*) CARGO_ARGS+=("$arg") ;;
esac
done
@@ -28,16 +39,36 @@ SEPARATOR() { printf '%*s\n' 80 '' | tr ' ' '='; }
run_crate() {
local crate="$1"
local label="$2"
local extra="${3:-}"
shift 2
local -a crate_test_args=("$@")
local -a cmd=(cargo test -p "$crate" "${CARGO_ARGS[@]}")
if (( ${#crate_test_args[@]} > 0 || ${#TEST_ARGS[@]} > 0 )); then
cmd+=(-- "${crate_test_args[@]}" "${TEST_ARGS[@]}")
fi
SEPARATOR
echo "[$label] Running: cargo test -p $crate $extra"
printf '[%s] Running:' "$label"
printf ' %q' "${cmd[@]}"
printf '\n'
SEPARATOR
if cargo test -p "$crate" $extra 2>&1; then
if "${cmd[@]}" 2>&1; then
PASS=$((PASS + 1))
else
FAIL=$((FAIL + 1))
FAILED_CRATES+=("$crate")
fi
}
run_ignored_tests() {
local crate="$1"
local -a cmd=(cargo test -p "$crate" "${CARGO_ARGS[@]}" -- --ignored "${TEST_ARGS[@]}")
if "${cmd[@]}" 2>&1; then
PASS=$((PASS + 1))
else
FAIL=$((FAIL + 1))
FAILED_CRATES+=("${crate}[ignored]")
fi
}
@@ -58,16 +89,17 @@ run_crate "hcie-history" "CORE"
if [ "$SKIP_IO" = true ]; then
echo "[SKIP] hcie-io"
SKIP=$((SKIP + 1))
SKIPPED_CRATES+=("hcie-io")
else
run_crate "hcie-io" "CORE"
fi
run_crate "hcie-psd" "CORE"
run_crate "psd" "CORE"
run_crate "hcie-vision" "CORE"
run_crate "hcie-build-info" "CORE"
# ── Layer 4: ENGINE API ────────────────────────────────────
if [ "$SKIP_4K" = true ]; then
run_crate "hcie-engine-api" "ENGINE-API" "--skip benchmark_4k_stroke_on_multilayer_document"
run_crate "hcie-engine-api" "ENGINE-API" --skip benchmark_4k_stroke_on_multilayer_document
else
run_crate "hcie-engine-api" "ENGINE-API"
fi
@@ -89,13 +121,19 @@ if [ "$INCLUDE_IGNORED" = true ]; then
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
run_ignored_tests hcie-engine-api
run_ignored_tests hcie-brush-engine
run_ignored_tests hcie-iced-gui
run_ignored_tests hcie-fx
fi
SEPARATOR
echo "CATEGORIZED TEST RUN COMPLETE: $PASS passed, $FAIL failed, $SKIP skipped"
echo "CATEGORIZED TEST RUN COMPLETE: $PASS test runs passed, $FAIL failed, $SKIP crates skipped"
if (( ${#FAILED_CRATES[@]} > 0 )); then
echo "Failed crates: ${FAILED_CRATES[*]}"
fi
if (( ${#SKIPPED_CRATES[@]} > 0 )); then
echo "Skipped crates: ${SKIPPED_CRATES[*]}"
fi
SEPARATOR
exit "$FAIL"