1371 Commits

Author SHA1 Message Date
Zachary Anderson
92b630aa1e Add back unnecessary_parenthesis lint (flutter/engine#55931)
Follow-up from https://github.com/flutter/engine/pull/55927
2024-10-17 13:27:46 -07:00
gaaclarke
92923c20fd Started using a specific python for yapf (flutter/engine#55905)
fixes https://github.com/flutter/flutter/issues/156993

## 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-10-17 08:08:18 -07:00
auto-submit[bot]
a8961f9449 Reverts "[fuchsia] Remove pm use in build_fuchsia_artifacts (#55832)" (flutter/engine#55922)
Reverts: flutter/engine#55832
Initiated by: zijiehe-google-com
Reason for reverting: may break roller.
Original PR Author: zijiehe-google-com

Reviewed By: {jrwang}

This change reverts the following previous change:
This change removes the in-house built pm-based build rules in favor of the high level fuchsia_component / fuchsia_package in the gn-sdk.

Also the use of pm in build_fuchsia_artifacts.py is removed as the placements of the binaries changed.
https://github.com/flutter/engine/pull/55445 was a previous attempt and it generates [a malformatted cipd](https://chrome-infra-packages.appspot.com/p/flutter/fuchsia/+/vU1Op26qgO5XYs9S8AqQMvBwgITD9hq3-2dIu2H5-iwC).

Bug: http://b/353729557, http://b/368608542

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-10-17 01:12:46 +00:00
auto-submit[bot]
0e1b2a9058 Reverts "Manual roll Dart SDK from d916a5f69a48 to 2bf0f2b8d391 (24 revisions) (#55884)" (flutter/engine#55915)
Reverts: flutter/engine#55884
Initiated by: zanderso
Reason for reverting: b/373907578
Original PR Author: a-siva

Reviewed By: {srawlins, zanderso}

This change reverts the following previous change:
Manual roll requested by [asiva@google.com](mailto:asiva@google.com)

https://dart.googlesource.com/sdk.git/+log/d916a5f69a48..2bf0f2b8d391

2024-10-15 [dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com](mailto:dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com) Version 3.7.0-23.0.dev
2024-10-14 [dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com](mailto:dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com) Version 3.7.0-22.0.dev
2024-10-14 [dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com](mailto:dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com) Version 3.7.0-21.0.dev
2024-10-14 [dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com](mailto:dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com) Version 3.7.0-20.0.dev
2024-10-12 [dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com](mailto:dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com) Version 3.7.0-19.0.dev
2024-10-12 [dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com](mailto:dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com) Version 3.7.0-18.0.dev
2024-10-12 [dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com](mailto:dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com) Version 3.7.0-17.0.dev
2024-10-12 [dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com](mailto:dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com) Version 3.7.0-16.0.dev
2024-10-11 [dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com](mailto:dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com) Version 3.7.0-15.0.dev
2024-10-11 [dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com](mailto:dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com) Version 3.7.0-14.0.dev
2024-10-11 [dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com](mailto:dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com) Version 3.7.0-13.0.dev
2024-10-11 [dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com](mailto:dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com) Version 3.7.0-12.0.dev
2024-10-10 [dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com](mailto:dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com) Version 3.7.0-11.0.dev
2024-10-10 [dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com](mailto:dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com) Version 3.7.0-10.0.dev
2024-10-10 [dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com](mailto:dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com) Version 3.7.0-9.0.dev
2024-10-10 [dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com](mailto:dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com) Version 3.7.0-8.0.dev
2024-10-10 [dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com](mailto:dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com) Version 3.7.0-7.0.dev
2024-10-09 [dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com](mailto:dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com) Version 3.7.0-6.0.dev
2024-10-09 [dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com](mailto:dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com) Version 3.7.0-5.0.dev
2024-10-09 [dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com](mailto:dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com) Version 3.7.0-4.0.dev
2024-10-09 [dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com](mailto:dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com) Version 3.7.0-3.0.dev
2024-10-09 [dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com](mailto:dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com) Version 3.7.0-2.0.dev
2024-10-09 [dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com](mailto:dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com) Version 3.7.0-1.0.dev
2024-10-08 [dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com](mailto:dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com) Version 3.7.0-0.0.dev
2024-10-16 21:13:46 +00:00
zijiehe@
ccea3b80cc [fuchsia] Remove pm use in build_fuchsia_artifacts (flutter/engine#55832)
This change removes the in-house built pm-based build rules in favor of the high level fuchsia_component / fuchsia_package in the gn-sdk.

Also the use of pm in build_fuchsia_artifacts.py is removed as the placements of the binaries changed.
https://github.com/flutter/engine/pull/55445 was a previous attempt and it generates [a malformatted cipd](https://chrome-infra-packages.appspot.com/p/flutter/fuchsia/+/vU1Op26qgO5XYs9S8AqQMvBwgITD9hq3-2dIu2H5-iwC).

Bug: http://b/353729557, http://b/368608542

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-10-16 17:55:12 +00:00
Siva
f19aaeb32d Manual roll Dart SDK from d916a5f69a48 to 2bf0f2b8d391 (24 revisions) (flutter/engine#55884)
Manual roll requested by [asiva@google.com](mailto:asiva@google.com)

https://dart.googlesource.com/sdk.git/+log/d916a5f69a48..2bf0f2b8d391

2024-10-15
[dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com](mailto:dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com)
Version 3.7.0-23.0.dev
2024-10-14
[dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com](mailto:dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com)
Version 3.7.0-22.0.dev
2024-10-14
[dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com](mailto:dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com)
Version 3.7.0-21.0.dev
2024-10-14
[dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com](mailto:dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com)
Version 3.7.0-20.0.dev
2024-10-12
[dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com](mailto:dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com)
Version 3.7.0-19.0.dev
2024-10-12
[dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com](mailto:dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com)
Version 3.7.0-18.0.dev
2024-10-12
[dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com](mailto:dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com)
Version 3.7.0-17.0.dev
2024-10-12
[dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com](mailto:dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com)
Version 3.7.0-16.0.dev
2024-10-11
[dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com](mailto:dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com)
Version 3.7.0-15.0.dev
2024-10-11
[dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com](mailto:dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com)
Version 3.7.0-14.0.dev
2024-10-11
[dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com](mailto:dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com)
Version 3.7.0-13.0.dev
2024-10-11
[dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com](mailto:dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com)
Version 3.7.0-12.0.dev
2024-10-10
[dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com](mailto:dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com)
Version 3.7.0-11.0.dev
2024-10-10
[dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com](mailto:dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com)
Version 3.7.0-10.0.dev
2024-10-10
[dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com](mailto:dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com)
Version 3.7.0-9.0.dev
2024-10-10
[dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com](mailto:dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com)
Version 3.7.0-8.0.dev
2024-10-10
[dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com](mailto:dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com)
Version 3.7.0-7.0.dev
2024-10-09
[dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com](mailto:dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com)
Version 3.7.0-6.0.dev
2024-10-09
[dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com](mailto:dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com)
Version 3.7.0-5.0.dev
2024-10-09
[dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com](mailto:dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com)
Version 3.7.0-4.0.dev
2024-10-09
[dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com](mailto:dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com)
Version 3.7.0-3.0.dev
2024-10-09
[dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com](mailto:dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com)
Version 3.7.0-2.0.dev
2024-10-09
[dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com](mailto:dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com)
Version 3.7.0-1.0.dev
2024-10-08
[dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com](mailto:dart-internal-merge@dart-ci-internal.iam.gserviceaccount.com)
Version 3.7.0-0.0.dev

---------

Co-authored-by: skia-flutter-autoroll <skia-flutter-autoroll@skia.org>
2024-10-15 18:37:05 -07:00
auto-submit[bot]
205b056c01 Reverts "[Fuchsia] Use more high level fuchsia-gn-sdk templates (#55445)" (flutter/engine#55834)
Reverts: flutter/engine#55445
Initiated by: zijiehe-google-com
Reason for reverting: This change would break the build_fuchsia_artifacts.py without https://github.com/flutter/engine/pull/55832/files. I'd merge two into one.
Original PR Author: zijiehe-google-com

Reviewed By: {jrwang}

This change reverts the following previous change:
This change removes the in-house built pm-based build rules in favor of the high level fuchsia_component / fuchsia_package in the gn-sdk.

The build_fuchsia_artifacts.py is still using pm, and it will be handled in a following change.

Bug: http://b/353729557, http://b/368608542

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-10-11 17:51:47 +00:00
zijiehe@
54e9d74b7a [fuchsia] Use the right versioned libs according to the target-api-level (flutter/engine#55786)
Except for the vulkan, target-api-level should control the versions of the other libraries rather than the ones in ToT (//fuchsia/sdk/$host_os/arch/$target_cpu/dist).

FYI: @hjfreyer
Bug: http://b/40935282

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-10-11 17:27:05 +00:00
zijiehe@
297cf4be72 [Fuchsia] Use more high level fuchsia-gn-sdk templates (flutter/engine#55445)
This change removes the in-house built pm-based build rules in favor of
the high level fuchsia_component / fuchsia_package in the gn-sdk.

The build_fuchsia_artifacts.py is still using pm, and it will be handled
in a following change.

Bug: http://b/353729557, http://b/368608542

## 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-10-11 08:41:35 -07:00
Matan Lurey
ecb7c78604 Recognizegroup, and warn when we silently discard targets. (flutter/engine#55791)
Closes https://github.com/flutter/flutter/issues/156260.

Fixes the degenerate case where you specify an unrecognized target, and it falls back to rebuilding the entire engine as if you specified nothing. In addition, added recognition of `group`.
2024-10-10 18:45:49 +00:00
Matan Lurey
4f6d8c462d Move some et tests around and delete unused files. (flutter/engine#55764)
Just general cleanup with no behavioral changes.
2024-10-09 23:03:14 +00:00
Matan Lurey
173af3d95f Refactor multi-file build parsing into a single BuildPlan class. (flutter/engine#55720)
Closes https://github.com/flutter/flutter/issues/148444 (code de-duplicated).
Closes https://github.com/flutter/flutter/issues/150877 (`--build-strategy=local`).
Closes https://github.com/flutter/flutter/issues/150884 (`--build-strategy=remote`).

Replaces duplicate code across ~3 commands (query, test, build) with a class called `BuildPlan`, which encapsulates (a) concurrency, (b) build configuration, (c) RBE, (d) LTO, and (e) build strategy. I also moved all of the validation of the build plan into `build_plan_test`, which gives us better coverage at a lower cost (less things to think about in that suite of tests).

I know the diff looks scary, but 1K of the 1.4K is tests.

/cc @gaaclarke @flar
2024-10-08 23:45:20 +00:00
gaaclarke
96134c85e4 added shell_unittests and ui_unittests to the testing menu (flutter/engine#55711)
## 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-10-08 11:17:01 -07:00
John McCutchan
1e3d251560 Add --rbe-force-local flag to force rbe task execution to happen on the local machine (flutter/engine#55635)
`build`, `test`, and `run` commands all support the `--exec-strategy`
flag ('auto', 'local', 'remote').

This flag controls the RBE task execution strategy (when RBE is
enabled).

Closes #150877
2024-10-04 14:59:37 -07:00
Matan Lurey
9f49c8f4e3 Add support for et test //flutter/path/to/dart_test (flutter/engine#55638)
Closes https://github.com/flutter/flutter/issues/147013.
Closes https://github.com/flutter/flutter/issues/147071.

/cc @reidbaker who I know wants to do this for the Java rules soon TM.
/cc @jtmcdole, @zanderso for visibility.
2024-10-04 13:55:27 -07:00
Matan Lurey
92c9c99411 Add missing license headers to engine_tool. (flutter/engine#55636)
Address post-submit feedback on https://github.com/flutter/engine/pull/55537#pullrequestreview-2346684376.
2024-10-04 00:24:20 +00:00
Matan Lurey
887fcf0563 Add and use a dart_test rule. (flutter/engine#55630)
Work towards https://github.com/flutter/flutter/issues/147013.

I think I still need applicable metadata about the output, and then make
sure `et test` understands everything:

```sh
% et test //flutter/tools/engine_tool/...
[2024-10-03 13:26:42.657137] ERROR: No test targets found
```
2024-10-03 14:41:25 -07:00
Matan Lurey
6c9af1435d Refactor et run (and friends). (flutter/engine#55537)
Does a few things:

- Refactors `run_command_test` significantly to reduce global fixtures
- Replaced stringly-typed things with enum-like objects
- Adds a lot stronger coverage for `run_command` to make future refactors safer
- Takes advantage of `package:test` having a workable matchers system and uses it
- Changes `return 1` into `throw FatalError(...)` where it makes sense in `run_command`

As a result of the refactoring work, I also fixed a bug: Closes https://github.com/flutter/flutter/issues/147646.
2024-10-03 19:32:08 +00:00
Matan Lurey
7a1d324299 Remove all use of gn desc global test fixtures. (flutter/engine#55592)
Closes https://github.com/flutter/flutter/issues/148420.
2024-10-02 21:55:05 +00:00
Matan Lurey
44df46cab0 Use localized config data for et test tests. (flutter/engine#55573)
The logical "part 2.5" of the work started in https://github.com/flutter/engine/pull/55540.

Test output does not change, the tests just no longer rely on the global `fixtures.dart` data.
2024-10-02 17:45:00 +00:00
Matan Lurey
b8c26536c3 Use localized config data for et query tests. (flutter/engine#55572)
The logical "part 2" of the work started in https://github.com/flutter/engine/pull/55540.

Test output does not change, the tests just no longer rely on the global `fixtures.dart` data.
2024-10-02 17:41:10 +00:00
Matan Lurey
842e2fe8f1 Migrate off a global test fixture for build and lint. (flutter/engine#55540)
Partial work towards https://github.com/flutter/flutter/issues/148420, unblocks https://github.com/flutter/engine/pull/55537.

These tests can now be more precise, and changing the fixtures no longer has side-effects on tests across the entire repository. There are about 11 other usages (there were ~50 in these) after this PR that I'll get to, as well as the hard-coded `gn desc` output, before retiring `fixtures.dart`
2024-10-01 16:29:51 +00:00
Matan Lurey
ed6acfd197 Introduce a GN rule that (explicitly) generates a dart test wrapper (flutter/engine#55475)
Closes https://github.com/flutter/flutter/issues/155769.

This is a variant of the approach in https://github.com/flutter/engine/pull/52241, based on feedback from @jakemac53 and @jonahwilliams (who originally sped up `dart test` significantly by using `frontend_server` under the scenes: https://github.com/dart-lang/test/pull/1399), in short:

```gn
# tools/engine_tool/BUILD.gn

import("//flutter/build/dart/internal/gen_dartcli_call.gni")

gen_dartcli_call("tests") {
  args = [ "test" ]
  cwd = "//flutter/tools/engine_tool"
}
```

This stanza, when built (`ninja -C ../out/host_debug flutter/tools/engine_tool:tests`) generates the following file:

```sh
# ../out/host_debug/gen/flutter/tools/engine_tool/tests

set -e

# Needed because if it is set, cd may print the path it changed to.
unset CDPATH

# Store the current working directory.
prev_cwd=$(pwd)

# Set a trap to restore the working directory.
trap 'cd "$prev_cwd"' EXIT

CD_PATH="/Users/matanl/Developer/engine/src/flutter/tools/engine_tool"
if [ -n "$CD_PATH" ]; then
  cd "$CD_PATH"
fi

/Users/matanl/Developer/engine/src/flutter/prebuilts/macos-arm64/dart-sdk/bin/dart "test"
```

In turn, when executed (`../out/host_debug/gen/flutter/tools/engine_tool/tests`) it just runs `dart test`:

```sh
flutter % ../out/host_debug/gen/flutter/tools/engine_tool/tests
Building package executable... 
Built test:test.
00:00 +0: test/test_command_test.dart: test command executes test                                                                                                                                                                                                          
00:00 +3: test/run_command_test.dart: run command invokes flutter run
...
00:00 +117: All tests passed!
```

There is no actual compilation performed by the tool (that is handled implicitly by `dart test`), and as a result neither a `depfile` is needed, nor generating a pre-compiled artifact like a snapshot or AOT elf/assembly. 

---

This work is incomplete, that is, we'd want to properly tag the executable so `et` can find it, and create a wrapper template (i.e. `dart_test`) that tightens things up a bit, but I wanted to show the work at this intermediate step to get feedback before moving forward.

/cc @jonahwilliams, @jtmcdole as well.
2024-09-30 21:39:36 +00:00
Matan Lurey
a38103ac0e Remove the need to use runZoned by replacing print statements (flutter/engine#55530) 2024-09-30 21:33:21 +00:00
gaaclarke
74788642ea Added metal validation for `impeller_unittests (flutter/engine#55527)
This turns on Metal validation for launching impeller_unittests from the tests panel.  This matches the default behavior of launching tests from XCode.  Without these assertions errors in Metal are completely silent.  In my case I just got a black screen until I tried running the tests through xcode.

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-09-30 19:19:08 +00:00
Matan Lurey
2a0f911fef Migrate try/finally calls to addTearDown. (flutter/engine#55499)
I also removed other no-longer-enforced cruft. No behavioral changes.
2024-09-28 00:27:20 +00:00
Chris Bracken
d03ba742e2 cipd: add mobileprovision CIPD package (flutter/engine#55449)
Adds instructions for creating updated CIPD packages containing a new provisioning profile that goes with an updated signing certificate, for use on Chromium CI bots.

These are part of a broader set of steps required to renew our development signing certificate annually, as described in [cl/678826297](http://cl/678826297) (Google-internal).

Issue: https://github.com/flutter/flutter/issues/152888

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-09-26 17:21:06 +00:00
Matan Lurey
e89480f02d Move lint suppression from baseline.xml to @SuppressLint. (flutter/engine#55447)
I think you just had the lint identifier wrong?

Closes https://github.com/flutter/flutter/issues/155712.
2024-09-25 22:41:11 +00:00
jesswrd
21ddf3e6e3 Remove usages of WindowManager's getDefaultDisplay (flutter/engine#55002)
Removed deprecated usages of WindowManager's `getDefaultDisplay()` and
replaced them with DisplayManager's `getDisplay()`.

Note: Decided to keep a usage of `getDefaultDisplay()`, which can be
found in FlutterView.java because it is expected to be deleted as a part
of V1 embedding removal. No changes were made to that file.

path to FlutterView.java:
shell/platform/android/io/flutter/embedding/android/FlutterView.java

Fixes [#99421](https://github.com/flutter/flutter/issues/99421)

## 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-09-25 17:04:00 -04:00
gaaclarke
1076f5fd42 adds more tasks to the engine workspace (flutter/engine#55435)
- host_debug_unopt_arm64
- android_debug_unopt_arm64
- ios_debug_unopt_arm64 (missed in previous change)

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-09-25 17:18:57 +00:00
zijiehe@
cbaf3f8fbc [Fuchsia] Remove deprecated and unnecessary parameters from fuchsia*archive (flutter/engine#55324)
This is a precondition to use more high-level templates in fuchsia-gn-sdk to replace build rules in flutter.
Meanwhile fuchsia-gn-sdk does not use pm anymore and this change is also helpful to get rid of the use of pm.

Briefly, it removes all cmx_file parameters and avoids specifying duplicated parameters (binary / target_name / default cml file).

Bug: http://b/353729557, http://b/40935282

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-09-24 15:44:56 +00:00
gaaclarke
164c50b500 Made YAML version of vscode workspace to avoid redundancy (flutter/engine#55322)
In https://github.com/flutter/engine/pull/55291 we added a vscode workspace to help with running tests and sharing settings.  However, VSCode does not support a config format that has the ability to reduce redundancy and it will get quite unwieldy as we add in all of the engines test runners.  To combat that I've added instead a YAML config that can converted to JSON for VSCode.

This also adds 2 more test runners: display_list_unittests and impeller_golden_tests

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-09-23 21:24:05 +00:00
gaaclarke
fa68c30a0f Adds vscode workspace with impeller test runner (flutter/engine#55291)
This PR removes our checked in .vscode files and instead starts a vscode
workspace for the engine. As a first step I've added build tasks for the
arm64 `impeller_unittests`. I also setup C++ TestMate so that we can
easily navigate to tests and execute them. The tests will be rebuilt
before each execution.

The goal would be that eventually all of our c++ tests can be listed
here. This is going to make external contribution much easier and make
it so I don't have to keep editing the "launch.json" file to run
specific tests.


![ezgif-2-bcd582b44e](https://github.com/user-attachments/assets/11cea32e-628f-4626-b87d-9d3ebfe11357)

## 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-09-20 12:57:32 -07:00
Brandon DeRosier
806cddf7d3 Remove tinygltf (flutter/engine#55264)
This is another thing we were only using for Impeller Scene.
2024-09-17 20:53:22 +00:00
Matan Lurey
425e6c707d Remove all references to litetest from the engine repo. (flutter/engine#55163)
Closes https://github.com/flutter/flutter/issues/133569.
2024-09-12 16:26:25 -07:00
Brandon DeRosier
16acb8258a Remove Impeller Scene 👋 (flutter/engine#55118)
Impeller Scene has been fully rewritten as a Dart library for Flutter: https://pub.dev/packages/flutter_scene
2024-09-12 14:56:08 -07:00
Gray Mackall
bc422dfe62 Add a note about re generating Gradle lockfiles (flutter/engine#55150)
Adds a note that Gradle lockfile generation is necessary when updating the android embedding dependencies bundle.

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-09-12 21:10:49 +00:00
Matan Lurey
37f629a23f Migrate more tests from litetest to package:test (flutter/engine#55119)
Partial work towards https://github.com/flutter/flutter/issues/133569.

Commentary on removal of `assert`-conditionals here: https://github.com/flutter/flutter/issues/155054.
2024-09-12 19:01:05 +00:00
Matan Lurey
5aee88abfb Migrate const_finder_test to use package:test (flutter/engine#55132)
... instead of some home-grown framework.

This is the last test in the engine that uses custom command line arguments to start. As of this PR, `dart test` including full debugging in an IDE works across all Dart tooling code.

I tried to make this idiomatic as much as possible without changing the logic.
2024-09-12 15:30:33 +00:00
Gray Mackall
7a06558bd9 Replace System.loadLibrary with ReLinker.loadLibrary() in FlutterJNI.loadLibrary() (flutter/engine#55095)
Could fix? https://github.com/flutter/flutter/issues/83596

The communication on https://issuetracker.google.com/issues/346717090#comment2 recommends using [ReLinker](https://github.com/KeepSafe/ReLinker) to avoid a bug in how library loading interacts with the [Play delivery feature](https://developer.android.com/guide/playcore/feature-delivery) (used in turn by Flutter's deferred components).

The ReLinker docs also suggest that if you have `minSdk` less than `23`, then you should be using ReLinker regardless, as `System.loadLibrary` is unreliable for other reasons.

I don't have any strong evidence to suggest that either one of these two root causes is the definitive cause of https://github.com/flutter/flutter/issues/83596, but it probably wouldn't hurt 🤷 

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-09-11 21:05:52 +00:00
Matan Lurey
64fbc93023 Move more of the tests in the engine to package:test (flutter/engine#55083)
Partial work towards https://github.com/flutter/flutter/issues/133569.
2024-09-10 21:14:12 +00:00
Matan Lurey
d068ccc47d Add more package:test (removing usages of package:litetest) (flutter/engine#54882)
... also removed a few TODOs, deleted a proof of concept directory.

Work towards https://github.com/flutter/flutter/issues/133569.
2024-09-04 22:42:55 +00:00
Matan Lurey
1e6dde4eb1 Migrate another big chunk of the engine repo to package:test (flutter/engine#54853)
There are almost no behavioral changes.

Because `dart test` runs with assertions, and the former command does not, I had to tweak some of the engine tool tests because they would assert that there were duplicate names - but I didn't change any actual code besides the test expectations themselves/the fixtures.

This is not all of the engine, but is approximately 1/3 of all imports of `package:litetest` migrated.
2024-08-29 15:35:52 +00:00
Matan Lurey
87727168e8 Remove --disable-dart-dev across flutter/engine. (flutter/engine#54845)
As per the Dart CLI team and @bkonyi, this is no longer providing value and we shouldn't cargo-cult it.

Work towards https://github.com/flutter/flutter/issues/154268.
2024-08-29 00:12:32 +00:00
Matan Lurey
712e7b9a05 Migrateheader_guard_check to package:test. (flutter/engine#54811)
Work towards https://github.com/flutter/flutter/issues/133569.

I also augmented the `run_tests.py` script to support an incremental migration to `package:test`, PTAL.
2024-08-28 21:12:12 +00:00
zijiehe@
74850ce8c5 [fuchsia] use the api-level from gn-sdk (flutter/engine#54740)
https://crrev.com/c/5805927 provides the default api-level in gn-sdk, so
as long as we have the latest gn-sdk / skia setup, the api-level would
be updated automatically.

Bug: [347373793](http://b/347373793)

## 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-08-28 09:39:22 -07:00
Chris Bracken
d49826f5d2 clangd_check: write .clangd as part of test (flutter/engine#54766)
This eliminates the checked-in `.clangd` file at the root of the engine repository, which gets picked up by editors that rely on `clangd`. In particular, the `Remove: [-m*, -f*]` is problematic for iOS/macOS embedder developers since it removes the `-fobjc-arc` flag, which causes `clangd` to emit errors when using ARC features. Example:

    Cannot create __weak reference in file using manual reference counting

This removes the checked-in file, and instead writes the file before running the test, then cleans it up afterwards. Unfortunately, `clangd` does not appear to have a mechanism to point to a config file elsewhere and run as though it were present in a specified directory.

Fixes: https://github.com/flutter/flutter/issues/154064

[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
2024-08-26 17:16:20 +00:00
Jonny Wang
846176d6db [fuchsia] Use Fuchsia API 22 (flutter/engine#54554)
b/359664512

## 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-08-14 17:42:32 +01:00
Brandon DeRosier
b19fe31562 Revert "[Impeller] remove scene3d support." (flutter/engine#54502)
Reverts flutter/engine#54453

Not quite ready to remove Impeller Scene yet because I'm still porting
the animation functionality. Keeping it around allows me to switch back
and forth to compare without having to recompile the engine.

Over a month ago I said something like "we can revert this a couple of
weeks from now" in one of the Impeller meetings. But for better or worse
(better, I think), I ended up spending a ton of time trying to make the
PBR good first (which doesn't exist in this C++ version).
2024-08-12 10:28:51 -07:00
Jonah Williams
198d1f1077 [Impeller] remove scene3d support. (flutter/engine#54453)
Now that Flutter GPU is a preview, the technical debt from having an ifdef controlled additional rendering mode can be removed.
2024-08-09 16:38:56 +00:00