From 84a8bd3f5a765edf13495223f9cdabbc08a437ec Mon Sep 17 00:00:00 2001 From: Jonah Williams Date: Tue, 10 Nov 2020 05:21:14 -0800 Subject: [PATCH] Revert "[flutter_tools] always use dart to run test script. (#70146)" (#70175) This reverts commit a90880a8c32905dfa6f204348ad6a9e6d404d282. --- packages/flutter_tools/lib/src/drive/drive_service.dart | 9 ++++++++- .../test/general.shard/drive/drive_service_test.dart | 4 ++-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/packages/flutter_tools/lib/src/drive/drive_service.dart b/packages/flutter_tools/lib/src/drive/drive_service.dart index b9f7bff39b..67242407cb 100644 --- a/packages/flutter_tools/lib/src/drive/drive_service.dart +++ b/packages/flutter_tools/lib/src/drive/drive_service.dart @@ -235,9 +235,16 @@ class FlutterDriverService extends DriverService { int driverPort, List browserDimension, }) async { + // Check if package:test is available. If not, fall back to invoking + // the test script directly. `pub run test` is strictly better because + // in the even that a socket or something similar is left open, the + // test runner will correctly shutdown the VM instead of hanging forever. return _processUtils.stream([ _dartSdkPath, - ...[...arguments, testFile, '-rexpanded'], + if (packageConfig['test'] != null) + ...['pub', 'run', 'test', ...arguments, testFile, '-rexpanded'] + else + ...[...arguments, testFile, '-rexpanded'], ], environment: { 'VM_SERVICE_URL': _vmServiceUri, ...environment, 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 e2fd538342..ca396f8020 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 @@ -151,7 +151,7 @@ void main() { ]); final FakeProcessManager processManager = FakeProcessManager.list([ const FakeCommand( - command: ['dart', '--enable-experiment=non-nullable', 'foo.test', '-rexpanded'], + command: ['dart', 'pub', 'run', 'test', '--enable-experiment=non-nullable', 'foo.test', '-rexpanded'], exitCode: 23, environment: { 'FOO': 'BAR', @@ -212,7 +212,7 @@ void main() { ]); final FakeProcessManager processManager = FakeProcessManager.list([ const FakeCommand( - command: ['dart', 'foo.test', '-rexpanded'], + command: ['dart', 'pub', 'run', 'test', 'foo.test', '-rexpanded'], exitCode: 11, environment: { 'VM_SERVICE_URL': 'http://127.0.0.1:1234/'