From 021311ed8a2c182d3237330e5d8ae4c4937b3d76 Mon Sep 17 00:00:00 2001 From: Jonah Williams Date: Mon, 8 Feb 2021 09:21:46 -0800 Subject: [PATCH] Revert "[flutter_tools] move process manager into tool (#75350)" (#75639) This reverts commit 8b6baae44c8661d548643ced73493e6a66862622. --- dev/tools/pubspec.yaml | 2 + dev/tools/test/codesign_test.dart | 2 +- dev/tools/test/fake_process_manager.dart | 376 ----------------- dev/tools/test/roll_dev_test.dart | 2 +- .../lib/src/android/android_device.dart | 1 + .../src/android/android_device_discovery.dart | 1 + .../lib/src/android/android_emulator.dart | 1 + .../lib/src/android/android_workflow.dart | 2 +- .../lib/src/application_package.dart | 1 + packages/flutter_tools/lib/src/artifacts.dart | 2 +- .../flutter_tools/lib/src/base/build.dart | 1 + .../lib/src/base/error_handling_io.dart | 15 +- packages/flutter_tools/lib/src/base/os.dart | 1 + .../flutter_tools/lib/src/base/process.dart | 387 +----------------- .../lib/src/build_system/build_system.dart | 2 +- .../targets/icon_tree_shaker.dart | 2 +- packages/flutter_tools/lib/src/cache.dart | 1 + .../lib/src/commands/analyze.dart | 2 +- .../lib/src/commands/analyze_base.dart | 2 +- .../src/commands/analyze_continuously.dart | 2 +- .../lib/src/commands/analyze_once.dart | 2 +- .../lib/src/commands/downgrade.dart | 2 + packages/flutter_tools/lib/src/compile.dart | 2 +- .../flutter_tools/lib/src/context_runner.dart | 2 + .../flutter_tools/lib/src/dart/analysis.dart | 2 +- packages/flutter_tools/lib/src/dart/pub.dart | 1 + .../flutter_tools/lib/src/desktop_device.dart | 2 +- packages/flutter_tools/lib/src/device.dart | 2 +- .../lib/src/devtools_launcher.dart | 2 +- packages/flutter_tools/lib/src/doctor.dart | 2 +- packages/flutter_tools/lib/src/emulator.dart | 1 + .../lib/src/fuchsia/fuchsia_dev_finder.dart | 1 + packages/flutter_tools/lib/src/globals.dart | 6 +- .../lib/src/ios/code_signing.dart | 1 + .../flutter_tools/lib/src/ios/devices.dart | 2 +- .../flutter_tools/lib/src/ios/ios_deploy.dart | 1 + .../flutter_tools/lib/src/ios/iproxy.dart | 1 + packages/flutter_tools/lib/src/ios/mac.dart | 1 + .../lib/src/ios/plist_parser.dart | 1 + .../flutter_tools/lib/src/ios/simulators.dart | 1 + .../flutter_tools/lib/src/ios/xcodeproj.dart | 1 + .../lib/src/linux/linux_device.dart | 2 +- .../lib/src/linux/linux_doctor.dart | 2 +- .../lib/src/macos/cocoapods.dart | 1 + .../lib/src/macos/macos_device.dart | 2 +- .../flutter_tools/lib/src/macos/xcode.dart | 1 + .../lib/src/test/web_test_compiler.dart | 2 +- .../lib/src/tester/flutter_tester.dart | 2 +- .../flutter_tools/lib/src/web/chrome.dart | 2 +- .../flutter_tools/lib/src/web/web_device.dart | 2 +- .../lib/src/windows/visual_studio.dart | 1 + .../lib/src/windows/windows_device.dart | 2 +- .../hermetic/analyze_continuously_test.dart | 7 +- .../commands.shard/hermetic/attach_test.dart | 1 + .../hermetic/build_fuchsia_test.dart | 1 + .../hermetic/build_ipa_test.dart | 2 +- .../hermetic/build_linux_test.dart | 2 +- .../hermetic/build_macos_test.dart | 2 +- .../hermetic/build_web_test.dart | 1 - .../hermetic/build_windows_test.dart | 2 +- .../commands.shard/hermetic/clean_test.dart | 2 +- .../commands.shard/hermetic/devices_test.dart | 2 +- .../commands.shard/hermetic/doctor_test.dart | 2 +- .../hermetic/downgrade_test.dart | 1 - .../commands.shard/hermetic/pub_get_test.dart | 1 - .../commands.shard/hermetic/run_test.dart | 1 - .../hermetic/shell_completion_test.dart | 2 +- .../commands.shard/hermetic/test_test.dart | 2 +- .../permeable/analyze_once_test.dart | 7 +- .../permeable/build_aar_test.dart | 2 +- .../permeable/build_apk_test.dart | 2 +- .../permeable/build_appbundle_test.dart | 1 + .../permeable/build_bundle_test.dart | 2 +- .../commands.shard/permeable/create_test.dart | 2 +- .../permeable/packages_test.dart | 2 +- .../permeable/upgrade_test.dart | 2 +- .../test/general.shard/analytics_test.dart | 1 - .../android_device_discovery_test.dart | 1 - .../android/android_device_test.dart | 2 +- .../android/android_install_test.dart | 1 - .../android/android_sdk_test.dart | 2 +- .../android/android_studio_test.dart | 1 - .../android_studio_validator_test.dart | 2 +- .../android/gradle_errors_test.dart | 2 +- .../general.shard/android/gradle_test.dart | 2 +- .../android/gradle_utils_test.dart | 2 +- .../application_package_test.dart | 2 +- .../asset_bundle_package_fonts_test.dart | 1 - .../base/error_handling_io_test.dart | 2 +- .../test/general.shard/base/os_test.dart | 1 + .../general.shard/base/os_utils_test.dart | 2 +- .../base/process_manager_test.dart | 327 --------------- .../build_system/targets/web_test.dart | 1 + .../test/general.shard/cache_test.dart | 1 + .../test/general.shard/channel_test.dart | 1 + .../general.shard/compile_batch_test.dart | 1 + .../compile_expression_test.dart | 1 + .../compile_incremental_test.dart | 1 + .../test/general.shard/dart/pub_get_test.dart | 1 + .../general.shard/desktop_device_test.dart | 1 + .../drive/drive_service_test.dart | 1 + .../test/general.shard/emulator_test.dart | 1 + .../general.shard/flutter_platform_test.dart | 1 + .../fuchsia/fuchsia_dev_finder_test.dart | 1 + .../fuchsia/fuchsia_device_test.dart | 1 + .../general.shard/ios/code_signing_test.dart | 1 + .../general.shard/ios/ios_deploy_test.dart | 1 + .../test/general.shard/ios/mac_test.dart | 1 + .../general.shard/ios/simulators_test.dart | 1 + .../general.shard/ios/xcodeproj_test.dart | 1 + .../linux/linux_doctor_test.dart | 1 + .../general.shard/macos/cocoapods_test.dart | 1 + .../test/general.shard/macos/xcode_test.dart | 1 + .../runner/flutter_command_runner_test.dart | 1 + .../tester/flutter_tester_test.dart | 1 + .../test/general.shard/version_test.dart | 1 + .../web/golden_comparator_test.dart | 2 +- .../integration.shard/daemon_mode_test.dart | 2 + .../integration.shard/flutter_run_test.dart | 5 +- .../forbidden_imports_test.dart | 1 - .../test/integration.shard/test_driver.dart | 4 +- .../test/integration.shard/test_utils.dart | 7 +- .../integration.shard/unit_coverage_test.dart | 2 +- packages/flutter_tools/test/src/context.dart | 4 +- .../flutter_tools/test/src/darwin_common.dart | 2 +- .../test/src/fake_process_manager.dart | 13 +- packages/flutter_tools/test/src/mocks.dart | 2 +- packages/flutter_tools/test/src/testbed.dart | 1 + 128 files changed, 146 insertions(+), 1185 deletions(-) delete mode 100644 dev/tools/test/fake_process_manager.dart delete mode 100644 packages/flutter_tools/test/general.shard/base/process_manager_test.dart diff --git a/dev/tools/pubspec.yaml b/dev/tools/pubspec.yaml index cc5e1b25d98..09e160df507 100644 --- a/dev/tools/pubspec.yaml +++ b/dev/tools/pubspec.yaml @@ -7,6 +7,8 @@ environment: dependencies: archive: 3.0.0 args: 1.6.0 + flutter_tools: + path: '../../packages/flutter_tools' http: 0.12.2 intl: 0.17.0 meta: 1.3.0 diff --git a/dev/tools/test/codesign_test.dart b/dev/tools/test/codesign_test.dart index 18524ceb9b8..3200616394d 100644 --- a/dev/tools/test/codesign_test.dart +++ b/dev/tools/test/codesign_test.dart @@ -11,8 +11,8 @@ import 'package:file/memory.dart'; import 'package:meta/meta.dart'; import 'package:platform/platform.dart'; +import '../../../packages/flutter_tools/test/src/fake_process_manager.dart'; import './common.dart'; -import 'fake_process_manager.dart'; void main() { group('codesign command', () { diff --git a/dev/tools/test/fake_process_manager.dart b/dev/tools/test/fake_process_manager.dart deleted file mode 100644 index 0796926501f..00000000000 --- a/dev/tools/test/fake_process_manager.dart +++ /dev/null @@ -1,376 +0,0 @@ -// 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. - -// @dart = 2.8 - -import 'dart:async'; -import 'dart:convert'; -import 'dart:io'; - -import 'package:process/process.dart'; -import 'package:meta/meta.dart'; -import 'common.dart'; - -// TODO(flutter): consider moving this into package:process. - -typedef VoidCallback = void Function(); - -/// A command for [FakeProcessManager]. -@immutable -class FakeCommand { - const FakeCommand({ - @required this.command, - this.workingDirectory, - this.environment, - this.encoding, - this.duration = Duration.zero, - this.onRun, - this.exitCode = 0, - this.stdout = '', - this.stderr = '', - this.completer, - this.stdin, - }) : assert(command != null), - assert(duration != null), - assert(exitCode != null); - - /// The exact commands that must be matched for this [FakeCommand] to be - /// considered correct. - final List command; - - /// The exact working directory that must be matched for this [FakeCommand] to - /// be considered correct. - /// - /// If this is null, the working directory is ignored. - final String workingDirectory; - - /// The environment that must be matched for this [FakeCommand] to be considered correct. - /// - /// If this is null, then the environment is ignored. - /// - /// Otherwise, each key in this environment must be present and must have a - /// value that matches the one given here for the [FakeCommand] to match. - final Map environment; - - /// The stdout and stderr encoding that must be matched for this [FakeCommand] - /// to be considered correct. - /// - /// If this is null, then the encodings are ignored. - final Encoding encoding; - - /// The time to allow to elapse before returning the [exitCode], if this command - /// is "executed". - /// - /// If you set this to a non-zero time, you should use a [FakeAsync] zone, - /// otherwise the test will be artificially slow. - final Duration duration; - - /// A callback that is run after [duration] expires but before the [exitCode] - /// (and output) are passed back. - final VoidCallback onRun; - - /// The process' exit code. - /// - /// To simulate a never-ending process, set [duration] to a value greater than - /// 15 minutes (the timeout for our tests). - /// - /// To simulate a crash, subtract the crash signal number from 256. For example, - /// SIGPIPE (-13) is 243. - final int exitCode; - - /// The output to simulate on stdout. This will be encoded as UTF-8 and - /// returned in one go. - final String stdout; - - /// The output to simulate on stderr. This will be encoded as UTF-8 and - /// returned in one go. - final String stderr; - - /// If provided, allows the command completion to be blocked until the future - /// resolves. - final Completer completer; - - /// An optional stdin sink that will be exposed through the resulting - /// [FakeProcess]. - final IOSink stdin; - - void _matches( - List command, - String workingDirectory, - Map environment, - Encoding encoding, - ) { - expect(command, equals(this.command)); - if (this.workingDirectory != null) { - expect(this.workingDirectory, workingDirectory); - } - if (this.environment != null) { - expect(this.environment, environment); - } - if (this.encoding != null) { - expect(this.encoding, encoding); - } - } -} - -class _FakeProcess implements Process { - _FakeProcess( - this._exitCode, - Duration duration, - this.pid, - this._stderr, - this.stdin, - this._stdout, - this._completer, - ) : exitCode = Future.delayed(duration).then((void value) { - if (_completer != null) { - return _completer.future.then((void _) => _exitCode); - } - return _exitCode; - }), - stderr = _stderr == null - ? const Stream>.empty() - : Stream>.value(utf8.encode(_stderr)), - stdout = _stdout == null - ? const Stream>.empty() - : Stream>.value(utf8.encode(_stdout)); - - final int _exitCode; - final Completer _completer; - - @override - final Future exitCode; - - @override - final int pid; - - final String _stderr; - - @override - final Stream> stderr; - - @override - final IOSink stdin; - - @override - final Stream> stdout; - - final String _stdout; - - @override - bool kill([ProcessSignal signal = ProcessSignal.sigterm]) { - // Killing a fake process has no effect. - return false; - } -} - -abstract class FakeProcessManager implements ProcessManager { - /// A fake [ProcessManager] which responds to all commands as if they had run - /// instantaneously with an exit code of 0 and no output. - factory FakeProcessManager.any() = _FakeAnyProcessManager; - - /// A fake [ProcessManager] which responds to particular commands with - /// particular results. - /// - /// On creation, pass in a list of [FakeCommand] objects. When the - /// [ProcessManager] methods such as [start] are invoked, the next - /// [FakeCommand] must match (otherwise the test fails); its settings are used - /// to simulate the result of running that command. - /// - /// If no command is found, then one is implied which immediately returns exit - /// code 0 with no output. - /// - /// There is no logic to ensure that all the listed commands are run. Use - /// [FakeCommand.onRun] to set a flag, or specify a sentinel command as your - /// last command and verify its execution is successful, to ensure that all - /// the specified commands are actually called. - factory FakeProcessManager.list(List commands) = _SequenceProcessManager; - - FakeProcessManager._(); - - /// Adds a new [FakeCommand] to the current process manager. - /// - /// This can be used to configure test expectations after the [ProcessManager] has been - /// provided to another interface. - /// - /// This is a no-op on [FakeProcessManager.any]. - void addCommand(FakeCommand command); - - /// Add multiple [FakeCommand] to the current process manager. - void addCommands(Iterable commands) { - commands.forEach(addCommand); - } - - final Map _fakeRunningProcesses = {}; - - /// Whether this fake has more [FakeCommand]s that are expected to run. - /// - /// This is always `true` for [FakeProcessManager.any]. - bool get hasRemainingExpectations; - - @protected - FakeCommand findCommand( - List command, - String workingDirectory, - Map environment, - Encoding encoding, - ); - - int _pid = 9999; - - _FakeProcess _runCommand( - List command, - String workingDirectory, - Map environment, - Encoding encoding, - ) { - _pid += 1; - final FakeCommand fakeCommand = findCommand(command, workingDirectory, environment, encoding); - if (fakeCommand.onRun != null) { - fakeCommand.onRun(); - } - return _FakeProcess( - fakeCommand.exitCode, - fakeCommand.duration, - _pid, - fakeCommand.stderr, - fakeCommand.stdin, - fakeCommand.stdout, - fakeCommand.completer, - ); - } - - @override - Future start( - List command, { - String workingDirectory, - Map environment, - bool includeParentEnvironment = true, // ignored - bool runInShell = false, // ignored - ProcessStartMode mode = ProcessStartMode.normal, // ignored - }) { - final _FakeProcess process = _runCommand(command.cast(), workingDirectory, environment, systemEncoding); - if (process._completer != null) { - _fakeRunningProcesses[process.pid] = process; - process.exitCode.whenComplete(() { - _fakeRunningProcesses.remove(process.pid); - }); - } - return Future.value(process); - } - - @override - Future run( - List command, { - String workingDirectory, - Map environment, - bool includeParentEnvironment = true, // ignored - bool runInShell = false, // ignored - Encoding stdoutEncoding = systemEncoding, - Encoding stderrEncoding = systemEncoding, - }) async { - final _FakeProcess process = _runCommand(command.cast(), workingDirectory, environment, stdoutEncoding); - await process.exitCode; - return ProcessResult( - process.pid, - process._exitCode, - stdoutEncoding == null ? process.stdout : await stdoutEncoding.decodeStream(process.stdout), - stderrEncoding == null ? process.stderr : await stderrEncoding.decodeStream(process.stderr), - ); - } - - @override - ProcessResult runSync( - List command, { - String workingDirectory, - Map environment, - bool includeParentEnvironment = true, // ignored - bool runInShell = false, // ignored - Encoding stdoutEncoding = systemEncoding, // actual encoder is ignored - Encoding stderrEncoding = systemEncoding, // actual encoder is ignored - }) { - final _FakeProcess process = _runCommand(command.cast(), workingDirectory, environment, stdoutEncoding); - return ProcessResult( - process.pid, - process._exitCode, - stdoutEncoding == null ? utf8.encode(process._stdout) : process._stdout, - stderrEncoding == null ? utf8.encode(process._stderr) : process._stderr, - ); - } - - /// Returns false if executable in [excludedExecutables]. - @override - bool canRun(dynamic executable, {String workingDirectory}) => !excludedExecutables.contains(executable); - - Set excludedExecutables = {}; - - @override - bool killPid(int pid, [ProcessSignal signal = ProcessSignal.sigterm]) { - // Killing a fake process has no effect unless it has an attached completer. - final _FakeProcess fakeProcess = _fakeRunningProcesses[pid]; - if (fakeProcess == null) { - return false; - } - fakeProcess._completer.complete(); - return true; - } -} - -class _FakeAnyProcessManager extends FakeProcessManager { - _FakeAnyProcessManager() : super._(); - - @override - FakeCommand findCommand( - List command, - String workingDirectory, - Map environment, - Encoding encoding, - ) { - return FakeCommand( - command: command, - workingDirectory: workingDirectory, - environment: environment, - encoding: encoding, - duration: Duration.zero, - exitCode: 0, - stdout: '', - stderr: '', - ); - } - - @override - void addCommand(FakeCommand command) { } - - @override - bool get hasRemainingExpectations => true; -} - -class _SequenceProcessManager extends FakeProcessManager { - _SequenceProcessManager(this._commands) : super._(); - - final List _commands; - - @override - FakeCommand findCommand( - List command, - String workingDirectory, - Map environment, - Encoding encoding, - ) { - expect(_commands, isNotEmpty, - reason: 'ProcessManager was told to execute $command (in $workingDirectory) ' - 'but the FakeProcessManager.list expected no more processes.' - ); - _commands.first._matches(command, workingDirectory, environment, encoding); - return _commands.removeAt(0); - } - - @override - void addCommand(FakeCommand command) { - _commands.add(command); - } - - @override - bool get hasRemainingExpectations => _commands.isNotEmpty; -} diff --git a/dev/tools/test/roll_dev_test.dart b/dev/tools/test/roll_dev_test.dart index 8f5229876b7..e88cdaff2ea 100644 --- a/dev/tools/test/roll_dev_test.dart +++ b/dev/tools/test/roll_dev_test.dart @@ -9,8 +9,8 @@ import 'package:dev_tools/roll_dev.dart'; import 'package:dev_tools/globals.dart'; import 'package:dev_tools/repository.dart'; +import '../../../packages/flutter_tools/test/src/fake_process_manager.dart'; import './common.dart'; -import 'fake_process_manager.dart'; void main() { group('rollDev()', () { diff --git a/packages/flutter_tools/lib/src/android/android_device.dart b/packages/flutter_tools/lib/src/android/android_device.dart index e7260c7ab6e..e5af683cf61 100644 --- a/packages/flutter_tools/lib/src/android/android_device.dart +++ b/packages/flutter_tools/lib/src/android/android_device.dart @@ -7,6 +7,7 @@ import 'dart:async'; import 'package:meta/meta.dart'; +import 'package:process/process.dart'; import '../android/android_builder.dart'; import '../android/android_sdk.dart'; diff --git a/packages/flutter_tools/lib/src/android/android_device_discovery.dart b/packages/flutter_tools/lib/src/android/android_device_discovery.dart index d7f01250d7e..b712fbdeb3d 100644 --- a/packages/flutter_tools/lib/src/android/android_device_discovery.dart +++ b/packages/flutter_tools/lib/src/android/android_device_discovery.dart @@ -5,6 +5,7 @@ // @dart = 2.8 import 'package:meta/meta.dart'; +import 'package:process/process.dart'; import '../base/common.dart'; import '../base/file_system.dart'; diff --git a/packages/flutter_tools/lib/src/android/android_emulator.dart b/packages/flutter_tools/lib/src/android/android_emulator.dart index b5932c3f466..4378d26341f 100644 --- a/packages/flutter_tools/lib/src/android/android_emulator.dart +++ b/packages/flutter_tools/lib/src/android/android_emulator.dart @@ -7,6 +7,7 @@ import 'dart:async'; import 'package:meta/meta.dart'; +import 'package:process/process.dart'; import '../android/android_sdk.dart'; import '../android/android_workflow.dart'; diff --git a/packages/flutter_tools/lib/src/android/android_workflow.dart b/packages/flutter_tools/lib/src/android/android_workflow.dart index 2665cd199c8..cc3a55630a1 100644 --- a/packages/flutter_tools/lib/src/android/android_workflow.dart +++ b/packages/flutter_tools/lib/src/android/android_workflow.dart @@ -5,6 +5,7 @@ // @dart = 2.8 import 'package:meta/meta.dart'; +import 'package:process/process.dart'; import '../base/common.dart'; import '../base/context.dart'; @@ -13,7 +14,6 @@ import '../base/io.dart'; import '../base/logger.dart'; import '../base/os.dart'; import '../base/platform.dart'; -import '../base/process.dart'; import '../base/user_messages.dart' hide userMessages; import '../base/version.dart'; import '../convert.dart'; diff --git a/packages/flutter_tools/lib/src/application_package.dart b/packages/flutter_tools/lib/src/application_package.dart index 78fb7f130be..740674ab2b3 100644 --- a/packages/flutter_tools/lib/src/application_package.dart +++ b/packages/flutter_tools/lib/src/application_package.dart @@ -7,6 +7,7 @@ import 'dart:collection'; import 'package:meta/meta.dart'; +import 'package:process/process.dart'; import 'package:xml/xml.dart'; import 'android/android_sdk.dart'; diff --git a/packages/flutter_tools/lib/src/artifacts.dart b/packages/flutter_tools/lib/src/artifacts.dart index aef8921ef89..fc2e1808db8 100644 --- a/packages/flutter_tools/lib/src/artifacts.dart +++ b/packages/flutter_tools/lib/src/artifacts.dart @@ -5,11 +5,11 @@ // @dart = 2.8 import 'package:meta/meta.dart'; +import 'package:process/process.dart'; import 'base/common.dart'; import 'base/file_system.dart'; import 'base/platform.dart'; -import 'base/process.dart'; import 'base/utils.dart'; import 'build_info.dart'; import 'cache.dart'; diff --git a/packages/flutter_tools/lib/src/base/build.dart b/packages/flutter_tools/lib/src/base/build.dart index 1d7a7405fe8..a1fe82f8b82 100644 --- a/packages/flutter_tools/lib/src/base/build.dart +++ b/packages/flutter_tools/lib/src/base/build.dart @@ -5,6 +5,7 @@ // @dart = 2.8 import 'package:meta/meta.dart'; +import 'package:process/process.dart'; import '../artifacts.dart'; import '../build_info.dart'; diff --git a/packages/flutter_tools/lib/src/base/error_handling_io.dart b/packages/flutter_tools/lib/src/base/error_handling_io.dart index 383bdada7c4..2298cf66260 100644 --- a/packages/flutter_tools/lib/src/base/error_handling_io.dart +++ b/packages/flutter_tools/lib/src/base/error_handling_io.dart @@ -5,18 +5,17 @@ // @dart = 2.8 import 'dart:convert'; -import 'dart:io' as io show Directory, File, Link, ProcessException, ProcessResult, systemEncoding, Process, ProcessStartMode; +import 'dart:io' as io show Directory, File, Link, ProcessException, ProcessResult, ProcessSignal, systemEncoding, Process, ProcessStartMode; import 'dart:typed_data'; import 'package:file/file.dart'; import 'package:meta/meta.dart'; import 'package:path/path.dart' as p; // ignore: package_path_import +import 'package:process/process.dart'; import '../reporting/reporting.dart'; import 'common.dart' show throwToolExit; -import 'io.dart'; import 'platform.dart'; -import 'process.dart'; // The Flutter tool hits file system and process errors that only the end-user can address. // We would like these errors to not hit crash logging. In these cases, we @@ -674,7 +673,7 @@ class ErrorHandlingProcessManager extends ProcessManager { } @override - bool canRun(String executable, {String workingDirectory}) { + bool canRun(dynamic executable, {String workingDirectory}) { return _runSync( () => _delegate.canRun(executable, workingDirectory: workingDirectory), platform: _platform, @@ -682,7 +681,7 @@ class ErrorHandlingProcessManager extends ProcessManager { } @override - bool killPid(int pid, [ProcessSignal signal = ProcessSignal.SIGTERM]) { + bool killPid(int pid, [io.ProcessSignal signal = io.ProcessSignal.sigterm]) { return _runSync( () => _delegate.killPid(pid, signal), platform: _platform, @@ -691,7 +690,7 @@ class ErrorHandlingProcessManager extends ProcessManager { @override Future run( - List command, { + List command, { String workingDirectory, Map environment, bool includeParentEnvironment = true, @@ -725,7 +724,7 @@ class ErrorHandlingProcessManager extends ProcessManager { @override Future start( - List command, { + List command, { String workingDirectory, Map environment, bool includeParentEnvironment = true, @@ -754,7 +753,7 @@ class ErrorHandlingProcessManager extends ProcessManager { @override io.ProcessResult runSync( - List command, { + List command, { String workingDirectory, Map environment, bool includeParentEnvironment = true, diff --git a/packages/flutter_tools/lib/src/base/os.dart b/packages/flutter_tools/lib/src/base/os.dart index 87eef858056..6dd472973cc 100644 --- a/packages/flutter_tools/lib/src/base/os.dart +++ b/packages/flutter_tools/lib/src/base/os.dart @@ -7,6 +7,7 @@ import 'package:archive/archive.dart'; import 'package:file/file.dart'; import 'package:meta/meta.dart'; +import 'package:process/process.dart'; import '../build_info.dart'; import '../globals.dart' as globals; diff --git a/packages/flutter_tools/lib/src/base/process.dart b/packages/flutter_tools/lib/src/base/process.dart index ace02bc6688..e4b8e052c9b 100644 --- a/packages/flutter_tools/lib/src/base/process.dart +++ b/packages/flutter_tools/lib/src/base/process.dart @@ -7,15 +7,13 @@ import 'dart:async'; import 'package:meta/meta.dart'; -import 'package:file/local.dart' as local_fs; +import 'package:process/process.dart'; import '../convert.dart'; import 'common.dart'; import 'context.dart'; -import 'file_system.dart'; import 'io.dart'; import 'logger.dart'; -import 'platform.dart'; typedef StringConverter = String Function(String string); @@ -609,386 +607,3 @@ class _DefaultProcessUtils implements ProcessUtils { } } } - -/// Manages the creation of abstract processes. -/// -/// Using instances of this class provides level of indirection from the static -/// methods in the [Process] class, which in turn allows the underlying -/// implementation to be mocked out or decorated for testing and debugging -/// purposes. -abstract class ProcessManager { - /// Starts a process by running the specified [command]. - /// - /// The first element in [command] will be treated as the executable to run, - /// with subsequent elements being passed as arguments to the executable. It - /// is left to implementations to decide what element types they support in - /// the [command] list. - /// - /// Returns a `Future` that completes with a Process instance when - /// the process has been successfully started. That [Process] object can be - /// used to interact with the process. If the process cannot be started, the - /// returned [Future] completes with an exception. - /// - /// Use [workingDirectory] to set the working directory for the process. Note - /// that the change of directory occurs before executing the process on some - /// platforms, which may have impact when using relative paths for the - /// executable and the arguments. - /// - /// Use [environment] to set the environment variables for the process. If not - /// set, the environment of the parent process is inherited. Currently, only - /// US-ASCII environment variables are supported and errors are likely to occur - /// if an environment variable with code-points outside the US-ASCII range is - /// passed in. - /// - /// If [includeParentEnvironment] is `true`, the process's environment will - /// include the parent process's environment, with [environment] taking - /// precedence. Default is `true`. - /// - /// If [runInShell] is `true`, the process will be spawned through a system - /// shell. On Linux and OS X, `/bin/sh` is used, while - /// `%WINDIR%\system32\cmd.exe` is used on Windows. - /// - /// Users must read all data coming on the `stdout` and `stderr` - /// streams of processes started with [start]. If the user - /// does not read all data on the streams the underlying system - /// resources will not be released since there is still pending data. - /// - /// The following code uses `start` to grep for `main` in the - /// file `test.dart` on Linux. - /// - /// ProcessManager mgr = new LocalProcessManager(); - /// mgr.start('grep', ['-i', 'main', 'test.dart']).then((process) { - /// stdout.addStream(process.stdout); - /// stderr.addStream(process.stderr); - /// }); - /// - /// If [mode] is [ProcessStartMode.normal] (the default) a child - /// process will be started with `stdin`, `stdout` and `stderr` - /// connected. - /// - /// If `mode` is [ProcessStartMode.detached] a detached process will - /// be created. A detached process has no connection to its parent, - /// and can keep running on its own when the parent dies. The only - /// information available from a detached process is its `pid`. There - /// is no connection to its `stdin`, `stdout` or `stderr`, nor will - /// the process' exit code become available when it terminates. - /// - /// If `mode` is [ProcessStartMode.detachedWithStdio] a detached - /// process will be created where the `stdin`, `stdout` and `stderr` - /// are connected. The creator can communicate with the child through - /// these. The detached process will keep running even if these - /// communication channels are closed. The process' exit code will - /// not become available when it terminated. - /// - /// The default value for `mode` is `ProcessStartMode.NORMAL`. - Future start( - List command, { - String workingDirectory, - Map environment, - bool includeParentEnvironment = true, - bool runInShell = false, - ProcessStartMode mode = ProcessStartMode.normal, - }); - - /// Starts a process and runs it non-interactively to completion. - /// - /// The first element in [command] will be treated as the executable to run, - /// with subsequent elements being passed as arguments to the executable. - /// - /// Use [workingDirectory] to set the working directory for the process. Note - /// that the change of directory occurs before executing the process on some - /// platforms, which may have impact when using relative paths for the - /// executable and the arguments. - /// - /// Use [environment] to set the environment variables for the process. If not - /// set the environment of the parent process is inherited. Currently, only - /// US-ASCII environment variables are supported and errors are likely to occur - /// if an environment variable with code-points outside the US-ASCII range is - /// passed in. - /// - /// If [includeParentEnvironment] is `true`, the process's environment will - /// include the parent process's environment, with [environment] taking - /// precedence. Default is `true`. - /// - /// If [runInShell] is true, the process will be spawned through a system - /// shell. On Linux and OS X, `/bin/sh` is used, while - /// `%WINDIR%\system32\cmd.exe` is used on Windows. - /// - /// The encoding used for decoding `stdout` and `stderr` into text is - /// controlled through [stdoutEncoding] and [stderrEncoding]. The - /// default encoding is [systemEncoding]. If `null` is used no - /// decoding will happen and the [ProcessResult] will hold binary - /// data. - /// - /// Returns a `Future` that completes with the - /// result of running the process, i.e., exit code, standard out and - /// standard in. - /// - /// The following code uses `run` to grep for `main` in the - /// file `test.dart` on Linux. - /// - /// ProcessManager mgr = new LocalProcessManager(); - /// mgr.run('grep', ['-i', 'main', 'test.dart']).then((result) { - /// stdout.write(result.stdout); - /// stderr.write(result.stderr); - /// }); - Future run( - List command, { - String workingDirectory, - Map environment, - bool includeParentEnvironment = true, - bool runInShell = false, - Encoding stdoutEncoding = systemEncoding, - Encoding stderrEncoding = systemEncoding, - }); - - /// Starts a process and runs it to completion. This is a synchronous - /// call and will block until the child process terminates. - /// - /// The arguments are the same as for [run]`. - /// - /// Returns a `ProcessResult` with the result of running the process, - /// i.e., exit code, standard out and standard in. - ProcessResult runSync( - List command, { - String workingDirectory, - Map environment, - bool includeParentEnvironment = true, - bool runInShell = false, - Encoding stdoutEncoding = systemEncoding, - Encoding stderrEncoding = systemEncoding, - }); - - /// Returns `true` if the [executable] exists and if it can be executed. - bool canRun(String executable, {String workingDirectory}); - - /// Kills the process with id [pid]. - /// - /// Where possible, sends the [signal] to the process with id - /// `pid`. This includes Linux and OS X. The default signal is - /// [ProcessSignal.sigterm] which will normally terminate the - /// process. - /// - /// On platforms without signal support, including Windows, the call - /// just terminates the process with id `pid` in a platform specific - /// way, and the `signal` parameter is ignored. - /// - /// Returns `true` if the signal is successfully delivered to the - /// process. Otherwise the signal could not be sent, usually meaning - /// that the process is already dead. - bool killPid(int pid, [ProcessSignal signal = ProcessSignal.SIGTERM]); -} - -/// A process manager that delegates directly to the dart:io Process class. -class LocalProcessManager implements ProcessManager { - const LocalProcessManager({ - @visibleForTesting FileSystem fileSystem = const local_fs.LocalFileSystem(), - @visibleForTesting Platform platform = const LocalPlatform(), - }) : _platform = platform, - _fileSystem = fileSystem; - - final Platform _platform; - final FileSystem _fileSystem; - - @override - bool canRun(String executable, {String workingDirectory}) { - return getExecutablePath(executable, workingDirectory, platform: _platform, fileSystem: _fileSystem) != null; - } - - @override - bool killPid(int pid, [ProcessSignal signal = ProcessSignal.SIGTERM]) { - return signal.send(pid); - } - - @override - Future run(List command, { - String workingDirectory, - Map environment, - bool includeParentEnvironment = true, - bool runInShell = false, - Encoding stdoutEncoding = systemEncoding, - Encoding stderrEncoding = systemEncoding, - }) { - return Process.run( - sanitizeExecutablePath(_getExecutable( - command, - workingDirectory, - runInShell, - ), platform: _platform), - _getArguments(command), - environment: environment, - includeParentEnvironment: includeParentEnvironment, - stdoutEncoding: systemEncoding, - stderrEncoding: systemEncoding, - workingDirectory: workingDirectory, - runInShell: runInShell, - ); - } - - @override - ProcessResult runSync(List command, { - String workingDirectory, - Map environment, - bool includeParentEnvironment = true, - bool runInShell = false, - Encoding stdoutEncoding = systemEncoding, - Encoding stderrEncoding = systemEncoding, - }) { - return Process.runSync( - sanitizeExecutablePath(_getExecutable( - command, - workingDirectory, - runInShell, - ), platform: _platform), - _getArguments(command), - environment: environment, - includeParentEnvironment: includeParentEnvironment, - stdoutEncoding: systemEncoding, - stderrEncoding: systemEncoding, - workingDirectory: workingDirectory, - runInShell: runInShell, - ); - } - - @override - Future start( - List command, { - String workingDirectory, - Map environment, - bool includeParentEnvironment = true, - bool runInShell = false, - ProcessStartMode mode = ProcessStartMode.normal, - }) { - return Process.start( - sanitizeExecutablePath(_getExecutable( - command, - workingDirectory, - runInShell, - ), platform: _platform), - _getArguments(command), - workingDirectory: workingDirectory, - environment: environment, - includeParentEnvironment: includeParentEnvironment, - runInShell: runInShell, - mode: mode, - ); - } - - String _getExecutable( - List command, - String workingDirectory, - bool runInShell, - ) { - final String commandName = command.first.toString(); - if (runInShell) { - return commandName; - } - final String executable = getExecutablePath(commandName, workingDirectory, platform: _platform, fileSystem: _fileSystem); - if (executable == null) { - throw ArgumentError('Could not resolve $commandName to executablePath in $workingDirectory'); - } - return executable; - } - - List _getArguments( - List command, - ) { - return command.skip(1).toList(); - } -} - -/// Sanatizes the executable path on Windows. -/// https://github.com/dart-lang/sdk/issues/37751 -String sanitizeExecutablePath(String executable, {@required Platform platform }) { - if (executable.isEmpty) { - return executable; - } - if (!platform.isWindows) { - return executable; - } - if (executable.contains(' ') && !executable.contains('"')) { - // Use quoted strings to indicate where the file name ends and the arguments begin; - // otherwise, the file name is ambiguous. - return '"$executable"'; - } - return executable; -} - -/// Searches the `PATH` for the executable that [command] is supposed to launch. -/// -/// This first builds a list of candidate paths where the executable may reside. -/// If [command] is already an absolute path, then the `PATH` environment -/// variable will not be consulted, and the specified absolute path will be the -/// only candidate that is considered. -/// -/// Once the list of candidate paths has been constructed, this will pick the -/// first such path that represents an existent file. -/// -/// Return `null` if there were no viable candidates, meaning the executable -/// could not be found. -/// -/// If [platform] is not specified, it will default to the current platform. -@visibleForTesting -String getExecutablePath( - String command, - String workingDirectory, { - @required Platform platform, - @required FileSystem fileSystem, -}) { - try { - workingDirectory ??= fileSystem.currentDirectory.path; - } on FileSystemException { - // The `currentDirectory` getter can throw a FileSystemException for example - // when the process doesn't have read/list permissions in each component of - // the cwd path. In this case, fall back on '.'. - workingDirectory ??= '.'; - } - final String pathSeparator = platform.isWindows ? ';' : ':'; - - List extensions = []; - if (platform.isWindows && fileSystem.path.extension(command).isEmpty) { - extensions = platform.environment['PATHEXT'].split(pathSeparator); - } - - List candidates = []; - if (command.contains(fileSystem.path.separator)) { - candidates = _getCandidatePaths( - command, [workingDirectory], extensions, fileSystem); - } else { - final List searchPath = platform.environment['PATH'].split(pathSeparator); - candidates = _getCandidatePaths(command, searchPath, extensions, fileSystem); - } - for (final String path in candidates) { - if (fileSystem.file(path).existsSync()) { - return path; - } - } - return null; -} - -/// Returns all possible combinations of `$searchPath\$command.$ext` for -/// `searchPath` in [searchPaths] and `ext` in [extensions]. -/// -/// If [extensions] is empty, it will just enumerate all -/// `$searchPath\$command`. -/// If [command] is an absolute path, it will just enumerate -/// `$command.$ext`. -List _getCandidatePaths( - String command, - List searchPaths, - List extensions, - FileSystem fileSystem, -) { - final List withExtensions = extensions.isNotEmpty - ? extensions.map((String ext) => '$command$ext').toList() - : [command]; - if (fileSystem.path.isAbsolute(command)) { - return withExtensions; - } - return searchPaths - .map((String path) => - withExtensions.map((String command) => fileSystem.path.join(path, command))) - .expand((Iterable e) => e) - .toList() - .cast(); -} diff --git a/packages/flutter_tools/lib/src/build_system/build_system.dart b/packages/flutter_tools/lib/src/build_system/build_system.dart index 1c9a61eeea8..48013e80e05 100644 --- a/packages/flutter_tools/lib/src/build_system/build_system.dart +++ b/packages/flutter_tools/lib/src/build_system/build_system.dart @@ -9,13 +9,13 @@ import 'package:convert/convert.dart'; import 'package:crypto/crypto.dart'; import 'package:meta/meta.dart'; import 'package:pool/pool.dart'; +import 'package:process/process.dart'; import '../artifacts.dart'; import '../base/error_handling_io.dart'; import '../base/file_system.dart'; import '../base/logger.dart'; import '../base/platform.dart'; -import '../base/process.dart'; import '../base/utils.dart'; import '../cache.dart'; import '../convert.dart'; diff --git a/packages/flutter_tools/lib/src/build_system/targets/icon_tree_shaker.dart b/packages/flutter_tools/lib/src/build_system/targets/icon_tree_shaker.dart index 1bbefca6f8b..4eb4dc5ca8b 100644 --- a/packages/flutter_tools/lib/src/build_system/targets/icon_tree_shaker.dart +++ b/packages/flutter_tools/lib/src/build_system/targets/icon_tree_shaker.dart @@ -5,6 +5,7 @@ // @dart = 2.8 import 'package:meta/meta.dart'; +import 'package:process/process.dart'; import 'package:mime/mime.dart' as mime; import '../../artifacts.dart'; @@ -12,7 +13,6 @@ import '../../base/common.dart'; import '../../base/file_system.dart'; import '../../base/io.dart'; import '../../base/logger.dart'; -import '../../base/process.dart'; import '../../convert.dart'; import '../../devfs.dart'; import '../build_system.dart'; diff --git a/packages/flutter_tools/lib/src/cache.dart b/packages/flutter_tools/lib/src/cache.dart index 09179f523c6..8cdd95d2ab1 100644 --- a/packages/flutter_tools/lib/src/cache.dart +++ b/packages/flutter_tools/lib/src/cache.dart @@ -10,6 +10,7 @@ import 'package:crypto/crypto.dart'; import 'package:file/memory.dart'; import 'package:meta/meta.dart'; import 'package:package_config/package_config.dart'; +import 'package:process/process.dart'; import 'android/gradle_utils.dart'; import 'base/common.dart'; diff --git a/packages/flutter_tools/lib/src/commands/analyze.dart b/packages/flutter_tools/lib/src/commands/analyze.dart index 1012bbbaaa7..8b014f5e65d 100644 --- a/packages/flutter_tools/lib/src/commands/analyze.dart +++ b/packages/flutter_tools/lib/src/commands/analyze.dart @@ -5,12 +5,12 @@ // @dart = 2.8 import 'package:meta/meta.dart'; +import 'package:process/process.dart'; import '../artifacts.dart'; import '../base/file_system.dart'; import '../base/logger.dart'; import '../base/platform.dart'; -import '../base/process.dart'; import '../base/terminal.dart'; import '../runner/flutter_command.dart'; import 'analyze_continuously.dart'; diff --git a/packages/flutter_tools/lib/src/commands/analyze_base.dart b/packages/flutter_tools/lib/src/commands/analyze_base.dart index 3efc142c15c..b9ee1081e93 100644 --- a/packages/flutter_tools/lib/src/commands/analyze_base.dart +++ b/packages/flutter_tools/lib/src/commands/analyze_base.dart @@ -6,6 +6,7 @@ import 'package:args/args.dart'; import 'package:meta/meta.dart'; +import 'package:process/process.dart'; import 'package:yaml/yaml.dart' as yaml; import '../artifacts.dart'; @@ -13,7 +14,6 @@ import '../base/common.dart'; import '../base/file_system.dart'; import '../base/logger.dart'; import '../base/platform.dart'; -import '../base/process.dart'; import '../base/terminal.dart'; import '../base/utils.dart'; import '../cache.dart'; diff --git a/packages/flutter_tools/lib/src/commands/analyze_continuously.dart b/packages/flutter_tools/lib/src/commands/analyze_continuously.dart index 4ad30b0f8f1..84aa07e175c 100644 --- a/packages/flutter_tools/lib/src/commands/analyze_continuously.dart +++ b/packages/flutter_tools/lib/src/commands/analyze_continuously.dart @@ -6,6 +6,7 @@ import 'package:args/args.dart'; import 'package:meta/meta.dart'; +import 'package:process/process.dart'; import '../artifacts.dart'; import '../base/common.dart'; @@ -13,7 +14,6 @@ import '../base/file_system.dart'; import '../base/io.dart'; import '../base/logger.dart'; import '../base/platform.dart'; -import '../base/process.dart'; import '../base/terminal.dart'; import '../dart/analysis.dart'; import 'analyze_base.dart'; diff --git a/packages/flutter_tools/lib/src/commands/analyze_once.dart b/packages/flutter_tools/lib/src/commands/analyze_once.dart index dbc80aa2663..6a559092c2f 100644 --- a/packages/flutter_tools/lib/src/commands/analyze_once.dart +++ b/packages/flutter_tools/lib/src/commands/analyze_once.dart @@ -8,13 +8,13 @@ import 'dart:async'; import 'package:args/args.dart'; import 'package:meta/meta.dart'; +import 'package:process/process.dart'; import '../artifacts.dart'; import '../base/common.dart'; import '../base/file_system.dart'; import '../base/logger.dart'; import '../base/platform.dart'; -import '../base/process.dart'; import '../base/terminal.dart'; import '../dart/analysis.dart'; import 'analyze_base.dart'; diff --git a/packages/flutter_tools/lib/src/commands/downgrade.dart b/packages/flutter_tools/lib/src/commands/downgrade.dart index 88bbf557e24..71dfec2bd0b 100644 --- a/packages/flutter_tools/lib/src/commands/downgrade.dart +++ b/packages/flutter_tools/lib/src/commands/downgrade.dart @@ -4,6 +4,8 @@ // @dart = 2.8 +import 'package:process/process.dart'; + import '../base/common.dart'; import '../base/file_system.dart'; import '../base/io.dart'; diff --git a/packages/flutter_tools/lib/src/compile.dart b/packages/flutter_tools/lib/src/compile.dart index 0a5095a656d..76923c27468 100644 --- a/packages/flutter_tools/lib/src/compile.dart +++ b/packages/flutter_tools/lib/src/compile.dart @@ -8,6 +8,7 @@ import 'dart:async'; import 'package:meta/meta.dart'; import 'package:package_config/package_config.dart'; +import 'package:process/process.dart'; import 'package:usage/uuid/uuid.dart'; import 'artifacts.dart'; @@ -16,7 +17,6 @@ import 'base/file_system.dart'; import 'base/io.dart'; import 'base/logger.dart'; import 'base/platform.dart'; -import 'base/process.dart'; import 'build_info.dart'; import 'convert.dart'; diff --git a/packages/flutter_tools/lib/src/context_runner.dart b/packages/flutter_tools/lib/src/context_runner.dart index bb3139bb8ea..ae436f5611c 100644 --- a/packages/flutter_tools/lib/src/context_runner.dart +++ b/packages/flutter_tools/lib/src/context_runner.dart @@ -6,6 +6,8 @@ import 'dart:async'; +import 'package:process/process.dart'; + import 'android/android_sdk.dart'; import 'android/android_studio.dart'; import 'android/android_workflow.dart'; diff --git a/packages/flutter_tools/lib/src/dart/analysis.dart b/packages/flutter_tools/lib/src/dart/analysis.dart index cc05e919601..ef873b2b379 100644 --- a/packages/flutter_tools/lib/src/dart/analysis.dart +++ b/packages/flutter_tools/lib/src/dart/analysis.dart @@ -8,13 +8,13 @@ import 'dart:async'; import 'dart:math' as math; import 'package:meta/meta.dart'; +import 'package:process/process.dart'; import '../base/common.dart'; import '../base/file_system.dart'; import '../base/io.dart'; import '../base/logger.dart'; import '../base/platform.dart'; -import '../base/process.dart'; import '../base/terminal.dart'; import '../base/utils.dart'; import '../convert.dart'; diff --git a/packages/flutter_tools/lib/src/dart/pub.dart b/packages/flutter_tools/lib/src/dart/pub.dart index 61c9c44a803..535a08b41fe 100644 --- a/packages/flutter_tools/lib/src/dart/pub.dart +++ b/packages/flutter_tools/lib/src/dart/pub.dart @@ -6,6 +6,7 @@ import 'package:meta/meta.dart'; import 'package:package_config/package_config.dart'; +import 'package:process/process.dart'; import '../base/bot_detector.dart'; import '../base/common.dart'; diff --git a/packages/flutter_tools/lib/src/desktop_device.dart b/packages/flutter_tools/lib/src/desktop_device.dart index 20f7facb1d7..0a8d1b9c3e6 100644 --- a/packages/flutter_tools/lib/src/desktop_device.dart +++ b/packages/flutter_tools/lib/src/desktop_device.dart @@ -7,6 +7,7 @@ import 'dart:async'; import 'package:meta/meta.dart'; +import 'package:process/process.dart'; import 'application_package.dart'; import 'base/common.dart'; @@ -14,7 +15,6 @@ import 'base/file_system.dart'; import 'base/io.dart'; import 'base/logger.dart'; import 'base/os.dart'; -import 'base/process.dart'; import 'build_info.dart'; import 'convert.dart'; import 'devfs.dart'; diff --git a/packages/flutter_tools/lib/src/device.dart b/packages/flutter_tools/lib/src/device.dart index 1c6d661cc22..d6bbc427c93 100644 --- a/packages/flutter_tools/lib/src/device.dart +++ b/packages/flutter_tools/lib/src/device.dart @@ -8,6 +8,7 @@ import 'dart:async'; import 'dart:math' as math; import 'package:meta/meta.dart'; +import 'package:process/process.dart'; import 'package:vm_service/vm_service.dart' as vm_service; import 'android/android_device_discovery.dart'; @@ -24,7 +25,6 @@ import 'base/io.dart'; import 'base/logger.dart'; import 'base/os.dart'; import 'base/platform.dart'; -import 'base/process.dart'; import 'base/terminal.dart'; import 'base/user_messages.dart' hide userMessages; import 'base/utils.dart'; diff --git a/packages/flutter_tools/lib/src/devtools_launcher.dart b/packages/flutter_tools/lib/src/devtools_launcher.dart index 3562058534f..791f57726d2 100644 --- a/packages/flutter_tools/lib/src/devtools_launcher.dart +++ b/packages/flutter_tools/lib/src/devtools_launcher.dart @@ -8,11 +8,11 @@ import 'dart:async'; import 'package:http/http.dart' as http; import 'package:meta/meta.dart'; +import 'package:process/process.dart'; import 'base/io.dart' as io; import 'base/logger.dart'; import 'base/platform.dart'; -import 'base/process.dart'; import 'convert.dart'; import 'persistent_tool_state.dart'; import 'resident_runner.dart'; diff --git a/packages/flutter_tools/lib/src/doctor.dart b/packages/flutter_tools/lib/src/doctor.dart index 44b85900780..badb2943d5f 100644 --- a/packages/flutter_tools/lib/src/doctor.dart +++ b/packages/flutter_tools/lib/src/doctor.dart @@ -5,6 +5,7 @@ // @dart = 2.8 import 'package:meta/meta.dart'; +import 'package:process/process.dart'; import 'android/android_studio_validator.dart'; import 'android/android_workflow.dart'; @@ -15,7 +16,6 @@ import 'base/file_system.dart'; import 'base/logger.dart'; import 'base/os.dart'; import 'base/platform.dart'; -import 'base/process.dart'; import 'base/terminal.dart'; import 'base/user_messages.dart'; import 'base/utils.dart'; diff --git a/packages/flutter_tools/lib/src/emulator.dart b/packages/flutter_tools/lib/src/emulator.dart index de70d4ae267..e825ea2bbd3 100644 --- a/packages/flutter_tools/lib/src/emulator.dart +++ b/packages/flutter_tools/lib/src/emulator.dart @@ -7,6 +7,7 @@ import 'dart:math' as math; import 'package:meta/meta.dart'; +import 'package:process/process.dart'; import 'android/android_emulator.dart'; import 'android/android_sdk.dart'; diff --git a/packages/flutter_tools/lib/src/fuchsia/fuchsia_dev_finder.dart b/packages/flutter_tools/lib/src/fuchsia/fuchsia_dev_finder.dart index 44b6b9177d0..4086dfcbb36 100644 --- a/packages/flutter_tools/lib/src/fuchsia/fuchsia_dev_finder.dart +++ b/packages/flutter_tools/lib/src/fuchsia/fuchsia_dev_finder.dart @@ -5,6 +5,7 @@ // @dart = 2.8 import 'package:meta/meta.dart'; +import 'package:process/process.dart'; import '../base/common.dart'; import '../base/logger.dart'; diff --git a/packages/flutter_tools/lib/src/globals.dart b/packages/flutter_tools/lib/src/globals.dart index 7a04cce8c3d..9288e75a0be 100644 --- a/packages/flutter_tools/lib/src/globals.dart +++ b/packages/flutter_tools/lib/src/globals.dart @@ -4,6 +4,8 @@ // @dart = 2.8 +import 'package:process/process.dart'; + import 'android/android_sdk.dart'; import 'android/android_studio.dart'; import 'artifacts.dart'; @@ -80,8 +82,10 @@ FileSystemUtils get fsUtils => context.get() ?? FileSystemUtils platform: platform, ); +const ProcessManager _kLocalProcessManager = LocalProcessManager(); + /// The active process manager. -ProcessManager get processManager => context.get(); +ProcessManager get processManager => context.get() ?? _kLocalProcessManager; ProcessUtils get processUtils => context.get(); const Platform _kLocalPlatform = LocalPlatform(); diff --git a/packages/flutter_tools/lib/src/ios/code_signing.dart b/packages/flutter_tools/lib/src/ios/code_signing.dart index 22e2fce0f6d..20708d1d2e0 100644 --- a/packages/flutter_tools/lib/src/ios/code_signing.dart +++ b/packages/flutter_tools/lib/src/ios/code_signing.dart @@ -5,6 +5,7 @@ // @dart = 2.8 import 'package:meta/meta.dart'; +import 'package:process/process.dart'; import '../application_package.dart'; import '../base/common.dart'; diff --git a/packages/flutter_tools/lib/src/ios/devices.dart b/packages/flutter_tools/lib/src/ios/devices.dart index e29d606c736..a66f947edc9 100644 --- a/packages/flutter_tools/lib/src/ios/devices.dart +++ b/packages/flutter_tools/lib/src/ios/devices.dart @@ -7,6 +7,7 @@ import 'dart:async'; import 'package:meta/meta.dart'; +import 'package:process/process.dart'; import 'package:vm_service/vm_service.dart' as vm_service; import '../application_package.dart'; @@ -16,7 +17,6 @@ import '../base/io.dart'; import '../base/logger.dart'; import '../base/os.dart'; import '../base/platform.dart'; -import '../base/process.dart'; import '../base/utils.dart'; import '../build_info.dart'; import '../convert.dart'; diff --git a/packages/flutter_tools/lib/src/ios/ios_deploy.dart b/packages/flutter_tools/lib/src/ios/ios_deploy.dart index 55c8cecf0b4..9980d777411 100644 --- a/packages/flutter_tools/lib/src/ios/ios_deploy.dart +++ b/packages/flutter_tools/lib/src/ios/ios_deploy.dart @@ -7,6 +7,7 @@ import 'dart:async'; import 'package:meta/meta.dart'; +import 'package:process/process.dart'; import '../artifacts.dart'; import '../base/common.dart'; diff --git a/packages/flutter_tools/lib/src/ios/iproxy.dart b/packages/flutter_tools/lib/src/ios/iproxy.dart index e712b6f48bc..6ce94554eed 100644 --- a/packages/flutter_tools/lib/src/ios/iproxy.dart +++ b/packages/flutter_tools/lib/src/ios/iproxy.dart @@ -5,6 +5,7 @@ // @dart = 2.8 import 'package:meta/meta.dart'; +import 'package:process/process.dart'; import '../base/io.dart'; import '../base/logger.dart'; diff --git a/packages/flutter_tools/lib/src/ios/mac.dart b/packages/flutter_tools/lib/src/ios/mac.dart index e4bca0f05d3..9aeaf008023 100644 --- a/packages/flutter_tools/lib/src/ios/mac.dart +++ b/packages/flutter_tools/lib/src/ios/mac.dart @@ -5,6 +5,7 @@ // @dart = 2.8 import 'package:meta/meta.dart'; +import 'package:process/process.dart'; import '../application_package.dart'; import '../artifacts.dart'; diff --git a/packages/flutter_tools/lib/src/ios/plist_parser.dart b/packages/flutter_tools/lib/src/ios/plist_parser.dart index a3319a9510e..46efe26132c 100644 --- a/packages/flutter_tools/lib/src/ios/plist_parser.dart +++ b/packages/flutter_tools/lib/src/ios/plist_parser.dart @@ -5,6 +5,7 @@ // @dart = 2.8 import 'package:meta/meta.dart'; +import 'package:process/process.dart'; import '../base/file_system.dart'; import '../base/io.dart'; diff --git a/packages/flutter_tools/lib/src/ios/simulators.dart b/packages/flutter_tools/lib/src/ios/simulators.dart index 800f4e8615b..05d4a1df623 100644 --- a/packages/flutter_tools/lib/src/ios/simulators.dart +++ b/packages/flutter_tools/lib/src/ios/simulators.dart @@ -8,6 +8,7 @@ import 'dart:async'; import 'dart:math' as math; import 'package:meta/meta.dart'; +import 'package:process/process.dart'; import '../application_package.dart'; import '../base/common.dart'; diff --git a/packages/flutter_tools/lib/src/ios/xcodeproj.dart b/packages/flutter_tools/lib/src/ios/xcodeproj.dart index 56cb7d7b1f3..88d128055d6 100644 --- a/packages/flutter_tools/lib/src/ios/xcodeproj.dart +++ b/packages/flutter_tools/lib/src/ios/xcodeproj.dart @@ -6,6 +6,7 @@ import 'package:file/memory.dart'; import 'package:meta/meta.dart'; +import 'package:process/process.dart'; import '../artifacts.dart'; import '../base/common.dart'; diff --git a/packages/flutter_tools/lib/src/linux/linux_device.dart b/packages/flutter_tools/lib/src/linux/linux_device.dart index 07ccb7f4fd8..e122cea9a8b 100644 --- a/packages/flutter_tools/lib/src/linux/linux_device.dart +++ b/packages/flutter_tools/lib/src/linux/linux_device.dart @@ -5,12 +5,12 @@ // @dart = 2.8 import 'package:meta/meta.dart'; +import 'package:process/process.dart'; import '../base/file_system.dart'; import '../base/logger.dart'; import '../base/os.dart'; import '../base/platform.dart'; -import '../base/process.dart'; import '../build_info.dart'; import '../desktop_device.dart'; import '../device.dart'; diff --git a/packages/flutter_tools/lib/src/linux/linux_doctor.dart b/packages/flutter_tools/lib/src/linux/linux_doctor.dart index 6573e7376bc..73fa32fcb92 100644 --- a/packages/flutter_tools/lib/src/linux/linux_doctor.dart +++ b/packages/flutter_tools/lib/src/linux/linux_doctor.dart @@ -5,9 +5,9 @@ // @dart = 2.8 import 'package:meta/meta.dart'; +import 'package:process/process.dart'; import '../base/io.dart'; -import '../base/process.dart'; import '../base/user_messages.dart'; import '../base/version.dart'; import '../doctor.dart'; diff --git a/packages/flutter_tools/lib/src/macos/cocoapods.dart b/packages/flutter_tools/lib/src/macos/cocoapods.dart index 39aeb55240e..de0106401a7 100644 --- a/packages/flutter_tools/lib/src/macos/cocoapods.dart +++ b/packages/flutter_tools/lib/src/macos/cocoapods.dart @@ -6,6 +6,7 @@ import 'package:file/file.dart'; import 'package:meta/meta.dart'; +import 'package:process/process.dart'; import '../base/common.dart'; import '../base/error_handling_io.dart'; diff --git a/packages/flutter_tools/lib/src/macos/macos_device.dart b/packages/flutter_tools/lib/src/macos/macos_device.dart index 07f0fcbca1b..175255fc50c 100644 --- a/packages/flutter_tools/lib/src/macos/macos_device.dart +++ b/packages/flutter_tools/lib/src/macos/macos_device.dart @@ -5,13 +5,13 @@ // @dart = 2.8 import 'package:meta/meta.dart'; +import 'package:process/process.dart'; import '../base/file_system.dart'; import '../base/io.dart'; import '../base/logger.dart'; import '../base/os.dart'; import '../base/platform.dart'; -import '../base/process.dart'; import '../build_info.dart'; import '../desktop_device.dart'; import '../device.dart'; diff --git a/packages/flutter_tools/lib/src/macos/xcode.dart b/packages/flutter_tools/lib/src/macos/xcode.dart index 57ba8deee15..034b0d9e9b8 100644 --- a/packages/flutter_tools/lib/src/macos/xcode.dart +++ b/packages/flutter_tools/lib/src/macos/xcode.dart @@ -8,6 +8,7 @@ import 'dart:async'; import 'package:file/memory.dart'; import 'package:meta/meta.dart'; +import 'package:process/process.dart'; import '../artifacts.dart'; import '../base/common.dart'; diff --git a/packages/flutter_tools/lib/src/test/web_test_compiler.dart b/packages/flutter_tools/lib/src/test/web_test_compiler.dart index 53dad377da1..5ee47bf2251 100644 --- a/packages/flutter_tools/lib/src/test/web_test_compiler.dart +++ b/packages/flutter_tools/lib/src/test/web_test_compiler.dart @@ -6,6 +6,7 @@ import 'package:meta/meta.dart'; import 'package:package_config/package_config.dart'; +import 'package:process/process.dart'; import '../artifacts.dart'; import '../base/common.dart'; @@ -13,7 +14,6 @@ import '../base/config.dart'; import '../base/file_system.dart'; import '../base/logger.dart'; import '../base/platform.dart'; -import '../base/process.dart'; import '../build_info.dart'; import '../bundle.dart'; import '../compile.dart'; diff --git a/packages/flutter_tools/lib/src/tester/flutter_tester.dart b/packages/flutter_tools/lib/src/tester/flutter_tester.dart index 8270922fe23..d99e7efd1cf 100644 --- a/packages/flutter_tools/lib/src/tester/flutter_tester.dart +++ b/packages/flutter_tools/lib/src/tester/flutter_tester.dart @@ -7,6 +7,7 @@ import 'dart:async'; import 'package:meta/meta.dart'; +import 'package:process/process.dart'; import '../application_package.dart'; import '../artifacts.dart'; @@ -14,7 +15,6 @@ import '../base/config.dart'; import '../base/file_system.dart'; import '../base/io.dart'; import '../base/logger.dart'; -import '../base/process.dart'; import '../build_info.dart'; import '../bundle.dart'; import '../convert.dart'; diff --git a/packages/flutter_tools/lib/src/web/chrome.dart b/packages/flutter_tools/lib/src/web/chrome.dart index 0e448848498..427f1d85dad 100644 --- a/packages/flutter_tools/lib/src/web/chrome.dart +++ b/packages/flutter_tools/lib/src/web/chrome.dart @@ -7,6 +7,7 @@ import 'dart:async'; import 'package:meta/meta.dart'; +import 'package:process/process.dart'; import 'package:webkit_inspection_protocol/webkit_inspection_protocol.dart'; import '../base/common.dart'; @@ -15,7 +16,6 @@ import '../base/io.dart'; import '../base/logger.dart'; import '../base/os.dart'; import '../base/platform.dart'; -import '../base/process.dart'; import '../convert.dart'; /// An environment variable used to override the location of Google Chrome. diff --git a/packages/flutter_tools/lib/src/web/web_device.dart b/packages/flutter_tools/lib/src/web/web_device.dart index 044a73ba411..df30ecec26c 100644 --- a/packages/flutter_tools/lib/src/web/web_device.dart +++ b/packages/flutter_tools/lib/src/web/web_device.dart @@ -5,6 +5,7 @@ // @dart = 2.8 import 'package:meta/meta.dart'; +import 'package:process/process.dart'; import '../application_package.dart'; import '../base/file_system.dart'; @@ -12,7 +13,6 @@ import '../base/io.dart'; import '../base/logger.dart'; import '../base/os.dart'; import '../base/platform.dart'; -import '../base/process.dart'; import '../base/version.dart'; import '../build_info.dart'; import '../device.dart'; diff --git a/packages/flutter_tools/lib/src/windows/visual_studio.dart b/packages/flutter_tools/lib/src/windows/visual_studio.dart index cf2f9eb9d91..0aedcbb1a67 100644 --- a/packages/flutter_tools/lib/src/windows/visual_studio.dart +++ b/packages/flutter_tools/lib/src/windows/visual_studio.dart @@ -5,6 +5,7 @@ // @dart = 2.8 import 'package:meta/meta.dart'; +import 'package:process/process.dart'; import '../base/file_system.dart'; import '../base/io.dart'; diff --git a/packages/flutter_tools/lib/src/windows/windows_device.dart b/packages/flutter_tools/lib/src/windows/windows_device.dart index c67c8ddea7f..479802938d3 100644 --- a/packages/flutter_tools/lib/src/windows/windows_device.dart +++ b/packages/flutter_tools/lib/src/windows/windows_device.dart @@ -5,11 +5,11 @@ // @dart = 2.8 import 'package:meta/meta.dart'; +import 'package:process/process.dart'; import '../base/file_system.dart'; import '../base/logger.dart'; import '../base/os.dart'; -import '../base/process.dart'; import '../build_info.dart'; import '../desktop_device.dart'; import '../device.dart'; diff --git a/packages/flutter_tools/test/commands.shard/hermetic/analyze_continuously_test.dart b/packages/flutter_tools/test/commands.shard/hermetic/analyze_continuously_test.dart index cb0950eae6e..38d80865950 100644 --- a/packages/flutter_tools/test/commands.shard/hermetic/analyze_continuously_test.dart +++ b/packages/flutter_tools/test/commands.shard/hermetic/analyze_continuously_test.dart @@ -13,7 +13,6 @@ import 'package:flutter_tools/src/base/file_system.dart'; import 'package:flutter_tools/src/base/io.dart'; import 'package:flutter_tools/src/base/logger.dart'; import 'package:flutter_tools/src/base/platform.dart'; -import 'package:flutter_tools/src/base/process.dart'; import 'package:flutter_tools/src/base/terminal.dart'; import 'package:flutter_tools/src/cache.dart'; import 'package:flutter_tools/src/commands/analyze.dart'; @@ -21,6 +20,7 @@ import 'package:flutter_tools/src/dart/analysis.dart'; import 'package:flutter_tools/src/dart/pub.dart'; import 'package:flutter_tools/src/globals.dart' as globals; import 'package:mockito/mockito.dart'; +import 'package:process/process.dart'; import '../../src/common.dart'; import '../../src/context.dart'; @@ -41,10 +41,7 @@ void main() { setUp(() { fileSystem = LocalFileSystem.instance; platform = const LocalPlatform(); - processManager = LocalProcessManager( - fileSystem: fileSystem, - platform: platform, - ); + processManager = const LocalProcessManager(); terminal = AnsiTerminal(platform: platform, stdio: Stdio()); logger = BufferLogger(outputPreferences: OutputPreferences.test(), terminal: terminal); tempDir = fileSystem.systemTempDirectory.createTempSync('flutter_analysis_test.'); diff --git a/packages/flutter_tools/test/commands.shard/hermetic/attach_test.dart b/packages/flutter_tools/test/commands.shard/hermetic/attach_test.dart index 03bb779128a..92773934aad 100644 --- a/packages/flutter_tools/test/commands.shard/hermetic/attach_test.dart +++ b/packages/flutter_tools/test/commands.shard/hermetic/attach_test.dart @@ -26,6 +26,7 @@ import 'package:flutter_tools/src/run_hot.dart'; import 'package:flutter_tools/src/vmservice.dart'; import 'package:meta/meta.dart'; import 'package:mockito/mockito.dart'; +import 'package:process/process.dart'; import 'package:vm_service/vm_service.dart' as vm_service; import '../../src/common.dart'; diff --git a/packages/flutter_tools/test/commands.shard/hermetic/build_fuchsia_test.dart b/packages/flutter_tools/test/commands.shard/hermetic/build_fuchsia_test.dart index 4efecf70996..0ec608b113f 100644 --- a/packages/flutter_tools/test/commands.shard/hermetic/build_fuchsia_test.dart +++ b/packages/flutter_tools/test/commands.shard/hermetic/build_fuchsia_test.dart @@ -18,6 +18,7 @@ import 'package:flutter_tools/src/fuchsia/fuchsia_sdk.dart'; import 'package:flutter_tools/src/project.dart'; import 'package:meta/meta.dart'; import 'package:mockito/mockito.dart'; +import 'package:process/process.dart'; import '../../src/common.dart'; import '../../src/context.dart'; diff --git a/packages/flutter_tools/test/commands.shard/hermetic/build_ipa_test.dart b/packages/flutter_tools/test/commands.shard/hermetic/build_ipa_test.dart index 820dbe8c760..1f459c0c524 100644 --- a/packages/flutter_tools/test/commands.shard/hermetic/build_ipa_test.dart +++ b/packages/flutter_tools/test/commands.shard/hermetic/build_ipa_test.dart @@ -8,11 +8,11 @@ import 'package:file/memory.dart'; import 'package:flutter_tools/src/base/file_system.dart'; import 'package:flutter_tools/src/base/logger.dart'; import 'package:flutter_tools/src/base/platform.dart'; -import 'package:flutter_tools/src/base/process.dart'; import 'package:flutter_tools/src/cache.dart'; import 'package:flutter_tools/src/commands/build.dart'; import 'package:flutter_tools/src/ios/xcodeproj.dart'; import 'package:flutter_tools/src/reporting/reporting.dart'; +import 'package:process/process.dart'; import '../../src/common.dart'; import '../../src/context.dart'; diff --git a/packages/flutter_tools/test/commands.shard/hermetic/build_linux_test.dart b/packages/flutter_tools/test/commands.shard/hermetic/build_linux_test.dart index 051d484217f..e614b936f67 100644 --- a/packages/flutter_tools/test/commands.shard/hermetic/build_linux_test.dart +++ b/packages/flutter_tools/test/commands.shard/hermetic/build_linux_test.dart @@ -9,7 +9,6 @@ import 'package:file/memory.dart'; import 'package:file_testing/file_testing.dart'; import 'package:flutter_tools/src/base/file_system.dart'; import 'package:flutter_tools/src/base/platform.dart'; -import 'package:flutter_tools/src/base/process.dart'; import 'package:flutter_tools/src/base/utils.dart'; import 'package:flutter_tools/src/cache.dart'; import 'package:flutter_tools/src/cmake.dart'; @@ -18,6 +17,7 @@ import 'package:flutter_tools/src/commands/build_linux.dart'; import 'package:flutter_tools/src/features.dart'; import 'package:flutter_tools/src/project.dart'; import 'package:flutter_tools/src/reporting/reporting.dart'; +import 'package:process/process.dart'; import '../../src/common.dart'; import '../../src/context.dart'; diff --git a/packages/flutter_tools/test/commands.shard/hermetic/build_macos_test.dart b/packages/flutter_tools/test/commands.shard/hermetic/build_macos_test.dart index 2ffe2d59651..72c15d0681f 100644 --- a/packages/flutter_tools/test/commands.shard/hermetic/build_macos_test.dart +++ b/packages/flutter_tools/test/commands.shard/hermetic/build_macos_test.dart @@ -12,7 +12,6 @@ import 'package:flutter_tools/src/artifacts.dart'; import 'package:flutter_tools/src/base/file_system.dart'; import 'package:flutter_tools/src/base/logger.dart'; import 'package:flutter_tools/src/base/platform.dart'; -import 'package:flutter_tools/src/base/process.dart'; import 'package:flutter_tools/src/build_info.dart'; import 'package:flutter_tools/src/cache.dart'; import 'package:flutter_tools/src/commands/build.dart'; @@ -21,6 +20,7 @@ import 'package:flutter_tools/src/features.dart'; import 'package:flutter_tools/src/ios/xcodeproj.dart'; import 'package:flutter_tools/src/project.dart'; import 'package:flutter_tools/src/reporting/reporting.dart'; +import 'package:process/process.dart'; import '../../src/common.dart'; import '../../src/context.dart'; diff --git a/packages/flutter_tools/test/commands.shard/hermetic/build_web_test.dart b/packages/flutter_tools/test/commands.shard/hermetic/build_web_test.dart index 96a5e27f118..d5ac8d647f3 100644 --- a/packages/flutter_tools/test/commands.shard/hermetic/build_web_test.dart +++ b/packages/flutter_tools/test/commands.shard/hermetic/build_web_test.dart @@ -8,7 +8,6 @@ import 'package:args/command_runner.dart'; import 'package:file/memory.dart'; import 'package:flutter_tools/src/base/file_system.dart'; import 'package:flutter_tools/src/base/platform.dart'; -import 'package:flutter_tools/src/base/process.dart'; import 'package:flutter_tools/src/build_info.dart'; import 'package:flutter_tools/src/build_system/build_system.dart'; import 'package:flutter_tools/src/cache.dart'; diff --git a/packages/flutter_tools/test/commands.shard/hermetic/build_windows_test.dart b/packages/flutter_tools/test/commands.shard/hermetic/build_windows_test.dart index ffab943ddc2..06b06a311fd 100644 --- a/packages/flutter_tools/test/commands.shard/hermetic/build_windows_test.dart +++ b/packages/flutter_tools/test/commands.shard/hermetic/build_windows_test.dart @@ -8,13 +8,13 @@ import 'package:file/memory.dart'; import 'package:file_testing/file_testing.dart'; import 'package:flutter_tools/src/base/file_system.dart'; import 'package:flutter_tools/src/base/platform.dart'; -import 'package:flutter_tools/src/base/process.dart'; import 'package:flutter_tools/src/cache.dart'; import 'package:flutter_tools/src/commands/build_windows.dart'; import 'package:flutter_tools/src/features.dart'; import 'package:flutter_tools/src/reporting/reporting.dart'; import 'package:flutter_tools/src/windows/visual_studio.dart'; import 'package:mockito/mockito.dart'; +import 'package:process/process.dart'; import '../../src/common.dart'; import '../../src/context.dart'; diff --git a/packages/flutter_tools/test/commands.shard/hermetic/clean_test.dart b/packages/flutter_tools/test/commands.shard/hermetic/clean_test.dart index 4c800ed35d6..fbdbffeb158 100644 --- a/packages/flutter_tools/test/commands.shard/hermetic/clean_test.dart +++ b/packages/flutter_tools/test/commands.shard/hermetic/clean_test.dart @@ -9,12 +9,12 @@ import 'package:flutter_tools/src/base/context.dart'; import 'package:flutter_tools/src/base/file_system.dart'; import 'package:flutter_tools/src/base/logger.dart'; import 'package:flutter_tools/src/base/platform.dart'; -import 'package:flutter_tools/src/base/process.dart'; import 'package:flutter_tools/src/commands/clean.dart'; import 'package:flutter_tools/src/ios/xcodeproj.dart'; import 'package:flutter_tools/src/macos/xcode.dart'; import 'package:flutter_tools/src/project.dart'; import 'package:mockito/mockito.dart'; +import 'package:process/process.dart'; import '../../src/common.dart'; import '../../src/context.dart'; diff --git a/packages/flutter_tools/test/commands.shard/hermetic/devices_test.dart b/packages/flutter_tools/test/commands.shard/hermetic/devices_test.dart index 7462be995e7..42b89425abe 100644 --- a/packages/flutter_tools/test/commands.shard/hermetic/devices_test.dart +++ b/packages/flutter_tools/test/commands.shard/hermetic/devices_test.dart @@ -8,11 +8,11 @@ import 'dart:convert'; import 'package:flutter_tools/src/android/android_sdk.dart'; import 'package:flutter_tools/src/artifacts.dart'; -import 'package:flutter_tools/src/base/process.dart'; import 'package:flutter_tools/src/cache.dart'; import 'package:flutter_tools/src/commands/devices.dart'; import 'package:flutter_tools/src/device.dart'; import 'package:flutter_tools/src/globals.dart' as globals; +import 'package:process/process.dart'; import '../../src/common.dart'; import '../../src/context.dart'; diff --git a/packages/flutter_tools/test/commands.shard/hermetic/doctor_test.dart b/packages/flutter_tools/test/commands.shard/hermetic/doctor_test.dart index 0fadb98b89b..39fd9fc3d43 100644 --- a/packages/flutter_tools/test/commands.shard/hermetic/doctor_test.dart +++ b/packages/flutter_tools/test/commands.shard/hermetic/doctor_test.dart @@ -14,7 +14,6 @@ import 'package:flutter_tools/src/base/common.dart'; import 'package:flutter_tools/src/base/file_system.dart'; import 'package:flutter_tools/src/base/logger.dart'; import 'package:flutter_tools/src/base/platform.dart'; -import 'package:flutter_tools/src/base/process.dart'; import 'package:flutter_tools/src/base/terminal.dart'; import 'package:flutter_tools/src/base/user_messages.dart'; import 'package:flutter_tools/src/build_info.dart'; @@ -30,6 +29,7 @@ import 'package:flutter_tools/src/vscode/vscode.dart'; import 'package:flutter_tools/src/vscode/vscode_validator.dart'; import 'package:flutter_tools/src/web/workflow.dart'; import 'package:mockito/mockito.dart'; +import 'package:process/process.dart'; import 'package:fake_async/fake_async.dart'; import '../../src/common.dart'; diff --git a/packages/flutter_tools/test/commands.shard/hermetic/downgrade_test.dart b/packages/flutter_tools/test/commands.shard/hermetic/downgrade_test.dart index fbd10c26541..7193904f305 100644 --- a/packages/flutter_tools/test/commands.shard/hermetic/downgrade_test.dart +++ b/packages/flutter_tools/test/commands.shard/hermetic/downgrade_test.dart @@ -8,7 +8,6 @@ import 'package:file/file.dart'; import 'package:file/memory.dart'; import 'package:flutter_tools/src/base/io.dart'; import 'package:flutter_tools/src/base/logger.dart'; -import 'package:flutter_tools/src/base/process.dart'; import 'package:flutter_tools/src/base/terminal.dart'; import 'package:flutter_tools/src/cache.dart'; import 'package:flutter_tools/src/commands/downgrade.dart'; diff --git a/packages/flutter_tools/test/commands.shard/hermetic/pub_get_test.dart b/packages/flutter_tools/test/commands.shard/hermetic/pub_get_test.dart index 746bf1a5937..b73360ed492 100644 --- a/packages/flutter_tools/test/commands.shard/hermetic/pub_get_test.dart +++ b/packages/flutter_tools/test/commands.shard/hermetic/pub_get_test.dart @@ -7,7 +7,6 @@ import 'package:args/command_runner.dart'; import 'package:file/memory.dart'; import 'package:flutter_tools/src/base/file_system.dart'; -import 'package:flutter_tools/src/base/process.dart'; import 'package:flutter_tools/src/cache.dart'; import 'package:flutter_tools/src/commands/packages.dart'; import 'package:flutter_tools/src/dart/pub.dart'; diff --git a/packages/flutter_tools/test/commands.shard/hermetic/run_test.dart b/packages/flutter_tools/test/commands.shard/hermetic/run_test.dart index f10497ba132..54d64f92b36 100644 --- a/packages/flutter_tools/test/commands.shard/hermetic/run_test.dart +++ b/packages/flutter_tools/test/commands.shard/hermetic/run_test.dart @@ -15,7 +15,6 @@ import 'package:flutter_tools/src/base/context.dart'; import 'package:flutter_tools/src/base/file_system.dart'; import 'package:flutter_tools/src/base/io.dart'; import 'package:flutter_tools/src/base/logger.dart'; -import 'package:flutter_tools/src/base/process.dart'; import 'package:flutter_tools/src/base/user_messages.dart'; import 'package:flutter_tools/src/build_info.dart'; import 'package:flutter_tools/src/cache.dart'; diff --git a/packages/flutter_tools/test/commands.shard/hermetic/shell_completion_test.dart b/packages/flutter_tools/test/commands.shard/hermetic/shell_completion_test.dart index d727099f0f0..fbc2e9d5333 100644 --- a/packages/flutter_tools/test/commands.shard/hermetic/shell_completion_test.dart +++ b/packages/flutter_tools/test/commands.shard/hermetic/shell_completion_test.dart @@ -9,9 +9,9 @@ import 'package:flutter_tools/src/base/common.dart'; import 'package:flutter_tools/src/base/context.dart'; import 'package:flutter_tools/src/base/file_system.dart'; import 'package:flutter_tools/src/base/io.dart'; -import 'package:flutter_tools/src/base/process.dart'; import 'package:flutter_tools/src/cache.dart'; import 'package:flutter_tools/src/commands/shell_completion.dart'; +import 'package:process/process.dart'; import 'package:flutter_tools/src/globals.dart' as globals; import '../../src/common.dart'; diff --git a/packages/flutter_tools/test/commands.shard/hermetic/test_test.dart b/packages/flutter_tools/test/commands.shard/hermetic/test_test.dart index ffcdc261333..84ff16e5de1 100644 --- a/packages/flutter_tools/test/commands.shard/hermetic/test_test.dart +++ b/packages/flutter_tools/test/commands.shard/hermetic/test_test.dart @@ -10,7 +10,6 @@ import 'package:args/command_runner.dart'; import 'package:file/memory.dart'; import 'package:flutter_tools/src/base/common.dart'; import 'package:flutter_tools/src/base/file_system.dart'; -import 'package:flutter_tools/src/base/process.dart'; import 'package:flutter_tools/src/build_info.dart'; import 'package:flutter_tools/src/cache.dart'; import 'package:flutter_tools/src/commands/test.dart'; @@ -20,6 +19,7 @@ import 'package:flutter_tools/src/test/runner.dart'; import 'package:flutter_tools/src/test/test_wrapper.dart'; import 'package:flutter_tools/src/test/watcher.dart'; import 'package:meta/meta.dart'; +import 'package:process/process.dart'; import '../../src/common.dart'; import '../../src/context.dart'; diff --git a/packages/flutter_tools/test/commands.shard/permeable/analyze_once_test.dart b/packages/flutter_tools/test/commands.shard/permeable/analyze_once_test.dart index bedf889844e..b2857bb50c1 100644 --- a/packages/flutter_tools/test/commands.shard/permeable/analyze_once_test.dart +++ b/packages/flutter_tools/test/commands.shard/permeable/analyze_once_test.dart @@ -5,7 +5,6 @@ // @dart = 2.8 import 'package:flutter_tools/src/base/error_handling_io.dart'; -import 'package:flutter_tools/src/base/process.dart'; import 'package:flutter_tools/src/base/user_messages.dart'; import 'package:flutter_tools/src/globals.dart' as globals; import 'package:flutter_tools/src/artifacts.dart'; @@ -18,6 +17,7 @@ import 'package:flutter_tools/src/base/terminal.dart'; import 'package:flutter_tools/src/cache.dart'; import 'package:flutter_tools/src/commands/analyze.dart'; import 'package:flutter_tools/src/runner/flutter_command.dart'; +import 'package:process/process.dart'; import '../../src/common.dart'; import '../../src/context.dart'; @@ -108,13 +108,10 @@ void main() { setUpAll(() { Cache.disableLocking(); + processManager = const LocalProcessManager(); platform = const LocalPlatform(); terminal = AnsiTerminal(platform: platform, stdio: Stdio()); fileSystem = LocalFileSystem.instance; - processManager = LocalProcessManager( - platform: platform, - fileSystem: fileSystem, - ); logger = BufferLogger.test(); analyzerSeparator = platform.isWindows ? '-' : '•'; artifacts = CachedArtifacts( diff --git a/packages/flutter_tools/test/commands.shard/permeable/build_aar_test.dart b/packages/flutter_tools/test/commands.shard/permeable/build_aar_test.dart index d5f44238bcb..4a857bcdb43 100644 --- a/packages/flutter_tools/test/commands.shard/permeable/build_aar_test.dart +++ b/packages/flutter_tools/test/commands.shard/permeable/build_aar_test.dart @@ -10,7 +10,6 @@ import 'package:args/command_runner.dart'; import 'package:flutter_tools/src/android/android_builder.dart'; import 'package:flutter_tools/src/android/android_sdk.dart'; import 'package:flutter_tools/src/base/file_system.dart'; -import 'package:flutter_tools/src/base/process.dart'; import 'package:flutter_tools/src/build_info.dart'; import 'package:flutter_tools/src/cache.dart'; import 'package:flutter_tools/src/commands/build_aar.dart'; @@ -18,6 +17,7 @@ import 'package:flutter_tools/src/project.dart'; import 'package:flutter_tools/src/reporting/reporting.dart'; import 'package:flutter_tools/src/globals.dart' as globals; import 'package:mockito/mockito.dart'; +import 'package:process/process.dart'; import '../../src/android_common.dart'; import '../../src/common.dart'; diff --git a/packages/flutter_tools/test/commands.shard/permeable/build_apk_test.dart b/packages/flutter_tools/test/commands.shard/permeable/build_apk_test.dart index 8a685b5ee2e..4984b8b43c0 100644 --- a/packages/flutter_tools/test/commands.shard/permeable/build_apk_test.dart +++ b/packages/flutter_tools/test/commands.shard/permeable/build_apk_test.dart @@ -11,7 +11,6 @@ import 'package:flutter_tools/src/android/android_builder.dart'; import 'package:flutter_tools/src/android/android_sdk.dart'; import 'package:flutter_tools/src/base/context.dart'; import 'package:flutter_tools/src/base/file_system.dart'; -import 'package:flutter_tools/src/base/process.dart'; import 'package:flutter_tools/src/cache.dart'; import 'package:flutter_tools/src/commands/build_apk.dart'; @@ -19,6 +18,7 @@ import 'package:flutter_tools/src/project.dart'; import 'package:flutter_tools/src/reporting/reporting.dart'; import 'package:flutter_tools/src/globals.dart' as globals; import 'package:mockito/mockito.dart'; +import 'package:process/process.dart'; import '../../src/android_common.dart'; import '../../src/common.dart'; diff --git a/packages/flutter_tools/test/commands.shard/permeable/build_appbundle_test.dart b/packages/flutter_tools/test/commands.shard/permeable/build_appbundle_test.dart index 34e1482fb4c..9fe51a968ee 100644 --- a/packages/flutter_tools/test/commands.shard/permeable/build_appbundle_test.dart +++ b/packages/flutter_tools/test/commands.shard/permeable/build_appbundle_test.dart @@ -17,6 +17,7 @@ import 'package:flutter_tools/src/globals.dart' as globals; import 'package:flutter_tools/src/project.dart'; import 'package:flutter_tools/src/reporting/reporting.dart'; import 'package:mockito/mockito.dart'; +import 'package:process/process.dart'; import '../../src/android_common.dart'; import '../../src/common.dart'; diff --git a/packages/flutter_tools/test/commands.shard/permeable/build_bundle_test.dart b/packages/flutter_tools/test/commands.shard/permeable/build_bundle_test.dart index ad387a6b95c..d0452f05214 100644 --- a/packages/flutter_tools/test/commands.shard/permeable/build_bundle_test.dart +++ b/packages/flutter_tools/test/commands.shard/permeable/build_bundle_test.dart @@ -7,7 +7,6 @@ import 'package:args/command_runner.dart'; import 'package:file/memory.dart'; import 'package:flutter_tools/src/base/file_system.dart'; -import 'package:flutter_tools/src/base/process.dart'; import 'package:flutter_tools/src/build_system/build_system.dart'; import 'package:flutter_tools/src/build_system/targets/common.dart'; import 'package:flutter_tools/src/build_system/targets/icon_tree_shaker.dart'; @@ -17,6 +16,7 @@ import 'package:flutter_tools/src/commands/build_bundle.dart'; import 'package:flutter_tools/src/features.dart'; import 'package:flutter_tools/src/reporting/reporting.dart'; import 'package:mockito/mockito.dart'; +import 'package:process/process.dart'; import 'package:flutter_tools/src/globals.dart' as globals; import '../../src/common.dart'; diff --git a/packages/flutter_tools/test/commands.shard/permeable/create_test.dart b/packages/flutter_tools/test/commands.shard/permeable/create_test.dart index af049dd30ad..4db25b08325 100755 --- a/packages/flutter_tools/test/commands.shard/permeable/create_test.dart +++ b/packages/flutter_tools/test/commands.shard/permeable/create_test.dart @@ -16,7 +16,6 @@ import 'package:flutter_tools/src/base/io.dart'; import 'package:flutter_tools/src/base/logger.dart'; import 'package:flutter_tools/src/base/net.dart'; import 'package:flutter_tools/src/base/platform.dart'; -import 'package:flutter_tools/src/base/process.dart'; import 'package:flutter_tools/src/build_info.dart'; import 'package:flutter_tools/src/cache.dart'; import 'package:flutter_tools/src/commands/create.dart'; @@ -26,6 +25,7 @@ import 'package:flutter_tools/src/globals.dart' as globals; import 'package:flutter_tools/src/project.dart'; import 'package:flutter_tools/src/version.dart'; import 'package:mockito/mockito.dart'; +import 'package:process/process.dart'; import 'package:pub_semver/pub_semver.dart'; import 'package:pubspec_parse/pubspec_parse.dart'; diff --git a/packages/flutter_tools/test/commands.shard/permeable/packages_test.dart b/packages/flutter_tools/test/commands.shard/permeable/packages_test.dart index 56623d48c91..f34b953fe44 100644 --- a/packages/flutter_tools/test/commands.shard/permeable/packages_test.dart +++ b/packages/flutter_tools/test/commands.shard/permeable/packages_test.dart @@ -11,11 +11,11 @@ import 'package:flutter_tools/src/base/bot_detector.dart'; import 'package:flutter_tools/src/base/error_handling_io.dart'; import 'package:flutter_tools/src/base/file_system.dart' hide IOSink; import 'package:flutter_tools/src/base/io.dart'; -import 'package:flutter_tools/src/base/process.dart'; import 'package:flutter_tools/src/cache.dart'; import 'package:flutter_tools/src/commands/packages.dart'; import 'package:flutter_tools/src/dart/pub.dart'; import 'package:flutter_tools/src/reporting/reporting.dart'; +import 'package:process/process.dart'; import 'package:flutter_tools/src/globals.dart' as globals; import '../../src/common.dart'; diff --git a/packages/flutter_tools/test/commands.shard/permeable/upgrade_test.dart b/packages/flutter_tools/test/commands.shard/permeable/upgrade_test.dart index b74bec34195..c394676d10f 100644 --- a/packages/flutter_tools/test/commands.shard/permeable/upgrade_test.dart +++ b/packages/flutter_tools/test/commands.shard/permeable/upgrade_test.dart @@ -7,7 +7,6 @@ import 'package:flutter_tools/src/base/file_system.dart'; import 'package:flutter_tools/src/base/io.dart'; import 'package:flutter_tools/src/base/platform.dart'; -import 'package:flutter_tools/src/base/process.dart'; import 'package:flutter_tools/src/cache.dart'; import 'package:flutter_tools/src/commands/upgrade.dart'; import 'package:flutter_tools/src/convert.dart'; @@ -16,6 +15,7 @@ import 'package:flutter_tools/src/persistent_tool_state.dart'; import 'package:flutter_tools/src/runner/flutter_command.dart'; import 'package:flutter_tools/src/version.dart'; import 'package:mockito/mockito.dart'; +import 'package:process/process.dart'; import '../../src/common.dart'; import '../../src/context.dart'; diff --git a/packages/flutter_tools/test/general.shard/analytics_test.dart b/packages/flutter_tools/test/general.shard/analytics_test.dart index 93a7720708b..fbbafac2f1c 100644 --- a/packages/flutter_tools/test/general.shard/analytics_test.dart +++ b/packages/flutter_tools/test/general.shard/analytics_test.dart @@ -10,7 +10,6 @@ import 'package:flutter_tools/src/base/config.dart'; import 'package:flutter_tools/src/base/file_system.dart'; import 'package:flutter_tools/src/base/io.dart'; import 'package:flutter_tools/src/base/platform.dart'; -import 'package:flutter_tools/src/base/process.dart'; import 'package:flutter_tools/src/base/time.dart'; import 'package:flutter_tools/src/cache.dart'; import 'package:flutter_tools/src/commands/build.dart'; diff --git a/packages/flutter_tools/test/general.shard/android/android_device_discovery_test.dart b/packages/flutter_tools/test/general.shard/android/android_device_discovery_test.dart index 74c8063b3dc..6600a6b1e29 100644 --- a/packages/flutter_tools/test/general.shard/android/android_device_discovery_test.dart +++ b/packages/flutter_tools/test/general.shard/android/android_device_discovery_test.dart @@ -10,7 +10,6 @@ import 'package:flutter_tools/src/android/android_sdk.dart'; import 'package:flutter_tools/src/android/android_workflow.dart'; import 'package:flutter_tools/src/base/logger.dart'; import 'package:flutter_tools/src/base/platform.dart'; -import 'package:flutter_tools/src/base/process.dart'; import 'package:flutter_tools/src/base/user_messages.dart'; import 'package:flutter_tools/src/device.dart'; import 'package:test/fake.dart'; diff --git a/packages/flutter_tools/test/general.shard/android/android_device_test.dart b/packages/flutter_tools/test/general.shard/android/android_device_test.dart index 943ab128c21..33d6963d5d5 100644 --- a/packages/flutter_tools/test/general.shard/android/android_device_test.dart +++ b/packages/flutter_tools/test/general.shard/android/android_device_test.dart @@ -16,11 +16,11 @@ import 'package:flutter_tools/src/base/file_system.dart'; import 'package:flutter_tools/src/base/io.dart'; import 'package:flutter_tools/src/base/logger.dart'; import 'package:flutter_tools/src/base/platform.dart'; -import 'package:flutter_tools/src/base/process.dart'; import 'package:flutter_tools/src/build_info.dart'; import 'package:flutter_tools/src/device.dart'; import 'package:flutter_tools/src/project.dart'; import 'package:mockito/mockito.dart'; +import 'package:process/process.dart'; import '../../src/common.dart'; import '../../src/context.dart'; diff --git a/packages/flutter_tools/test/general.shard/android/android_install_test.dart b/packages/flutter_tools/test/general.shard/android/android_install_test.dart index f25ae6c6ed5..2540af3142c 100644 --- a/packages/flutter_tools/test/general.shard/android/android_install_test.dart +++ b/packages/flutter_tools/test/general.shard/android/android_install_test.dart @@ -11,7 +11,6 @@ import 'package:flutter_tools/src/application_package.dart'; import 'package:flutter_tools/src/base/file_system.dart'; import 'package:flutter_tools/src/base/logger.dart'; import 'package:flutter_tools/src/base/platform.dart'; -import 'package:flutter_tools/src/base/process.dart'; import 'package:test/fake.dart'; import '../../src/common.dart'; diff --git a/packages/flutter_tools/test/general.shard/android/android_sdk_test.dart b/packages/flutter_tools/test/general.shard/android/android_sdk_test.dart index bc54cdfafa6..7ac4e719e67 100644 --- a/packages/flutter_tools/test/general.shard/android/android_sdk_test.dart +++ b/packages/flutter_tools/test/general.shard/android/android_sdk_test.dart @@ -10,9 +10,9 @@ import 'package:flutter_tools/src/base/config.dart'; import 'package:flutter_tools/src/base/file_system.dart'; import 'package:flutter_tools/src/base/io.dart' show ProcessResult; import 'package:flutter_tools/src/base/platform.dart'; -import 'package:flutter_tools/src/base/process.dart'; import 'package:meta/meta.dart'; import 'package:mockito/mockito.dart'; +import 'package:process/process.dart'; import '../../src/common.dart'; import '../../src/context.dart'; diff --git a/packages/flutter_tools/test/general.shard/android/android_studio_test.dart b/packages/flutter_tools/test/general.shard/android/android_studio_test.dart index 2b14a8a0972..bd3812920e9 100644 --- a/packages/flutter_tools/test/general.shard/android/android_studio_test.dart +++ b/packages/flutter_tools/test/general.shard/android/android_studio_test.dart @@ -8,7 +8,6 @@ import 'package:file/memory.dart'; import 'package:flutter_tools/src/android/android_studio.dart'; import 'package:flutter_tools/src/base/file_system.dart'; import 'package:flutter_tools/src/base/platform.dart'; -import 'package:flutter_tools/src/base/process.dart'; import 'package:flutter_tools/src/base/version.dart'; import 'package:flutter_tools/src/globals.dart' as globals; import 'package:flutter_tools/src/ios/plist_parser.dart'; diff --git a/packages/flutter_tools/test/general.shard/android/android_studio_validator_test.dart b/packages/flutter_tools/test/general.shard/android/android_studio_validator_test.dart index 41cd0f25ff3..50ea44a4dd0 100644 --- a/packages/flutter_tools/test/general.shard/android/android_studio_validator_test.dart +++ b/packages/flutter_tools/test/general.shard/android/android_studio_validator_test.dart @@ -10,10 +10,10 @@ import 'package:flutter_tools/src/base/config.dart'; import 'package:flutter_tools/src/base/file_system.dart'; import 'package:flutter_tools/src/base/io.dart'; import 'package:flutter_tools/src/base/platform.dart'; -import 'package:flutter_tools/src/base/process.dart'; import 'package:flutter_tools/src/base/user_messages.dart'; import 'package:flutter_tools/src/doctor.dart'; import 'package:flutter_tools/src/globals.dart' as globals; +import 'package:process/process.dart'; import '../../src/common.dart'; import '../../src/context.dart'; diff --git a/packages/flutter_tools/test/general.shard/android/gradle_errors_test.dart b/packages/flutter_tools/test/general.shard/android/gradle_errors_test.dart index 5696fa001a8..4430784e880 100644 --- a/packages/flutter_tools/test/general.shard/android/gradle_errors_test.dart +++ b/packages/flutter_tools/test/general.shard/android/gradle_errors_test.dart @@ -12,11 +12,11 @@ import 'package:flutter_tools/src/base/context.dart'; import 'package:flutter_tools/src/base/file_system.dart'; import 'package:flutter_tools/src/base/io.dart'; import 'package:flutter_tools/src/base/platform.dart'; -import 'package:flutter_tools/src/base/process.dart'; import 'package:flutter_tools/src/globals.dart' as globals; import 'package:flutter_tools/src/project.dart'; import 'package:flutter_tools/src/reporting/reporting.dart'; import 'package:mockito/mockito.dart'; +import 'package:process/process.dart'; import '../../src/common.dart'; import '../../src/context.dart'; diff --git a/packages/flutter_tools/test/general.shard/android/gradle_test.dart b/packages/flutter_tools/test/general.shard/android/gradle_test.dart index 84a4cf43562..c7dfa2ba102 100644 --- a/packages/flutter_tools/test/general.shard/android/gradle_test.dart +++ b/packages/flutter_tools/test/general.shard/android/gradle_test.dart @@ -18,7 +18,6 @@ import 'package:flutter_tools/src/base/file_system.dart'; import 'package:flutter_tools/src/base/io.dart'; import 'package:flutter_tools/src/base/logger.dart'; import 'package:flutter_tools/src/base/platform.dart'; -import 'package:flutter_tools/src/base/process.dart'; import 'package:flutter_tools/src/base/terminal.dart'; import 'package:flutter_tools/src/build_info.dart'; import 'package:flutter_tools/src/cache.dart'; @@ -26,6 +25,7 @@ import 'package:flutter_tools/src/globals.dart' as globals; import 'package:flutter_tools/src/project.dart'; import 'package:flutter_tools/src/reporting/reporting.dart'; import 'package:mockito/mockito.dart'; +import 'package:process/process.dart'; import '../../src/common.dart'; import '../../src/context.dart'; diff --git a/packages/flutter_tools/test/general.shard/android/gradle_utils_test.dart b/packages/flutter_tools/test/general.shard/android/gradle_utils_test.dart index 07972fdedf3..e1dfccb02bc 100644 --- a/packages/flutter_tools/test/general.shard/android/gradle_utils_test.dart +++ b/packages/flutter_tools/test/general.shard/android/gradle_utils_test.dart @@ -8,11 +8,11 @@ import 'package:file/memory.dart'; import 'package:flutter_tools/src/android/gradle_utils.dart'; import 'package:flutter_tools/src/base/file_system.dart'; import 'package:flutter_tools/src/base/os.dart'; -import 'package:flutter_tools/src/base/process.dart'; import 'package:flutter_tools/src/cache.dart'; import 'package:flutter_tools/src/project.dart'; import 'package:flutter_tools/src/globals.dart' as globals; import 'package:mockito/mockito.dart'; +import 'package:process/process.dart'; import '../../src/common.dart'; import '../../src/context.dart'; diff --git a/packages/flutter_tools/test/general.shard/application_package_test.dart b/packages/flutter_tools/test/general.shard/application_package_test.dart index 253ae1e33ac..10346e3adc0 100644 --- a/packages/flutter_tools/test/general.shard/application_package_test.dart +++ b/packages/flutter_tools/test/general.shard/application_package_test.dart @@ -13,7 +13,6 @@ import 'package:flutter_tools/src/base/file_system.dart'; import 'package:flutter_tools/src/base/logger.dart'; import 'package:flutter_tools/src/base/os.dart'; import 'package:flutter_tools/src/base/platform.dart'; -import 'package:flutter_tools/src/base/process.dart'; import 'package:flutter_tools/src/base/user_messages.dart'; import 'package:flutter_tools/src/build_info.dart'; import 'package:flutter_tools/src/cache.dart'; @@ -22,6 +21,7 @@ import 'package:flutter_tools/src/globals.dart' as globals; import 'package:flutter_tools/src/ios/plist_parser.dart'; import 'package:flutter_tools/src/project.dart'; import 'package:mockito/mockito.dart'; +import 'package:process/process.dart'; import '../src/common.dart'; import '../src/context.dart'; diff --git a/packages/flutter_tools/test/general.shard/asset_bundle_package_fonts_test.dart b/packages/flutter_tools/test/general.shard/asset_bundle_package_fonts_test.dart index 9aabcfab1a1..a312ea91971 100644 --- a/packages/flutter_tools/test/general.shard/asset_bundle_package_fonts_test.dart +++ b/packages/flutter_tools/test/general.shard/asset_bundle_package_fonts_test.dart @@ -11,7 +11,6 @@ import 'package:file/memory.dart'; import 'package:flutter_tools/src/asset.dart'; import 'package:flutter_tools/src/base/file_system.dart'; -import 'package:flutter_tools/src/base/process.dart'; import 'package:flutter_tools/src/globals.dart' as globals; diff --git a/packages/flutter_tools/test/general.shard/base/error_handling_io_test.dart b/packages/flutter_tools/test/general.shard/base/error_handling_io_test.dart index 2d814a6391d..1d705cf73e9 100644 --- a/packages/flutter_tools/test/general.shard/base/error_handling_io_test.dart +++ b/packages/flutter_tools/test/general.shard/base/error_handling_io_test.dart @@ -11,11 +11,11 @@ import 'package:flutter_tools/src/base/error_handling_io.dart'; import 'package:flutter_tools/src/base/file_system.dart'; import 'package:flutter_tools/src/base/io.dart'; import 'package:flutter_tools/src/base/platform.dart'; -import 'package:flutter_tools/src/base/process.dart'; import 'package:flutter_tools/src/globals.dart' as globals show flutterUsage; import 'package:flutter_tools/src/reporting/reporting.dart'; import 'package:mockito/mockito.dart'; import 'package:path/path.dart' as path; // ignore: package_path_import +import 'package:process/process.dart'; import '../../src/common.dart'; import '../../src/context.dart'; diff --git a/packages/flutter_tools/test/general.shard/base/os_test.dart b/packages/flutter_tools/test/general.shard/base/os_test.dart index d698209800c..0178dbe9eeb 100644 --- a/packages/flutter_tools/test/general.shard/base/os_test.dart +++ b/packages/flutter_tools/test/general.shard/base/os_test.dart @@ -13,6 +13,7 @@ import 'package:flutter_tools/src/base/os.dart'; import 'package:flutter_tools/src/base/platform.dart'; import 'package:flutter_tools/src/build_info.dart'; import 'package:mockito/mockito.dart'; +import 'package:process/process.dart'; import '../../src/common.dart'; import '../../src/context.dart'; diff --git a/packages/flutter_tools/test/general.shard/base/os_utils_test.dart b/packages/flutter_tools/test/general.shard/base/os_utils_test.dart index 855c8e85c20..5a21ab7ff72 100644 --- a/packages/flutter_tools/test/general.shard/base/os_utils_test.dart +++ b/packages/flutter_tools/test/general.shard/base/os_utils_test.dart @@ -8,8 +8,8 @@ import 'package:flutter_tools/src/base/file_system.dart'; import 'package:flutter_tools/src/base/logger.dart'; import 'package:flutter_tools/src/base/os.dart'; import 'package:flutter_tools/src/base/platform.dart'; -import 'package:flutter_tools/src/base/process.dart'; import 'package:flutter_tools/src/base/signals.dart'; +import 'package:process/process.dart'; import '../../src/common.dart'; diff --git a/packages/flutter_tools/test/general.shard/base/process_manager_test.dart b/packages/flutter_tools/test/general.shard/base/process_manager_test.dart deleted file mode 100644 index d898845f141..00000000000 --- a/packages/flutter_tools/test/general.shard/base/process_manager_test.dart +++ /dev/null @@ -1,327 +0,0 @@ -// 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. - -// @dart = 2.8 - -import 'package:file/memory.dart'; -import 'package:flutter_tools/src/base/file_system.dart'; -import 'package:flutter_tools/src/base/platform.dart'; -import 'package:flutter_tools/src/base/process.dart'; - -import '../../src/common.dart'; - -void main() { - group('getExecutablePath', () { - FileSystem fileSystem; - Directory workingDir; - Directory dir1; - Directory dir2; - Directory dir3; - - void initialize(FileSystemStyle style) { - setUp(() { - fileSystem = MemoryFileSystem(style: style); - workingDir = fileSystem.systemTempDirectory.createTempSync('work_dir_'); - dir1 = fileSystem.systemTempDirectory.createTempSync('dir1_'); - dir2 = fileSystem.systemTempDirectory.createTempSync('dir2_'); - dir3 = fileSystem.systemTempDirectory.createTempSync('dir3_'); - }); - } - - tearDown(() { - workingDir.deleteSync(recursive: true); - dir1.deleteSync(recursive: true); - dir2.deleteSync(recursive: true); - dir3.deleteSync(recursive: true); - }); - - group('on windows', () { - Platform platform; - - initialize(FileSystemStyle.windows); - - setUp(() { - platform = FakePlatform( - operatingSystem: 'windows', - environment: { - 'PATH': '${dir1.path};${dir2.path}', - 'PATHEXT': '.exe;.bat' - }, - ); - }); - - test('absolute', () { - String command = fileSystem.path.join(dir3.path, 'bla.exe'); - final String expectedPath = command; - fileSystem.file(command).createSync(); - - String executablePath = getExecutablePath( - command, - workingDir.path, - platform: platform, - fileSystem: fileSystem, - ); - _expectSamePath(executablePath, expectedPath); - - command = fileSystem.path.withoutExtension(command); - executablePath = getExecutablePath( - command, - workingDir.path, - platform: platform, - fileSystem: fileSystem, - ); - _expectSamePath(executablePath, expectedPath); - }); - - test('in path', () { - String command = 'bla.exe'; - final String expectedPath = fileSystem.path.join(dir2.path, command); - fileSystem.file(expectedPath).createSync(); - - String executablePath = getExecutablePath( - command, - workingDir.path, - platform: platform, - fileSystem: fileSystem, - ); - _expectSamePath(executablePath, expectedPath); - - command = fileSystem.path.withoutExtension(command); - executablePath = getExecutablePath( - command, - workingDir.path, - platform: platform, - fileSystem: fileSystem, - ); - _expectSamePath(executablePath, expectedPath); - }); - - test('in path multiple times', () { - String command = 'bla.exe'; - final String expectedPath = fileSystem.path.join(dir1.path, command); - final String wrongPath = fileSystem.path.join(dir2.path, command); - fileSystem.file(expectedPath).createSync(); - fileSystem.file(wrongPath).createSync(); - - String executablePath = getExecutablePath( - command, - workingDir.path, - platform: platform, - fileSystem: fileSystem, - ); - _expectSamePath(executablePath, expectedPath); - - command = fileSystem.path.withoutExtension(command); - executablePath = getExecutablePath( - command, - workingDir.path, - platform: platform, - fileSystem: fileSystem, - ); - _expectSamePath(executablePath, expectedPath); - }); - - test('in subdir of work dir', () { - String command = fileSystem.path.join('.', 'foo', 'bla.exe'); - final String expectedPath = fileSystem.path.join(workingDir.path, command); - fileSystem.file(expectedPath).createSync(recursive: true); - - String executablePath = getExecutablePath( - command, - workingDir.path, - platform: platform, - fileSystem: fileSystem, - ); - _expectSamePath(executablePath, expectedPath); - - command = fileSystem.path.withoutExtension(command); - executablePath = getExecutablePath( - command, - workingDir.path, - platform: platform, - fileSystem: fileSystem, - ); - _expectSamePath(executablePath, expectedPath); - }); - - test('in work dir', () { - String command = fileSystem.path.join('.', 'bla.exe'); - final String expectedPath = fileSystem.path.join(workingDir.path, command); - final String wrongPath = fileSystem.path.join(dir2.path, command); - fileSystem.file(expectedPath).createSync(); - fileSystem.file(wrongPath).createSync(); - - String executablePath = getExecutablePath( - command, - workingDir.path, - platform: platform, - fileSystem: fileSystem, - ); - _expectSamePath(executablePath, expectedPath); - - command = fileSystem.path.withoutExtension(command); - executablePath = getExecutablePath( - command, - workingDir.path, - platform: platform, - fileSystem: fileSystem, - ); - _expectSamePath(executablePath, expectedPath); - }); - - test('with multiple extensions', () { - const String command = 'foo'; - final String expectedPath = fileSystem.path.join(dir1.path, '$command.exe'); - final String wrongPath1 = fileSystem.path.join(dir1.path, '$command.bat'); - final String wrongPath2 = fileSystem.path.join(dir2.path, '$command.exe'); - fileSystem.file(expectedPath).createSync(); - fileSystem.file(wrongPath1).createSync(); - fileSystem.file(wrongPath2).createSync(); - - final String executablePath = getExecutablePath( - command, - workingDir.path, - platform: platform, - fileSystem: fileSystem, - ); - _expectSamePath(executablePath, expectedPath); - }); - - test('not found', () { - const String command = 'foo.exe'; - - final String executablePath = getExecutablePath( - command, - workingDir.path, - platform: platform, - fileSystem: fileSystem, - ); - expect(executablePath, isNull); - }); - - test('when path has spaces', () { - expect( - sanitizeExecutablePath(r'Program Files\bla.exe', platform: platform), - r'"Program Files\bla.exe"'); - expect( - sanitizeExecutablePath(r'ProgramFiles\bla.exe', platform: platform), - r'ProgramFiles\bla.exe'); - expect( - sanitizeExecutablePath(r'"Program Files\bla.exe"', platform: platform), - r'"Program Files\bla.exe"'); - expect( - sanitizeExecutablePath(r'"Program Files\bla.exe"', platform: platform), - r'"Program Files\bla.exe"'); - expect( - sanitizeExecutablePath(r'C:"Program Files"\bla.exe', platform: platform), - r'C:"Program Files"\bla.exe'); - }); - - test('with absolute path when currentDirectory getter throws', () { - final FileSystem fileSystemNoCwd = MemoryFileSystemNoCwd(fileSystem); - final String command = fileSystem.path.join(dir3.path, 'bla.exe'); - final String expectedPath = command; - fileSystem.file(command).createSync(); - - final String executablePath = getExecutablePath( - command, - null, - platform: platform, - fileSystem: fileSystemNoCwd, - ); - _expectSamePath(executablePath, expectedPath); - }); - - test('with relative path when currentDirectory getter throws', () { - final FileSystem fileSystemNoCwd = MemoryFileSystemNoCwd(fileSystem); - final String command = fileSystem.path.join('.', 'bla.exe'); - - final String executablePath = getExecutablePath( - command, - null, - platform: platform, - fileSystem: fileSystemNoCwd, - ); - expect(executablePath, isNull); - }); - }); - - group('on Linux', () { - Platform platform; - - initialize(FileSystemStyle.posix); - - setUp(() { - platform = FakePlatform( - operatingSystem: 'linux', - environment: {'PATH': '${dir1.path}:${dir2.path}'}); - }); - - test('absolute', () { - final String command = fileSystem.path.join(dir3.path, 'bla'); - final String expectedPath = command; - final String wrongPath = fileSystem.path.join(dir3.path, 'bla.bat'); - fileSystem.file(command).createSync(); - fileSystem.file(wrongPath).createSync(); - - final String executablePath = getExecutablePath( - command, - workingDir.path, - platform: platform, - fileSystem: fileSystem, - ); - _expectSamePath(executablePath, expectedPath); - }); - - test('in path multiple times', () { - const String command = 'xxx'; - final String expectedPath = fileSystem.path.join(dir1.path, command); - final String wrongPath = fileSystem.path.join(dir2.path, command); - fileSystem.file(expectedPath).createSync(); - fileSystem.file(wrongPath).createSync(); - - final String executablePath = getExecutablePath( - command, - workingDir.path, - platform: platform, - fileSystem: fileSystem, - ); - _expectSamePath(executablePath, expectedPath); - }); - - test('not found', () { - const String command = 'foo'; - - final String executablePath = getExecutablePath( - command, - workingDir.path, - platform: platform, - fileSystem: fileSystem, - ); - expect(executablePath, isNull); - }); - - test('when path has spaces', () { - expect( - sanitizeExecutablePath('/usr/local/bin/foo bar', - platform: platform), - '/usr/local/bin/foo bar'); - }); - }); - }); -} - -void _expectSamePath(String actual, String expected) { - expect(actual, isNotNull); - expect(actual.toLowerCase(), expected.toLowerCase()); -} - -class MemoryFileSystemNoCwd extends ForwardingFileSystem { - MemoryFileSystemNoCwd(FileSystem delegate) : super(delegate); - - @override - Directory get currentDirectory { - throw const FileSystemException('Access denied'); - } -} diff --git a/packages/flutter_tools/test/general.shard/build_system/targets/web_test.dart b/packages/flutter_tools/test/general.shard/build_system/targets/web_test.dart index 1006bfd0871..60201dbb551 100644 --- a/packages/flutter_tools/test/general.shard/build_system/targets/web_test.dart +++ b/packages/flutter_tools/test/general.shard/build_system/targets/web_test.dart @@ -15,6 +15,7 @@ import 'package:flutter_tools/src/build_system/targets/common.dart'; import 'package:flutter_tools/src/build_system/targets/web.dart'; import 'package:flutter_tools/src/globals.dart' as globals; import 'package:mockito/mockito.dart'; +import 'package:process/process.dart'; import '../../../src/common.dart'; import '../../../src/context.dart'; diff --git a/packages/flutter_tools/test/general.shard/cache_test.dart b/packages/flutter_tools/test/general.shard/cache_test.dart index eccbe2d4cf0..68112c9d026 100644 --- a/packages/flutter_tools/test/general.shard/cache_test.dart +++ b/packages/flutter_tools/test/general.shard/cache_test.dart @@ -18,6 +18,7 @@ import 'package:flutter_tools/src/cache.dart'; import 'package:flutter_tools/src/dart/pub.dart'; import 'package:meta/meta.dart'; import 'package:mockito/mockito.dart'; +import 'package:process/process.dart'; import '../src/common.dart'; import '../src/context.dart'; diff --git a/packages/flutter_tools/test/general.shard/channel_test.dart b/packages/flutter_tools/test/general.shard/channel_test.dart index 6b137924d53..2156143c48e 100644 --- a/packages/flutter_tools/test/general.shard/channel_test.dart +++ b/packages/flutter_tools/test/general.shard/channel_test.dart @@ -11,6 +11,7 @@ import 'package:flutter_tools/src/cache.dart'; import 'package:flutter_tools/src/globals.dart' as globals; import 'package:flutter_tools/src/commands/channel.dart'; import 'package:flutter_tools/src/version.dart'; +import 'package:process/process.dart'; import '../src/common.dart'; import '../src/context.dart'; diff --git a/packages/flutter_tools/test/general.shard/compile_batch_test.dart b/packages/flutter_tools/test/general.shard/compile_batch_test.dart index a10fa35b73c..0805f51d3ca 100644 --- a/packages/flutter_tools/test/general.shard/compile_batch_test.dart +++ b/packages/flutter_tools/test/general.shard/compile_batch_test.dart @@ -15,6 +15,7 @@ import 'package:flutter_tools/src/compile.dart'; import 'package:flutter_tools/src/convert.dart'; import 'package:mockito/mockito.dart'; import 'package:package_config/package_config.dart'; +import 'package:process/process.dart'; import '../src/common.dart'; import '../src/context.dart'; diff --git a/packages/flutter_tools/test/general.shard/compile_expression_test.dart b/packages/flutter_tools/test/general.shard/compile_expression_test.dart index d4ba1ba68aa..c2cf844dcd2 100644 --- a/packages/flutter_tools/test/general.shard/compile_expression_test.dart +++ b/packages/flutter_tools/test/general.shard/compile_expression_test.dart @@ -16,6 +16,7 @@ import 'package:flutter_tools/src/compile.dart'; import 'package:flutter_tools/src/convert.dart'; import 'package:mockito/mockito.dart'; import 'package:package_config/package_config.dart'; +import 'package:process/process.dart'; import '../src/common.dart'; import '../src/context.dart'; diff --git a/packages/flutter_tools/test/general.shard/compile_incremental_test.dart b/packages/flutter_tools/test/general.shard/compile_incremental_test.dart index 20edf451caa..7e2747a8435 100644 --- a/packages/flutter_tools/test/general.shard/compile_incremental_test.dart +++ b/packages/flutter_tools/test/general.shard/compile_incremental_test.dart @@ -16,6 +16,7 @@ import 'package:flutter_tools/src/compile.dart'; import 'package:flutter_tools/src/convert.dart'; import 'package:mockito/mockito.dart'; import 'package:package_config/package_config.dart'; +import 'package:process/process.dart'; import '../src/common.dart'; import '../src/context.dart'; diff --git a/packages/flutter_tools/test/general.shard/dart/pub_get_test.dart b/packages/flutter_tools/test/general.shard/dart/pub_get_test.dart index 6432fa971f9..d254c0f06f2 100644 --- a/packages/flutter_tools/test/general.shard/dart/pub_get_test.dart +++ b/packages/flutter_tools/test/general.shard/dart/pub_get_test.dart @@ -16,6 +16,7 @@ import 'package:flutter_tools/src/cache.dart'; import 'package:flutter_tools/src/dart/pub.dart'; import 'package:flutter_tools/src/reporting/reporting.dart'; import 'package:mockito/mockito.dart'; +import 'package:process/process.dart'; import 'package:fake_async/fake_async.dart'; import '../../src/common.dart'; diff --git a/packages/flutter_tools/test/general.shard/desktop_device_test.dart b/packages/flutter_tools/test/general.shard/desktop_device_test.dart index ce68147c5ca..6cdf75ed9c4 100644 --- a/packages/flutter_tools/test/general.shard/desktop_device_test.dart +++ b/packages/flutter_tools/test/general.shard/desktop_device_test.dart @@ -18,6 +18,7 @@ import 'package:flutter_tools/src/device.dart'; import 'package:flutter_tools/src/project.dart'; import 'package:meta/meta.dart'; +import 'package:process/process.dart'; import 'package:test/fake.dart'; import '../src/common.dart'; diff --git a/packages/flutter_tools/test/general.shard/drive/drive_service_test.dart b/packages/flutter_tools/test/general.shard/drive/drive_service_test.dart index ac880d64304..31cb932412c 100644 --- a/packages/flutter_tools/test/general.shard/drive/drive_service_test.dart +++ b/packages/flutter_tools/test/general.shard/drive/drive_service_test.dart @@ -16,6 +16,7 @@ import 'package:flutter_tools/src/device.dart'; import 'package:flutter_tools/src/drive/drive_service.dart'; import 'package:flutter_tools/src/vmservice.dart'; import 'package:package_config/package_config_types.dart'; +import 'package:process/process.dart'; import 'package:test/fake.dart'; import 'package:vm_service/vm_service.dart' as vm_service; diff --git a/packages/flutter_tools/test/general.shard/emulator_test.dart b/packages/flutter_tools/test/general.shard/emulator_test.dart index 55dc9843b85..77aa8c1ee23 100644 --- a/packages/flutter_tools/test/general.shard/emulator_test.dart +++ b/packages/flutter_tools/test/general.shard/emulator_test.dart @@ -13,6 +13,7 @@ import 'package:flutter_tools/src/emulator.dart'; import 'package:flutter_tools/src/ios/ios_emulators.dart'; import 'package:flutter_tools/src/macos/xcode.dart'; import 'package:mockito/mockito.dart'; +import 'package:process/process.dart'; import '../src/common.dart'; import '../src/context.dart'; diff --git a/packages/flutter_tools/test/general.shard/flutter_platform_test.dart b/packages/flutter_tools/test/general.shard/flutter_platform_test.dart index 74c315fa41f..25b99672da6 100644 --- a/packages/flutter_tools/test/general.shard/flutter_platform_test.dart +++ b/packages/flutter_tools/test/general.shard/flutter_platform_test.dart @@ -15,6 +15,7 @@ import 'package:flutter_tools/src/device.dart'; import 'package:flutter_tools/src/test/flutter_platform.dart'; import 'package:meta/meta.dart'; import 'package:mockito/mockito.dart'; +import 'package:process/process.dart'; import 'package:test_core/backend.dart'; // ignore: deprecated_member_use import '../src/common.dart'; diff --git a/packages/flutter_tools/test/general.shard/fuchsia/fuchsia_dev_finder_test.dart b/packages/flutter_tools/test/general.shard/fuchsia/fuchsia_dev_finder_test.dart index cde59a24db7..f70b019b2cc 100644 --- a/packages/flutter_tools/test/general.shard/fuchsia/fuchsia_dev_finder_test.dart +++ b/packages/flutter_tools/test/general.shard/fuchsia/fuchsia_dev_finder_test.dart @@ -11,6 +11,7 @@ import 'package:flutter_tools/src/base/logger.dart'; import 'package:flutter_tools/src/fuchsia/fuchsia_dev_finder.dart'; import 'package:flutter_tools/src/fuchsia/fuchsia_sdk.dart'; import 'package:mockito/mockito.dart'; +import 'package:process/process.dart'; import '../../src/common.dart'; import '../../src/context.dart'; diff --git a/packages/flutter_tools/test/general.shard/fuchsia/fuchsia_device_test.dart b/packages/flutter_tools/test/general.shard/fuchsia/fuchsia_device_test.dart index 5ab53e8af83..dff03316dad 100644 --- a/packages/flutter_tools/test/general.shard/fuchsia/fuchsia_device_test.dart +++ b/packages/flutter_tools/test/general.shard/fuchsia/fuchsia_device_test.dart @@ -36,6 +36,7 @@ import 'package:flutter_tools/src/project.dart'; import 'package:flutter_tools/src/vmservice.dart'; import 'package:meta/meta.dart'; import 'package:mockito/mockito.dart'; +import 'package:process/process.dart'; import 'package:vm_service/vm_service.dart' as vm_service; import '../../src/common.dart'; diff --git a/packages/flutter_tools/test/general.shard/ios/code_signing_test.dart b/packages/flutter_tools/test/general.shard/ios/code_signing_test.dart index 465948e026b..359fb4c9cc0 100644 --- a/packages/flutter_tools/test/general.shard/ios/code_signing_test.dart +++ b/packages/flutter_tools/test/general.shard/ios/code_signing_test.dart @@ -16,6 +16,7 @@ import 'package:flutter_tools/src/base/io.dart'; import 'package:flutter_tools/src/base/terminal.dart'; import 'package:flutter_tools/src/ios/code_signing.dart'; import 'package:flutter_tools/src/globals.dart' as globals; +import 'package:process/process.dart'; import '../../src/common.dart'; import '../../src/context.dart'; diff --git a/packages/flutter_tools/test/general.shard/ios/ios_deploy_test.dart b/packages/flutter_tools/test/general.shard/ios/ios_deploy_test.dart index ddcf15c53d4..37ad9241488 100644 --- a/packages/flutter_tools/test/general.shard/ios/ios_deploy_test.dart +++ b/packages/flutter_tools/test/general.shard/ios/ios_deploy_test.dart @@ -15,6 +15,7 @@ import 'package:flutter_tools/src/build_info.dart'; import 'package:flutter_tools/src/cache.dart'; import 'package:flutter_tools/src/ios/devices.dart'; import 'package:flutter_tools/src/ios/ios_deploy.dart'; +import 'package:process/process.dart'; import '../../src/common.dart'; import '../../src/context.dart'; diff --git a/packages/flutter_tools/test/general.shard/ios/mac_test.dart b/packages/flutter_tools/test/general.shard/ios/mac_test.dart index f935eaa8816..f7a0a4a8cfa 100644 --- a/packages/flutter_tools/test/general.shard/ios/mac_test.dart +++ b/packages/flutter_tools/test/general.shard/ios/mac_test.dart @@ -18,6 +18,7 @@ import 'package:flutter_tools/src/ios/mac.dart'; import 'package:flutter_tools/src/project.dart'; import 'package:flutter_tools/src/reporting/reporting.dart'; import 'package:mockito/mockito.dart'; +import 'package:process/process.dart'; import '../../src/common.dart'; import '../../src/context.dart'; diff --git a/packages/flutter_tools/test/general.shard/ios/simulators_test.dart b/packages/flutter_tools/test/general.shard/ios/simulators_test.dart index 66b12624de2..f0952f63263 100644 --- a/packages/flutter_tools/test/general.shard/ios/simulators_test.dart +++ b/packages/flutter_tools/test/general.shard/ios/simulators_test.dart @@ -21,6 +21,7 @@ import 'package:flutter_tools/src/ios/simulators.dart'; import 'package:flutter_tools/src/macos/xcode.dart'; import 'package:flutter_tools/src/project.dart'; import 'package:mockito/mockito.dart'; +import 'package:process/process.dart'; import '../../src/common.dart'; import '../../src/context.dart'; diff --git a/packages/flutter_tools/test/general.shard/ios/xcodeproj_test.dart b/packages/flutter_tools/test/general.shard/ios/xcodeproj_test.dart index 8ba98c3cb96..cff5cb85f2a 100644 --- a/packages/flutter_tools/test/general.shard/ios/xcodeproj_test.dart +++ b/packages/flutter_tools/test/general.shard/ios/xcodeproj_test.dart @@ -16,6 +16,7 @@ import 'package:flutter_tools/src/ios/xcodeproj.dart'; import 'package:flutter_tools/src/project.dart'; import 'package:flutter_tools/src/reporting/reporting.dart'; import 'package:mockito/mockito.dart'; +import 'package:process/process.dart'; import '../../src/common.dart'; import '../../src/context.dart'; diff --git a/packages/flutter_tools/test/general.shard/linux/linux_doctor_test.dart b/packages/flutter_tools/test/general.shard/linux/linux_doctor_test.dart index 66741b46eeb..cd99342c75b 100644 --- a/packages/flutter_tools/test/general.shard/linux/linux_doctor_test.dart +++ b/packages/flutter_tools/test/general.shard/linux/linux_doctor_test.dart @@ -7,6 +7,7 @@ import 'package:flutter_tools/src/base/user_messages.dart'; import 'package:flutter_tools/src/doctor.dart'; import 'package:flutter_tools/src/linux/linux_doctor.dart'; +import 'package:process/process.dart'; import '../../src/common.dart'; import '../../src/context.dart'; diff --git a/packages/flutter_tools/test/general.shard/macos/cocoapods_test.dart b/packages/flutter_tools/test/general.shard/macos/cocoapods_test.dart index 211e6af07b4..dec5713c63c 100644 --- a/packages/flutter_tools/test/general.shard/macos/cocoapods_test.dart +++ b/packages/flutter_tools/test/general.shard/macos/cocoapods_test.dart @@ -18,6 +18,7 @@ import 'package:flutter_tools/src/plugins.dart'; import 'package:flutter_tools/src/project.dart'; import 'package:flutter_tools/src/reporting/reporting.dart'; import 'package:mockito/mockito.dart'; +import 'package:process/process.dart'; import '../../src/common.dart'; import '../../src/context.dart'; diff --git a/packages/flutter_tools/test/general.shard/macos/xcode_test.dart b/packages/flutter_tools/test/general.shard/macos/xcode_test.dart index 39f580ca5ab..a36155b9e85 100644 --- a/packages/flutter_tools/test/general.shard/macos/xcode_test.dart +++ b/packages/flutter_tools/test/general.shard/macos/xcode_test.dart @@ -17,6 +17,7 @@ import 'package:flutter_tools/src/ios/iproxy.dart'; import 'package:flutter_tools/src/ios/xcodeproj.dart'; import 'package:flutter_tools/src/macos/xcode.dart'; import 'package:mockito/mockito.dart'; +import 'package:process/process.dart'; import '../../src/common.dart'; import '../../src/context.dart'; diff --git a/packages/flutter_tools/test/general.shard/runner/flutter_command_runner_test.dart b/packages/flutter_tools/test/general.shard/runner/flutter_command_runner_test.dart index c3a02b94012..f6ea741e3fb 100644 --- a/packages/flutter_tools/test/general.shard/runner/flutter_command_runner_test.dart +++ b/packages/flutter_tools/test/general.shard/runner/flutter_command_runner_test.dart @@ -16,6 +16,7 @@ import 'package:flutter_tools/src/runner/flutter_command.dart'; import 'package:flutter_tools/src/runner/flutter_command_runner.dart'; import 'package:flutter_tools/src/version.dart'; import 'package:mockito/mockito.dart'; +import 'package:process/process.dart'; import '../../src/common.dart'; import '../../src/context.dart'; diff --git a/packages/flutter_tools/test/general.shard/tester/flutter_tester_test.dart b/packages/flutter_tools/test/general.shard/tester/flutter_tester_test.dart index 7a28344edc5..325940334c2 100644 --- a/packages/flutter_tools/test/general.shard/tester/flutter_tester_test.dart +++ b/packages/flutter_tools/test/general.shard/tester/flutter_tester_test.dart @@ -16,6 +16,7 @@ import 'package:flutter_tools/src/device.dart'; import 'package:flutter_tools/src/tester/flutter_tester.dart'; import 'package:flutter_tools/src/version.dart'; import 'package:mockito/mockito.dart'; +import 'package:process/process.dart'; import '../../src/common.dart'; import '../../src/context.dart'; diff --git a/packages/flutter_tools/test/general.shard/version_test.dart b/packages/flutter_tools/test/general.shard/version_test.dart index 6b7a8b8a298..615fb7f989f 100644 --- a/packages/flutter_tools/test/general.shard/version_test.dart +++ b/packages/flutter_tools/test/general.shard/version_test.dart @@ -18,6 +18,7 @@ import 'package:flutter_tools/src/cache.dart'; import 'package:flutter_tools/src/globals.dart' as globals; import 'package:flutter_tools/src/version.dart'; import 'package:mockito/mockito.dart'; +import 'package:process/process.dart'; import '../src/common.dart'; import '../src/context.dart'; diff --git a/packages/flutter_tools/test/general.shard/web/golden_comparator_test.dart b/packages/flutter_tools/test/general.shard/web/golden_comparator_test.dart index 103f39d96e6..8765bd6196c 100644 --- a/packages/flutter_tools/test/general.shard/web/golden_comparator_test.dart +++ b/packages/flutter_tools/test/general.shard/web/golden_comparator_test.dart @@ -7,11 +7,11 @@ import 'dart:convert'; import 'dart:typed_data'; -import 'package:flutter_tools/src/base/process.dart'; import 'package:flutter_tools/src/test/flutter_web_goldens.dart'; import 'package:flutter_tools/src/test/test_compiler.dart'; import 'package:flutter_tools/src/globals.dart' as globals; import 'package:mockito/mockito.dart'; +import 'package:process/process.dart'; import '../../src/common.dart'; import '../../src/fakes.dart'; diff --git a/packages/flutter_tools/test/integration.shard/daemon_mode_test.dart b/packages/flutter_tools/test/integration.shard/daemon_mode_test.dart index 06fc453f0aa..f9556245384 100644 --- a/packages/flutter_tools/test/integration.shard/daemon_mode_test.dart +++ b/packages/flutter_tools/test/integration.shard/daemon_mode_test.dart @@ -11,6 +11,7 @@ import 'dart:io'; import 'package:file/file.dart'; import 'package:flutter_tools/src/base/file_system.dart'; import 'package:flutter_tools/src/base/io.dart'; +import 'package:process/process.dart'; import '../src/common.dart'; import 'test_data/basic_project.dart'; @@ -36,6 +37,7 @@ void main() { final String flutterBin = fileSystem.path.join(getFlutterRoot(), 'bin', 'flutter'); + const ProcessManager processManager = LocalProcessManager(); daemonProcess = await processManager.start( [flutterBin, ...getLocalEngineArguments(), '--show-test-device', 'daemon'], workingDirectory: tempDir.path, diff --git a/packages/flutter_tools/test/integration.shard/flutter_run_test.dart b/packages/flutter_tools/test/integration.shard/flutter_run_test.dart index 217e65d6dca..a6eb91cbbb9 100644 --- a/packages/flutter_tools/test/integration.shard/flutter_run_test.dart +++ b/packages/flutter_tools/test/integration.shard/flutter_run_test.dart @@ -6,8 +6,10 @@ import 'package:file/file.dart'; import 'package:flutter_tools/src/base/io.dart'; +import 'package:process/process.dart'; import '../src/common.dart'; +import '../src/context.dart'; import 'test_data/basic_project.dart'; import 'test_driver.dart'; import 'test_utils.dart'; @@ -35,7 +37,8 @@ void main() { // some of the checks for devices. final String flutterBin = fileSystem.path.join(getFlutterRoot(), 'bin', 'flutter'); - final ProcessResult _proc = await processManager.run( + const ProcessManager _processManager = LocalProcessManager(); + final ProcessResult _proc = await _processManager.run( [flutterBin, 'run', '-d', 'invalid-device-id'], workingDirectory: tempDir.path, ); diff --git a/packages/flutter_tools/test/integration.shard/forbidden_imports_test.dart b/packages/flutter_tools/test/integration.shard/forbidden_imports_test.dart index 51bc8647d1d..2c14356d862 100644 --- a/packages/flutter_tools/test/integration.shard/forbidden_imports_test.dart +++ b/packages/flutter_tools/test/integration.shard/forbidden_imports_test.dart @@ -139,7 +139,6 @@ void main() { final List allowedPath = [ fileSystem.path.join(flutterTools, 'test', 'integration.shard', 'test_utils.dart'), fileSystem.path.join(flutterTools, 'lib', 'src', 'base', 'file_system.dart'), - fileSystem.path.join(flutterTools, 'lib', 'src', 'base', 'process.dart'), ]; for (final String dirName in ['lib', 'bin', 'test']) { final Iterable files = fileSystem.directory(fileSystem.path.join(flutterTools, dirName)) diff --git a/packages/flutter_tools/test/integration.shard/test_driver.dart b/packages/flutter_tools/test/integration.shard/test_driver.dart index cb40a005930..1bab241ff96 100644 --- a/packages/flutter_tools/test/integration.shard/test_driver.dart +++ b/packages/flutter_tools/test/integration.shard/test_driver.dart @@ -14,6 +14,7 @@ import 'package:flutter_tools/src/base/file_system.dart'; import 'package:flutter_tools/src/base/io.dart'; import 'package:flutter_tools/src/base/utils.dart'; import 'package:meta/meta.dart'; +import 'package:process/process.dart'; import 'package:vm_service/vm_service.dart'; import 'package:vm_service/vm_service_io.dart'; @@ -103,7 +104,8 @@ abstract class FlutterTestDriver { } _debugPrint('Spawning flutter $arguments in ${_projectFolder.path}'); - _process = await processManager.start( + const ProcessManager _processManager = LocalProcessManager(); + _process = await _processManager.start( [flutterBin] .followedBy(arguments) .toList(), diff --git a/packages/flutter_tools/test/integration.shard/test_utils.dart b/packages/flutter_tools/test/integration.shard/test_utils.dart index 6e310f58e35..45596f12cc3 100644 --- a/packages/flutter_tools/test/integration.shard/test_utils.dart +++ b/packages/flutter_tools/test/integration.shard/test_utils.dart @@ -8,8 +8,8 @@ import 'package:file/file.dart'; import 'package:file/local.dart'; import 'package:flutter_tools/src/base/io.dart'; import 'package:flutter_tools/src/base/platform.dart'; -import 'package:flutter_tools/src/base/process.dart'; import 'package:meta/meta.dart'; +import 'package:process/process.dart'; import 'package:vm_service/vm_service.dart'; import '../src/common.dart'; @@ -22,10 +22,7 @@ const FileSystem fileSystem = LocalFileSystem(); const Platform platform = LocalPlatform(); /// The [ProcessManager] for the integration test environment. -const ProcessManager processManager = LocalProcessManager( - platform: platform, - fileSystem: fileSystem, -); +const ProcessManager processManager = LocalProcessManager(); /// Creates a temporary directory but resolves any symlinks to return the real /// underlying path to avoid issues with breakpoints/hot reload. diff --git a/packages/flutter_tools/test/integration.shard/unit_coverage_test.dart b/packages/flutter_tools/test/integration.shard/unit_coverage_test.dart index 5e06d3fd14d..56f0d2fab6b 100644 --- a/packages/flutter_tools/test/integration.shard/unit_coverage_test.dart +++ b/packages/flutter_tools/test/integration.shard/unit_coverage_test.dart @@ -6,7 +6,7 @@ import 'package:flutter_tools/src/base/file_system.dart'; import 'package:flutter_tools/src/base/io.dart'; -import 'package:flutter_tools/src/base/process.dart'; +import 'package:process/process.dart'; import '../src/common.dart'; import 'test_utils.dart'; diff --git a/packages/flutter_tools/test/src/context.dart b/packages/flutter_tools/test/src/context.dart index fc8f134c4b1..b8691d490d0 100644 --- a/packages/flutter_tools/test/src/context.dart +++ b/packages/flutter_tools/test/src/context.dart @@ -37,13 +37,13 @@ import 'package:meta/meta.dart'; import 'package:mockito/mockito.dart'; import 'common.dart'; +import 'fake_process_manager.dart'; import 'fakes.dart'; import 'mocks.dart'; import 'throwing_pub.dart'; export 'package:flutter_tools/src/base/context.dart' show Generator; -export 'package:flutter_tools/src/base/process.dart' show ProcessManager; -export 'fake_process_manager.dart' show FakeProcessManager, FakeCommand; +export 'fake_process_manager.dart' show ProcessManager, FakeProcessManager, FakeCommand; /// Return the test logger. This assumes that the current Logger is a BufferLogger. BufferLogger get testLogger => context.get() as BufferLogger; diff --git a/packages/flutter_tools/test/src/darwin_common.dart b/packages/flutter_tools/test/src/darwin_common.dart index 9ca7121bd0f..b5bea318f30 100644 --- a/packages/flutter_tools/test/src/darwin_common.dart +++ b/packages/flutter_tools/test/src/darwin_common.dart @@ -6,8 +6,8 @@ import 'dart:convert'; +import 'package:process/process.dart'; import 'package:flutter_tools/src/base/io.dart'; -import 'package:flutter_tools/src/base/process.dart'; bool containsBitcode(String pathToBinary, ProcessManager processManager) { // See: https://stackoverflow.com/questions/32755775/how-to-check-a-static-library-is-built-contain-bitcode diff --git a/packages/flutter_tools/test/src/fake_process_manager.dart b/packages/flutter_tools/test/src/fake_process_manager.dart index ab7a2eef226..028b453cd5c 100644 --- a/packages/flutter_tools/test/src/fake_process_manager.dart +++ b/packages/flutter_tools/test/src/fake_process_manager.dart @@ -9,9 +9,12 @@ import 'dart:convert'; import 'dart:io' as io show ProcessSignal; import 'package:flutter_tools/src/base/io.dart'; -import 'package:flutter_tools/src/base/process.dart'; import 'package:meta/meta.dart'; +import 'package:process/process.dart'; import 'common.dart'; +import 'context.dart'; + +export 'package:process/process.dart' show ProcessManager; typedef VoidCallback = void Function(); @@ -242,7 +245,7 @@ abstract class FakeProcessManager implements ProcessManager { @override Future start( - List command, { + List command, { String workingDirectory, Map environment, bool includeParentEnvironment = true, // ignored @@ -261,7 +264,7 @@ abstract class FakeProcessManager implements ProcessManager { @override Future run( - List command, { + List command, { String workingDirectory, Map environment, bool includeParentEnvironment = true, // ignored @@ -281,7 +284,7 @@ abstract class FakeProcessManager implements ProcessManager { @override ProcessResult runSync( - List command, { + List command, { String workingDirectory, Map environment, bool includeParentEnvironment = true, // ignored @@ -305,7 +308,7 @@ abstract class FakeProcessManager implements ProcessManager { Set excludedExecutables = {}; @override - bool killPid(int pid, [ProcessSignal signal = ProcessSignal.SIGTERM]) { + bool killPid(int pid, [io.ProcessSignal signal = io.ProcessSignal.sigterm]) { // Killing a fake process has no effect unless it has an attached completer. final _FakeProcess fakeProcess = _fakeRunningProcesses[pid]; if (fakeProcess == null) { diff --git a/packages/flutter_tools/test/src/mocks.dart b/packages/flutter_tools/test/src/mocks.dart index 3cad33ca8f7..46c5444954d 100644 --- a/packages/flutter_tools/test/src/mocks.dart +++ b/packages/flutter_tools/test/src/mocks.dart @@ -15,7 +15,6 @@ import 'package:flutter_tools/src/base/context.dart'; import 'package:flutter_tools/src/base/file_system.dart' hide IOSink; import 'package:flutter_tools/src/base/io.dart'; import 'package:flutter_tools/src/base/platform.dart'; -import 'package:flutter_tools/src/base/process.dart'; import 'package:flutter_tools/src/build_info.dart'; import 'package:flutter_tools/src/compile.dart'; import 'package:flutter_tools/src/globals.dart' as globals; @@ -23,6 +22,7 @@ import 'package:flutter_tools/src/ios/devices.dart'; import 'package:flutter_tools/src/project.dart'; import 'package:mockito/mockito.dart'; import 'package:package_config/package_config.dart'; +import 'package:process/process.dart'; import 'common.dart'; import 'fakes.dart'; diff --git a/packages/flutter_tools/test/src/testbed.dart b/packages/flutter_tools/test/src/testbed.dart index 4d92ff7b2fd..20abb1247e9 100644 --- a/packages/flutter_tools/test/src/testbed.dart +++ b/packages/flutter_tools/test/src/testbed.dart @@ -26,6 +26,7 @@ import 'package:flutter_tools/src/reporting/reporting.dart'; import 'package:flutter_tools/src/version.dart'; import 'package:flutter_tools/src/globals.dart' as globals; import 'package:meta/meta.dart'; +import 'package:process/process.dart'; import 'common.dart' as tester; import 'context.dart';