]> git.proxmox.com Git - rustc.git/blob - src/test/ui/issues/issue-14456.rs
New upstream version 1.49.0+dfsg1
[rustc.git] / src / test / ui / issues / issue-14456.rs
1 // run-pass
2 #![allow(unused_mut)]
3 // ignore-cloudabi no processes
4 // ignore-emscripten no processes
5 // ignore-sgx no processes
6
7 use std::env;
8 use std::io::prelude::*;
9 use std::io;
10 use std::process::{Command, Stdio};
11
12 fn main() {
13 let args: Vec<String> = env::args().collect();
14 if args.len() > 1 && args[1] == "child" {
15 return child()
16 }
17
18 test();
19 }
20
21 fn child() {
22 writeln!(&mut io::stdout(), "foo").unwrap();
23 writeln!(&mut io::stderr(), "bar").unwrap();
24 let mut stdin = io::stdin();
25 let mut s = String::new();
26 stdin.lock().read_line(&mut s).unwrap();
27 assert_eq!(s.len(), 0);
28 }
29
30 fn test() {
31 let args: Vec<String> = env::args().collect();
32 let mut p = Command::new(&args[0]).arg("child")
33 .stdin(Stdio::piped())
34 .stdout(Stdio::piped())
35 .stderr(Stdio::piped())
36 .spawn().unwrap();
37 assert!(p.wait().unwrap().success());
38 }