| Index: tests/isolate/mixed2_test.dart
|
| diff --git a/tests/isolate/mixed2_test.dart b/tests/isolate/mixed2_test.dart
|
| deleted file mode 100644
|
| index 314699a6ecc780454d93bd7c6805a7e8f60d6348..0000000000000000000000000000000000000000
|
| --- a/tests/isolate/mixed2_test.dart
|
| +++ /dev/null
|
| @@ -1,133 +0,0 @@
|
| -// Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file
|
| -// for details. All rights reserved. Use of this source code is governed by a
|
| -// BSD-style license that can be found in the LICENSE file.
|
| -
|
| -// Dart test program for testing that heavy and light isolates can be mixed.
|
| -
|
| -#library('Mixed2Test');
|
| -#import("dart:isolate");
|
| -#import('../../lib/unittest/unittest.dart');
|
| -
|
| -// We want to send a message from the main-isolate to a chain of different
|
| -// isolates and then get a reply back.
|
| -// In the following description heavy2 is not used, because it is shut down
|
| -// just after heaving created heavy2.light1,2 and light3.
|
| -// main->
|
| -// heavy1->heavy1.light1->heavy1.light2->heavy1.light3->
|
| -// heavy2.light1->heavy2.light2->heavy2.light3->
|
| -// heavy3->heavy3.pong
|
| -
|
| -class LightRedirect extends Isolate {
|
| - LightRedirect() : super.light();
|
| -
|
| - void main() {
|
| - this.port.receive((targetPort, ignored) {
|
| - this.port.receive((msg, replyTo) {
|
| - targetPort.send(msg + 1000, replyTo);
|
| - this.port.close();
|
| - });
|
| - });
|
| - }
|
| -}
|
| -
|
| -class HeavyIsolate1 extends Isolate {
|
| - HeavyIsolate1() : super.heavy();
|
| -
|
| - void main() {
|
| - Future<SendPort> light1 = new LightRedirect().spawn();
|
| - Future<SendPort> light2 = new LightRedirect().spawn();
|
| - Future<SendPort> light3 = new LightRedirect().spawn();
|
| -
|
| - this.port.receive((SendPort heavy2Light1Port, ignored) {
|
| - light3.then((SendPort light3Port) {
|
| - light3Port.send(heavy2Light1Port, null);
|
| - light2.then((SendPort light2Port) {
|
| - light2Port.send(light3Port, null);
|
| - light1.then((SendPort light1Port) {
|
| - light1Port.send(light2Port, null);
|
| - // Next message we receive is the one that must go through the
|
| - // chain.
|
| - this.port.receive((msg, SendPort replyTo) {
|
| - light1Port.send(msg + 1, replyTo);
|
| - this.port.close();
|
| - });
|
| - });
|
| - });
|
| - });
|
| - });
|
| - }
|
| -}
|
| -
|
| -class HeavyIsolate2 extends Isolate {
|
| - HeavyIsolate2() : super.heavy();
|
| -
|
| - void main() {
|
| - Future<SendPort> light1 = new LightRedirect().spawn();
|
| - Future<SendPort> light2 = new LightRedirect().spawn();
|
| - Future<SendPort> light3 = new LightRedirect().spawn();
|
| -
|
| - this.port.receive((heavy3Port, replyWithLight1Port) {
|
| - light3.then((SendPort light3Port) {
|
| - light3Port.send(heavy3Port, null);
|
| - light2.then((SendPort light2Port) {
|
| - light2Port.send(light3Port, null);
|
| - light1.then((SendPort light1Port) {
|
| - light1Port.send(light2Port, null);
|
| - replyWithLight1Port.send(light1Port, null);
|
| - this.port.close();
|
| - });
|
| - });
|
| - });
|
| - });
|
| - }
|
| -}
|
| -
|
| -class LightPong extends Isolate {
|
| - LightPong() : super.light();
|
| -
|
| - void main() {
|
| - this.port.receive((msg, replyTo) {
|
| - replyTo.send(msg + 499, null);
|
| - this.port.close();
|
| - });
|
| - }
|
| -}
|
| -
|
| -class HeavyIsolate3 extends Isolate {
|
| - HeavyIsolate3() : super.heavy();
|
| -
|
| - void main() {
|
| - Future<SendPort> pong = new LightPong().spawn();
|
| - this.port.receive((msg, replyTo) {
|
| - pong.then((SendPort pongPort) {
|
| - pongPort.send(msg + 30, replyTo);
|
| - this.port.close();
|
| - });
|
| - });
|
| - }
|
| -}
|
| -
|
| -
|
| -main() {
|
| - test("heavy and light isolates can be mixed", () {
|
| - Future<SendPort> heavy1 = new HeavyIsolate1().spawn();
|
| - Future<SendPort> heavy2 = new HeavyIsolate2().spawn();
|
| - Future<SendPort> heavy3 = new HeavyIsolate3().spawn();
|
| -
|
| - heavy2.then(expectAsync1((SendPort heavy2Port) {
|
| - heavy3.then(expectAsync1((SendPort heavy3Port) {
|
| - heavy2Port.call(heavy3Port).then(expectAsync1((h2l1Port) {
|
| - heavy1.then(expectAsync1((SendPort heavy1Port) {
|
| - heavy1Port.send(h2l1Port, null);
|
| - // ---------------
|
| - // Setup complete.
|
| - // Start the chain-message.
|
| - heavy1Port.call(1).then(expectAsync1((result) {
|
| - Expect.equals(6531, result);
|
| - }));
|
| - }));
|
| - }));
|
| - }));
|
| - }));
|
| - });
|
| -}
|
|
|