-
Couldn't load subscription status.
- Fork 5.2k
Merge JIT/Regression tests into merged wrapper assemblies #121078
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR consolidates JIT regression tests by removing over 1000 individual project files and merging test sources into wrapper assemblies based on their build configurations (DebugType and Optimize settings). The changes also include namespace updates to match test names, addition of OuterLoop attributes to test methods, and correction of a typo in the test wrapper generator.
- Removal of standalone .csproj files for single-file tests without references
- Introduction of merged runner projects grouping tests by build configuration
- Namespace standardization to use test names instead of generic names like "Test" or "DefaultNamespace"
Reviewed Changes
Copilot reviewed 300 out of 2177 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| Multiple .csproj files | Removed individual project files for tests being merged into wrapper assemblies |
| Multiple .cs test files | Updated namespaces from generic names to specific test names (e.g., "Test" → "b45270") |
| Multiple .cs test files | Added [OuterLoop] attribute to test methods with CLRTestPriority=1 |
| b16102.cs | Deleted test file validating Main method discovery in internal class |
| b41391.csproj, b37598.csproj, b36472.csproj, b16423.csproj | Added CoreCLRTestLibrary project reference |
| Multiple .cs files using TestLibrary | Simplified TestLibrary.PlatformDetection references to PlatformDetection with using directive |
| XUnitWrapperGenerator.cs | Fixed typo in property name: "IsTailcallStress" → "IsTailCallStress" |
|
Tagging subscribers to this area: @dotnet/runtime-infrastructure |
|
/azp run runtime-coreclr outerloop |
|
Azure Pipelines successfully started running 1 pipeline(s). |
|
/azp run runtime-coreclr outerloop |
|
Azure Pipelines successfully started running 1 pipeline(s). |
|
/azp run runtime-coreclr outerloop |
|
Azure Pipelines successfully started running 1 pipeline(s). |
… to their own assemblies.
|
/azp run runtime-coreclr outerloop |
|
Azure Pipelines successfully started running 1 pipeline(s). |
|
/azp run runtime-coreclr outerloop |
|
Azure Pipelines successfully started running 1 pipeline(s). |
Like #120992, this PR works to remove the number of projects in the src/tests tree.
It removes project files for projects in the JIT/Regressions tree that have one source file and no references.
New merged runner projects are introduced to group the sources of the old projects by their DebugType and Optimize settings to preserve the interesting elements of the code.
Additionally, this PR removes a test that validates that we can find a Main method in an internal class (not a particularly useful test nowadays). It also moves a number of checks that cover the whole body of a test into a ConditionalFact.
This PR removes a little over 1000 project files from the JIT/Regression tree, reducing the number of projects in the src/tests tree by nearly 10%.
Part of the continuing effort to get us to a point where we don't need separate inner test builds and the cost of building src/tests multiple times is less than the cost of marshalling the bits from different jobs.