Chromium Code Reviews| Index: tests/language/deferred_in_isolate_test.dart |
| =================================================================== |
| --- tests/language/deferred_in_isolate_test.dart (revision 0) |
| +++ tests/language/deferred_in_isolate_test.dart (working copy) |
| @@ -0,0 +1,37 @@ |
| +// Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file |
| +// for details. All rights reserved. Use of this source code is governed by a |
| +// BSD-style license that can be found in the LICENSE file. |
| + |
| +// Test that deferred libraries are supported from isolates other than the root |
| +// isolate. |
| + |
| +import 'dart:isolate'; |
| + |
| +main() { |
| + try { |
| + var receivePort = new RawReceivePort(); |
| + var expectedMsg = "Deferred Loaded."; |
| + |
| + receivePort.handler = (msg) { |
| + if (msg != expectedMsg) { |
| + print("Test failed."); |
| + throw msg; // Fail the test if the message is not expected. |
| + } |
| + print('Test done.'); |
| + receivePort.close(); |
| + }; |
| + |
| + var stopwatch = new Stopwatch()..start(); |
| + Isolate.spawnUri(new Uri(path: 'deferred_in_isolate_app.dart'), |
| + [expectedMsg], |
| + [receivePort.sendPort]).then((isolate) { |
| + print('Isolate spawn: ${stopwatch.elapsedMilliseconds}ms'); |
| + }).catchError((error) { |
| + print(error); |
| + }); |
| + } catch (exception, stackTrace) { |
| + print('Test failed.'); |
|
Vyacheslav Egorov (Google)
2014/07/17 12:38:27
The test failed but we still exit with 0 error cod
Ivan Posva
2014/07/17 12:45:13
Oops. Added a rethrow.
|
| + print(exception); |
| + print(stackTrace); |
| + } |
| +} |