1 mod support;
2 use support::*;
3 
4 use tracing::subscriber::with_default;
5 use tracing::Level;
6 use tracing_attributes::instrument;
7 
8 #[test]
named_levels()9 fn named_levels() {
10     #[instrument(level = "trace")]
11     fn trace() {}
12 
13     #[instrument(level = "Debug")]
14     fn debug() {}
15 
16     #[instrument(level = "INFO")]
17     fn info() {}
18 
19     #[instrument(level = "WARn")]
20     fn warn() {}
21 
22     #[instrument(level = "eRrOr")]
23     fn error() {}
24     let (subscriber, handle) = subscriber::mock()
25         .new_span(span::mock().named("trace").at_level(Level::TRACE))
26         .enter(span::mock().named("trace").at_level(Level::TRACE))
27         .exit(span::mock().named("trace").at_level(Level::TRACE))
28         .new_span(span::mock().named("debug").at_level(Level::DEBUG))
29         .enter(span::mock().named("debug").at_level(Level::DEBUG))
30         .exit(span::mock().named("debug").at_level(Level::DEBUG))
31         .new_span(span::mock().named("info").at_level(Level::INFO))
32         .enter(span::mock().named("info").at_level(Level::INFO))
33         .exit(span::mock().named("info").at_level(Level::INFO))
34         .new_span(span::mock().named("warn").at_level(Level::WARN))
35         .enter(span::mock().named("warn").at_level(Level::WARN))
36         .exit(span::mock().named("warn").at_level(Level::WARN))
37         .new_span(span::mock().named("error").at_level(Level::ERROR))
38         .enter(span::mock().named("error").at_level(Level::ERROR))
39         .exit(span::mock().named("error").at_level(Level::ERROR))
40         .done()
41         .run_with_handle();
42 
43     with_default(subscriber, || {
44         trace();
45         debug();
46         info();
47         warn();
48         error();
49     });
50 
51     handle.assert_finished();
52 }
53 
54 #[test]
numeric_levels()55 fn numeric_levels() {
56     #[instrument(level = 1)]
57     fn trace() {}
58 
59     #[instrument(level = 2)]
60     fn debug() {}
61 
62     #[instrument(level = 3)]
63     fn info() {}
64 
65     #[instrument(level = 4)]
66     fn warn() {}
67 
68     #[instrument(level = 5)]
69     fn error() {}
70     let (subscriber, handle) = subscriber::mock()
71         .new_span(span::mock().named("trace").at_level(Level::TRACE))
72         .enter(span::mock().named("trace").at_level(Level::TRACE))
73         .exit(span::mock().named("trace").at_level(Level::TRACE))
74         .new_span(span::mock().named("debug").at_level(Level::DEBUG))
75         .enter(span::mock().named("debug").at_level(Level::DEBUG))
76         .exit(span::mock().named("debug").at_level(Level::DEBUG))
77         .new_span(span::mock().named("info").at_level(Level::INFO))
78         .enter(span::mock().named("info").at_level(Level::INFO))
79         .exit(span::mock().named("info").at_level(Level::INFO))
80         .new_span(span::mock().named("warn").at_level(Level::WARN))
81         .enter(span::mock().named("warn").at_level(Level::WARN))
82         .exit(span::mock().named("warn").at_level(Level::WARN))
83         .new_span(span::mock().named("error").at_level(Level::ERROR))
84         .enter(span::mock().named("error").at_level(Level::ERROR))
85         .exit(span::mock().named("error").at_level(Level::ERROR))
86         .done()
87         .run_with_handle();
88 
89     with_default(subscriber, || {
90         trace();
91         debug();
92         info();
93         warn();
94         error();
95     });
96 
97     handle.assert_finished();
98 }
99