Unverified Commit 39c735f4 authored by Jonah Williams's avatar Jonah Williams Committed by GitHub

[flutter_tools] correctly forward error only stdout in non-verbose modes (#63815)

parent 2122fe1f
......@@ -301,7 +301,7 @@
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "\"$FLUTTER_ROOT\"/packages/flutter_tools/bin/macos_assemble.sh\ntouch Flutter/ephemeral/tripwire\n";
shellScript = "\"$FLUTTER_ROOT\"/packages/flutter_tools/bin/macos_assemble.sh && touch Flutter/ephemeral/tripwire";
};
36C290D58D35783923B6B124 /* [CP] Check Pods Manifest.lock */ = {
isa = PBXShellScriptBuildPhase;
......
......@@ -14,6 +14,10 @@ import '../ios/xcodeproj.dart';
import '../project.dart';
import 'cocoapod_utils.dart';
/// When run in -quiet mode, Xcode only prints from the underlying tasks to stdout.
/// Passing this regexp to trace moves the stdout output to stderr.
final RegExp _anyOutput = RegExp('.*');
/// Builds the macOS project through xcodebuild.
// TODO(jonahwilliams): refactor to share code with the existing iOS code.
Future<void> buildMacOS({
......@@ -87,10 +91,15 @@ Future<void> buildMacOS({
'OBJROOT=${globals.fs.path.join(flutterBuildDir.absolute.path, 'Build', 'Intermediates.noindex')}',
'SYMROOT=${globals.fs.path.join(flutterBuildDir.absolute.path, 'Build', 'Products')}',
if (verboseLogging)
'VERBOSE_SCRIPT_LOGGING=YES',
'VERBOSE_SCRIPT_LOGGING=YES'
else
'-quiet',
'COMPILER_INDEX_STORE_ENABLE=NO',
...environmentVariablesAsXcodeBuildSettings(globals.platform)
], trace: true);
],
trace: true,
stdoutErrorMatcher: verboseLogging ? null : _anyOutput,
);
} finally {
status.cancel();
}
......
......@@ -280,7 +280,7 @@
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "\"$FLUTTER_ROOT\"/packages/flutter_tools/bin/macos_assemble.sh\ntouch Flutter/ephemeral/tripwire\n";
shellScript = "\"$FLUTTER_ROOT\"/packages/flutter_tools/bin/macos_assemble.sh && touch Flutter/ephemeral/tripwire";
};
/* End PBXShellScriptBuildPhase section */
......
......@@ -86,7 +86,9 @@ void main() {
'OBJROOT=${fileSystem.path.join(flutterBuildDir.absolute.path, 'Build', 'Intermediates.noindex')}',
'SYMROOT=${fileSystem.path.join(flutterBuildDir.absolute.path, 'Build', 'Products')}',
if (verbose)
'VERBOSE_SCRIPT_LOGGING=YES',
'VERBOSE_SCRIPT_LOGGING=YES'
else
'-quiet',
'COMPILER_INDEX_STORE_ENABLE=NO',
],
stdout: 'STDOUT STUFF',
......@@ -129,7 +131,7 @@ void main() {
FeatureFlags: () => TestFeatureFlags(isMacOSEnabled: true),
});
testUsingContext('macOS build does not spew stdout to status logger', () async {
testUsingContext('macOS build forwards error stdout to status logger error', () async {
final BuildCommand command = BuildCommand();
createMinimalMockProjectFiles();
......@@ -137,7 +139,8 @@ void main() {
const <String>['build', 'macos', '--debug']
);
expect(testLogger.statusText, isNot(contains('STDOUT STUFF')));
expect(testLogger.traceText, contains('STDOUT STUFF'));
expect(testLogger.traceText, isNot(contains('STDOUT STUFF')));
expect(testLogger.errorText, contains('STDOUT STUFF'));
}, overrides: <Type, Generator>{
FileSystem: () => fileSystem,
ProcessManager: () => FakeProcessManager.list(<FakeCommand>[
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment