Record the real coverage numbers, and how they were nearly misreported

93.5% of lines and 97.8% of functions, up from 92.3% and 96.9% across roughly 800
new lines. The verb groups added for goal 2 carry the new surface: the two table
files and runtime_input.c at 100%, runtime_graphics.c and runtime_audio.c at 98%,
play.c at 87%.

The first reading of that number was wrong and the reason is worth keeping. A
stale build-cov/ left in the source directory by an earlier session was silently
folded in by `gcovr --root .`, which reported the *previous* run's 92.3% for a
tree that had grown by 800 lines -- a number that looked plausible precisely
because it had not moved. That is libakgl defect #13 happening here rather than
there, and build*/ being gitignored is what makes it invisible. Section 8 now
says to check `find . -name '*.gcda'` before believing a coverage figure that
looks suspiciously unchanged.

Also documents the akgl build and test commands in the README, which had none.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-07-31 08:51:27 -04:00
parent da50da70b5
commit ff7bec9f55
2 changed files with 26 additions and 6 deletions

View File

@@ -16,6 +16,12 @@ ctest --test-dir build --output-on-failure
# API documentation, into build/docs/html
doxygen Doxyfile
# With the libakgl-backed sink and devices. Off by default, because this pulls in
# SDL3 and the whole interpreter builds and tests without it.
cmake -S . -B build-akgl -DAKBASIC_WITH_AKGL=ON
cmake --build build-akgl --parallel
SDL_VIDEODRIVER=dummy SDL_AUDIODRIVER=dummy ctest --test-dir build-akgl --output-on-failure
```
There are two workflows. **`.gitea/workflows/ci.yaml`** runs on every push: the suite,