From 587687eedf81aa83521cca96b8fb65a4adc8dd90 Mon Sep 17 00:00:00 2001 From: Jonah Williams Date: Fri, 7 Jun 2019 19:33:14 -0700 Subject: [PATCH] Revert "Added --dart-flags option to flutter run (#33924)" (#34092) --- .../lib/src/android/android_device.dart | 2 - .../flutter_tools/lib/src/commands/run.dart | 18 --- packages/flutter_tools/lib/src/device.dart | 3 - .../flutter_tools/lib/src/ios/devices.dart | 5 - .../flutter_tools/test/commands/run_test.dart | 150 +----------------- packages/flutter_tools/test/src/context.dart | 6 +- packages/flutter_tools/test/src/mocks.dart | 12 -- 7 files changed, 3 insertions(+), 193 deletions(-) diff --git a/packages/flutter_tools/lib/src/android/android_device.dart b/packages/flutter_tools/lib/src/android/android_device.dart index 03ee35640b2..e062da5e3d4 100644 --- a/packages/flutter_tools/lib/src/android/android_device.dart +++ b/packages/flutter_tools/lib/src/android/android_device.dart @@ -474,8 +474,6 @@ class AndroidDevice extends Device { cmd.addAll(['--ez', 'start-paused', 'true']); if (debuggingOptions.disableServiceAuthCodes) cmd.addAll(['--ez', 'disable-service-auth-codes', 'true']); - if (debuggingOptions.dartFlags.isNotEmpty) - cmd.addAll(['--es', 'dart-flags', debuggingOptions.dartFlags]); if (debuggingOptions.useTestFonts) cmd.addAll(['--ez', 'use-test-fonts', 'true']); if (debuggingOptions.verboseSystemLogs) { diff --git a/packages/flutter_tools/lib/src/commands/run.dart b/packages/flutter_tools/lib/src/commands/run.dart index d5dfb87877d..5b391bb1703 100644 --- a/packages/flutter_tools/lib/src/commands/run.dart +++ b/packages/flutter_tools/lib/src/commands/run.dart @@ -4,8 +4,6 @@ import 'dart:async'; -import 'package:args/command_runner.dart'; - import '../base/common.dart'; import '../base/file_system.dart'; import '../base/time.dart'; @@ -132,16 +130,6 @@ class RunCommand extends RunCommandBase { defaultsTo: true, help: 'If necessary, build the app before running.', ) - ..addOption('dart-flags', - hide: !verboseHelp, - help: 'Pass a list of comma separated flags to the Dart instance at ' - 'application startup. Flags passed through this option must be ' - 'present on the whitelist defined within the Flutter engine. If ' - 'a non-whitelisted flag is encountered, the process will be ' - 'terminated immediately.\n\n' - 'This flag is not available on the stable channel and is only ' - 'applied in debug and profile modes. This option should only ' - 'be used for experiments and should not be used by typical users.') ..addOption('use-application-binary', hide: !verboseHelp, help: 'Specify a pre-built application binary to use when running.', @@ -306,7 +294,6 @@ class RunCommand extends RunCommandBase { buildInfo, startPaused: argResults['start-paused'], disableServiceAuthCodes: argResults['disable-service-auth-codes'], - dartFlags: argResults['dart-flags'], useTestFonts: argResults['use-test-fonts'], enableSoftwareRendering: argResults['enable-software-rendering'], skiaDeterministicRendering: argResults['skia-deterministic-rendering'], @@ -363,11 +350,6 @@ class RunCommand extends RunCommandBase { ); } - if (argResults['dart-flags'] != null && FlutterVersion.instance.isStable) { - throw UsageException('--dart-flags is not available on the stable ' - 'channel.', null); - } - for (Device device in devices) { if (await device.isLocalEmulator) { if (await device.supportsHardwareRendering) { diff --git a/packages/flutter_tools/lib/src/device.dart b/packages/flutter_tools/lib/src/device.dart index 3947ce3502c..394befba481 100644 --- a/packages/flutter_tools/lib/src/device.dart +++ b/packages/flutter_tools/lib/src/device.dart @@ -377,7 +377,6 @@ class DebuggingOptions { this.buildInfo, { this.startPaused = false, this.disableServiceAuthCodes = false, - this.dartFlags = '', this.enableSoftwareRendering = false, this.skiaDeterministicRendering = false, this.traceSkia = false, @@ -392,7 +391,6 @@ class DebuggingOptions { : debuggingEnabled = false, useTestFonts = false, startPaused = false, - dartFlags = '', disableServiceAuthCodes = false, enableSoftwareRendering = false, skiaDeterministicRendering = false, @@ -406,7 +404,6 @@ class DebuggingOptions { final BuildInfo buildInfo; final bool startPaused; - final String dartFlags; final bool disableServiceAuthCodes; final bool enableSoftwareRendering; final bool skiaDeterministicRendering; diff --git a/packages/flutter_tools/lib/src/ios/devices.dart b/packages/flutter_tools/lib/src/ios/devices.dart index 15f2a2eb87e..02ede71711e 100644 --- a/packages/flutter_tools/lib/src/ios/devices.dart +++ b/packages/flutter_tools/lib/src/ios/devices.dart @@ -283,11 +283,6 @@ class IOSDevice extends Device { if (debuggingOptions.disableServiceAuthCodes) launchArguments.add('--disable-service-auth-codes'); - if (debuggingOptions.dartFlags.isNotEmpty) { - final String dartFlags = debuggingOptions.dartFlags; - launchArguments.add('--dart-flags="$dartFlags"'); - } - if (debuggingOptions.useTestFonts) launchArguments.add('--use-test-fonts'); diff --git a/packages/flutter_tools/test/commands/run_test.dart b/packages/flutter_tools/test/commands/run_test.dart index 9fbd6285b7a..492c149e57d 100644 --- a/packages/flutter_tools/test/commands/run_test.dart +++ b/packages/flutter_tools/test/commands/run_test.dart @@ -2,15 +2,11 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -import 'package:args/command_runner.dart'; -import 'package:flutter_tools/src/application_package.dart'; import 'package:flutter_tools/src/base/common.dart'; import 'package:flutter_tools/src/build_info.dart'; -import 'package:flutter_tools/src/cache.dart'; import 'package:flutter_tools/src/commands/run.dart'; import 'package:flutter_tools/src/device.dart'; import 'package:flutter_tools/src/runner/flutter_command.dart'; -import 'package:flutter_tools/src/version.dart'; import 'package:mockito/mockito.dart'; import '../src/common.dart'; @@ -18,20 +14,9 @@ import '../src/context.dart'; import '../src/mocks.dart'; void main() { + final MockDeviceManager mockDeviceManager = MockDeviceManager(); + group('run', () { - MockApplicationPackageFactory mockApplicationPackageFactory; - MockDeviceManager mockDeviceManager; - MockFlutterVersion mockStableFlutterVersion; - MockFlutterVersion mockUnstableFlutterVersion; - - setUpAll(() { - Cache.disableLocking(); - mockApplicationPackageFactory = MockApplicationPackageFactory(); - mockDeviceManager = MockDeviceManager(); - mockStableFlutterVersion = MockFlutterVersion(isStable: true); - mockUnstableFlutterVersion = MockFlutterVersion(isStable: false); - }); - testUsingContext('fails when target not found', () async { final RunCommand command = RunCommand(); applyMocksToCommand(command); @@ -43,75 +28,6 @@ void main() { } }); - testUsingContext('dart-flags option is not available on stable channel', () async { - when(mockDeviceManager.getDevices()).thenAnswer((Invocation invocation) { - return Stream.fromIterable([ - FakeDevice(), - ]); - }); - - final RunCommand command = TestRunCommand(); - final List args = [ - 'run', - '--dart-flags', '"--observe"', - '--no-hot', - ]; - - // Stable branch. - try { - await createTestCommandRunner(command).run(args); - fail('Expect exception'); - // ignore: unused_catch_clause - } on UsageException catch(e) { - // Not available while on stable branch. - } - }, overrides: { - DeviceManager: () => mockDeviceManager, - FlutterVersion: () => mockStableFlutterVersion, - }); - - testUsingContext('dart-flags option is only populated for debug and profile modes', () async { - when(mockDeviceManager.getDevices()).thenAnswer((Invocation invocation) { - return Stream.fromIterable([ - FakeDevice(), - ]); - }); - final RunCommand command = TestRunCommand(); - final List args = [ - 'run', - '--dart-flags', '"--observe"', - '--no-hot', - ]; - - // Debug mode - try { - await createTestCommandRunner(command).run(args); - fail('Expect exception'); - } on ToolExit catch (e) { - expect(e.exitCode ?? 1, 1); - } - - // Profile mode - try { - await createTestCommandRunner(command).run([...args, '--profile']); - fail('Expect exception'); - } on ToolExit catch (e) { - expect(e.exitCode ?? 1, 1); - } - - // Release mode - try { - await createTestCommandRunner(command).run([...args, '--release']); - fail('Expect exception'); - } on ToolExit catch (e) { - expect(e.exitCode ?? 1, 1); - } - }, overrides: { - ApplicationPackageFactory: () => mockApplicationPackageFactory, - DeviceManager: () => mockDeviceManager, - FlutterVersion: () => mockUnstableFlutterVersion, - }); - testUsingContext('should only request artifacts corresponding to connected devices', () async { when(mockDeviceManager.getDevices()).thenAnswer((Invocation invocation) { return Stream.fromIterable([ @@ -173,65 +89,3 @@ class MockDevice extends Mock implements Device { @override Future get targetPlatform async => _targetPlatform; } - -class TestRunCommand extends RunCommand { - @override - // ignore: must_call_super - Future validateCommand() async { - devices = await deviceManager.getDevices().toList(); - } -} - -class MockStableFlutterVersion extends MockFlutterVersion { - @override - bool get isStable => true; -} - -class FakeDevice extends Fake implements Device { - final TargetPlatform _targetPlatform = TargetPlatform.ios; - - void _throwToolExit(int code) => throwToolExit(null, exitCode: code); - - @override - Future get isLocalEmulator => Future.value(false); - - @override - bool get supportsHotReload => false; - - @override - DeviceLogReader getLogReader({ ApplicationPackage app }) { - return MockDeviceLogReader(); - } - - @override - String get name => 'FakeDevice'; - - @override - Future get targetPlatform async => _targetPlatform; - - @override - Future startApp( - ApplicationPackage package, { - String mainPath, - String route, - DebuggingOptions debuggingOptions, - Map platformArgs, - bool prebuiltApplication = false, - bool usesTerminalUi = true, - bool ipv6 = false, - }) async { - final String dartFlags = debuggingOptions.dartFlags; - if (debuggingOptions.buildInfo.isRelease) { - if (dartFlags.isNotEmpty) { - _throwToolExit(-1); - } - _throwToolExit(1); - } else { - if (dartFlags.isEmpty) { - _throwToolExit(-1); - } - _throwToolExit(1); - } - return null; - } -} diff --git a/packages/flutter_tools/test/src/context.dart b/packages/flutter_tools/test/src/context.dart index cc145f31b85..263437ef9a6 100644 --- a/packages/flutter_tools/test/src/context.dart +++ b/packages/flutter_tools/test/src/context.dart @@ -332,12 +332,8 @@ class MockXcodeProjectInterpreter implements XcodeProjectInterpreter { } class MockFlutterVersion extends Mock implements FlutterVersion { - MockFlutterVersion({bool isStable = false}) : _isStable = isStable; - - final bool _isStable; - @override - bool get isStable => _isStable; + bool get isStable => false; } class MockClock extends Mock implements SystemClock {} diff --git a/packages/flutter_tools/test/src/mocks.dart b/packages/flutter_tools/test/src/mocks.dart index 9106e0cdf71..8c318bc8c6d 100644 --- a/packages/flutter_tools/test/src/mocks.dart +++ b/packages/flutter_tools/test/src/mocks.dart @@ -37,18 +37,6 @@ class MockApplicationPackageStore extends ApplicationPackageStore { ); } -class MockApplicationPackageFactory extends Mock implements ApplicationPackageFactory { - final MockApplicationPackageStore _store = MockApplicationPackageStore(); - - @override - Future getPackageForPlatform( - TargetPlatform platform, { - File applicationBinary, - }) async { - return _store.getPackageForPlatform(platform); - } -} - /// An SDK installation with several SDK levels (19, 22, 23). class MockAndroidSdk extends Mock implements AndroidSdk { static Directory createSdkDirectory({