]> git.proxmox.com Git - rustc.git/blob - src/test/ui/env-args-reverse-iterator.rs
New upstream version 1.49.0+dfsg1
[rustc.git] / src / test / ui / env-args-reverse-iterator.rs
1 // run-pass
2 // ignore-cloudabi no processes
3 // ignore-emscripten no processes
4 // ignore-sgx no processes
5
6 use std::env::args;
7 use std::process::Command;
8
9 fn assert_reverse_iterator_for_program_arguments(program_name: &str) {
10 let args: Vec<_> = args().rev().collect();
11
12 assert!(args.len() == 4);
13 assert_eq!(args[0], "c");
14 assert_eq!(args[1], "b");
15 assert_eq!(args[2], "a");
16 assert_eq!(args[3], program_name);
17
18 println!("passed");
19 }
20
21 fn main() {
22 let mut args = args();
23 let me = args.next().unwrap();
24
25 if let Some(_) = args.next() {
26 assert_reverse_iterator_for_program_arguments(&me);
27 return
28 }
29
30 let output = Command::new(&me)
31 .arg("a")
32 .arg("b")
33 .arg("c")
34 .output()
35 .unwrap();
36 assert!(output.status.success());
37 assert!(output.stderr.is_empty());
38 assert_eq!(output.stdout, b"passed\n");
39 }