]>
Commit | Line | Data |
---|---|---|
dc9dc135 | 1 | extern crate env_logger; |
e74abb32 | 2 | extern crate log; |
dc9dc135 | 3 | |
dc9dc135 | 4 | use std::env; |
e74abb32 | 5 | use std::process; |
dc9dc135 XL |
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() | |
e1599b0c | 18 | .parse_filters("info") |
dc9dc135 XL |
19 | .try_init() |
20 | .unwrap_err(); | |
21 | ||
22 | assert_eq!(log::LevelFilter::Debug, log::max_level()); | |
e74abb32 | 23 | return; |
dc9dc135 XL |
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() { | |
e74abb32 | 33 | return; |
dc9dc135 XL |
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 | } |