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
extern crate env_logger; use std::sync::{Once, ONCE_INIT}; static LOGGER_INIT: Once = ONCE_INIT; #[macro_export] macro_rules! test { (should_panic, $name:ident, $test:block) => { test!(#[should_panic], $name, $test); }; ($(#[$attr:meta])*, $name:ident, $test:block) => { #[test] $( #[$attr] )* fn $name() { test_logger::ensure_env_logger_initialized(); $test } }; ($name:ident, $test:block) => { test!(, $name, $test); }; } pub fn ensure_env_logger_initialized() { LOGGER_INIT.call_once(|| env_logger::init().unwrap()); }