Repository navigation
Proof Scripts
Three Python runners sit at the repository root. They exist to prove a capability end to end — compile, run, collect — rather than to unit-test the code.
Compiles every C/C++ source in test/, verifies each source produced an executable, then runs
every binary with a 10 second timeout and prints stdout/stderr.
Before the directory sweep it runs a generated minimal C probe and asserts that
runtime-analyzer builds an instrumented binary, executes it, captures the program output, and
collects basic entry/exit lines.
python3 BTP-RUNTIME-ANALYZER.py
python3 BTP-RUNTIME-ANALYZER.py --timeout 10 -- --ct-no-alloc-trace --ct-no-trace --ct-bounds-no-abortNon-zero binary exits are reported without failing the script, because some runtime tests
abort on purpose. --strict-exit fails on any non-zero binary exit.
Proves minimal execution of an instrumented binary and basic runtime collection. It generates a
small C probe in runtime-analyzer-artifacts/, compiles it with runtime-analyzer, verifies the
instrumented binary exists and is executable, then checks that the program output and the
entry/exit collection were captured.
python3 BTP-RUNTIME-ANALYZER_F4.py
python3 BTP-RUNTIME-ANALYZER_F4.py --build-firstProves runtime overflow detection through CoreTrace bounds instrumentation. It uses an existing
ct_bounds_overflow fixture if test/ has one, otherwise it generates a small heap-overflow
probe in runtime-analyzer-artifacts/.
The proof expects three things together:
- a generated instrumented binary,
- a runtime
heap-buffer-overflowreport, - a non-zero
bounds_errorscollection count.
Checking the report and the counter is the point: it proves the runtime detected the overflow and that the collection saw it.
python3 BTP-RUNTIME-ANALYZER_F11.py
python3 BTP-RUNTIME-ANALYZER_F11.py --no-colorStatus checks print the tested file name in purple, green OK for validated conditions, red NO
for missing ones, and separate file reports with --------. --no-color drops the colouring.
./scripts/format.sh # format
./scripts/format-check.sh # verify only
cmake --build build --target format
cmake --build build --target format-checkTarget version: clang-format 17, the version CI uses. The clang-format GitHub Actions job
fails when formatting diverges.