aboutsummaryrefslogtreecommitdiff
path: root/azalea-client/src/test_utils/tracing.rs
diff options
context:
space:
mode:
authormat <git@matdoes.dev>2025-06-08 22:46:26 -0330
committermat <git@matdoes.dev>2025-06-08 22:46:26 -0330
commit3087b0c996dbd3fb9a1dbcac4bf5c32f992c2e5e (patch)
tree7d3e889f0f6c45be331d4396f4bdc90496defeef /azalea-client/src/test_utils/tracing.rs
parent338f931c51ab3665c7c18124ca3e35bfd2ff5ca0 (diff)
downloadazalea-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.rs38
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}");
+ }
+ }
+}