]> git.proxmox.com Git - rustc.git/blob - vendor/env_logger/tests/init-twice-retains-filter.rs
New upstream version 1.66.0+dfsg1
[rustc.git] / vendor / env_logger / tests / init-twice-retains-filter.rs
1 extern crate env_logger;
2 extern crate log;
3
4 use std::env;
5 use std::process;
6 use std::str;
7
8 fn main() {
9 if env::var("YOU_ARE_TESTING_NOW").is_ok() {
10 // Init from the env (which should set the max level to `Debug`)
11 env_logger::init();
12
13 assert_eq!(log::LevelFilter::Debug, log::max_level());
14
15 // Init again using a different max level
16 // This shouldn't clobber the level that was previously set
17 env_logger::Builder::new()
18 .parse_filters("info")
19 .try_init()
20 .unwrap_err();
21
22 assert_eq!(log::LevelFilter::Debug, log::max_level());
23 return;
24 }
25
26 let exe = env::current_exe().unwrap();
27 let out = process::Command::new(exe)
28 .env("YOU_ARE_TESTING_NOW", "1")
29 .env("RUST_LOG", "debug")
30 .output()
31 .unwrap_or_else(|e| panic!("Unable to start child process: {}", e));
32 if out.status.success() {
33 return;
34 }
35
36 println!("test failed: {}", out.status);
37 println!("--- stdout\n{}", str::from_utf8(&out.stdout).unwrap());
38 println!("--- stderr\n{}", str::from_utf8(&out.stderr).unwrap());
39 process::exit(1);
40 }