[flutter_tools] correctly forward error only stdout in non-verbose modes (#63815)
This commit is contained in:
parent
2122fe1fa1
commit
39c735f408
@ -301,7 +301,7 @@
|
|||||||
);
|
);
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
shellPath = /bin/sh;
|
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 */ = {
|
36C290D58D35783923B6B124 /* [CP] Check Pods Manifest.lock */ = {
|
||||||
isa = PBXShellScriptBuildPhase;
|
isa = PBXShellScriptBuildPhase;
|
||||||
|
@ -14,6 +14,10 @@ import '../ios/xcodeproj.dart';
|
|||||||
import '../project.dart';
|
import '../project.dart';
|
||||||
import 'cocoapod_utils.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.
|
/// Builds the macOS project through xcodebuild.
|
||||||
// TODO(jonahwilliams): refactor to share code with the existing iOS code.
|
// TODO(jonahwilliams): refactor to share code with the existing iOS code.
|
||||||
Future<void> buildMacOS({
|
Future<void> buildMacOS({
|
||||||
@ -87,10 +91,15 @@ Future<void> buildMacOS({
|
|||||||
'OBJROOT=${globals.fs.path.join(flutterBuildDir.absolute.path, 'Build', 'Intermediates.noindex')}',
|
'OBJROOT=${globals.fs.path.join(flutterBuildDir.absolute.path, 'Build', 'Intermediates.noindex')}',
|
||||||
'SYMROOT=${globals.fs.path.join(flutterBuildDir.absolute.path, 'Build', 'Products')}',
|
'SYMROOT=${globals.fs.path.join(flutterBuildDir.absolute.path, 'Build', 'Products')}',
|
||||||
if (verboseLogging)
|
if (verboseLogging)
|
||||||
'VERBOSE_SCRIPT_LOGGING=YES',
|
'VERBOSE_SCRIPT_LOGGING=YES'
|
||||||
|
else
|
||||||
|
'-quiet',
|
||||||
'COMPILER_INDEX_STORE_ENABLE=NO',
|
'COMPILER_INDEX_STORE_ENABLE=NO',
|
||||||
...environmentVariablesAsXcodeBuildSettings(globals.platform)
|
...environmentVariablesAsXcodeBuildSettings(globals.platform)
|
||||||
], trace: true);
|
],
|
||||||
|
trace: true,
|
||||||
|
stdoutErrorMatcher: verboseLogging ? null : _anyOutput,
|
||||||
|
);
|
||||||
} finally {
|
} finally {
|
||||||
status.cancel();
|
status.cancel();
|
||||||
}
|
}
|
||||||
|
@ -280,7 +280,7 @@
|
|||||||
);
|
);
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
shellPath = /bin/sh;
|
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 */
|
/* End PBXShellScriptBuildPhase section */
|
||||||
|
|
||||||
|
@ -86,7 +86,9 @@ void main() {
|
|||||||
'OBJROOT=${fileSystem.path.join(flutterBuildDir.absolute.path, 'Build', 'Intermediates.noindex')}',
|
'OBJROOT=${fileSystem.path.join(flutterBuildDir.absolute.path, 'Build', 'Intermediates.noindex')}',
|
||||||
'SYMROOT=${fileSystem.path.join(flutterBuildDir.absolute.path, 'Build', 'Products')}',
|
'SYMROOT=${fileSystem.path.join(flutterBuildDir.absolute.path, 'Build', 'Products')}',
|
||||||
if (verbose)
|
if (verbose)
|
||||||
'VERBOSE_SCRIPT_LOGGING=YES',
|
'VERBOSE_SCRIPT_LOGGING=YES'
|
||||||
|
else
|
||||||
|
'-quiet',
|
||||||
'COMPILER_INDEX_STORE_ENABLE=NO',
|
'COMPILER_INDEX_STORE_ENABLE=NO',
|
||||||
],
|
],
|
||||||
stdout: 'STDOUT STUFF',
|
stdout: 'STDOUT STUFF',
|
||||||
@ -129,7 +131,7 @@ void main() {
|
|||||||
FeatureFlags: () => TestFeatureFlags(isMacOSEnabled: true),
|
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();
|
final BuildCommand command = BuildCommand();
|
||||||
createMinimalMockProjectFiles();
|
createMinimalMockProjectFiles();
|
||||||
|
|
||||||
@ -137,7 +139,8 @@ void main() {
|
|||||||
const <String>['build', 'macos', '--debug']
|
const <String>['build', 'macos', '--debug']
|
||||||
);
|
);
|
||||||
expect(testLogger.statusText, isNot(contains('STDOUT STUFF')));
|
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>{
|
}, overrides: <Type, Generator>{
|
||||||
FileSystem: () => fileSystem,
|
FileSystem: () => fileSystem,
|
||||||
ProcessManager: () => FakeProcessManager.list(<FakeCommand>[
|
ProcessManager: () => FakeProcessManager.list(<FakeCommand>[
|
||||||
|
Loading…
x
Reference in New Issue
Block a user