1353 Commits

Author SHA1 Message Date
Matan Lurey
95e8704f1a Add a &right_filter=params to the Skia Gold links. (flutter/engine#50675)
Otherwise they are compared against other API versions and backends by default, which is confusing.
2024-02-15 02:31:13 +00:00
Matan Lurey
46d8d6660c Use modern concurrency constructs. (flutter/engine#50671)
The old code made me cry.

Potentially related to https://github.com/flutter/flutter/issues/143471.
2024-02-14 17:51:30 -08:00
Matan Lurey
a499590726 Add useful default options to scenario_app/bin/android_integration_tests.dart (flutter/engine#50667)
Closes https://github.com/flutter/flutter/issues/143474.

This makes `--adb` and `--out_dir` have useful defaults for most
environments.

To be explicit, the `--out-dir` is still specified in the test runner (I
could imagine refactoring this further to take a `--variant` instead,
but not a priority).

/cc @gmackall
2024-02-14 15:26:51 -08:00
zijiehe@
52b63c363d [Fuchsia] Run run_with_dart_aot test on fuchsia_profile_x64 (flutter/engine#50613)
This change starts running dart aot tests on fuchsia_profile_x64 builder which were previously ignored. But it also requires to build `profile` with `--no-lto`.
Since running tests are in general quite fast, this change does not exclude other test suites from fuchsia_profile_x64.

After this change, linux_fuchsia has higher coverage than the femu_test, later one can be removed.
But I may prefer submitting https://github.com/flutter/engine/pull/50657 first, so we can fully remove the femu_test.py.

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-14 23:11:56 +00:00
Matan Lurey
b0faf1e1d5 Make all Android scenario_app activities full-screen, even on older Android versions. (flutter/engine#50666)
Work towards https://github.com/flutter/flutter/issues/143471.
2024-02-14 23:05:00 +00:00
Zachary Anderson
27d4c0ed6a Run engine_tool tests (flutter/engine#50662)
Follow-up on https://github.com/flutter/engine/pull/50642, which added
tests, but didn't run them. This PR runs them.
2024-02-14 13:51:12 -08:00
Matan Lurey
f3342a014c Refactor, update, and move around testing/scenario_app/README.md (flutter/engine#50659)
I'm not sure about long-term direction re: separating the Android and
iOS code, but other than `lib/*.dart`, all of the code in
`testing/scenario_app/**` is platform-specific. Therefore, I've moved
the documentation around, and added to it where it made sense, in order
to make it easier for someone else to grok.

Index:
-
[`testing/scenario_app/README.md`](5012e1fd5d/testing/scenario_app/README.md)
-
[`testing/scenario_app/bin/README.md`](5012e1fd5d/testing/scenario_app/bin/README.md)
-
[`testing/scenario_app/android/README.md`](5012e1fd5d/testing/scenario_app/android/README.md)
-
[`testing/scenario_app/ios/README.md`](5012e1fd5d/testing/scenario_app/ios/README.md)

This also gives me an obvious place to further document how the Android
tests work:

<a
href="5012e1fd5d/testing/scenario_app/android/README.md"><img
width="880" alt="Screenshot 2024-02-14 at 12 35 39 PM"
src="https://github.com/flutter/engine/assets/168174/d4663005-d770-4003-a3fa-74ae8bf635c4"></a>

Closes https://github.com/flutter/flutter/issues/143350.

---------

Co-authored-by: Jenn Magder <magder@google.com>
Co-authored-by: Gray Mackall <34871572+gmackall@users.noreply.github.com>
2024-02-14 13:24:41 -08:00
Jason Simmons
e5061e239c In run_tests, use the regular path to the Vulkan library if lib.unstripped does not exist (flutter/engine#50629)
lib.unstripped will not be created in a "gn --no-stripped" build

See https://github.com/flutter/engine/pull/50443
2024-02-14 02:19:21 +00:00
gaaclarke
35f67519ca [Impeller] replaces golden file count with a golden diff file (flutter/engine#50621)
fixes https://github.com/flutter/flutter/issues/143353

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-02-14 01:24:52 +00:00
gaaclarke
a9e542b824 [Impeller] Turn on golden tests that use the ImGui widgets functions (flutter/engine#50606)
[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-02-13 20:35:25 +00:00
zijiehe@
458841cf62 [Fuchsia] Run tests with test arguments (flutter/engine#50478)
This change starts executing the suites with extra arguments, namely txt_tests, though the implementation does not limit to the suite.

Bug: flutter/flutter#140179

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-02-13 18:23:22 +00:00
gaaclarke
c4575d9ac7 [Impeller] cleaned up and removed golden test exceptions (flutter/engine#50572)
This starts generating golden image tests for most interactive tests instead of having to explicitly exempt them.

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-02-13 04:40:12 +00:00
Matan Lurey
c4b914c009 Add Impeller runtime options to Android scenario_app (flutter/engine#50487)
Closes https://github.com/flutter/flutter/issues/143171.

Adds builds for both Impeller Vulkan and Impeller OpenGLES.

_Some of the goldens for Impeller/Vulkan won't look right yet. I'll link
to the blocking issues after CI runs._
2024-02-12 17:59:19 -08:00
Jonah Williams
73f0041fc8 [Impeller] force render pass construction on all backends to ensure image layout is transitioned/render pass state setup. (flutter/engine#50539)
Fixes https://github.com/flutter/flutter/issues/142358

We rely on the render pass encoding to transition image textures from undefined to shader read layout. If an empty pass is created with no clear color, we still need to create the pass on the Vulkan backend.
2024-02-12 19:58:41 +00:00
zijiehe@
bcd7116bef [Fuchsia] Run tests with multiple packages (flutter/engine#50219)
This change enables tests requiring multiple packages in both debug and
release builders; though the AOT test cannot be executed.
Also 4 out of 5 suites are excluded from release builder since some of
the tests are failing; it's worth extra investigation.
MouseInputTest in theory is enabled, it indeed contains only disabled
tests.

Bug: https://github.com/flutter/flutter/issues/140179

## Pre-launch Checklist

- [x] I read the [Contributor Guide] and followed the process outlined
there for submitting PRs.
- [x] I read the [Tree Hygiene] wiki page, which explains my
responsibilities.
- [x] I read and followed the [Flutter Style Guide] and the [C++,
Objective-C, Java style guides].
- [x] I listed at least one issue that this PR fixes in the description
above.
- [x] 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.
- [x] I updated/added relevant documentation (doc comments with `///`).
- [x] I signed the [CLA].
- [x] 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-07 15:17:31 -08:00
Matan Lurey
b79821c019 Fix Android scenario_app to actually run and block on CI (flutter/engine#50414)
20337eaea4
(now reverted) intentionally re-introduced a bug
(https://github.com/flutter/engine/pull/49938) on a now working test
runner, and verified that (with some fixes in this PR), we can now catch
regressions on CI with SkiaGold:

---

<details>

<summary>ExternalTextureTests_testCanvasSurface.png</summary>

This test shows that what previously was a picture has been reduced down
to a single stretched pixel.

**BEFORE**:


![ExternalTextureTests_testCanvasSurface](https://github.com/flutter/engine/assets/168174/1509ea21-2887-4a3b-b200-b857bbfb8304)

**AFTER**:


![ExternalTextureTests_testCanvasSurface](https://github.com/flutter/engine/assets/168174/d9ae19c8-dd39-4e7f-859c-5d82bd1ba0a3)

</details>

<details>

<summary>ExternalTextureTests_testRotatedMediaSurface_180.png</summary>

Similar to above, but shows _another_ bug (kClamp versus kRepeat)

**BEFORE**:


![ExternalTextureTests_testRotatedMediaSurface_180](https://github.com/flutter/engine/assets/168174/fee5bc8d-749f-4a59-976a-a573515fecea)

**AFTER**:


![ExternalTextureTests_testRotatedMediaSurface_180](https://github.com/flutter/engine/assets/168174/a5249f70-22b4-4d36-8b63-e88c8a6846fe)/cc

</details>

---

This PR now makes the `scenario_test` useful and blocking for Android
engine rolls:

- Add support for connecting to SkiaGold by depending on `goldctl` in
the appropriate configs.
- Add some useful local debugging flags for skipping SkiaGold or running
specific tests (not used by default).
- Failing to connect to Skia gold is now a test failure.
2024-02-07 12:58:41 -08:00
zijiehe@
9a5734f5a9 Redo "[Fuchsia] Execute most of the testing/fuchsia/test_suites.yaml on debug and release builds" (flutter/engine#50408)
Reverts flutter/engine#50407,
https://github.com/flutter/flutter/issues/142811, redo
https://github.com/flutter/engine/pull/50058.

Comparing to the original change, this redo disabled lto / link time
optimization for x64 release builder. It's a known issue that lto
increased the compilation time from <5 min to over 30 min. (See commit
a1b104c61b.)
Disabling lto is safe on x64 release since fuchsia assembly uses arm64
release build on smart display instead. But I will send a PSA to the
fuchsia team before submitting this change.

Following is the original change description.

This change implements a BundledTestRunner to run most of the tests in
testing/fuchsia/test_suites.yaml as ExecutableTestRunner.

- Tests with packages out of out/fuchsia_*_x64/ are ignored for now.
- Tests with extra test command line parameters are ignored for now.

The BundledTestRunner can share most of the logic in
ExecutableTestRunner and avoid reinventing the wheel.

This change also fixes the build break of fuchsia_tests in
fuchsia_release_x64 which allows tests to run on the build as well.

- Tests not built with AOT are filtered out with variant field in
test_suites.yaml.

Bug: https://github.com/flutter/flutter/issues/140179

## Pre-launch Checklist

- [x] I read the [Contributor Guide] and followed the process outlined
there for submitting PRs.
- [x] I read the [Tree Hygiene] wiki page, which explains my
responsibilities.
- [x] I read and followed the [Flutter Style Guide] and the [C++,
Objective-C, Java style guides].
- [x] I listed at least one issue that this PR fixes in the description
above.
- [x] 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.
- [x] I updated/added relevant documentation (doc comments with `///`).
- [x] I signed the [CLA].
- [x] 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-07 09:50:23 -08:00
Ian Hickson
05e5a97357 Provide toStrings for Native objects (flutter/engine#50168)
This hides the "Instance of _Native" bit that you get in debug output otherwise.
2024-02-06 22:39:00 +00:00
auto-submit[bot]
6173975c27 Reverts "Revert "Revert "[Fuchsia] Execute most of the testing/fuchsia/test_suites.yaml on debug and release builds""" (flutter/engine#50407)
Reverts "Reland "[Fuchsia] Execute most of the testing/fuchsia/test_suites.yaml on debug and release builds"""

Reverts flutter/engine#50295

Initiated by: zanderso

Reason for reverting: Timing out on CI

Original PR Author: zijiehe-google-com

Reviewed By: {keyonghan}

This change reverts the following previous change:
Original Description:
Reverts flutter/engine#50291, https://github.com/flutter/flutter/issues/142811

Following is the original change description.

This change implements a BundledTestRunner to run most of the tests in testing/fuchsia/test_suites.yaml as ExecutableTestRunner.

- Tests with packages out of out/fuchsia_*_x64/ are ignored for now.
- Tests with extra test command line parameters are ignored for now.

The BundledTestRunner can share most of the logic in ExecutableTestRunner and avoid reinventing the wheel.

This change also fixes the build break of fuchsia_tests in fuchsia_release_x64 which allows tests to run on the build as well.

- Tests not built with AOT are filtered out with variant field in test_suites.yaml.

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-06 18:49:25 +00:00
zijiehe@
76dce91cf2 Revert "Revert "[Fuchsia] Execute most of the testing/fuchsia/test_suites.yaml on debug and release builds"" (flutter/engine#50295)
Reverts flutter/engine#50291,
https://github.com/flutter/flutter/issues/142811

Following is the original change description.

This change implements a BundledTestRunner to run most of the tests in
testing/fuchsia/test_suites.yaml as ExecutableTestRunner.

- Tests with packages out of out/fuchsia_*_x64/ are ignored for now.
- Tests with extra test command line parameters are ignored for now.

The BundledTestRunner can share most of the logic in
ExecutableTestRunner and avoid reinventing the wheel.

This change also fixes the build break of fuchsia_tests in
fuchsia_release_x64 which allows tests to run on the build as well.

- Tests not built with AOT are filtered out with variant field in
test_suites.yaml.

Bug: https://github.com/flutter/flutter/issues/140179

## Pre-launch Checklist

- [x] I read the [Contributor Guide] and followed the process outlined
there for submitting PRs.
- [x] I read the [Tree Hygiene] wiki page, which explains my
responsibilities.
- [x] I read and followed the [Flutter Style Guide] and the [C++,
Objective-C, Java style guides].
- [x] I listed at least one issue that this PR fixes in the description
above.
- [x] 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.
- [x] I updated/added relevant documentation (doc comments with `///`).
- [x] I signed the [CLA].
- [x] 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-06 09:34:53 -08:00
Matan Lurey
5d1cc934ad Run all Android scenario_app tests, not just the smoke test. (flutter/engine#50400)
I was making sure that I could get at least one test running and passing
on CI (as expected), now turn all of them on.
2024-02-06 09:15:08 -08:00
Matan Lurey
8db41b6544 Capture FAILURES!!! when running Android scenario_app tests. (flutter/engine#50255)
I expect `Linux linux_android_emulator_tests` and `Linux
linux_android_emulator_tests_api_33` to fail.

When they fail, I'll fix the assertion
(https://github.com/flutter/flutter/issues/142746) before merging this
PR.
2024-02-06 08:42:14 -08:00
Jason Simmons
3928bcf361 [Impeller] In advanced blends, unpremultiply and apply src_input_alpha only if there is no foreground color (flutter/engine#50260)
See https://github.com/flutter/flutter/issues/142620
2024-02-02 23:54:41 +00:00
Zachary Anderson
c5eac677ca Revert "[Fuchsia] Execute most of the testing/fuchsia/test_suites.yaml on debug and release builds" (flutter/engine#50291)
Reverts flutter/engine#50058 for
https://github.com/flutter/flutter/issues/142811
2024-02-02 11:40:10 -08:00
gaaclarke
5d0859ada0 [Impeller] updated todos from opengles golden work (flutter/engine#50218)
followup from https://github.com/flutter/engine/pull/50146

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-02-01 21:36:52 +00:00
Jonah Williams
eff9aac24a Update expected golden number. (flutter/engine#50249)
My patching removing drawPicture might have landed before syncing to the
patch that added the golden # check.
2024-02-01 10:48:40 -08:00
gaaclarke
110583e248 [Impeller] added an assert that goldens are generated (flutter/engine#50222)
fixes https://github.com/flutter/flutter/issues/142657

## Pre-launch Checklist

- [x] I read the [Contributor Guide] and followed the process outlined
there for submitting PRs.
- [x] I read the [Tree Hygiene] wiki page, which explains my
responsibilities.
- [x] I read and followed the [Flutter Style Guide] and the [C++,
Objective-C, Java style guides].
- [x] I listed at least one issue that this PR fixes in the description
above.
- [x] 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.
- [x] I updated/added relevant documentation (doc comments with `///`).
- [x] I signed the [CLA].
- [x] 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-01 08:45:41 -08:00
Zachary Anderson
55d79af527 Moves impeller/golden_tests_harvester to tools/golden_tests_harvester (flutter/engine#50211)
The tool is not Impeller specific, so moving it to the `tools/`
directory.
2024-02-01 08:38:52 -08:00
auto-submit[bot]
90b6db8915 Reverts "Remove migration flag and unused header files" (flutter/engine#50229)
Reverts flutter/engine#50216
Initiated by: zanderso
This change reverts the following previous change:
Original Description:
The `applyRoundingHack` flag is no longer used by the framework. This also removes the [lib/ui/text/line_metrics.h](https://github.com/flutter/engine/pull/50216/files#diff-9175619f2b114dffef67eba38511b34afe6abefd4f697f4758647133895b34f5) file which doesn't seem to be referenced anywhere.

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-02-01 03:47:16 +00:00
LongCatIsLooong
737437f718 Remove migration flag and unused header files (flutter/engine#50216)
The `applyRoundingHack` flag is no longer used by the framework. This also removes the [lib/ui/text/line_metrics.h](https://github.com/flutter/engine/pull/50216/files#diff-9175619f2b114dffef67eba38511b34afe6abefd4f697f4758647133895b34f5) file which doesn't seem to be referenced anywhere.

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-02-01 00:36:16 +00:00
gaaclarke
c35dbe26fc [Impeller] implemented golden image tests for opengles (flutter/engine#50146)
fixes https://github.com/flutter/flutter/issues/142354

This sets up impeller_golden_tests to run with ANGLE.

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-01-31 20:49:40 +00:00
Jenn Magder
12dc7ef814 Log FlutterJSONMessageCodec decode errors before asserting (flutter/engine#50163)
Logging JSON decode errors on assertion will help track down bugs.
https://github.com/flutter/flutter/issues/100891#issuecomment-1915946340

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-01-31 17:31:00 +00:00
zijiehe@
b2d8969566 [Fuchsia] Execute most of the testing/fuchsia/test_suites.yaml on debug and release builds (flutter/engine#50058)
This change implements a BundledTestRunner to run most of the tests in testing/fuchsia/test_suites.yaml as ExecutableTestRunner.

- Tests with packages out of out/fuchsia_*_x64/ are ignored for now.
- Tests with extra test command line parameters are ignored for now.

The BundledTestRunner can share most of the logic in ExecutableTestRunner and avoid reinventing the wheel.

This change also fixes the build break of fuchsia_tests in fuchsia_release_x64 which allows tests to run on the build as well.

- Tests not built with AOT are filtered out with variant field in test_suites.yaml.

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-01-31 05:39:21 +00:00
Michael Brase
c4608bbfd1 Use structured logging on Fuchsia (flutter/engine#49918)
This change migrates off of the old fuchsia logging apis to use the
structured logging apis. The initial FIDL connection is made during
global initialization (before main()) and the initial minimum log level
is queried from the system. Later on, once the main loop is initialized,
we setup an async task to listen for additional log interest changes
from the system. The advantage of doing this on the main loop is that we
avoid spawning an additional background thread in the process (the
legacy logging apis use the background thread approach).

One added benefit of this change is it reduces the size of the
dart/flutter runner far packages by about 250kb in release mode, because
libsyslog.so and libbackend_fuchsia_globals.so are no longer needed.

flutter/flutter#141924

## Pre-launch Checklist

- [x] I read the [Contributor Guide] and followed the process outlined
there for submitting PRs.
- [x] I read the [Tree Hygiene] wiki page, which explains my
responsibilities.
- [x] I read and followed the [Flutter Style Guide] and the [C++,
Objective-C, Java style guides].
- [x] I listed at least one issue that this PR fixes in the description
above.
- [x] 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.
- [x] I updated/added relevant documentation (doc comments with `///`).
- [x] I signed the [CLA].
- [x] 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-01-29 22:26:47 -06:00
Dan Field
7d955bfd7c Followups to screenshot patch (flutter/engine#50096)
@gaaclarke
2024-01-26 23:43:05 +00:00
Alexander Aprelev
a280f771c4 Roll dart to 3.4.0-79.0.dev (flutter/engine#50100)
Changes since last roll
```
58665e3dee4 Version 3.4.0-79.0.dev
6b0b4d425b0 Macro. Keep FileState for macro file, refresh if its content changes.
f4c3572c18a [deps] Rev `native` packages.
f4dae883559 [co19] Roll co19 to af2ac968c0ca28b7dd94325b00a3acf569f6e858
e2aac0b8e86 [web docs] add package:web to the main sdk docs - api.dart.dev
3d4a39e9c24 Revert "Revert two CLs that remove WithoutNullSafetyMixin usages."
20a27fee111 Fix for data driven rename when class is used in as expression
ecb5fc2228a [dart2wasm] Improve dispatch table packing from 49% to 99%
cdad90dfb81 [frontend_server] frontend_server_flutter_suite
```
Requires manual roll due to ffi package move as part of `f4c3572c18a`.
2024-01-26 22:45:47 +00:00
Matan Lurey
74d78673d9 Introduce a prototype of a "header guard enforcement" tool (flutter/engine#48903)
Closes https://github.com/flutter/flutter/issues/133415.

---

This is a prototype I threw together in about 1-2 hours. It enforces and
automatically fixes header guards that don't match the [the Google C++
style
guide](https://google.github.io/styleguide/cppguide.html#The__define_Guard).
For example, here is (trimmed) output at HEAD:

```txt
line 5, column 1 of impeller/aiks/picture.h: Unexpected #pragma once
  ╷
5 │ #pragma once
  │ ^^^^^^^^^^^^
  ╵
line 5, column 1 of flow/stopwatch.h: Expected #ifndef FLUTTER_FLOW_STOPWATCH_H_
  ╷
5 │ #ifndef FLUTTER_FLOW_INSTRUMENTATION_H_
  │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  ╵
The following 731 files have invalid header guards:
```
2024-01-26 13:15:56 -08:00
Matan Lurey
e9e5a237f8 Finish landing missing/incorrect header guards across flutter/engine (flutter/engine#50069)
Generated by https://github.com/flutter/engine/pull/48903 (`dart ./tools/header_guard_check/bin/main.dart --fix`).

As discussed with @cbracken and @jmagman, the guards are not technically needed on the Mac/iOS code, but they (a) do not hurt and (b) still provide value if for some reason `#include` is used instead of `#import` (though I suspect we could try to add that to the tool in the future as well).
2024-01-26 19:42:36 +00:00
Dan Field
ce731f3716 Fix Shell::Screenshot for Impeller (flutter/engine#50072)
Fixes https://github.com/flutter/flutter/issues/141571

Shell::Screenshot was impelemnted in a Skia-only way and would crash when invoked. Adds test coverage for the breaking path on iOS that ends up calling `FlutterView drawLayer`.
2024-01-26 17:17:32 +00:00
zijiehe@
538d967f7c [Fuchsia] Redo - Use chromium test-scripts to download images and execute tests (flutter/engine#49940)
This change is a redo of https://github.com/flutter/engine/pull/49847.

https://github.com/zijiehe-google-com/engine/compare/4530942..main
should show the diff between this and the original change; mainly fixes
the https://github.com/flutter/flutter/issues/141907.

Following paragraph is copied from the original change.

This change can be executed from buildroot by

```
python3 flutter/tools/fuchsia/with_envs.py flutter/testing/fuchsia/run_tests.py
```

Bug: https://github.com/flutter/flutter/issues/140179

- [V] I read the [Contributor Guide] and followed the process outlined
there for submitting PRs.
- [V] I read the [Tree Hygiene] wiki page, which explains my
responsibilities.
- [V] I read and followed the [Flutter Style Guide] and the [C++,
Objective-C, Java style guides].
- [V] I listed at least one issue that this PR fixes in the description
above.
- [V] 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.
- [V] I updated/added relevant documentation (doc comments with `///`).
- [V] I signed the [CLA].
- [V] All existing and new tests are passing.
2024-01-25 11:58:03 +00:00
Jonah Williams
6f0249a062 [ui] hold a strong reference to fragment program objects. (flutter/engine#49868)
The native engine needs to hold a strong reference to fragment programs. So the dart side holding a weak ref is more or less pointless
2024-01-24 00:08:24 +00:00
auto-submit[bot]
07034d9f1d Reverts "[Fuchsia] Redo - Use chromium test-scripts to download images and execute tests" (flutter/engine#49908)
Reverts flutter/engine#49847
Initiated by: zanderso
This change reverts the following previous change:
Original Description:
This change is a redo of https://github.com/flutter/engine/pull/49650.

https://github.com/zijiehe-google-com/engine/compare/de5c713..main should show the diff between this and the original change.

Following paragraph is copied from the original change.

This change requires https://github.com/flutter/buildroot/pull/811, and can be executed from buildroot by

```
python3 flutter/tools/fuchsia/with_envs.py flutter/testing/fuchsia/run_tests.py
```

Bug: https://github.com/flutter/flutter/issues/140179

- [V] I read the [Contributor Guide] and followed the process outlined there for submitting PRs.
- [V] I read the [Tree Hygiene] wiki page, which explains my responsibilities.
- [V] I read and followed the [Flutter Style Guide] and the [C++, Objective-C, Java style guides].
- [V] I listed at least one issue that this PR fixes in the description above.
- [V] 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.
- [V] I updated/added relevant documentation (doc comments with `///`).
- [V] I signed the [CLA].
- [V] All existing and new tests are passing.
2024-01-19 22:22:25 +00:00
zijiehe@
0f1211b660 [Fuchsia] Redo - Use chromium test-scripts to download images and execute tests (flutter/engine#49847)
This change is a redo of https://github.com/flutter/engine/pull/49650.

https://github.com/zijiehe-google-com/engine/compare/de5c713..main
should show the diff between this and the original change.

Following paragraph is copied from the original change.

This change requires https://github.com/flutter/buildroot/pull/811, and
can be executed from buildroot by

```
python3 flutter/tools/fuchsia/with_envs.py flutter/testing/fuchsia/run_tests.py
```

Bug: https://github.com/flutter/flutter/issues/140179

## Pre-launch Checklist

- [V] I read the [Contributor Guide] and followed the process outlined
there for submitting PRs.
- [V] I read the [Tree Hygiene] wiki page, which explains my
responsibilities.
- [V] I read and followed the [Flutter Style Guide] and the [C++,
Objective-C, Java style guides].
- [V] I listed at least one issue that this PR fixes in the description
above.
- [V] 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.
- [V] I updated/added relevant documentation (doc comments with `///`).
- [V] I signed the [CLA].
- [V] All existing and new tests are passing.
2024-01-19 09:36:56 -08:00
Victoria Ashworth
0c7d05da12 Update tests to Xcode 15 and iOS 17 simulator (flutter/engine#49833)
Engine part of https://github.com/flutter/flutter/issues/132237.

Also, fixes https://github.com/flutter/flutter/issues/125227.

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-01-18 16:07:54 +00:00
Brandon DeRosier
c38b3676d9 [Flutter GPU] Run unittests on CI and fix HostBuffer. (flutter/engine#49789)
The Flutter GPU tests were broken, and it turns out that I had never set them up to run on CI. This fixes the HostBuffer and gets the test suite running on CI.
2024-01-16 19:01:54 +00:00
auto-submit[bot]
b174774059 Reverts "[Fuchsia] Use chromium test-scripts to download images and execute tests" (flutter/engine#49772)
Reverts flutter/engine#49650
Initiated by: CaseyHillers
This change reverts the following previous change:
Original Description:
This change requires https://github.com/flutter/buildroot/pull/811, and can be executed from buildroot by

```
python3 flutter/tools/fuchsia/with_envs.py flutter/testing/fuchsia/run_tests.py
```

Bug: https://github.com/flutter/flutter/issues/140179

- [V] I read the [Contributor Guide] and followed the process outlined there for submitting PRs.
- [V] I read the [Tree Hygiene] wiki page, which explains my responsibilities.
- [V] I read and followed the [Flutter Style Guide] and the [C++, Objective-C, Java style guides].
- [V] I listed at least one issue that this PR fixes in the description above.
- [V] 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.
- [V] I updated/added relevant documentation (doc comments with `///`).
- [V] I signed the [CLA].
- [V] All existing and new tests are passing.

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-01-12 19:30:29 +00:00
zijiehe@
cc3c0eeca9 [Fuchsia] Use chromium test-scripts to download images and execute tests (flutter/engine#49650)
This change requires https://github.com/flutter/buildroot/pull/811, and can be executed from buildroot by

```
python3 flutter/tools/fuchsia/with_envs.py flutter/testing/fuchsia/run_tests.py
```

Bug: https://github.com/flutter/flutter/issues/140179

- [V] I read the [Contributor Guide] and followed the process outlined there for submitting PRs.
- [V] I read the [Tree Hygiene] wiki page, which explains my responsibilities.
- [V] I read and followed the [Flutter Style Guide] and the [C++, Objective-C, Java style guides].
- [V] I listed at least one issue that this PR fixes in the description above.
- [V] 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.
- [V] I updated/added relevant documentation (doc comments with `///`).
- [V] I signed the [CLA].
- [V] All existing and new tests are passing.

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-01-12 17:04:31 +00:00
Dan Field
90ee2f7711 Try to get GLES tests running... (flutter/engine#49701)
I plan to fix the GLES fragment program reload issue, but first want to make sure this gets some failures for it.

Added a few skips for shaders that require an extension not available on CI (mipmap related ones).

Updated a couple tests that were failing.
2024-01-11 17:32:13 +00:00
Zachary Anderson
96ff752fd7 Skip flaky test on mac in http_disallow_http_connections_test.dart (flutter/engine#49635)
Related https://github.com/flutter/flutter/issues/141149
2024-01-09 09:10:32 -08:00
Dan Field
3078ba7036 Allow spawning additional UI isolates in flutter_tester (flutter/engine#48706)
This enables work ongoing by @derekxu16 to improve performance in flutter_tester when running multiple files from large test suites.

Specifically, it:

- Exposes a `Spawn` C symbol from flutter_tester that runs the current kernel in a new UI isolate with a different entrypoint and/or route name
- Exposes two symbols from flutter_tester to allow a test harness to more efficiently load particular kernel files or to lookup an entrypoint from an imported source file.
- Avoids re-loading the kernel file completely when spawning a new UI isolate

Googlers can look at go/flutter-tester-isolates for some more context. If anyone wants I'm happy to create a public version of that doc.
2024-01-05 17:13:59 +00:00