// 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 ); }