gaaclarke
b8060622bf
[Impeller] implements blur styles inner and outer ( flutter/engine#51018 )
...
issue: https://github.com/flutter/flutter/issues/134178
This doesn't yet do textures since there is a bug in rendering mask blurs with textures.
[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-03-04 18:24:12 +00:00
Liam Appelbe
27ca389132
Experimental platform isolates API ( flutter/engine#48551 )
...
This is a prototype of the [PlatformIsolate
API](https://github.com/flutter/flutter/issues/136314 ).
**UPDATE (Jan 25):** The PR is ready for review. PTAL.
The `PlatformIsolate` creation flow is:
1. `PlatformIsolate.spawn` running on parent isolate
(platform_isolate.dart)
a. Create `isolateReadyPort`
b. `PlatformIsolateNativeApi::Spawn` (platform_isolate.cc)
c. `DartIsolate::CreatePlatformIsolate` (dart_isolate.cc)
d. Isolate created. Entry point invocation task dispatched to platform
thread
e. `PlatformIsolate.spawn` returns a `Future<Isolate>`
2. On the platform thread, `_platformIsolateMain` is invoked in the
platform isolate
a. Create `entryPointPort`
b. Send `Isolate.current` metadata and `entryPointPort` back to the
parent isolate via `isolateReadyPort`
3. Back in the parent isolate, `isolateReadyPort.handler` is invoked
a. Send the user's `entryPoint` and `message` to the platform isolate
via `entryPointPort`
b. Use received isolate metadata to create a new `Isolate` representing
the platform isolate and complete the `Future<Isolate>`
4. In the platform isolate, `entryPointPort.handler` is invoked
a. Run the user's `entryPoint(message)`
The engine shutdown flow is handled by `PlatformIsolateManager`, which
maintains a set of running platform isolates.
2024-03-04 16:47:41 +13:00
Matan Lurey
7b7d9a2f43
Add a basic e2e-test for skia_gold_client. ( flutter/engine#51078 )
...
Basically, I take blank images of red/blue/green squares, like this:

... and use Image Magick to annotate it with the current git hash:
```sh
$ drt ./testing/skia_gold_client/tool/generate.dart
Writing annotation "8069cb4ca1" on images in testing/skia_gold_client/tool/source_images and saving them in testing/skia_gold_client/tool/e2e_fixtures.
Writing to testing/skia_gold_client/tool/e2e_fixtures/solid_red_square.png
Writing to testing/skia_gold_client/tool/e2e_fixtures/solid_green_square.png
Writing to testing/skia_gold_client/tool/e2e_fixtures/solid_blue_square.png
Done: wrote 3 image.
```

... then, I upload the digests very similar to how we do it in `scenario_app`.
---
The idea here is to have a way for me to know if Skia gold is working the way I/we expect, independent of a more complicated test suite with various race-y or flake-y conditions. We could also augment it with tests of "dimensions" properties.
2024-03-01 01:33:07 +00:00
John McCutchan
0be7a9c4f0
Add et run command ( flutter/engine#51037 )
...
The `run` command builds both the host and target engines and then invokes `flutter run` so that it runs the app using the custom engine builds.
It is expected that 'et run' be used inside the directory of a flutter application.
Command line flags passed after `--` will be forwarded to `flutter run`.
Some examples:
- `et run` Build the debug variant and runs the app in that mode.
- `et run -- --profile` Build the profile variant and runs the app in that mode.
- `et run -- --release` Build the release variant and runs the app in that mode.
Also:
- Start a local_engine.json builder definition (it is missing a lot)
- Tweak the test fixture.
- Add a new Matcher to litetest.
- Tweaked the build config linter to only care about duplicate build names within the same builder.
2024-03-01 01:09:04 +00:00
Dan Field
2e9e6107eb
Reapply "Bump everything to Android 21" ( #51056 ) ( flutter/engine#51070 )
...
This reverts commit 98485b3f82fec45a6a0ac932c3c20285a9a14e02.
Reverted in https://github.com/flutter/engine/pull/51056 because it
caused failures in the framework. No changes, but framework test has
been updated to use an actual robolectric implementation to avoid those
failures.
This should not land until
https://github.com/flutter/flutter/pull/144348 has landed in the
framework.
@gaaclarke @johnmccutchan fyi
2024-02-29 09:00:01 -08:00
Matan Lurey
b2b8311980
The adb logcat filtering will continue until morale improves. ( flutter/engine#51069 )
...
Closes https://github.com/flutter/flutter/issues/144346 .
2024-02-28 19:10:17 -08:00
Matan Lurey
bc4d5caa20
Test the SurfaceTextureSurfaceProducer-branch in the Android scenario_app ( flutter/engine#51061 )
...
This PR does the following:
- Relands https://github.com/flutter/engine/pull/50993 .
- Fixes a bug in `SurfaceTextureSurfaceProducer` where it would crash on
release (now tested, yay!)
Closes https://github.com/flutter/flutter/issues/143539 .
Closes https://github.com/flutter/flutter/issues/143483 .
/cc @gaaclarke @chinmaygarde, this PR should (after landed) test/verify
https://github.com/flutter/engine/pull/50730 .
2024-02-28 14:17:21 -08:00
Jim Graham
98c96670b4
Make Skia object ostream operators work with unit tests ( flutter/engine#51041 )
...
Unit tests currently output basic hex dumps of skia objects even though we have ostream operators for many of the common ones. It looks like the operators were created in the wrong namespace (flutter/testing rather than the std namespace). Changing the namespace for the associated `assertions_skia` source files makes them compatible with unit tests that deal with these objects provided that the test files include that header and gn dependency, as verified with the `display_list_unittests` here.
2024-02-28 20:32:07 +00:00
Dan Field
98485b3f82
Revert "Bump everything to Android 21" ( flutter/engine#51056 )
...
Reverts flutter/engine#51032
Probably causing some of the failures in https://github.com/flutter/flutter/pull/144326
@johnmccutchan fyi
2024-02-28 19:15:04 +00:00
Zachary Anderson
65ada342b1
When run_tests.py is in --quiet mode, write verbose logs to a file ( flutter/engine#51029 )
...
This PR causes `run_test.py` to write `info` and higher logs to
`out/run_tests.log` even when `--quiet` is passed. If `--logs-dir` is
also passed, the logs file is copied to that location after all tests
are run.
These flags are added to one invocation on CI to check the correct
behavior.
2024-02-28 09:47:40 -08:00
Dan Field
6efee79357
Bump everything to Android 21 ( flutter/engine#51032 )
...
Followed the linter, got rid of a bunch of version check/guards we don't need anymore.
2024-02-28 15:56:40 +00:00
Matan Lurey
5c4ce0e168
Improve, test, and fix a bug related to adb logcat filtering. ( flutter/engine#51012 )
...
1. Write tests for the `AdbLogLine` extension/parsing, and run it on CI.
Fixes https://github.com/flutter/flutter/issues/144164 .
2. Improve the logging to include `androidemu`-related errors logs
Work towards https://github.com/flutter/flutter/issues/144164 .
3. Clarified logic/fixed a bug related to handling `filterProcessId:
...`
2024-02-27 14:31:08 -08:00
Matan Lurey
75bfeb8fb0
Fail lazily when 1+ Skia gold comparions fail. ( flutter/engine#51010 )
...
(Speculative) fix for https://github.com/flutter/flutter/issues/144238 .
@zanderso Could you review from a CLI angle? I realize this code is not great, but could I do something better here?
2024-02-27 19:08:18 +00:00
Dan Field
1ba4c0735b
GLES for scenario_app tests using Impeller ( flutter/engine#51000 )
...
Follow up on #50977 - enables OpenGLES backend for that test harness.
2024-02-27 17:59:22 +00:00
Dan Field
3b99e7ab98
Actually use Impeller in scenario_app tests ( flutter/engine#50977 )
...
Right now, the scenario_app tests that claim to use Impeller are not actually using Impeller. This is for a few reasons:
- The arguments passed via instrumentation do not end up by default on the `Intent` for the `Activity` that is under test.
- The arguments passed via instrumentation were in the wrong order and not getting sent to instrumentation at all.
This patch updates existing tests to use a new `@Rule` that reads the arguments from the instrumentation's argument `Bundle` and injects them into the `Intent` that we actually pass to the `Activity` under test. It also updates the argument order in the script and adds a verification that Impeller prints that it is being used at least once.
2024-02-27 04:37:23 +00:00
Matan Lurey
539dc4eccc
Respect SIGINT (Ctrl-C) for Android scenario_app. ( flutter/engine#50989 )
...
Closes https://github.com/flutter/flutter/issues/144076 .
I had to make some other cleanup changes in order to avoid the program
hanging.
2024-02-26 19:17:44 -08:00
Matan Lurey
adc86fe60b
Fix usage of --out-dir with a relative path. ( flutter/engine#50992 )
...
@dnfield:
> it looks like the new dart script doesn't necessarily work well with
relative directories for the out dir
2024-02-26 18:35:28 -08:00
auto-submit[bot]
63614f6be8
Reverts "Migrate Android scenario_app to the SurfaceProducer API ( #50993 )" ( flutter/engine#50995 )
...
Reverts flutter/engine#50993
Initiated by: matanlurey
Reason for reverting: The digests will come back negative, as this change shows bugs in the `ImageTexture` implementation.
Original PR Author: matanlurey
Reviewed By: {jonahwilliams, johnmccutchan}
This change reverts the following previous change:
Original Description:
Part of testing https://github.com/flutter/flutter/issues/139702 .
Without this PR, the Impeller + Vulkan Scenario App will draw nothing/potentially crash, because there is no way to draw the (current) `SurfaceTexture`-based textures in Vulkan (and never will be).
This change does the following:
- Skia -> Nothing
- Impeller + OpenGLES -> On newer Android devices, uses `ImageReader` instead
- Impeller + Vulkan -> Always uses `ImageReader`
See also: https://api.flutter.dev/javadoc/io/flutter/view/TextureRegistry.SurfaceProducer.html .
2024-02-27 01:49:26 +00:00
Matan Lurey
5b9bb4bacf
Migrate Android scenario_app to the SurfaceProducer API ( flutter/engine#50993 )
...
Part of testing https://github.com/flutter/flutter/issues/139702 .
Without this PR, the Impeller + Vulkan Scenario App will draw nothing/potentially crash, because there is no way to draw the (current) `SurfaceTexture`-based textures in Vulkan (and never will be).
This change does the following:
- Skia -> Nothing
- Impeller + OpenGLES -> On newer Android devices, uses `ImageReader` instead
- Impeller + Vulkan -> Always uses `ImageReader`
See also: https://api.flutter.dev/javadoc/io/flutter/view/TextureRegistry.SurfaceProducer.html .
2024-02-27 01:39:23 +00:00
Tong Mu
c139338825
Revert "Reland 4: Multiview pipeline ( #50931 )" ( flutter/engine#50985 )
...
This reverts commit cb110ebc948c362cec5ac921cf8ef5e9ca530102.
Reason: Internal test failure blocking roll
OCL:610420483:BASE:610486571:1708978396098:f2c3c31
[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-02-27 00:58:22 +00:00
Matan Lurey
71f9dec343
Refactor args parsing/environment constructor for scenario_app ( flutter/engine#50980 )
...
This moves the ever-growing amount of options and defaults into it's own
class(es).
The test runner itself has no tests (yet), but this shim will make
writing tests easier. I tried to make no other real changes to how the
runner functions in this PR.
2024-02-26 15:29:32 -08:00
Jonah Williams
9eca58ab36
[scenario] trigger firstFrameLatch on exception. ( flutter/engine#50981 )
...
If we hit this exception (which we seem to do a lot), then we weren't triggering the first frame latch.
2024-02-26 23:03:31 +00:00
Zachary Anderson
cae1c8dc3a
Run engine unit tests on mac host_debug_unopt_arm64 ( flutter/engine#50327 )
...
Related https://github.com/flutter/flutter/issues/142868
2024-02-26 13:39:05 -08:00
Matan Lurey
dec92d85f2
Better filtering for Android scenario_app runner. ( flutter/engine#50937 )
...
_🍴 'd from https://github.com/flutter/engine/pull/50933 , will rebase
when merged._
Closes https://github.com/flutter/flutter/issues/143458 .
A picture is a 1000 words:

This is still noisy, but at least all the output appears to be part of
the execution.
As you recall, the full logs are always available in the
FLUTTER_LOGS_DIR output.
2024-02-26 11:36:10 -08:00
Tong Mu
cb110ebc94
Reland 4: Multiview pipeline ( flutter/engine#50931 )
...
This relands https://github.com/flutter/engine/pull/49950 .
Nothing is changed. The error turns out a flake (it passes once),
although this PR might have made the flake more flaky.
## Pre-launch Checklist
- [ ] I read the [Contributor Guide] and followed the process outlined
there for submitting PRs.
- [ ] I read the [Tree Hygiene] wiki page, which explains my
responsibilities.
- [ ] I read and followed the [Flutter Style Guide] and the [C++,
Objective-C, Java style guides].
- [ ] I listed at least one issue that this PR fixes in the description
above.
- [ ] I added new tests to check the change I am making or feature I am
adding, or the PR is [test-exempt]. See [testing the engine] for
instructions on writing and running engine tests.
- [ ] I updated/added relevant documentation (doc comments with `///`).
- [ ] I signed the [CLA].
- [ ] All existing and new tests are passing.
If you need help, consider asking for advice on the #hackers-new channel
on [Discord].
<!-- Links -->
[Contributor Guide]:
https://github.com/flutter/flutter/wiki/Tree-hygiene#overview
[Tree Hygiene]: https://github.com/flutter/flutter/wiki/Tree-hygiene
[test-exempt]:
https://github.com/flutter/flutter/wiki/Tree-hygiene#tests
[Flutter Style Guide]:
https://github.com/flutter/flutter/wiki/Style-guide-for-Flutter-repo
[C++, Objective-C, Java style guides]:
https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
[testing the engine]:
https://github.com/flutter/flutter/wiki/Testing-the-engine
[CLA]: https://cla.developers.google.com/
[flutter/tests]: https://github.com/flutter/tests
[breaking change policy]:
https://github.com/flutter/flutter/wiki/Tree-hygiene#handling-breaking-changes
[Discord]: https://github.com/flutter/flutter/wiki/Chat
2024-02-23 20:52:53 -08:00
Matan Lurey
2db47e5a50
Actually list all sources for scenario_app target. ( flutter/engine#50933 )
...
Without this the GN cache can easily become invalid if nothing else
changed.
2024-02-23 20:27:01 -08:00
Dan Field
54689ee475
Avoiding using separate FlutterLoaders in scenario_app ( flutter/engine#50927 )
...
Fixes https://github.com/flutter/flutter/issues/144046
When we use the same FlutterLoader from the injector, the initialization method knows it doesn't have to do as much work - using separate Flutter loaders (in this case for every test that derives from TestActivity, which is basically all of them) causes spurious warning messages to be printed for every test.
2024-02-23 23:46:19 +00:00
Matan Lurey
5ff7a8bc99
Refactor Android scenario_app to remove shell entrypoint, simplify. ( flutter/engine#50922 )
...
Closes https://github.com/flutter/flutter/issues/144045 .
There is still more work I want to do, like pulling args parsing into it's own class, and potentially cleanup the [golden file collection](https://github.com/flutter/flutter/issues/144047 ), but those seem reasonable for future (lower priority) PRs.
2024-02-23 23:34:05 +00:00
auto-submit[bot]
c388fc8bf0
Reverts "Reland 3: Multiview pipeline ( #49950 )" ( flutter/engine#50929 )
...
Reverts flutter/engine#49950
Initiated by: dkwingsmt
Reason for reverting: Head redness
```
java.lang.RuntimeException: Timeout waiting for firstFrameLatch to signal
at dev.flutter.scenarios.ExternalTextureFlutterActivity.waitUntilFlutterRendered(ExternalTextureFlutterActivity.java:98)
at dev.flutter.scenariosui.ScreenshotUtil.capture(ScreenshotUtil.java:122)
```
Original PR Author: dkwingsmt
Reviewed By: {loic-sharma}
This change reverts the following previous change:
Original Description:
This is the 3rd attempt to land multiview pipeline, following
https://github.com/flutter/engine/pull/47239 .
The pipeline now properly implements the required logic for
`scheduleWarmUpFrame` to work in a multi-view setup, following the
preparation in https://github.com/flutter/flutter/pull/143290 and
https://github.com/flutter/engine/pull/50570 .
## Pre-launch Checklist
- [ ] I read the [Contributor Guide] and followed the process outlined
there for submitting PRs.
- [ ] I read the [Tree Hygiene] wiki page, which explains my
responsibilities.
- [ ] I read and followed the [Flutter Style Guide] and the [C++,
Objective-C, Java style guides].
- [ ] I listed at least one issue that this PR fixes in the description
above.
- [ ] I added new tests to check the change I am making or feature I am
adding, or the PR is [test-exempt]. See [testing the engine] for
instructions on writing and running engine tests.
- [ ] I updated/added relevant documentation (doc comments with `///`).
- [ ] I signed the [CLA].
- [ ] All existing and new tests are passing.
If you need help, consider asking for advice on the #hackers-new channel
on [Discord].
<!-- Links -->
[Contributor Guide]:
https://github.com/flutter/flutter/wiki/Tree-hygiene#overview
[Tree Hygiene]: https://github.com/flutter/flutter/wiki/Tree-hygiene
[test-exempt]:
https://github.com/flutter/flutter/wiki/Tree-hygiene#tests
[Flutter Style Guide]:
https://github.com/flutter/flutter/wiki/Style-guide-for-Flutter-repo
[C++, Objective-C, Java style guides]:
https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
[testing the engine]:
https://github.com/flutter/flutter/wiki/Testing-the-engine
[CLA]: https://cla.developers.google.com/
[flutter/tests]: https://github.com/flutter/tests
[breaking change policy]:
https://github.com/flutter/flutter/wiki/Tree-hygiene#handling-breaking-changes
[Discord]: https://github.com/flutter/flutter/wiki/Chat
Co-authored-by: auto-submit[bot] <flutter-engprod-team@google.com>
2024-02-23 15:15:00 -08:00
Dan Field
7fd214252c
Remove timeouts from CountdownLatch.await in tests ( flutter/engine#50930 )
...
See
https://github.com/flutter/flutter/wiki/Style-guide-for-Flutter-repo#never-check-if-a-port-is-available-before-using-it-never-add-timeouts-and-other-race-conditions
This may be contributing to flakiness in the Java/Scenario_app tests. We
should just timeout when CI says it's taken too long - on a slow machine
5 or 10 seconds may not be enough time.
2024-02-23 15:10:16 -08:00
Tong Mu
dd271d0880
Reland 3: Multiview pipeline ( flutter/engine#49950 )
...
This is the 3rd attempt to land multiview pipeline, following
https://github.com/flutter/engine/pull/47239 .
The pipeline now properly implements the required logic for
`scheduleWarmUpFrame` to work in a multi-view setup, following the
preparation in https://github.com/flutter/flutter/pull/143290 and
https://github.com/flutter/engine/pull/50570 .
## Pre-launch Checklist
- [ ] I read the [Contributor Guide] and followed the process outlined
there for submitting PRs.
- [ ] I read the [Tree Hygiene] wiki page, which explains my
responsibilities.
- [ ] I read and followed the [Flutter Style Guide] and the [C++,
Objective-C, Java style guides].
- [ ] I listed at least one issue that this PR fixes in the description
above.
- [ ] I added new tests to check the change I am making or feature I am
adding, or the PR is [test-exempt]. See [testing the engine] for
instructions on writing and running engine tests.
- [ ] I updated/added relevant documentation (doc comments with `///`).
- [ ] I signed the [CLA].
- [ ] All existing and new tests are passing.
If you need help, consider asking for advice on the #hackers-new channel
on [Discord].
<!-- Links -->
[Contributor Guide]:
https://github.com/flutter/flutter/wiki/Tree-hygiene#overview
[Tree Hygiene]: https://github.com/flutter/flutter/wiki/Tree-hygiene
[test-exempt]:
https://github.com/flutter/flutter/wiki/Tree-hygiene#tests
[Flutter Style Guide]:
https://github.com/flutter/flutter/wiki/Style-guide-for-Flutter-repo
[C++, Objective-C, Java style guides]:
https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
[testing the engine]:
https://github.com/flutter/flutter/wiki/Testing-the-engine
[CLA]: https://cla.developers.google.com/
[flutter/tests]: https://github.com/flutter/tests
[breaking change policy]:
https://github.com/flutter/flutter/wiki/Tree-hygiene#handling-breaking-changes
[Discord]: https://github.com/flutter/flutter/wiki/Chat
2024-02-23 13:39:54 -08:00
Matan Lurey
4405a2fb57
Provide a subset of adb logcat logs streaming during scenario_app testing ( flutter/engine#50886 )
...
Work towards https://github.com/flutter/flutter/issues/143458 .
What this _doesn't_ change:
1. The full output of `adb logcat` is still written to `$FLUTTER_LOGS_DIR/logcat.txt`
Example output:
<img width="580" alt="Screenshot 2024-02-22 at 2 53 51â¯PM" src="https://github.com/flutter/engine/assets/168174/bef24370-c066-4203-ae0e-552cc0fd73ad ">
/cc @dnfield @gaaclarke
2024-02-23 03:36:16 +00:00
Dan Field
8f527095b7
Avoid generated plugin registrant warnings for scenario_app ( flutter/engine#50874 )
...
Cleans up some noise in those logs.
2024-02-22 20:34:11 +00:00
Victoria Ashworth
d6735132e4
Delete and create iOS simulator before running Scenario app test ( flutter/engine#50835 )
...
Make iOS Scenario app tests create the simulator it needs before the tests. Also, delete any existing matching simulators to prevent duplicates.
Fixes https://github.com/flutter/flutter/issues/143870 .
[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-02-22 20:17:22 +00:00
Matan Lurey
0eceae9710
Minor non-semantic refactors of ExternalTexturesFlutterActivity ( flutter/engine#50845 )
...
Just getting rid of some IDE warnings/diagnostics before sending bigger
PRs.
2024-02-21 19:06:16 -08:00
Tong Mu
c5e0858a01
Add scheduleWarmUpFrame ( flutter/engine#50570 )
...
This PR adds `PlatformDispatcher.scheduleWarmUpFrame`.
This PR is needed for the follow up changes:
* The framework will switch to using this function to render warmup
frames in https://github.com/flutter/flutter/pull/143290 .
* Then the engine will finally be able to switch to multiview pipeline
with no regression on startup timing in
https://github.com/flutter/engine/pull/49950 .
For why the warm up frame must involve the engine to render, see
https://github.com/flutter/flutter/issues/142851 .
## Pre-launch Checklist
- [ ] I read the [Contributor Guide] and followed the process outlined
there for submitting PRs.
- [ ] I read the [Tree Hygiene] wiki page, which explains my
responsibilities.
- [ ] I read and followed the [Flutter Style Guide] and the [C++,
Objective-C, Java style guides].
- [ ] I listed at least one issue that this PR fixes in the description
above.
- [ ] I added new tests to check the change I am making or feature I am
adding, or the PR is [test-exempt]. See [testing the engine] for
instructions on writing and running engine tests.
- [ ] I updated/added relevant documentation (doc comments with `///`).
- [ ] I signed the [CLA].
- [ ] All existing and new tests are passing.
If you need help, consider asking for advice on the #hackers-new channel
on [Discord].
<!-- Links -->
[Contributor Guide]:
https://github.com/flutter/flutter/wiki/Tree-hygiene#overview
[Tree Hygiene]: https://github.com/flutter/flutter/wiki/Tree-hygiene
[test-exempt]:
https://github.com/flutter/flutter/wiki/Tree-hygiene#tests
[Flutter Style Guide]:
https://github.com/flutter/flutter/wiki/Style-guide-for-Flutter-repo
[C++, Objective-C, Java style guides]:
https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
[testing the engine]:
https://github.com/flutter/flutter/wiki/Testing-the-engine
[CLA]: https://cla.developers.google.com/
[flutter/tests]: https://github.com/flutter/tests
[breaking change policy]:
https://github.com/flutter/flutter/wiki/Tree-hygiene#handling-breaking-changes
[Discord]: https://github.com/flutter/flutter/wiki/Chat
2024-02-21 16:46:11 -08:00
Matan Lurey
b357d7a45e
Remove/reduce unused or private methods and add tests to SkiaGoldClient ( flutter/engine#50844 )
...
@Piinks correctly pointed out we had to make a number of changes to the engine's `SkiaGoldClient` and we had no test coverage (https://github.com/flutter/engine/pull/50829 , https://github.com/flutter/engine/pull/50826 ).
This corrects the problem.
I am not in _love_ with these tests (they could be less snapshot-y), but the mechanisms I need to write better tests is beyond what I can spend ~1-2 hours on (https://github.com/flutter/flutter/issues/133569 ).
/cc @dnfield @mdebbar
2024-02-22 00:16:57 +00:00
Zachary Anderson
e6d9dca1b7
Shift some deps to //flutter/third_party ( flutter/engine#50830 )
...
Part of https://github.com/flutter/flutter/issues/67373
2024-02-21 23:51:16 +00:00
Matan Lurey
a890ef28e6
Add a throw statement for imgtestAdd non 0 exit codes. ( flutter/engine#50829 )
...
Thanks @Piinks for noticing.
2024-02-21 11:51:02 -08:00
Matan Lurey
9cb7bf430b
Add the scenario_app 'solid_blue' golden to the Android test suite ( flutter/engine#50801 )
...
This test is already running in the iOS scenario app:

It should help debug https://github.com/flutter/flutter/issues/143602 by showing if the Android UI is bleeding.
2024-02-21 19:21:53 +00:00
Matan Lurey
05fedd7c11
Ignore EOF newline characters and added tests to dir_contents_diff tool ( flutter/engine#50805 )
...
No issue filed, but was [discussed on discord](https://discord.com/channels/608014603317936148/608021010377080866/1209568840644567091 ).
2024-02-21 19:05:26 +00:00
Matan Lurey
9a26927508
Fail engine post-submit on skia-gold comparions. ( flutter/engine#50826 )
...
Similar to the framework in https://github.com/flutter/flutter/pull/100576 .
Closes https://github.com/flutter/flutter/issues/143617 .
2024-02-21 18:34:04 +00:00
Zachary Anderson
f6629ffe5c
Use 'et format' in CI. Check formatting of all files in CI ( flutter/engine#50810 )
...
This PR changes the format check on CI to use the command added in
https://github.com/flutter/engine/pull/50747 .
Additionally, while making this change, I noticed that the CI check was
not checking the formatting of all files, and that as a result, files
were present in the repo with incorrect formatting. I have fixed the
formatting and fixed the check to always check all files.
2024-02-21 09:38:08 -08:00
zijiehe@
914efefa87
[Fuchsia] Create dedicated testers to run tests and deprecate femu_test ( flutter/engine#50697 )
...
This change creates a fuchsia_profile_arm64_tester builder inside of the existing linux_fuchsia group. Comparing with fuchsia_profile_arm64, it uses `--no-lto` to limit the cost of compilation of test suites.
Similar to the fuchsia_profile_x64, it runs release build test cases + aot test.
E.g. https://ci.chromium.org/ui/p/flutter/builders/try/Linux%20Engine%20Drone/1998852/overview or more accurately https://logs.chromium.org/logs/flutter/buildbucket/cr-buildbucket/8755990392554423809/+/u/test:_arm64_emulator_based_profile___aot_tests/stdout .
The same approach also applied to other builders. Now each fuchsia builder has its own tester which compiles test cases without lto. The change reduces the time cost of linux_fuchsia to around 20 min, e.g. https://ci.chromium.org/ui/p/flutter/builders/try/Linux%20linux_fuchsia/6662/overview
After this change, linux_fuchsia group has a higher coverage than the combination of linux fuchsia emu + linux fuchsia emu arm64. So I removed both builders from the `.ci.yaml` as well.
Bug: https://github.com/flutter/flutter/issues/140179
[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-02-20 18:39:09 +00:00
Matan Lurey
cfac6a5d5f
Write adb logcat results and screenshots to FLUTTER_LOGS_DIR if able. ( flutter/engine#50722 )
...
Fixes https://github.com/flutter/flutter/issues/143586 .
This should make it easier to understand what is/isn't happening, and will unblock https://github.com/flutter/flutter/issues/143458 , and make https://github.com/flutter/flutter/issues/143459 potentially easier to debug.
2024-02-18 20:31:28 +00:00
gaaclarke
8515af7ee9
Pulled out dir contents golden tool ( flutter/engine#50703 )
...
fixes https://github.com/flutter/flutter/issues/143459
This also starts using it as part of scenario_app.
Testing: Is part of the testing infrastructure.
[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-02-16 22:18:05 +00:00
Jason Simmons
ea6b80144d
Add the web package to the set of Dart third_party packages in DEPS ( flutter/engine#50714 )
...
Dart is rolling the http package to a version that depends on the web package. (see https://dart.googlesource.com/http/+/d8b237d273f49bada2aa7feaa0e7795e2541fe83 )
2024-02-16 06:54:49 +00:00
Matan Lurey
d99aee7142
Update README.md ( flutter/engine#50702 )
...
Oopsie.
2024-02-15 15:38:20 -08:00
zijiehe@
4c418e9452
[Fuchsia] Run arm64 tests on terminal.qemu-arm64 on x64 hosts ( flutter/engine#50657 )
...
This change replicas https://ci.chromium.org/ui/p/flutter/builders/prod/Linux%20Fuchsia%20arm64%20FEMU and runs tests on simulated arm64 on x64. E.g. https://ci.chromium.org/ui/p/flutter/builders/try/Linux%20Engine%20Drone/1994921/overview
or more accurately, https://logs.chromium.org/logs/flutter/buildbucket/cr-buildbucket/8756061244290412945/+/u/test:_arm64_emulator_based_debug_tests/stdout
The vulkan tests are excluded, qemu does not support vulkan.
The display_list_render_tests is excluded as it's way too slow (over 400 seconds).
After this change, comparing to femu_test.py, the only missing case is the dart-aot-runner-integration-test which is executed in fuchsia_profile_x64 anyway. It needs `--no-lto` in fuchsia_profile_arm64. I may need to confirm if the fuchsia_profile_arm64 build is used in fuchsia or the fuchsia_release_arm64.
Bug: https://github.com/flutter/flutter/issues/140179
[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-02-15 20:22:23 +00:00
Chinmay Garde
6c17d7bf9d
Use a GN variable (dart_src) to reference the location of the Dart checkout. ( flutter/engine#50624 )
...
Towards https://github.com/flutter/flutter/issues/143335
2024-02-14 21:12:23 -08:00