blob: 99e66256b36160d660e5fc6e6f595c87a96f3c84 [file] [log] [blame]
//! Test the functionality of panicking on error+ log messages.
use log::Level::*;
mod support;
use support::manual_log;
#[test]
#[should_panic(expected = "special panic message here")]
fn test_panic_panics() {
let (_max_level, logger) = fern::Dispatch::new().chain(fern::Panic).into_log();
let l = &*logger;
manual_log(l, Info, "special panic message here");
}
fn warn_and_higher_panics_config() -> Box<dyn log::Log> {
let (_max_level, logger) = fern::Dispatch::new()
.chain(
fern::Dispatch::new()
.level(log::LevelFilter::Warn)
.chain(fern::Panic),
)
.chain(std::io::stdout())
.into_log();
logger
}
#[test]
fn double_chained_with_panics_no_info_panic() {
let l = &*warn_and_higher_panics_config();
manual_log(l, Info, "this should not panic");
}
#[test]
#[should_panic(expected = "this should panic")]
fn double_chained_with_panics_yes_error_panic() {
let l = &*warn_and_higher_panics_config();
manual_log(l, Error, "this should panic");
}