1 | mod common; |
2 | |
3 | use common::*; |
4 | use tracing_core::dispatcher::*; |
5 | #[test] |
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 | |