Index: dart/tests/isolate/spawn_uri_missing_from_isolate_test.dart |
diff --git a/dart/tests/isolate/spawn_uri_missing_from_isolate_test.dart b/dart/tests/isolate/spawn_uri_missing_from_isolate_test.dart |
new file mode 100644 |
index 0000000000000000000000000000000000000000..5c1192a9bbf32442952b15f23e69e556050a2b67 |
--- /dev/null |
+++ b/dart/tests/isolate/spawn_uri_missing_from_isolate_test.dart |
@@ -0,0 +1,42 @@ |
+// 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. |
+ |
+/// Tests that Isolate.spawnUri completes with an error when the given URI |
+/// doesn't resolve to an existing resource. |
+/// |
+/// This test is similar to spawn_uri_missing_test.dart, but tests what happens |
+/// when Isolate.spawnUri is called from an a spawned isolate. In dart2js, |
+/// these two situations are different. |
+library test.isolate.spawn_uri_missing_from_isolate_test; |
+ |
+import 'dart:isolate'; |
+ |
+import 'dart:async'; |
+ |
+import 'package:async_helper/async_helper.dart'; |
+ |
+import 'spawn_uri_missing_test.dart'; |
+ |
+const String SUCCESS = 'Test worked.'; |
+ |
+void isolate(SendPort port) { |
+ doTest().then( |
+ (_) => port.send(SUCCESS), |
+ onError: (error, stack) => port.send('Test failed: $error\n$stack')); |
+} |
+ |
+main() { |
+ ReceivePort port = new ReceivePort(); |
+ Isolate.spawn(isolate, port.sendPort); |
+ Completer completer = new Completer(); |
+ port.listen((message) { |
+ if (message == SUCCESS) { |
+ completer.complete(null); |
+ } else { |
+ completer.completeError(message); |
+ } |
+ }); |
+ |
+ asyncTest(() => completer.future); |
+} |