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
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
CMakeLists.txt— CNA_DIAGNOSTICS default OFF; option(CNA_BUILD_INSPECTOR ... OFF)CMakePresets.json— no preset sets either optionmodules/diagnostics/tests/CNA/Diagnostics/DiagnosticsTests.cpp— level guards around 38 of 40 testsmodules/audio/tests/CNA/AudioDiagnosticsTests.cpp— guarded by CNA_DIAGNOSTICS_LEVEL and SOUND_ENABLEDmodules/graphics/tests/Microsoft/Xna/Framework/Graphics/GraphicsDiagnosticsTests.cpp— guarded by CNA_DIAGNOSTICS_LEVELcmake/UnitTests.cmake— drops modules/inspector/tests unless CNA_BUILD_INSPECTORmodules/inspector/CMakeLists.txt— everything behind if(CNA_BUILD_INSPECTOR)modules/inspector/tests/CNA/Inspector/InspectorTests.cpp— the Inspector tests
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.
Related pages
The same subject is explained at several altitudes. These are the neighbouring pages at each one.
- User guide
- Diagnostics: tests · Inspector: platform status
- Tests and validation
- Test architecture: CI
- Known issues
- Verification gap index