1 #![deny(warnings)]
2 // We call all macros in this module with `no_implicit_prelude` to ensure they do not depend on the standard prelude.
3 #![no_implicit_prelude]
4 extern crate tracing;
5 #[cfg(target_arch = "wasm32")]
6 extern crate wasm_bindgen_test;
7 
8 // TODO: remove this once https://github.com/tokio-rs/tracing/pull/2675#issuecomment-1667628907 is resolved
9 #[cfg(target_arch = "wasm32")]
10 use ::core::option::Option::None;
11 
12 use tracing::{
13     callsite, debug, debug_span, enabled, error, error_span, event, event_enabled, info, info_span,
14     span, span_enabled, trace, trace_span, warn, warn_span, Level,
15 };
16 
17 // Tests that macros work across various invocation syntax.
18 //
19 // These are quite repetitive, and _could_ be generated by a macro. However,
20 // they're compile-time tests, so I want to get line numbers etc out of
21 // failures, and producing them with a macro would muddy the waters a bit.
22 
23 #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test::wasm_bindgen_test)]
24 #[test]
span()25 fn span() {
26     span!(target: "foo_events", Level::DEBUG, "foo", bar.baz = ?2, quux = %3, quuux = 4);
27     span!(target: "foo_events", Level::DEBUG, "foo", bar.baz = 2, quux = 3);
28     span!(target: "foo_events", Level::DEBUG, "foo", bar.baz = 2, quux = 4,);
29     span!(target: "foo_events", Level::DEBUG, "foo");
30     span!(target: "foo_events", Level::DEBUG, "bar",);
31     span!(Level::DEBUG, "foo", bar.baz = 2, quux = 3);
32     span!(Level::DEBUG, "foo", bar.baz = 2, quux = 4,);
33     span!(Level::DEBUG, "foo", bar.baz = 2, quux = 3);
34     span!(Level::DEBUG, "foo", bar.baz = 2, quux = 4,);
35     span!(Level::DEBUG, "foo", bar.baz = ?2);
36     span!(Level::DEBUG, "foo", bar.baz = %2);
37     span!(Level::DEBUG, "foo");
38     span!(Level::DEBUG, "bar",);
39 }
40 
41 #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test::wasm_bindgen_test)]
42 #[test]
trace_span()43 fn trace_span() {
44     trace_span!(target: "foo_events", "foo", bar.baz = ?2, quux = %3, quuux = 4);
45     trace_span!(target: "foo_events", "foo", bar.baz = 2, quux = 3);
46     trace_span!(target: "foo_events", "foo", bar.baz = 2, quux = 4,);
47     trace_span!(target: "foo_events", "foo");
48     trace_span!(target: "foo_events", "bar",);
49     trace_span!("foo", bar.baz = 2, quux = 3);
50     trace_span!("foo", bar.baz = 2, quux = 4,);
51     trace_span!("foo", bar.baz = ?2);
52     trace_span!("foo", bar.baz = %2);
53     trace_span!("bar");
54     trace_span!("bar",);
55 }
56 
57 #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test::wasm_bindgen_test)]
58 #[test]
debug_span()59 fn debug_span() {
60     debug_span!(target: "foo_events", "foo", bar.baz = ?2, quux = %3, quuux = 4);
61     debug_span!(target: "foo_events", "foo", bar.baz = 2, quux = 3);
62     debug_span!(target: "foo_events", "foo", bar.baz = 2, quux = 4,);
63     debug_span!(target: "foo_events", "foo");
64     debug_span!(target: "foo_events", "bar",);
65     debug_span!("foo", bar.baz = 2, quux = 3);
66     debug_span!("foo", bar.baz = 2, quux = 4,);
67     debug_span!("foo", bar.baz = ?2);
68     debug_span!("foo", bar.baz = %2);
69     debug_span!("bar");
70     debug_span!("bar",);
71 }
72 
73 #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test::wasm_bindgen_test)]
74 #[test]
info_span()75 fn info_span() {
76     info_span!(target: "foo_events", "foo", bar.baz = ?2, quux = %3, quuux = 4);
77     info_span!(target: "foo_events", "foo", bar.baz = 2, quux = 3);
78     info_span!(target: "foo_events", "foo", bar.baz = 2, quux = 4,);
79     info_span!(target: "foo_events", "foo");
80     info_span!(target: "foo_events", "bar",);
81     info_span!("foo", bar.baz = 2, quux = 3);
82     info_span!("foo", bar.baz = 2, quux = 4,);
83     info_span!("foo", bar.baz = ?2);
84     info_span!("foo", bar.baz = %2);
85     info_span!("bar");
86     info_span!("bar",);
87 }
88 
89 #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test::wasm_bindgen_test)]
90 #[test]
warn_span()91 fn warn_span() {
92     warn_span!(target: "foo_events", "foo", bar.baz = ?2, quux = %3, quuux = 4);
93     warn_span!(target: "foo_events", "foo", bar.baz = 2, quux = 3);
94     warn_span!(target: "foo_events", "foo", bar.baz = 2, quux = 4,);
95     warn_span!(target: "foo_events", "foo");
96     warn_span!(target: "foo_events", "bar",);
97     warn_span!("foo", bar.baz = 2, quux = 3);
98     warn_span!("foo", bar.baz = 2, quux = 4,);
99     warn_span!("foo", bar.baz = ?2);
100     warn_span!("foo", bar.baz = %2);
101     warn_span!("bar");
102     warn_span!("bar",);
103 }
104 
105 #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test::wasm_bindgen_test)]
106 #[test]
error_span()107 fn error_span() {
108     error_span!(target: "foo_events", "foo", bar.baz = ?2, quux = %3, quuux = 4);
109     error_span!(target: "foo_events", "foo", bar.baz = 2, quux = 3);
110     error_span!(target: "foo_events", "foo", bar.baz = 2, quux = 4,);
111     error_span!(target: "foo_events", "foo");
112     error_span!(target: "foo_events", "bar",);
113     error_span!("foo", bar.baz = 2, quux = 3);
114     error_span!("foo", bar.baz = 2, quux = 4,);
115     error_span!("foo", bar.baz = ?2);
116     error_span!("foo", bar.baz = %2);
117     error_span!("bar");
118     error_span!("bar",);
119 }
120 
121 #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test::wasm_bindgen_test)]
122 #[test]
span_root()123 fn span_root() {
124     span!(target: "foo_events", parent: ::core::option::Option::None, Level::TRACE, "foo", bar.baz = 2, quux = 3);
125     span!(target: "foo_events", parent: ::core::option::Option::None, Level::TRACE, "foo", bar.baz = 2, quux = 3);
126     span!(target: "foo_events", parent: ::core::option::Option::None, Level::TRACE, "foo", bar.baz = 2, quux = 4,);
127     span!(target: "foo_events", parent: ::core::option::Option::None, Level::TRACE, "foo");
128     span!(target: "foo_events", parent: ::core::option::Option::None, Level::TRACE, "bar",);
129     span!(
130         parent: ::core::option::Option::None,
131         Level::DEBUG,
132         "foo",
133         bar.baz = 2,
134         quux = 3
135     );
136     span!(
137         parent: ::core::option::Option::None,
138         Level::DEBUG,
139         "foo",
140         bar.baz = 2,
141         quux = 4,
142     );
143     span!(parent: ::core::option::Option::None, Level::DEBUG, "foo");
144     span!(parent: ::core::option::Option::None, Level::DEBUG, "bar",);
145 }
146 
147 #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test::wasm_bindgen_test)]
148 #[test]
trace_span_root()149 fn trace_span_root() {
150     trace_span!(target: "foo_events", parent: ::core::option::Option::None, "foo", bar.baz = 2, quux = 3);
151     trace_span!(target: "foo_events", parent: ::core::option::Option::None, "foo", bar.baz = 2, quux = 4,);
152     trace_span!(target: "foo_events", parent: ::core::option::Option::None, "foo");
153     trace_span!(target: "foo_events", parent: ::core::option::Option::None, "bar",);
154     trace_span!(
155         parent: ::core::option::Option::None,
156         "foo",
157         bar.baz = 2,
158         quux = 3
159     );
160     trace_span!(
161         parent: ::core::option::Option::None,
162         "foo",
163         bar.baz = 2,
164         quux = 4,
165     );
166     trace_span!(parent: ::core::option::Option::None, "foo");
167     trace_span!(parent: ::core::option::Option::None, "bar",);
168 }
169 
170 #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test::wasm_bindgen_test)]
171 #[test]
debug_span_root()172 fn debug_span_root() {
173     debug_span!(target: "foo_events", parent: ::core::option::Option::None, "foo", bar.baz = 2, quux = 3);
174     debug_span!(target: "foo_events", parent: ::core::option::Option::None, "foo", bar.baz = 2, quux = 4,);
175     debug_span!(target: "foo_events", parent: ::core::option::Option::None, "foo");
176     debug_span!(target: "foo_events", parent: ::core::option::Option::None, "bar",);
177     debug_span!(
178         parent: ::core::option::Option::None,
179         "foo",
180         bar.baz = 2,
181         quux = 3
182     );
183     debug_span!(
184         parent: ::core::option::Option::None,
185         "foo",
186         bar.baz = 2,
187         quux = 4,
188     );
189     debug_span!(parent: ::core::option::Option::None, "foo");
190     debug_span!(parent: ::core::option::Option::None, "bar",);
191 }
192 
193 #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test::wasm_bindgen_test)]
194 #[test]
info_span_root()195 fn info_span_root() {
196     info_span!(target: "foo_events", parent: ::core::option::Option::None, "foo", bar.baz = 2, quux = 3);
197     info_span!(target: "foo_events", parent: ::core::option::Option::None, "foo", bar.baz = 2, quux = 4,);
198     info_span!(target: "foo_events", parent: ::core::option::Option::None, "foo");
199     info_span!(target: "foo_events", parent: ::core::option::Option::None, "bar",);
200     info_span!(
201         parent: ::core::option::Option::None,
202         "foo",
203         bar.baz = 2,
204         quux = 3
205     );
206     info_span!(
207         parent: ::core::option::Option::None,
208         "foo",
209         bar.baz = 2,
210         quux = 4,
211     );
212     info_span!(parent: ::core::option::Option::None, "foo");
213     info_span!(parent: ::core::option::Option::None, "bar",);
214 }
215 
216 #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test::wasm_bindgen_test)]
217 #[test]
warn_span_root()218 fn warn_span_root() {
219     warn_span!(target: "foo_events", parent: ::core::option::Option::None, "foo", bar.baz = 2, quux = 3);
220     warn_span!(target: "foo_events", parent: ::core::option::Option::None, "foo", bar.baz = 2, quux = 4,);
221     warn_span!(target: "foo_events", parent: ::core::option::Option::None, "foo");
222     warn_span!(target: "foo_events", parent: ::core::option::Option::None, "bar",);
223     warn_span!(
224         parent: ::core::option::Option::None,
225         "foo",
226         bar.baz = 2,
227         quux = 3
228     );
229     warn_span!(
230         parent: ::core::option::Option::None,
231         "foo",
232         bar.baz = 2,
233         quux = 4,
234     );
235     warn_span!(parent: ::core::option::Option::None, "foo");
236     warn_span!(parent: ::core::option::Option::None, "bar",);
237 }
238 
239 #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test::wasm_bindgen_test)]
240 #[test]
error_span_root()241 fn error_span_root() {
242     error_span!(target: "foo_events", parent: ::core::option::Option::None, "foo", bar.baz = 2, quux = 3);
243     error_span!(target: "foo_events", parent: ::core::option::Option::None, "foo", bar.baz = 2, quux = 4,);
244     error_span!(target: "foo_events", parent: ::core::option::Option::None, "foo");
245     error_span!(target: "foo_events", parent: ::core::option::Option::None, "bar",);
246     error_span!(
247         parent: ::core::option::Option::None,
248         "foo",
249         bar.baz = 2,
250         quux = 3
251     );
252     error_span!(
253         parent: ::core::option::Option::None,
254         "foo",
255         bar.baz = 2,
256         quux = 4,
257     );
258     error_span!(parent: ::core::option::Option::None, "foo");
259     error_span!(parent: ::core::option::Option::None, "bar",);
260 }
261 
262 #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test::wasm_bindgen_test)]
263 #[test]
span_with_parent()264 fn span_with_parent() {
265     let p = span!(Level::TRACE, "im_a_parent!");
266     span!(target: "foo_events", parent: &p, Level::TRACE, "foo", bar.baz = 2, quux = 3);
267     span!(target: "foo_events", parent: &p, Level::TRACE, "foo", bar.baz = 2, quux = 4,);
268     span!(target: "foo_events", parent: &p, Level::TRACE, "foo");
269     span!(target: "foo_events", parent: &p, Level::TRACE, "bar",);
270     span!(parent: &p, Level::DEBUG, "foo", bar.baz = 2, quux = 3);
271     span!(parent: &p, Level::DEBUG, "foo", bar.baz = 2, quux = 4,);
272     span!(parent: &p, Level::DEBUG, "foo");
273     span!(parent: &p, Level::DEBUG, "bar",);
274 }
275 
276 #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test::wasm_bindgen_test)]
277 #[test]
trace_span_with_parent()278 fn trace_span_with_parent() {
279     let p = span!(Level::TRACE, "im_a_parent!");
280     trace_span!(target: "foo_events", parent: &p, "foo", bar.baz = 2, quux = 3);
281     trace_span!(target: "foo_events", parent: &p, "foo", bar.baz = 2, quux = 4,);
282     trace_span!(target: "foo_events", parent: &p, "foo");
283     trace_span!(target: "foo_events", parent: &p, "bar",);
284 
285     trace_span!(parent: &p, "foo", bar.baz = 2, quux = 3);
286     trace_span!(parent: &p, "foo", bar.baz = 2, quux = 4,);
287 
288     trace_span!(parent: &p, "foo");
289     trace_span!(parent: &p, "bar",);
290 }
291 
292 #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test::wasm_bindgen_test)]
293 #[test]
debug_span_with_parent()294 fn debug_span_with_parent() {
295     let p = span!(Level::TRACE, "im_a_parent!");
296     debug_span!(target: "foo_events", parent: &p, "foo", bar.baz = 2, quux = 3);
297     debug_span!(target: "foo_events", parent: &p, "foo", bar.baz = 2, quux = 4,);
298     debug_span!(target: "foo_events", parent: &p, "foo");
299     debug_span!(target: "foo_events", parent: &p, "bar",);
300 
301     debug_span!(parent: &p, "foo", bar.baz = 2, quux = 3);
302     debug_span!(parent: &p, "foo", bar.baz = 2, quux = 4,);
303 
304     debug_span!(parent: &p, "foo");
305     debug_span!(parent: &p, "bar",);
306 }
307 
308 #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test::wasm_bindgen_test)]
309 #[test]
info_span_with_parent()310 fn info_span_with_parent() {
311     let p = span!(Level::TRACE, "im_a_parent!");
312     info_span!(target: "foo_events", parent: &p, "foo", bar.baz = 2, quux = 3);
313     info_span!(target: "foo_events", parent: &p, "foo", bar.baz = 2, quux = 4,);
314     info_span!(target: "foo_events", parent: &p, "foo");
315     info_span!(target: "foo_events", parent: &p, "bar",);
316 
317     info_span!(parent: &p, "foo", bar.baz = 2, quux = 3);
318     info_span!(parent: &p, "foo", bar.baz = 2, quux = 4,);
319 
320     info_span!(parent: &p, "foo");
321     info_span!(parent: &p, "bar",);
322 }
323 
324 #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test::wasm_bindgen_test)]
325 #[test]
warn_span_with_parent()326 fn warn_span_with_parent() {
327     let p = span!(Level::TRACE, "im_a_parent!");
328     warn_span!(target: "foo_events", parent: &p, "foo", bar.baz = 2, quux = 3);
329     warn_span!(target: "foo_events", parent: &p, "foo", bar.baz = 2, quux = 4,);
330     warn_span!(target: "foo_events", parent: &p, "foo");
331     warn_span!(target: "foo_events", parent: &p, "bar",);
332 
333     warn_span!(parent: &p, "foo", bar.baz = 2, quux = 3);
334     warn_span!(parent: &p, "foo", bar.baz = 2, quux = 4,);
335 
336     warn_span!(parent: &p, "foo");
337     warn_span!(parent: &p, "bar",);
338 }
339 
340 #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test::wasm_bindgen_test)]
341 #[test]
error_span_with_parent()342 fn error_span_with_parent() {
343     let p = span!(Level::TRACE, "im_a_parent!");
344     error_span!(target: "foo_events", parent: &p, "foo", bar.baz = 2, quux = 3);
345     error_span!(target: "foo_events", parent: &p, "foo", bar.baz = 2, quux = 4,);
346     error_span!(target: "foo_events", parent: &p, "foo");
347     error_span!(target: "foo_events", parent: &p, "bar",);
348 
349     error_span!(parent: &p, "foo", bar.baz = 2, quux = 3);
350     error_span!(parent: &p, "foo", bar.baz = 2, quux = 4,);
351 
352     error_span!(parent: &p, "foo");
353     error_span!(parent: &p, "bar",);
354 }
355 
356 #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test::wasm_bindgen_test)]
357 #[test]
span_with_non_rust_symbol()358 fn span_with_non_rust_symbol() {
359     span!(Level::TRACE, "non-rust", "guid:x-request-id" = ?"abcdef", "more {}", 42);
360     span!(Level::TRACE, "non-rust", "guid:x-request-id" = %"abcdef", "more {}", 51);
361     span!(
362         Level::TRACE,
363         "non-rust",
364         "guid:x-request-id" = "abcdef",
365         "more {}",
366         60
367     );
368     span!(Level::TRACE, "non-rust", "guid:x-request-id" = ?"abcdef");
369     span!(Level::TRACE, "non-rust", "guid:x-request-id" = %"abcdef");
370     span!(Level::TRACE, "non-rust", "guid:x-request-id" = "abcdef");
371 }
372 
373 #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test::wasm_bindgen_test)]
374 #[test]
large_span()375 fn large_span() {
376     span!(
377         Level::TRACE,
378         "spans with more than 32 fields have been supported since #2508",
379         a = 1,
380         b = 2,
381         c = 3,
382         d = 4,
383         e = 5,
384         f = 6,
385         g = 7,
386         h = 8,
387         i = 9,
388         j = 10,
389         k = 11,
390         l = 12,
391         m = 13,
392         n = 14,
393         o = 15,
394         p = 16,
395         q = 17,
396         r = 18,
397         s = 19,
398         t = 20,
399         u = 21,
400         v = 22,
401         w = 23,
402         x = 24,
403         y = 25,
404         z = 26,
405         aa = 27,
406         bb = 28,
407         cc = 29,
408         dd = 30,
409         ee = 31,
410         ff = 32,
411         gg = 33
412     );
413 }
414 
415 #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test::wasm_bindgen_test)]
416 #[test]
event()417 fn event() {
418     event!(Level::DEBUG, foo = ?3, bar.baz = %2, quux = false);
419     event!(Level::DEBUG, foo = 3, bar.baz = 2, quux = false);
420     event!(Level::DEBUG, foo = 3, bar.baz = 3,);
421     event!(Level::DEBUG, "foo");
422     event!(Level::DEBUG, "foo: {}", 3);
423     event!(Level::INFO, foo = ?3, bar.baz = %2, quux = false, "hello world {:?}", 42);
424     event!(
425         Level::INFO,
426         foo = 3,
427         bar.baz = 2,
428         quux = false,
429         "hello world {:?}",
430         42
431     );
432     event!(Level::INFO, foo = 3, bar.baz = 3, "hello world {:?}", 42,);
433     event!(Level::DEBUG, { foo = 3, bar.baz = 80 }, "quux");
434     event!(Level::DEBUG, { foo = 2, bar.baz = 79 }, "quux {:?}", true);
435     event!(Level::DEBUG, { foo = 2, bar.baz = 79 }, "quux {:?}, {quux}", true, quux = false);
436     event!(Level::DEBUG, { foo = ?2, bar.baz = %78 }, "quux");
437     event!(target: "foo_events", Level::DEBUG, foo = 3, bar.baz = 2, quux = false);
438     event!(target: "foo_events", Level::DEBUG, foo = 3, bar.baz = 3,);
439     event!(target: "foo_events", Level::DEBUG, "foo");
440     event!(target: "foo_events", Level::DEBUG, "foo: {}", 3);
441     event!(target: "foo_events", Level::DEBUG, { foo = 3, bar.baz = 80 }, "quux");
442     event!(target: "foo_events", Level::DEBUG, { foo = 2, bar.baz = 79 }, "quux {:?}", true);
443     event!(target: "foo_events", Level::DEBUG, { foo = 2, bar.baz = 79 }, "quux {:?}, {quux}", true, quux = false);
444     event!(target: "foo_events", Level::DEBUG, { foo = 2, bar.baz = 78, }, "quux");
445     let foo = 1;
446     event!(Level::DEBUG, ?foo);
447     event!(Level::DEBUG, %foo);
448     event!(Level::DEBUG, foo);
449 }
450 
451 #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test::wasm_bindgen_test)]
452 #[test]
enabled()453 fn enabled() {
454     enabled!(Level::DEBUG, foo, bar.baz, quux,);
455     enabled!(Level::DEBUG, message);
456     enabled!(Level::INFO, foo, bar.baz, quux, message,);
457     enabled!(Level::INFO, foo, bar., message,);
458     enabled!(Level::DEBUG, foo);
459 
460     enabled!(Level::DEBUG);
461     enabled!(target: "rando", Level::DEBUG);
462     enabled!(target: "rando", Level::DEBUG, field);
463 }
464 
465 #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test::wasm_bindgen_test)]
466 #[test]
span_enabled()467 fn span_enabled() {
468     span_enabled!(Level::DEBUG, foo, bar.baz, quux,);
469     span_enabled!(Level::DEBUG, message);
470     span_enabled!(Level::INFO, foo, bar.baz, quux, message,);
471     span_enabled!(Level::INFO, foo, bar., message,);
472     span_enabled!(Level::DEBUG, foo);
473 
474     span_enabled!(Level::DEBUG);
475     span_enabled!(target: "rando", Level::DEBUG);
476     span_enabled!(target: "rando", Level::DEBUG, field);
477 }
478 
479 #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test::wasm_bindgen_test)]
480 #[test]
event_enabled()481 fn event_enabled() {
482     event_enabled!(Level::DEBUG, foo, bar.baz, quux,);
483     event_enabled!(Level::DEBUG, message);
484     event_enabled!(Level::INFO, foo, bar.baz, quux, message,);
485     event_enabled!(Level::INFO, foo, bar., message,);
486     event_enabled!(Level::DEBUG, foo);
487 
488     event_enabled!(Level::DEBUG);
489     event_enabled!(target: "rando", Level::DEBUG);
490     event_enabled!(target: "rando", Level::DEBUG, field);
491 }
492 
493 #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test::wasm_bindgen_test)]
494 #[test]
locals_with_message()495 fn locals_with_message() {
496     let data = (42, "forty-two");
497     let private_data = "private";
498     let error = "a bad error";
499     event!(Level::ERROR, %error, "Received error");
500     event!(
501         target: "app_events",
502         Level::WARN,
503         private_data,
504         ?data,
505         "App warning: {}",
506         error
507     );
508 }
509 
510 #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test::wasm_bindgen_test)]
511 #[test]
locals_no_message()512 fn locals_no_message() {
513     let data = (42, "forty-two");
514     let private_data = "private";
515     let error = "a bad error";
516     event!(
517         name: "foo",
518         target: "app_events",
519         Level::WARN,
520         private_data,
521         ?data,
522     );
523     event!(
524         target: "app_events",
525         Level::WARN,
526         private_data,
527         ?data,
528     );
529     event!(
530         target: "app_events",
531         Level::WARN,
532         private_data,
533         ?data,
534         error,
535     );
536     event!(
537         target: "app_events",
538         Level::WARN,
539         private_data,
540         ?data,
541         error
542     );
543     event!(Level::WARN, private_data, ?data, error,);
544 }
545 
546 #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test::wasm_bindgen_test)]
547 #[test]
trace()548 fn trace() {
549     trace!(foo = ?3, bar.baz = %2, quux = false);
550     trace!(foo = 3, bar.baz = 2, quux = false);
551     trace!(foo = 3, bar.baz = 3,);
552     trace!("foo");
553     trace!("foo: {}", 3);
554     trace!(foo = ?3, bar.baz = %2, quux = false, "hello world {:?}", 42);
555     trace!(foo = 3, bar.baz = 2, quux = false, "hello world {:?}", 42);
556     trace!(foo = 3, bar.baz = 3, "hello world {:?}", 42,);
557     trace!({ foo = 3, bar.baz = 80 }, "quux");
558     trace!({ foo = 2, bar.baz = 79 }, "quux {:?}", true);
559     trace!({ foo = 2, bar.baz = 79 }, "quux {:?}, {quux}", true, quux = false);
560     trace!({ foo = 2, bar.baz = 78 }, "quux");
561     trace!({ foo = ?2, bar.baz = %78 }, "quux");
562     trace!(name: "foo", foo = 3, bar.baz = 2, quux = false);
563     trace!(name: "foo", target: "foo_events", foo = 3, bar.baz = 2, quux = false);
564     trace!(target: "foo_events", foo = 3, bar.baz = 2, quux = false);
565     trace!(target: "foo_events", foo = 3, bar.baz = 3,);
566     trace!(target: "foo_events", "foo");
567     trace!(target: "foo_events", "foo: {}", 3);
568     trace!(target: "foo_events", { foo = 3, bar.baz = 80 }, "quux");
569     trace!(target: "foo_events", { foo = 2, bar.baz = 79 }, "quux {:?}", true);
570     trace!(target: "foo_events", { foo = 2, bar.baz = 79 }, "quux {:?}, {quux}", true, quux = false);
571     trace!(target: "foo_events", { foo = 2, bar.baz = 78, }, "quux");
572     let foo = 1;
573     trace!(?foo);
574     trace!(%foo);
575     trace!(foo);
576     trace!(name: "foo", ?foo);
577     trace!(name: "foo", %foo);
578     trace!(name: "foo", foo);
579     trace!(name: "foo", ?foo, true, "message");
580     trace!(name: "foo", %foo, true, "message");
581     trace!(name: "foo", foo, true, "message");
582     trace!(target: "foo_events", ?foo);
583     trace!(target: "foo_events", %foo);
584     trace!(target: "foo_events", foo);
585     trace!(target: "foo_events", ?foo, true, "message");
586     trace!(target: "foo_events", %foo, true, "message");
587     trace!(target: "foo_events", foo, true, "message");
588 }
589 
590 #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test::wasm_bindgen_test)]
591 #[test]
debug()592 fn debug() {
593     debug!(foo = ?3, bar.baz = %2, quux = false);
594     debug!(foo = 3, bar.baz = 2, quux = false);
595     debug!(foo = 3, bar.baz = 3,);
596     debug!("foo");
597     debug!("foo: {}", 3);
598     debug!(foo = ?3, bar.baz = %2, quux = false, "hello world {:?}", 42);
599     debug!(foo = 3, bar.baz = 2, quux = false, "hello world {:?}", 42);
600     debug!(foo = 3, bar.baz = 3, "hello world {:?}", 42,);
601     debug!({ foo = 3, bar.baz = 80 }, "quux");
602     debug!({ foo = 2, bar.baz = 79 }, "quux {:?}", true);
603     debug!({ foo = 2, bar.baz = 79 }, "quux {:?}, {quux}", true, quux = false);
604     debug!({ foo = 2, bar.baz = 78 }, "quux");
605     debug!({ foo = ?2, bar.baz = %78 }, "quux");
606     debug!(name: "foo", foo = 3, bar.baz = 2, quux = false);
607     debug!(name: "foo", target: "foo_events", foo = 3, bar.baz = 2, quux = false);
608     debug!(target: "foo_events", foo = 3, bar.baz = 2, quux = false);
609     debug!(target: "foo_events", foo = 3, bar.baz = 3,);
610     debug!(target: "foo_events", "foo");
611     debug!(target: "foo_events", "foo: {}", 3);
612     debug!(target: "foo_events", { foo = 3, bar.baz = 80 }, "quux");
613     debug!(target: "foo_events", { foo = 2, bar.baz = 79 }, "quux {:?}", true);
614     debug!(target: "foo_events", { foo = 2, bar.baz = 79 }, "quux {:?}, {quux}", true, quux = false);
615     debug!(target: "foo_events", { foo = 2, bar.baz = 78, }, "quux");
616     let foo = 1;
617     debug!(?foo);
618     debug!(%foo);
619     debug!(foo);
620     debug!(name: "foo", ?foo);
621     debug!(name: "foo", %foo);
622     debug!(name: "foo", foo);
623     debug!(name: "foo", ?foo, true, "message");
624     debug!(name: "foo", %foo, true, "message");
625     debug!(name: "foo", foo, true, "message");
626     debug!(target: "foo_events", ?foo);
627     debug!(target: "foo_events", %foo);
628     debug!(target: "foo_events", foo);
629     debug!(target: "foo_events", ?foo, true, "message");
630     debug!(target: "foo_events", %foo, true, "message");
631     debug!(target: "foo_events", foo, true, "message");
632 }
633 
634 #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test::wasm_bindgen_test)]
635 #[test]
info()636 fn info() {
637     info!(foo = ?3, bar.baz = %2, quux = false);
638     info!(foo = 3, bar.baz = 2, quux = false);
639     info!(foo = 3, bar.baz = 3,);
640     info!("foo");
641     info!("foo: {}", 3);
642     info!(foo = ?3, bar.baz = %2, quux = false, "hello world {:?}", 42);
643     info!(foo = 3, bar.baz = 2, quux = false, "hello world {:?}", 42);
644     info!(foo = 3, bar.baz = 3, "hello world {:?}", 42,);
645     info!({ foo = 3, bar.baz = 80 }, "quux");
646     info!({ foo = 2, bar.baz = 79 }, "quux {:?}", true);
647     info!({ foo = 2, bar.baz = 79 }, "quux {:?}, {quux}", true, quux = false);
648     info!({ foo = 2, bar.baz = 78 }, "quux");
649     info!({ foo = ?2, bar.baz = %78 }, "quux");
650     info!(name: "foo", foo = 3, bar.baz = 2, quux = false);
651     info!(name: "foo", target: "foo_events", foo = 3, bar.baz = 2, quux = false);
652     info!(target: "foo_events", foo = 3, bar.baz = 2, quux = false);
653     info!(target: "foo_events", foo = 3, bar.baz = 3,);
654     info!(target: "foo_events", "foo");
655     info!(target: "foo_events", "foo: {}", 3);
656     info!(target: "foo_events", { foo = 3, bar.baz = 80 }, "quux");
657     info!(target: "foo_events", { foo = 2, bar.baz = 79 }, "quux {:?}", true);
658     info!(target: "foo_events", { foo = 2, bar.baz = 79 }, "quux {:?}, {quux}", true, quux = false);
659     info!(target: "foo_events", { foo = 2, bar.baz = 78, }, "quux");
660     let foo = 1;
661     info!(?foo);
662     info!(%foo);
663     info!(foo);
664     info!(name: "foo", ?foo);
665     info!(name: "foo", %foo);
666     info!(name: "foo", foo);
667     info!(name: "foo", ?foo, true, "message");
668     info!(name: "foo", %foo, true, "message");
669     info!(name: "foo", foo, true, "message");
670     info!(target: "foo_events", ?foo);
671     info!(target: "foo_events", %foo);
672     info!(target: "foo_events", foo);
673     info!(target: "foo_events", ?foo, true, "message");
674     info!(target: "foo_events", %foo, true, "message");
675     info!(target: "foo_events", foo, true, "message");
676 }
677 
678 #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test::wasm_bindgen_test)]
679 #[test]
warn()680 fn warn() {
681     warn!(foo = ?3, bar.baz = %2, quux = false);
682     warn!(foo = 3, bar.baz = 2, quux = false);
683     warn!(foo = 3, bar.baz = 3,);
684     warn!("foo");
685     warn!("foo: {}", 3);
686     warn!(foo = ?3, bar.baz = %2, quux = false, "hello world {:?}", 42);
687     warn!(foo = 3, bar.baz = 2, quux = false, "hello world {:?}", 42);
688     warn!(foo = 3, bar.baz = 3, "hello world {:?}", 42,);
689     warn!({ foo = 3, bar.baz = 80 }, "quux");
690     warn!({ foo = 2, bar.baz = 79 }, "quux {:?}", true);
691     warn!({ foo = 2, bar.baz = 79 }, "quux {:?}, {quux}", true, quux = false);
692     warn!({ foo = 2, bar.baz = 78 }, "quux");
693     warn!({ foo = ?2, bar.baz = %78 }, "quux");
694     warn!(name: "foo", foo = 3, bar.baz = 2, quux = false);
695     warn!(name: "foo", target: "foo_events", foo = 3, bar.baz = 2, quux = false);
696     warn!(target: "foo_events", foo = 3, bar.baz = 2, quux = false);
697     warn!(target: "foo_events", foo = 3, bar.baz = 3,);
698     warn!(target: "foo_events", "foo");
699     warn!(target: "foo_events", "foo: {}", 3);
700     warn!(target: "foo_events", { foo = 3, bar.baz = 80 }, "quux");
701     warn!(target: "foo_events", { foo = 2, bar.baz = 79 }, "quux {:?}", true);
702     warn!(target: "foo_events", { foo = 2, bar.baz = 79 }, "quux {:?}, {quux}", true, quux = false);
703     warn!(target: "foo_events", { foo = 2, bar.baz = 78, }, "quux");
704     let foo = 1;
705     warn!(?foo);
706     warn!(%foo);
707     warn!(foo);
708     warn!(name: "foo", ?foo);
709     warn!(name: "foo", %foo);
710     warn!(name: "foo", foo);
711     warn!(name: "foo", ?foo, true, "message");
712     warn!(name: "foo", %foo, true, "message");
713     warn!(name: "foo", foo, true, "message");
714     warn!(target: "foo_events", ?foo);
715     warn!(target: "foo_events", %foo);
716     warn!(target: "foo_events", foo);
717     warn!(target: "foo_events", ?foo, true, "message");
718     warn!(target: "foo_events", %foo, true, "message");
719     warn!(target: "foo_events", foo, true, "message");
720 }
721 
722 #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test::wasm_bindgen_test)]
723 #[test]
error()724 fn error() {
725     error!(foo = ?3, bar.baz = %2, quux = false);
726     error!(foo = 3, bar.baz = 2, quux = false);
727     error!(foo = 3, bar.baz = 3,);
728     error!("foo");
729     error!("foo: {}", 3);
730     error!(foo = ?3, bar.baz = %2, quux = false, "hello world {:?}", 42);
731     error!(foo = 3, bar.baz = 2, quux = false, "hello world {:?}", 42);
732     error!(foo = 3, bar.baz = 3, "hello world {:?}", 42,);
733     error!({ foo = 3, bar.baz = 80 }, "quux");
734     error!({ foo = 2, bar.baz = 79 }, "quux {:?}", true);
735     error!({ foo = 2, bar.baz = 79 }, "quux {:?}, {quux}", true, quux = false);
736     error!({ foo = 2, bar.baz = 78, }, "quux");
737     error!({ foo = ?2, bar.baz = %78 }, "quux");
738     error!(name: "foo", foo = 3, bar.baz = 2, quux = false);
739     error!(name: "foo", target: "foo_events", foo = 3, bar.baz = 2, quux = false);
740     error!(target: "foo_events", foo = 3, bar.baz = 2, quux = false);
741     error!(target: "foo_events", foo = 3, bar.baz = 3,);
742     error!(target: "foo_events", "foo");
743     error!(target: "foo_events", "foo: {}", 3);
744     error!(target: "foo_events", { foo = 3, bar.baz = 80 }, "quux");
745     error!(target: "foo_events", { foo = 2, bar.baz = 79 }, "quux {:?}", true);
746     error!(target: "foo_events", { foo = 2, bar.baz = 79 }, "quux {:?}, {quux}", true, quux = false);
747     error!(target: "foo_events", { foo = 2, bar.baz = 78, }, "quux");
748     let foo = 1;
749     error!(?foo);
750     error!(%foo);
751     error!(foo);
752     error!(name: "foo", ?foo);
753     error!(name: "foo", %foo);
754     error!(name: "foo", foo);
755     error!(name: "foo", ?foo, true, "message");
756     error!(name: "foo", %foo, true, "message");
757     error!(name: "foo", foo, true, "message");
758     error!(target: "foo_events", ?foo);
759     error!(target: "foo_events", %foo);
760     error!(target: "foo_events", foo);
761     error!(target: "foo_events", ?foo, true, "message");
762     error!(target: "foo_events", %foo, true, "message");
763     error!(target: "foo_events", foo, true, "message");
764 }
765 
766 #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test::wasm_bindgen_test)]
767 #[test]
event_root()768 fn event_root() {
769     event!(parent: ::core::option::Option::None, Level::DEBUG, foo = ?3, bar.baz = %2, quux = false);
770     event!(
771         parent: ::core::option::Option::None,
772         Level::DEBUG,
773         foo = 3,
774         bar.baz = 2,
775         quux = false
776     );
777     event!(
778         parent: ::core::option::Option::None,
779         Level::DEBUG,
780         foo = 3,
781         bar.baz = 3,
782     );
783     event!(parent: ::core::option::Option::None, Level::DEBUG, "foo");
784     event!(
785         parent: ::core::option::Option::None,
786         Level::DEBUG,
787         "foo: {}",
788         3
789     );
790     event!(parent: ::core::option::Option::None, Level::DEBUG, { foo = 3, bar.baz = 80 }, "quux");
791     event!(parent: ::core::option::Option::None, Level::DEBUG, { foo = 2, bar.baz = 79 }, "quux {:?}", true);
792     event!(parent: ::core::option::Option::None, Level::DEBUG, { foo = 2, bar.baz = 79 }, "quux {:?}, {quux}", true, quux = false);
793     event!(parent: ::core::option::Option::None, Level::DEBUG, { foo = ?2, bar.baz = %78 }, "quux");
794     event!(target: "foo_events", parent: ::core::option::Option::None, Level::DEBUG, foo = 3, bar.baz = 2, quux = false);
795     event!(target: "foo_events", parent: ::core::option::Option::None, Level::DEBUG, foo = 3, bar.baz = 3,);
796     event!(target: "foo_events", parent: ::core::option::Option::None, Level::DEBUG, "foo");
797     event!(target: "foo_events", parent: ::core::option::Option::None, Level::DEBUG, "foo: {}", 3);
798     event!(target: "foo_events", parent: ::core::option::Option::None, Level::DEBUG, { foo = 3, bar.baz = 80 }, "quux");
799     event!(target: "foo_events", parent: ::core::option::Option::None, Level::DEBUG, { foo = 2, bar.baz = 79 }, "quux {:?}", true);
800     event!(target: "foo_events", parent: ::core::option::Option::None, Level::DEBUG, { foo = 2, bar.baz = 79 }, "quux {:?}, {quux}", true, quux = false);
801     event!(target: "foo_events", parent: ::core::option::Option::None, Level::DEBUG, { foo = 2, bar.baz = 78, }, "quux");
802     event!(name: "foo", target: "foo_events", parent: ::core::option::Option::None, Level::DEBUG, foo = 3, bar.baz = 2, quux = false);
803     event!(name: "foo", target: "foo_events", parent: ::core::option::Option::None, Level::DEBUG, foo = 3, bar.baz = 3,);
804     event!(name: "foo", target: "foo_events", parent: ::core::option::Option::None, Level::DEBUG, "foo");
805     event!(name: "foo", target: "foo_events", parent: ::core::option::Option::None, Level::DEBUG, "foo: {}", 3);
806     event!(name: "foo", target: "foo_events", parent: ::core::option::Option::None, Level::DEBUG, { foo = 3, bar.baz = 80 }, "quux");
807     event!(name: "foo", target: "foo_events", parent: ::core::option::Option::None, Level::DEBUG, { foo = 2, bar.baz = 79 }, "quux {:?}", true);
808     event!(name: "foo", target: "foo_events", parent: ::core::option::Option::None, Level::DEBUG, { foo = 2, bar.baz = 79 }, "quux {:?}, {quux}", true, quux = false);
809     event!(name: "foo", target: "foo_events", parent: ::core::option::Option::None, Level::DEBUG, { foo = 2, bar.baz = 78, }, "quux");
810 }
811 
812 #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test::wasm_bindgen_test)]
813 #[test]
trace_root()814 fn trace_root() {
815     trace!(parent: ::core::option::Option::None, foo = ?3, bar.baz = %2, quux = false);
816     trace!(
817         parent: ::core::option::Option::None,
818         foo = 3,
819         bar.baz = 2,
820         quux = false
821     );
822     trace!(parent: ::core::option::Option::None, foo = 3, bar.baz = 3,);
823     trace!(parent: ::core::option::Option::None, "foo");
824     trace!(parent: ::core::option::Option::None, "foo: {}", 3);
825     trace!(parent: ::core::option::Option::None, { foo = 3, bar.baz = 80 }, "quux");
826     trace!(parent: ::core::option::Option::None, { foo = 2, bar.baz = 79 }, "quux {:?}", true);
827     trace!(parent: ::core::option::Option::None, { foo = 2, bar.baz = 79 }, "quux {:?}, {quux}", true, quux = false);
828     trace!(parent: ::core::option::Option::None, { foo = 2, bar.baz = 78 }, "quux");
829     trace!(parent: ::core::option::Option::None, { foo = ?2, bar.baz = %78 }, "quux");
830     trace!(target: "foo_events", parent: ::core::option::Option::None, foo = 3, bar.baz = 2, quux = false);
831     trace!(target: "foo_events", parent: ::core::option::Option::None, foo = 3, bar.baz = 3,);
832     trace!(target: "foo_events", parent: ::core::option::Option::None, "foo");
833     trace!(target: "foo_events", parent: ::core::option::Option::None, "foo: {}", 3);
834     trace!(target: "foo_events", parent: ::core::option::Option::None, { foo = 3, bar.baz = 80 }, "quux");
835     trace!(target: "foo_events", parent: ::core::option::Option::None, { foo = 2, bar.baz = 79 }, "quux {:?}", true);
836     trace!(target: "foo_events", parent: ::core::option::Option::None, { foo = 2, bar.baz = 79 }, "quux {:?}, {quux}", true, quux = false);
837     trace!(target: "foo_events", parent: ::core::option::Option::None, { foo = 2, bar.baz = 78, }, "quux");
838     trace!(name: "foo", target: "foo_events", parent: ::core::option::Option::None, foo = 3, bar.baz = 2, quux = false);
839     trace!(name: "foo", target: "foo_events", parent: ::core::option::Option::None, foo = 3, bar.baz = 3,);
840     trace!(name: "foo", target: "foo_events", parent: ::core::option::Option::None, "foo");
841     trace!(name: "foo", target: "foo_events", parent: ::core::option::Option::None, "foo: {}", 3);
842     trace!(name: "foo", target: "foo_events", parent: ::core::option::Option::None, { foo = 3, bar.baz = 80 }, "quux");
843     trace!(name: "foo", target: "foo_events", parent: ::core::option::Option::None, { foo = 2, bar.baz = 79 }, "quux {:?}", true);
844     trace!(name: "foo", target: "foo_events", parent: ::core::option::Option::None, { foo = 2, bar.baz = 79 }, "quux {:?}, {quux}", true, quux = false);
845     trace!(name: "foo", target: "foo_events", parent: ::core::option::Option::None, { foo = 2, bar.baz = 78, }, "quux");
846 }
847 
848 #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test::wasm_bindgen_test)]
849 #[test]
debug_root()850 fn debug_root() {
851     debug!(parent: ::core::option::Option::None, foo = ?3, bar.baz = %2, quux = false);
852     debug!(
853         parent: ::core::option::Option::None,
854         foo = 3,
855         bar.baz = 2,
856         quux = false
857     );
858     debug!(parent: ::core::option::Option::None, foo = 3, bar.baz = 3,);
859     debug!(parent: ::core::option::Option::None, "foo");
860     debug!(parent: ::core::option::Option::None, "foo: {}", 3);
861     debug!(parent: ::core::option::Option::None, { foo = 3, bar.baz = 80 }, "quux");
862     debug!(parent: ::core::option::Option::None, { foo = 2, bar.baz = 79 }, "quux {:?}", true);
863     debug!(parent: ::core::option::Option::None, { foo = 2, bar.baz = 79 }, "quux {:?}, {quux}", true, quux = false);
864     debug!(parent: ::core::option::Option::None, { foo = 2, bar.baz = 78 }, "quux");
865     debug!(parent: ::core::option::Option::None, { foo = ?2, bar.baz = %78 }, "quux");
866     debug!(target: "foo_events", parent: ::core::option::Option::None, foo = 3, bar.baz = 2, quux = false);
867     debug!(target: "foo_events", parent: ::core::option::Option::None, foo = 3, bar.baz = 3,);
868     debug!(target: "foo_events", parent: ::core::option::Option::None, "foo");
869     debug!(target: "foo_events", parent: ::core::option::Option::None, "foo: {}", 3);
870     debug!(target: "foo_events", parent: ::core::option::Option::None, { foo = 3, bar.baz = 80 }, "quux");
871     debug!(target: "foo_events", parent: ::core::option::Option::None, { foo = 2, bar.baz = 79 }, "quux {:?}", true);
872     debug!(target: "foo_events", parent: ::core::option::Option::None, { foo = 2, bar.baz = 79 }, "quux {:?}, {quux}", true, quux = false);
873     debug!(target: "foo_events", parent: ::core::option::Option::None, { foo = 2, bar.baz = 78, }, "quux");
874     debug!(name: "foo", target: "foo_events", parent: ::core::option::Option::None, foo = 3, bar.baz = 2, quux = false);
875     debug!(name: "foo", target: "foo_events", parent: ::core::option::Option::None, foo = 3, bar.baz = 3,);
876     debug!(name: "foo", target: "foo_events", parent: ::core::option::Option::None, "foo");
877     debug!(name: "foo", target: "foo_events", parent: ::core::option::Option::None, "foo: {}", 3);
878     debug!(name: "foo", target: "foo_events", parent: ::core::option::Option::None, { foo = 3, bar.baz = 80 }, "quux");
879     debug!(name: "foo", target: "foo_events", parent: ::core::option::Option::None, { foo = 2, bar.baz = 79 }, "quux {:?}", true);
880     debug!(name: "foo", target: "foo_events", parent: ::core::option::Option::None, { foo = 2, bar.baz = 79 }, "quux {:?}, {quux}", true, quux = false);
881     debug!(name: "foo", target: "foo_events", parent: ::core::option::Option::None, { foo = 2, bar.baz = 78, }, "quux");
882 }
883 
884 #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test::wasm_bindgen_test)]
885 #[test]
info_root()886 fn info_root() {
887     info!(parent: ::core::option::Option::None, foo = ?3, bar.baz = %2, quux = false);
888     info!(
889         parent: ::core::option::Option::None,
890         foo = 3,
891         bar.baz = 2,
892         quux = false
893     );
894     info!(parent: ::core::option::Option::None, foo = 3, bar.baz = 3,);
895     info!(parent: ::core::option::Option::None, "foo");
896     info!(parent: ::core::option::Option::None, "foo: {}", 3);
897     info!(parent: ::core::option::Option::None, { foo = 3, bar.baz = 80 }, "quux");
898     info!(parent: ::core::option::Option::None, { foo = 2, bar.baz = 79 }, "quux {:?}", true);
899     info!(parent: ::core::option::Option::None, { foo = 2, bar.baz = 79 }, "quux {:?}, {quux}", true, quux = false);
900     info!(parent: ::core::option::Option::None, { foo = 2, bar.baz = 78 }, "quux");
901     info!(parent: ::core::option::Option::None, { foo = ?2, bar.baz = %78 }, "quux");
902     info!(target: "foo_events", parent: ::core::option::Option::None, foo = 3, bar.baz = 2, quux = false);
903     info!(target: "foo_events", parent: ::core::option::Option::None, foo = 3, bar.baz = 3,);
904     info!(target: "foo_events", parent: ::core::option::Option::None, "foo");
905     info!(target: "foo_events", parent: ::core::option::Option::None, "foo: {}", 3);
906     info!(target: "foo_events", parent: ::core::option::Option::None, { foo = 3, bar.baz = 80 }, "quux");
907     info!(target: "foo_events", parent: ::core::option::Option::None, { foo = 2, bar.baz = 79 }, "quux {:?}", true);
908     info!(target: "foo_events", parent: ::core::option::Option::None, { foo = 2, bar.baz = 79 }, "quux {:?}, {quux}", true, quux = false);
909     info!(target: "foo_events", parent: ::core::option::Option::None, { foo = 2, bar.baz = 78, }, "quux");
910     info!(name: "foo", target: "foo_events", parent: ::core::option::Option::None, foo = 3, bar.baz = 2, quux = false);
911     info!(name: "foo", target: "foo_events", parent: ::core::option::Option::None, foo = 3, bar.baz = 3,);
912     info!(name: "foo", target: "foo_events", parent: ::core::option::Option::None, "foo");
913     info!(name: "foo", target: "foo_events", parent: ::core::option::Option::None, "foo: {}", 3);
914     info!(name: "foo", target: "foo_events", parent: ::core::option::Option::None, { foo = 3, bar.baz = 80 }, "quux");
915     info!(name: "foo", target: "foo_events", parent: ::core::option::Option::None, { foo = 2, bar.baz = 79 }, "quux {:?}", true);
916     info!(name: "foo", target: "foo_events", parent: ::core::option::Option::None, { foo = 2, bar.baz = 79 }, "quux {:?}, {quux}", true, quux = false);
917     info!(name: "foo", target: "foo_events", parent: ::core::option::Option::None, { foo = 2, bar.baz = 78, }, "quux");
918 }
919 
920 #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test::wasm_bindgen_test)]
921 #[test]
warn_root()922 fn warn_root() {
923     warn!(parent: ::core::option::Option::None, foo = ?3, bar.baz = %2, quux = false);
924     warn!(
925         parent: ::core::option::Option::None,
926         foo = 3,
927         bar.baz = 2,
928         quux = false
929     );
930     warn!(parent: ::core::option::Option::None, foo = 3, bar.baz = 3,);
931     warn!(parent: ::core::option::Option::None, "foo");
932     warn!(parent: ::core::option::Option::None, "foo: {}", 3);
933     warn!(parent: ::core::option::Option::None, { foo = 3, bar.baz = 80 }, "quux");
934     warn!(parent: ::core::option::Option::None, { foo = 2, bar.baz = 79 }, "quux {:?}", true);
935     warn!(parent: ::core::option::Option::None, { foo = 2, bar.baz = 79 }, "quux {:?}, {quux}", true, quux = false);
936     warn!(parent: ::core::option::Option::None, { foo = 2, bar.baz = 78 }, "quux");
937     warn!(parent: ::core::option::Option::None, { foo = ?2, bar.baz = %78 }, "quux");
938     warn!(target: "foo_events", parent: ::core::option::Option::None, foo = 3, bar.baz = 2, quux = false);
939     warn!(target: "foo_events", parent: ::core::option::Option::None, foo = 3, bar.baz = 3,);
940     warn!(target: "foo_events", parent: ::core::option::Option::None, "foo");
941     warn!(target: "foo_events", parent: ::core::option::Option::None, "foo: {}", 3);
942     warn!(target: "foo_events", parent: ::core::option::Option::None, { foo = 3, bar.baz = 80 }, "quux");
943     warn!(target: "foo_events", parent: ::core::option::Option::None, { foo = 2, bar.baz = 79 }, "quux {:?}", true);
944     warn!(target: "foo_events", parent: ::core::option::Option::None, { foo = 2, bar.baz = 79 }, "quux {:?}, {quux}", true, quux = false);
945     warn!(target: "foo_events", parent: ::core::option::Option::None, { foo = 2, bar.baz = 78, }, "quux");
946     warn!(name: "foo", target: "foo_events", parent: ::core::option::Option::None, foo = 3, bar.baz = 2, quux = false);
947     warn!(name: "foo", target: "foo_events", parent: ::core::option::Option::None, foo = 3, bar.baz = 3,);
948     warn!(name: "foo", target: "foo_events", parent: ::core::option::Option::None, "foo");
949     warn!(name: "foo", target: "foo_events", parent: ::core::option::Option::None, "foo: {}", 3);
950     warn!(name: "foo", target: "foo_events", parent: ::core::option::Option::None, { foo = 3, bar.baz = 80 }, "quux");
951     warn!(name: "foo", target: "foo_events", parent: ::core::option::Option::None, { foo = 2, bar.baz = 79 }, "quux {:?}", true);
952     warn!(name: "foo", target: "foo_events", parent: ::core::option::Option::None, { foo = 2, bar.baz = 79 }, "quux {:?}, {quux}", true, quux = false);
953     warn!(name: "foo", target: "foo_events", parent: ::core::option::Option::None, { foo = 2, bar.baz = 78, }, "quux");
954 }
955 
956 #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test::wasm_bindgen_test)]
957 #[test]
error_root()958 fn error_root() {
959     error!(parent: ::core::option::Option::None, foo = ?3, bar.baz = %2, quux = false);
960     error!(
961         parent: ::core::option::Option::None,
962         foo = 3,
963         bar.baz = 2,
964         quux = false
965     );
966     error!(parent: ::core::option::Option::None, foo = 3, bar.baz = 3,);
967     error!(parent: ::core::option::Option::None, "foo");
968     error!(parent: ::core::option::Option::None, "foo: {}", 3);
969     error!(parent: ::core::option::Option::None, { foo = 3, bar.baz = 80 }, "quux");
970     error!(parent: ::core::option::Option::None, { foo = 2, bar.baz = 79 }, "quux {:?}", true);
971     error!(parent: ::core::option::Option::None, { foo = 2, bar.baz = 79 }, "quux {:?}, {quux}", true, quux = false);
972     error!(parent: ::core::option::Option::None, { foo = 2, bar.baz = 78 }, "quux");
973     error!(parent: ::core::option::Option::None, { foo = ?2, bar.baz = %78 }, "quux");
974     error!(target: "foo_events", parent: ::core::option::Option::None, foo = 3, bar.baz = 2, quux = false);
975     error!(target: "foo_events", parent: ::core::option::Option::None, foo = 3, bar.baz = 3,);
976     error!(target: "foo_events", parent: ::core::option::Option::None, "foo");
977     error!(target: "foo_events", parent: ::core::option::Option::None, "foo: {}", 3);
978     error!(target: "foo_events", parent: ::core::option::Option::None, { foo = 3, bar.baz = 80 }, "quux");
979     error!(target: "foo_events", parent: ::core::option::Option::None, { foo = 2, bar.baz = 79 }, "quux {:?}", true);
980     error!(target: "foo_events", parent: ::core::option::Option::None, { foo = 2, bar.baz = 79 }, "quux {:?}, {quux}", true, quux = false);
981     error!(target: "foo_events", parent: ::core::option::Option::None, { foo = 2, bar.baz = 78, }, "quux");
982     error!(name: "foo", target: "foo_events", parent: ::core::option::Option::None, foo = 3, bar.baz = 2, quux = false);
983     error!(name: "foo", target: "foo_events", parent: ::core::option::Option::None, foo = 3, bar.baz = 3,);
984     error!(name: "foo", target: "foo_events", parent: ::core::option::Option::None, "foo");
985     error!(name: "foo", target: "foo_events", parent: ::core::option::Option::None, "foo: {}", 3);
986     error!(name: "foo", target: "foo_events", parent: ::core::option::Option::None, { foo = 3, bar.baz = 80 }, "quux");
987     error!(name: "foo", target: "foo_events", parent: ::core::option::Option::None, { foo = 2, bar.baz = 79 }, "quux {:?}", true);
988     error!(name: "foo", target: "foo_events", parent: ::core::option::Option::None, { foo = 2, bar.baz = 79 }, "quux {:?}, {quux}", true, quux = false);
989     error!(name: "foo", target: "foo_events", parent: ::core::option::Option::None, { foo = 2, bar.baz = 78, }, "quux");
990 }
991 
992 #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test::wasm_bindgen_test)]
993 #[test]
event_with_parent()994 fn event_with_parent() {
995     let p = span!(Level::TRACE, "im_a_parent!");
996     event!(parent: &p, Level::DEBUG, foo = ?3, bar.baz = %2, quux = false);
997     event!(parent: &p, Level::DEBUG, foo = 3, bar.baz = 2, quux = false);
998     event!(parent: &p, Level::DEBUG, foo = 3, bar.baz = 3,);
999     event!(parent: &p, Level::DEBUG, "foo");
1000     event!(parent: &p, Level::DEBUG, "foo: {}", 3);
1001     event!(parent: &p, Level::DEBUG, { foo = 3, bar.baz = 80 }, "quux");
1002     event!(parent: &p, Level::DEBUG, { foo = 2, bar.baz = 79 }, "quux {:?}", true);
1003     event!(parent: &p, Level::DEBUG, { foo = 2, bar.baz = 79 }, "quux {:?}, {quux}", true, quux = false);
1004     event!(parent: &p, Level::DEBUG, { foo = ?2, bar.baz = %78 }, "quux");
1005     event!(target: "foo_events", parent: &p, Level::DEBUG, foo = 3, bar.baz = 2, quux = false);
1006     event!(target: "foo_events", parent: &p, Level::DEBUG, foo = 3, bar.baz = 3,);
1007     event!(target: "foo_events", parent: &p, Level::DEBUG, "foo");
1008     event!(target: "foo_events", parent: &p, Level::DEBUG, "foo: {}", 3);
1009     event!(target: "foo_events", parent: &p, Level::DEBUG, { foo = 3, bar.baz = 80 }, "quux");
1010     event!(target: "foo_events", parent: &p, Level::DEBUG, { foo = 2, bar.baz = 79 }, "quux {:?}", true);
1011     event!(target: "foo_events", parent: &p, Level::DEBUG, { foo = 2, bar.baz = 79 }, "quux {:?}, {quux}", true, quux = false);
1012     event!(target: "foo_events", parent: &p, Level::DEBUG, { foo = 2, bar.baz = 78, }, "quux");
1013     event!(name: "foo", target: "foo_events", parent: &p, Level::DEBUG, foo = 3, bar.baz = 2, quux = false);
1014     event!(name: "foo", target: "foo_events", parent: &p, Level::DEBUG, foo = 3, bar.baz = 3,);
1015     event!(name: "foo", target: "foo_events", parent: &p, Level::DEBUG, "foo");
1016     event!(name: "foo", target: "foo_events", parent: &p, Level::DEBUG, "foo: {}", 3);
1017     event!(name: "foo", target: "foo_events", parent: &p, Level::DEBUG, { foo = 3, bar.baz = 80 }, "quux");
1018     event!(name: "foo", target: "foo_events", parent: &p, Level::DEBUG, { foo = 2, bar.baz = 79 }, "quux {:?}", true);
1019     event!(name: "foo", target: "foo_events", parent: &p, Level::DEBUG, { foo = 2, bar.baz = 79 }, "quux {:?}, {quux}", true, quux = false);
1020     event!(name: "foo", target: "foo_events", parent: &p, Level::DEBUG, { foo = 2, bar.baz = 78, }, "quux");
1021 }
1022 
1023 #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test::wasm_bindgen_test)]
1024 #[test]
trace_with_parent()1025 fn trace_with_parent() {
1026     let p = span!(Level::TRACE, "im_a_parent!");
1027     trace!(parent: &p, foo = ?3, bar.baz = %2, quux = false);
1028     trace!(parent: &p, foo = 3, bar.baz = 2, quux = false);
1029     trace!(parent: &p, foo = 3, bar.baz = 3,);
1030     trace!(parent: &p, "foo");
1031     trace!(parent: &p, "foo: {}", 3);
1032     trace!(parent: &p, { foo = 3, bar.baz = 80 }, "quux");
1033     trace!(parent: &p, { foo = 2, bar.baz = 79 }, "quux {:?}", true);
1034     trace!(parent: &p, { foo = 2, bar.baz = 79 }, "quux {:?}, {quux}", true, quux = false);
1035     trace!(parent: &p, { foo = 2, bar.baz = 78 }, "quux");
1036     trace!(parent: &p, { foo = ?2, bar.baz = %78 }, "quux");
1037     trace!(target: "foo_events", parent: &p, foo = 3, bar.baz = 2, quux = false);
1038     trace!(target: "foo_events", parent: &p, foo = 3, bar.baz = 3,);
1039     trace!(target: "foo_events", parent: &p, "foo");
1040     trace!(target: "foo_events", parent: &p, "foo: {}", 3);
1041     trace!(target: "foo_events", parent: &p, { foo = 3, bar.baz = 80 }, "quux");
1042     trace!(target: "foo_events", parent: &p, { foo = 2, bar.baz = 79 }, "quux {:?}", true);
1043     trace!(target: "foo_events", parent: &p, { foo = 2, bar.baz = 79 }, "quux {:?}, {quux}", true, quux = false);
1044     trace!(target: "foo_events", parent: &p, { foo = 2, bar.baz = 78, }, "quux");
1045     trace!(name: "foo", target: "foo_events", parent: &p, foo = 3, bar.baz = 2, quux = false);
1046     trace!(name: "foo", target: "foo_events", parent: &p, foo = 3, bar.baz = 3,);
1047     trace!(name: "foo", target: "foo_events", parent: &p, "foo");
1048     trace!(name: "foo", target: "foo_events", parent: &p, "foo: {}", 3);
1049     trace!(name: "foo", target: "foo_events", parent: &p, { foo = 3, bar.baz = 80 }, "quux");
1050     trace!(name: "foo", target: "foo_events", parent: &p, { foo = 2, bar.baz = 79 }, "quux {:?}", true);
1051     trace!(name: "foo", target: "foo_events", parent: &p, { foo = 2, bar.baz = 79 }, "quux {:?}, {quux}", true, quux = false);
1052     trace!(name: "foo", target: "foo_events", parent: &p, { foo = 2, bar.baz = 78, }, "quux");
1053 }
1054 
1055 #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test::wasm_bindgen_test)]
1056 #[test]
debug_with_parent()1057 fn debug_with_parent() {
1058     let p = span!(Level::TRACE, "im_a_parent!");
1059     debug!(parent: &p, foo = ?3, bar.baz = %2, quux = false);
1060     debug!(parent: &p, foo = 3, bar.baz = 2, quux = false);
1061     debug!(parent: &p, foo = 3, bar.baz = 3,);
1062     debug!(parent: &p, "foo");
1063     debug!(parent: &p, "foo: {}", 3);
1064     debug!(parent: &p, { foo = 3, bar.baz = 80 }, "quux");
1065     debug!(parent: &p, { foo = 2, bar.baz = 79 }, "quux {:?}", true);
1066     debug!(parent: &p, { foo = 2, bar.baz = 79 }, "quux {:?}, {quux}", true, quux = false);
1067     debug!(parent: &p, { foo = 2, bar.baz = 78 }, "quux");
1068     debug!(parent: &p, { foo = ?2, bar.baz = %78 }, "quux");
1069     debug!(target: "foo_events", parent: &p, foo = 3, bar.baz = 2, quux = false);
1070     debug!(target: "foo_events", parent: &p, foo = 3, bar.baz = 3,);
1071     debug!(target: "foo_events", parent: &p, "foo");
1072     debug!(target: "foo_events", parent: &p, "foo: {}", 3);
1073     debug!(target: "foo_events", parent: &p, { foo = 3, bar.baz = 80 }, "quux");
1074     debug!(target: "foo_events", parent: &p, { foo = 2, bar.baz = 79 }, "quux {:?}", true);
1075     debug!(target: "foo_events", parent: &p, { foo = 2, bar.baz = 79 }, "quux {:?}, {quux}", true, quux = false);
1076     debug!(target: "foo_events", parent: &p, { foo = 2, bar.baz = 78, }, "quux");
1077     debug!(name: "foo", target: "foo_events", parent: &p, foo = 3, bar.baz = 2, quux = false);
1078     debug!(name: "foo", target: "foo_events", parent: &p, foo = 3, bar.baz = 3,);
1079     debug!(name: "foo", target: "foo_events", parent: &p, "foo");
1080     debug!(name: "foo", target: "foo_events", parent: &p, "foo: {}", 3);
1081     debug!(name: "foo", target: "foo_events", parent: &p, { foo = 3, bar.baz = 80 }, "quux");
1082     debug!(name: "foo", target: "foo_events", parent: &p, { foo = 2, bar.baz = 79 }, "quux {:?}", true);
1083     debug!(name: "foo", target: "foo_events", parent: &p, { foo = 2, bar.baz = 79 }, "quux {:?}, {quux}", true, quux = false);
1084     debug!(name: "foo", target: "foo_events", parent: &p, { foo = 2, bar.baz = 78, }, "quux");
1085 }
1086 
1087 #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test::wasm_bindgen_test)]
1088 #[test]
info_with_parent()1089 fn info_with_parent() {
1090     let p = span!(Level::TRACE, "im_a_parent!");
1091     info!(parent: &p, foo = ?3, bar.baz = %2, quux = false);
1092     info!(parent: &p, foo = 3, bar.baz = 2, quux = false);
1093     info!(parent: &p, foo = 3, bar.baz = 3,);
1094     info!(parent: &p, "foo");
1095     info!(parent: &p, "foo: {}", 3);
1096     info!(parent: &p, { foo = 3, bar.baz = 80 }, "quux");
1097     info!(parent: &p, { foo = 2, bar.baz = 79 }, "quux {:?}", true);
1098     info!(parent: &p, { foo = 2, bar.baz = 79 }, "quux {:?}, {quux}", true, quux = false);
1099     info!(parent: &p, { foo = 2, bar.baz = 78 }, "quux");
1100     info!(parent: &p, { foo = ?2, bar.baz = %78 }, "quux");
1101     info!(target: "foo_events", parent: &p, foo = 3, bar.baz = 2, quux = false);
1102     info!(target: "foo_events", parent: &p, foo = 3, bar.baz = 3,);
1103     info!(target: "foo_events", parent: &p, "foo");
1104     info!(target: "foo_events", parent: &p, "foo: {}", 3);
1105     info!(target: "foo_events", parent: &p, { foo = 3, bar.baz = 80 }, "quux");
1106     info!(target: "foo_events", parent: &p, { foo = 2, bar.baz = 79 }, "quux {:?}", true);
1107     info!(target: "foo_events", parent: &p, { foo = 2, bar.baz = 79 }, "quux {:?}, {quux}", true, quux = false);
1108     info!(target: "foo_events", parent: &p, { foo = 2, bar.baz = 78, }, "quux");
1109     info!(name: "foo", target: "foo_events", parent: &p, foo = 3, bar.baz = 2, quux = false);
1110     info!(name: "foo", target: "foo_events", parent: &p, foo = 3, bar.baz = 3,);
1111     info!(name: "foo", target: "foo_events", parent: &p, "foo");
1112     info!(name: "foo", target: "foo_events", parent: &p, "foo: {}", 3);
1113     info!(name: "foo", target: "foo_events", parent: &p, { foo = 3, bar.baz = 80 }, "quux");
1114     info!(name: "foo", target: "foo_events", parent: &p, { foo = 2, bar.baz = 79 }, "quux {:?}", true);
1115     info!(name: "foo", target: "foo_events", parent: &p, { foo = 2, bar.baz = 79 }, "quux {:?}, {quux}", true, quux = false);
1116     info!(name: "foo", target: "foo_events", parent: &p, { foo = 2, bar.baz = 78, }, "quux");
1117 }
1118 
1119 #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test::wasm_bindgen_test)]
1120 #[test]
warn_with_parent()1121 fn warn_with_parent() {
1122     let p = span!(Level::TRACE, "im_a_parent!");
1123     warn!(parent: &p, foo = ?3, bar.baz = %2, quux = false);
1124     warn!(parent: &p, foo = 3, bar.baz = 2, quux = false);
1125     warn!(parent: &p, foo = 3, bar.baz = 3,);
1126     warn!(parent: &p, "foo");
1127     warn!(parent: &p, "foo: {}", 3);
1128     warn!(parent: &p, { foo = 3, bar.baz = 80 }, "quux");
1129     warn!(parent: &p, { foo = 2, bar.baz = 79 }, "quux {:?}", true);
1130     warn!(parent: &p, { foo = 2, bar.baz = 79 }, "quux {:?}, {quux}", true, quux = false);
1131     warn!(parent: &p, { foo = 2, bar.baz = 78 }, "quux");
1132     warn!(parent: &p, { foo = ?2, bar.baz = %78 }, "quux");
1133     warn!(target: "foo_events", parent: &p, foo = 3, bar.baz = 2, quux = false);
1134     warn!(target: "foo_events", parent: &p, foo = 3, bar.baz = 3,);
1135     warn!(target: "foo_events", parent: &p, "foo");
1136     warn!(target: "foo_events", parent: &p, "foo: {}", 3);
1137     warn!(target: "foo_events", parent: &p, { foo = 3, bar.baz = 80 }, "quux");
1138     warn!(target: "foo_events", parent: &p, { foo = 2, bar.baz = 79 }, "quux {:?}", true);
1139     warn!(target: "foo_events", parent: &p, { foo = 2, bar.baz = 79 }, "quux {:?}, {quux}", true, quux = false);
1140     warn!(target: "foo_events", parent: &p, { foo = 2, bar.baz = 78, }, "quux");
1141     warn!(name: "foo", target: "foo_events", parent: &p, foo = 3, bar.baz = 2, quux = false);
1142     warn!(name: "foo", target: "foo_events", parent: &p, foo = 3, bar.baz = 3,);
1143     warn!(name: "foo", target: "foo_events", parent: &p, "foo");
1144     warn!(name: "foo", target: "foo_events", parent: &p, "foo: {}", 3);
1145     warn!(name: "foo", target: "foo_events", parent: &p, { foo = 3, bar.baz = 80 }, "quux");
1146     warn!(name: "foo", target: "foo_events", parent: &p, { foo = 2, bar.baz = 79 }, "quux {:?}", true);
1147     warn!(name: "foo", target: "foo_events", parent: &p, { foo = 2, bar.baz = 79 }, "quux {:?}, {quux}", true, quux = false);
1148     warn!(name: "foo", target: "foo_events", parent: &p, { foo = 2, bar.baz = 78, }, "quux");
1149 }
1150 
1151 #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test::wasm_bindgen_test)]
1152 #[test]
error_with_parent()1153 fn error_with_parent() {
1154     let p = span!(Level::TRACE, "im_a_parent!");
1155     error!(parent: &p, foo = ?3, bar.baz = %2, quux = false);
1156     error!(parent: &p, foo = 3, bar.baz = 2, quux = false);
1157     error!(parent: &p, foo = 3, bar.baz = 3,);
1158     error!(parent: &p, "foo");
1159     error!(parent: &p, "foo: {}", 3);
1160     error!(parent: &p, { foo = 3, bar.baz = 80 }, "quux");
1161     error!(parent: &p, { foo = 2, bar.baz = 79 }, "quux {:?}", true);
1162     error!(parent: &p, { foo = 2, bar.baz = 79 }, "quux {:?}, {quux}", true, quux = false);
1163     error!(parent: &p, { foo = 2, bar.baz = 78 }, "quux");
1164     error!(parent: &p, { foo = ?2, bar.baz = %78 }, "quux");
1165     error!(target: "foo_events", parent: &p, foo = 3, bar.baz = 2, quux = false);
1166     error!(target: "foo_events", parent: &p, foo = 3, bar.baz = 3,);
1167     error!(target: "foo_events", parent: &p, "foo");
1168     error!(target: "foo_events", parent: &p, "foo: {}", 3);
1169     error!(target: "foo_events", parent: &p, { foo = 3, bar.baz = 80 }, "quux");
1170     error!(target: "foo_events", parent: &p, { foo = 2, bar.baz = 79 }, "quux {:?}", true);
1171     error!(target: "foo_events", parent: &p, { foo = 2, bar.baz = 79 }, "quux {:?}, {quux}", true, quux = false);
1172     error!(target: "foo_events", parent: &p, { foo = 2, bar.baz = 78, }, "quux");
1173     error!(name: "foo", target: "foo_events", parent: &p, foo = 3, bar.baz = 2, quux = false);
1174     error!(name: "foo", target: "foo_events", parent: &p, foo = 3, bar.baz = 3,);
1175     error!(name: "foo", target: "foo_events", parent: &p, "foo");
1176     error!(name: "foo", target: "foo_events", parent: &p, "foo: {}", 3);
1177     error!(name: "foo", target: "foo_events", parent: &p, { foo = 3, bar.baz = 80 }, "quux");
1178     error!(name: "foo", target: "foo_events", parent: &p, { foo = 2, bar.baz = 79 }, "quux {:?}", true);
1179     error!(name: "foo", target: "foo_events", parent: &p, { foo = 2, bar.baz = 79 }, "quux {:?}, {quux}", true, quux = false);
1180     error!(name: "foo", target: "foo_events", parent: &p, { foo = 2, bar.baz = 78, }, "quux");
1181 }
1182 
1183 #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test::wasm_bindgen_test)]
1184 #[test]
field_shorthand_only()1185 fn field_shorthand_only() {
1186     #[derive(Debug)]
1187     struct Position {
1188         x: f32,
1189         y: f32,
1190     }
1191     let pos = Position {
1192         x: 3.234,
1193         y: -1.223,
1194     };
1195 
1196     trace!(?pos.x, ?pos.y);
1197     debug!(?pos.x, ?pos.y);
1198     info!(?pos.x, ?pos.y);
1199     warn!(?pos.x, ?pos.y);
1200     error!(?pos.x, ?pos.y);
1201     event!(Level::TRACE, ?pos.x, ?pos.y);
1202 }
1203 
1204 #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test::wasm_bindgen_test)]
1205 #[test]
borrow_val_events()1206 fn borrow_val_events() {
1207     // Reproduces https://github.com/tokio-rs/tracing/issues/954
1208     let mut foo = (::std::string::String::new(), ::std::string::String::new());
1209     let zero = &mut foo.0;
1210     trace!(one = ?foo.1);
1211     debug!(one = ?foo.1);
1212     info!(one = ?foo.1);
1213     warn!(one = ?foo.1);
1214     error!(one = ?foo.1);
1215     zero.push_str("hello world");
1216 }
1217 
1218 #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test::wasm_bindgen_test)]
1219 #[test]
borrow_val_spans()1220 fn borrow_val_spans() {
1221     // Reproduces https://github.com/tokio-rs/tracing/issues/954
1222     let mut foo = (::std::string::String::new(), ::std::string::String::new());
1223     let zero = &mut foo.0;
1224     let _span = trace_span!("span", one = ?foo.1);
1225     let _span = debug_span!("span", one = ?foo.1);
1226     let _span = info_span!("span", one = ?foo.1);
1227     let _span = warn_span!("span", one = ?foo.1);
1228     let _span = error_span!("span", one = ?foo.1);
1229     zero.push_str("hello world");
1230 }
1231 
1232 #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test::wasm_bindgen_test)]
1233 #[test]
callsite_macro_api()1234 fn callsite_macro_api() {
1235     // This test should catch any inadvertent breaking changes
1236     // caused by changes to the macro.
1237     let _callsite = callsite! {
1238         name: "test callsite",
1239         kind: tracing::metadata::Kind::EVENT,
1240         target: "test target",
1241         level: tracing::Level::TRACE,
1242         fields: foo, bar,
1243     };
1244     let _callsite = callsite! {
1245         name: "test callsite",
1246         kind: tracing::metadata::Kind::SPAN,
1247         level: tracing::Level::TRACE,
1248         fields: foo,
1249     };
1250     let _callsite = callsite! {
1251         name: "test callsite",
1252         kind: tracing::metadata::Kind::SPAN,
1253         fields: foo,
1254     };
1255 }
1256 
1257 #[cfg_attr(target_arch = "wasm32", wasm_bindgen_test::wasm_bindgen_test)]
1258 #[test]
format_args_already_defined()1259 fn format_args_already_defined() {
1260     // Reproduces: https://github.com/tokio-rs/tracing/issues/2721
1261     #[allow(unused)]
1262     macro_rules! format_args {
1263         ($i:expr) => {};
1264     }
1265     event!(Level::DEBUG, "foo: {}", 3);
1266     trace!("foo: {}", 3);
1267     debug!("foo: {}", 3);
1268     info!("foo: {}", 3);
1269     warn!("foo: {}", 3);
1270     error!("foo: {}", 3);
1271 }
1272