flutter/dev/integration_tests/native_driver_test
Gray Mackall 2948917a47
[Reland] Force automatic ndk download when building for Android (#160260)
Relands https://github.com/flutter/flutter/pull/159756.

The original caused some stderr because
1. the configurable `ndkVersion` value that AGP provides used to be null
by default.
2. Now it is not, instead it has a default value
3. `integration_test` doesn't actually use the NDK, but default for
`integration_test` was higher that `flutter.ndkVersion`
4. We have code that checks if a plugin uses a higher ndk version and
tells you to consider upgrading
https://github.com/flutter/flutter/blob/master/packages/flutter_tools/gradle/src/main/groovy/flutter.groovy#L921

This reverts the revert, and then aligns `integration_test`'s NDK
version (which again, it doesn't actually use, so I'm not too concerned
about the downgrade) with `flutter.ndkVersion`.

It also starts using the `flutter.min/compile/ndkVersion` values in
`integration_test`, which was unrelated to the original pr. Can remove
if you think it should land separately.

## 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], including [Features
we expect every widget to implement].
- [x] I signed the [CLA].
- [ ] I listed at least one issue that this PR fixes in the description
above.
- [x] I updated/added relevant documentation (doc comments with `///`).
- [x] I added new tests to check the change I am making, or this PR is
[test-exempt].
- [x] I followed the [breaking change policy] and added [Data Driven
Fixes] where supported.
- [ ] 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/blob/main/docs/contributing/Tree-hygiene.md#overview
[Tree Hygiene]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md
[test-exempt]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests
[Flutter Style Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md
[Features we expect every widget to implement]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement
[CLA]: https://cla.developers.google.com/
[flutter/tests]: https://github.com/flutter/tests
[breaking change policy]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes
[Discord]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md
[Data Driven Fixes]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md

---------

Co-authored-by: Gray Mackall <mackall@google.com>
2024-12-13 20:27:23 +00:00
..
android [Reland] Force automatic ndk download when building for Android (#160260) 2024-12-13 20:27:23 +00:00
ios Move (dev/tools), complete v0 of native_driver (Android) (#154843) 2024-09-11 23:56:21 +00:00
lib Move (dev/tools), complete v0 of native_driver (Android) (#154843) 2024-09-11 23:56:21 +00:00
test_driver [devicelab] try waiting for first frame. (#156907) 2024-10-15 20:37:09 +00:00
.metadata Move (dev/tools), complete v0 of native_driver (Android) (#154843) 2024-09-11 23:56:21 +00:00
pubspec.yaml Bump Dart SDK to 3.7 (#159812) 2024-12-05 21:39:53 +00:00
README.md Move (dev/tools), complete v0 of native_driver (Android) (#154843) 2024-09-11 23:56:21 +00:00

native_driver_test

This directory contains a sample app and tests that demonstrate how to use the (experimental) native Flutter Driver API to drive Flutter apps that run on Android or iOS devices or emulators, interact with and capture screenshots of the app, and compare the screenshots against golden images.

Running the apps and tests

Each lib/{prefix}_main.dart file is a standalone Flutter app that you can run on an Android or iOS device or emulator:

flutter_rendered_blue_rectangle

This app displays a full screen blue rectangle. It mostly serves as a test that Flutter can run at all on the target device, and that the Flutter (native) driver can take a screenshot and compare it to a golden image. If this app or test fails, it's likely none of the other apps or tests will work either.

# Run the app
$ flutter run lib/flutter_rendered_blue_rectangle_main.dart

# Run the test
$ flutter drive lib/flutter_rendered_blue_rectangle_main.dart

Files of significance:

Debugging tips

  • Use flutter drive --keep-app-running to keep the app running after the test.
  • USe flutter run followed by flutter drive --use-existing-app for faster test iterations.