Skip to content

Commit a7a54af

Browse files
johnniwinthercommit-bot@chromium.org
authored andcommitted
[cfe] Support failure log printing in unit_test_suites
Change-Id: Ibc0d81aaabcf2913ba97f242bbdc2d7968b1a5ff Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/124682 Reviewed-by: Karl Klose <karlklose@google.com> Commit-Queue: Johnni Winther <johnniwinther@google.com>
1 parent bbdb786 commit a7a54af

File tree

1 file changed

+17
-5
lines changed

1 file changed

+17
-5
lines changed

pkg/front_end/test/unit_test_suites.dart

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -40,9 +40,11 @@ import 'spelling_test_src_suite.dart' as spelling_src show createContext;
4040
class Options {
4141
final String configurationName;
4242
final bool verbose;
43+
final bool printFailureLog;
4344
final Uri outputDirectory;
4445

45-
Options(this.configurationName, this.verbose, this.outputDirectory);
46+
Options(this.configurationName, this.verbose, this.printFailureLog,
47+
this.outputDirectory);
4648

4749
static Options parse(List<String> args) {
4850
var parser = new ArgParser()
@@ -52,27 +54,30 @@ class Options {
5254
..addOption("output-directory",
5355
help: "directory to which results.json and logs.json are written")
5456
..addFlag("verbose",
55-
abbr: "v", help: "print additional information", defaultsTo: false);
57+
abbr: "v", help: "print additional information", defaultsTo: false)
58+
..addFlag("print",
59+
abbr: "p", help: "print failure logs", defaultsTo: false);
5660
var parsedArguments = parser.parse(args);
5761
String outputPath = parsedArguments["output-directory"] ?? ".";
5862
Uri outputDirectory = Uri.base.resolveUri(Uri.directory(outputPath));
5963
return Options(parsedArguments["named-configuration"],
60-
parsedArguments["verbose"], outputDirectory);
64+
parsedArguments["verbose"], parsedArguments["print"], outputDirectory);
6165
}
6266
}
6367

6468
class ResultLogger implements Logger {
6569
final String suiteName;
6670
final String prefix;
6771
final bool verbose;
72+
final bool printFailureLog;
6873
final SendPort resultsPort;
6974
final SendPort logsPort;
7075
final Map<String, Stopwatch> stopwatches = {};
7176
final String configurationName;
7277
final Set<String> seenTests = {};
7378

7479
ResultLogger(this.suiteName, this.prefix, this.resultsPort, this.logsPort,
75-
this.verbose, this.configurationName);
80+
this.verbose, this.printFailureLog, this.configurationName);
7681

7782
String getTestName(TestDescription description) {
7883
return "$prefix/${description.shortName}";
@@ -131,6 +136,10 @@ class ResultLogger implements Logger {
131136
"result": outcome,
132137
"log": failureLog,
133138
}));
139+
if (printFailureLog) {
140+
print('FAILED: $testName: $outcome');
141+
print(failureLog);
142+
}
134143
}
135144
if (verbose) {
136145
String result = matchedExpectations ? "PASS" : "FAIL";
@@ -222,9 +231,10 @@ class SuiteConfiguration {
222231
final SendPort resultsPort;
223232
final SendPort logsPort;
224233
final bool verbose;
234+
final bool printFailureLog;
225235
final String configurationName;
226236
const SuiteConfiguration(this.name, this.resultsPort, this.logsPort,
227-
this.verbose, this.configurationName);
237+
this.verbose, this.printFailureLog, this.configurationName);
228238
}
229239

230240
void runSuite(SuiteConfiguration configuration) {
@@ -238,6 +248,7 @@ void runSuite(SuiteConfiguration configuration) {
238248
configuration.resultsPort,
239249
configuration.logsPort,
240250
configuration.verbose,
251+
configuration.printFailureLog,
241252
configuration.configurationName);
242253
runMe(<String>[], suite.createContext,
243254
me: suiteUri,
@@ -270,6 +281,7 @@ main([List<String> arguments = const <String>[]]) async {
270281
resultsPort.sendPort,
271282
logsPort.sendPort,
272283
options.verbose,
284+
options.printFailureLog,
273285
options.configurationName);
274286
Future future = Future<bool>(() async {
275287
Stopwatch stopwatch = Stopwatch()..start();

0 commit comments

Comments
 (0)