diff --git a/packages/flutter_tools/lib/src/runner/flutter_command.dart b/packages/flutter_tools/lib/src/runner/flutter_command.dart index 47b06b200c..09425d25ec 100644 --- a/packages/flutter_tools/lib/src/runner/flutter_command.dart +++ b/packages/flutter_tools/lib/src/runner/flutter_command.dart @@ -1480,12 +1480,6 @@ abstract class FlutterCommand extends Command { // This adds the Dart defines used to access various Flutter version information at runtime. void _addFlutterVersionToDartDefines(FlutterVersion version, List dartDefines) { for (final String dartDefine in flutterVersionDartDefines) { - if (globals.platform.environment[dartDefine] != null) { - throwToolExit( - '$dartDefine is used by the framework and cannot be set in the environment. ' - 'Use FlutterVersion to access it in Flutter code', - ); - } if (dartDefines.any((String define) => define.startsWith(dartDefine))) { throwToolExit( '$dartDefine is used by the framework and cannot be ' diff --git a/packages/flutter_tools/test/general.shard/runner/flutter_command_test.dart b/packages/flutter_tools/test/general.shard/runner/flutter_command_test.dart index 0fae431f4d..00b603d354 100644 --- a/packages/flutter_tools/test/general.shard/runner/flutter_command_test.dart +++ b/packages/flutter_tools/test/general.shard/runner/flutter_command_test.dart @@ -1272,39 +1272,6 @@ flutter: group('Flutter version', () { for (final String dartDefine in FlutterCommand.flutterVersionDartDefines) { - testUsingContext( - "tool exits when $dartDefine is already set in user's environment", - () async { - final CommandRunner runner = createTestCommandRunner( - _TestRunCommandThatOnlyValidates(), - ); - - await expectLater( - runner.run(['run', '--no-pub', '--no-hot']), - throwsToolExit( - message: - '$dartDefine is used by the framework and cannot be set in the environment. ' - 'Use FlutterVersion to access it in Flutter code', - ), - ); - }, - overrides: { - DeviceManager: - () => FakeDeviceManager()..attachedDevices = [FakeDevice('name', 'id')], - Platform: - () => FakePlatform(environment: {dartDefine: 'I was already set'}), - Cache: () => Cache.test(processManager: FakeProcessManager.any()), - FileSystem: () { - return MemoryFileSystem.test() - ..file('lib/main.dart').createSync(recursive: true) - ..file('pubspec.yaml').createSync() - ..file('.packages').createSync(); - }, - ProcessManager: () => FakeProcessManager.any(), - FlutterVersion: () => FakeFlutterVersion(), - }, - ); - testUsingContext( 'tool exits when $dartDefine is set in --dart-define or --dart-define-from-file', () async { @@ -1361,6 +1328,38 @@ flutter: ); } + // Regression test for https://github.com/flutter/flutter/issues/164093 + testUsingContext( + 'tool does not throw when FLUTTER_GIT_URL exists in environment variables', + () async { + final CommandRunner runner = createTestCommandRunner( + _TestRunCommandThatOnlyValidates(), + ); + + await expectReturnsNormallyLater(runner.run(['run', '--no-pub', '--no-hot'])); + }, + overrides: { + DeviceManager: + () => FakeDeviceManager()..attachedDevices = [FakeDevice('name', 'id')], + Platform: + () => + FakePlatform() + ..environment = { + 'FLUTTER_GIT_URL': 'git@example.org:fork_of/flutter.git', + }, + Cache: () => Cache.test(processManager: FakeProcessManager.any()), + FileSystem: () { + final MemoryFileSystem fileSystem = MemoryFileSystem.test(); + fileSystem.file('lib/main.dart').createSync(recursive: true); + fileSystem.file('pubspec.yaml').createSync(); + fileSystem.file('.packages').createSync(); + return fileSystem; + }, + ProcessManager: () => FakeProcessManager.any(), + FlutterVersion: () => FakeFlutterVersion(), + }, + ); + testUsingContext( 'FLUTTER_VERSION is set in dartDefines', () async {