| Index: tests/language/issue23244_test.dart
|
| diff --git a/tests/language/issue23244_test.dart b/tests/language/issue23244_test.dart
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..da25452ac53070efa4f71473a2c3ae1650e23359
|
| --- /dev/null
|
| +++ b/tests/language/issue23244_test.dart
|
| @@ -0,0 +1,59 @@
|
| +import 'dart:async';
|
| +import 'dart:isolate';
|
| +
|
| +enum Fisk {
|
| + torsk,
|
| +}
|
| +
|
| +isolate1(SendPort port) {
|
| + port.send(Fisk.torsk);
|
| +}
|
| +
|
| +isolate2(SendPort port) {
|
| + port.send([Fisk.torsk]);
|
| +}
|
| +
|
| +isolate3(SendPort port) {
|
| + var x = new Map<int, Fisk>();
|
| + x[0] = Fisk.torsk;
|
| + x[1] = Fisk.torsk;
|
| + port.send(x);
|
| +}
|
| +
|
| +main() async {
|
| + var port = new ReceivePort();
|
| + await Isolate.spawn(isolate1, port.sendPort);
|
| + Completer completer1 = new Completer();
|
| + port.listen((message) {
|
| + print("Received $message");
|
| + port.close();
|
| + expectTorsk(message);
|
| + completer1.complete();
|
| + });
|
| + await completer1.future;
|
| + Completer completer2 = new Completer();
|
| + port = new ReceivePort();
|
| + await Isolate.spawn(isolate2, port.sendPort);
|
| + port.listen((message) {
|
| + print("Received $message");
|
| + port.close();
|
| + expectTorsk(message[0]);
|
| + completer2.complete();
|
| + });
|
| + await completer2.future;
|
| + port = new ReceivePort();
|
| + await Isolate.spawn(isolate3, port.sendPort);
|
| + port.listen((message) {
|
| + print("Received $message");
|
| + port.close();
|
| + expectTorsk(message[0]);
|
| + expectTorsk(message[1]);
|
| + });
|
| +}
|
| +
|
| +expectTorsk(Fisk fisk) {
|
| + if (fisk != Fisk.torsk) {
|
| + throw "$fisk isn't a ${Fisk.torsk}";
|
| + }
|
| +}
|
| +
|
|
|