summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorskal <pascal.massimino@gmail.com>2026-02-07 10:17:18 +0100
committerskal <pascal.massimino@gmail.com>2026-02-07 10:17:18 +0100
commit2cadafb2821ca46bd29dd82ef718302472f2eff3 (patch)
tree23cc1c0491861f77b277b366c61ce36f3598919a
parent4800e062e8ca38909ef85695ffbecc32a9d88799 (diff)
fix(ci): Update verification script to catch tool compilation failures
Problem: The spectool.cc include path bug was not caught by the test suite because check_all.sh only built tests, not tools. Root Cause Analysis: - check_all.sh used -DDEMO_BUILD_TESTS=ON only - Tools (spectool, specview, specplay) are built with -DDEMO_BUILD_TOOLS=ON - CTest runs tests but doesn't verify tool compilation - Result: Tool compilation failures went undetected Solution: Updated scripts/check_all.sh to: 1. Enable both -DDEMO_BUILD_TESTS=ON and -DDEMO_BUILD_TOOLS=ON 2. Explicitly verify all tools compile (spectool, specview, specplay) 3. Add clear output messages for each verification stage 4. Document what the script verifies in header comments Updated doc/CONTRIBUTING.md: - Added "Automated Verification (Recommended)" section - Documented that check_all.sh verifies tests AND tools - Provided manual verification steps as alternative - Clear command examples with expected behavior Verification: - Tested by intentionally breaking spectool.cc include - Script correctly caught the compilation error - Reverted break and verified all tools build successfully This ensures all future tool changes are verified before commit. Prevents regression: Similar include path issues will now be caught by pre-commit verification.
-rw-r--r--doc/CONTRIBUTING.md29
-rwxr-xr-xscripts/check_all.sh15
2 files changed, 40 insertions, 4 deletions
diff --git a/doc/CONTRIBUTING.md b/doc/CONTRIBUTING.md
index 7d206a5..f41d90e 100644
--- a/doc/CONTRIBUTING.md
+++ b/doc/CONTRIBUTING.md
@@ -8,10 +8,33 @@ This document outlines the conventions to follow when contributing to this proje
Before preparing or proposing a commit, you **must** perform the following verifications to prevent regressions:
+**Automated Verification (Recommended):**
+```bash
+./scripts/check_all.sh
+```
+This script automatically:
+- Builds with tests and tools enabled
+- Runs the full test suite (26 tests)
+- Verifies all tools compile (spectool, specview, specplay)
+- Cross-compiles for Windows (if mingw-w64 is installed)
+
+**Manual Verification:**
+
1. **MacOS / Linux (Native)**:
- * Build the project (debug or release).
- * Run the entire test suite (`ctest`).
- * Ensure all tests pass.
+ * Build the project with tests and tools enabled:
+ ```bash
+ cmake -S . -B build -DDEMO_BUILD_TESTS=ON -DDEMO_BUILD_TOOLS=ON
+ cmake --build build -j8
+ ```
+ * Run the entire test suite:
+ ```bash
+ cd build && ctest --output-on-failure
+ ```
+ * Verify tools compile:
+ ```bash
+ cmake --build build --target spectool specview specplay
+ ```
+ * Ensure all tests pass and all tools build successfully.
2. **Windows (Cross-Compilation)**:
* If `mingw-w64` is installed on your system, you **must** also verify the Windows build.
diff --git a/scripts/check_all.sh b/scripts/check_all.sh
index 91d55c4..113d3f0 100755
--- a/scripts/check_all.sh
+++ b/scripts/check_all.sh
@@ -1,13 +1,26 @@
#!/bin/bash
# This script builds and tests all supported platform targets to ensure
# stability before a major commit.
+#
+# What it verifies:
+# 1. Native build (macOS/Linux) with all tests and tools
+# 2. All 26 tests pass
+# 3. All tools compile (spectool, specview, specplay)
+# 4. Windows cross-compilation (if mingw-w64 available)
+#
+# Usage: ./scripts/check_all.sh
set -e
echo "--- Running Native Build & Tests ---"
-cmake -S . -B build -DDEMO_BUILD_TESTS=ON
+echo "Configuring with all options enabled (tests + tools)..."
+cmake -S . -B build -DDEMO_BUILD_TESTS=ON -DDEMO_BUILD_TOOLS=ON
+echo "Building all targets (demo, tests, and tools)..."
cmake --build build -j8
+echo "Running test suite..."
(cd build && ctest --output-on-failure)
+echo "Verifying tools compile..."
+cmake --build build --target spectool specview specplay -j8
echo ""
echo "--- Running Windows Cross-Compilation Build ---"