-
Notifications
You must be signed in to change notification settings - Fork 3.3k
[ci] Run web tests in wasm (unit + integration). #8111
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
Conversation
8a28941
to
d6bdc4f
Compare
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.
Changes are required, do not merge as is.
// Give the browser some time to perform DOM operations (for Wasm code) | ||
await tester.pump(const Duration(milliseconds: 500)); |
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.
Talk to @eyebrowsoffire about this new delay.
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.
We discussed this, the skwasm renderer is now async, so it makes sense that there's some timing differences compared to the JS one. Needing this additional delay is probably caused by the tester
not being aware of this asynchronicity, and declaring a frame "pumped" before it's really been fully rendered.
packages/url_launcher/url_launcher_web/example/integration_test/link_widget_test.dart
Show resolved
Hide resolved
packages/video_player/video_player/example/integration_test/video_player_test.dart
Outdated
Show resolved
Hide resolved
…ion to test CI before it propagates.
… wasm in all_apps
… different entrypoint each time; I'm not sure prebuilding helps with anything other than pre-fetching deps (?)
420958b
to
598ed80
Compare
The only change to |
if (focalX != null) { | ||
if (focalX != null && focalY != null) { |
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.
See: dart-lang/sdk#59840
My rule of thumb for expensive tests is to ask: is someone likely to make a change that only breaks on the combination of stable and the new config? Or can we get almost as much confidence that if some PR passes some configuration on stable, and also passes both configurations on master, that it'll be fine on the other configuration on stable? If we don't have that confidence, then we can add (ideally post-submit-only) |
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
@stuartmorgan I agree, let's go with just Anyway, it's easy enough to add the |
Adding label to skip version change in packages/animations. The only change is in the .gitignore file (see message above) |
One last update to give flakes a chance to reconsider their failing stance :P |
flutter/packages@3fc6b7a...6554751 2025-01-09 stanleycocoa@gmail.com [webview_flutter_wkwebview] Add a listener for the canGoBack property change on the iOS platform. (flutter/packages#8203) 2025-01-09 39571861+memishood@users.noreply.github.com [flutter_svg] Implement errorBuilder callback (flutter/packages#8364) 2025-01-08 10687576+bparrishMines@users.noreply.github.com [interactive_media_ads] Adds remaining methods for internal wrapper of the iOS native `IMAAdDisplayContainer`. (flutter/packages#8153) 2025-01-08 jhy03261997@gmail.com [go_router_builder] Add a fallback for a not null List or Set param (flutter/packages#8349) 2025-01-08 engine-flutter-autoroll@skia.org Manual roll Flutter (stable) from 8495dee to 17025dd (2 revisions) (flutter/packages#8396) 2025-01-08 10687576+bparrishMines@users.noreply.github.com [ci][video_player_android][camera_android_camerax] Manual roll and fix tests (flutter/packages#8391) 2025-01-07 ditman@gmail.com [ci] Run web tests in wasm (unit + integration). (flutter/packages#8111) 2025-01-07 liff@iki.fi [camera_platform_interface] Add API support query for image streaming (flutter/packages#8307) 2025-01-07 10687576+bparrishMines@users.noreply.github.com [camera_android_camerax][video_player_android] Suppresses deprecation of the `SurfaceProducer.Callback.onSurfaceDestroyed` method (flutter/packages#8388) 2025-01-07 jessiewong401@gmail.com Bump Remaining Plugin Example Apps to targetSdkVersion >= 34 and compileSdkVersion >= 34 (flutter/packages#8361) 2025-01-07 matanlurey@users.noreply.github.com Replace `onSurfaceCreated` with `onSurfaceAvailable`. (flutter/packages#8384) 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-flutter-autoroll Please CC flutter-ecosystem@google.com on the revert to ensure that a human is aware of the problem. To file a bug in Flutter: 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
This PR moves the new Wasm shards out of bringup, so they become part of the normal testing flow. Here's some information about the last ~90 builds in the staging builder: * Unit tests, master channel * [Shard 1](https://ci.chromium.org/ui/p/flutter/builders/staging/Linux_web%20web_dart_unit_test_wasm_shard_1%20master?limit=200) * [Shard 2](https://ci.chromium.org/ui/p/flutter/builders/staging/Linux_web%20web_dart_unit_test_wasm_shard_2%20master?limit=200) * Integration tests, master channel * [Shard 1](https://ci.chromium.org/ui/p/flutter/builders/staging/Linux_web%20web_platform_tests_wasm_shard_1%20master?limit=200) * [Shard 2](https://ci.chromium.org/ui/p/flutter/builders/staging/Linux_web%20web_platform_tests_wasm_shard_2%20master?limit=200) * [Shard 3](https://ci.chromium.org/ui/p/flutter/builders/staging/Linux_web%20web_platform_tests_wasm_shard_3%20master?limit=200) ## Issues * Continuation of #8111 * Completes flutter/flutter#151664 * Closes flutter/flutter#127730
Adds CI configuration to run web integration tests (in the master channel) compiled to Wasm. It also removes the `build-examples` step from web integration tests, in some isolated testing: | platform tests shard | With build-examples | Without build-examples | |---|-----|-----| | 1 | 30m | 21m | | 2 | 13m | 11m | | 3 | 17m | 10m | ## Issues * Fixes flutter/flutter#151664
This PR moves the new Wasm shards out of bringup, so they become part of the normal testing flow. Here's some information about the last ~90 builds in the staging builder: * Unit tests, master channel * [Shard 1](https://ci.chromium.org/ui/p/flutter/builders/staging/Linux_web%20web_dart_unit_test_wasm_shard_1%20master?limit=200) * [Shard 2](https://ci.chromium.org/ui/p/flutter/builders/staging/Linux_web%20web_dart_unit_test_wasm_shard_2%20master?limit=200) * Integration tests, master channel * [Shard 1](https://ci.chromium.org/ui/p/flutter/builders/staging/Linux_web%20web_platform_tests_wasm_shard_1%20master?limit=200) * [Shard 2](https://ci.chromium.org/ui/p/flutter/builders/staging/Linux_web%20web_platform_tests_wasm_shard_2%20master?limit=200) * [Shard 3](https://ci.chromium.org/ui/p/flutter/builders/staging/Linux_web%20web_platform_tests_wasm_shard_3%20master?limit=200) ## Issues * Continuation of flutter#8111 * Completes flutter/flutter#151664 * Closes flutter/flutter#127730
Adds CI configuration to run web integration tests (in the master channel) compiled to Wasm. It also removes the `build-examples` step from web integration tests, in some isolated testing: | platform tests shard | With build-examples | Without build-examples | |---|-----|-----| | 1 | 30m | 21m | | 2 | 13m | 11m | | 3 | 17m | 10m | ## Issues * Fixes flutter/flutter#151664
This PR moves the new Wasm shards out of bringup, so they become part of the normal testing flow. Here's some information about the last ~90 builds in the staging builder: * Unit tests, master channel * [Shard 1](https://ci.chromium.org/ui/p/flutter/builders/staging/Linux_web%20web_dart_unit_test_wasm_shard_1%20master?limit=200) * [Shard 2](https://ci.chromium.org/ui/p/flutter/builders/staging/Linux_web%20web_dart_unit_test_wasm_shard_2%20master?limit=200) * Integration tests, master channel * [Shard 1](https://ci.chromium.org/ui/p/flutter/builders/staging/Linux_web%20web_platform_tests_wasm_shard_1%20master?limit=200) * [Shard 2](https://ci.chromium.org/ui/p/flutter/builders/staging/Linux_web%20web_platform_tests_wasm_shard_2%20master?limit=200) * [Shard 3](https://ci.chromium.org/ui/p/flutter/builders/staging/Linux_web%20web_platform_tests_wasm_shard_3%20master?limit=200) ## Issues * Continuation of flutter#8111 * Completes flutter/flutter#151664 * Closes flutter/flutter#127730
Adds CI configuration to run web integration tests (in the master channel) compiled to Wasm.
It also removes the
build-examples
step from web integration tests, in some isolated testing:Issues
Pre-launch Checklist
dart format
.)[shared_preferences]
pubspec.yaml
with an appropriate new version according to the pub versioning philosophy, or this PR is exempt from version changes.CHANGELOG.md
to add a description of the change, following repository CHANGELOG style, or this PR is exempt from CHANGELOG changes.///
).If you need help, consider asking for advice on the #hackers-new channel on Discord.