diff options
| author | mat <git@matdoes.dev> | 2025-06-08 22:46:26 -0330 |
|---|---|---|
| committer | mat <git@matdoes.dev> | 2025-06-08 22:46:26 -0330 |
| commit | 3087b0c996dbd3fb9a1dbcac4bf5c32f992c2e5e (patch) | |
| tree | 7d3e889f0f6c45be331d4396f4bdc90496defeef /azalea-client/src/test_utils/tracing.rs | |
| parent | 338f931c51ab3665c7c18124ca3e35bfd2ff5ca0 (diff) | |
| download | azalea-drasl-3087b0c996dbd3fb9a1dbcac4bf5c32f992c2e5e.tar.xz | |
add support for panicking on warn/error in simulation tests
Diffstat (limited to 'azalea-client/src/test_utils/tracing.rs')
| -rw-r--r-- | azalea-client/src/test_utils/tracing.rs | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/azalea-client/src/test_utils/tracing.rs b/azalea-client/src/test_utils/tracing.rs new file mode 100644 index 00000000..85ac4bd6 --- /dev/null +++ b/azalea-client/src/test_utils/tracing.rs @@ -0,0 +1,38 @@ +use bevy_log::tracing_subscriber::{ + self, EnvFilter, Layer, + layer::{Context, SubscriberExt}, + registry::LookupSpan, + util::SubscriberInitExt, +}; +use tracing::{Event, Level, Subscriber, level_filters::LevelFilter}; + +pub fn init_tracing() { + init_tracing_with_level(Level::WARN); +} + +pub fn init_tracing_with_level(max_level: Level) { + tracing_subscriber::registry() + .with( + tracing_subscriber::fmt::layer().with_filter( + EnvFilter::builder() + .with_default_directive(max_level.into()) + .from_env_lossy(), + ), + ) + .with(TestTracingLayer { + panic_on_level: max_level, + }) + .init(); +} + +struct TestTracingLayer { + panic_on_level: Level, +} +impl<S: Subscriber> Layer<S> for TestTracingLayer { + fn on_event(&self, event: &Event<'_>, _ctx: Context<'_, S>) { + let level = *event.metadata().level(); + if level <= self.panic_on_level { + panic!("logged on level {level}"); + } + } +} |
