aboutsummaryrefslogtreecommitdiffstats
path: root/metrics/src/tests/summetrictest.cpp
diff options
context:
space:
mode:
authorTor Egge <Tor.Egge@online.no>2021-06-11 13:09:09 +0200
committerTor Egge <Tor.Egge@online.no>2021-06-11 13:09:09 +0200
commit9b9be6defb78e8814a93f7833e1afdcff05f43dc (patch)
treedf0fd5ab24ea37503eb634ea3e0d55a76285ab61 /metrics/src/tests/summetrictest.cpp
parentf511cfe7463eb65373e3e234567bd1da4a717774 (diff)
Detect argument to addToPart being a sum metric.
Diffstat (limited to 'metrics/src/tests/summetrictest.cpp')
-rw-r--r--metrics/src/tests/summetrictest.cpp41
1 files changed, 41 insertions, 0 deletions
diff --git a/metrics/src/tests/summetrictest.cpp b/metrics/src/tests/summetrictest.cpp
index e3d58659daf..d0380a630f1 100644
--- a/metrics/src/tests/summetrictest.cpp
+++ b/metrics/src/tests/summetrictest.cpp
@@ -125,4 +125,45 @@ TEST(SumMetricTest, test_start_value)
EXPECT_EQ(int64_t(60), sum.getLongValue("value"));
}
+namespace {
+
+struct MetricSetWithSum : public MetricSet
+{
+ LongValueMetric _v1;
+ LongValueMetric _v2;
+ SumMetric<LongValueMetric> _sum;
+ MetricSetWithSum();
+ ~MetricSetWithSum() override;
+};
+
+MetricSetWithSum::MetricSetWithSum()
+ : MetricSet("MetricSetWithSum", {}, ""),
+ _v1("v1", {}, "", this),
+ _v2("v2", {}, "", this),
+ _sum("sum", {}, "", this)
+{
+ _sum.addMetricToSum(_v1);
+ _sum.addMetricToSum(_v2);
+}
+
+MetricSetWithSum::~MetricSetWithSum() = default;
+
+}
+
+TEST(SumMetricTest, test_nested_sum)
+{
+ MetricSetWithSum w1;
+ MetricSetWithSum w2;
+ MetricSetWithSum sum;
+ w1._v1.addValue(10);
+ w1._v2.addValue(13);
+ w2._v1.addValue(27);
+ w2._v2.addValue(29);
+ w1.addToPart(sum);
+ w2.addToPart(sum);
+ EXPECT_EQ(int64_t(37), sum._v1.getLongValue("value"));
+ EXPECT_EQ(int64_t(42), sum._v2.getLongValue("value"));
+ EXPECT_EQ(int64_t(79), sum._sum.getLongValue("value"));
+}
+
}