| //@ run-pass | |
| //@ only-unix (this is a unix-specific test) | |
| //@ needs-subprocess | |
| use std::env; | |
| use std::os::unix::process::CommandExt; | |
| use std::process::Command; | |
| fn main() { | |
| let args: Vec<_> = env::args().collect(); | |
| if args.len() > 1 { | |
| assert_eq!(args[1], "doing-test"); | |
| assert_eq!(args[0], "i have a silly name"); | |
| println!("passed"); | |
| return; | |
| } | |
| let output = | |
| Command::new(&args[0]).arg("doing-test").arg0("i have a silly name").output().unwrap(); | |
| assert!( | |
| output.stderr.is_empty(), | |
| "Non-empty stderr: {}", | |
| String::from_utf8_lossy(&output.stderr) | |
| ); | |
| assert!(output.status.success()); | |
| assert_eq!(output.stdout, b"passed\n"); | |
| } |