CNA-VGAP-053: No CI workflow builds the C API library or runs its tests

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.

No workflow at this snapshot configures CNA_BUILD_C_API=ON; the C API workflows only run generators, inventories, a release gate and a header compile matrix, so the library and its tests are verified only in local builds.

Identifier
CNA-VGAP-053
Category
Verification gap
Subsystem
C API & bindings
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 C API library (CNA_BUILD_C_API) and its test suites under modules/c-api/tests

Expected behaviour

An implementation shipped as a public ABI has at least one CI lane that builds it and runs its tests.

Actual behaviour at TARGET

A search of .github/workflows at 009d40f5 finds no CNA_BUILD_C_API. The c-api-*.yml workflows run generate_abi_baseline.py, generate_compatibility_matrix.py (which compiles the public headers across compilers), generate_coverage_inventory.py, generate_limitations.py and check_release_gate.py. The C++ route bodies, the pure-C and C++ test programs under modules/c-api/tests, and the sanitizer runs that CNA's comments cite are not part of any workflow.

Source locations

Evidence

Checked by reading every workflow under .github/workflows at 009d40f5 and searching them for CNA_BUILD_C_API. Not executed. The C library was not built for this entry either, so its buildability at this snapshot is itself unverified here.

Independently observed as a separate finding (merged): The five c-api-*.yml workflows are build-free and no workflow or preset enables CNA_BUILD_C_API, so the 0.29.0 library, its pure-C and C++ tests and the installed-consumer gate are exercised only in local builds.

Independently observed as a separate finding (merged): The c-api-*.yml workflows check generated records and header compilation only; no workflow or preset enables CNA_BUILD_C_API, and CApi_InstalledConsumer is registered but never run in CI.

Independently observed as a separate finding (merged): No workflow or preset enables CNA_BUILD_C_API, the compatibility-matrix configurations are only rendered into a document, and several release-gate criteria are met by the presence of files, registrations or strings.

Focused reproduction

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

Current tests

modules/c-api/tests (C++, pure C, fuzz and support programs) exists; nothing in CI runs it.

Regression test

A workflow that configures CNA_BUILD_C_API=ON with one renderer, builds the library and runs the C and C++ test programs, ideally under AddressSanitizer.

Blast radius

Every consumer of the C ABI and of the language bindings layered on it; the C++ API is unaffected.

Workaround

Build the C API locally with -DCNA_BUILD_C_API=ON and run its tests before relying on a route.

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

User guide
C API: status
Maintainer workflow
Uncertainty register
Tests and validation
Test architecture: CI