mirror of
https://github.com/tokio-rs/tracing.git
synced 2025-10-02 23:34:40 +00:00

## Motivation Currently we can't run ```bash cargo test -p tracing-subscriber --no-default-features ``` successfully, because there are a bunch of tests for feature flagged APIs that are always enabled. ## Solution This commit adds feature flags to the modules and/or individual test cases that test feature-flagged APIs. There are still a few doctests that use feature-flagged APIs, and will fail with `--no-default-features`. These are primarily the examples for various `Layer::context` methods that rely on `LookupSpan`, and use the `Registry` type, as it's the only subscriber that *implements* `LookupSpan`. We could consider changing these examples, either by removing the actual use of the layers in them, or by changing them to use a mocked-out version of the registry. However, I think it's nicer to show how the API would be used in real life. Perhaps we should just run ```bash cargo test -p tracing-subscriber --no-default-features--tests --lib ``` to ignore doctests when testing without default features. Signed-off-by: Eliza Weisman <eliza@buoyant.io>
26 lines
700 B
Rust
26 lines
700 B
Rust
#![cfg(feature = "registry")]
|
|
use tracing_futures::{Instrument, WithSubscriber};
|
|
use tracing_subscriber::prelude::*;
|
|
|
|
#[tokio::test]
|
|
async fn future_with_subscriber() {
|
|
let _default = tracing_subscriber::registry().init();
|
|
let span = tracing::info_span!("foo");
|
|
let _e = span.enter();
|
|
let span = tracing::info_span!("bar");
|
|
let _e = span.enter();
|
|
tokio::spawn(
|
|
async {
|
|
async {
|
|
let span = tracing::Span::current();
|
|
println!("{:?}", span);
|
|
}
|
|
.instrument(tracing::info_span!("hi"))
|
|
.await
|
|
}
|
|
.with_subscriber(tracing_subscriber::registry()),
|
|
)
|
|
.await
|
|
.unwrap();
|
|
}
|