Migrate flavors_test_ios to Simulators and add UIScene support - #189442
Conversation
There was a problem hiding this comment.
Code Review
This pull request updates several iOS device lab targets in .ci.yaml to run on arm64 hosts, and refactors flavors_test_ios.dart and related integration test utilities to run on a newly created iOS simulator using a provided device ID. It also adds scene manifest configurations to the iOS plist files. A review comment points out that the manual simulator cleanup in flavors_test_ios.dart is redundant and will cause failures because testWithNewIOSSimulator already manages the simulator lifecycle.
There was a problem hiding this comment.
Code Review
This pull request updates several iOS devicelab tasks to run on a simulator instead of a physical device, introducing a deviceIdOverride parameter to target specific simulator instances, and configures UIApplicationSceneManifest in the plist files. Feedback highlights two issues: first, wrapping testWithNewIOSSimulator in an outer try-finally block to delete the simulator is redundant and will cause errors; second, when deviceIdOverride is provided, selectedDevice remains null, which will break the withTalkBack check.
|
This is a prototype PR to propose and discuss the architectural strategy for moving iOS UI/Functional tests off physical lab devices and onto Mac VM simulators (resolving #186414) before applying the pattern broadly. The Approach: Why keep them in Devicelab instead of rewriting them?
Trade-offs:
|
|
Here is the comprehensive list of Devicelab targets I plan to migrate using this strategy. Compile-Only TasksThese tasks only verify that an iOS project can successfully build (running
Functional / UI TestsThese tasks verify UI layout, platform channels, and debugging workflows. While they do require launching an app, they do not measure raw device performance (unlike our benchmarking tasks, which must remain on physical hardware to prevent skewed metrics). We will migrate these by injecting the
|
vashworth
left a comment
There was a problem hiding this comment.
LGTM after one request
Can you move this comment to the tracking issue? |
| task_name: route_test_ios | ||
|
|
||
| - name: Mac_ios flavors_test_ios | ||
| - name: Mac_arm64 flavors_test_ios |
There was a problem hiding this comment.
| - name: Mac_arm64 flavors_test_ios | |
| - name: Mac flavors_test_ios |
I don't think there's a reason this needs to run exclusively on arm
There was a problem hiding this comment.
not wrong, I had added it because we are deprecating intel(not that it affects per se) and also intel is slower
|
autosubmit label was removed for flutter/flutter/189442, because - The status or check suite Dashboard Checks has failed. Please fix the issues identified (or deflake) before re-applying this label. |
Part of #186414. This PR introduces the
testWithNewIOSSimulatorhelper pattern to execute theflavors_test_ioson macOS VMs rather than physical lab devices. This also migrates the old flavors test app to adopt the UIScene lifecycle usingFlutterSceneDelegate.