1 // These tests include field filters with no targets, so they have to go in a
3 #![cfg(feature = "env-filter")]
6 use tracing
::{self, subscriber::with_default, Level}
;
7 use tracing_subscriber
::{filter::EnvFilter, prelude::*}
;
10 fn same_length_targets() {
11 let filter
: EnvFilter
= "foo=trace,bar=trace".parse().expect("filter should parse");
12 let (subscriber
, finished
) = subscriber
::mock()
13 .event(event
::mock().at_level(Level
::TRACE
))
14 .event(event
::mock().at_level(Level
::TRACE
))
17 let subscriber
= subscriber
.with(filter
);
19 with_default(subscriber
, || {
20 tracing
::trace
!(target
: "foo", "foo");
21 tracing
::trace
!(target
: "bar", "bar");
24 finished
.assert_finished();
28 fn same_num_fields_event() {
29 let filter
: EnvFilter
= "[{foo}]=trace,[{bar}]=trace"
31 .expect("filter should parse");
32 let (subscriber
, finished
) = subscriber
::mock()
35 .at_level(Level
::TRACE
)
36 .with_fields(field
::mock("foo")),
40 .at_level(Level
::TRACE
)
41 .with_fields(field
::mock("bar")),
45 let subscriber
= subscriber
.with(filter
);
46 with_default(subscriber
, || {
47 tracing
::trace
!(foo
= 1);
48 tracing
::trace
!(bar
= 3);
51 finished
.assert_finished();
55 fn same_num_fields_and_name_len() {
56 let filter
: EnvFilter
= "[foo{bar=1}]=trace,[baz{boz=1}]=trace"
58 .expect("filter should parse");
59 let (subscriber
, finished
) = subscriber
::mock()
63 .at_level(Level
::TRACE
)
64 .with_field(field
::mock("bar")),
69 .at_level(Level
::TRACE
)
70 .with_field(field
::mock("boz")),
74 let subscriber
= subscriber
.with(filter
);
75 with_default(subscriber
, || {
76 tracing
::trace_span
!("foo", bar
= 1);
77 tracing
::trace_span
!("baz", boz
= 1);
80 finished
.assert_finished();