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