1extern crate env_logger;
2
3use std::sync::{Once, ONCE_INIT};
4
5static LOGGER_INIT: Once = ONCE_INIT;
6
7#[macro_export]
8macro_rules! test {
9 (should_panic, $name:ident, $test:block) => {
10 test!(#[should_panic], $name, $test);
11 };
12 ($(#[$attr:meta])*, $name:ident, $test:block) => {
13 #[test]
14 $( #[$attr] )*
15 fn $name() {
16 test_logger::ensure_env_logger_initialized();
17 $test
18 }
19 };
20 ($name:ident, $test:block) => {
21 test!(, $name, $test);
22 };
23}
24
25pub fn ensure_env_logger_initialized() {
26 LOGGER_INIT.call_once(|| env_logger::init().unwrap());
27}
28
29
30