Add MAUI --sample-content test app for iOS#5117
Conversation
There was a problem hiding this comment.
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") |
There was a problem hiding this comment.
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").
| 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") |
There was a problem hiding this comment.
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.
| 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") |
| ''' | ||
| pre-command | ||
| ''' | ||
| import shutil |
There was a problem hiding this comment.
Import of 'shutil' is not used.
| import shutil |
Testing run: https://dev.azure.com/dnceng/internal/_build/results?buildId=2903332&view=results