dart-sdk/tests/isolate/send_private_test.dart
Ryan Macnak 12de13d1ae An isolate created with spawn function doesn't necessarily agree with its parent on the library private keys.
(The long-standing issue that spawn function should use snapshots would also fix this.)

Encountered by the analyzer in https://codereview.chromium.org/2492933002/

BUG=
R=asiva@google.com

Review URL: https://codereview.chromium.org/2509413002 .
2016-11-23 15:36:01 -08:00

33 lines
831 B
Dart

// Copyright (c) 2016, 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.
import "dart:isolate";
import "package:expect/expect.dart";
class _Private {
String data;
_Private(this.data);
}
void child(message) {
print("Got message: $message");
SendPort replyPort = message[0];
_Private object = message[1];
Expect.isTrue(object is _Private);
Expect.equals("XYZ", object.data);
replyPort.send(object);
}
void main() {
var port;
port = new RawReceivePort((message) {
print("Got reply: $message");
Expect.isTrue(message is _Private);
Expect.equals("XYZ", message.data);
port.close();
});
Isolate.spawn(child, [port.sendPort, new _Private("XYZ")]);
}