diff options
Diffstat (limited to 'third_party/rust/env_logger/examples/in_tests.rs')
-rw-r--r-- | third_party/rust/env_logger/examples/in_tests.rs | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/third_party/rust/env_logger/examples/in_tests.rs b/third_party/rust/env_logger/examples/in_tests.rs new file mode 100644 index 0000000000..c4487cc9c1 --- /dev/null +++ b/third_party/rust/env_logger/examples/in_tests.rs @@ -0,0 +1,54 @@ +/*! +Using `env_logger` in tests. + +Log events will be captured by `cargo` and only printed if the test fails. +You can run this example by calling: + +```text +cargo test --example in_tests +``` + +You should see the `it_does_not_work` test fail and include its log output. +*/ + +#[cfg_attr(test, macro_use)] +extern crate log; + +fn main() {} + +#[cfg(test)] +mod tests { + fn init_logger() { + let _ = env_logger::builder() + // Include all events in tests + .filter_level(log::LevelFilter::max()) + // Ensure events are captured by `cargo test` + .is_test(true) + // Ignore errors initializing the logger if tests race to configure it + .try_init(); + } + + #[test] + fn it_works() { + init_logger(); + + let a = 1; + let b = 2; + + debug!("checking whether {} + {} = 3", a, b); + + assert_eq!(3, a + b); + } + + #[test] + fn it_does_not_work() { + init_logger(); + + let a = 1; + let b = 2; + + debug!("checking whether {} + {} = 6", a, b); + + assert_eq!(6, a + b); + } +} |