1 // run-pass 2 3 // ignore-windows - this is a unix-specific test 4 // ignore-emscripten no processes 5 // ignore-sgx no processes 6 use std::env; 7 use std::os::unix::process::CommandExt; 8 use std::process::Command; 9 main()10fn main() { 11 let args: Vec<_> = env::args().collect(); 12 13 if args.len() > 1 { 14 assert_eq!(args[1], "doing-test"); 15 assert_eq!(args[0], "i have a silly name"); 16 17 println!("passed"); 18 return; 19 } 20 21 let output = 22 Command::new(&args[0]).arg("doing-test").arg0("i have a silly name").output().unwrap(); 23 assert!( 24 output.stderr.is_empty(), 25 "Non-empty stderr: {}", 26 String::from_utf8_lossy(&output.stderr) 27 ); 28 assert!(output.status.success()); 29 assert_eq!(output.stdout, b"passed\n"); 30 } 31