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()10 fn 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