Skip to content

iOS: Migrate TaskRunner tests to Swift Testing - #190055

Merged
cbracken merged 3 commits into
flutter:masterfrom
cbracken:swift-testing-2
Jul 28, 2026
Merged

iOS: Migrate TaskRunner tests to Swift Testing#190055
cbracken merged 3 commits into
flutter:masterfrom
cbracken:swift-testing-2

Conversation

@cbracken

@cbracken cbracken commented Jul 27, 2026

Copy link
Copy Markdown
Member

These tests use a TaskRunner on the test main thread, which posts to the current thread's fml::MessageLoop, backed by its CFRunLoop.

Under XCTest, waitForExpectations spins the run loop, which ensures the posted tasks run. Since Swift Testing has no direct equivalent this adds a runLoopUntil helper that runs RunLoop.current until the task completes or the timeout elapses, giving us the same behaviour.

No semantic changes; this just migrates to Swift Testing.

Pre-launch Checklist

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. 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.

@cbracken
cbracken requested a review from LongCatIsLooong July 27, 2026 06:11
@cbracken
cbracken requested a review from a team as a code owner July 27, 2026 06:11
@flutter-dashboard flutter-dashboard Bot added the CICD Run CI/CD label Jul 27, 2026
@github-actions github-actions Bot added platform-ios iOS applications specifically engine flutter/engine related. See also e: labels. team-ios Owned by iOS platform team labels Jul 27, 2026

@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 TaskRunnerTests from XCTest to the Swift Testing framework and introduces a helper function runLoopUntil to pump the current thread's run loop. Feedback suggests modifying the runLoopUntil function to prevent a potential tight spin loop and high CPU usage by adding a brief sleep when RunLoop.current.run returns false.

These tests use a TaskRunner on the test main thread, which posts to the
current thread's fml::MessageLoop, backed by its CFRunLoop.

Under XCTest, waitForExpectations spins the run loop, which ensures the
posted tasks run. Since Swift Testing has no direct equivalent this adds
a `runLoopUntil` helper that runs `RunLoop.current` until the task
completes or the timeout elapses, giving us the same behaviour.

No semantic changes; this just migrates to Swift Testing.
@cbracken
cbracken added this pull request to the merge queue Jul 28, 2026
Merged via the queue into flutter:master with commit 5aa364b Jul 28, 2026
17 checks passed
@cbracken
cbracken deleted the swift-testing-2 branch July 28, 2026 03:47
auto-submit Bot pushed a commit to flutter/packages that referenced this pull request Jul 28, 2026
flutter/flutter@9988960...0f02463

2026-07-28 [email protected] Roll Fuchsia Test Scripts from E8hJ1AfK8CtGtaES0... to 1frGe_KltAJKkeyPg... (flutter/flutter#190134)
2026-07-28 [email protected] iOS: Reject merged-platform-ui-thread=mergeAfterLaunch (flutter/flutter#190051)
2026-07-28 [email protected] iOS: Migrate TaskRunner tests to Swift Testing (flutter/flutter#190055)
2026-07-28 [email protected] Run Mac golden tests on ARM bots (flutter/flutter#189465)
2026-07-28 [email protected] iOS,macOS: Rename Swift test files to end in Tests.swift (flutter/flutter#190063)
2026-07-28 [email protected] Fix hcpp cliprect being behind by 1 frame when scrolling (flutter/flutter#189946)
2026-07-28 [email protected] Roll Fuchsia Linux SDK from vpboK5fPPIoFteqRq... to OZkZC_2CZ_G5rbMIS... (flutter/flutter#190115)
2026-07-27 [email protected] Add Ishaq Hassan to AUTHORS (flutter/flutter#190064)
2026-07-27 [email protected] [wimp] fixes ubo padding size issue (flutter/flutter#189958)
2026-07-27 [email protected] Roll pub packages (flutter/flutter#189872)
2026-07-27 [email protected] Move tool host_cross_arch tests into different shards (flutter/flutter#189470)
2026-07-27 49699333+dependabot[bot]@users.noreply.github.com Bump actions/labeler from 6.2.0 to 7.0.0 in the all-github-actions group (flutter/flutter#190099)
2026-07-27 [email protected] [ios]do not nuke user input path when running uiscene integration test (flutter/flutter#186436)
2026-07-27 [email protected] ci: verify_binaries_pre_codesigned part 2 (flutter/flutter#190078)
2026-07-27 [email protected] Roll Abseil to ff6e8ce3e932 (flutter/flutter#189998)
2026-07-27 [email protected] Android_hardware_smoke_test: clean up golden copy in CI (flutter/flutter#189948)

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-packages
Please CC [email protected] on the revert to ensure that a human
is aware of the problem.

To file a bug in Packages: https://github.com/flutter/flutter/issues/new/choose

To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CICD Run CI/CD engine flutter/engine related. See also e: labels. platform-ios iOS applications specifically team-ios Owned by iOS platform team

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants