tracing/tracing-flame/tests/collapsed.rs
Eliza Weisman ad9ef79d73 flame: replace tempdir with tempfile
Similarly, `tracing-flame`'s tests also use the unmaintained `tempdir`
crate. This commit replaces it with `tempfile`.

Signed-off-by: Eliza Weisman <eliza@buoyant.io>
2021-08-16 14:10:12 -07:00

45 lines
1.3 KiB
Rust

use std::thread::sleep;
use std::time::Duration;
use tracing::{span, Level};
use tracing_flame::FlameSubscriber;
use tracing_subscriber::{prelude::*, registry::Registry};
#[test]
fn capture_supported() {
{
let tmp_dir = tempfile::Builder::new()
.prefix("tracing-flamegraph-test-")
.tempdir()
.expect("failed to create tempdir");
let (flame_layer, _guard) =
FlameSubscriber::with_file(tmp_dir.path().join("tracing.folded")).unwrap();
let subscriber = Registry::default().with(flame_layer);
tracing::collect::set_global_default(subscriber).expect("Could not set global default");
{
let span = span!(Level::ERROR, "outer");
let _guard = span.enter();
sleep(Duration::from_millis(10));
{
let span = span!(Level::ERROR, "Inner");
let _guard = span.enter();
sleep(Duration::from_millis(50));
{
let span = span!(Level::ERROR, "Innermost");
let _guard = span.enter();
sleep(Duration::from_millis(50));
}
}
sleep(Duration::from_millis(5));
}
sleep(Duration::from_millis(500));
tmp_dir.close().expect("failed to delete tempdir");
}
}