[cDAC] Switch runtime-diagnostics SOS test filter to -method for wildcard support#127878
Merged
max-charlamb merged 1 commit intodotnet:mainfrom May 6, 2026
Merged
Conversation
dotnet/diagnostics PR dotnet#5821 split the single `SOS` test class into 11 SOS-prefixed classes (`SOSStackTraceTests`, `SOSExceptionTests`, etc.) to enable parallelism. The existing `classFilter: SOS` no longer matches any class, so the cDAC, cDAC_no_fallback, and DAC test legs were silently running zero tests. xunit v2's `-class` filter is a HashSet exact-match (no wildcards), so `SOS*` will not work either -- this was verified by directly invoking `XunitFilters.Filter()` against xunit.runner.utility 2.9.2. xunit v2's `-method` filter, however, IS regex-based and matches against the fully qualified `ClassName.MethodName`. `SOS*` matches all methods on the new SOS* classes. Add a `methodFilter` parameter to `runtime-diag-job.yml` (parallel to the existing `classFilter`) and switch the three SOS test legs in `runtime-diagnostics.yml` to `methodFilter: SOS*`. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Contributor
|
Tagging subscribers to this area: @steveisok, @tommcdon, @dotnet/dotnet-diag |
steveisok
approved these changes
May 6, 2026
Member
Author
|
/ba-g cDAC pipeline only change |
This was referenced May 6, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Note
This PR was created with the assistance of GitHub Copilot (AI-generated content).
Problem
dotnet/diagnostics PR #5821 split the single
SOStest class into 11SOS-prefixed classes (SOSStackTraceTests,SOSExceptionTests,SOSGCTests,SOSDumpTests, etc.) to enable parallelism. The existingclassFilter: SOSinruntime-diagnostics.ymlno longer matches any class, so the cDAC, cDAC_no_fallback, and DAC test legs are now silently running zero tests.A naïve fix to
classFilter: SOS*does not work either: xunit v2's-classfilter is aHashSet<string>with exact-matchContains()only; it has no wildcard support. I verified this by directly invokingXunitFilters.Filter()againstxunit.runner.utility2.9.2:SOSStackTraceTests.TestMethod1-class SOS*-method SOS*-classentriesFix
xunit v2's
-methodfilter is regex-based and operates on the fully qualifiedClassName.MethodName, soSOS*matches every method on any SOS-prefixed class.This PR:
methodFilterparameter toeng/pipelines/diagnostics/runtime-diag-job.yml(parallel to the existingclassFilter), wiring it through to the diagnosticsbuild.ps1's already-supported-methodfilterargument.eng/pipelines/runtime-diagnostics.yml(cDAC, cDAC_no_fallback, DAC) tomethodFilter: SOS*.The existing
classFilterparameter is left in place for any other consumer that needs exact-match class filtering.