Skip to content

ci: retry flaky iOS tests and run Android emulator headless#257

Merged
HamdaanAliQuatil merged 5 commits intogoogle:masterfrom
harrshita123:fix/ci-redundant-test-runs
Apr 21, 2026
Merged

ci: retry flaky iOS tests and run Android emulator headless#257
HamdaanAliQuatil merged 5 commits intogoogle:masterfrom
harrshita123:fix/ci-redundant-test-runs

Conversation

@harrshita123
Copy link
Copy Markdown
Contributor

@harrshita123 harrshita123 commented Mar 8, 2026

Part of #255

iOS was failing due to the simulator debug connection timing out, so wrapped the test step with nick-fields/retry (2 attempts).

For Android added the headless emulator flags (-no-window -gpu swiftshader_indirect -no audio -no-boot-anim).

@harrshita123 harrshita123 force-pushed the fix/ci-redundant-test-runs branch 2 times, most recently from a64a8f2 to 71eb720 Compare March 10, 2026 16:08
Comment thread .github/workflows/test.yml
Comment thread .github/workflows/test.yml Outdated
Comment thread .github/workflows/test.yml Outdated
@harrshita123 harrshita123 force-pushed the fix/ci-redundant-test-runs branch from c418bdf to de61fd1 Compare April 20, 2026 19:31
@HamdaanAliQuatil
Copy link
Copy Markdown
Collaborator

@harrshita123 the new dart2wasm smoke job is the right direction. It is failing because two existing tests still expect the old dart2wasm error string, JavaScriptError.

In the current toolchain, Chrome/Dart2Wasm surfaces the browser DOMException name instead: QuotaExceededError for oversized buffers and TypeMismatchError for non-integer typed arrays. Could you update those two expectations to accept both forms?

@harrshita123
Copy link
Copy Markdown
Contributor Author

@harrshita123 the new dart2wasm smoke job is the right direction. It is failing because two existing tests still expect the old dart2wasm error string, JavaScriptError.

In the current toolchain, Chrome/Dart2Wasm surfaces the browser DOMException name instead: QuotaExceededError for oversized buffers and TypeMismatchError for non-integer typed arrays. Could you update those two expectations to accept both forms?

Updated this. I changed the two getRandomValues expectations so they accept both the older JavaScriptError form and the newer DOMException-name form surfaced by the current dart2wasm toolchain.

@HamdaanAliQuatil
Copy link
Copy Markdown
Collaborator

The remaining timeouts are now coming from the chromedriver flutter drive -d chrome integration step. On Linux, the test prints All tests passed! and then hangs during teardown. On Windows, DWDS fails to establish the Chrome debug connection and then hangs until the job timeout.

Could you remove the chromedriver flutter drive -d chrome steps from both the Linux and Windows desktop jobs? We still retain Chrome browser coverage through flutter test --platform chrome / flutter pub run test -p chrome, desktop integration coverage through flutter test integration_test/... -d linux/windows/macos, Firefox coverage, and the new Linux dart2wasm smoke job. So this removes the flaky duplicate WebDriver path rather than removing unique package coverage.

Copy link
Copy Markdown
Collaborator

@HamdaanAliQuatil HamdaanAliQuatil left a comment

Choose a reason for hiding this comment

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

lgtm. all tests pass. thanks!

we should add a longer per-test timeout to the native macOS integration step, probably matching Android.

@HamdaanAliQuatil HamdaanAliQuatil merged commit f275ab0 into google:master Apr 21, 2026
36 of 38 checks passed
@harrshita123
Copy link
Copy Markdown
Contributor Author

lgtm. all tests pass. thanks!

we should add a longer per-test timeout to the native macOS integration step, probably matching Android.

lgtm. all tests pass. thanks!

we should add a longer per-test timeout to the native macOS integration step, probably matching Android.

I’ll update that and add a longer timeout for the native macOS integration step as well.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants