| Index: dart/tools/testing/dart/test_progress.dart
|
| diff --git a/dart/tools/testing/dart/test_progress.dart b/dart/tools/testing/dart/test_progress.dart
|
| index d157f23935a521a94f0a1c5aeaeb885f2e513736..5343ac0d363e02e6e8664057cf2676980aa1d4bd 100644
|
| --- a/dart/tools/testing/dart/test_progress.dart
|
| +++ b/dart/tools/testing/dart/test_progress.dart
|
| @@ -30,6 +30,8 @@ class ProgressIndicator {
|
| return new StatusProgressIndicator(startTime, printTiming);
|
| case 'buildbot':
|
| return new BuildbotProgressIndicator(startTime, printTiming);
|
| + case 'diff':
|
| + return new DiffProgressIndicator(startTime, printTiming);
|
| default:
|
| assert(false);
|
| break;
|
| @@ -379,3 +381,29 @@ class BuildbotProgressIndicator extends ProgressIndicator {
|
| super._printFailureSummary();
|
| }
|
| }
|
| +
|
| +class DiffProgressIndicator extends ColorProgressIndicator {
|
| + Map<String, List<String>> failures = new Map<String, List<String>>();
|
| +
|
| + DiffProgressIndicator(Date startTime, bool printTiming)
|
| + : super(startTime, printTiming);
|
| +
|
| + void _printFailureOutput(TestCase test) {
|
| + List<String> configurationFailures =
|
| + failures.putIfAbsent(test.configurationString, () => <String>[]);
|
| + configurationFailures.add('${test.displayName}: ${test.output.result}');
|
| + }
|
| +
|
| + void _printFailureSummary() {
|
| + failures.forEach((key, lines) {
|
| + print('');
|
| + print('');
|
| + print('$key:');
|
| + lines.sort((a, b) => a.compareTo(b));
|
| + for (String line in lines) {
|
| + print(' $line');
|
| + }
|
| + });
|
| + _printStatus();
|
| + }
|
| +}
|
|
|