atagen

matrix-rust-sdk

public
Star0
Watch0
ssh://brewery@pls.lobotomise.me:33/atagen/matrix-rust-sdk.git

Blame: testing/matrix-sdk-test-utils/src/lib.rs

7ff8adafe9e4atagen2026-10-22 12:30 UTC1
/// Initialize a tracing subscriber if the target architecture is not WASM.
7ff8adafe9e4atagen2026-10-22 12:30 UTC2
///
7ff8adafe9e4atagen2026-10-22 12:30 UTC3
/// Uses a sensible default filter that can be overridden through the `RUST_LOG`
7ff8adafe9e4atagen2026-10-22 12:30 UTC4
/// environment variable and runs once before all tests by using the [`ctor`]
7ff8adafe9e4atagen2026-10-22 12:30 UTC5
/// crate.
7ff8adafe9e4atagen2026-10-22 12:30 UTC6
///
7ff8adafe9e4atagen2026-10-22 12:30 UTC7
/// Invoke this macro once per compilation unit (`lib.rs`, `tests/*.rs`,
7ff8adafe9e4atagen2026-10-22 12:30 UTC8
/// `tests/*/main.rs`).
7ff8adafe9e4atagen2026-10-22 12:30 UTC9
#[macro_export]
7ff8adafe9e4atagen2026-10-22 12:30 UTC10
macro_rules! init_tracing_for_tests {
7ff8adafe9e4atagen2026-10-22 12:30 UTC11
    () => {
7ff8adafe9e4atagen2026-10-22 12:30 UTC12
        #[cfg(not(target_family = "wasm"))]
7ff8adafe9e4atagen2026-10-22 12:30 UTC13
        #[$crate::__macro_support::ctor]
7ff8adafe9e4atagen2026-10-22 12:30 UTC14
        fn init_logging() {
7ff8adafe9e4atagen2026-10-22 12:30 UTC15
            use tracing_subscriber::{layer::SubscriberExt, util::SubscriberInitExt};
7ff8adafe9e4atagen2026-10-22 12:30 UTC16
            use $crate::__macro_support::tracing_subscriber;
7ff8adafe9e4atagen2026-10-22 12:30 UTC17
7ff8adafe9e4atagen2026-10-22 12:30 UTC18
            tracing_subscriber::registry()
7ff8adafe9e4atagen2026-10-22 12:30 UTC19
                .with(tracing_subscriber::EnvFilter::try_from_default_env().unwrap_or_else(|_| {
7ff8adafe9e4atagen2026-10-22 12:30 UTC20
                    // Output is only printed for failing tests, but still we shouldn't overload
7ff8adafe9e4atagen2026-10-22 12:30 UTC21
                    // the output with unnecessary info. When debugging a specific test, it's easy
7ff8adafe9e4atagen2026-10-22 12:30 UTC22
                    // to override this default by setting the `RUST_LOG` environment variable.
7ff8adafe9e4atagen2026-10-22 12:30 UTC23
                    //
7ff8adafe9e4atagen2026-10-22 12:30 UTC24
                    // Since tracing_subscriber does prefix matching, the `matrix_sdk=` directive
7ff8adafe9e4atagen2026-10-22 12:30 UTC25
                    // takes effect for all the main crates (`matrix_sdk_base`, `matrix_sdk_crypto`
7ff8adafe9e4atagen2026-10-22 12:30 UTC26
                    // and so on).
7ff8adafe9e4atagen2026-10-22 12:30 UTC27
                    "info,matrix_sdk=debug".into()
7ff8adafe9e4atagen2026-10-22 12:30 UTC28
                }))
7ff8adafe9e4atagen2026-10-22 12:30 UTC29
                .with(tracing_subscriber::fmt::layer().with_test_writer())
7ff8adafe9e4atagen2026-10-22 12:30 UTC30
                .init();
7ff8adafe9e4atagen2026-10-22 12:30 UTC31
        }
7ff8adafe9e4atagen2026-10-22 12:30 UTC32
    };
7ff8adafe9e4atagen2026-10-22 12:30 UTC33
}
7ff8adafe9e4atagen2026-10-22 12:30 UTC34
7ff8adafe9e4atagen2026-10-22 12:30 UTC35
#[doc(hidden)]
7ff8adafe9e4atagen2026-10-22 12:30 UTC36
pub mod __macro_support {
7ff8adafe9e4atagen2026-10-22 12:30 UTC37
    #[cfg(not(target_family = "wasm"))]
7ff8adafe9e4atagen2026-10-22 12:30 UTC38
    pub use ctor::ctor;
7ff8adafe9e4atagen2026-10-22 12:30 UTC39
    #[cfg(not(target_family = "wasm"))]
7ff8adafe9e4atagen2026-10-22 12:30 UTC40
    pub use tracing_subscriber;
7ff8adafe9e4atagen2026-10-22 12:30 UTC41
}