Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(358)

Side by Side Diff: tests/isolate/src/MixedTest.dart

Issue 9652001: SendPort + ReceivePort changes: (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 8 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « tests/isolate/src/Mixed2Test.dart ('k') | tests/isolate/src/NestedSpawn2Test.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 heavy and light isolates can be mixed. 5 // Dart test program for testing that heavy and light isolates can be mixed.
6 6
7 #library('MixedTest'); 7 #library('MixedTest');
8 #import("dart:isolate"); 8 #import("dart:isolate");
9 #import('TestFramework.dart'); 9 #import('TestFramework.dart');
10 10
11 class IsolateA extends Isolate { 11 class IsolateA extends Isolate {
12 IsolateA() : super.heavy(); 12 IsolateA() : super.heavy();
13 13
14 void main() { 14 void main() {
15 this.port.receive((msg, replyTo) { 15 this.port.receive((msg, replyTo) {
16 Expect.equals("launch nested!", msg); 16 Expect.equals("launch nested!", msg);
17 new IsolateB().spawn().then((SendPort p) { 17 new IsolateB().spawn().then((SendPort p) {
18 p.call("alive?").receive((msg, ignored) { 18 p.call("alive?").then((msg) {
19 Expect.equals("and kicking", msg); 19 Expect.equals("and kicking", msg);
20 replyTo.send(499, null); 20 replyTo.send(499, null);
21 this.port.close(); 21 this.port.close();
22 }); 22 });
23 }); 23 });
24 }); 24 });
25 } 25 }
26 } 26 }
27 27
28 class IsolateB extends Isolate { 28 class IsolateB extends Isolate {
29 IsolateB() : super.light(); 29 IsolateB() : super.light();
30 30
31 void main() { 31 void main() {
32 this.port.receive((msg, replyTo) { 32 this.port.receive((msg, replyTo) {
33 Expect.equals("alive?", msg); 33 Expect.equals("alive?", msg);
34 replyTo.send("and kicking", null); 34 replyTo.send("and kicking", null);
35 this.port.close(); 35 this.port.close();
36 }); 36 });
37 } 37 }
38 } 38 }
39 39
40 test(TestExpectation expect) { 40 test(TestExpectation expect) {
41 expect.completes(new IsolateA().spawn()).then((SendPort port) { 41 expect.completes(new IsolateA().spawn()).then((SendPort port) {
42 port.call("launch nested!").receive(expect.runs2((msg, ignored) { 42 port.call("launch nested!").then(expect.runs1((msg) {
43 Expect.equals(499, msg); 43 Expect.equals(499, msg);
44 expect.succeeded(); 44 expect.succeeded();
45 })); 45 }));
46 }); 46 });
47 } 47 }
48 48
49 main() { 49 main() {
50 runTests([test]); 50 runTests([test]);
51 } 51 }
OLDNEW
« no previous file with comments | « tests/isolate/src/Mixed2Test.dart ('k') | tests/isolate/src/NestedSpawn2Test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698