Skip to content

Migrate 5 iOS UI driver tests to Mac Simulators - #190679

Merged
auto-submit[bot] merged 9 commits into
flutter:masterfrom
okorohelijah:migrate_ios_driver_tests_batch_1
Aug 14, 2026
Merged

auto-submit[bot] merged 9 commits into
flutter:masterfrom
okorohelijah:migrate_ios_driver_tests_batch_1

Conversation

@okorohelijah

@okorohelijah okorohelijah commented Aug 6, 2026 •

Copy link
Copy Markdown
Contributor

PR for the first batch of migrating purely UI-based driver tests off physical iOS devices to Simulator VMs.

Part of #186414 - batch 1

@okorohelijah
okorohelijah marked this pull request as ready for review August 6, 2026 19:26

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Code Review

This pull request migrates several iOS integration UI driver tests to run on Mac simulators by wrapping the tasks in testWithNewIOSSimulator and passing a deviceIdOverride. Feedback highlights that the tags in .ci.yaml still contain "ios", which will incorrectly route tasks to physical devices, and that the target configuration for integration_ui_ios_screenshot is missing from .ci.yaml despite being updated in the Dart code.

Comment thread .ci.yaml Resolved
Comment thread .ci.yaml Resolved
@okorohelijah
okorohelijah requested a review from vashworth August 6, 2026 19:27
@okorohelijah
okorohelijah marked this pull request as draft August 6, 2026 19:37
@github-actions github-actions Bot added the a: text input Entering text in a text field or keyboard related problems label Aug 7, 2026
@okorohelijah
okorohelijah marked this pull request as ready for review August 7, 2026 04:04

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Code Review

This pull request migrates several iOS integration UI tests to run on a new iOS simulator using testWithNewIOSSimulator and updates the iOS Runner app delegate to support implicit Flutter engine initialization and scene manifests. However, the integration_ui_ios_screenshot task was migrated in the Dart code but its corresponding configuration in .ci.yaml was not updated to match the other migrated tasks.

@okorohelijah

okorohelijah commented Aug 7, 2026 •

Copy link
Copy Markdown
Contributor Author

@vashworth I created an issue to track the removal of integration_ui_ios_screenshot in #190697. I'll create a follow up pr for the fix so for now we can ignore it since it's a no op

@okorohelijah okorohelijah added the CICD Run CI/CD label Aug 7, 2026
@okorohelijah

okorohelijah commented Aug 11, 2026 •

Copy link
Copy Markdown
Contributor Author

This PR migrates the dev/integration_tests/ui driver tests from physical iOS devices to macOS Simulators (hostonly bots).

What these tests do:

This batch covers integration_ui_ios_driver, integration_ui_ios_frame_number, integration_ui_ios_keyboard_resize, integration_ui_ios_screenshot, and integration_ui_ios_textfield. These tests use flutter drive to exercise core Flutter framework capabilities such as text field input, virtual keyboard resizing behavior, hit testing, and basic frame reporting.

Why it is safe to migrate:

All of these are synthetic, framework-level UI interaction tests. They do not rely on physical hardware sensors (camera, GPS, microphone), Bluetooth, or specialized hardware performance profiling. Migrating them ensures we get the same test coverage while freeing up highly constrained physical iOS device capacity in LUCI for tests that actually require real hardware.

@vashworth

vashworth commented Aug 13, 2026 •

Copy link
Copy Markdown
Contributor

@vashworth I created an issue to track the removal of integration_ui_ios_screenshot in #190697. I'll create a follow up pr for the fix so for now we can ignore it since it's a no op

@okorohelijah Did you look into the git history on if this test was ever run in CI? And if so, why was it removed? Looks like Ben already removed the files, but should the test actually be removed or is it a mistake that we're not testing it? Should it be tested? Does it pass?

@okorohelijah

okorohelijah commented Aug 13, 2026 •

Copy link
Copy Markdown
Contributor Author

@vashworth yup I looked into the history and added the reason in the issue. The test (test_driver/screenshot_test.dart) was intentionally removed back by @christopherfujino in #115848 to drop the package:image dependency from flutter_tools. However, the devicelab task wrapper (integration_ui_ios_screenshot.dart) was left behind as a dead file.

Because the test hasn't existed for almost 2 years, it hasn't been runnable or tested since.

@okorohelijah
okorohelijah requested a review from vashworth August 13, 2026 21:15
@vashworth

Copy link
Copy Markdown
Contributor

@vashworth yup I looked into the history and added the reason in the issue. The test (test_driver/screenshot_test.dart) was intentionally removed back by @christopherfujino in #115848 to drop the package:image dependency from flutter_tools. However, the devicelab task wrapper (integration_ui_ios_screenshot.dart) was left behind as a dead file.

Because the test hasn't existed for almost 2 years, it hasn't been runnable or tested since.

Lol I can't read apparently

@okorohelijah okorohelijah added the autosubmit Merge PR when tree becomes green via auto submit App label Aug 14, 2026
@auto-submit
auto-submit Bot added this pull request to the merge queue Aug 14, 2026
Merged via the queue into flutter:master with commit b25d94d Aug 14, 2026
22 checks passed
@jmagman

jmagman commented Aug 18, 2026

Copy link
Copy Markdown
Member

@okorohelijah Don't forget to move them out of bringup once they are passing!

victorsanni pushed a commit to theprantadutta/flutter that referenced this pull request Aug 19, 2026
Remove bringup for
https://github.com/flutter/flutter/pull/190679/changes. It's passing
consistently on the dashboard

Fixes flutter#190679

*If you had to change anything in the [flutter/tests] repo, include a
link to the migration guide as per the [breaking change policy].*

## Pre-launch Checklist

- [x] I read the [Contributor Guide] and followed the process outlined
there for submitting PRs.
- [x] I read the [AI contribution guidelines] and understand my
responsibilities, or I am not using AI tools.
- [x] I read the [Tree Hygiene] wiki page, which explains my
responsibilities.
- [x] I read and followed the [Flutter Style Guide], including [Features
we expect every widget to implement].
- [x] I signed the [CLA].
- [x] I listed at least one issue that this PR fixes in the description
above.
- [ ] I updated/added relevant documentation (doc comments with `///`).
- [x] I added new tests to check the change I am making, or this PR is
[test-exempt].
- [ ] I followed the [breaking change policy] and added [Data Driven
Fixes] where supported.
- [x] All existing and new tests are passing.

If you need help, consider asking for advice on the #hackers-new channel
on [Discord].

If this change needs to override an active code freeze, provide a
comment explaining why. The code freeze workflow can be overridden by
code reviewers. See pinned issues for any active code freezes with
guidance.

**Note**: The Flutter team is currently trialing the use of [Gemini Code
Assist for
GitHub](https://developers.google.com/gemini-code-assist/docs/review-github-code).
Comments from the `gemini-code-assist` bot should not be taken as
authoritative feedback from the Flutter team. If you find its comments
useful you can update your code accordingly, but if you are unsure or
disagree with the feedback, please feel free to wait for a Flutter team
member's review for guidance on which automated comments should be
addressed.

<!-- Links -->
[Contributor Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview
[AI contribution guidelines]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#ai-contribution-guidelines
[Tree Hygiene]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md
[test-exempt]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests
[Flutter Style Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md
[Features we expect every widget to implement]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement
[CLA]: https://cla.developers.google.com/
[flutter/tests]: https://github.com/flutter/tests
[breaking change policy]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes
[Discord]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md
[Data Driven Fixes]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

a: text input Entering text in a text field or keyboard related problems CICD Run CI/CD

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants