Skip to content

Add await mechanism to setClipboard in android_semantics_integration test#185428

Merged
auto-submit[bot] merged 3 commits into
flutter:masterfrom
chunhtai:issues/184755
Apr 22, 2026
Merged

Add await mechanism to setClipboard in android_semantics_integration test#185428
auto-submit[bot] merged 3 commits into
flutter:masterfrom
chunhtai:issues/184755

Conversation

@chunhtai

@chunhtai chunhtai commented Apr 22, 2026

Copy link
Copy Markdown
Contributor

fixes #184755

The failure suggest there may be race condition when setClipboard async update the OS while TextField receive canPaste signal. Adding an await mechanism to see if that eliminate the race condition.

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.

@chunhtai chunhtai added the CICD Run CI/CD label Apr 22, 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 introduces an expectWithRetry helper function to handle asynchronous accessibility updates in Android integration tests by polling expectations. Feedback suggests using triple-slash documentation comments to align with the Flutter style guide and refactoring the retry logic to use rethrow for better stack trace preservation and code simplicity.

Comment thread dev/integration_tests/android_semantics_testing/integration_test/main_test.dart Outdated
Comment thread dev/integration_tests/android_semantics_testing/integration_test/main_test.dart Outdated
} on TestFailure catch (e) {
lastException = e;
}
await tester.pump(const Duration(milliseconds: 100));

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Does this mean the app has 1 second to update the accessibility tree and clipboard? Is this long enough to avoid flakiness?

Per the style guide, maybe we should make this wait forever but display a message after 1 second if things are taking an unexpectedly long time?

See: https://github.com/flutter/flutter/blob/master/docs/contributing/Style-guide-for-Flutter-repo.md#never-check-if-a-port-is-available-before-using-it-never-add-timeouts-and-other-race-conditions

loic-sharma
loic-sharma previously approved these changes Apr 22, 2026

@loic-sharma loic-sharma left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Approving as this change will reduce the flakiness of an already flaky test. However, I believe this change does not follow our style guide's recommendations: #185428 (comment)

@chunhtai chunhtai changed the title Add retry mechanism to android_semantics_integration test Add await mechanism to setClipboard in android_semantics_integration test Apr 22, 2026
@chunhtai chunhtai added the CICD Run CI/CD label Apr 22, 2026

@loic-sharma loic-sharma left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

LGTM!

@chunhtai chunhtai added the autosubmit Merge PR when tree becomes green via auto submit App label Apr 22, 2026
@auto-submit
auto-submit Bot added this pull request to the merge queue Apr 22, 2026
Merged via the queue into flutter:master with commit 2000a5a Apr 22, 2026
169 checks passed
@flutter-dashboard flutter-dashboard Bot removed the autosubmit Merge PR when tree becomes green via auto submit App label Apr 22, 2026
auto-submit Bot pushed a commit to flutter/packages that referenced this pull request Apr 24, 2026
Roll Flutter from 5e4f16931847 to aeb96234de86 (42 revisions)

flutter/flutter@5e4f169...aeb9623

