Testing and verification
The project uses layered checks: behavior tests, component isolation, negative consumers, integration tests and documentation drift detection.
Test topology
There are 37 component test executables and one integration executable. SharpRuntimeTests is an aggregate build target, not one giant test binary. CTest discovers individual GoogleTest cases.
| Layer | What it proves |
|---|---|
| Component executables | Behavior owned by one physical component |
| Integration executable | Genuinely cross-component behavior in an All build |
| Selective consumer fixtures | Requested targets configure, build and expose only declared surfaces |
| Negative fixtures | Private or sibling headers do not leak to consumers |
| Boundary validator | Unique ownership, declared edges, correct visibility and an acyclic production graph |
| Catalogue check | Generated component documentation matches CMake registration |
| Doxygen ceiling | Documentation warnings do not exceed the pinned baseline |
Current baseline, honestly stated
At source SHA 6d429559ce265daa21866f0d6e82c5642e2ba0ec, the latest recorded complete gate discovered and ran 17,131 tests: 17,123 passed, two skipped and six failed. Five Ping failures were triggered by the host’s ping-group configuration but expose a real missing raw-ICMP receive fallback; one socket test depended on missing IPv6 host state.
The source pin and measured gate are the same revision. The site preserves all six failures and their scope instead of converting a large pass count into an all-green claim.
Commands
# Build all test executables
cmake -S . -B build -DSHARP_RUNTIME_COMPONENTS=All
cmake --build build --target SharpRuntimeTests --parallel 2
# Run the component-aware sequence
scripts/run_component_tests.sh build
# Full local integrity gate
scripts/local_ci_check.sh build
# Selective consumer matrix
scripts/check_selective_components.sh
Current GitHub Actions
The pinned workflow runs on pushes and pull requests. It has nine Ubuntu selective-component jobs, one Ubuntu full local gate and a Doxygen 1.9.8 warning-baseline job on Ubuntu 24.04. It does not currently run a Windows, macOS, Android or Emscripten matrix.