| mod support; |
| |
| use self::support::*; |
| use tracing::Level; |
| |
| #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test::wasm_bindgen_test)] |
| #[test] |
| fn max_level_hints() { |
| // This test asserts that when a subscriber provides us with the global |
| // maximum level that it will enable (by implementing the |
| // `Subscriber::max_level_hint` method), we will never call |
| // `Subscriber::enabled` for events above that maximum level. |
| // |
| // In this case, we test that by making the `enabled` method assert that no |
| // `Metadata` for spans or events at the `TRACE` or `DEBUG` levels. |
| let (subscriber, handle) = subscriber::mock() |
| .with_max_level_hint(Level::INFO) |
| .with_filter(|meta| { |
| assert!( |
| dbg!(meta).level() <= &Level::INFO, |
| "a TRACE or DEBUG event was dynamically filtered: " |
| ); |
| true |
| }) |
| .event(event::mock().at_level(Level::INFO)) |
| .event(event::mock().at_level(Level::WARN)) |
| .event(event::mock().at_level(Level::ERROR)) |
| .done() |
| .run_with_handle(); |
| |
| tracing::subscriber::set_global_default(subscriber).unwrap(); |
| |
| tracing::info!("doing a thing that you might care about"); |
| tracing::debug!("charging turboencabulator with interocitor"); |
| tracing::warn!("extremely serious warning, pay attention"); |
| tracing::trace!("interocitor charge level is 10%"); |
| tracing::error!("everything is on fire"); |
| handle.assert_finished(); |
| } |