Skip to content

[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
dotnet:mainfrom
kotlarmilos:dev/kotlarmilos/clr-ios-strip-il-bodies-more-tests
Open

[clr-ios] Disable R2R IL-body stripping for more library tests that need IL at run time#130468
kotlarmilos wants to merge 2 commits into
dotnet:mainfrom
kotlarmilos:dev/kotlarmilos/clr-ios-strip-il-bodies-more-tests

Conversation

@kotlarmilos

Copy link
Copy Markdown
Member

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.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 #130360 already forwards through the _ApplePropertyNames allowlist, leaving stripping on for every other Apple mobile CoreCLR test app.

…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
@dotnet-policy-service

Copy link
Copy Markdown
Contributor

Tagging subscribers to this area: @dotnet/runtime-infrastructure
See info in area-owners.md if you want to be subscribed.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

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 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 PublishReadyToRunStripILBodies to false for System.Runtime.Extensions.Tests.
  • Set PublishReadyToRunStripILBodies to false for System.IO.Hashing.Tests.
  • Set PublishReadyToRunStripILBodies to false for System.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

@kotlarmilos

Copy link
Copy Markdown
Member Author

/azp run runtime-extra-platforms

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

@jakobbotsch

Copy link
Copy Markdown
Member

and System.Diagnostics.StackTrace.Tests (the runtime-async V2Methods.Quuux in ToString_Async)

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
Copilot AI review requested due to automatic review settings July 10, 2026 11:03

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot's findings

  • Files reviewed: 4/4 changed files
  • Comments generated: 1

Comment thread src/tests/JIT/Regression/Regression_o_2.csproj
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

Status: No status

Development

Successfully merging this pull request may close these issues.

3 participants