Files
RustProxy/src/metrics/vhost/tests.rs
T
2026-10-04 11:15:58 +02:00

44 lines
1.3 KiB
Rust

mod vhost_tests {
use super::*;
#[test]
fn streaming_completion_and_histogram() {
let m = VhostMetrics::default();
m.active.store(1, Ordering::Relaxed);
m.complete(503, false, std::time::Duration::from_millis(20), 10, 50);
assert_eq!(n(&m.active), 0);
assert_eq!(n(&m.errors), 1);
assert_eq!(n(&m.status[4]), 1);
assert_eq!(n(&m.buckets[1]), 0);
assert_eq!(n(&m.buckets[2]), 1);
assert_eq!(n(&m.buckets[10]), 1);
let view = m.view();
assert_eq!(view.requests, 0);
assert_eq!(view.completed, 1);
assert_eq!(view.errors, 1);
assert!(view.ewma_latency_ms >= 20.0);
}
}
mod compression_counter_tests {
use super::*;
use crate::compression::AppliedEncoding;
#[test]
fn each_codec_has_an_independent_counter() {
let metrics = Metrics::default();
for encoding in [
AppliedEncoding::Gzip,
AppliedEncoding::Brotli,
AppliedEncoding::Zstd,
AppliedEncoding::Deflate,
] {
metrics.record_compression(encoding);
}
let view = metrics.view();
assert_eq!(view.compression_gzip, 1);
assert_eq!(view.compression_br, 1);
assert_eq!(view.compression_zstd, 1);
assert_eq!(view.compression_deflate, 1);
}
}