//@ 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);
    }
}
