From fcdd202582191cd18e66f57cc958b0c4faee09c4 Mon Sep 17 00:00:00 2001 From: Folyd Date: Sat, 30 Jan 2021 15:36:04 +0800 Subject: [PATCH] Pass cargo test --all-features Signed-off-by: Folyd --- src/histogram.rs | 8 ++++---- src/push.rs | 41 ++++++++++++++++++++++------------------- 2 files changed, 26 insertions(+), 23 deletions(-) diff --git a/src/histogram.rs b/src/histogram.rs index 93f3f3f2..30ac0a07 100644 --- a/src/histogram.rs +++ b/src/histogram.rs @@ -1286,10 +1286,10 @@ mod tests { assert_eq!(mfs.len(), 1); let mf = mfs.pop().unwrap(); - let m = mf.get_metric().get(0).unwrap(); - let proto_histogram = m.get_histogram(); - assert_eq!(proto_histogram.get_sample_count(), 3); - assert!((proto_histogram.get_sample_sum() - 0.0) > EPSILON); + let m = mf.metric.get(0).unwrap(); + let proto_histogram = m.histogram.as_ref().unwrap(); + assert_eq!(proto_histogram.sample_count.unwrap_or(0), 3); + assert!((proto_histogram.sample_sum.unwrap_or(0.0) - 0.0) > EPSILON); } #[test] diff --git a/src/push.rs b/src/push.rs index 084222ae..587d739c 100644 --- a/src/push.rs +++ b/src/push.rs @@ -123,22 +123,25 @@ fn push( for mf in mfs { // Check for pre-existing grouping labels: - for m in mf.get_metric() { - for lp in m.get_label() { - if lp.get_name() == LABEL_NAME_JOB { - return Err(Error::Msg(format!( - "pushed metric {} already contains a \ - job label", - mf.get_name() - ))); - } - if grouping.contains_key(lp.get_name()) { - return Err(Error::Msg(format!( - "pushed metric {} already contains \ - grouping label {}", - mf.get_name(), - lp.get_name() - ))); + for m in &mf.metric { + for lp in &m.label { + if let Some(name) = &lp.name { + if name == LABEL_NAME_JOB { + return Err(Error::Msg(format!( + "pushed metric {} already contains a \ + job label", + mf.name.unwrap_or("".into()), + ))); + } + + if grouping.contains_key(name.as_str()) { + return Err(Error::Msg(format!( + "pushed metric {} already contains \ + grouping label {}", + mf.name.unwrap_or("".into()), + name, + ))); + } } } } @@ -272,11 +275,11 @@ mod tests { ]; for case in table { - let mut l = proto::LabelPair::new(); + let mut l = proto::LabelPair::default(); l.name = Some(case.0.to_owned()); - let mut m = proto::Metric::new(); + let mut m = proto::Metric::default(); m.label = vec![l]; - let mut mf = proto::MetricFamily::new(); + let mut mf = proto::MetricFamily::default(); mf.metric = vec![m]; let res = push_metrics("test", hostname_grouping_key(), "mockurl", vec![mf], None); assert!(format!("{}", res.unwrap_err()).contains(case.1));