Files
tokio/tokio-trace/tests/macros.rs
T
João Oliveira 597f271c08 trace: Remove default trace level and make levels mandatory on span! macro (#1025)
## Motivation 

Was determined that having the span! macro default to the TRACE level is
probably not ideal (see discussion on #952). 

Closes #1013

## Solution 

Remove default trace level and make log lvl mandatory on span! macro,
and add the respective `trace_span!`, `debug_span!`, `info_span!`,
`warn_span!` and `error_span!` macros that behave as span! macro, but
with defined log levels

## Notes 

I think this is it, also removed some captures that were repeated, and
some testcases that also seemed repeated after adding the mandatory log
level, but please review it, if more tests or examples are needed happy
to provide (tried to find a way to get the generated macros log level,
but didn't find one, if there is a way i can add tests to assert that
the generated macro has the matching log level ). thanks
2019-04-02 11:29:23 -07:00

368 lines
14 KiB
Rust

use tokio_trace::Level;
#[macro_use]
extern crate tokio_trace;
// Tests that macros work across various invocation syntax.
//
// These are quite repetitive, and _could_ be generated by a macro. However,
// they're compile-time tests, so I want to get line numbers etc out of
// failures, and producing them with a macro would muddy the waters a bit.
#[test]
fn span() {
span!(Level::DEBUG, target: "foo_events", "foo", bar = 2, baz = 3);
span!(Level::DEBUG, target: "foo_events", "foo", bar = 2, baz = 4,);
span!(Level::DEBUG, target: "foo_events", "foo");
span!(Level::DEBUG, target: "foo_events", "bar",);
span!(Level::DEBUG, "foo", bar = 2, baz = 3);
span!(Level::DEBUG, "foo", bar = 2, baz = 4,);
span!(Level::TRACE, "foo", bar = 2, baz = 3);
span!(Level::TRACE, "foo", bar = 2, baz = 4,);
span!(Level::TRACE, "foo");
span!(Level::TRACE, "bar",);
}
#[test]
fn trace_span() {
trace_span!(target: "foo_events", "foo", bar = 2, baz = 3);
trace_span!(target: "foo_events", "foo", bar = 2, baz = 4,);
trace_span!(target: "foo_events", "foo");
trace_span!(target: "foo_events", "bar",);
trace_span!("foo", bar = 2, baz = 3);
trace_span!("foo", bar = 2, baz = 4,);
trace_span!("bar");
trace_span!("bar",);
}
#[test]
fn debug_span() {
debug_span!(target: "foo_events", "foo", bar = 2, baz = 3);
debug_span!(target: "foo_events", "foo", bar = 2, baz = 4,);
debug_span!(target: "foo_events", "foo");
debug_span!(target: "foo_events", "bar",);
debug_span!("foo", bar = 2, baz = 3);
debug_span!("foo", bar = 2, baz = 4,);
debug_span!("bar");
debug_span!("bar",);
}
#[test]
fn info_span() {
info_span!(target: "foo_events", "foo", bar = 2, baz = 3);
info_span!(target: "foo_events", "foo", bar = 2, baz = 4,);
info_span!(target: "foo_events", "foo");
info_span!(target: "foo_events", "bar",);
info_span!("foo", bar = 2, baz = 3);
info_span!("foo", bar = 2, baz = 4,);
info_span!("bar");
info_span!("bar",);
}
#[test]
fn warn_span() {
warn_span!(target: "foo_events", "foo", bar = 2, baz = 3);
warn_span!(target: "foo_events", "foo", bar = 2, baz = 4,);
warn_span!(target: "foo_events", "foo");
warn_span!(target: "foo_events", "bar",);
warn_span!("foo", bar = 2, baz = 3);
warn_span!("foo", bar = 2, baz = 4,);
warn_span!("bar");
warn_span!("bar",);
}
#[test]
fn error_span() {
error_span!(target: "foo_events", "foo", bar = 2, baz = 3);
error_span!(target: "foo_events", "foo", bar = 2, baz = 4,);
error_span!(target: "foo_events", "foo");
error_span!(target: "foo_events", "bar",);
error_span!("foo", bar = 2, baz = 3);
error_span!("foo", bar = 2, baz = 4,);
error_span!("bar");
error_span!("bar",);
}
#[test]
fn span_root() {
span!(Level::DEBUG, target: "foo_events", parent: None, "foo", bar = 2, baz = 3);
span!(Level::DEBUG, target: "foo_events", parent: None, "foo", bar = 2, baz = 4,);
span!(Level::DEBUG, target: "foo_events", parent: None, "foo");
span!(Level::DEBUG, target: "foo_events", parent: None, "bar",);
span!(Level::TRACE, parent: None, "foo", bar = 2, baz = 3);
span!(Level::TRACE, parent: None, "foo", bar = 2, baz = 4,);
span!(Level::TRACE, parent: None, "foo");
span!(Level::TRACE, parent: None, "bar",);
}
#[test]
fn trace_span_root() {
trace_span!(target: "foo_events", parent: None, "foo", bar = 2, baz = 3);
trace_span!(target: "foo_events", parent: None, "foo", bar = 2, baz = 4,);
trace_span!(target: "foo_events", parent: None, "foo");
trace_span!(target: "foo_events", parent: None, "bar",);
trace_span!(parent: None, "foo", bar = 2, baz = 3);
trace_span!(parent: None, "foo", bar = 2, baz = 4,);
trace_span!(parent: None, "foo");
trace_span!(parent: None, "bar",);
}
#[test]
fn debug_span_root() {
debug_span!(target: "foo_events", parent: None, "foo", bar = 2, baz = 3);
debug_span!(target: "foo_events", parent: None, "foo", bar = 2, baz = 4,);
debug_span!(target: "foo_events", parent: None, "foo");
debug_span!(target: "foo_events", parent: None, "bar",);
debug_span!(parent: None, "foo", bar = 2, baz = 3);
debug_span!(parent: None, "foo", bar = 2, baz = 4,);
debug_span!(parent: None, "foo");
debug_span!(parent: None, "bar",);
}
#[test]
fn info_span_root() {
info_span!(target: "foo_events", parent: None, "foo", bar = 2, baz = 3);
info_span!(target: "foo_events", parent: None, "foo", bar = 2, baz = 4,);
info_span!(target: "foo_events", parent: None, "foo");
info_span!(target: "foo_events", parent: None, "bar",);
info_span!(parent: None, "foo", bar = 2, baz = 3);
info_span!(parent: None, "foo", bar = 2, baz = 4,);
info_span!(parent: None, "foo");
info_span!(parent: None, "bar",);
}
#[test]
fn warn_span_root() {
warn_span!(target: "foo_events", parent: None, "foo", bar = 2, baz = 3);
warn_span!(target: "foo_events", parent: None, "foo", bar = 2, baz = 4,);
warn_span!(target: "foo_events", parent: None, "foo");
warn_span!(target: "foo_events", parent: None, "bar",);
warn_span!(parent: None, "foo", bar = 2, baz = 3);
warn_span!(parent: None, "foo", bar = 2, baz = 4,);
warn_span!(parent: None, "foo");
warn_span!(parent: None, "bar",);
}
#[test]
fn error_span_root() {
error_span!(target: "foo_events", parent: None, "foo", bar = 2, baz = 3);
error_span!(target: "foo_events", parent: None, "foo", bar = 2, baz = 4,);
error_span!(target: "foo_events", parent: None, "foo");
error_span!(target: "foo_events", parent: None, "bar",);
error_span!(parent: None, "foo", bar = 2, baz = 3);
error_span!(parent: None, "foo", bar = 2, baz = 4,);
error_span!(parent: None, "foo");
error_span!(parent: None, "bar",);
}
#[test]
fn span_with_parent() {
let p = span!(Level::TRACE, "im_a_parent!");
span!(Level::DEBUG, target: "foo_events", parent: &p, "foo", bar = 2, baz = 3);
span!(Level::DEBUG, target: "foo_events", parent: &p, "foo", bar = 2, baz = 4,);
span!(Level::DEBUG, target: "foo_events", parent: &p, "foo");
span!(Level::DEBUG, target: "foo_events", parent: &p, "bar",);
span!(Level::DEBUG, parent: &p, "foo", bar = 2, baz = 3);
span!(Level::DEBUG, parent: &p, "foo", bar = 2, baz = 4,);
span!(Level::DEBUG, parent: &p, "foo");
span!(Level::DEBUG, parent: &p, "bar",);
}
#[test]
fn trace_span_with_parent() {
let p = span!(Level::TRACE, "im_a_parent!");
trace_span!(target: "foo_events", parent: &p, "foo", bar = 2, baz = 3);
trace_span!(target: "foo_events", parent: &p, "foo", bar = 2, baz = 4,);
trace_span!(target: "foo_events", parent: &p, "foo");
trace_span!(target: "foo_events", parent: &p, "bar",);
trace_span!(parent: &p, "foo", bar = 2, baz = 3);
trace_span!(parent: &p, "foo", bar = 2, baz = 4,);
trace_span!(parent: &p, "foo");
trace_span!(parent: &p, "bar",);
}
#[test]
fn debug_span_with_parent() {
let p = span!(Level::TRACE, "im_a_parent!");
debug_span!(target: "foo_events", parent: &p, "foo", bar = 2, baz = 3);
debug_span!(target: "foo_events", parent: &p, "foo", bar = 2, baz = 4,);
debug_span!(target: "foo_events", parent: &p, "foo");
debug_span!(target: "foo_events", parent: &p, "bar",);
debug_span!(parent: &p, "foo", bar = 2, baz = 3);
debug_span!(parent: &p, "foo", bar = 2, baz = 4,);
debug_span!(parent: &p, "foo");
debug_span!(parent: &p, "bar",);
}
#[test]
fn info_span_with_parent() {
let p = span!(Level::TRACE, "im_a_parent!");
info_span!(target: "foo_events", parent: &p, "foo", bar = 2, baz = 3);
info_span!(target: "foo_events", parent: &p, "foo", bar = 2, baz = 4,);
info_span!(target: "foo_events", parent: &p, "foo");
info_span!(target: "foo_events", parent: &p, "bar",);
info_span!(parent: &p, "foo", bar = 2, baz = 3);
info_span!(parent: &p, "foo", bar = 2, baz = 4,);
info_span!(parent: &p, "foo");
info_span!(parent: &p, "bar",);
}
#[test]
fn warn_span_with_parent() {
let p = span!(Level::TRACE, "im_a_parent!");
warn_span!(target: "foo_events", parent: &p, "foo", bar = 2, baz = 3);
warn_span!(target: "foo_events", parent: &p, "foo", bar = 2, baz = 4,);
warn_span!(target: "foo_events", parent: &p, "foo");
warn_span!(target: "foo_events", parent: &p, "bar",);
warn_span!(parent: &p, "foo", bar = 2, baz = 3);
warn_span!(parent: &p, "foo", bar = 2, baz = 4,);
warn_span!(parent: &p, "foo");
warn_span!(parent: &p, "bar",);
}
#[test]
fn error_span_with_parent() {
let p = span!(Level::TRACE, "im_a_parent!");
error_span!(target: "foo_events", parent: &p, "foo", bar = 2, baz = 3);
error_span!(target: "foo_events", parent: &p, "foo", bar = 2, baz = 4,);
error_span!(target: "foo_events", parent: &p, "foo");
error_span!(target: "foo_events", parent: &p, "bar",);
error_span!(parent: &p, "foo", bar = 2, baz = 3);
error_span!(parent: &p, "foo", bar = 2, baz = 4,);
error_span!(parent: &p, "foo");
error_span!(parent: &p, "bar",);
}
#[test]
fn event() {
event!(Level::DEBUG, foo = 3, bar = 2, baz = false);
event!(Level::DEBUG, foo = 3, bar = 3,);
event!(Level::DEBUG, "foo");
event!(Level::DEBUG, "foo: {}", 3);
event!(Level::DEBUG, { foo = 3, bar = 80 }, "baz");
event!(Level::DEBUG, { foo = 2, bar = 79 }, "baz {:?}", true);
event!(Level::DEBUG, { foo = 2, bar = 79 }, "baz {:?}, {quux}", true, quux = false);
event!(Level::DEBUG, { foo = 2, bar = 78, }, "baz");
event!(target: "foo_events", Level::DEBUG, foo = 3, bar = 2, baz = false);
event!(target: "foo_events", Level::DEBUG, foo = 3, bar = 3,);
event!(target: "foo_events", Level::DEBUG, "foo");
event!(target: "foo_events", Level::DEBUG, "foo: {}", 3);
event!(target: "foo_events", Level::DEBUG, { foo = 3, bar = 80 }, "baz");
event!(target: "foo_events", Level::DEBUG, { foo = 2, bar = 79 }, "baz {:?}", true);
event!(target: "foo_events", Level::DEBUG, { foo = 2, bar = 79 }, "baz {:?}, {quux}", true, quux = false);
event!(target: "foo_events", Level::DEBUG, { foo = 2, bar = 78, }, "baz");
}
#[test]
fn trace() {
trace!(foo = 3, bar = 2, baz = false);
trace!(foo = 3, bar = 3,);
trace!("foo");
trace!("foo: {}", 3);
trace!({ foo = 3, bar = 80 }, "baz");
trace!({ foo = 2, bar = 79 }, "baz {:?}", true);
trace!({ foo = 2, bar = 79 }, "baz {:?}, {quux}", true, quux = false);
trace!({ foo = 2, bar = 78, }, "baz");
trace!(target: "foo_events", foo = 3, bar = 2, baz = false);
trace!(target: "foo_events", foo = 3, bar = 3,);
trace!(target: "foo_events", "foo");
trace!(target: "foo_events", "foo: {}", 3);
trace!(target: "foo_events", { foo = 3, bar = 80 }, "baz");
trace!(target: "foo_events", { foo = 2, bar = 79 }, "baz {:?}", true);
trace!(target: "foo_events", { foo = 2, bar = 79 }, "baz {:?}, {quux}", true, quux = false);
trace!(target: "foo_events", { foo = 2, bar = 78, }, "baz");
}
#[test]
fn debug() {
debug!(foo = 3, bar = 2, baz = false);
debug!(foo = 3, bar = 3,);
debug!("foo");
debug!("foo: {}", 3);
debug!({ foo = 3, bar = 80 }, "baz");
debug!({ foo = 2, bar = 79 }, "baz {:?}", true);
debug!({ foo = 2, bar = 79 }, "baz {:?}, {quux}", true, quux = false);
debug!({ foo = 2, bar = 78, }, "baz");
debug!(target: "foo_events", foo = 3, bar = 2, baz = false);
debug!(target: "foo_events", foo = 3, bar = 3,);
debug!(target: "foo_events", "foo");
debug!(target: "foo_events", "foo: {}", 3);
debug!(target: "foo_events", { foo = 3, bar = 80 }, "baz");
debug!(target: "foo_events", { foo = 2, bar = 79 }, "baz {:?}", true);
debug!(target: "foo_events", { foo = 2, bar = 79 }, "baz {:?}, {quux}", true, quux = false);
debug!(target: "foo_events", { foo = 2, bar = 79 }, "baz {:?}, {quux}", true, quux = false);
debug!(target: "foo_events", { foo = 2, bar = 78, }, "baz");
}
#[test]
fn info() {
info!(foo = 3, bar = 2, baz = false);
info!(foo = 3, bar = 3,);
info!("foo");
info!("foo: {}", 3);
info!({ foo = 3, bar = 80 }, "baz");
info!({ foo = 2, bar = 79 }, "baz {:?}", true);
info!({ foo = 2, bar = 79 }, "baz {:?}, {quux}", true, quux = false);
info!({ foo = 2, bar = 78, }, "baz");
info!(target: "foo_events", foo = 3, bar = 2, baz = false);
info!(target: "foo_events", foo = 3, bar = 3,);
info!(target: "foo_events", "foo");
info!(target: "foo_events", "foo: {}", 3);
info!(target: "foo_events", { foo = 3, bar = 80 }, "baz");
info!(target: "foo_events", { foo = 2, bar = 79 }, "baz {:?}", true);
info!(target: "foo_events", { foo = 2, bar = 79 }, "baz {:?}, {quux}", true, quux = false);
info!(target: "foo_events", { foo = 2, bar = 79 }, "baz {:?}, {quux}", true, quux = false);
info!(target: "foo_events", { foo = 2, bar = 78, }, "baz");
}
#[test]
fn warn() {
warn!(foo = 3, bar = 2, baz = false);
warn!(foo = 3, bar = 3,);
warn!("foo");
warn!("foo: {}", 3);
warn!({ foo = 3, bar = 80 }, "baz");
warn!({ foo = 2, bar = 79 }, "baz {:?}", true);
warn!({ foo = 2, bar = 79 }, "baz {:?}, {quux}", true, quux = false);
warn!({ foo = 2, bar = 78 }, "baz");
warn!(target: "foo_events", foo = 3, bar = 2, baz = false);
warn!(target: "foo_events", foo = 3, bar = 3,);
warn!(target: "foo_events", "foo");
warn!(target: "foo_events", "foo: {}", 3);
warn!(target: "foo_events", { foo = 3, bar = 80 }, "baz");
warn!(target: "foo_events", { foo = 2, bar = 79 }, "baz {:?}", true);
warn!(target: "foo_events", { foo = 2, bar = 79 }, "baz {:?}, {quux}", true, quux = false);
warn!(target: "foo_events", { foo = 2, bar = 78, }, "baz");
}
#[test]
fn error() {
error!(foo = 3, bar = 2, baz = false);
error!(foo = 3, bar = 3,);
error!("foo");
error!("foo: {}", 3);
error!({ foo = 3, bar = 80 }, "baz");
error!({ foo = 2, bar = 79 }, "baz {:?}", true);
error!({ foo = 2, bar = 79 }, "baz {:?}, {quux}", true, quux = false);
error!({ foo = 2, bar = 78, }, "baz");
error!(target: "foo_events", foo = 3, bar = 2, baz = false);
error!(target: "foo_events", foo = 3, bar = 3,);
error!(target: "foo_events", "foo");
error!(target: "foo_events", "foo: {}", 3);
error!(target: "foo_events", { foo = 3, bar = 80 }, "baz");
error!(target: "foo_events", { foo = 2, bar = 79 }, "baz {:?}", true);
error!(target: "foo_events", { foo = 2, bar = 79 }, "baz {:?}, {quux}", true, quux = false);
error!(target: "foo_events", { foo = 2, bar = 78, }, "baz");
}