Skip to content

Support private runtimes in SOS Helix tests - #6068

Merged
max-charlamb merged 1 commit into
dotnet:mainfrom
max-charlamb:dev/max-charlamb/private-runtime-sos-helix
Sep 28, 2026
Merged

max-charlamb merged 1 commit into
dotnet:mainfrom
max-charlamb:dev/max-charlamb/private-runtime-sos-helix

Conversation

@max-charlamb

Copy link
Copy Markdown
Member

Summary

  • stage an optional private runtime in the SOS.Tests Helix payload when PrivateBuildTesting and LiveRuntimeDir are set
  • overlay the private files onto the matching Helix-provisioned shared framework before starting the test harness
  • limit private-runtime work items to the selected Core runtime shard, excluding Framework and SingleFile configurations that would still use product runtime bits
  • preserve the existing runtime, SingleFile, and Framework shard behavior for normal diagnostics CI

This enables dotnet/runtime to migrate its runtime-diagnostics SOS coverage to the new SOS.Tests harness on Helix while testing the runtime and cDAC artifacts produced by the runtime build.

Testing

  • Build.cmd -configuration Release -architecture x64
  • Build.cmd -configuration Release -architecture x64 -privatebuild
  • generated normal SOS work items and verified the existing four runtime shards plus Framework
  • generated the private SOS payload through SendToHelix.proj and verified it produces one Core runtime work item with the runtime overlay arguments
  • validated private-runtime overlay and argument handling in both Windows and Unix launchers

Note

This pull request description was generated with GitHub Copilot.

Copilot AI lite review requested due to automatic review settings September 25, 2026 18:18
@max-charlamb
max-charlamb requested a review from a team as a code owner September 25, 2026 18:18

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot review overview

🔵 Needs a closer look

A moderate issue remains with the staged sharedFramework layout, preventing the intended runtime overlay.

Review effort: Lite
Findings: None

What changed in this PR

Adds optional private-runtime support for SOS Helix tests, including payload staging, runtime overlays, shard filtering, and cross-platform launcher updates.

Changes:

  • Stage private runtime artifacts when configured.
  • Restrict private runs to the Core runtime shard.
  • Overlay runtime files on Unix and Windows.
  • Document private-runtime validation.
File Summary
src/​tests/​SOS.Tests/​README.md Documents private-runtime Helix behavior.
src/​tests/​SOS.Tests/​HelixPayload.targets Stages runtime overrides and configures private work items.
src/​tests/​SOS.Tests/​Helix/​runtests.sh Parses arguments and overlays runtimes on Unix.
src/​tests/​SOS.Tests/​Helix/​runtests.cmd Parses arguments and overlays runtimes on Windows.

💡 Add a code-review agent skill for context-aware, tailored reviews. Learn more in the docs.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 3f8294bb-306d-4f13-84c5-f8ecbe58ce02
@max-charlamb
max-charlamb force-pushed the dev/max-charlamb/private-runtime-sos-helix branch from a3e1b2d to 446b585 Compare September 28, 2026 18:54
@max-charlamb

Copy link
Copy Markdown
Member Author

/ba-g MacOS queue time

@max-charlamb
max-charlamb merged commit b2ca6f5 into dotnet:main Sep 28, 2026
19 of 22 checks passed
@max-charlamb
max-charlamb deleted the dev/max-charlamb/private-runtime-sos-helix branch September 28, 2026 19:54
max-charlamb added a commit to dotnet/runtime that referenced this pull request Sep 29, 2026
## Summary

- replace the obsolete local-agent SOS test jobs with the
`dotnet/diagnostics` `SOS.Tests` Helix harness
- run SOS coverage on the same eight platforms as the cDAC dump tests,
with both legacy DAC and cDAC rows handled by the harness
- reuse each platform's existing `CdacBuildArtifacts` for the private
runtime and copy the private universal cDAC binaries directly beside SOS
- start each SOS job after its matching platform build rather than
waiting for every platform

This depends on the private-runtime Helix support in
dotnet/diagnostics#6068. Normal pipeline runs continue to use
diagnostics `main`; coordinated validation can set `diagnosticsBranch`
to that PR's GitHub ref.

## Testing

- parsed the modified pipeline YAML and ran `git diff --check`
- built diagnostics Release x64 with `PackageWithCDac=false`
- verified the copied universal cDAC and DBI hashes match the runtime
build outputs
- ran `eng/helix/SendToHelix.proj /t:GatherHelixWorkItems` locally with
the private runtime override
- verified the generated payload contains the private runtime and
matching private cDAC
- verified Linux ARM32 selects the runtime package rather than the
unavailable SDK package

> [!NOTE]
> This pull request description was generated with GitHub Copilot.

---------

Co-authored-by: Max Charlamb <maxcharlamb@microsoft.com>
Copilot-Session: 3f8294bb-306d-4f13-84c5-f8ecbe58ce02
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.

4 participants