mirror of
https://github.com/neondatabase/neon.git
synced 2026-05-23 08:00:37 +00:00
Tests cannot be ran without configuring tracing. Split from #4678. Does not nag about the span checks when there is no subscriber configured, because then the spans will have no links and nothing can be checked. Sadly the `SpanTrace::status()` cannot be used for this. `tracing` is always configured in regress testing (running with `pageserver` binary), which should be enough. Additionally cleans up the test code in span checks to be in the test code. Fixes a `#[should_panic]` test which was flaky before these changes, but the `#[should_panic]` hid the flakyness. Rationale for need: Unit tests might not be testing only the public or `feature="testing"` APIs which are only testable within `regress` tests so not all spans might be configured.
18 lines
623 B
Rust
18 lines
623 B
Rust
#[cfg(debug_assertions)]
|
|
use utils::tracing_span_assert::{check_fields_present, MultiNameExtractor};
|
|
|
|
#[cfg(not(debug_assertions))]
|
|
pub(crate) fn debug_assert_current_span_has_tenant_id() {}
|
|
|
|
#[cfg(debug_assertions)]
|
|
pub(crate) static TENANT_ID_EXTRACTOR: once_cell::sync::Lazy<MultiNameExtractor<1>> =
|
|
once_cell::sync::Lazy::new(|| MultiNameExtractor::new("TenantId", ["tenant_id"]));
|
|
|
|
#[cfg(debug_assertions)]
|
|
#[track_caller]
|
|
pub(crate) fn debug_assert_current_span_has_tenant_id() {
|
|
if let Err(missing) = check_fields_present!([&*TENANT_ID_EXTRACTOR]) {
|
|
panic!("missing extractors: {missing:?}")
|
|
}
|
|
}
|