44 lines
1.3 KiB
Rust
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);
|
|
}
|
|
}
|