[net11.0] [tests] Expand the AppSizeTest to more platforms.#25080
[net11.0] [tests] Expand the AppSizeTest to more platforms.#25080rolfbjarne merged 3 commits intonet11.0from
Conversation
There was a problem hiding this comment.
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
AppSizeTestmatrix to tvOS/Mac Catalyst/macOS, and enable dSYM generation in these scenarios. - Add
PublishReadyToRunContainerFormatpropagation 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. |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
ceb1610 to
5f6e302
Compare
✅ [CI Build #5f6e302] Build passed (Build packages) ✅Pipeline on Agent |
✅ [PR Build #5f6e302] Build passed (Detect API changes) ✅Pipeline on Agent |
✅ API diff for current PR / commitNET (empty diffs)✅ API diff vs stableNET (empty diffs)ℹ️ Generator diffGenerator Diff: vsdrops (html) vsdrops (raw diff) gist (raw diff) - Please review changes) Pipeline on Agent |
✅ [CI Build #5f6e302] Build passed (Build macOS tests) ✅Pipeline on Agent |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
🚀 [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 macOS tests✅ Tests on macOS Sonoma (14): All 5 tests passed. Html Report (VSDrops) Download Linux Build VerificationPipeline on Agent |
Also fix R2R on macOS.
Fixes #13873.