run_ut.sh Usage Guide
Mode Comparison
| Feature | Default mode | --fast mode |
|---|---|---|
| Build directory cleanup | Full wipe before build | Skipped (incremental) |
| cmake reconfiguration | Always | Only on first run or fingerprint mismatch |
| Coverage report (lcov/genhtml) | Generated | Skipped |
| Typical use case | CI / pre-commit | Local development iteration |
Usage
# Default: full clean build + coverage report
bash script/run_ut.sh
# Default with test filter
bash script/run_ut.sh SmemBmTest
# Fast: incremental build, no coverage
bash script/run_ut.sh --fast
# Fast with test filter
bash script/run_ut.sh --fast SmemBmTest
--fast Fingerprint Mechanism
The --fast mode writes a fingerprint string (ASAN-UT-OPEN_ABI) to
build/.build_fingerprint after the first successful cmake configuration.
On subsequent runs it checks:
- Build directory missing or fingerprint file missing → full build
- Fingerprint mismatch (build config changed externally) → full rebuild
- Fingerprint matches → incremental build (skip cmake, skip rm)
The three cases print:
========= first build, full build ============
========= build config changed, full rebuild ============
========= incremental build ============
Recommended Workflow
- During active development, use
bash script/run_ut.sh --fastfor fast iteration (recompiles only changed translation units). - Before committing or pushing, run
bash script/run_ut.shto get the full clean build and coverage report required by CI.