Skip to content

Commit 9bd34be

Browse files
committed
mock: differentiate between mocks and expectations
The `tracing-mock` crate provides a mock collector (and a subscriber for use by the tests in the `tracing-subscriber` crate) which is able to make assertions about what diagnostics are emitted. These assertions are defined by structs that match on events, span, and their fields and metadata. The structs that matched these objects have been called, up until now, mocks, however this terminology may be misleading, as the created objects don't mock anything. There were two different names for similar functionality with `only()` and `done()` on fields and collectors/subscribers respectively. Using a single name for these may make it easier to onboard onto `tracing-mock`. To reduce confusion, these structs have been split into two categories: mocks and expectations. Additionally, the `done()` function on the `Collector` and `Subscriber` mocks has been replaced with `only()`. This matches the similar function for `ExpectedField`, and may be more intuitive. The mocks replace some component in the tracing ecosystem when a library is under test. The expectations define the assertions we wish to make about traces received by the mocks. Mocks (per module): * collector - `MockCollector`, no change * subscriber - `MockSubscriber`, renamed from `ExpectSubscriber` Expectations (per module): * event - `ExpectedEvent`, renamed from `MockEvent` * span - `ExpectedSpan`, renamed from `MockSpan` * field - `ExpectedField` and `ExpectedFields`, renamed from `MockField` and `Expected`. Also `ExpectedValue` renamed from `MockValue`. * metadata - `ExpectedMetadata`, renamed from `Expected` Refs: #539
1 parent b86ea89 commit 9bd34be

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

49 files changed

+1119
-1078
lines changed

tracing-attributes/tests/async_fn.rs

