| //@ run-pass | |
| //@ needs-subprocess | |
| use std::env; | |
| use std::process::Command; | |
| fn main() { | |
| if env::args().nth(1).map(|s| s == "print").unwrap_or(false) { | |
| for (k, v) in env::vars() { | |
| println!("{}={}", k, v); | |
| } | |
| return | |
| } | |
| let me = env::current_exe().unwrap(); | |
| let result = Command::new(me).arg("print").output().unwrap(); | |
| let output = String::from_utf8(result.stdout).unwrap(); | |
| for (k, v) in env::vars() { | |
| assert!(output.contains(&format!("{}={}", k, v)), | |
| "output doesn't contain `{}={}`\n{}", | |
| k, v, output); | |
| } | |
| } |