// Copyright (c) 2012, 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. // Dart test program for testing that isolates can spawn other isolates. library NestedSpawnTest; import 'dart:isolate'; import '../../pkg/unittest/lib/unittest.dart'; void isolateA() { port.receive((msg, replyTo) { expect(msg, "launch nested!"); SendPort p = spawnFunction(isolateB); p.call("alive?").then((msg) { expect(msg, "and kicking"); replyTo.send(499, null); port.close(); }); }); } void isolateB() { port.receive((msg, replyTo) { expect(msg, "alive?"); replyTo.send("and kicking", null); port.close(); }); } main() { test("spawned isolates can spawn nested isolates", () { SendPort port = spawnFunction(isolateA); port.call("launch nested!").then(expectAsync1((msg) { expect(msg, 499); })); }); }