40 Commits

Author SHA1 Message Date
Matan Lurey
5d5e633c44
Move (dev/tools), complete v0 of native_driver (Android) (#154843)
**This is a WIP**, and the only reason it is not a draft PR is so that Flutter (Skia) Gold is executed.

---

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

Work towards https://github.com/flutter/flutter/issues/148269.
2024-09-11 23:56:21 +00:00
Chris Bracken
07fcfd1776
iOS,macOS: Add list of expected-unsigned binaries (#154591)
This updates the codesigning test to account for iOS and macOS binaries in the artifact cache that are _expected_ to not be codesigned.

In https://github.com/flutter/engine/pull/54414 we started bundling dSYM (debugging symbols) within Flutter.xcframework, a requirement for App Store verification using Xcode 16.

We did the same for macOS in https://github.com/flutter/engine/pull/54696.

Unlike the framework dylib, dSYM contents are not directly codesigned (though the xcframework containing them is).

Issue: https://github.com/flutter/flutter/issues/154571
2024-09-04 18:27:06 +00:00
Chris Bracken
915b499228
iOS: Remove simulator dSYMs from codesign test (#154041)
In https://github.com/flutter/engine/pull/54746, we removed iOS simulator dSYMs from both the regular framework build and the extension-safe build.

Since these artifacts are no longer bundled in Flutter.xcframework, they are no longer codesigned and thus need to be removed from this list.

Issue: https://github.com/flutter/flutter/issues/154019
2024-08-24 02:00:29 +00:00
Chris Bracken
74e250428c
iOS: Update codesigned binaries list to match cache (#154027)
This was partially fixed in flutter/flutter#153787, which added just the extension-safe simulator dSYM, but we also bundle:

* arm64 release dSYM
* arm64 release extension-safe dSYM
* arm64_x86_64 simulator dSYM

In a followup engine patch, we'll stop bundling both the regular and extension-safe simulator dSYMs, but this gets the test passing at tip-of-tree.

Issue: https://github.com/flutter/flutter/issues/116493
2024-08-23 21:36:13 +00:00
Matan Lurey
5e194383af
Add a test of an Android platform view that draws a gradient (#153878)
Closes https://github.com/flutter/flutter/issues/152376.

The gradient, for posterity, looks like this:

<img src="https://github.com/user-attachments/assets/bed9599a-4e16-499c-af79-b51980095e89" width="150">

Let's see if CI agrees!

/cc @johnmccutchan
2024-08-23 18:25:40 +00:00
Chris Bracken
7f77e19f6b
macOS: Add dSYM to binariesWithoutEntitlements (#153977)
In https://github.com/flutter/engine/pull/54696, we started bundling `FlutterMacOS.framework.dSYM` within `FlutterMacOS.xcframework` in the framework artifacts cache. This updates the list of expected codesigned binaries to include this file.

Issue: https://github.com/flutter/flutter/issues/153879
2024-08-23 17:57:11 +00:00
Jason Simmons
30fc10d602
Update the web test suite runner to use the correct flutter_driver output path if FLUTTER_TEST_OUTPUTS_DIR is set (#153966)
A pending change to the flutter_drone LUCI recipe is using a logging library that sets the FLUTTER_TEST_OUTPUTS_DIR environment variable (see https://flutter.googlesource.com/recipes/+/b111cd3ef2297e66905cc48c2cfedce0cf1ba46f)

flutter_driver uses FLUTTER_TEST_OUTPUTS_DIR as its output directory if it is set.  run_web_tests invokes flutter_driver and needs to look for outputs in that directory.
2024-08-22 22:32:02 +00:00
Kevin Chisholm
448a116b82
[Release] Update bots to expect new entitlements (#153787)
When attempting to release the Flutter 3.24.1 hotfix, Flutter framework post submits failed due to the following error:

```
╔═╡ERROR #1╞════════════════════════════════════════════════════════════════════
║ UNEXPECTED ERROR!
║ Exception: Found unexpected binary in cache: /Volumes/Work/s/w/ir/x/w/flutter/bin/cache/artifacts/engine/ios-release/extension_safe/Flutter.xcframework/ios-arm64_x86_64-simulator/dSYMs/Flutter.framework.dSYM/Contents/Resources/DWARF/Flutter
║ #0      verifyExist (file:///Volumes/Work/s/w/ir/x/w/flutter/dev/bots/suite_runners/run_verify_binaries_codesigned_tests.dart:150:12)
║ <asynchronous suspension>
║ #1      verifyCodesignedTestRunner (file:///Volumes/Work/s/w/ir/x/w/flutter/dev/bots/suite_runners/run_verify_binaries_codesigned_tests.dart:28:3)
║ <asynchronous suspension>
║ #2      _runFromList (file:///Volumes/Work/s/w/ir/x/w/flutter/dev/bots/utils.dart:601:5)
║ <asynchronous suspension>
║ #3      main (file:///Volumes/Work/s/w/ir/x/w/flutter/dev/bots/test.dart:125:5)
║ <asynchronous suspension>
║ 
║ The test.dart script should be corrected to catch this error and call foundError().
║ Some tests are likely to have been skipped.
╚═══════════════════════════════════════════════════════════════════════════════
```

I've updated the tests to include the listed artifact.  

### Open questions
1. Is it possible that the test failed only on the first binary?
2. Do we expect a need to add the remainder of the [entitlement changes](c9b9d5780d)?
3. I am under the assumption that the bots pull from master and are not branch specific, is this a correct assumption?

CC @christopherfujino @cbracken
2024-08-20 20:45:32 +00:00
Matan Lurey
e11abea9d4
Disable DDS and Dart profiling for Android driver tests. (#152696)
Work around https://github.com/flutter/flutter/issues/152684, and probably indefinitely if we don't need it.
2024-08-01 20:13:42 +00:00
Matan Lurey
4ff9462be8
Fix local testing, gradle XML errors, and enable on CI. (#152383)
TIL you cannot have XML comments before the initial `<?xml` declaration.

Follow-up to https://github.com/flutter/flutter/pull/152326.
2024-08-01 09:10:45 -07:00
Matan Lurey
7f8ad8a4cb
Add and use an integration test with native(ADB) screenshots (#152326)
Closes https://github.com/flutter/flutter/issues/152325.

This PR is large due to generate `flutter create --platforms android`. A quick summary:

- Moves the integration test from `packages/flutter_driver/test` to `dev/integration_tests`
- Created a sample Flutter app that draws a blue rectangle
- Forked a subset of `package:flutter_goldens` that will work on the standalone Dart VM
- Forked a subset of `goldens.dart` (from `flutter_test`) to `src/native/goldens.dart` (i.e. `matchesGoldenFile`)

This ... works locally, but as usual I have no idea if it will work on Skia Gold so let's roll some dice.
2024-07-26 16:09:29 +00:00
Jackson Gardner
8f0e77696f
Set dart defines properly while in debug mode. (#152262)
Turns out just supporting the right value for `kDebugMode` was a lot simpler than I thought. Debug builds used to never go through the build system code path when using `flutter run`, but now that we have wasm this can occur with the run command.

This should address https://github.com/flutter/flutter/issues/148850
2024-07-25 22:00:50 +00:00
Matan Lurey
09461925a3
Scaffolding for NativeDriver and AndroidNativeDriver for taking screenshots using adb. (#152194)
Closes https://github.com/flutter/flutter/issues/152189.

I have next to no clue how to configure this to run on CI, so bear with me as I rediscover the wheel.
2024-07-24 20:12:19 +00:00
Jackson Gardner
17584ab790
Re-enable debug canvaskit e2e tests. (#151565)
Now that https://github.com/flutter/engine/pull/53718 is fixed, these tests should be fine.

After this, we should be able to close https://github.com/flutter/flutter/issues/147731
2024-07-11 20:05:53 +00:00
Gray Mackall
bb637f3128
Reland "Upgrade template Gradle, App AGP, Module AGP, and Kotlin versions, and tests"... but no longer upgrade module AGP version (#151433)
Relands https://github.com/flutter/flutter/pull/150969, but removes the upgrade to the module AGP version.

The reason is that a more complicated change is required because in AGP 8.0 software components are no longer generated by default, but rather only generated for variants that are configured to be published using the publishing DSL (see the `android.disableAutomaticComponentCreation` section of https://developer.android.com/build/releases/past-releases/agp-8-0-0-release-notes).

That broke our aar initialization script, because the components didn't exist so the `aar` tasks never got [created here](9ff9c67272/packages/flutter_tools/gradle/aar_init_script.gradle (L29)).

Verified that the one postsubmit that failed now passes (`android_obfuscate_test`)
2024-07-10 21:37:26 +00:00
auto-submit[bot]
dbc2dc88bc
Reverts "Upgrade template Gradle, App AGP, Module AGP, and Kotlin versions, and tests (#150969)" (#151147)
Reverts: flutter/flutter#150969
Initiated by: goderbauer
Reason for reverting: Failing test in https://logs.chromium.org/logs/flutter/buildbucket/cr-buildbucket/8743574743030691569/+/u/run_android_obfuscate_test/stdout
Original PR Author: gmackall

Reviewed By: {christopherfujino, reidbaker}

This change reverts the following previous change:
After the land of https://github.com/flutter/engine/pull/53592, there is some log spam:
```
e: /Users/mackall/.gradle/caches/transforms-3/c1e137371ec1afe9bc9bd7b05823752d/transformed/fragment-1.7.1/jars/classes.jar!/META-INF/fragment_release.kotlin_module: Module was compiled with an incompatible version of Kotlin. The binary version of its metadata is 1.8.0, expected version is 1.6.0.
e: /Users/mackall/.gradle/caches/transforms-3/d86c7cb1c556fe1655fa56db671c649c/transformed/jetified-activity-1.8.1/jars/classes.jar!/META-INF/activity_release.kotlin_module: Module was compiled with an incompatible version of Kotlin. The binary version of its metadata is 1.8.0, expected version is 1.6.0.
...
```

I think this is harmless, but still annoying. Upgrading the AGP version fixes it. To be honest, I don't know why (I expected the Kotlin version would do it). But after https://github.com/flutter/flutter/pull/146307, our tests have been running on AGP/Gradle 8.1/8.3 for a while, so it makes sense to upgrade anyways.

In a follow up PR:
1. Also upgrade the tests that were left behind in https://github.com/flutter/flutter/pull/146307, as I think removal of discontinued plugins paved the way here.
2024-07-01 23:31:26 +00:00
Gray Mackall
bd5ab96018
Upgrade template Gradle, App AGP, Module AGP, and Kotlin versions, and tests (#150969)
After the land of https://github.com/flutter/engine/pull/53592, there is some log spam:
```
e: /Users/mackall/.gradle/caches/transforms-3/c1e137371ec1afe9bc9bd7b05823752d/transformed/fragment-1.7.1/jars/classes.jar!/META-INF/fragment_release.kotlin_module: Module was compiled with an incompatible version of Kotlin. The binary version of its metadata is 1.8.0, expected version is 1.6.0.
e: /Users/mackall/.gradle/caches/transforms-3/d86c7cb1c556fe1655fa56db671c649c/transformed/jetified-activity-1.8.1/jars/classes.jar!/META-INF/activity_release.kotlin_module: Module was compiled with an incompatible version of Kotlin. The binary version of its metadata is 1.8.0, expected version is 1.6.0.
...
```

I think this is harmless, but still annoying. Upgrading the AGP version fixes it. To be honest, I don't know why (I expected the Kotlin version would do it). But after https://github.com/flutter/flutter/pull/146307, our tests have been running on AGP/Gradle 8.1/8.3 for a while, so it makes sense to upgrade anyways.

In a follow up PR:
1. Also upgrade the tests that were left behind in https://github.com/flutter/flutter/pull/146307, as I think removal of discontinued plugins paved the way here.
2024-07-01 21:41:59 +00:00
Yegor
ff0ab6ba45
Send q once (#149767)
The previous expression `success || line.contains('--- TEST FAILED ---')` made it such that as soon as success is reported, the test would send "q" on every line of stdout, which is wrong. This fixes the condition such that "q" is sent once, only when `--- TEST SUCCEEDED ---` or `--- TEST FAILED ---` is printed.
2024-06-05 22:44:01 +00:00
Yegor
180cda380c
Revert "make output of flutter run web tests verbose (#149694)" (#149766)
This reverts commit cd8e84f46511462fdc7ae8ffee2c9c1f7971fba3.

Can't tell why, but it seems to have broken some web tests.
2024-06-05 13:23:00 -07:00
Yegor
cd8e84f465
make output of flutter run web tests verbose (#149694)
This is to make debugging flakes on LUCI easier. Right now, when the tool crashes it saves the error output into a file and prints the file path, but the file is not accessible from LUCI.

Example: https://logs.chromium.org/logs/flutter/buildbucket/cr-buildbucket/8746361237956626577/+/u/run_test.dart_for_web_long_running_tests_shard_and_subshard_5_5/stdout
2024-06-05 15:02:53 +00:00
Yegor
d5836ee60c
[web] skip debug mode CanvasKit e2e tests due to flakiness; unskip all other modes (#147736)
- Skip debug mode CanvasKit e2e tests due to flakiness.
- Unskip all other modes (`text_editing_integration` was over-skipped).

Fixes https://github.com/flutter/flutter/issues/146189
2024-05-02 22:23:30 +00:00
Yegor
1d0e798c21
[web] increase chromedriver logging level (#147687)
This can help debugging https://github.com/flutter/flutter/issues/146189
2024-05-02 10:16:37 -07:00
Yegor
f256f68831
[web] remove platform_messages_integration test (#147654)
This functionality is already fully covered by https://github.com/flutter/engine/blob/main/lib/web_ui/test/engine/platform_views/message_handler_test.dart

This might help with https://github.com/flutter/flutter/issues/146189 a little.
2024-05-01 21:12:01 +00:00
Jesse
9689f7f89c
Refactor framework + test harness tests (#146213)
Refactor the framework + test harness test suites in order to reduce testing logic in test.dart and allow for later implementing package:test onto the existing tests

The refactor of both suites included in this PR because they both depended on util functions and variables that also needed to be refactored.

Part of https://github.com/flutter/flutter/issues/145482
2024-04-23 19:29:04 +00:00
Jesse
3b21c27c08
Refactor android preview tool integration tests (#146518)
Android preview tool integration test refactoring

Part of https://github.com/flutter/flutter/issues/145482
2024-04-19 20:05:33 +00:00
Jesse
ece6ac2bb6
Clean up flutterRoot (#147010)
The flutterroot param is accessible from the util function after the recent refactor of utils https://github.com/flutter/flutter/pull/146592 so this change cleans up the references to the suite runners to make them simpler. 

Part of https://github.com/flutter/flutter/issues/145482
2024-04-18 22:33:08 +00:00
Jesse
f0fc419a6c
Refactor framework coverage tests (#146210)
Refactor framework coverage tests in order to reduce testing logic in test.dart and allow for later implementing package:test onto the existing framework coverage tests

Part of https://github.com/flutter/flutter/issues/145482
2024-04-18 21:07:05 +00:00
Jesse
e660a93c63
Create web tests suite & runner_utils (#146592)
Move from `test.dart` into new `runner_utils.dart` file:
- shard calculation related methods + `shuffleSeed` logic
- env variable flag calculation
- runner wrapper methods `runDartTest` and `_runFromList`

Create web tests suite class containing:
- web long running tests
- runWebHtmlUnitTests
- runWebCanvasKitUnitTests
- runWebSkwasmUnitTests
- the associate helper methods with the above
2024-04-17 20:44:08 +00:00
Nate
2e748e8598
Implementing control flow collections (#146601)
This pull request aims for improved readability, based on issue #146600.

```dart
// before
Set<Color> _distinctVisibleColors() {
  final Set<Color> distinctVisibleColors = <Color>{};
  if (top.style != BorderStyle.none) {
    distinctVisibleColors.add(top.color);
  }
  if (right.style != BorderStyle.none) {
    distinctVisibleColors.add(right.color);
  }
  if (bottom.style != BorderStyle.none) {
    distinctVisibleColors.add(bottom.color);
  }
  if (left.style != BorderStyle.none) {
    distinctVisibleColors.add(left.color);
  }
  return distinctVisibleColors;
}

// after
Set<Color> _distinctVisibleColors() {
  return <Color>{
    if (top.style != BorderStyle.none) top.color,
    if (right.style != BorderStyle.none) right.color,
    if (bottom.style != BorderStyle.none) bottom.color,
    if (left.style != BorderStyle.none) left.color,
  };
}
```

Most of the repo should be covered in this PR (aside from `flutter_tools/`, since there was a lot going on in there).
2024-04-15 16:06:07 +00:00
Jackson Gardner
9973673752
Support flutter run --wasm and flutter drive --wasm. (#146231)
This adds support for adding the `--wasm` flag to `flutter run` and `flutter drive`
* Emits errors if you attempt to use the skwasm renderer without the `--wasm` flag
* Emits errors if you try to use `--wasm` when not using a web device
* Uses the skwasm renderer by default if you pass `--wasm` and no `--web-renderer`
2024-04-12 19:27:26 +00:00
Jesse
000101a369
Refactor verify codesigned (#146450)
Refactor verify codesigned tests in order to reduce testing logic in test.dart and allow for later implementing package:test onto the existing verify codesigned tests

Part of https://github.com/flutter/flutter/issues/145482
2024-04-11 18:33:39 +00:00
Jesse
b304740076
Refactor fuchsia_precache (#145978)
Refactor fuchsia_precache suite in order to reduce testing logic in test.dart and allow for later implementing package:test onto the existing fuchsia_precache tests

Part of https://github.com/flutter/flutter/issues/145482
2024-04-03 18:49:07 +00:00
Jesse
113013bb07
Refactor customer_testing (#145911)
Refactor customer_testing suite in order to reduce testing logic in test.dart and allow for later implementing package:test onto the existing customer_testing tests

Part of https://github.com/flutter/flutter/issues/145482

*If you had to change anything in the [flutter/tests] repo, include a link to the migration guide as per the [breaking change policy].*
2024-04-03 16:32:54 +00:00
Jesse
8b83371e20
Refactor docs (#145998)
Refactor docs testing suite in order to reduce testing logic in test.dart and allow for later implementing package:test onto the existing docs tests

Part of https://github.com/flutter/flutter/issues/145482
2024-04-02 23:26:51 +00:00
Jesse
d35c2553ae
Refactor analyze (#146138)
Refactor the analyze testing suite in order to reduce testing logic in test.dart and allow for later implementing package:test onto the existing analyze tests

Part of https://github.com/flutter/flutter/issues/145482
2024-04-02 21:13:14 +00:00
Jesse
f8a06f6418
Refactor realm_checker (#145905)
Refactor realm_checker suite in order to reduce testing logic in test.dart and allow for later implementing package:test onto the existing realm_checker tests

Part of https://github.com/flutter/flutter/issues/145482

*If you had to change anything in the [flutter/tests] repo, include a link to the migration guide as per the [breaking change policy].*
2024-04-01 21:49:19 +00:00
Jesse
93b071e727
Refactor flutter_plugins (#145870)
Refactor flutter_plugins suite in order to reduce testing logic in test.dart and allow for later implementing package:test onto the existing flutter_plugins tests

Also update the test_test invocation of getFlutterPackagesVersion

Part of https://github.com/flutter/flutter/issues/145482
2024-03-29 00:59:30 +00:00
Jesse
5ec5620743
Refactor skp_generator_tests (#145871)
Refactor skp_generator_tests suite in order to reduce testing logic in test.dart and allow for later implementing package:test onto the existing skp_generator_tests tests

Part of https://github.com/flutter/flutter/issues/145482
2024-03-28 19:01:40 +00:00
Jesse
6c0a4caa8a
Refactor web long running tests (#145776)
Refactor web long running tests in order to reduce testing logic in test.dart, create a suite_runners directory and allow for later implementing package:test onto the existing tests

Part of https://github.com/flutter/flutter/issues/145482
2024-03-27 15:32:17 +00:00
Jesse
2832611da8
Refactor add_to_app_life_cycle_tests (#145546)
Refactor add_to_app_life_cycle_tests in order to reduce testing logic in test.dart, create a suite_runners directory and allow for later implementing package:test onto add_to_app_life_cycle_tests

Part of https://github.com/flutter/flutter/issues/145482
2024-03-25 22:44:58 +00:00