Remove support for issues.targets#123909
Conversation
|
Tagging subscribers to this area: @dotnet/runtime-infrastructure |
stephentoub
left a comment
There was a problem hiding this comment.
Code Review: PR #123909 - Remove support for issues.targets
Holistic Assessment
Motivation: This PR removes the issues.targets infrastructure that was used to exclude tests at build/run time. Per the PR description, all entries have already been removed and the legacy runners that were the primary consumers have been removed.
Approach: Clean removal of dead code - deleting the exclusion list infrastructure from build scripts, test runners, MSBuild targets, and code generators.
Net positive: ✅ Yes - this is a straightforward cleanup that removes ~300 lines of unused infrastructure.
Detailed Findings
✅ Correctness
- The removal is consistent across all touchpoints:
- Build scripts (.cmd, .sh)
- MSBuild project files (�uild.proj, helixpublishwitharcade.proj)
- Code generators (XUnitWrapperGenerator.cs, ITestInfo.cs)
- Runtime library (TestFilter.cs)
- Mobile targets (mergedrunnermobile.targets)
- Shell scripts (�ringup_runtest.sh)
- Task implementations (PatchExclusionListInApks.cs, TestExclusionListTasks.csproj)
✅ API Changes
- TestFilter constructor signature changes from (string?, Dictionary<string, string>?) to (string?) - this is an internal test infrastructure class, so no public API concerns.
- LoadTestExclusionTable() and GetTestExclusionReason() methods removed from TestFilter - again, internal infrastructure.
✅ Generated Code Changes
- XUnitWrapperGenerator.cs correctly removes:
- Loading of estExclusionTable
- Passing exclusion table to TestFilter constructor
- Exclusion table parameter to XHarnessRunnerLibrary.RunnerEntryPoint.RunTests
- ITestInfo.cs correctly simplifies skip reporting to pass string.Empty instead of computed reason.
⚠️ Potential Issue: Missing XHarnessRunnerLibrary Update
The generator in XUnitWrapperGenerator.cs (line ~465-467 in diff) changes the call:
\\csharp
// Before:
RunTests(RunTests, ""{assemblyName}"", args.Length != 0 ? args[0] : null, testExclusionTable);
// After:
RunTests(RunTests, ""{assemblyName}"", args.Length != 0 ? args[0] : null);
\\
This suggests XHarnessRunnerLibrary.RunnerEntryPoint.RunTests had its signature changed. I don't see this file in the diff - please verify that XHarnessRunnerLibrary has been updated to remove the estExclusionTable parameter, or that this was done in a prior PR.
✅ Build System
- �uild.proj condition change adds '$(__BuildTestWrappersOnly)' != '1' to GenerateLayout target - this appears to be a drive-by fix unrelated to the main change but looks correct.
- Removal of EmitTestExclusionList target and related MSBuild infrastructure is clean.
Summary
Verdict: ✅ Approve with minor verification
This is a clean removal of dead infrastructure. The only verification needed is to confirm that XHarnessRunnerLibrary.RunnerEntryPoint.RunTests signature was already updated (likely in a prior PR) to not require the exclusion table parameter.
The changes are well-scoped and consistently applied across all the relevant files.
🤖 Copilot Code Review — PR #123909Holistic AssessmentMotivation: The PR aims to remove the now-obsolete Approach: The approach of removing the exclusion list infrastructure is correct, but the implementation is incomplete. Critical files were missed, causing compilation failures. Summary: ❌ Needs Changes. The PR has critical compilation errors that prevent it from building. Several files in Detailed Findings❌ Compilation Error — Method Signature MismatchThe PR modifies builder.AppendLine($@"return await XHarnessRunnerLibrary.RunnerEntryPoint.RunTests(RunTests,"
+ $@" ""{assemblyName}"","
+ $@" args.Length != 0 ? args[0] : null);");However, public static async Task<int> RunTests(
Func<TestFilter?, TestSummary> runTestsCallback,
string assemblyName,
string? filter,
Dictionary<string, string> testExclusionTable) // ← This parameter still existsThis causes the generated test runners to fail compilation, which is confirmed by the failing CI checks ("coreclr Common Pri0 Test Build", NativeAOT builds, etc.). ❌ Missing File Updates — XHarnessRunnerLibraryThe following files still contain
|
|
@copilot open a new pull request to apply changes based on the comments in this thread |
|
Copilot took too long. Just did it myself. |
Now that we've removed all entries from issues.targets and the support for the legacy runners that were the primary users, we can remove the infrastructure for issues.targets built into the merged runners.