2026-04-24 [email protected] Fix leak on error case (flutter/flutter#185516)
2026-04-24 [email protected] Roll Skia from 04c6c369cfd0 to 1c9b0b9141e9 (2 revisions) (flutter/flutter#185529)
2026-04-24 [email protected] Roll Dart SDK from f386b11262f6 to c26627715892 (1 revision) (flutter/flutter#185526)
2026-04-24 [email protected] Roll Skia from 290a056fcd0e to 04c6c369cfd0 (2 revisions) (flutter/flutter#185525)
2026-04-24 [email protected] [ios] Extract SplashScreenManager from FlutterViewController (flutter/flutter#185405)
2026-04-24 [email protected] Roll Fuchsia Linux SDK from j3UCWZhWx7zSl9Asy... to 9fPnyEo9PaNdXtasl... (flutter/flutter#185523)
2026-04-24 [email protected] Roll Skia from 4c8bedd3c932 to 290a056fcd0e (1 revision) (flutter/flutter#185518)
2026-04-24 [email protected] Roll Dart SDK from 70665fc3fd2e to f386b11262f6 (2 revisions) (flutter/flutter#185512)
2026-04-24 [email protected] Handle hairline strokes in UberSDF (flutter/flutter#184895)
2026-04-24 [email protected] Roll Skia from ea20c73ac72c to 4c8bedd3c932 (3 revisions) (flutter/flutter#185509)
2026-04-24 [email protected] Use relative path for reloadedSourcesUri and reloaded modules (flutter/flutter#184598)
2026-04-24 98614782+auto-submit[bot]@users.noreply.github.com Reverts "Run all flutter/flutter macOS tests using Xcode 26 and iOS 26 simulator (#185431)" (flutter/flutter#185513)
2026-04-24 [email protected] Roll Skia from e8d00d634c22 to ea20c73ac72c (8 revisions) (flutter/flutter#185500)
2026-04-23 [email protected] Run all flutter/flutter macOS tests using Xcode 26 and iOS 26 simulator (flutter/flutter#185431)
2026-04-23 [email protected] update team-text-input pr triage link to filter out "waiting for response" label (flutter/flutter#185499)
2026-04-23 [email protected] Check for overflow when computing the pixel buffer size for an animated PNG frame (flutter/flutter#185442)
2026-04-23 [email protected] Impeller: Recreate Vulkan transients on surface size change (flutter/flutter#185122)
2026-04-23 [email protected] Updating the windowing API for sized to content regular and dialog windows + removing the decorated flag (flutter/flutter#184977)
2026-04-23 [email protected] Roll Dart SDK from 634991935e9a to 70665fc3fd2e (2 revisions) (flutter/flutter#185488)
2026-04-23 [email protected] Updating ios triage link (flutter/flutter#185437)
2026-04-23 [email protected] Revert "Preprovision Android NDK for flavored builds and reuse matchi… (flutter/flutter#185439)
2026-04-23 [email protected] fix(web): Fix LateInitializationError in CkSurface and SkwasmSurface (flutter/flutter#185116)
2026-04-23 [email protected] [web] Implement stepped image downscaling for CanvasKit and Skwasm (flutter/flutter#184741)
2026-04-23 [email protected] Made wide_gamut_macos only run on arm64 machines (flutter/flutter#185486)
2026-04-23 [email protected] [ios] Update documentation for FlutterAppDelegate.pluginRegistrant (flutter/flutter#185201)
2026-04-23 [email protected] Roll Dart SDK from bdf48933f3cf to 634991935e9a (1 revision) (flutter/flutter#185462)
2026-04-23 [email protected] Roll Skia from 5fe6162546b1 to e8d00d634c22 (3 revisions) (flutter/flutter#185459)
2026-04-23 [email protected] Roll Skia from 0049c5d91b08 to 5fe6162546b1 (1 revision) (flutter/flutter#185455)
2026-04-23 [email protected] Roll Dart SDK from 9648f446f131 to bdf48933f3cf (19 revisions) (flutter/flutter#185451)
2026-04-23 [email protected] Roll Skia from 11640d1cbc5c to 0049c5d91b08 (11 revisions) (flutter/flutter#185453)
2026-04-23 [email protected] Add disposal guidance to CurvedAnimation and CurveTween docs (flutter/flutter#184569)
2026-04-23 [email protected] Add `clipBehavior` parameter to `AnimatedCrossFade` (flutter/flutter#184545)
2026-04-23 [email protected] [fuchsia] Ask for only VMEX, not ambient-replace-as-executable. (flutter/flutter#185099)
2026-04-23 [email protected] Unify SemanticUpdateBuilder API for web and non-web (flutter/flutter#185433)
2026-04-22 [email protected] Fix ImageInfo.isCloneOf tests by moving async work to setUp (flutter/flutter#185254)
2026-04-22 [email protected] Roll Fuchsia Linux SDK from UdpQnaP5eSaDZd3-i... to j3UCWZhWx7zSl9Asy... (flutter/flutter#185438)
2026-04-22 [email protected] Adds script to run malioc locally (flutter/flutter#185371)
2026-04-22 [email protected] Add await mechanism to setClipboard in android_semantics_integration test (flutter/flutter#185428)
2026-04-22 [email protected] Add ability to pass flags to `et run` (flutter/flutter#185109)
2026-04-22 [email protected] Add more guidelines for code review bot (flutter/flutter#185367)
2026-04-22 [email protected] Roll pub packages (flutter/flutter#185274)
2026-04-22 [email protected] Fix incorrect scale parameter reference in Image constructor docs (flutter/flutter#185403)

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
...
creatorpiyush pushed a commit to creatorpiyush/packages that referenced this pull request Jun 10, 2026
…r#11576)

Roll Flutter from 5e4f16931847 to aeb96234de86 (42 revisions)

flutter/flutter@5e4f169...aeb9623

2026-04-24 [email protected] Fix leak on error case (flutter/flutter#185516)
2026-04-24 [email protected] Roll Skia from 04c6c369cfd0 to 1c9b0b9141e9 (2 revisions) (flutter/flutter#185529)
2026-04-24 [email protected] Roll Dart SDK from f386b11262f6 to c26627715892 (1 revision) (flutter/flutter#185526)
2026-04-24 [email protected] Roll Skia from 290a056fcd0e to 04c6c369cfd0 (2 revisions) (flutter/flutter#185525)
2026-04-24 [email protected] [ios] Extract SplashScreenManager from FlutterViewController (flutter/flutter#185405)
2026-04-24 [email protected] Roll Fuchsia Linux SDK from j3UCWZhWx7zSl9Asy... to 9fPnyEo9PaNdXtasl... (flutter/flutter#185523)
2026-04-24 [email protected] Roll Skia from 4c8bedd3c932 to 290a056fcd0e (1 revision) (flutter/flutter#185518)
2026-04-24 [email protected] Roll Dart SDK from 70665fc3fd2e to f386b11262f6 (2 revisions) (flutter/flutter#185512)
2026-04-24 [email protected] Handle hairline strokes in UberSDF (flutter/flutter#184895)
2026-04-24 [email protected] Roll Skia from ea20c73ac72c to 4c8bedd3c932 (3 revisions) (flutter/flutter#185509)
2026-04-24 [email protected] Use relative path for reloadedSourcesUri and reloaded modules (flutter/flutter#184598)
2026-04-24 98614782+auto-submit[bot]@users.noreply.github.com Reverts "Run all flutter/flutter macOS tests using Xcode 26 and iOS 26 simulator (#185431)" (flutter/flutter#185513)
2026-04-24 [email protected] Roll Skia from e8d00d634c22 to ea20c73ac72c (8 revisions) (flutter/flutter#185500)
2026-04-23 [email protected] Run all flutter/flutter macOS tests using Xcode 26 and iOS 26 simulator (flutter/flutter#185431)
2026-04-23 [email protected] update team-text-input pr triage link to filter out "waiting for response" label (flutter/flutter#185499)
2026-04-23 [email protected] Check for overflow when computing the pixel buffer size for an animated PNG frame (flutter/flutter#185442)
2026-04-23 [email protected] Impeller: Recreate Vulkan transients on surface size change (flutter/flutter#185122)
2026-04-23 [email protected] Updating the windowing API for sized to content regular and dialog windows + removing the decorated flag (flutter/flutter#184977)
2026-04-23 [email protected] Roll Dart SDK from 634991935e9a to 70665fc3fd2e (2 revisions) (flutter/flutter#185488)
2026-04-23 [email protected] Updating ios triage link (flutter/flutter#185437)
2026-04-23 [email protected] Revert "Preprovision Android NDK for flavored builds and reuse matchi… (flutter/flutter#185439)
2026-04-23 [email protected] fix(web): Fix LateInitializationError in CkSurface and SkwasmSurface (flutter/flutter#185116)
2026-04-23 [email protected] [web] Implement stepped image downscaling for CanvasKit and Skwasm (flutter/flutter#184741)
2026-04-23 [email protected] Made wide_gamut_macos only run on arm64 machines (flutter/flutter#185486)
2026-04-23 [email protected] [ios] Update documentation for FlutterAppDelegate.pluginRegistrant (flutter/flutter#185201)
2026-04-23 [email protected] Roll Dart SDK from bdf48933f3cf to 634991935e9a (1 revision) (flutter/flutter#185462)
2026-04-23 [email protected] Roll Skia from 5fe6162546b1 to e8d00d634c22 (3 revisions) (flutter/flutter#185459)
2026-04-23 [email protected] Roll Skia from 0049c5d91b08 to 5fe6162546b1 (1 revision) (flutter/flutter#185455)
2026-04-23 [email protected] Roll Dart SDK from 9648f446f131 to bdf48933f3cf (19 revisions) (flutter/flutter#185451)
2026-04-23 [email protected] Roll Skia from 11640d1cbc5c to 0049c5d91b08 (11 revisions) (flutter/flutter#185453)
2026-04-23 [email protected] Add disposal guidance to CurvedAnimation and CurveTween docs (flutter/flutter#184569)
2026-04-23 [email protected] Add `clipBehavior` parameter to `AnimatedCrossFade` (flutter/flutter#184545)
2026-04-23 [email protected] [fuchsia] Ask for only VMEX, not ambient-replace-as-executable. (flutter/flutter#185099)
2026-04-23 [email protected] Unify SemanticUpdateBuilder API for web and non-web (flutter/flutter#185433)
2026-04-22 [email protected] Fix ImageInfo.isCloneOf tests by moving async work to setUp (flutter/flutter#185254)
2026-04-22 [email protected] Roll Fuchsia Linux SDK from UdpQnaP5eSaDZd3-i... to j3UCWZhWx7zSl9Asy... (flutter/flutter#185438)
2026-04-22 [email protected] Adds script to run malioc locally (flutter/flutter#185371)
2026-04-22 [email protected] Add await mechanism to setClipboard in android_semantics_integration test (flutter/flutter#185428)
2026-04-22 [email protected] Add ability to pass flags to `et run` (flutter/flutter#185109)
2026-04-22 [email protected] Add more guidelines for code review bot (flutter/flutter#185367)
2026-04-22 [email protected] Roll pub packages (flutter/flutter#185274)
2026-04-22 [email protected] Fix incorrect scale parameter reference in Image constructor docs (flutter/flutter#185403)

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
...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CICD Run CI/CD

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Linux_pixel_7pro android_semantics_integration_test is 96.23% flaky

2 participants