[clr-ios] Disable R2R IL-body stripping for more library tests that need IL at run time#130468
Open
kotlarmilos wants to merge 2 commits into
Open
Conversation
…eed IL at run time Follow-up to dotnet#130360. The SDK strips IL bodies from the Apple mobile CoreCLR composite ReadyToRun image by default, replacing each body with an invalid stub, so any test that needs the real IL at run time fails. Three more projects hit this: System.Runtime.Extensions.Tests (AppDomainTests.ExecuteAssembly invokes a stripped entry point, InvalidProgramException), System.IO.Hashing.Tests (Crc64ParameterSet.ForwardCrc64.InitializeVectorized, a Vector128 intrinsic fallback), and System.Diagnostics.StackTrace.Tests (the runtime-async V2Methods.Quuux in ToString_Async). This sets PublishReadyToRunStripILBodies to false on those three test projects, which dotnet#130360 already forwards through the _ApplePropertyNames allowlist, leaving stripping on for every other Apple mobile CoreCLR test app. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 432f1ad3-ea7c-4c6e-8f53-c6ecb80338b6
Contributor
|
Tagging subscribers to this area: @dotnet/runtime-infrastructure |
Contributor
There was a problem hiding this comment.
Pull request overview
This PR updates a small set of library test projects to opt out of IL-body stripping during Apple mobile CoreCLR composite ReadyToRun publishing, ensuring tests that depend on runtime IL inspection/execution aren’t broken by stripped method bodies.
Changes:
- Set
PublishReadyToRunStripILBodiestofalseforSystem.Runtime.Extensions.Tests. - Set
PublishReadyToRunStripILBodiestofalseforSystem.IO.Hashing.Tests. - Set
PublishReadyToRunStripILBodiestofalseforSystem.Diagnostics.StackTrace.Tests.
Show a summary per file
| File | Description |
|---|---|
| src/libraries/System.Runtime/tests/System.Runtime.Extensions.Tests/System.Runtime.Extensions.Tests.csproj | Disables IL-body stripping for this test app to keep runtime IL available where needed. |
| src/libraries/System.IO.Hashing/tests/System.IO.Hashing.Tests.csproj | Disables IL-body stripping for this test app to avoid failures when IL is required at runtime. |
| src/libraries/System.Diagnostics.StackTrace/tests/System.Diagnostics.StackTrace.Tests.csproj | Disables IL-body stripping for this test app to preserve IL-dependent runtime behavior for specific tests. |
Copilot's findings
- Files reviewed: 3/3 changed files
- Comments generated: 0
Member
Author
|
/azp run runtime-extra-platforms |
|
Azure Pipelines successfully started running 1 pipeline(s). |
Member
Why is this manual workaround needed for this case? |
…ple mobile The generated merged test runner entry point Program...RunTests(TestFilter) has its IL stripped by crossgen2 --strip-il-bodies, which the interpreter on Apple mobile CoreCLR needs at runtime, causing the iossimulator CoreCLR runtime test leg to fail. Set PublishReadyToRunStripILBodies=false so the property is forwarded through _ApplePropertyNames into the Helix Apple app build, matching the approach used for the library test projects in this PR. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 24b062cc-cf90-4c79-868e-4c6d1fcc7c36
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Follow-up to #130360. The SDK strips IL bodies from the Apple mobile CoreCLR composite ReadyToRun image by default, replacing each body with an invalid stub, so any test that needs the real IL at run time fails. Three more projects hit this:
System.Runtime.Extensions.Tests(AppDomainTests.ExecuteAssemblyinvokes a stripped entry point,InvalidProgramException),System.IO.Hashing.Tests(Crc64ParameterSet.ForwardCrc64.InitializeVectorized, aVector128intrinsic fallback), andSystem.Diagnostics.StackTrace.Tests(the runtime-asyncV2Methods.QuuuxinToString_Async). This setsPublishReadyToRunStripILBodiestofalseon those three test projects, which #130360 already forwards through the_ApplePropertyNamesallowlist, leaving stripping on for every other Apple mobile CoreCLR test app.