CNA-VGAP-051: No CI configuration builds diagnostics at STATS or FULL or enables CNA_BUILD_INSPECTOR, so most Diagnostics tests and every Inspector test are never compiled in CI

CNA snapshot 009d40f5  ·  Known Issues › Verification gaps  ·  source links pinned to 009d40f5

✓

Evidence basis: source-verified at the pinned commit; tests exist (not executed for this page). Claims on this page were checked by reading the CNA source at commit 009d40f5; unless a sentence says otherwise, nothing here was built or executed. Nothing on this page was executed unless the Evidence section says so.

CNA_DIAGNOSTICS and CNA_BUILD_INSPECTOR default to OFF and no workflow or preset changes either, so 38 of 40 DiagnosticsTests, the seven audio and graphics diagnostics tests and all 27 Inspector tests run only in local builds.

Identifier
CNA-VGAP-051
Category
Verification gap
Subsystem
Diagnostics & Inspector
Status
Open
Verified against
CNA 009d40f5 (009d40f5dd085c4e674d3479675fac84b12b3e0a)
Evidence basis
Source-verified: read at TARGET, not executed
Tests touching this area
Yes: see Current tests
Affected contract
The STATS/FULL diagnostics implementation (CNA_DIAGNOSTICS) and the optional Inspector (CNA_BUILD_INSPECTOR) with their test suites

Expected behaviour

Modules whose behaviour exists only in non-default configurations have at least one CI lane in those configurations.

Actual behaviour at TARGET

No file under .github/workflows and no entry of CMakePresets.json sets CNA_DIAGNOSTICS or CNA_BUILD_INSPECTOR. In the default OFF build only the two DiagnosticsBuildModeTest cases of DiagnosticsTests.cpp compile; the other 38 sit behind CNA_DIAGNOSTICS_LEVEL >= 1 or >= 2, as do AudioDiagnosticsTests.cpp (1 test, also needing SOUND_ENABLED) and GraphicsDiagnosticsTests.cpp (6). cmake/UnitTests.cmake removes modules/inspector/tests unless CNA_BUILD_INSPECTOR is ON. The passing runs docs/inspector.md reports (Linux, sanitizers, Windows 10) are dated local evidence, and its suite counts (24 and 17) no longer match the current files.

Source locations

Evidence

Checked by searching every workflow and CMakePresets.json for both options and by reading the test guards at 009d40f5. Not executed.

Independently observed as a separate finding (merged): CNA_BUILD_INSPECTOR defaults to OFF, cmake/UnitTests.cmake then filters modules/inspector/tests out, and no workflow or preset turns it on; the WebBridge and Agent::Stop paths also lack tests.

Focused reproduction

No focused reproduction is known. Nothing has been invented here; the evidence above is what exists.

Current tests

DiagnosticsTests.cpp (40), the two subsystem diagnostics files (7) and InspectorTests.cpp (27) exist; CI compiles 2 of the 74.

Regression test

A Linux job configuring -DCNA_DIAGNOSTICS=FULL -DCNA_BUILD_INSPECTOR=ON that runs the diagnostics, audio, graphics and inspector test groups, ideally also under AddressSanitizer and UndefinedBehaviorSanitizer as the documented local runs were.

Blast radius

All STATS/FULL instrumentation, the diagnostics provider, and the whole Inspector (agent, protocol, bridge). The default OFF build and its zero-cost guarantee are CI-compiled.

Workaround

Configure a local tree with both options before changing either module.

The same subject is explained at several altitudes. These are the neighbouring pages at each one.

Tests and validation
Test architecture: CI