- 
                Notifications
    You must be signed in to change notification settings 
- Fork 5.2k
Consolidate some jit64 tests into less assemblies #120992
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
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.
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 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.