Skip to content

[net11.0] [tests] Expand the AppSizeTest to more platforms.#25080

Merged
rolfbjarne merged 3 commits intonet11.0from
dev/rolf/net11.0-appsizetest
Apr 13, 2026
Merged

[net11.0] [tests] Expand the AppSizeTest to more platforms.#25080
rolfbjarne merged 3 commits intonet11.0from
dev/rolf/net11.0-appsizetest

Conversation

@rolfbjarne
Copy link
Copy Markdown
Member

@rolfbjarne rolfbjarne commented Apr 3, 2026

Also fix R2R on macOS.

Fixes #13873.

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Expands the AppSizeTest coverage to additional Apple platforms/configurations (tvOS, Mac Catalyst, macOS) and adjusts the build/linker plumbing to handle ReadyToRun container format differences and multi-RID post-processing (dSYM/strip) so the new size baselines can be validated consistently.

Changes:

  • Expand AppSizeTest matrix to tvOS/Mac Catalyst/macOS, and enable dSYM generation in these scenarios.
  • Add PublishReadyToRunContainerFormat propagation into the linker/bundler pipeline and gate Mach-O specific R2R header wiring accordingly.
  • Add new expected app-size baseline files for the newly-covered platform/runtime combinations.

Reviewed changes

Copilot reviewed 21 out of 30 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
tools/dotnet-linker/LinkerConfiguration.cs Parses PublishReadyToRunContainerFormat from the linker configuration into Application.
tools/common/Target.cs Only emits/uses RTR_HEADER wiring when R2R is enabled and the container format is Mach-O.
tools/common/Application.cs Adds PublishReadyToRunContainerFormat field to carry the format through the toolchain.
msbuild/Xamarin.Shared/Xamarin.Shared.targets Ensures dylibs in merged multi-RID app bundles are still discovered for dsymutil/strip post-processing.
dotnet/targets/Xamarin.Shared.Sdk.targets Passes PublishReadyToRunContainerFormat into the linker invocation.
dotnet/targets/Microsoft.Sdk.R2R.targets Adjusts R2R output path handling and gates default R2R container behavior on Mach-O container format.
tests/dotnet/UnitTests/AppSizeTest.cs Expands test cases to tvOS/Mac Catalyst/macOS; enables dSYM generation; skips assembly inspection in some macOS CoreCLR cases.
tests/dotnet/SizeTestApp/MacCatalyst/SizeTestApp.csproj Adds Mac Catalyst project for the size test app.
tests/dotnet/SizeTestApp/AppDelegate.cs Adds an AppKit entry point/app delegate for macOS builds of the size test app.
tests/dotnet/UnitTests/expected/TVOS-NativeAOT-size.txt New expected size baseline for tvOS NativeAOT.
tests/dotnet/UnitTests/expected/TVOS-MonoVM-size.txt New expected size baseline for tvOS MonoVM.
tests/dotnet/UnitTests/expected/TVOS-MonoVM-interpreter-size.txt New expected size baseline for tvOS MonoVM interpreter.
tests/dotnet/UnitTests/expected/TVOS-CoreCLR-R2R-size.txt New expected size baseline for tvOS CoreCLR R2R.
tests/dotnet/UnitTests/expected/TVOS-CoreCLR-Interpreter-size.txt New expected size baseline for tvOS CoreCLR interpreter.
tests/dotnet/UnitTests/expected/MacOSX-NativeAOT-size.txt New expected size baseline for macOS NativeAOT.
tests/dotnet/UnitTests/expected/MacOSX-CoreCLR-R2R-size.txt New expected size baseline for macOS CoreCLR R2R (multi-RID).
tests/dotnet/UnitTests/expected/MacOSX-CoreCLR-Interpreter-size.txt New expected size baseline for macOS CoreCLR interpreter (multi-RID).
tests/dotnet/UnitTests/expected/MacCatalyst-NativeAOT-size.txt New expected size baseline for Mac Catalyst NativeAOT.
tests/dotnet/UnitTests/expected/MacCatalyst-MonoVM-size.txt New expected size baseline for Mac Catalyst MonoVM.
tests/dotnet/UnitTests/expected/MacCatalyst-MonoVM-interpreter-size.txt New expected size baseline for Mac Catalyst MonoVM interpreter.
tests/dotnet/UnitTests/expected/MacCatalyst-CoreCLR-R2R-size.txt New expected size baseline for Mac Catalyst CoreCLR R2R.
tests/dotnet/UnitTests/expected/MacCatalyst-CoreCLR-Interpreter-size.txt New expected size baseline for Mac Catalyst CoreCLR interpreter.

Comment thread tests/dotnet/UnitTests/AppSizeTest.cs
Comment thread tests/dotnet/UnitTests/AppSizeTest.cs
@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

