Skip to content

Probe NativeAOT coverage on one functional shard - #2147

Draft
Tyrie Vella (tyrielv) wants to merge 1 commit into
microsoft:masterfrom
tyrielv:tyrielv/aot-coverage-probe
Draft

Tyrie Vella (tyrielv) wants to merge 1 commit into
microsoft:masterfrom
tyrielv:tyrielv/aot-coverage-probe

Conversation

@tyrielv

Copy link
Copy Markdown
Contributor

Problem and Context

CI does not publish managed-source coverage for deployed NativeAOT binaries. Unit coverage can measure linked source inside a test assembly instead.

This draft probes Windows-service coverage within one existing functional shard. It does not add another functional test run.

Changes

  • Add opt-in build-time instrumentation for NativeAOT executables. Ordinary builds omit the coverage dependency.
  • Build a separate x64 coverage installer for shard 0. Keep ordinary installers for the other shards and upgrade tests.
  • Start a fixed-session collector before installation so services from the Windows Service Control Manager can report coverage.
  • Keep the 24-worker matrix and each worker's test command unchanged.
  • Verify executed code in seven product modules and GVFSService.OnStart. Reject console-service execution and test-assembly coverage as evidence for this probe.
  • Publish raw coverage, source-level HTML, a job summary, collector logs, and the installed service identity.
  • Add unit tests for missing product coverage, missing service startup, console-service execution, and test-assembly contamination.

Experimental Limits

This draft measures managed code on one x64 shard. It does not measure native C++ or complete-suite coverage.

The extra build isolates the fixed-session payload. Without a collector, local fixed-session hook startup took about five seconds.

Instrumented local builds emit IL2026 and IL3050 warnings. This draft adds no coverage threshold and does not change the release pipeline.

Build an isolated instrumented installer for x64 shard 0 and collect coverage before Windows services start. Keep ordinary installers and test selections unchanged for the other workers.

Assisted-by: GPT-6.1 Sol
Signed-off-by: Tyrie Vella <tyrielv@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant