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

Side by Side Diff: tests/isolate/request_reply_test.dart

Issue 27215002: Very simple version of Isolates. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Address comments. Created 7 years, 1 month 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/port_test.dart ('k') | tests/isolate/spawn_function_custom_class_test.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) 2012, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2012, 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 library RequestReplyTest; 5 library RequestReplyTest;
6 6
7 import 'dart:isolate'; 7 import 'dart:isolate';
8 import '../../pkg/unittest/lib/unittest.dart'; 8 import '../../pkg/unittest/lib/unittest.dart';
9 9
10 void entry() { 10 void entry(initPort) {
11 port.receive((message, SendPort replyTo) { 11 ReceivePort port = new ReceivePort();
12 initPort.send(port.sendPort);
13 port.listen((pair) {
14 var message = pair[0];
15 SendPort replyTo = pair[1];
12 replyTo.send(message + 87); 16 replyTo.send(message + 87);
13 port.close(); 17 port.close();
14 }); 18 });
15 } 19 }
16 20
17 void main() { 21 void main() {
18 test("call", () {
19 SendPort port = spawnFunction(entry);
20 port.call(42).then(expectAsync1((message) {
21 expect(message, 42 + 87);
22 }));
23 });
24
25 test("send", () { 22 test("send", () {
26 SendPort port = spawnFunction(entry); 23 ReceivePort init = new ReceivePort();
27 ReceivePort reply = new ReceivePort(); 24 Isolate.spawn(entry, init.sendPort);
28 port.send(99, reply.toSendPort()); 25 init.first.then(expectAsync1((port) {
29 reply.receive(expectAsync2((message, replyTo) { 26 ReceivePort reply = new ReceivePort();
30 expect(message, 99 + 87); 27 port.send([99, reply.sendPort]);
31 reply.close(); 28 reply.listen(expectAsync1((message) {
29 expect(message, 99 + 87);
30 reply.close();
31 }));
32 })); 32 }));
33 }); 33 });
34 } 34 }
OLDNEW
« no previous file with comments | « tests/isolate/port_test.dart ('k') | tests/isolate/spawn_function_custom_class_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698