| OLD | NEW |
| 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 /// A test configuration that generates a compact 1-line progress bar. The bar | 5 /// A test configuration that generates a compact 1-line progress bar. The bar |
| 6 /// is updated in-place before and after each test is executed. If all tests | 6 /// is updated in-place before and after each test is executed. If all tests |
| 7 /// pass, only a couple of lines are printed in the terminal. If a test fails, | 7 /// pass, only a couple of lines are printed in the terminal. If a test fails, |
| 8 /// the failure is shown and the progress bar continues to be updated below it. | 8 /// the failure is shown and the progress bar continues to be updated below it. |
| 9 library unittest.compact_vm_config; | 9 library unittest.compact_vm_config; |
| 10 | 10 |
| (...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 85 // Override and don't call the superclass onDone() to avoid printing the | 85 // Override and don't call the superclass onDone() to avoid printing the |
| 86 // "unittest-suite-..." boilerplate. | 86 // "unittest-suite-..." boilerplate. |
| 87 Future.wait([stdout.close(), stderr.close()]).then((_) { | 87 Future.wait([stdout.close(), stderr.close()]).then((_) { |
| 88 _receivePort.close(); | 88 _receivePort.close(); |
| 89 exit(success ? 0 : 1); | 89 exit(success ? 0 : 1); |
| 90 }); | 90 }); |
| 91 } | 91 } |
| 92 | 92 |
| 93 void onSummary(int passed, int failed, int errors, List<TestCase> results, | 93 void onSummary(int passed, int failed, int errors, List<TestCase> results, |
| 94 String uncaughtError) { | 94 String uncaughtError) { |
| 95 var success = false; | |
| 96 if (passed == 0 && failed == 0 && errors == 0 && uncaughtError == null) { | 95 if (passed == 0 && failed == 0 && errors == 0 && uncaughtError == null) { |
| 97 _print('\nNo tests ran.'); | 96 _print('\nNo tests ran.'); |
| 98 } else if (failed == 0 && errors == 0 && uncaughtError == null) { | 97 } else if (failed == 0 && errors == 0 && uncaughtError == null) { |
| 99 _progressLine('All tests passed!', _NONE); | 98 _progressLine('All tests passed!', _NONE); |
| 100 _print(); | 99 _print(); |
| 101 success = true; | |
| 102 } else { | 100 } else { |
| 103 _progressLine('Some tests failed.', _RED); | 101 _progressLine('Some tests failed.', _RED); |
| 104 _print(); | 102 _print(); |
| 105 if (uncaughtError != null) { | 103 if (uncaughtError != null) { |
| 106 _print('Top-level uncaught error: $uncaughtError'); | 104 _print('Top-level uncaught error: $uncaughtError'); |
| 107 } | 105 } |
| 108 _print('$passed PASSED, $failed FAILED, $errors ERRORS'); | 106 _print('$passed PASSED, $failed FAILED, $errors ERRORS'); |
| 109 } | 107 } |
| 110 } | 108 } |
| 111 | 109 |
| (...skipping 19 matching lines...) Expand all Loading... |
| 131 buffer.write(': '); | 129 buffer.write(': '); |
| 132 buffer.write(color); | 130 buffer.write(color); |
| 133 | 131 |
| 134 // Ensure the line fits under MAX_LINE. [buffer] includes the color escape | 132 // Ensure the line fits under MAX_LINE. [buffer] includes the color escape |
| 135 // sequences too. Because these sequences are not visible characters, we | 133 // sequences too. Because these sequences are not visible characters, we |
| 136 // make sure they are not counted towards the limit. | 134 // make sure they are not counted towards the limit. |
| 137 int nonVisible = _nonVisiblePrefix + | 135 int nonVisible = _nonVisiblePrefix + |
| 138 color.length + | 136 color.length + |
| 139 (_fail != 0 ? (_RED.length + _NONE.length) : 0); | 137 (_fail != 0 ? (_RED.length + _NONE.length) : 0); |
| 140 int len = buffer.length - nonVisible; | 138 int len = buffer.length - nonVisible; |
| 141 var mx = MAX_LINE - len; | |
| 142 buffer.write(_snippet(message, MAX_LINE - len)); | 139 buffer.write(_snippet(message, MAX_LINE - len)); |
| 143 buffer.write(_NONE); | 140 buffer.write(_NONE); |
| 144 | 141 |
| 145 // Pad the rest of the line so that it looks erased. | 142 // Pad the rest of the line so that it looks erased. |
| 146 len = buffer.length - nonVisible - _NONE.length; | 143 len = buffer.length - nonVisible - _NONE.length; |
| 147 if (len > _lastLength) { | 144 if (len > _lastLength) { |
| 148 _lastLength = len; | 145 _lastLength = len; |
| 149 } else { | 146 } else { |
| 150 while (len < _lastLength) { | 147 while (len < _lastLength) { |
| 151 buffer.write(' '); | 148 buffer.write(' '); |
| (...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 208 // If the test is running on the Dart buildbots, we don't want to use this | 205 // If the test is running on the Dart buildbots, we don't want to use this |
| 209 // config since it's output may not be what the bots expect. | 206 // config since it's output may not be what the bots expect. |
| 210 if (Platform.environment['LOGNAME'] == 'chrome-bot') { | 207 if (Platform.environment['LOGNAME'] == 'chrome-bot') { |
| 211 return; | 208 return; |
| 212 } | 209 } |
| 213 | 210 |
| 214 unittestConfiguration = _singleton; | 211 unittestConfiguration = _singleton; |
| 215 } | 212 } |
| 216 | 213 |
| 217 final _singleton = new CompactVMConfiguration(); | 214 final _singleton = new CompactVMConfiguration(); |
| OLD | NEW |