Testing and verification

The project uses layered checks: behavior tests, component isolation, negative consumers, integration tests and documentation drift detection.

38 executables17,131 current casesEvidence-qualified

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.

LayerWhat it proves
Component executablesBehavior owned by one physical component
Integration executableGenuinely cross-component behavior in an All build
Selective consumer fixturesRequested targets configure, build and expose only declared surfaces
Negative fixturesPrivate or sibling headers do not leak to consumers
Boundary validatorUnique ownership, declared edges, correct visibility and an acyclic production graph
Catalogue checkGenerated component documentation matches CMake registration
Doxygen ceilingDocumentation 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.

Measured does not mean green

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.