]> git.proxmox.com Git - rustc.git/blame - vendor/tracing-subscriber/tests/filter_log.rs
New upstream version 1.52.0~beta.3+dfsg1
[rustc.git] / vendor / tracing-subscriber / tests / filter_log.rs
CommitLineData
f035d41b
XL
1mod support;
2use self::support::*;
6a06907d 3use tracing::{self, Level};
f035d41b
XL
4use tracing_subscriber::{filter::EnvFilter, prelude::*};
5
6a06907d
XL
6mod my_module {
7 pub(crate) fn test_records() {
8 log::trace!("this should be disabled");
9 log::info!("this shouldn't be");
10 log::debug!("this should be disabled");
11 log::warn!("this should be enabled");
12 log::warn!(target: "something else", "this shouldn't be enabled");
13 log::error!("this should be enabled too");
14 }
15
16 pub(crate) fn test_log_enabled() {
17 assert!(
18 log::log_enabled!(log::Level::Info),
19 "info should be enabled inside `my_module`"
20 );
21 assert!(
22 !log::log_enabled!(log::Level::Debug),
23 "debug should not be enabled inside `my_module`"
24 );
25 assert!(
26 log::log_enabled!(log::Level::Warn),
27 "warn should be enabled inside `my_module`"
28 );
29 }
30}
31
f035d41b
XL
32#[test]
33fn log_is_enabled() {
f035d41b
XL
34 let filter: EnvFilter = "filter_log::my_module=info"
35 .parse()
36 .expect("filter should parse");
37 let (subscriber, finished) = subscriber::mock()
38 .event(event::mock().at_level(Level::INFO))
39 .event(event::mock().at_level(Level::WARN))
40 .event(event::mock().at_level(Level::ERROR))
41 .done()
42 .run_with_handle();
f035d41b 43
6a06907d
XL
44 // Note: we have to set the global default in order to set the `log` max
45 // level, which can only be set once.
46 subscriber.with(filter).init();
47
48 my_module::test_records();
49 log::info!("this is disabled");
50
51 my_module::test_log_enabled();
52 assert!(
53 !log::log_enabled!(log::Level::Info),
54 "info should not be enabled outside `my_module`"
55 );
56 assert!(
57 !log::log_enabled!(log::Level::Warn),
58 "warn should not be enabled outside `my_module`"
59 );
f035d41b
XL
60
61 finished.assert_finished();
62}