provide_telemetry/
testing.rs1use crate::backpressure::_reset_backpressure_for_tests;
7use crate::cardinality::clear_cardinality_limits;
8#[cfg(feature = "governance")]
9use crate::classification::clear_classification_rules;
10#[cfg(feature = "governance")]
11use crate::consent::reset_consent_for_tests;
12use crate::context::{reset_context_for_tests, reset_trace_context_for_tests};
13use crate::health::_reset_health_for_tests;
14use crate::metrics::reset_metrics_for_tests;
15use crate::otel::_reset_otel_for_tests;
16use crate::pii::replace_pii_rules;
17#[cfg(feature = "governance")]
18use crate::receipts::reset_receipts_for_tests;
19use crate::resilience::_reset_resilience_for_tests;
20use crate::sampling::_reset_sampling_for_tests;
21use crate::setup::shutdown_telemetry;
22use crate::slo::reset_slo_for_tests;
23use crate::tracer::set_trace_context;
24use std::sync::{Mutex, MutexGuard, OnceLock};
25
26static TEST_STATE_LOCK: OnceLock<Mutex<()>> = OnceLock::new();
27
28fn test_state_lock() -> &'static Mutex<()> {
29 TEST_STATE_LOCK.get_or_init(|| Mutex::new(()))
30}
31
32pub fn acquire_test_state_lock() -> MutexGuard<'static, ()> {
34 test_state_lock().lock().expect("test state lock poisoned")
35}
36
37pub fn reset_telemetry_state() {
39 let _ = shutdown_telemetry();
40 _reset_otel_for_tests();
41 _reset_health_for_tests();
42 _reset_backpressure_for_tests();
43 _reset_sampling_for_tests();
44 _reset_resilience_for_tests();
45 reset_metrics_for_tests();
46 #[cfg(feature = "governance")]
47 reset_receipts_for_tests();
48 #[cfg(feature = "governance")]
49 reset_consent_for_tests();
50 reset_slo_for_tests();
51 clear_cardinality_limits();
52 #[cfg(feature = "governance")]
53 clear_classification_rules();
54 replace_pii_rules(Vec::new());
55 reset_context_for_tests();
56}
57
58pub fn reset_trace_context() {
60 reset_trace_context_for_tests();
61 drop(set_trace_context(None, None));
62}