Consolidate some jit64 tests into less assemblies#120992
Consolidate some jit64 tests into less assemblies#120992jkoritzinsky merged 24 commits intodotnet:mainfrom
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 |
|
/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). |
|
/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). |
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.