Lines changed: 43 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -84,14 +84,14 @@ fn repro_1831_2() -> impl Future<Output = Result<(), Infallible>> {
8484
#[test]
8585
fn async_fn_only_enters_for_polls() {
8686
let (collector, handle) = collector::mock()
87-
.new_span(span::mock().named("test_async_fn"))
88-
.enter(span::mock().named("test_async_fn"))
89-
.event(event::mock().with_fields(field::mock("awaiting").with_value(&true)))
90-
.exit(span::mock().named("test_async_fn"))
91-
.enter(span::mock().named("test_async_fn"))
92-
.exit(span::mock().named("test_async_fn"))
93-
.drop_span(span::mock().named("test_async_fn"))
94-
.done()
87+
.new_span(span::expect().named("test_async_fn"))
88+
.enter(span::expect().named("test_async_fn"))
89+
.event(event::expect().with_fields(field::expect("awaiting").with_value(&true)))
90+
.exit(span::expect().named("test_async_fn"))
91+
.enter(span::expect().named("test_async_fn"))
92+
.exit(span::expect().named("test_async_fn"))
93+
.drop_span(span::expect().named("test_async_fn"))
94+
.only()
9595
.run_with_handle();
9696
with_default(collector, || {
9797
block_on_future(async { test_async_fn(2).await }).unwrap();
@@ -111,19 +111,19 @@ fn async_fn_nested() {
111111
tracing::trace!(nested = true);
112112
}
113113

114-
let span = span::mock().named("test_async_fns_nested");
115-
let span2 = span::mock().named("test_async_fns_nested_other");
114+
let span = span::expect().named("test_async_fns_nested");
115+
let span2 = span::expect().named("test_async_fns_nested_other");
116116
let (collector, handle) = collector::mock()
117117
.new_span(span.clone())
118118
.enter(span.clone())
119119
.new_span(span2.clone())
120120
.enter(span2.clone())
121-
.event(event::mock().with_fields(field::mock("nested").with_value(&true)))
121+
.event(event::expect().with_fields(field::expect("nested").with_value(&true)))
122122
.exit(span2.clone())
123123
.drop_span(span2)
124124
.exit(span.clone())
125125
.drop_span(span)
126-
.done()
126+
.only()
127127
.run_with_handle();
128128

129129
with_default(collector, || {
@@ -185,29 +185,29 @@ fn async_fn_with_async_trait() {
185185
}
186186
}
187187

188-
let span = span::mock().named("foo");
189-
let span2 = span::mock().named("bar");
190-
let span3 = span::mock().named("baz");
188+
let span = span::expect().named("foo");
189+
let span2 = span::expect().named("bar");
190+
let span3 = span::expect().named("baz");
191191
let (collector, handle) = collector::mock()
192192
.new_span(
193193
span.clone()
194-
.with_field(field::mock("self"))
195-
.with_field(field::mock("v")),
194+
.with_field(field::expect("self"))
195+
.with_field(field::expect("v")),
196196
)
197197
.enter(span.clone())
198198
.new_span(span3.clone())
199199
.enter(span3.clone())
200-
.event(event::mock().with_fields(field::mock("val").with_value(&2u64)))
200+
.event(event::expect().with_fields(field::expect("val").with_value(&2u64)))
201201
.exit(span3.clone())
202202
.drop_span(span3)
203-
.new_span(span2.clone().with_field(field::mock("self")))
203+
.new_span(span2.clone().with_field(field::expect("self")))
204204
.enter(span2.clone())
205-
.event(event::mock().with_fields(field::mock("val").with_value(&5u64)))
205+
.event(event::expect().with_fields(field::expect("val").with_value(&5u64)))
206206
.exit(span2.clone())
207207
.drop_span(span2)
208208
.exit(span.clone())
209209
.drop_span(span)
210-
.done()
210+
.only()
211211
.run_with_handle();
212212

213213
with_default(collector, || {
@@ -243,21 +243,21 @@ fn async_fn_with_async_trait_and_fields_expressions() {
243243
async fn call(&mut self, _v: usize) {}
244244
}
245245

246-
let span = span::mock().named("call");
246+
let span = span::expect().named("call");
247247
let (collector, handle) = collector::mock()
248248
.new_span(
249249
span.clone().with_field(
250-
field::mock("_v")
250+
field::expect("_v")
251251
.with_value(&5usize)
252-
.and(field::mock("test").with_value(&tracing::field::debug(10)))
253-
.and(field::mock("val").with_value(&42u64))
254-
.and(field::mock("val2").with_value(&42u64)),
252+
.and(field::expect("test").with_value(&tracing::field::debug(10)))
253+
.and(field::expect("val").with_value(&42u64))
254+
.and(field::expect("val2").with_value(&42u64)),
255255
),
256256
)
257257
.enter(span.clone())
258258
.exit(span.clone())
259259
.drop_span(span)
260-
.done()
260+
.only()
261261
.run_with_handle();
262262

263263
with_default(collector, || {
@@ -309,26 +309,26 @@ fn async_fn_with_async_trait_and_fields_expressions_with_generic_parameter() {
309309
}
310310

311311
//let span = span::mock().named("call");
312-
let span2 = span::mock().named("call_with_self");
313-
let span3 = span::mock().named("call_with_mut_self");
314-
let span4 = span::mock().named("sync_fun");
312+
let span2 = span::expect().named("call_with_self");
313+
let span3 = span::expect().named("call_with_mut_self");
314+
let span4 = span::expect().named("sync_fun");
315315
let (collector, handle) = collector::mock()
316316
/*.new_span(span.clone()
317317
.with_field(
318-
field::mock("Self").with_value(&"TestImpler")))
318+
field::expect("Self").with_value(&"TestImpler")))
319319
.enter(span.clone())
320320
.exit(span.clone())
321321
.drop_span(span)*/
322322
.new_span(
323323
span2
324324
.clone()
325-
.with_field(field::mock("Self").with_value(&std::any::type_name::<TestImpl>())),
325+
.with_field(field::expect("Self").with_value(&std::any::type_name::<TestImpl>())),
326326
)
327327
.enter(span2.clone())
328328
.new_span(
329329
span4
330330
.clone()
331-
.with_field(field::mock("Self").with_value(&std::any::type_name::<TestImpl>())),
331+
.with_field(field::expect("Self").with_value(&std::any::type_name::<TestImpl>())),
332332
)
333333
.enter(span4.clone())
334334
.exit(span4)
@@ -337,12 +337,12 @@ fn async_fn_with_async_trait_and_fields_expressions_with_generic_parameter() {
337337
.new_span(
338338
span3
339339
.clone()
340-
.with_field(field::mock("Self").with_value(&std::any::type_name::<TestImpl>())),
340+
.with_field(field::expect("Self").with_value(&std::any::type_name::<TestImpl>())),
341341
)
342342
.enter(span3.clone())
343343
.exit(span3.clone())
344344
.drop_span(span3)
345-
.done()
345+
.only()
346346
.run_with_handle();
347347

348348
with_default(collector, || {
@@ -377,13 +377,13 @@ fn out_of_scope_fields() {
377377
}
378378
}
379379

380-
let span = span::mock().named("call");
380+
let span = span::expect().named("call");
381381
let (collector, handle) = collector::mock()
382382
.new_span(span.clone())
383383
.enter(span.clone())
384384
.exit(span.clone())
385385
.drop_span(span)
386-
.done()
386+
.only()
387387
.run_with_handle();
388388

389389
with_default(collector, || {
@@ -408,8 +408,8 @@ fn manual_impl_future() {
408408
}
409409
}
410410

411-
let span = span::mock().named("manual_impl_future");
412-
let poll_event = || event::mock().with_fields(field::mock("poll").with_value(&true));
411+
let span = span::expect().named("manual_impl_future");
412+
let poll_event = || event::expect().with_fields(field::expect("poll").with_value(&true));
413413

414414
let (collector, handle) = collector::mock()
415415
// await manual_impl_future
@@ -418,7 +418,7 @@ fn manual_impl_future() {
418418
.event(poll_event())
419419
.exit(span.clone())
420420
.drop_span(span)
421-
.done()
421+
.only()
422422
.run_with_handle();
423423

424424
with_default(collector, || {
@@ -439,8 +439,8 @@ fn manual_box_pin() {
439439
})
440440
}
441441

442-
let span = span::mock().named("manual_box_pin");
443-
let poll_event = || event::mock().with_fields(field::mock("poll").with_value(&true));
442+
let span = span::expect().named("manual_box_pin");
443+
let poll_event = || event::expect().with_fields(field::expect("poll").with_value(&true));
444444

445445
let (collector, handle) = collector::mock()
446446
// await manual_box_pin
@@ -449,7 +449,7 @@ fn manual_box_pin() {
449449
.event(poll_event())
450450
.exit(span.clone())
451451
.drop_span(span)
452-
.done()
452+
.only()
453453
.run_with_handle();
454454

455455
with_default(collector, || {

tracing-attributes/tests/destructuring.rs

Lines changed: 27 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -7,21 +7,21 @@ fn destructure_tuples() {
77
#[instrument]
88
fn my_fn((arg1, arg2): (usize, usize)) {}
99

10-
let span = span::mock().named("my_fn");
10+
let span = span::expect().named("my_fn");
1111

1212
let (collector, handle) = collector::mock()
1313
.new_span(
1414
span.clone().with_field(
15-
field::mock("arg1")
15+
field::expect("arg1")
1616
.with_value(&format_args!("1"))
17-
.and(field::mock("arg2").with_value(&format_args!("2")))
17+
.and(field::expect("arg2").with_value(&format_args!("2")))
1818
.only(),
1919
),
2020
)
2121
.enter(span.clone())
2222
.exit(span.clone())
2323
.drop_span(span)
24-
.done()
24+
.only()
2525
.run_with_handle();
2626

2727
with_default(collector, || {
@@ -36,23 +36,23 @@ fn destructure_nested_tuples() {
3636
#[instrument]
3737
fn my_fn(((arg1, arg2), (arg3, arg4)): ((usize, usize), (usize, usize))) {}
3838

39-
let span = span::mock().named("my_fn");
39+
let span = span::expect().named("my_fn");
4040

4141
let (collector, handle) = collector::mock()
4242
.new_span(
4343
span.clone().with_field(
44-
field::mock("arg1")
44+
field::expect("arg1")
4545
.with_value(&format_args!("1"))
46-
.and(field::mock("arg2").with_value(&format_args!("2")))
47-
.and(field::mock("arg3").with_value(&format_args!("3")))
48-
.and(field::mock("arg4").with_value(&format_args!("4")))
46+
.and(field::expect("arg2").with_value(&format_args!("2")))
47+
.and(field::expect("arg3").with_value(&format_args!("3")))
48+
.and(field::expect("arg4").with_value(&format_args!("4")))
4949
.only(),
5050
),
5151
)
5252
.enter(span.clone())
5353
.exit(span.clone())
5454
.drop_span(span)
55-
.done()
55+
.only()
5656
.run_with_handle();
5757

5858
with_default(collector, || {
@@ -67,17 +67,17 @@ fn destructure_refs() {
6767
#[instrument]
6868
fn my_fn(&arg1: &usize) {}
6969

70-
let span = span::mock().named("my_fn");
70+
let span = span::expect().named("my_fn");
7171

7272
let (collector, handle) = collector::mock()
7373
.new_span(
7474
span.clone()
75-
.with_field(field::mock("arg1").with_value(&1usize).only()),
75+
.with_field(field::expect("arg1").with_value(&1usize).only()),
7676
)
7777
.enter(span.clone())
7878
.exit(span.clone())
7979
.drop_span(span)
80-
.done()
80+
.only()
8181
.run_with_handle();
8282

8383
with_default(collector, || {
@@ -94,21 +94,21 @@ fn destructure_tuple_structs() {
9494
#[instrument]
9595
fn my_fn(Foo(arg1, arg2): Foo) {}
9696

97-
let span = span::mock().named("my_fn");
97+
let span = span::expect().named("my_fn");
9898

9999
let (collector, handle) = collector::mock()
100100
.new_span(
101101
span.clone().with_field(
102-
field::mock("arg1")
102+
field::expect("arg1")
103103
.with_value(&format_args!("1"))
104-
.and(field::mock("arg2").with_value(&format_args!("2")))
104+
.and(field::expect("arg2").with_value(&format_args!("2")))
105105
.only(),
106106
),
107107
)
108108
.enter(span.clone())
109109
.exit(span.clone())
110110
.drop_span(span)
111-
.done()
111+
.only()
112112
.run_with_handle();
113113

114114
with_default(collector, || {
@@ -135,21 +135,21 @@ fn destructure_structs() {
135135
let _ = (arg1, arg2);
136136
}
137137

138-
let span = span::mock().named("my_fn");
138+
let span = span::expect().named("my_fn");
139139

140140
let (collector, handle) = collector::mock()
141141
.new_span(
142142
span.clone().with_field(
143-
field::mock("arg1")
143+
field::expect("arg1")
144144
.with_value(&format_args!("1"))
145-
.and(field::mock("arg2").with_value(&format_args!("2")))
145+
.and(field::expect("arg2").with_value(&format_args!("2")))
146146
.only(),
147147
),
148148
)
149149
.enter(span.clone())
150150
.exit(span.clone())
151151
.drop_span(span)
152-
.done()
152+
.only()
153153
.run_with_handle();
154154

155155
with_default(collector, || {
@@ -180,23 +180,23 @@ fn destructure_everything() {
180180
let _ = (arg1, arg2, arg3, arg4);
181181
}
182182

183-
let span = span::mock().named("my_fn");
183+
let span = span::expect().named("my_fn");
184184

185185
let (collector, handle) = collector::mock()
186186
.new_span(
187187
span.clone().with_field(
188-
field::mock("arg1")
188+
field::expect("arg1")
189189
.with_value(&format_args!("1"))
190-
.and(field::mock("arg2").with_value(&format_args!("2")))
191-
.and(field::mock("arg3").with_value(&format_args!("3")))
192-
.and(field::mock("arg4").with_value(&format_args!("4")))
190+
.and(field::expect("arg2").with_value(&format_args!("2")))
191+
.and(field::expect("arg3").with_value(&format_args!("3")))
192+
.and(field::expect("arg4").with_value(&format_args!("4")))
193193
.only(),
194194
),
195195
)
196196
.enter(span.clone())
197197
.exit(span.clone())
198198
.drop_span(span)
199-
.done()
199+
.only()
200200
.run_with_handle();
201201

202202
with_default(collector, || {

0 commit comments

Comments
 (0)