mirror of
https://github.com/flutter/flutter.git
synced 2025-06-03 00:51:18 +00:00

* Testing whether emulator is possible. * Adding changes to see if emulator can be used from recipe. * adding emulator support. * Add the emulator flag for testing. * Using string for boolean since it cannot be parsed in properties * Checking to see if these changes are being used. * Updated bool back to string * Remove trailing whitespace from file.
86 lines
3.5 KiB
Dart
86 lines
3.5 KiB
Dart
// 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:args/command_runner.dart';
|
|
|
|
import '../framework/runner.dart';
|
|
|
|
class TestCommand extends Command<void> {
|
|
TestCommand() {
|
|
argParser.addOption('task',
|
|
abbr: 't',
|
|
help: 'The name of a task listed under bin/tasks.\n'
|
|
' Example: complex_layout__start_up.\n');
|
|
argParser.addMultiOption('task-args',
|
|
help: 'The name of a task listed under bin/tasks.\n'
|
|
'For example, "--task-args build" is passed as "bin/task/task.dart --build"');
|
|
argParser.addOption(
|
|
'device-id',
|
|
abbr: 'd',
|
|
help: 'Target device id (prefixes are allowed, names are not supported).\n'
|
|
'The option will be ignored if the test target does not run on a\n'
|
|
'mobile device. This still respects the device operating system\n'
|
|
'settings in the test case, and will results in error if no device\n'
|
|
'with given ID/ID prefix is found.',
|
|
);
|
|
argParser.addOption(
|
|
'git-branch',
|
|
help: '[Flutter infrastructure] Git branch of the current commit. LUCI\n'
|
|
'checkouts run in detached HEAD state, so the branch must be passed.',
|
|
);
|
|
argParser.addOption(
|
|
'local-engine',
|
|
help: 'Name of a build output within the engine out directory, if you\n'
|
|
'are building Flutter locally. Use this to select a specific\n'
|
|
'version of the engine if you have built multiple engine targets.\n'
|
|
'This path is relative to --local-engine-src-path/out. This option\n'
|
|
'is required when running an A/B test (see the --ab option).',
|
|
);
|
|
argParser.addOption(
|
|
'local-engine-src-path',
|
|
help: 'Path to your engine src directory, if you are building Flutter\n'
|
|
'locally. Defaults to \$FLUTTER_ENGINE if set, or tries to guess at\n'
|
|
'the location based on the value of the --flutter-root option.',
|
|
);
|
|
argParser.addOption('luci-builder', help: '[Flutter infrastructure] Name of the LUCI builder being run on.');
|
|
argParser.addOption('results-file',
|
|
help: '[Flutter infrastructure] File path for test results. If passed with\n'
|
|
'task, will write test results to the file.');
|
|
argParser.addFlag(
|
|
'silent',
|
|
help: 'Suppresses standard output and only print standard error output.',
|
|
);
|
|
argParser.addFlag(
|
|
'use-emulator',
|
|
help: 'Use an emulator instead of a device to run tests.'
|
|
);
|
|
}
|
|
|
|
@override
|
|
String get name => 'test';
|
|
|
|
@override
|
|
String get description => 'Run Flutter DeviceLab test';
|
|
|
|
@override
|
|
Future<void> run() async {
|
|
final List<String> taskArgsRaw = argResults!['task-args'] as List<String>;
|
|
// Prepend '--' to convert args to options when passed to task
|
|
final List<String> taskArgs = taskArgsRaw.map((String taskArg) => '--$taskArg').toList();
|
|
print(taskArgs);
|
|
await runTasks(
|
|
<String>[argResults!['task'] as String],
|
|
deviceId: argResults!['device-id'] as String?,
|
|
gitBranch: argResults!['git-branch'] as String?,
|
|
localEngine: argResults!['local-engine'] as String?,
|
|
localEngineSrcPath: argResults!['local-engine-src-path'] as String?,
|
|
luciBuilder: argResults!['luci-builder'] as String?,
|
|
resultsPath: argResults!['results-file'] as String?,
|
|
silent: (argResults!['silent'] as bool?) ?? false,
|
|
useEmulator: (argResults!['use-emulator'] as bool?) ?? false,
|
|
taskArgs: taskArgs,
|
|
);
|
|
}
|
|
}
|