//@ run-pass
//@ needs-threads
//@ ignore-sgx no processes

use std::cell::RefCell;
use std::env;
use std::process::Command;

fn main() {
    let name = "YOU_ARE_THE_TEST";
    if env::var(name).is_ok() {
        std::thread::spawn(|| {
            TLS.with(|f| f.borrow().ensure());
        })
        .join()
        .unwrap();
    } else {
        let me = env::current_exe().unwrap();
        let output = Command::new(&me).env(name, "1").output().unwrap();
        println!("{:?}", output);
        assert!(output.status.success());
        let stderr = String::from_utf8(output.stderr).unwrap();
        assert!(stderr.contains("hello new\n"));
        assert!(stderr.contains("hello drop\n"));
    }
}

struct Stuff {
    _x: usize,
}

impl Stuff {
    fn new() -> Self {
        eprintln!("hello new");
        Self { _x: 0 }
    }

    fn ensure(&self) {}
}

impl Drop for Stuff {
    fn drop(&mut self) {
        eprintln!("hello drop");
    }
}

thread_local! {
    static TLS: RefCell<Stuff> = RefCell::new(Stuff::new());
}
