| 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 81bfab10d0e6309bb6564bfc1bc15580a9c00282..bac5a71017e2f431e87b8d37c327b6794773d076 100644
|
| --- a/dart/tools/testing/dart/test_progress.dart
|
| +++ b/dart/tools/testing/dart/test_progress.dart
|
| @@ -406,13 +406,32 @@ class DiffProgressIndicator extends ColorProgressIndicator {
|
| configs.add(test.configurationString);
|
| }
|
|
|
| + String _extractRuntime(String configuration) {
|
| + // Extract runtime from a configuration, for example,
|
| + // 'none-vm-checked release_ia32'.
|
| + List<String> runtime = config.split(' ')[0].split('-');
|
| + return '${runtime[0]}-${runtime[1]}';
|
| + }
|
| +
|
| void _printFailureSummary() {
|
| Map<String, List<String>> groupedStatuses = new Map<String, List<String>>();
|
| statusToConfigs.forEach((String status, List<String> configs) {
|
| - configs.sort((a, b) => a.compareTo(b));
|
| - List<String> statuses =
|
| - groupedStatuses.putIfAbsent('$configs', () => <String>[]);
|
| - statuses.add(status);
|
| + Map<String, List<String>> runtimeToConfiguration =
|
| + new Map<String, List<String>>();
|
| + for (String config in configs) {
|
| + String runtime = _extractRuntime(config);
|
| + List<String> runtimeConfigs =
|
| + runtimeToConfiguration.putIfAbsent(runtime, () => <String>[]);
|
| + runtimeConfigs.add(config);
|
| + }
|
| + runtimeToConfiguration.forEach((String runtime,
|
| + List<String> runtimeConfigs) {
|
| + runtimeConfigs.sort((a, b) => a.compareTo(b));
|
| + List<String> statuses =
|
| + groupedStatuses.putIfAbsent('$runtime: $runtimeConfigs',
|
| + () => <String>[]);
|
| + statuses.add(status);
|
| + });
|
| });
|
| groupedStatuses.forEach((String config, List<String> statuses) {
|
| print('');
|
|
|