| Index: pkg/unittest/lib/src/config.dart
|
| diff --git a/pkg/unittest/lib/src/config.dart b/pkg/unittest/lib/src/config.dart
|
| index e01d9335a679b773aa6bb15841da916fef4dbf07..9d482aedb7b3f7f3a5fec317b04fe9e20028fb93 100644
|
| --- a/pkg/unittest/lib/src/config.dart
|
| +++ b/pkg/unittest/lib/src/config.dart
|
| @@ -38,7 +38,7 @@ class Configuration {
|
| */
|
| void onInit() {
|
| _receivePort = new ReceivePort();
|
| - _postMessage('unittest-suite-wait-for-done');
|
| + notifyController('unittest-suite-wait-for-done');
|
| }
|
|
|
| /** Called as soon as the unittest framework starts running. */
|
| @@ -94,7 +94,7 @@ class Configuration {
|
| * When [uncaughtError] is not null, it contains an error that occured outside
|
| * of tests (e.g. setting up the test).
|
| */
|
| - void onDone(int passed, int failed, int errors, List<TestCase> results,
|
| + void onSummary(int passed, int failed, int errors, List<TestCase> results,
|
| String uncaughtError) {
|
| // Print each test's result.
|
| for (final t in _tests) {
|
| @@ -126,12 +126,18 @@ class Configuration {
|
| }
|
| print('$passed PASSED, $failed FAILED, $errors ERRORS');
|
| }
|
| + }
|
|
|
| + /**
|
| + * Called when the unittest framework is done running. [success] indicates
|
| + * whether all tests passed successfully.
|
| + */
|
| + void onDone(bool success) {
|
| if (success) {
|
| - _postMessage('unittest-suite-success');
|
| - _receivePort.close();
|
| + notifyController('unittest-suite-success');
|
| + _receivePort.close();
|
| } else {
|
| - _receivePort.close();
|
| + _receivePort.close();
|
| throw new Exception('Some tests failed.');
|
| }
|
| }
|
| @@ -149,7 +155,18 @@ class Configuration {
|
| handleExternalError(e, String message) =>
|
| _reportTestError('$message\nCaught $e', '');
|
|
|
| - _postMessage(String message) {
|
| + /**
|
| + * Send messages to the test controller code (see 'test_controller.js'). This
|
| + * is only needed to support browser tests with dart2js. Note: we could wrap
|
| + * tests and send the appropriate messages to the controller through the
|
| + * wrapper, but using wrappers has a noticeable overhead in the testing bots,
|
| + * so we use this approach instead.
|
| + *
|
| + * Configurations that will not run in DRT (such as vm_config and
|
| + * compact_vm_config), can safely override this method to avoid printing extra
|
| + * mesages in the console.
|
| + */
|
| + void notifyController(String message) {
|
| // In dart2js browser tests, the JavaScript-based test controller
|
| // intercepts calls to print and listens for "secret" messages.
|
| print(message);
|
|
|