From 3087b0c996dbd3fb9a1dbcac4bf5c32f992c2e5e Mon Sep 17 00:00:00 2001 From: mat Date: Sun, 8 Jun 2025 22:46:26 -0330 Subject: add support for panicking on warn/error in simulation tests --- azalea-client/src/test_utils/tracing.rs | 38 +++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 azalea-client/src/test_utils/tracing.rs (limited to 'azalea-client/src/test_utils/tracing.rs') 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 Layer 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}"); + } + } +} -- cgit v1.2.3