Uh oh!
There was an error while loading. Please reload this page.
Consolidate some jit64 tests into less assemblies - #120992
Conversation
…where it isn't needed.
…only valuetypes.csproj
…ojects, speeding up builds by a decent amount
… build with BuildAsStandalone on non-Windows)
There was a problem hiding this comment.
Pull Request Overview
This PR consolidates multiple JIT64 test projects into fewer assemblies to reduce build overhead. Rather than having each test as a separate project, related tests are grouped together into single assemblies. This effort reduces the project count by 4.3% (removing 455 projects), which helps optimize build times by reducing the cost of building the test tree multiple times and minimizes bit marshalling between jobs.
- Test consolidation via namespace separation instead of separate projects
- Addition of
[OuterLoop]attributes to longer-running tests - Replacement of
GCStressIncompatibleproject properties with[SkipOnCoreClr]attributes - Refactoring of platform-specific test filtering from runtime checks to attributes
Reviewed Changes
Copilot reviewed 300 out of 957 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| box-unbox*.cs | Added file-scoped namespaces and [OuterLoop] attributes to nullable box/unbox tests |
| box-unbox*.csproj | Removed individual project files as tests are now consolidated |
| overflow*.cs | Created individual test files for overflow operations (add, sub, mul, div) with proper namespaces |
| overflow*.csproj | Removed individual project files and created single rtchecks.csproj |
| rtchecks.csproj | New consolidated project file listing all overflow test sources |
| VolatileTest*.cs | Created individual test files for each volatile operator test with namespaces |
| VolatileTest*.csproj | Removed individual projects; tests now consolidated |
| VolatileTest.csproj | New consolidated project for all volatile test sources |
| HugeArray*.cs/csproj | Replaced project-level GCStress settings with test-level [SkipOnCoreClr] attributes |
| HugeField*.cs/csproj | Replaced project-level GCStress settings with test-level attributes |
| hugeexpr1.cs/csproj | Added [OuterLoop] and [SkipOnCoreClr] attributes, removed project properties |
| hugeSimpleExpr1.cs/csproj | Replaced GCStress project properties with [SkipOnCoreClr] attribute |
| ArrayWithThread.cs/csproj | Moved GCStress configuration from project to [SkipOnCoreClr] attribute |
| mcc_interop.ilproj | New consolidated project for all mcc interop IL tests |
| mcc_interop.il | New main entry point that calls all individual mcc test methods |
| mcc_i*.il | Updated namespaces and replaced runtime platform checks with [PlatformSpecific] or [ConditionalFact] attributes |
| mcc_i*.ilproj | Removed individual project files as tests are consolidated |
Tagging subscribers to this area: @dotnet/runtime-infrastructure |
jkoritzinsky
commented
Oct 22, 2025
/azp run runtime-coreclr outerloop |
|
Azure Pipelines successfully started running 1 pipeline(s). |
jkoritzinsky
commented
Oct 24, 2025
/azp run runtime-coreclr outerloop |
|
Azure Pipelines successfully started running 1 pipeline(s). |
jkoritzinsky
commented
Oct 24, 2025
/azp run runtime-coreclr outerloop |
|
Azure Pipelines successfully started running 1 pipeline(s). |
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
jkoritzinsky
commented
Oct 24, 2025
/azp run runtime-coreclr outerloop |
|
Azure Pipelines successfully started running 1 pipeline(s). |
jkoritzinsky
commented
Oct 24, 2025
/azp run runtime-coreclr outerloop |
|
Azure Pipelines successfully started running 1 pipeline(s). |
Uh oh!
There was an error while loading. Please reload this page.
Reduces the number of project files in the src/tests tree by 4.3% (removes 455 projects).
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.