diff options
author | gjoranv <gv@verizonmedia.com> | 2022-12-16 16:01:28 +0100 |
---|---|---|
committer | gjoranv <gv@verizonmedia.com> | 2022-12-16 16:04:17 +0100 |
commit | 8e0ed067cc0bca39bd0fae8bbb584e9ee4cc09e4 (patch) | |
tree | b422cd7c8414077143d8deaa929aa48b34c2842b /metrics-proxy/src/test | |
parent | f86b7f337297a78be031b8fe06c978ee72f68de6 (diff) |
Fix a hashing bug in MetricsParser, and use record for Dimension.
- XOR does not work well for comparing two distinct pairs of
duplicate values.
Diffstat (limited to 'metrics-proxy/src/test')
-rw-r--r-- | metrics-proxy/src/test/java/ai/vespa/metricsproxy/service/MetricsParserTest.java | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/metrics-proxy/src/test/java/ai/vespa/metricsproxy/service/MetricsParserTest.java b/metrics-proxy/src/test/java/ai/vespa/metricsproxy/service/MetricsParserTest.java index 4fc77aac45f..df83a947565 100644 --- a/metrics-proxy/src/test/java/ai/vespa/metricsproxy/service/MetricsParserTest.java +++ b/metrics-proxy/src/test/java/ai/vespa/metricsproxy/service/MetricsParserTest.java @@ -7,6 +7,7 @@ import org.junit.Test; import java.util.ArrayList; import java.util.List; +import static ai.vespa.metricsproxy.service.MetricsParser.dimensionsHashCode; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotEquals; @@ -25,6 +26,21 @@ public class MetricsParserTest { } @Test + public void dimensions_hashcode_is_different_for_distinct_but_duplicate_dimension_values() { + var dimensions1 = List.of( + new MetricsParser.Dimension("cluster", "CLUSTER-1"), + new MetricsParser.Dimension("clusterid", "CLUSTER-1")); + + var dimensions2 = List.of( + new MetricsParser.Dimension("cluster", "CLUSTER-2"), + new MetricsParser.Dimension("clusterid", "CLUSTER-2")); + + System.out.println(dimensionsHashCode(dimensions1)); + System.out.println(dimensionsHashCode(dimensions2)); + assertNotEquals(dimensionsHashCode(dimensions1), dimensionsHashCode(dimensions2)); + } + + @Test public void different_dimension_values_are_not_treated_as_equal() throws Exception { var collector = new MetricsConsumer(); MetricsParser.parse(metricsJson(), collector); |