]> git.proxmox.com Git - rustc.git/blame - src/test/ui/issues/issue-13304.rs
New upstream version 1.50.0+dfsg1
[rustc.git] / src / test / ui / issues / issue-13304.rs
CommitLineData
b7449926 1// run-pass
0bf4aa26 2#![allow(unused_mut)]
abe05a73 3// ignore-emscripten no processes
48663c56 4// ignore-sgx no processes
abe05a73 5
85aaf69f 6use std::env;
c34b1796
AL
7use std::io::prelude::*;
8use std::io;
9use std::process::{Command, Stdio};
1a4d82fc
JJ
10use std::str;
11
12fn main() {
85aaf69f
SL
13 let args: Vec<String> = env::args().collect();
14 if args.len() > 1 && args[1] == "child" {
1a4d82fc
JJ
15 child();
16 } else {
17 parent();
18 }
19}
20
21fn parent() {
85aaf69f 22 let args: Vec<String> = env::args().collect();
c34b1796
AL
23 let mut p = Command::new(&args[0]).arg("child")
24 .stdout(Stdio::piped())
25 .stdin(Stdio::piped())
26 .spawn().unwrap();
27 p.stdin.as_mut().unwrap().write_all(b"test1\ntest2\ntest3").unwrap();
1a4d82fc
JJ
28 let out = p.wait_with_output().unwrap();
29 assert!(out.status.success());
c34b1796
AL
30 let s = str::from_utf8(&out.stdout).unwrap();
31 assert_eq!(s, "test1\ntest2\ntest3\n");
1a4d82fc
JJ
32}
33
34fn child() {
c34b1796 35 let mut stdin = io::stdin();
85aaf69f 36 for line in stdin.lock().lines() {
1a4d82fc
JJ
37 println!("{}", line.unwrap());
38 }
39}