| Index: tests/isolate/isolate_complex_messages_test.dart
|
| diff --git a/tests/isolate/isolate_complex_messages_test.dart b/tests/isolate/isolate_complex_messages_test.dart
|
| index e4fae9964acc132b2fa87e41b5cd957e690db9e0..effeffe0d8e070abff35cd87ba121cd2f5a8a92b 100644
|
| --- a/tests/isolate/isolate_complex_messages_test.dart
|
| +++ b/tests/isolate/isolate_complex_messages_test.dart
|
| @@ -11,28 +11,40 @@ import '../../pkg/unittest/lib/unittest.dart';
|
|
|
| main() {
|
| test("complex messages are serialized correctly", () {
|
| - SendPort remote = spawnFunction(logMessages);
|
| - remote.send(1, null);
|
| - remote.send("Hello", null);
|
| - remote.send("World", null);
|
| - remote.send(const [null, 1, 2, 3, 4], null);
|
| - remote.send(const [1, 2.0, true, false, 0xffffffffff], null);
|
| - remote.send(const ["Hello", "World", 0xffffffffff], null);
|
| - // Shutdown the LogRunner.
|
| - remote.call(-1).then(expectAsync1((int message) {
|
| - expect(message, 6);
|
| - }));
|
| + ReceivePort local = new ReceivePort();
|
| + Isolate.spawn(logMessages, local.sendPort);
|
| + var done = expectAsync0((){});
|
| + local.listen(expectAsync1((msg) {
|
| + switch (msg[0]) {
|
| + case "init":
|
| + var remote = msg[1];
|
| + remote.send(1, null);
|
| + remote.send("Hello", null);
|
| + remote.send("World", null);
|
| + remote.send(const [null, 1, 2, 3, 4], null);
|
| + remote.send(const [1, 2.0, true, false, 0xffffffffff], null);
|
| + remote.send(const ["Hello", "World", 0xffffffffff], null);
|
| + // Shutdown the LogRunner.
|
| + remote.send(-1);
|
| + break;
|
| + case "done":
|
| + local.close();
|
| + expect(msg[1], 6);
|
| + done();
|
| + }
|
| + }, count: 2));
|
| });
|
| }
|
|
|
|
|
| -void logMessages() {
|
| +void logMessages(mainPort) {
|
| int count = 0;
|
| -
|
| - port.receive((var message, SendPort replyTo) {
|
| + ReceivePort port = new ReceivePort();
|
| + mainPort.send(["init", port.sendPort]);
|
| + port.listen((var message) {
|
| if (message == -1) {
|
| port.close();
|
| - replyTo.send(count, null);
|
| + mainPort.send(["done", count]);
|
| } else {
|
| switch (count) {
|
| case 0:
|
|
|