summaryrefslogtreecommitdiffstats
path: root/metrics/src/tests/metricsettest.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'metrics/src/tests/metricsettest.cpp')
-rw-r--r--metrics/src/tests/metricsettest.cpp119
1 files changed, 51 insertions, 68 deletions
diff --git a/metrics/src/tests/metricsettest.cpp b/metrics/src/tests/metricsettest.cpp
index e4601a7b573..a6071af6404 100644
--- a/metrics/src/tests/metricsettest.cpp
+++ b/metrics/src/tests/metricsettest.cpp
@@ -1,52 +1,37 @@
// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
-#include <vespa/vdstestlib/cppunit/macros.h>
-#include <vespa/vespalib/objects/floatingpointtype.h>
#include <vespa/metrics/metrics.h>
+#include <vespa/vespalib/gtest/gtest.h>
+#include <vespa/vespalib/objects/floatingpointtype.h>
namespace metrics {
-struct MetricSetTest : public CppUnit::TestFixture {
- void testNormalUsage();
- void supportMultipleMetricsWithSameNameDifferentDimensions();
- void uniqueTargetMetricsAreAddedToMetricSet();
-
- CPPUNIT_TEST_SUITE(MetricSetTest);
- CPPUNIT_TEST(testNormalUsage);
- CPPUNIT_TEST(supportMultipleMetricsWithSameNameDifferentDimensions);
- CPPUNIT_TEST(uniqueTargetMetricsAreAddedToMetricSet);
- CPPUNIT_TEST_SUITE_END();
-};
+namespace {
+struct TestMetricVisitor : public MetricVisitor {
+ std::ostringstream ost;
+ uint32_t setsToVisit;
-CPPUNIT_TEST_SUITE_REGISTRATION(MetricSetTest);
+ TestMetricVisitor(uint32_t setsToVisit_ = 100)
+ : ost(), setsToVisit(setsToVisit_) {}
-namespace {
- struct TestMetricVisitor : public MetricVisitor {
- std::ostringstream ost;
- uint32_t setsToVisit;
-
- TestMetricVisitor(uint32_t setsToVisit_ = 100)
- : ost(), setsToVisit(setsToVisit_) {}
-
- bool visitMetricSet(const MetricSet& set, bool autoGenerated) override {
- ost << "[" << (autoGenerated ? "*" : "") << set.getName() << "]\n";
- if (setsToVisit > 0) {
- --setsToVisit;
- return true;
- }
- return false;
- }
- bool visitMetric(const Metric& m, bool autoGenerated) override {
- ost << (autoGenerated ? "*" : "") << m.getName() << "\n";
+ bool visitMetricSet(const MetricSet& set, bool autoGenerated) override {
+ ost << "[" << (autoGenerated ? "*" : "") << set.getName() << "]\n";
+ if (setsToVisit > 0) {
+ --setsToVisit;
return true;
}
- };
+ return false;
+ }
+ bool visitMetric(const Metric& m, bool autoGenerated) override {
+ ost << (autoGenerated ? "*" : "") << m.getName() << "\n";
+ return true;
+ }
+};
}
-void
-MetricSetTest::testNormalUsage()
+TEST(MetricSetTest, test_normal_usage)
{
- // Set up some metrics to test..
+ // Set up some metrics to test..
MetricSet set("a", {{"foo"}}, "");
DoubleValueMetric v1("c", {{"foo"}}, "", &set);
LongAverageMetric v2("b", {}, "", &set);
@@ -54,41 +39,41 @@ MetricSetTest::testNormalUsage()
MetricSet set2("e", {{"bar"}}, "", &set);
LongCountMetric v4("f", {{"foo"}}, "", &set2);
- // Give them some values
+ // Give them some values
v1.addValue(4.2);
v2.addValue(8);
v3.inc();
v4.inc(3);
- // Check that we can register through registerMetric function too.
+ // Check that we can register through registerMetric function too.
LongCountMetric v5("g", {}, "");
set.registerMetric(v5);
v5.inc(3);
v5.dec();
- // Check that getMetric works, and doesn't return copy.
+ // Check that getMetric works, and doesn't return copy.
LongAverageMetric* v2copy(
dynamic_cast<LongAverageMetric*>(set.getMetric("b")));
- CPPUNIT_ASSERT(v2copy != 0);
+ ASSERT_TRUE(v2copy != 0);
v2copy->addValue(9);
Metric* nonExistingCopy = set.getMetric("nonexisting");
- CPPUNIT_ASSERT(nonExistingCopy == 0);
+ EXPECT_TRUE(nonExistingCopy == 0);
nonExistingCopy = set.getMetric("non.existing");
- CPPUNIT_ASSERT(nonExistingCopy == 0);
+ EXPECT_TRUE(nonExistingCopy == 0);
- // Check that paths are set
+ // Check that paths are set
MetricSet topSet("top", {}, "");
topSet.registerMetric(set);
- CPPUNIT_ASSERT_EQUAL(vespalib::string("a"), set.getPath());
- CPPUNIT_ASSERT_EQUAL(vespalib::string("a.c"), v1.getPath());
- CPPUNIT_ASSERT_EQUAL(vespalib::string("a.b"), v2.getPath());
- CPPUNIT_ASSERT_EQUAL(vespalib::string("a.d"), v3.getPath());
- CPPUNIT_ASSERT_EQUAL(vespalib::string("a.e"), set2.getPath());
- CPPUNIT_ASSERT_EQUAL(vespalib::string("a.e.f"), v4.getPath());
- CPPUNIT_ASSERT_EQUAL(vespalib::string("a.g"), v5.getPath());
- CPPUNIT_ASSERT_EQUAL(vespalib::string("a.b"), v2copy->getPath());
-
- // Verify XML output. Should be in register order.
+ EXPECT_EQ(vespalib::string("a"), set.getPath());
+ EXPECT_EQ(vespalib::string("a.c"), v1.getPath());
+ EXPECT_EQ(vespalib::string("a.b"), v2.getPath());
+ EXPECT_EQ(vespalib::string("a.d"), v3.getPath());
+ EXPECT_EQ(vespalib::string("a.e"), set2.getPath());
+ EXPECT_EQ(vespalib::string("a.e.f"), v4.getPath());
+ EXPECT_EQ(vespalib::string("a.g"), v5.getPath());
+ EXPECT_EQ(vespalib::string("a.b"), v2copy->getPath());
+
+ // Verify XML output. Should be in register order.
std::string expected("'\n"
"a:\n"
" c average=4.2 last=4.2 min=4.2 max=4.2 count=1 total=4.2\n"
@@ -98,43 +83,41 @@ MetricSetTest::testNormalUsage()
" f count=3\n"
" g count=2'"
);
- CPPUNIT_ASSERT_EQUAL(expected, "'\n" + set.toString() + "'");
+ EXPECT_EQ(expected, "'\n" + set.toString() + "'");
- // Verify that visiting works. That you get all metrics if you answer
- // true to all sets, and that you don't get members of sets you answer
- // false to get.
+ // Verify that visiting works. That you get all metrics if you answer
+ // true to all sets, and that you don't get members of sets you answer
+ // false to get.
{
TestMetricVisitor visitor(2);
set.visit(visitor);
expected = "[a]\nc\nb\nd\n[e]\nf\ng\n";
- CPPUNIT_ASSERT_EQUAL("\n" + expected, "\n" + visitor.ost.str());
+ EXPECT_EQ("\n" + expected, "\n" + visitor.ost.str());
}
{
TestMetricVisitor visitor(1);
set.visit(visitor);
expected = "[a]\nc\nb\nd\n[e]\ng\n";
- CPPUNIT_ASSERT_EQUAL("\n" + expected, "\n" + visitor.ost.str());
+ EXPECT_EQ("\n" + expected, "\n" + visitor.ost.str());
}
{
TestMetricVisitor visitor(0);
set.visit(visitor);
expected = "[a]\n";
- CPPUNIT_ASSERT_EQUAL("\n" + expected, "\n" + visitor.ost.str());
+ EXPECT_EQ("\n" + expected, "\n" + visitor.ost.str());
}
}
-void
-MetricSetTest::supportMultipleMetricsWithSameNameDifferentDimensions()
+TEST(MetricSetTest, support_multiple_metrics_with_same_name_different_dimensions)
{
MetricSet set("dimset", {{"foo", "bar"}}, "");
DoubleValueMetric v1("stuff", {{"baz", "blarg"}}, "", &set);
LongAverageMetric v2("stuff", {{"flarn", "yarn"}}, "", &set);
- CPPUNIT_ASSERT_EQUAL(size_t(2), set.getRegisteredMetrics().size());
+ EXPECT_EQ(size_t(2), set.getRegisteredMetrics().size());
}
-void
-MetricSetTest::uniqueTargetMetricsAreAddedToMetricSet()
+TEST(MetricSetTest, unique_target_metrics_are_added_to_metric_set)
{
MetricSet set1("a", {{"foo"}}, "");
LongCountMetric v1("wow", {{"foo"}}, "", &set1);
@@ -150,8 +133,8 @@ MetricSetTest::uniqueTargetMetricsAreAddedToMetricSet()
std::vector<Metric::UP> ownerList;
set1.addToSnapshot(set2, ownerList);
- CPPUNIT_ASSERT(set2.getMetric("wow") != nullptr);
- CPPUNIT_ASSERT(set2.getMetric("doge") != nullptr);
+ EXPECT_TRUE(set2.getMetric("wow") != nullptr);
+ EXPECT_TRUE(set2.getMetric("doge") != nullptr);
}
-} // metrics
+}