1 // run-pass
2 // ignore-emscripten
3 // ignore-wasm32
4 // ignore-sgx no processes
5 
6 use std::env;
7 use std::process::Command;
8 
main()9 fn main() {
10     if env::args().nth(1).map(|s| s == "print").unwrap_or(false) {
11         for (k, v) in env::vars() {
12             println!("{}={}", k, v);
13         }
14         return
15     }
16 
17     let me = env::current_exe().unwrap();
18     let result = Command::new(me).arg("print").output().unwrap();
19     let output = String::from_utf8(result.stdout).unwrap();
20 
21     for (k, v) in env::vars() {
22         assert!(output.contains(&format!("{}={}", k, v)),
23                 "output doesn't contain `{}={}`\n{}",
24                 k, v, output);
25     }
26 }
27