Skip to content

Add MAUI --sample-content test app for iOS#5117

Merged
LoopedBard3 merged 12 commits intodotnet:mainfrom
matouskozak:add-maui-sc-ios
Feb 13, 2026
Merged

Add MAUI --sample-content test app for iOS#5117
LoopedBard3 merged 12 commits intodotnet:mainfrom
matouskozak:add-maui-sc-ios

Conversation

@matouskozak
Copy link
Member

@matouskozak matouskozak commented Feb 12, 2026

  • Add MAUI -sc test app for iOS
  • Reduce iOS payload size to fit into 2GB helix limit with CoreCLR
  • Move from testing different codegens for Android to Default configurations to simplify the measurements.

Testing run: https://dev.azure.com/dnceng/internal/_build/results?buildId=2903332&view=results

Copy link
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

This pull request adds a new MAUI sample content test scenario for iOS and implements payload size reduction measures. It also simplifies Android performance measurements by moving from testing multiple codegens to using default configurations.

Changes:

  • Added new MAUI sample content iOS test scenario (mauisamplecontentios)
  • Reduced payload size by removing build intermediates (obj/bin directories) from correlation staging
  • Simplified Android MAUI benchmarks by replacing ProfiledAOT, JIT, R2R, and R2RComposite with Default codegen configurations
  • Changed iOS MAUI benchmark from FullAOT to Default codegen configuration

Reviewed changes

Copilot reviewed 5 out of 5 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
src/scenarios/mauisamplecontentios/test.py New test runner for iOS MAUI sample content scenario
src/scenarios/mauisamplecontentios/pre.py Pre-build script to setup and build iOS MAUI sample content app
src/scenarios/mauisamplecontentios/post.py Post-test cleanup script for iOS scenario
eng/pipelines/sdk-perf-jobs.yml Updated Android and iOS MAUI benchmark configurations to use Default codegen
eng/performance/maui_scenarios_ios.proj Added new sample content scenario, fixed path separator, and added payload reduction

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

EXENAME = 'MauiSampleContentiOSDefault'

if __name__ == "__main__":
versions_read_json_file_save_env(rf"./{PUBDIR}/versions.json")
Copy link

Copilot AI Feb 13, 2026

Choose a reason for hiding this comment

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

The file path should use os.path.join for cross-platform compatibility instead of an rf-string with forward slash. The file is also missing the import os statement. Other similar test files (mauiios/test.py, mauisamplecontentandroid/test.py) use os.path.join(".", PUBDIR, "versions.json").

Copilot uses AI. Check for mistakes.
Comment on lines +45 to +47
version_dict = get_sdk_versions(rf"./{const.APPDIR}/obj/Release/{precommands.framework}/ios-arm64/linked", False)
versions_write_json(version_dict, rf"{output_dir}/versions.json")
print(f"Versions: {version_dict} from location " + rf"./{const.APPDIR}/obj/Release/{precommands.framework}/ios-arm64/linked")
Copy link

Copilot AI Feb 13, 2026

Choose a reason for hiding this comment

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

The path hardcodes "Release" instead of using precommands.configuration like the comparable mauiios/pre.py file (line 42). This prevents the code from working correctly with different build configurations.

Suggested change
version_dict = get_sdk_versions(rf"./{const.APPDIR}/obj/Release/{precommands.framework}/ios-arm64/linked", False)
versions_write_json(version_dict, rf"{output_dir}/versions.json")
print(f"Versions: {version_dict} from location " + rf"./{const.APPDIR}/obj/Release/{precommands.framework}/ios-arm64/linked")
version_dict = get_sdk_versions(rf"./{const.APPDIR}/obj/{precommands.configuration}/{precommands.framework}/ios-arm64/linked", False)
versions_write_json(version_dict, rf"{output_dir}/versions.json")
print(f"Versions: {version_dict} from location " + rf"./{const.APPDIR}/obj/{precommands.configuration}/{precommands.framework}/ios-arm64/linked")

Copilot uses AI. Check for mistakes.
'''
pre-command
'''
import shutil
Copy link

Copilot AI Feb 13, 2026

Choose a reason for hiding this comment

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

Import of 'shutil' is not used.

Suggested change
import shutil

Copilot uses AI. Check for mistakes.
@matouskozak matouskozak changed the title Add MAUI --sample-content test app for iOS + reduce payload size Add MAUI --sample-content test app for iOS Feb 13, 2026
@LoopedBard3 LoopedBard3 merged commit f728a51 into dotnet:main Feb 13, 2026
76 of 80 checks passed
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