-
Notifications
You must be signed in to change notification settings - Fork 29.7k
Refactor android_engine_test, make it easier to debug/deflake locally.
#161534
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Refactor android_engine_test, make it easier to debug/deflake locally.
#161534
Conversation
android_engine_test.android_engine_test, make it easier to debug/deflake locally.
|
Golden file changes have been found for this pull request. Click here to view and triage (e.g. because this is an intentional change). If you are still iterating on this change and are not ready to resolve the images on the Flutter Gold dashboard, consider marking this PR as a draft pull request above. You will still be able to view image results on the dashboard, commenting will be silenced, and the check will not try to resolve itself until marked ready for review. For more guidance, visit Writing a golden file test for Reviewers: Read the Tree Hygiene page and make sure this patch meets those guidelines before LGTMing. |
jonahwilliams
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
| $ flutter drive lib/platform_view_tap_color_change_main_test.dart | ||
| ``` | ||
|
|
||
| Files of significance: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Non blocking, I am not sure files of significance adds much.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done.
| await expectLater( | ||
| nativeDriver.screenshot(), | ||
| matchesGoldenFile('external_texture_smiley_face.android.png'), | ||
| matchesGoldenFile('external_texture_surface_producer_smiley_face.png'), |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
For my own education what controls the name of this file?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The literal string. That is, we could call this poop.png and it would work, so it's just a convention.
| test('should screenshot and match a blue -> orange gradient', () async { | ||
| await expectLater( | ||
| nativeDriver.screenshot(), | ||
| matchesGoldenFile('$goldenPrefix.blue_orange_gradient_portrait.png'), |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why do these tests need a golden prefix but the blue rectangle ones do not?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This file has multiple goldens, the other one does not.
| nativeDriver.screenshot(), | ||
| matchesGoldenFile('$goldenPrefix.blue_orange_gradient_portrait.png'), | ||
| ); | ||
| }, timeout: Timeout.none); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
For my own education why do these tests get no timeout?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It's a requirement of our infra (I don't agree with it):
Line 1238 in 818133b
| final int timeoutNoneCount = 'timeout: Timeout.none'.allMatches(contents).length; |
| } | ||
| } | ||
|
|
||
| final ArgParser _argParser = |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nonblocking nit: I would prefer this to be at the top of main. My inital read I didn't realize there were flags that could be passed and thought your documentation was future looking.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sounds reasonable. Done!
|
Golden file changes are available for triage from new commit, Click here to view. For more guidance, visit Writing a golden file test for Reviewers: Read the Tree Hygiene page and make sure this patch meets those guidelines before LGTMing. |
|
Golden file changes are available for triage from new commit, Click here to view. For more guidance, visit Writing a golden file test for Reviewers: Read the Tree Hygiene page and make sure this patch meets those guidelines before LGTMing. |
flutter/flutter@40c2b86...5517cc9 2025-01-15 [email protected] feat: Change default value of keyboardDismissBehavior (flutter/flutter#158580) 2025-01-15 [email protected] Roll pub packages (flutter/flutter#161680) 2025-01-15 [email protected] Revert "Autocomplete Options Width" (flutter/flutter#161666) 2025-01-15 [email protected] Update two_dimensional_scrollables triage routing (flutter/flutter#161667) 2025-01-15 [email protected] [DisplayList] Migrate from SkRSXform to Impeller RSTransform (flutter/flutter#161652) 2025-01-15 [email protected] Roll Packages from d1fd623 to f73cb00 (2 revisions) (flutter/flutter#161672) 2025-01-15 [email protected] Fix DropdownMenu isCollapsed decoration does not Reduce height (flutter/flutter#161427) 2025-01-15 [email protected] Manual roll of Skia to e7b8d078851f (flutter/flutter#161609) 2025-01-15 [email protected] Fix `TabBar` glitchy elastic `Tab` animation (flutter/flutter#161514) 2025-01-15 [email protected] Roll pub packages (flutter/flutter#161643) 2025-01-15 [email protected] Exclude the top-level `engine` directory from `generate_gradle_lockfiles`. (flutter/flutter#161635) 2025-01-15 [email protected] Roll pub packages (flutter/flutter#161632) 2025-01-15 [email protected] Refactor `android_engine_test`, make it easier to debug/deflake locally. (flutter/flutter#161534) 2025-01-15 [email protected] [Impeller] null check device buffer in image encoding. (flutter/flutter#161194) 2025-01-15 [email protected] Feature/twitter keyboard (flutter/flutter#161025) 2025-01-15 [email protected] Fixed XiaoMi statusBar Bug (flutter/flutter#161271) 2025-01-15 [email protected] Clean up engine's analysis_options.yaml (flutter/flutter#161554) 2025-01-14 [email protected] Remove `gradle_deprecated_settings` test app, and remove reference from lockfile exclusion yaml (flutter/flutter#161622) 2025-01-14 [email protected] [deps] remove no-longer-used repo deps (flutter/flutter#161605) 2025-01-14 [email protected] [DisplayList] remove obsolete use of Skia goemetry objects in DL utils (flutter/flutter#161553) 2025-01-14 [email protected] [Engine] Support asymmetrical rounded superellipses (flutter/flutter#161409) 2025-01-14 [email protected] [SwiftPM] Make 'flutter build ios-framework' generate an empty Package.swift (flutter/flutter#161464) 2025-01-14 [email protected] [canvaskit] Fix GIF decode failure (flutter/flutter#161536) 2025-01-14 [email protected] [Impeller] fixes for AHB swapchains. (flutter/flutter#161562) 2025-01-14 [email protected] Last Engine<>Framework lint sync (flutter/flutter#161560) 2025-01-14 [email protected] Check that localization files of stocks app are up-to-date (flutter/flutter#161608) 2025-01-14 [email protected] [Android] Actually remove dev dependencies from release builds (flutter/flutter#161343) 2025-01-14 [email protected] Update package revisions to latest (flutter/flutter#161525) 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
flutter/flutter@40c2b86...5517cc9 2025-01-15 [email protected] feat: Change default value of keyboardDismissBehavior (flutter/flutter#158580) 2025-01-15 [email protected] Roll pub packages (flutter/flutter#161680) 2025-01-15 [email protected] Revert "Autocomplete Options Width" (flutter/flutter#161666) 2025-01-15 [email protected] Update two_dimensional_scrollables triage routing (flutter/flutter#161667) 2025-01-15 [email protected] [DisplayList] Migrate from SkRSXform to Impeller RSTransform (flutter/flutter#161652) 2025-01-15 [email protected] Roll Packages from d1fd623 to f73cb00 (2 revisions) (flutter/flutter#161672) 2025-01-15 [email protected] Fix DropdownMenu isCollapsed decoration does not Reduce height (flutter/flutter#161427) 2025-01-15 [email protected] Manual roll of Skia to e7b8d078851f (flutter/flutter#161609) 2025-01-15 [email protected] Fix `TabBar` glitchy elastic `Tab` animation (flutter/flutter#161514) 2025-01-15 [email protected] Roll pub packages (flutter/flutter#161643) 2025-01-15 [email protected] Exclude the top-level `engine` directory from `generate_gradle_lockfiles`. (flutter/flutter#161635) 2025-01-15 [email protected] Roll pub packages (flutter/flutter#161632) 2025-01-15 [email protected] Refactor `android_engine_test`, make it easier to debug/deflake locally. (flutter/flutter#161534) 2025-01-15 [email protected] [Impeller] null check device buffer in image encoding. (flutter/flutter#161194) 2025-01-15 [email protected] Feature/twitter keyboard (flutter/flutter#161025) 2025-01-15 [email protected] Fixed XiaoMi statusBar Bug (flutter/flutter#161271) 2025-01-15 [email protected] Clean up engine's analysis_options.yaml (flutter/flutter#161554) 2025-01-14 [email protected] Remove `gradle_deprecated_settings` test app, and remove reference from lockfile exclusion yaml (flutter/flutter#161622) 2025-01-14 [email protected] [deps] remove no-longer-used repo deps (flutter/flutter#161605) 2025-01-14 [email protected] [DisplayList] remove obsolete use of Skia goemetry objects in DL utils (flutter/flutter#161553) 2025-01-14 [email protected] [Engine] Support asymmetrical rounded superellipses (flutter/flutter#161409) 2025-01-14 [email protected] [SwiftPM] Make 'flutter build ios-framework' generate an empty Package.swift (flutter/flutter#161464) 2025-01-14 [email protected] [canvaskit] Fix GIF decode failure (flutter/flutter#161536) 2025-01-14 [email protected] [Impeller] fixes for AHB swapchains. (flutter/flutter#161562) 2025-01-14 [email protected] Last Engine<>Framework lint sync (flutter/flutter#161560) 2025-01-14 [email protected] Check that localization files of stocks app are up-to-date (flutter/flutter#161608) 2025-01-14 [email protected] [Android] Actually remove dev dependencies from release builds (flutter/flutter#161343) 2025-01-14 [email protected] Update package revisions to latest (flutter/flutter#161525) 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
flutter/flutter@40c2b86...5517cc9 2025-01-15 [email protected] feat: Change default value of keyboardDismissBehavior (flutter/flutter#158580) 2025-01-15 [email protected] Roll pub packages (flutter/flutter#161680) 2025-01-15 [email protected] Revert "Autocomplete Options Width" (flutter/flutter#161666) 2025-01-15 [email protected] Update two_dimensional_scrollables triage routing (flutter/flutter#161667) 2025-01-15 [email protected] [DisplayList] Migrate from SkRSXform to Impeller RSTransform (flutter/flutter#161652) 2025-01-15 [email protected] Roll Packages from d1fd623 to f73cb00 (2 revisions) (flutter/flutter#161672) 2025-01-15 [email protected] Fix DropdownMenu isCollapsed decoration does not Reduce height (flutter/flutter#161427) 2025-01-15 [email protected] Manual roll of Skia to e7b8d078851f (flutter/flutter#161609) 2025-01-15 [email protected] Fix `TabBar` glitchy elastic `Tab` animation (flutter/flutter#161514) 2025-01-15 [email protected] Roll pub packages (flutter/flutter#161643) 2025-01-15 [email protected] Exclude the top-level `engine` directory from `generate_gradle_lockfiles`. (flutter/flutter#161635) 2025-01-15 [email protected] Roll pub packages (flutter/flutter#161632) 2025-01-15 [email protected] Refactor `android_engine_test`, make it easier to debug/deflake locally. (flutter/flutter#161534) 2025-01-15 [email protected] [Impeller] null check device buffer in image encoding. (flutter/flutter#161194) 2025-01-15 [email protected] Feature/twitter keyboard (flutter/flutter#161025) 2025-01-15 [email protected] Fixed XiaoMi statusBar Bug (flutter/flutter#161271) 2025-01-15 [email protected] Clean up engine's analysis_options.yaml (flutter/flutter#161554) 2025-01-14 [email protected] Remove `gradle_deprecated_settings` test app, and remove reference from lockfile exclusion yaml (flutter/flutter#161622) 2025-01-14 [email protected] [deps] remove no-longer-used repo deps (flutter/flutter#161605) 2025-01-14 [email protected] [DisplayList] remove obsolete use of Skia goemetry objects in DL utils (flutter/flutter#161553) 2025-01-14 [email protected] [Engine] Support asymmetrical rounded superellipses (flutter/flutter#161409) 2025-01-14 [email protected] [SwiftPM] Make 'flutter build ios-framework' generate an empty Package.swift (flutter/flutter#161464) 2025-01-14 [email protected] [canvaskit] Fix GIF decode failure (flutter/flutter#161536) 2025-01-14 [email protected] [Impeller] fixes for AHB swapchains. (flutter/flutter#161562) 2025-01-14 [email protected] Last Engine<>Framework lint sync (flutter/flutter#161560) 2025-01-14 [email protected] Check that localization files of stocks app are up-to-date (flutter/flutter#161608) 2025-01-14 [email protected] [Android] Actually remove dev dependencies from release builds (flutter/flutter#161343) 2025-01-14 [email protected] Update package revisions to latest (flutter/flutter#161525) 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
The goal here is to have a great standalone
android_engine_testsuite that replacesscenario_app/android.No test is functionally changed in this PR, but overview of changes:
android_engine_testsinstead offlutter_driver_androidUPDATE_GOLDENS=1)tool/deflake.dartto run a test suite 10x (or custom) times locally to try and determine flakinessAfter this PR, I'll add flags to let you control variants and name the screenshots accordingly, i.e.:
AndroidManifest.xmledit during the test instrumentation)