1 use tracing::subscriber::with_default;
2 use tracing_attributes::instrument;
3 use tracing_mock::*;
4
5 #[instrument]
default_target()6 fn default_target() {}
7
8 #[instrument(target = "my_target")]
custom_target()9 fn custom_target() {}
10
11 mod my_mod {
12 use tracing_attributes::instrument;
13
14 pub const MODULE_PATH: &str = module_path!();
15
16 #[instrument]
default_target()17 pub fn default_target() {}
18
19 #[instrument(target = "my_other_target")]
custom_target()20 pub fn custom_target() {}
21 }
22
23 #[test]
default_targets()24 fn default_targets() {
25 let (subscriber, handle) = subscriber::mock()
26 .new_span(
27 span::mock()
28 .named("default_target")
29 .with_target(module_path!()),
30 )
31 .enter(
32 span::mock()
33 .named("default_target")
34 .with_target(module_path!()),
35 )
36 .exit(
37 span::mock()
38 .named("default_target")
39 .with_target(module_path!()),
40 )
41 .new_span(
42 span::mock()
43 .named("default_target")
44 .with_target(my_mod::MODULE_PATH),
45 )
46 .enter(
47 span::mock()
48 .named("default_target")
49 .with_target(my_mod::MODULE_PATH),
50 )
51 .exit(
52 span::mock()
53 .named("default_target")
54 .with_target(my_mod::MODULE_PATH),
55 )
56 .done()
57 .run_with_handle();
58
59 with_default(subscriber, || {
60 default_target();
61 my_mod::default_target();
62 });
63
64 handle.assert_finished();
65 }
66
67 #[test]
custom_targets()68 fn custom_targets() {
69 let (subscriber, handle) = subscriber::mock()
70 .new_span(span::mock().named("custom_target").with_target("my_target"))
71 .enter(span::mock().named("custom_target").with_target("my_target"))
72 .exit(span::mock().named("custom_target").with_target("my_target"))
73 .new_span(
74 span::mock()
75 .named("custom_target")
76 .with_target("my_other_target"),
77 )
78 .enter(
79 span::mock()
80 .named("custom_target")
81 .with_target("my_other_target"),
82 )
83 .exit(
84 span::mock()
85 .named("custom_target")
86 .with_target("my_other_target"),
87 )
88 .done()
89 .run_with_handle();
90
91 with_default(subscriber, || {
92 custom_target();
93 my_mod::custom_target();
94 });
95
96 handle.assert_finished();
97 }
98