Cockatrice/oracle
Lukas Brübach 2c249438d5 [CI] Publish a gcovr line-coverage report from the test run
Sanitizers tell us what a run did wrong; they say nothing about what it never
reached. This adds the other half: an instrumented build whose report says which
of our own lines no test executes.

Add an ENABLE_COVERAGE option that compiles with --coverage -O0 -g, mirroring the
ENABLE_SANITIZERS opt-in including the per-source carve-out that keeps vendored
trees out of the denominator. -O0 is deliberate: at higher optimisation levels GCC
merges and relocates lines, so the report would describe code that no longer exists
in that form. Only GCC is supported, since Clang's intermediate format needs
llvm-cov; asking for coverage under Clang is a hard error rather than a build that
silently produces unreadable .gcno files.

Keep the filters in a committed gcovr.cfg rather than in the invocation. The tests
themselves are excluded because they are compiled with the same instrumentation
and are only ever executed by the run doing the measuring, so leaving them in would
report a healthier project than we have. The process entry points and the client's
window chrome go too: each needs a display, an interactive terminal or a live
database before it does anything a headless test could observe, so they would
otherwise sit at 0% forever and bury real movement.

Give coverage its own matrix leg rather than a second flag on the sanitizer leg.
The two answer different questions, and combining them slows both down without
telling us more. The new variant key gives the leg its own Docker image and ccache
entry so the two legs cannot race on the same tag.

The leg publishes an HTML report with per-file pages, LCOV, Cobertura XML and a
JSON summary. gcovr is a report-time dependency rather than a build dependency, so
a missing one warns and skips instead of failing an otherwise green build.
2026-10-10 19:51:50 +02:00
..
resources Update macOS Monterey app icon (#4805) 2023-08-06 17:46:03 -04:00
src [Client] Improve card database update visibility (#7458) 2026-10-09 11:07:48 +02:00
translations Update translation files (#7044) 2026-07-16 09:07:33 +02:00
CMakeLists.txt [CI] Publish a gcovr line-coverage report from the test run 2026-10-10 19:51:50 +02:00
oracle.desktop Add icon to oracle 2014-08-07 17:27:15 +02:00
oracle.qrc Add icon to oracle 2014-08-07 17:27:15 +02:00
oracle.rc Add icon to oracle 2014-08-07 17:27:15 +02:00
oracle_en@source.ts Update translation source strings (#7397) 2026-10-04 21:08:47 +02:00