use std::process::Command;
dev_logger::init!();
const MESSAGE: &str = "hello_log_message_to_test";
fn main() {
if std::env::args().any(|a| a == MESSAGE) {
tracing::info!(name = MESSAGE);
return;
}
assert!(run_child("info").contains(MESSAGE));
assert!(!run_child("warn").contains(MESSAGE));
}
fn run_child(rust_log: &str) -> String {
std::env::set_var("RUST_LOG", rust_log);
let exe = std::env::current_exe().unwrap();
let out = Command::new(exe)
.args([MESSAGE])
.output()
.expect("failed to execute process");
String::from_utf8_lossy(&out.stderr).to_string()
}