1 mod common;
2 
3 use common::*;
4 use tracing_core::dispatcher::*;
5 #[test]
global_dispatch()6 fn global_dispatch() {
7     set_global_default(Dispatch::new(TestSubscriberA)).expect("global dispatch set failed");
8     get_default(|current| {
9         assert!(
10             current.is::<TestSubscriberA>(),
11             "global dispatch get failed"
12         )
13     });
14 
15     #[cfg(feature = "std")]
16     with_default(&Dispatch::new(TestSubscriberB), || {
17         get_default(|current| {
18             assert!(
19                 current.is::<TestSubscriberB>(),
20                 "thread-local override of global dispatch failed"
21             )
22         });
23     });
24 
25     get_default(|current| {
26         assert!(
27             current.is::<TestSubscriberA>(),
28             "reset to global override failed"
29         )
30     });
31 
32     set_global_default(Dispatch::new(TestSubscriberA))
33         .expect_err("double global dispatch set succeeded");
34 }
35