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