| // Copyright (c) 2018, 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. |
| |
| // OtherResources=process_inherit_stdio_script.dart |
| |
| // Process test program to test 'inherit stdio' processes. |
| |
| import 'dart:async'; |
| import 'dart:convert'; |
| import 'dart:io'; |
| |
| import "package:async_helper/async_helper.dart"; |
| import "package:expect/expect.dart"; |
| |
| import "process_test_util.dart"; |
| |
| main() { |
| asyncStart(); |
| // process_inherit_stdio_script.dart spawns a process in inheritStdio mode |
| // that prints to its stdout. Since that child process inherits the stdout |
| // of the process spawned here, we should see it. |
| var script = |
| Platform.script.resolve('process_inherit_stdio_script.dart').toFilePath(); |
| var future = Process.start(Platform.executable, [script, "foo"]); |
| Completer<String> s = new Completer(); |
| future.then((process) { |
| StringBuffer buf = new StringBuffer(); |
| process.stdout.transform(utf8.decoder).listen((data) { |
| buf.write(data); |
| }, onDone: () { |
| s.complete(buf.toString()); |
| }); |
| }); |
| s.future.then((String result) { |
| Expect.isTrue(result.contains("foo")); |
| asyncEnd(); |
| }); |
| } |