| OLD | NEW |
| 1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2011, 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 part of unittest; | 5 part of unittest; |
| 6 | 6 |
| 7 /** | 7 /** |
| 8 * Hooks to configure the unittest library for different platforms. This class | 8 * Hooks to configure the unittest library for different platforms. This class |
| 9 * implements the API in a platform-independent way. Tests that want to take | 9 * implements the API in a platform-independent way. Tests that want to take |
| 10 * advantage of the platform can create a subclass and override methods from | 10 * advantage of the platform can create a subclass and override methods from |
| (...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 125 } else { | 125 } else { |
| 126 if (uncaughtError != null) { | 126 if (uncaughtError != null) { |
| 127 print('Top-level uncaught error: $uncaughtError'); | 127 print('Top-level uncaught error: $uncaughtError'); |
| 128 } | 128 } |
| 129 print('$passed PASSED, $failed FAILED, $errors ERRORS'); | 129 print('$passed PASSED, $failed FAILED, $errors ERRORS'); |
| 130 } | 130 } |
| 131 | 131 |
| 132 _receivePort.close(); | 132 _receivePort.close(); |
| 133 if (success) { | 133 if (success) { |
| 134 _postMessage('unittest-suite-success'); | 134 _postMessage('unittest-suite-success'); |
| 135 _receivePort.close(); |
| 135 } else { | 136 } else { |
| 136 throw new Exception('Some tests failed.'); | 137 throw new Exception('Some tests failed.'); |
| 137 } | 138 } |
| 138 } | 139 } |
| 139 | 140 |
| 140 String _indent(String str) { | 141 String _indent(String str) { |
| 141 // TODO(nweiz): Use this simpler code once issue 2980 is fixed. | 142 // TODO(nweiz): Use this simpler code once issue 2980 is fixed. |
| 142 // return str.replaceAll(new RegExp("^", multiLine: true), " "); | 143 // return str.replaceAll(new RegExp("^", multiLine: true), " "); |
| 143 | 144 |
| 144 return Strings.join(str.split("\n").map((line) => " $line"), "\n"); | 145 return Strings.join(str.split("\n").mappedBy((line) => " $line"), "\n"); |
| 145 } | 146 } |
| 146 | 147 |
| 147 /** Handle errors that happen outside the tests. */ | 148 /** Handle errors that happen outside the tests. */ |
| 148 // TODO(vsm): figure out how to expose the stack trace here | 149 // TODO(vsm): figure out how to expose the stack trace here |
| 149 // Currently e.message works in dartium, but not in dartc. | 150 // Currently e.message works in dartium, but not in dartc. |
| 150 handleExternalError(e, String message) => | 151 handleExternalError(e, String message) => |
| 151 _reportTestError('$message\nCaught $e', ''); | 152 _reportTestError('$message\nCaught $e', ''); |
| 152 | 153 |
| 153 _postMessage(String message) { | 154 _postMessage(String message) { |
| 154 // In dart2js browser tests, the JavaScript-based test controller | 155 // In dart2js browser tests, the JavaScript-based test controller |
| 155 // intercepts calls to print and listens for "secret" messages. | 156 // intercepts calls to print and listens for "secret" messages. |
| 156 print(message); | 157 print(message); |
| 157 } | 158 } |
| 158 } | 159 } |
| OLD | NEW |