| // Copyright 2014 The Flutter Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| import 'dart:io'; |
| |
| import 'package:flutter_tools/src/cache.dart'; |
| import 'package:flutter_tools/src/globals.dart' as globals; |
| |
| import '../../src/common.dart'; |
| import '../../src/context.dart'; |
| |
| void main() { |
| setUpAll(() { |
| Cache.disableLocking(); |
| }); |
| |
| testUsingContext('flutter command can receive `!`, avoiding expansion by cmd.exe', () async { |
| final String flutterBin = globals.fs.path.join(getFlutterRoot(), 'bin', 'flutter.bat'); |
| |
| final ProcessResult exec = await Process.run( |
| flutterBin, |
| <String>[ |
| '!', |
| ], |
| workingDirectory: Cache.flutterRoot, |
| ); |
| // If ENABLEDELAYEDEXPANSION is enabled, the argument `!` is removed, |
| // and flutter runs without any arguments. |
| expect(exec.exitCode, 64); |
| expect(exec.stderr, contains('Could not find a command named "!"')); |
| }, |
| skip: !Platform.isWindows, // [intended] relies on Windows's cmd.exe |
| ); |
| } |