This comment has been minimized.

@rolfbjarne rolfbjarne force-pushed the dev/rolf/net11.0-appsizetest branch from ceb1610 to 5f6e302 Compare April 9, 2026 08:00
@rolfbjarne rolfbjarne marked this pull request as ready for review April 9, 2026 08:01
@rolfbjarne rolfbjarne requested a review from Copilot April 9, 2026 08:01
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 24 out of 28 changed files in this pull request and generated no new comments.

@vs-mobiletools-engineering-service2
Copy link
Copy Markdown
Collaborator

✅ [CI Build #5f6e302] Build passed (Build packages) ✅

Pipeline on Agent
Hash: 5f6e302d7247b1d56745e8be069d2861fa4247ce [PR build]

@vs-mobiletools-engineering-service2
Copy link
Copy Markdown
Collaborator

✅ [PR Build #5f6e302] Build passed (Detect API changes) ✅

Pipeline on Agent
Hash: 5f6e302d7247b1d56745e8be069d2861fa4247ce [PR build]

@vs-mobiletools-engineering-service2
Copy link
Copy Markdown
Collaborator

✅ API diff for current PR / commit

NET (empty diffs)

✅ API diff vs stable

NET (empty diffs)

ℹ️ Generator diff

Generator Diff: vsdrops (html) vsdrops (raw diff) gist (raw diff) - Please review changes)

Pipeline on Agent
Hash: 5f6e302d7247b1d56745e8be069d2861fa4247ce [PR build]

@vs-mobiletools-engineering-service2
Copy link
Copy Markdown
Collaborator

✅ [CI Build #5f6e302] Build passed (Build macOS tests) ✅

Pipeline on Agent
Hash: 5f6e302d7247b1d56745e8be069d2861fa4247ce [PR build]

@vs-mobiletools-engineering-service2

This comment has been minimized.

@vs-mobiletools-engineering-service2

This comment has been minimized.

@rolfbjarne rolfbjarne enabled auto-merge (squash) April 13, 2026 07:57
@vs-mobiletools-engineering-service2
Copy link
Copy Markdown
Collaborator

🚀 [CI Build #5f6e302] Test results 🚀

Test results

✅ All tests passed on VSTS: test results.

🎉 All 161 tests passed 🎉

Tests counts

✅ cecil: All 1 tests passed. Html Report (VSDrops) Download
✅ dotnettests (iOS): All 1 tests passed. Html Report (VSDrops) Download
✅ dotnettests (MacCatalyst): All 1 tests passed. Html Report (VSDrops) Download
✅ dotnettests (macOS): All 1 tests passed. Html Report (VSDrops) Download
✅ dotnettests (Multiple platforms): All 1 tests passed. Html Report (VSDrops) Download
✅ dotnettests (tvOS): All 1 tests passed. Html Report (VSDrops) Download
✅ framework: All 2 tests passed. Html Report (VSDrops) Download
✅ fsharp: All 4 tests passed. Html Report (VSDrops) Download
✅ generator: All 5 tests passed. Html Report (VSDrops) Download
✅ interdependent-binding-projects: All 4 tests passed. Html Report (VSDrops) Download
✅ introspection: All 9 tests passed. Html Report (VSDrops) Download
✅ linker: All 44 tests passed. Html Report (VSDrops) Download
✅ monotouch (iOS): All 15 tests passed. [attempt 3] Html Report (VSDrops) Download
✅ monotouch (MacCatalyst): All 19 tests passed. Html Report (VSDrops) Download
✅ monotouch (macOS): All 12 tests passed. [attempt 2] Html Report (VSDrops) Download
✅ monotouch (tvOS): All 15 tests passed. Html Report (VSDrops) Download
✅ msbuild: All 2 tests passed. Html Report (VSDrops) Download
✅ sharpie: All 1 tests passed. Html Report (VSDrops) Download
✅ windows: All 3 tests passed. Html Report (VSDrops) Download
✅ xcframework: All 4 tests passed. Html Report (VSDrops) Download
✅ xtro: All 1 tests passed. Html Report (VSDrops) Download

macOS tests

✅ Tests on macOS Sonoma (14): All 5 tests passed. Html Report (VSDrops) Download
✅ Tests on macOS Sequoia (15): All 5 tests passed. Html Report (VSDrops) Download
✅ Tests on macOS Tahoe (26): All 5 tests passed. Html Report (VSDrops) Download

Linux Build Verification

Linux build succeeded

Pipeline on Agent
Hash: 5f6e302d7247b1d56745e8be069d2861fa4247ce [PR build]

@rolfbjarne rolfbjarne merged commit f399f02 into net11.0 Apr 13, 2026
50 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants