diff options
author | Tor Egge <Tor.Egge@online.no> | 2021-06-11 13:09:09 +0200 |
---|---|---|
committer | Tor Egge <Tor.Egge@online.no> | 2021-06-11 13:09:09 +0200 |
commit | 9b9be6defb78e8814a93f7833e1afdcff05f43dc (patch) | |
tree | df0fd5ab24ea37503eb634ea3e0d55a76285ab61 /metrics/src/tests/summetrictest.cpp | |
parent | f511cfe7463eb65373e3e234567bd1da4a717774 (diff) |
Detect argument to addToPart being a sum metric.
Diffstat (limited to 'metrics/src/tests/summetrictest.cpp')
-rw-r--r-- | metrics/src/tests/summetrictest.cpp | 41 |
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")); +} + } |