Skip to content

Update arm64 simulators to use osx.26 queue#1525

Merged
matouskozak merged 7 commits intodotnet:mainfrom
matouskozak:osx-26-for-arm
Dec 15, 2025
Merged

Update arm64 simulators to use osx.26 queue#1525
matouskozak merged 7 commits intodotnet:mainfrom
matouskozak:osx-26-for-arm

Conversation

@matouskozak
Copy link
Copy Markdown
Member

@matouskozak matouskozak commented Dec 8, 2025

  • New arm64 variants of Apple tests apps
  • Use newer iphone simulator for testing

@matouskozak
Copy link
Copy Markdown
Member Author

matouskozak commented Dec 9, 2025

We will need to update the sample apps. We should probably add arm64 specific sampels to not rely on rosetta running x64 apps.

The current structure is

ios-device
tvos-device
ios-simulator-64 (x64 apps)
tvos-simulator (x64 apps)
maccatalyst (x64 apps)

One proposal:

image

We would need to add arm64 specific apps for simulators and maccatalyst. This should be possible to make work with the changes to Simulator.Tests.proj

  <PropertyGroup>
    <IsArm64Queue>$(HelixTargetQueue.Contains('arm64'))</IsArm64Queue>
    <IsAmd64Queue>$(HelixTargetQueue.Contains('amd64'))</IsAmd64Queue>
    <ArchSuffix Condition="'$(IsArm64Queue)' == 'true'">-arm64</ArchSuffix>
    <ArchSuffix Condition="'$(IsArm64Queue)' != 'true'"></ArchSuffix>
  </PropertyGroup>

  <Target Name="ValidateArchitecture" BeforeTargets="Build">
    <Error Condition="'$(IsArm64Queue)' != 'true' and '$(IsAmd64Queue)' != 'true'"
           Text="Unable to detect architecture from HelixTargetQueue '$(HelixTargetQueue)'. Queue name must contain 'arm64' or 'amd64'." />
  </Target>

...

      <AdditionalProperties>TestTarget=ios-simulator-64$(ArchSuffix);TestAppBundleName=System.Numerics.Vectors.Tests.app</AdditionalProperties>

Any suggestions for better structure @kotlarmilos @rmarinho @akoeplinger ?

Another approach could be just add x64/arm64 subfolders to each of the TestTarget folders (for devices only arm64). This would require changes to device test project files.

@kotlarmilos
Copy link
Copy Markdown
Member

Another approach could be just add x64/arm64 subfolders to each of the TestTarget folders (for devices only arm64). This would require changes to device test project files.

I vote for this but don't have a strong opinion.

@matouskozak
Copy link
Copy Markdown
Member Author

Another approach could be just add x64/arm64 subfolders to each of the TestTarget folders (for devices only arm64). This would require changes to device test project files.

I vote for this but don't have a strong opinion.

I've also thinking about this strongly, what discourages me a bit is that it will require changes to both device and simulator tests files but it is certainly doable.

@kotlarmilos
Copy link
Copy Markdown
Member

@matouskozak I think the exit code issue has been fixed. The tests are now failing with:

Invalid Image: /Users/helix-runner/Library/Developer/CoreSimulator/Devices/48D6048D-D7D8-4587-8926-7800FCF8D7FD/data/Containers/Bundle/Application/E3014663-6A73-4D4A-B827-F1E18724E840/System.Numerics.Vectors.Tests.app/._System.Numerics.Vectors.Tests.dll

@matouskozak matouskozak requested review from akoeplinger, kotlarmilos, rmarinho and rolfbjarne and removed request for kotlarmilos December 12, 2025 18:37
@matouskozak matouskozak merged commit 39545df into dotnet:main Dec 15, 2025
17 checks passed
@matouskozak matouskozak deleted the osx-26-for-arm branch December 15, 2025 10:38
matouskozak added a commit to matouskozak/xharness that referenced this pull request Mar 11, 2026
- New arm64 variants of Apple tests apps
- Use newer iphone simulator for testing
- Add application log for capturing mlaunch output and exit code detection
- Update tests
- document test app update

---------

Co-authored-by: Milos Kotlar <kotlarmilos@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants