Sha256: a7615615d176fb2a4b877c48d2aa7a75fca436d997d9672b56cc2c30177f889b

Contents?: true

Size: 1.17 KB

Versions: 3

Compression:

Stored size: 1.17 KB

Contents

#![cfg(feature = "std")]
use tracing_mock::{expect, subscriber};

#[test]
fn scoped_clobbers_global() {
    // Reproduces https://github.com/tokio-rs/tracing/issues/2050

    let (scoped, scoped_handle) = subscriber::mock()
        .event(expect::event().with_fields(expect::msg("before global")))
        .event(expect::event().with_fields(expect::msg("before drop")))
        .only()
        .run_with_handle();

    let (global, global_handle) = subscriber::mock()
        .event(expect::event().with_fields(expect::msg("after drop")))
        .only()
        .run_with_handle();

    // Set a scoped default subscriber, returning a guard.
    let guard = tracing::subscriber::set_default(scoped);
    tracing::info!("before global");

    // Now, set the global default.
    tracing::subscriber::set_global_default(global)
        .expect("global default should not already be set");
    // This event should still be collected by the scoped default.
    tracing::info!("before drop");

    // Drop the guard. Now, the global default subscriber should be used.
    drop(guard);
    tracing::info!("after drop");

    scoped_handle.assert_finished();
    global_handle.assert_finished();
}

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
wasmtime-30.0.2 ./ext/cargo-vendor/tracing-0.1.41/tests/scoped_clobbers_default.rs
wasmtime-29.0.0 ./ext/cargo-vendor/tracing-0.1.41/tests/scoped_clobbers_default.rs
wasmtime-28.0.0 ./ext/cargo-vendor/tracing-0.1.41/tests/scoped_clobbers_default.rs