diff --git a/dev/devicelab/bin/tasks/gradle_fast_start_test.dart b/dev/devicelab/bin/tasks/gradle_fast_start_test.dart new file mode 100644 index 00000000000..17da3a40d54 --- /dev/null +++ b/dev/devicelab/bin/tasks/gradle_fast_start_test.dart @@ -0,0 +1,41 @@ +// Copyright 2014 The Flutter Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +import 'package:flutter_devicelab/framework/apk_utils.dart'; +import 'package:flutter_devicelab/framework/framework.dart'; +import 'package:flutter_devicelab/framework/task_result.dart'; +import 'package:flutter_devicelab/framework/utils.dart'; + +Future main() async { + await task(() async { + try { + await runPluginProjectTest((FlutterPluginProject pluginProject) async { + section('APK content for task assembleDebug with --fast-start'); + await pluginProject.runGradleTask('assembleDebug', + options: ['-Pfast-start=true']); + + final Iterable apkFiles = await getFilesInApk(pluginProject.debugApkPath); + + checkCollectionContains([ + ...debugAssets, + ...baseApkFiles, + 'lib/x86/libflutter.so', + 'lib/x86_64/libflutter.so', + 'lib/armeabi-v7a/libflutter.so', + 'lib/arm64-v8a/libflutter.so', + ], apkFiles); + + checkCollectionDoesNotContain([ + ...flutterAssets, + ], apkFiles); + }); + + return TaskResult.success(null); + } on TaskResult catch (taskResult) { + return taskResult; + } catch (e) { + return TaskResult.failure(e.toString()); + } + }); +} diff --git a/dev/prod_builders.json b/dev/prod_builders.json index 43bf77396f8..90e14c3b8fb 100644 --- a/dev/prod_builders.json +++ b/dev/prod_builders.json @@ -60,6 +60,12 @@ "task_name": "linux_fuchsia_precache", "flaky": false }, + { + "name": "Linux gradle_fast_start_test", + "repo": "flutter", + "task_name": "linux_gradle_fast_start_test", + "flaky": false + }, { "name": "Linux gradle_jetifier_test", "repo": "flutter", @@ -180,6 +186,12 @@ "task_name": "mac_framework_tests", "flaky": false }, + { + "name": "Mac gradle_fast_start_test", + "repo": "flutter", + "task_name": "mac_gradle_fast_start_test", + "flaky": false + }, { "name": "Mac gradle_jetifier_test", "repo": "flutter", @@ -288,6 +300,12 @@ "task_name": "win_framework_tests", "flaky": false }, + { + "name": "Windows gradle_fast_start_test", + "repo": "flutter", + "task_name": "win_gradle_fast_start_test", + "flaky": false + }, { "name": "Windows gradle_jetifier_test", "repo": "flutter", diff --git a/dev/try_builders.json b/dev/try_builders.json index 26ecd387154..a1ea3b1b629 100644 --- a/dev/try_builders.json +++ b/dev/try_builders.json @@ -63,6 +63,13 @@ "task_name":"linux_fuchsia_precache", "enabled":true }, + { + "name":"Linux gradle_fast_start_test", + "repo":"flutter", + "task_name":"linux_gradle_fast_start_test", + "enabled":true, + "run_if": ["dev/**", "bin/**"] + }, { "name":"Linux gradle_jetifier_test", "repo":"flutter", @@ -207,6 +214,13 @@ "enabled":true, "run_if":["dev/**", "packages/flutter/**", "packages/flutter_goldens/**", "packages/flutter_goldens_client/**", "packages/flutter_test/**", "packages/flutter_tools/lib/src/test/**", "bin/**"] }, + { + "name":"Mac gradle_fast_start_test", + "repo":"flutter", + "task_name":"mac_gradle_fast_start_test", + "enabled":true, + "run_if":["dev/**", "bin/**"] + }, { "name":"Mac gradle_jetifier_test", "repo":"flutter", @@ -331,6 +345,13 @@ "enabled":true, "run_if":["dev/", "packages/flutter/", "packages/flutter_test/", "packages/flutter_goldens/", "packages/flutter_tools/lib/src/test/", "bin/"] }, + { + "name": "Windows gradle_fast_start_test", + "repo": "flutter", + "task_name": "win_gradle_fast_start_test", + "enabled":true, + "run_if":["dev/**", "bin/**"] + }, { "name": "Windows gradle_jetifier_test", "repo": "flutter",