summaryrefslogtreecommitdiffstats
path: root/vendor/tracing-core/tests/global_dispatch.rs
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/tracing-core/tests/global_dispatch.rs')
-rw-r--r--vendor/tracing-core/tests/global_dispatch.rs34
1 files changed, 34 insertions, 0 deletions
diff --git a/vendor/tracing-core/tests/global_dispatch.rs b/vendor/tracing-core/tests/global_dispatch.rs
new file mode 100644
index 000000000..d430ac618
--- /dev/null
+++ b/vendor/tracing-core/tests/global_dispatch.rs
@@ -0,0 +1,34 @@
+mod common;
+
+use common::*;
+use tracing_core::dispatcher::*;
+#[test]
+fn global_dispatch() {
+ set_global_default(Dispatch::new(TestSubscriberA)).expect("global dispatch set failed");
+ get_default(|current| {
+ assert!(
+ current.is::<TestSubscriberA>(),
+ "global dispatch get failed"
+ )
+ });
+
+ #[cfg(feature = "std")]
+ with_default(&Dispatch::new(TestSubscriberB), || {
+ get_default(|current| {
+ assert!(
+ current.is::<TestSubscriberB>(),
+ "thread-local override of global dispatch failed"
+ )
+ });
+ });
+
+ get_default(|current| {
+ assert!(
+ current.is::<TestSubscriberA>(),
+ "reset to global override failed"
+ )
+ });
+
+ set_global_default(Dispatch::new(TestSubscriberA))
+ .expect_err("double global dispatch set succeeded");
+}