[cDAC] Convert cDAC dump tests to run on Helix#124782
[cDAC] Convert cDAC dump tests to run on Helix#124782max-charlamb merged 12 commits intodotnet:mainfrom
Conversation
|
Tagging subscribers to this area: @steveisok, @tommcdon, @dotnet/dotnet-diag |
There was a problem hiding this comment.
Pull request overview
This PR converts the cDAC dump tests from running as ADO pipeline stages to running on Helix infrastructure. The change simplifies the pipeline by replacing separate DumpCreation and DumpTest stages with a single CdacDumpTests stage that generates dumps and runs tests on Helix machines.
Changes:
- Adds Helix infrastructure for remote test execution
- Enables windows_arm64 platform support
- Consolidates dump generation and testing into a single Helix-based stage
Reviewed changes
Copilot reviewed 4 out of 4 changed files in this pull request and generated 2 comments.
| File | Description |
|---|---|
| cdac-dump-helix.proj | New Helix SDK project that orchestrates dump generation and test execution on Helix; defines commands, queues, and work items |
| Microsoft.Diagnostics.DataContractReader.DumpTests.csproj | Adds PrepareHelixPayload target to stage test artifacts and debuggees; adds XUnitConsoleRunner package reference |
| DumpTests.targets | Adds BuildDebuggeesOnly target for building debuggees without generating dumps locally |
| runtime-diagnostics.yml | Replaces two-stage ADO workflow (DumpCreation + DumpTest) with single CdacDumpTests stage using Helix |
...ative/managed/cdac/tests/DumpTests/Microsoft.Diagnostics.DataContractReader.DumpTests.csproj
Outdated
Show resolved
Hide resolved
d82438f to
3f3aefe
Compare
3f3aefe to
d1ce702
Compare
...ative/managed/cdac/tests/DumpTests/Microsoft.Diagnostics.DataContractReader.DumpTests.csproj
Outdated
Show resolved
Hide resolved
3f93840 to
569cce9
Compare
569cce9 to
3d682f9
Compare
src/native/managed/cdac/tests/DumpTests/cdac-dump-gen-helix.proj
Outdated
Show resolved
Hide resolved
...ative/managed/cdac/tests/DumpTests/Microsoft.Diagnostics.DataContractReader.DumpTests.csproj
Show resolved
Hide resolved
...ative/managed/cdac/tests/DumpTests/Microsoft.Diagnostics.DataContractReader.DumpTests.csproj
Outdated
Show resolved
Hide resolved
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 6 out of 6 changed files in this pull request and generated 3 comments.
Comments suppressed due to low confidence (1)
eng/pipelines/runtime-diagnostics.yml:170
shouldContinueOnError: trueat the matrix/job level will be forwarded intosend-to-helix-inner-step.yml(viaglobal-build-job.yml) and causes the Helix send step to run withcontinueOnError: true. That can leave the job/stage asSucceededWithIssueseven when Helix dump tests fail, effectively masking test failures. Consider keepingshouldContinueOnErrorfalse here, or add an explicit final step to fail the job whenAgent.JobStatusisSucceededWithIssues(matching the previous DumpTest stage behavior).
- task: PublishTestResults@2
inputs:
testResultsFormat: xUnit
testResultsFiles: '**/*.xml'
...ative/managed/cdac/tests/DumpTests/Microsoft.Diagnostics.DataContractReader.DumpTests.csproj
Outdated
Show resolved
Hide resolved
Replace the DumpCreation + DumpTest ADO stages in runtime-diagnostics.yml with a single CdacDumpTests stage that builds debuggees on ADO and sends dump generation + test execution to Helix machines. Flow: ADO builds runtime + debuggees, prepares a Helix payload containing test DLLs, debuggee binaries, and auto-generated dump type metadata. On Helix, each debuggee is run to produce a crash dump, then xunit tests validate the dumps. Changes: - Add BuildDebuggeesOnly target to DumpTests.targets using Exec with dotnet build (ensures implicit NuGet restore, matching _GenerateLocalDump) - Add PrepareHelixPayload target + XUnitConsoleRunner package to csproj; copies tests + debuggees, generates debuggee-metadata.props from GetDumpTypes for dynamic debuggee discovery - Create cdac-dump-helix.proj Helix SDK project that imports the generated metadata, builds per-OS dump generation + xunit test execution commands - Update runtime-diagnostics.yml with single CdacDumpTests stage - Add windows_arm64 platform support Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Use simple key-value parameter defaults instead of nested object format. ADO step templates don't support the type/default nested syntax and interpret it as an Object value, causing 'Unable to convert from Object to String' parse errors. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
CCWInterfaces, RCW, and RCWCleanupList use COM interop APIs that are only available on Windows. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
ce104df to
bdc9e02
Compare
|
/ba-g From copilot CI analysis: |
Replace the DumpCreation + DumpTest ADO stages in runtime-diagnostics.yml with a single CdacDumpTests stage that builds, prepares a Helix payload, and sends dump generation + test execution to Helix machines.
Changes: