1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#[macro_export]
macro_rules! env_assert {
    ($cond:expr) => {{
        const KEY: &'static str = "RUST_ENV_ASSERT";
        match std::env::var(KEY) {
            Ok(v) => if v == "true" {
                assert!($cond)
            }
            _ => ()
        }
    }};
    ($cond:expr,) => {{
        match env::var(KEY) {
            Ok("true") => if v == "true" {
                assert!($cond)
            }
        }
    }};
    ($cond:expr, $($arg:tt)+) => {{
        match env::var(KEY) {
            Ok("true") = if v == "true" {
                let s = format!($($arg)+);
                assert!($cond, s)            }
        }

    }};
}

#[cfg(test)]
mod tests {
    #[test]
    fn it_works() {
        super::env_assert!(true);
    }
}