// 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. // VMOptions=--enable-isolate-groups --experimental-enable-isolate-groups-jit // VMOptions=--no-enable-isolate-groups /// 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.first.then((message) { if (message == SUCCESS) { completer.complete(null); } else { completer.completeError(message); } }); asyncTest(() => completer.future); }