From 29d85b1adbac6e2b2f8c2ab396f6ed18765d7d66 Mon Sep 17 00:00:00 2001 From: Eliza Weisman Date: Fri, 21 Apr 2023 16:11:52 -0700 Subject: [PATCH] mock: move layer mock from tracing-subscriber tests (#2369) The `tracing-subscriber` module `tests::support` included functionality to mock a layer (via the `Layer` trait). This code depends on some items from `tracing_mock::collector` which should otherwise not be public. This change moves the mocking functionality inside `tracing-mock` behind a feature flag. Allowing the `Expect` enum and `MockHandle::new` from `tracing_mock::collector` to be made `pub(crate)` instead of `pub`. Since it's now used from two different modules, the `Expect` enum has been moved to its own module. This requires a lot of modifications to imports so that we're not doing wildcard imports from another crate (i.e. in `tracing-subscriber` importing wildcards from `tracing-mock`). This PR is based on @hds' PR #2369, but modified to track renamings. I also deleted all the doc comments temporarily because updating them was a lot of work and I need to get a release of `tracing-subscriber` out first. Closes: #2359 --- tracing-mock/Cargo.toml | 1 + tracing-mock/src/expectation.rs | 21 +++ .../support.rs => tracing-mock/src/layer.rs | 131 ++++++++---------- tracing-mock/src/lib.rs | 4 + tracing-mock/src/subscriber.rs | 21 +-- tracing-subscriber/Cargo.toml | 2 +- ...d_layer_filters_dont_break_other_layers.rs | 11 +- tracing-subscriber/tests/env_filter/main.rs | 5 +- .../tests/env_filter/per_layer.rs | 1 + ...d_layer_filters_dont_break_other_layers.rs | 11 +- .../layer_filter_interests_are_cached.rs | 4 +- .../tests/layer_filters/boxed.rs | 3 +- .../tests/layer_filters/filter_scopes.rs | 3 +- .../tests/layer_filters/main.rs | 4 +- .../tests/layer_filters/per_event.rs | 2 +- .../tests/layer_filters/trees.rs | 3 +- tracing-subscriber/tests/layer_filters/vec.rs | 3 +- .../multiple_layer_filter_interests_cached.rs | 4 +- ...d_layer_filters_dont_break_other_layers.rs | 11 +- .../vec_subscriber_filter_interests_cached.rs | 9 +- 20 files changed, 125 insertions(+), 129 deletions(-) create mode 100644 tracing-mock/src/expectation.rs rename tracing-subscriber/tests/support.rs => tracing-mock/src/layer.rs (82%) diff --git a/tracing-mock/Cargo.toml b/tracing-mock/Cargo.toml index 29764832a0..2e060df78c 100644 --- a/tracing-mock/Cargo.toml +++ b/tracing-mock/Cargo.toml @@ -20,6 +20,7 @@ publish = false [dependencies] tracing = { path = "../tracing", version = "0.1.35", default-features = false } tracing-core = { path = "../tracing-core", version = "0.1.28", default-features = false } +tracing-subscriber = { path = "../tracing-subscriber", version = "0.3", default-features = false, optional = true } tokio-test = { version = "0.4.2", optional = true } # Fix minimal-versions; tokio-test fails with otherwise acceptable 0.1.0 diff --git a/tracing-mock/src/expectation.rs b/tracing-mock/src/expectation.rs new file mode 100644 index 0000000000..0328754fc8 --- /dev/null +++ b/tracing-mock/src/expectation.rs @@ -0,0 +1,21 @@ +use crate::{ + event::MockEvent, + field, + span::{MockSpan, NewSpan}, +}; + +#[derive(Debug, Eq, PartialEq)] +pub(crate) enum Expect { + Event(MockEvent), + FollowsFrom { + consequence: MockSpan, + cause: MockSpan, + }, + Enter(MockSpan), + Exit(MockSpan), + CloneSpan(MockSpan), + DropSpan(MockSpan), + Visit(MockSpan, field::Expect), + NewSpan(NewSpan), + Nothing, +} diff --git a/tracing-subscriber/tests/support.rs b/tracing-mock/src/layer.rs similarity index 82% rename from tracing-subscriber/tests/support.rs rename to tracing-mock/src/layer.rs index 50e0e6669d..0a0a02005d 100644 --- a/tracing-subscriber/tests/support.rs +++ b/tracing-mock/src/layer.rs @@ -1,15 +1,13 @@ -#![allow(missing_docs, dead_code)] -pub use tracing_mock::{event, field, span, subscriber}; - +use crate::{ + event::MockEvent, + expectation::Expect, + span::{MockSpan, NewSpan}, + subscriber::MockHandle, +}; use tracing_core::{ span::{Attributes, Id, Record}, Event, Subscriber, }; -use tracing_mock::{ - event::MockEvent, - span::{MockSpan, NewSpan}, - subscriber::{Expect, MockHandle}, -}; use tracing_subscriber::{ layer::{Context, Layer}, registry::{LookupSpan, SpanRef}, @@ -21,49 +19,34 @@ use std::{ sync::{Arc, Mutex}, }; -pub mod layer { - use super::ExpectLayerBuilder; - - pub fn mock() -> ExpectLayerBuilder { - ExpectLayerBuilder { - expected: Default::default(), - name: std::thread::current() - .name() - .map(String::from) - .unwrap_or_default(), - } +#[must_use] +pub fn mock() -> MockLayerBuilder { + MockLayerBuilder { + expected: Default::default(), + name: std::thread::current() + .name() + .map(String::from) + .unwrap_or_default(), } +} - pub fn named(name: impl std::fmt::Display) -> ExpectLayerBuilder { - mock().named(name) - } +#[must_use] +pub fn named(name: impl std::fmt::Display) -> MockLayerBuilder { + mock().named(name) } -pub struct ExpectLayerBuilder { +pub struct MockLayerBuilder { expected: VecDeque, name: String, } -pub struct ExpectLayer { +pub struct MockLayer { expected: Arc>>, current: Mutex>, name: String, } -impl ExpectLayerBuilder { - /// Overrides the name printed by the mock subscriber's debugging output. - /// - /// The debugging output is displayed if the test panics, or if the test is - /// run with `--nocapture`. - /// - /// By default, the mock subscriber's name is the name of the test - /// (*technically*, the name of the thread where it was created, which is - /// the name of the test unless tests are run with `--test-threads=1`). - /// When a test has only one mock subscriber, this is sufficient. However, - /// some tests may include multiple subscribers, in order to test - /// interactions between multiple subscribers. In that case, it can be - /// helpful to give each subscriber a separate name to distinguish where the - /// debugging output comes from. +impl MockLayerBuilder { pub fn named(mut self, name: impl fmt::Display) -> Self { use std::fmt::Write; if !self.name.is_empty() { @@ -74,63 +57,55 @@ impl ExpectLayerBuilder { self } - pub fn enter(mut self, span: MockSpan) -> Self { - self.expected.push_back(Expect::Enter(span)); - self - } - pub fn event(mut self, event: MockEvent) -> Self { self.expected.push_back(Expect::Event(event)); self } - pub fn exit(mut self, span: MockSpan) -> Self { - self.expected.push_back(Expect::Exit(span)); + pub fn new_span(mut self, new_span: I) -> Self + where + I: Into, + { + self.expected.push_back(Expect::NewSpan(new_span.into())); self } - pub fn done(mut self) -> Self { - self.expected.push_back(Expect::Nothing); + pub fn enter(mut self, span: MockSpan) -> Self { + self.expected.push_back(Expect::Enter(span)); self } - pub fn record(mut self, span: MockSpan, fields: I) -> Self - where - I: Into, - { - self.expected.push_back(Expect::Visit(span, fields.into())); + pub fn exit(mut self, span: MockSpan) -> Self { + self.expected.push_back(Expect::Exit(span)); self } - pub fn new_span(mut self, new_span: I) -> Self - where - I: Into, - { - self.expected.push_back(Expect::NewSpan(new_span.into())); + pub fn done(mut self) -> Self { + self.expected.push_back(Expect::Nothing); self } - pub fn run(self) -> ExpectLayer { - ExpectLayer { + pub fn run(self) -> MockLayer { + MockLayer { expected: Arc::new(Mutex::new(self.expected)), name: self.name, current: Mutex::new(Vec::new()), } } - pub fn run_with_handle(self) -> (ExpectLayer, MockHandle) { + pub fn run_with_handle(self) -> (MockLayer, MockHandle) { let expected = Arc::new(Mutex::new(self.expected)); let handle = MockHandle::new(expected.clone(), self.name.clone()); - let layer = ExpectLayer { + let subscriber = MockLayer { expected, name: self.name, current: Mutex::new(Vec::new()), }; - (layer, handle) + (subscriber, handle) } } -impl ExpectLayer { +impl MockLayer { fn check_span_ref<'spans, S>( &self, expected: &MockSpan, @@ -191,9 +166,9 @@ impl ExpectLayer { } } -impl Layer for ExpectLayer +impl Layer for MockLayer where - S: Subscriber + for<'a> LookupSpan<'a>, + C: Subscriber + for<'a> LookupSpan<'a>, { fn register_callsite( &self, @@ -203,7 +178,7 @@ where tracing_core::Interest::always() } - fn on_record(&self, _: &Id, _: &Record<'_>, _: Context<'_, S>) { + fn on_record(&self, _: &Id, _: &Record<'_>, _: Context<'_, C>) { unimplemented!( "so far, we don't have any tests that need an `on_record` \ implementation.\nif you just wrote one that does, feel free to \ @@ -211,7 +186,7 @@ where ); } - fn on_event(&self, event: &Event<'_>, cx: Context<'_, S>) { + fn on_event(&self, event: &Event<'_>, cx: Context<'_, C>) { let name = event.metadata().name(); println!( "[{}] event: {}; level: {}; target: {}", @@ -262,11 +237,15 @@ where } } - fn on_follows_from(&self, _span: &Id, _follows: &Id, _: Context<'_, S>) { - // TODO: it should be possible to expect spans to follow from other spans + fn on_follows_from(&self, _span: &Id, _follows: &Id, _: Context<'_, C>) { + unimplemented!( + "so far, we don't have any tests that need an `on_follows_from` \ + implementation.\nif you just wrote one that does, feel free to \ + implement it!" + ); } - fn on_new_span(&self, span: &Attributes<'_>, id: &Id, cx: Context<'_, S>) { + fn on_new_span(&self, span: &Attributes<'_>, id: &Id, cx: Context<'_, C>) { let meta = span.metadata(); println!( "[{}] new_span: name={:?}; target={:?}; id={:?};", @@ -290,7 +269,7 @@ where } } - fn on_enter(&self, id: &Id, cx: Context<'_, S>) { + fn on_enter(&self, id: &Id, cx: Context<'_, C>) { let span = cx .span(id) .unwrap_or_else(|| panic!("[{}] no span for ID {:?}", self.name, id)); @@ -305,7 +284,7 @@ where self.current.lock().unwrap().push(id.clone()); } - fn on_exit(&self, id: &Id, cx: Context<'_, S>) { + fn on_exit(&self, id: &Id, cx: Context<'_, C>) { if std::thread::panicking() { // `exit()` can be called in `drop` impls, so we must guard against // double panics. @@ -334,7 +313,7 @@ where }; } - fn on_close(&self, id: Id, cx: Context<'_, S>) { + fn on_close(&self, id: Id, cx: Context<'_, C>) { if std::thread::panicking() { // `try_close` can be called in `drop` impls, so we must guard against // double panics. @@ -380,14 +359,14 @@ where } } - fn on_id_change(&self, _old: &Id, _new: &Id, _ctx: Context<'_, S>) { + fn on_id_change(&self, _old: &Id, _new: &Id, _ctx: Context<'_, C>) { panic!("well-behaved subscribers should never do this to us, lol"); } } -impl fmt::Debug for ExpectLayer { +impl fmt::Debug for MockLayer { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { - let mut s = f.debug_struct("ExpectLayer"); + let mut s = f.debug_struct("MockLayer"); s.field("name", &self.name); if let Ok(expected) = self.expected.try_lock() { diff --git a/tracing-mock/src/lib.rs b/tracing-mock/src/lib.rs index 8b2617233a..a8ba0865b7 100644 --- a/tracing-mock/src/lib.rs +++ b/tracing-mock/src/lib.rs @@ -4,11 +4,15 @@ use std::{ }; pub mod event; +mod expectation; pub mod field; mod metadata; pub mod span; pub mod subscriber; +#[cfg(feature = "tracing-subscriber")] +pub mod layer; + #[derive(Debug, Eq, PartialEq)] pub enum Parent { ContextualRoot, diff --git a/tracing-mock/src/subscriber.rs b/tracing-mock/src/subscriber.rs index 32f27ada00..9a73da28c2 100644 --- a/tracing-mock/src/subscriber.rs +++ b/tracing-mock/src/subscriber.rs @@ -1,6 +1,7 @@ #![allow(missing_docs)] use super::{ event::MockEvent, + expectation::Expect, field as mock_field, span::{MockSpan, NewSpan}, }; @@ -20,22 +21,6 @@ use tracing::{ Event, Metadata, Subscriber, }; -#[derive(Debug, Eq, PartialEq)] -pub enum Expect { - Event(MockEvent), - FollowsFrom { - consequence: MockSpan, - cause: MockSpan, - }, - Enter(MockSpan), - Exit(MockSpan), - CloneSpan(MockSpan), - DropSpan(MockSpan), - Visit(MockSpan, mock_field::Expect), - NewSpan(NewSpan), - Nothing, -} - struct SpanState { name: &'static str, refs: usize, @@ -471,7 +456,7 @@ where } impl MockHandle { - pub fn new(expected: Arc>>, name: String) -> Self { + pub(crate) fn new(expected: Arc>>, name: String) -> Self { Self(expected, name) } @@ -488,7 +473,7 @@ impl MockHandle { } impl Expect { - pub fn bad(&self, name: impl AsRef, what: fmt::Arguments<'_>) { + pub(crate) fn bad(&self, name: impl AsRef, what: fmt::Arguments<'_>) { let name = name.as_ref(); match self { Expect::Event(e) => panic!( diff --git a/tracing-subscriber/Cargo.toml b/tracing-subscriber/Cargo.toml index 48b703becb..5553fd8737 100644 --- a/tracing-subscriber/Cargo.toml +++ b/tracing-subscriber/Cargo.toml @@ -70,7 +70,7 @@ valuable-serde = { version = "0.1.0", optional = true, default-features = false [dev-dependencies] tracing = { path = "../tracing", version = "0.1.35" } -tracing-mock = { path = "../tracing-mock" } +tracing-mock = { path = "../tracing-mock", features = ["tracing-subscriber"] } log = "0.4.17" tracing-log = { path = "../tracing-log", version = "0.1.3" } criterion = { version = "0.3.6", default-features = false } diff --git a/tracing-subscriber/tests/cached_layer_filters_dont_break_other_layers.rs b/tracing-subscriber/tests/cached_layer_filters_dont_break_other_layers.rs index 00e98a994c..5b40b60aa3 100644 --- a/tracing-subscriber/tests/cached_layer_filters_dont_break_other_layers.rs +++ b/tracing-subscriber/tests/cached_layer_filters_dont_break_other_layers.rs @@ -1,7 +1,10 @@ #![cfg(feature = "registry")] -mod support; -use self::support::*; use tracing::Level; +use tracing_mock::{ + event, + layer::{self, MockLayer}, + subscriber, +}; use tracing_subscriber::{filter::LevelFilter, prelude::*}; #[test] @@ -102,7 +105,7 @@ fn filter() -> LevelFilter { LevelFilter::INFO } -fn unfiltered(name: &str) -> (ExpectLayer, subscriber::MockHandle) { +fn unfiltered(name: &str) -> (MockLayer, subscriber::MockHandle) { layer::named(name) .event(event::mock().at_level(Level::TRACE)) .event(event::mock().at_level(Level::DEBUG)) @@ -113,7 +116,7 @@ fn unfiltered(name: &str) -> (ExpectLayer, subscriber::MockHandle) { .run_with_handle() } -fn filtered(name: &str) -> (ExpectLayer, subscriber::MockHandle) { +fn filtered(name: &str) -> (MockLayer, subscriber::MockHandle) { layer::named(name) .event(event::mock().at_level(Level::INFO)) .event(event::mock().at_level(Level::WARN)) diff --git a/tracing-subscriber/tests/env_filter/main.rs b/tracing-subscriber/tests/env_filter/main.rs index 3c3d4868be..ef984a68a9 100644 --- a/tracing-subscriber/tests/env_filter/main.rs +++ b/tracing-subscriber/tests/env_filter/main.rs @@ -1,12 +1,9 @@ #![cfg(feature = "env-filter")] -#[path = "../support.rs"] -mod support; -use self::support::*; - mod per_layer; use tracing::{self, subscriber::with_default, Level}; +use tracing_mock::{event, field, layer, span, subscriber}; use tracing_subscriber::{ filter::{EnvFilter, LevelFilter}, prelude::*, diff --git a/tracing-subscriber/tests/env_filter/per_layer.rs b/tracing-subscriber/tests/env_filter/per_layer.rs index 8bf5698a4d..4b143b8bfd 100644 --- a/tracing-subscriber/tests/env_filter/per_layer.rs +++ b/tracing-subscriber/tests/env_filter/per_layer.rs @@ -2,6 +2,7 @@ //! `Layer` filter). #![cfg(feature = "registry")] use super::*; +use tracing_mock::{event, field, layer, span}; #[test] fn level_filter_event() { diff --git a/tracing-subscriber/tests/hinted_layer_filters_dont_break_other_layers.rs b/tracing-subscriber/tests/hinted_layer_filters_dont_break_other_layers.rs index 897dae2822..4e5ee4e050 100644 --- a/tracing-subscriber/tests/hinted_layer_filters_dont_break_other_layers.rs +++ b/tracing-subscriber/tests/hinted_layer_filters_dont_break_other_layers.rs @@ -1,7 +1,10 @@ #![cfg(feature = "registry")] -mod support; -use self::support::*; use tracing::{Level, Metadata, Subscriber}; +use tracing_mock::{ + event, + layer::{self, MockLayer}, + subscriber, +}; use tracing_subscriber::{filter::DynFilterFn, layer::Context, prelude::*}; #[test] @@ -110,7 +113,7 @@ fn filter() -> DynFilterFn { .with_max_level_hint(Level::INFO) } -fn unfiltered(name: &str) -> (ExpectLayer, subscriber::MockHandle) { +fn unfiltered(name: &str) -> (MockLayer, subscriber::MockHandle) { layer::named(name) .event(event::mock().at_level(Level::TRACE)) .event(event::mock().at_level(Level::DEBUG)) @@ -121,7 +124,7 @@ fn unfiltered(name: &str) -> (ExpectLayer, subscriber::MockHandle) { .run_with_handle() } -fn filtered(name: &str) -> (ExpectLayer, subscriber::MockHandle) { +fn filtered(name: &str) -> (MockLayer, subscriber::MockHandle) { layer::named(name) .event(event::mock().at_level(Level::INFO)) .event(event::mock().at_level(Level::WARN)) diff --git a/tracing-subscriber/tests/layer_filter_interests_are_cached.rs b/tracing-subscriber/tests/layer_filter_interests_are_cached.rs index d89d3bf174..67e8ba763c 100644 --- a/tracing-subscriber/tests/layer_filter_interests_are_cached.rs +++ b/tracing-subscriber/tests/layer_filter_interests_are_cached.rs @@ -1,12 +1,10 @@ #![cfg(feature = "registry")] -mod support; -use self::support::*; - use std::{ collections::HashMap, sync::{Arc, Mutex}, }; use tracing::{Level, Subscriber}; +use tracing_mock::{event, layer}; use tracing_subscriber::{filter, prelude::*}; #[test] diff --git a/tracing-subscriber/tests/layer_filters/boxed.rs b/tracing-subscriber/tests/layer_filters/boxed.rs index 0fe37188e1..b02331a6c3 100644 --- a/tracing-subscriber/tests/layer_filters/boxed.rs +++ b/tracing-subscriber/tests/layer_filters/boxed.rs @@ -1,7 +1,8 @@ use super::*; +use tracing_mock::layer::MockLayer; use tracing_subscriber::{filter, prelude::*, Layer}; -fn layer() -> (ExpectLayer, subscriber::MockHandle) { +fn layer() -> (MockLayer, subscriber::MockHandle) { layer::mock().done().run_with_handle() } diff --git a/tracing-subscriber/tests/layer_filters/filter_scopes.rs b/tracing-subscriber/tests/layer_filters/filter_scopes.rs index 7fd7d843b4..d5608a8965 100644 --- a/tracing-subscriber/tests/layer_filters/filter_scopes.rs +++ b/tracing-subscriber/tests/layer_filters/filter_scopes.rs @@ -1,4 +1,5 @@ use super::*; +use tracing_mock::layer::MockLayer; #[test] fn filters_span_scopes() { @@ -67,7 +68,7 @@ fn filters_span_scopes() { #[test] fn filters_interleaved_span_scopes() { - fn target_layer(target: &'static str) -> (ExpectLayer, subscriber::MockHandle) { + fn target_layer(target: &'static str) -> (MockLayer, subscriber::MockHandle) { layer::named(format!("target_{}", target)) .enter(span::mock().with_target(target)) .enter(span::mock().with_target(target)) diff --git a/tracing-subscriber/tests/layer_filters/main.rs b/tracing-subscriber/tests/layer_filters/main.rs index 10f06c24c6..fed74038c7 100644 --- a/tracing-subscriber/tests/layer_filters/main.rs +++ b/tracing-subscriber/tests/layer_filters/main.rs @@ -1,7 +1,4 @@ #![cfg(feature = "registry")] -#[path = "../support.rs"] -mod support; -use self::support::*; mod boxed; mod downcast_raw; mod filter_scopes; @@ -11,6 +8,7 @@ mod trees; mod vec; use tracing::{level_filters::LevelFilter, Level}; +use tracing_mock::{event, layer, span, subscriber}; use tracing_subscriber::{filter, prelude::*, Layer}; #[test] diff --git a/tracing-subscriber/tests/layer_filters/per_event.rs b/tracing-subscriber/tests/layer_filters/per_event.rs index 9c785f9a23..3a28d94f08 100644 --- a/tracing-subscriber/tests/layer_filters/per_event.rs +++ b/tracing-subscriber/tests/layer_filters/per_event.rs @@ -1,5 +1,5 @@ -use crate::support::*; use tracing::Level; +use tracing_mock::{event, layer}; use tracing_subscriber::{field::Visit, layer::Filter, prelude::*}; struct FilterEvent; diff --git a/tracing-subscriber/tests/layer_filters/trees.rs b/tracing-subscriber/tests/layer_filters/trees.rs index 18cdd8ccc8..02830122ca 100644 --- a/tracing-subscriber/tests/layer_filters/trees.rs +++ b/tracing-subscriber/tests/layer_filters/trees.rs @@ -1,4 +1,5 @@ use super::*; +use tracing_mock::layer::MockLayer; #[test] fn basic_trees() { @@ -54,7 +55,7 @@ fn basic_trees() { #[test] fn filter_span_scopes() { - fn target_layer(target: &'static str) -> (ExpectLayer, subscriber::MockHandle) { + fn target_layer(target: &'static str) -> (MockLayer, subscriber::MockHandle) { layer::named(format!("target_{}", target)) .enter(span::mock().with_target(target).at_level(Level::INFO)) .event( diff --git a/tracing-subscriber/tests/layer_filters/vec.rs b/tracing-subscriber/tests/layer_filters/vec.rs index 87244e4ab5..dbe3674785 100644 --- a/tracing-subscriber/tests/layer_filters/vec.rs +++ b/tracing-subscriber/tests/layer_filters/vec.rs @@ -1,5 +1,6 @@ use super::*; use tracing::Subscriber; +use tracing_mock::layer::{self, MockLayer}; #[test] fn with_filters_unboxed() { @@ -115,6 +116,6 @@ fn all_filtered_max_level_hint() { #[test] fn empty_vec() { // Just a None means everything is off - let subscriber = tracing_subscriber::registry().with(Vec::::new()); + let subscriber = tracing_subscriber::registry().with(Vec::::new()); assert_eq!(subscriber.max_level_hint(), Some(LevelFilter::OFF)); } diff --git a/tracing-subscriber/tests/multiple_layer_filter_interests_cached.rs b/tracing-subscriber/tests/multiple_layer_filter_interests_cached.rs index 5c25e7f03c..13e1a94a3e 100644 --- a/tracing-subscriber/tests/multiple_layer_filter_interests_cached.rs +++ b/tracing-subscriber/tests/multiple_layer_filter_interests_cached.rs @@ -1,12 +1,10 @@ #![cfg(feature = "registry")] -mod support; -use self::support::*; - use std::{ collections::HashMap, sync::{Arc, Mutex}, }; use tracing::{Level, Subscriber}; +use tracing_mock::{event, layer}; use tracing_subscriber::{filter, prelude::*}; #[test] diff --git a/tracing-subscriber/tests/unhinted_layer_filters_dont_break_other_layers.rs b/tracing-subscriber/tests/unhinted_layer_filters_dont_break_other_layers.rs index 9fa5c6bd41..d8b38345f9 100644 --- a/tracing-subscriber/tests/unhinted_layer_filters_dont_break_other_layers.rs +++ b/tracing-subscriber/tests/unhinted_layer_filters_dont_break_other_layers.rs @@ -1,7 +1,10 @@ #![cfg(feature = "registry")] -mod support; -use self::support::*; use tracing::Level; +use tracing_mock::{ + event, + layer::{self, MockLayer}, + subscriber, +}; use tracing_subscriber::{filter::DynFilterFn, prelude::*}; #[test] @@ -102,7 +105,7 @@ fn filter() -> DynFilterFn { DynFilterFn::new(|metadata, _| metadata.level() <= &Level::INFO) } -fn unfiltered(name: &str) -> (ExpectLayer, subscriber::MockHandle) { +fn unfiltered(name: &str) -> (MockLayer, subscriber::MockHandle) { layer::named(name) .event(event::mock().at_level(Level::TRACE)) .event(event::mock().at_level(Level::DEBUG)) @@ -113,7 +116,7 @@ fn unfiltered(name: &str) -> (ExpectLayer, subscriber::MockHandle) { .run_with_handle() } -fn filtered(name: &str) -> (ExpectLayer, subscriber::MockHandle) { +fn filtered(name: &str) -> (MockLayer, subscriber::MockHandle) { layer::named(name) .event(event::mock().at_level(Level::INFO)) .event(event::mock().at_level(Level::WARN)) diff --git a/tracing-subscriber/tests/vec_subscriber_filter_interests_cached.rs b/tracing-subscriber/tests/vec_subscriber_filter_interests_cached.rs index 10467cb7d6..1bfb4a0adf 100644 --- a/tracing-subscriber/tests/vec_subscriber_filter_interests_cached.rs +++ b/tracing-subscriber/tests/vec_subscriber_filter_interests_cached.rs @@ -1,17 +1,18 @@ #![cfg(feature = "registry")] -mod support; -use self::support::*; - use std::{ collections::HashMap, sync::{Arc, Mutex}, }; use tracing::{Level, Subscriber}; +use tracing_mock::{ + event, + layer::{self, MockLayer}, +}; use tracing_subscriber::{filter, prelude::*}; #[test] fn vec_layer_filter_interests_are_cached() { - let mk_filtered = |level: Level, subscriber: ExpectLayer| { + let mk_filtered = |level: Level, subscriber: MockLayer| { let seen = Arc::new(Mutex::new(HashMap::new())); let filter = filter::filter_fn({ let seen = seen.clone();