Files
sdk/tests/standalone_2/io/stdio_socket_finalizer_test.dart
T
Paul Berry 2df93059c7 Various strong mode fixes for standalone_2 tests.
Change-Id: Ieac31e7dfb5e03b86ad677fc28baa7064fcd7e94
Reviewed-on: https://dart-review.googlesource.com/21460
Reviewed-by: Siva Annamalai <asiva@google.com>
Commit-Queue: Paul Berry <paulberry@google.com>
2017-11-17 01:14:32 +00:00

36 lines
1008 B
Dart

// Copyright (c) 2017, 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.
//
// This test checks that stdin is *not* closed when an Isolate leaks it.
import 'dart:async';
import 'dart:io';
import 'dart:isolate';
import "package:async_helper/async_helper.dart";
import "package:expect/expect.dart";
void ConnectorIsolate(Object sendPortObj) {
SendPort sendPort = sendPortObj;
stdin;
sendPort.send(true);
}
main() async {
asyncStart();
ReceivePort receivePort = new ReceivePort();
Isolate isolate = await Isolate.spawn(ConnectorIsolate, receivePort.sendPort);
Completer<Null> completer = new Completer<Null>();
receivePort.listen((msg) {
Expect.isTrue(msg is bool);
Expect.isTrue(msg);
isolate.kill();
completer.complete(null);
});
await completer.future;
stdin.listen((_) {}).cancel();
receivePort.close();
asyncEnd();
}