Skip to content

Commit 1f3923a

Browse files
committed
test: add test for using empty struct as histogram family labels
1 parent 059da5d commit 1f3923a

File tree

1 file changed

+28
-0
lines changed

1 file changed

+28
-0
lines changed

src/encoding/text.rs

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -569,6 +569,7 @@ mod tests {
569569
use crate::metrics::{counter::Counter, exemplar::CounterWithExemplar};
570570
use pyo3::{prelude::*, types::PyModule};
571571
use std::borrow::Cow;
572+
use std::fmt::Error;
572573

573574
#[test]
574575
fn encode_counter() {
@@ -764,6 +765,33 @@ mod tests {
764765
parse_with_python_client(encoded);
765766
}
766767

768+
#[test]
769+
fn encode_histogram_family_with_empty_struct_family_labels() {
770+
let mut registry = Registry::default();
771+
let family =
772+
Family::new_with_constructor(|| Histogram::new(exponential_buckets(1.0, 2.0, 10)));
773+
registry.register("my_histogram", "My histogram", family.clone());
774+
775+
#[derive(Eq, PartialEq, Hash, Debug, Clone)]
776+
struct EmptyLabels {}
777+
778+
impl EncodeLabelSet for EmptyLabels {
779+
fn encode(&self, _encoder: crate::encoding::LabelSetEncoder) -> Result<(), Error> {
780+
Ok(())
781+
}
782+
}
783+
784+
family
785+
.get_or_create(&EmptyLabels {})
786+
.observe(1.0);
787+
788+
let mut encoded = String::new();
789+
790+
encode(&mut encoded, &registry).unwrap();
791+
792+
parse_with_python_client(encoded);
793+
}
794+
767795
#[test]
768796
fn encode_histogram_with_exemplars() {
769797
let mut registry = Registry::default();

0 commit comments

Comments
 (0)