• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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