Skip to content

Commit 699f21a

Browse files
authored
[ Tool ] Don't emit artifact downloading messages when --machine is provided (flutter#174301)
Fixes flutter#154119
1 parent 5c23f4c commit 699f21a

2 files changed

Lines changed: 57 additions & 3 deletions

File tree

packages/flutter_tools/lib/executable.dart

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -86,9 +86,7 @@ Future<void> main(List<String> args) async {
8686
final bool muteCommandLogging = (help || doctor) && !veryVerbose;
8787
final bool verboseHelp = help && verbose;
8888
final bool daemon = args.contains('daemon');
89-
final bool runMachine =
90-
(args.contains('--machine') && args.contains('run')) ||
91-
(args.contains('--machine') && args.contains('attach'));
89+
final bool runMachine = args.contains('--machine');
9290

9391
// Cache.flutterRoot must be set early because other features use it (e.g.
9492
// enginePath's initializer uses it). This can only work with the real

packages/flutter_tools/test/general.shard/runner/runner_test.dart

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import 'dart:async';
66

77
import 'package:file/memory.dart';
8+
import 'package:flutter_tools/executable.dart';
89
import 'package:flutter_tools/runner.dart' as runner;
910
import 'package:flutter_tools/src/artifacts.dart';
1011
import 'package:flutter_tools/src/base/bot_detector.dart';
@@ -17,6 +18,7 @@ import 'package:flutter_tools/src/base/platform.dart';
1718
import 'package:flutter_tools/src/base/process.dart';
1819
import 'package:flutter_tools/src/base/user_messages.dart';
1920
import 'package:flutter_tools/src/cache.dart';
21+
import 'package:flutter_tools/src/commands/devices.dart';
2022
import 'package:flutter_tools/src/globals.dart' as globals;
2123
import 'package:flutter_tools/src/reporting/crash_reporting.dart';
2224
import 'package:flutter_tools/src/runner/flutter_command.dart';
@@ -576,6 +578,47 @@ void main() {
576578
BotDetector: () => const FakeBotDetector(true),
577579
},
578580
);
581+
582+
testUsingContext(
583+
'do not print download messages when --machine is provided',
584+
() async {
585+
// Regression test for https://github.com/flutter/flutter/issues/154119.
586+
final stdio = FakeStdio();
587+
await runner.run(
588+
<String>['devices', '--machine'],
589+
() => <FlutterCommand>[DevicesCommand()],
590+
// This flutterVersion disables crash reporting.
591+
flutterVersion: '[user-branch]/',
592+
shutdownHooks: ShutdownHooks(),
593+
overrides: {
594+
Logger: () {
595+
final loggerFactory = LoggerFactory(
596+
outputPreferences: globals.outputPreferences,
597+
terminal: globals.terminal,
598+
stdio: stdio,
599+
);
600+
return loggerFactory.createLogger(
601+
daemon: false,
602+
// This is set to true when --machine is detected as an argument in
603+
// executable.dart.
604+
machine: true,
605+
verbose: false,
606+
prefixedErrors: false,
607+
windows: globals.platform.isWindows,
608+
);
609+
},
610+
},
611+
);
612+
expect(stdio.writtenToStdout.join(), isNot(contains('Downloading')));
613+
expect(stdio.writtenToStderr.join(), isNot(contains('Downloading')));
614+
},
615+
overrides: <Type, Generator>{
616+
Cache: () => FakeCache(),
617+
FileSystem: () => MemoryFileSystem.test(),
618+
ProcessManager: () => FakeProcessManager.any(),
619+
BotDetector: () => const FakeBotDetector(true),
620+
},
621+
);
579622
});
580623

581624
group('unified_analytics', () {
@@ -822,3 +865,16 @@ class _ErrorOnCanRunFakeProcessManager extends Fake implements FakeProcessManage
822865
return delegate.canRun(executable, workingDirectory: workingDirectory);
823866
}
824867
}
868+
869+
class FakeCache extends Fake implements Cache {
870+
@override
871+
Future<void> lock() async {}
872+
873+
@override
874+
void releaseLock() {}
875+
876+
@override
877+
Future<void> updateAll(Set<DevelopmentArtifact> requiredArtifacts, {bool offline = false}) async {
878+
globals.logger.startProgress('Downloading package Foo').stop();
879+
}
880+
}

0 commit comments

Comments
 (0)