mirror of
				https://github.com/rust-lang/rust.git
				synced 2025-10-31 21:16:44 +00:00 
			
		
		
		
	 c7c1e4d655
			
		
	
	
		c7c1e4d655
		
	
	
	
	
		
			
			- Remove unnecessary `mut` and remove `#![allow(unused_mut)]`. - Replace `ignore-*` with `needs-process`.
		
			
				
	
	
		
			36 lines
		
	
	
		
			922 B
		
	
	
	
		
			Rust
		
	
	
	
	
	
			
		
		
	
	
			36 lines
		
	
	
		
			922 B
		
	
	
	
		
			Rust
		
	
	
	
	
	
| //@ run-pass
 | |
| //@ needs-subprocess
 | |
| 
 | |
| use std::env;
 | |
| use std::io::prelude::*;
 | |
| use std::io;
 | |
| use std::process::{Command, Stdio};
 | |
| 
 | |
| fn main() {
 | |
|     let args: Vec<String> = env::args().collect();
 | |
|     if args.len() > 1 && args[1] == "child" {
 | |
|         return child()
 | |
|     }
 | |
| 
 | |
|     test();
 | |
| }
 | |
| 
 | |
| fn child() {
 | |
|     writeln!(&mut io::stdout(), "foo").unwrap();
 | |
|     writeln!(&mut io::stderr(), "bar").unwrap();
 | |
|     let stdin = io::stdin();
 | |
|     let mut s = String::new();
 | |
|     stdin.lock().read_line(&mut s).unwrap();
 | |
|     assert_eq!(s.len(), 0);
 | |
| }
 | |
| 
 | |
| fn test() {
 | |
|     let args: Vec<String> = env::args().collect();
 | |
|     let mut p = Command::new(&args[0]).arg("child")
 | |
|                                      .stdin(Stdio::piped())
 | |
|                                      .stdout(Stdio::piped())
 | |
|                                      .stderr(Stdio::piped())
 | |
|                                      .spawn().unwrap();
 | |
|     assert!(p.wait().unwrap().success());
 | |
| }
 |