| OLD | NEW |
| 1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 // Dart test program for testing that isolates can spawn other isolates and | 5 // Dart test program for testing that isolates can spawn other isolates and |
| 6 // that the nested isolates can communicate with the main once the spawner has | 6 // that the nested isolates can communicate with the main once the spawner has |
| 7 // disappeared. | 7 // disappeared. |
| 8 | 8 |
| 9 #library('NestedSpawn2Test'); | 9 #library('NestedSpawn2Test'); |
| 10 #import("dart:isolate"); | 10 #import("dart:isolate"); |
| 11 #import('TestFramework.dart'); | 11 #import('../../../lib/unittest/unittest.dart'); |
| 12 | 12 |
| 13 class IsolateA extends Isolate { | 13 class IsolateA extends Isolate { |
| 14 IsolateA() : super.heavy(); | 14 IsolateA() : super.heavy(); |
| 15 | 15 |
| 16 void main() { | 16 void main() { |
| 17 this.port.receive((msg, replyTo) { | 17 this.port.receive((msg, replyTo) { |
| 18 Expect.equals("launch nested!", msg); | 18 Expect.equals("launch nested!", msg); |
| 19 new IsolateB().spawn().then((SendPort p) { | 19 new IsolateB().spawn().then((SendPort p) { |
| 20 p.send(replyTo, null); | 20 p.send(replyTo, null); |
| 21 this.port.close(); | 21 this.port.close(); |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 56 _call(replyTo, msg4, ((msg, replyTo) { | 56 _call(replyTo, msg4, ((msg, replyTo) { |
| 57 Expect.equals("5", msg[0]); | 57 Expect.equals("5", msg[0]); |
| 58 replyTo.send(msg6, null); | 58 replyTo.send(msg6, null); |
| 59 })); | 59 })); |
| 60 })); | 60 })); |
| 61 })); | 61 })); |
| 62 }); | 62 }); |
| 63 } | 63 } |
| 64 } | 64 } |
| 65 | 65 |
| 66 test(TestExpectation expect) { | 66 main() { |
| 67 expect.completes(new IsolateA().spawn()).then((SendPort port) { | 67 test("spawned isolate can spawn other isolates", () { |
| 68 _call(port, "launch nested!", expect.runs2((msg, replyTo) { | 68 new IsolateA().spawn().then(expectAsync1((SendPort port) { |
| 69 Expect.equals("0", msg[0]); | 69 _call(port, "launch nested!", expectAsync2((msg, replyTo) { |
| 70 _call(replyTo, msg1, expect.runs2((msg, replyTo) { | 70 Expect.equals("0", msg[0]); |
| 71 Expect.equals("2", msg[0]); | 71 _call(replyTo, msg1, expectAsync2((msg, replyTo) { |
| 72 _call(replyTo, msg3, expect.runs2((msg, replyTo) { | 72 Expect.equals("2", msg[0]); |
| 73 Expect.equals("4", msg[0]); | 73 _call(replyTo, msg3, expectAsync2((msg, replyTo) { |
| 74 _call(replyTo, msg5, expect.runs2((msg, replyTo) { | 74 Expect.equals("4", msg[0]); |
| 75 Expect.equals("6", msg[0]); | 75 _call(replyTo, msg5, expectAsync2((msg, replyTo) { |
| 76 expect.succeeded(); | 76 Expect.equals("6", msg[0]); |
| 77 })); |
| 77 })); | 78 })); |
| 78 })); | 79 })); |
| 79 })); | 80 })); |
| 80 })); | 81 })); |
| 81 }); | 82 }); |
| 82 } | 83 } |
| 83 | |
| 84 main() { | |
| 85 runTests([test]); | |
| 86 } | |
| OLD | NEW |