OLD | NEW |
| (Empty) |
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 | |
3 // BSD-style license that can be found in the LICENSE file. | |
4 // Dart test program for testing isolate communication with | |
5 // typed objects. | |
6 // VMOptions=--enable_type_checks --enable_asserts | |
7 | |
8 #library("TypedMessageTest"); | |
9 #import("dart:isolate"); | |
10 | |
11 class TypedMessageTest { | |
12 static void testMain() { | |
13 LogClient.test(); | |
14 } | |
15 } | |
16 | |
17 | |
18 class LogClient { | |
19 static void test() { | |
20 new LogIsolate().spawn().then((SendPort remote) { | |
21 | |
22 List<int> msg = new List<int>(5); | |
23 for (int i = 0; i < 5; i++) { | |
24 msg[i] = i; | |
25 } | |
26 remote.call(msg).then((int message) { | |
27 Expect.equals(1, message); | |
28 }); | |
29 }); | |
30 } | |
31 } | |
32 | |
33 | |
34 class LogIsolate extends Isolate { | |
35 LogIsolate() : super() {} | |
36 | |
37 void main() { | |
38 print("Starting log server."); | |
39 | |
40 this.port.receive((List<int> message, SendPort replyTo) { | |
41 print("Log $message"); | |
42 Expect.equals(5, message.length); | |
43 Expect.equals(0, message[0]); | |
44 Expect.equals(1, message[1]); | |
45 Expect.equals(2, message[2]); | |
46 Expect.equals(3, message[3]); | |
47 Expect.equals(4, message[4]); | |
48 this.port.close(); | |
49 replyTo.send(1, null); | |
50 print("Stopping log server."); | |
51 }); | |
52 } | |
53 } | |
54 | |
55 main() { | |
56 TypedMessageTest.testMain(); | |
57 } | |
OLD | NEW |