summaryrefslogtreecommitdiffstats
path: root/vendor/tracing-core/tests/dispatch.rs
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--vendor/tracing-core/tests/dispatch.rs56
1 files changed, 56 insertions, 0 deletions
diff --git a/vendor/tracing-core/tests/dispatch.rs b/vendor/tracing-core/tests/dispatch.rs
new file mode 100644
index 000000000..3820692a8
--- /dev/null
+++ b/vendor/tracing-core/tests/dispatch.rs
@@ -0,0 +1,56 @@
+#![cfg(feature = "std")]
+mod common;
+
+use common::*;
+use tracing_core::dispatcher::*;
+
+#[test]
+fn set_default_dispatch() {
+ set_global_default(Dispatch::new(TestSubscriberA)).expect("global dispatch set failed");
+ get_default(|current| {
+ assert!(
+ current.is::<TestSubscriberA>(),
+ "global dispatch get failed"
+ )
+ });
+
+ let guard = set_default(&Dispatch::new(TestSubscriberB));
+ get_default(|current| assert!(current.is::<TestSubscriberB>(), "set_default get failed"));
+
+ // Drop the guard, setting the dispatch back to the global dispatch
+ drop(guard);
+
+ get_default(|current| {
+ assert!(
+ current.is::<TestSubscriberA>(),
+ "global dispatch get failed"
+ )
+ });
+}
+
+#[test]
+fn nested_set_default() {
+ let _guard = set_default(&Dispatch::new(TestSubscriberA));
+ get_default(|current| {
+ assert!(
+ current.is::<TestSubscriberA>(),
+ "set_default for outer subscriber failed"
+ )
+ });
+
+ let inner_guard = set_default(&Dispatch::new(TestSubscriberB));
+ get_default(|current| {
+ assert!(
+ current.is::<TestSubscriberB>(),
+ "set_default inner subscriber failed"
+ )
+ });
+
+ drop(inner_guard);
+ get_default(|current| {
+ assert!(
+ current.is::<TestSubscriberA>(),
+ "set_default outer subscriber failed"
+ )
+ });
+}