From 77c5a789b4b0b9e84598c0af6c7b3890c312071e Mon Sep 17 00:00:00 2001 From: Matan Lurey Date: Wed, 14 Feb 2024 14:39:56 -0800 Subject: [PATCH 1/5] Add useful default parameters for --adb and --out_dir. --- .../bin/android_integration_tests.dart | 35 +++++++++++++++++-- testing/scenario_app/pubspec.yaml | 1 + testing/scenario_app/run_android_tests.sh | 1 - 3 files changed, 34 insertions(+), 3 deletions(-) diff --git a/testing/scenario_app/bin/android_integration_tests.dart b/testing/scenario_app/bin/android_integration_tests.dart index 98b8b7abcb39c..4b7c96cfa355a 100644 --- a/testing/scenario_app/bin/android_integration_tests.dart +++ b/testing/scenario_app/bin/android_integration_tests.dart @@ -8,6 +8,7 @@ import 'dart:io'; import 'dart:typed_data'; import 'package:args/args.dart'; +import 'package:engine_repo_tools/engine_repo_tools.dart'; import 'package:path/path.dart'; import 'package:process/process.dart'; import 'package:skia_gold_client/skia_gold_client.dart'; @@ -18,16 +19,34 @@ import 'utils/screenshot_transformer.dart'; // If you update the arguments, update the documentation in the README.md file. void main(List args) async { + final Engine? engine = Engine.tryFindWithin(); final ArgParser parser = ArgParser() + ..addFlag( + 'help', + help: 'Prints usage information', + negatable: false, + ) ..addOption( 'adb', help: 'Absolute path to the adb tool', - mandatory: true, + defaultsTo: engine != null ? join( + engine.srcDir.path, + 'third_party', + 'android_tools', + 'sdk', + 'platform-tools', + 'adb', + ) : null, ) ..addOption( 'out-dir', help: 'Out directory', - mandatory: true, + defaultsTo: + engine?. + outputs(). + where((Output o) => basename(o.path.path).startsWith('android_')). + firstOrNull?. + path.path, ) ..addOption( 'smoke-test', @@ -52,6 +71,18 @@ void main(List args) async { runZonedGuarded( () async { final ArgResults results = parser.parse(args); + if (results['help'] as bool) { + stdout.writeln(parser.usage); + return; + } + + if (results['out-dir'] == null) { + panic(['--out-dir is required']); + } + if (results['adb'] == null) { + panic(['--adb is required']); + } + final Directory outDir = Directory(results['out-dir'] as String); final File adb = File(results['adb'] as String); final bool useSkiaGold = results['use-skia-gold'] as bool; diff --git a/testing/scenario_app/pubspec.yaml b/testing/scenario_app/pubspec.yaml index 51b1e0da40c9d..48df1bb67f20b 100644 --- a/testing/scenario_app/pubspec.yaml +++ b/testing/scenario_app/pubspec.yaml @@ -16,6 +16,7 @@ environment: # relative to this directory into //third_party/dart, or //third_party/pkg dependencies: args: any + engine_repo_tools: any path: any process: any sky_engine: any diff --git a/testing/scenario_app/run_android_tests.sh b/testing/scenario_app/run_android_tests.sh index 5a61d7d7ef584..4a808f72c0cdf 100755 --- a/testing/scenario_app/run_android_tests.sh +++ b/testing/scenario_app/run_android_tests.sh @@ -67,6 +67,5 @@ cd $SCRIPT_DIR "$SRC_DIR"/third_party/dart/tools/sdks/dart-sdk/bin/dart run \ "$SCRIPT_DIR"/bin/android_integration_tests.dart \ - --adb="$SRC_DIR"/third_party/android_tools/sdk/platform-tools/adb \ --out-dir="$OUT_DIR" \ "$@" From 13480db5f65c1d6bcc8c79fa03bf929888593e89 Mon Sep 17 00:00:00 2001 From: Matan Lurey Date: Wed, 14 Feb 2024 14:40:55 -0800 Subject: [PATCH 2/5] Update README. --- testing/scenario_app/bin/README.md | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/testing/scenario_app/bin/README.md b/testing/scenario_app/bin/README.md index 7964d6e5960cc..8c8678edec3a9 100644 --- a/testing/scenario_app/bin/README.md +++ b/testing/scenario_app/bin/README.md @@ -8,9 +8,7 @@ captured and compared using Skia Gold (if available, for example on CI). ## Usage ```sh -dart bin/android_integration_tests.dart \ - --adb ../third_party/android_tools/sdk/platform-tools/adb \ - --out-dir ../out/android_debug_unopt_arm64 +dart bin/android_integration_tests.dart ``` ## Debugging @@ -29,6 +27,12 @@ dart bin/android_integration_tests.dart \ ## Additional arguments +- `--adb`: The path to the `adb` tool. Defaults to + `third_party/android_tools/sdk/platform-tools/adb`. + +- `--out-dir`: The directory containing the build artifacts. Defaults to the + last updated build directory in `out/` that starts with `android_`. + - `--use-skia-gold`: Use Skia Gold to compare screenshots. Defaults to true when running on CI, and false otherwise (i.e. when running locally). If set to true, [isSkiaGoldClientAvailable] must be true. From 3881b6b395e050a3a3c30c1adf29cb881db344af Mon Sep 17 00:00:00 2001 From: Matan Lurey Date: Wed, 14 Feb 2024 14:43:12 -0800 Subject: [PATCH 3/5] ++ --- testing/scenario_app/bin/android_integration_tests.dart | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/testing/scenario_app/bin/android_integration_tests.dart b/testing/scenario_app/bin/android_integration_tests.dart index 4b7c96cfa355a..68e4f500943d9 100644 --- a/testing/scenario_app/bin/android_integration_tests.dart +++ b/testing/scenario_app/bin/android_integration_tests.dart @@ -36,12 +36,12 @@ void main(List args) async { 'sdk', 'platform-tools', 'adb', - ) : null, + ) : null, ) ..addOption( 'out-dir', help: 'Out directory', - defaultsTo: + defaultsTo: engine?. outputs(). where((Output o) => basename(o.path.path).startsWith('android_')). From 4eae3eaf991ea8216def5c6db43a8eed63c2f92d Mon Sep 17 00:00:00 2001 From: Matan Lurey Date: Wed, 14 Feb 2024 14:43:28 -0800 Subject: [PATCH 4/5] ++ --- testing/scenario_app/bin/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/testing/scenario_app/bin/README.md b/testing/scenario_app/bin/README.md index 8c8678edec3a9..57057c608e279 100644 --- a/testing/scenario_app/bin/README.md +++ b/testing/scenario_app/bin/README.md @@ -35,7 +35,7 @@ dart bin/android_integration_tests.dart \ - `--use-skia-gold`: Use Skia Gold to compare screenshots. Defaults to true when running on CI, and false otherwise (i.e. when running locally). If - set to true, [isSkiaGoldClientAvailable] must be true. + set to true, `isSkiaGoldClientAvailable` must be true. - `--enable-impeller`: Enable Impeller for the Android app. Defaults to false, which means that the app will use Skia as the graphics backend. From ba1b5fe3a07fd11bdb0a3559b3d3f23abe77acf4 Mon Sep 17 00:00:00 2001 From: Matan Lurey Date: Wed, 14 Feb 2024 14:43:48 -0800 Subject: [PATCH 5/5] ++ --- testing/scenario_app/bin/README.md | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/testing/scenario_app/bin/README.md b/testing/scenario_app/bin/README.md index 57057c608e279..03f04eba263bf 100644 --- a/testing/scenario_app/bin/README.md +++ b/testing/scenario_app/bin/README.md @@ -19,10 +19,7 @@ by class name, which can be useful to verify the setup. For example, to run the `EngineLaunchE2ETest` test: ```sh -dart bin/android_integration_tests.dart \ - --adb ../third_party/android_tools/sdk/platform-tools/adb \ - --out-dir ../out/android_debug_unopt_arm64 \ - --smoke-test dev.flutter.scenarios.EngineLaunchE2ETest +dart bin/android_integration_tests.dart --smoke-test dev.flutter.scenarios.EngineLaunchE2ETest ``` ## Additional arguments