1336d762aSopenharmony_ci/*!
2336d762aSopenharmony_ciUsing `env_logger` in tests.
3336d762aSopenharmony_ci
4336d762aSopenharmony_ciLog events will be captured by `cargo` and only printed if the test fails.
5336d762aSopenharmony_ciYou can run this example by calling:
6336d762aSopenharmony_ci
7336d762aSopenharmony_ci```text
8336d762aSopenharmony_cicargo test --example in_tests
9336d762aSopenharmony_ci```
10336d762aSopenharmony_ci
11336d762aSopenharmony_ciYou should see the `it_does_not_work` test fail and include its log output.
12336d762aSopenharmony_ci*/
13336d762aSopenharmony_ci
14336d762aSopenharmony_ci#[cfg_attr(test, macro_use)]
15336d762aSopenharmony_ciextern crate log;
16336d762aSopenharmony_ci
17336d762aSopenharmony_cifn main() {}
18336d762aSopenharmony_ci
19336d762aSopenharmony_ci#[cfg(test)]
20336d762aSopenharmony_cimod tests {
21336d762aSopenharmony_ci    fn init_logger() {
22336d762aSopenharmony_ci        let _ = env_logger::builder()
23336d762aSopenharmony_ci            // Include all events in tests
24336d762aSopenharmony_ci            .filter_level(log::LevelFilter::max())
25336d762aSopenharmony_ci            // Ensure events are captured by `cargo test`
26336d762aSopenharmony_ci            .is_test(true)
27336d762aSopenharmony_ci            // Ignore errors initializing the logger if tests race to configure it
28336d762aSopenharmony_ci            .try_init();
29336d762aSopenharmony_ci    }
30336d762aSopenharmony_ci
31336d762aSopenharmony_ci    #[test]
32336d762aSopenharmony_ci    fn it_works() {
33336d762aSopenharmony_ci        init_logger();
34336d762aSopenharmony_ci
35336d762aSopenharmony_ci        let a = 1;
36336d762aSopenharmony_ci        let b = 2;
37336d762aSopenharmony_ci
38336d762aSopenharmony_ci        debug!("checking whether {} + {} = 3", a, b);
39336d762aSopenharmony_ci
40336d762aSopenharmony_ci        assert_eq!(3, a + b);
41336d762aSopenharmony_ci    }
42336d762aSopenharmony_ci
43336d762aSopenharmony_ci    #[test]
44336d762aSopenharmony_ci    fn it_does_not_work() {
45336d762aSopenharmony_ci        init_logger();
46336d762aSopenharmony_ci
47336d762aSopenharmony_ci        let a = 1;
48336d762aSopenharmony_ci        let b = 2;
49336d762aSopenharmony_ci
50336d762aSopenharmony_ci        debug!("checking whether {} + {} = 6", a, b);
51336d762aSopenharmony_ci
52336d762aSopenharmony_ci        assert_eq!(6, a + b);
53336d762aSopenharmony_ci    }
54336d762aSopenharmony_ci}
55