mirror of
https://github.com/jmcorgan/fips.git
synced 2026-10-30 15:48:34 +00:00
--only <suite> still runs every guard, the whole build stage and all unit tests before the suite, so rerunning one suite on a tree that already passed a full run took about 16 minutes for a 4 minute suite. --rerun <suite> runs the release build and that suite, then prints a banner saying the guards, lints, unit tests and build-stage extras did not run and that this is not a full local CI verdict. The summary lists only the build and the suite, and the exit status is the suite's. A bad request fails at parse time with exit 2, before anything is built: --rerun without a value, a suite name --list does not print, or --rerun combined with --only, --build-only, --test-only, --skip-integration or --cross-check. The release build step moves into run_release(), shared by the build stage and the rerun path, and the guard list into run_guards(), so the default flow is unchanged. The argument test gains these cases, written first. Against the script before this change, 11 checks failed: every --rerun case got "Unknown option: --rerun" instead of its own message, and "--rerun firewall --help" exited 2 rather than 0. After the change all 32 checks pass. Removing the conflict rejection again turns the seven conflict cases red. That planted break also showed a regressed parse falling through into a real run, which started a release build until the per-case timeout. The test now puts failing stand-ins for cargo, docker and sudo first on PATH, so such a regression fails in seconds without building or starting anything. CONTRIBUTING.md, testing/README.md and testing/mesh-lab/README.md name --rerun beside --only as the fast path for single-suite debugging.