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