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