tracing/tracing-subscriber/tests/vec.rs
Gus Wynn 2c568b5a10
subscriber: fix max_level_hint for empty Option/Vec Subscribe impls (#2195)
## Motivation

These are incorrect: currently, when you have a `None` layer, the `None`
hint it returns causes the default `TRACE` to win, which is inaccurate.
Similarly, `Vec` should default to `OFF` if it has no `Subscribe`s in it

## Solution

Change the default hints to `Some(OFF)`

Co-authored-by: Eliza Weisman <eliza@buoyant.io>
2022-07-01 00:15:07 +00:00

19 lines
595 B
Rust

#![cfg(feature = "registry")]
use tracing::level_filters::LevelFilter;
use tracing::Collect;
use tracing_subscriber::prelude::*;
#[test]
fn just_empty_vec() {
// Just a None means everything is off
let collector = tracing_subscriber::registry().with(Vec::<LevelFilter>::new());
assert_eq!(collector.max_level_hint(), Some(LevelFilter::OFF));
}
#[test]
fn subscriber_and_empty_vec() {
let collector = tracing_subscriber::registry()
.with(LevelFilter::INFO)
.with(Vec::<LevelFilter>::new());
assert_eq!(collector.max_level_hint(), Some(LevelFilter::INFO));
}