aboutsummaryrefslogtreecommitdiffstats
path: root/vdslib
diff options
context:
space:
mode:
authorGeir Storli <geirst@verizonmedia.com>2019-02-18 14:41:34 +0000
committerGeir Storli <geirst@verizonmedia.com>2019-02-18 14:41:34 +0000
commite3638b6671b46c781bcdd7b3ea0659c753c1220e (patch)
treeb9e8ee846432c5fffe041df3691f9c565f26adb5 /vdslib
parent7cdf46e48695488110b05027e1d76963d4c4db6f (diff)
Add gtest runner in vdslib and migrate bucketdistributiontest from CppUnit to gtest.
Also note that bucketdistributiontest has not been executed since migration to cmake.
Diffstat (limited to 'vdslib')
-rw-r--r--vdslib/src/tests/.gitignore1
-rw-r--r--vdslib/src/tests/CMakeLists.txt18
-rw-r--r--vdslib/src/tests/bucketdistribution/CMakeLists.txt1
-rw-r--r--vdslib/src/tests/bucketdistribution/bucketdistributiontest.cpp50
-rw-r--r--vdslib/src/tests/gtest_runner.cpp14
5 files changed, 50 insertions, 34 deletions
diff --git a/vdslib/src/tests/.gitignore b/vdslib/src/tests/.gitignore
index b1f63a7fe4f..3a2dc959fb6 100644
--- a/vdslib/src/tests/.gitignore
+++ b/vdslib/src/tests/.gitignore
@@ -3,4 +3,5 @@ Makefile
datadistributiontest
test.vlog
testrunner
+vdslib_gtest_runner_app
vdslib_testrunner_app
diff --git a/vdslib/src/tests/CMakeLists.txt b/vdslib/src/tests/CMakeLists.txt
index 3780a1ea9af..b445dc3e016 100644
--- a/vdslib/src/tests/CMakeLists.txt
+++ b/vdslib/src/tests/CMakeLists.txt
@@ -1,4 +1,22 @@
# Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+
+# Runner for unit tests written in gtest.
+# NOTE: All new test classes should be added here.
+vespa_add_executable(vdslib_gtest_runner_app TEST
+ SOURCES
+ gtest_runner.cpp
+ DEPENDS
+ vdslib_bucketdistributiontest
+ gtest
+)
+
+vespa_add_test(
+ NAME vdslib_gtest_runner_app
+ COMMAND vdslib_gtest_runner_app
+ DEPENDS vdslib_gtest_runner_app
+)
+
+# Runner for unit tests written in CppUnit (DEPRECATED).
vespa_add_executable(vdslib_testrunner_app TEST
SOURCES
testrunner.cpp
diff --git a/vdslib/src/tests/bucketdistribution/CMakeLists.txt b/vdslib/src/tests/bucketdistribution/CMakeLists.txt
index 6c8f368abd2..ecb29e9b12d 100644
--- a/vdslib/src/tests/bucketdistribution/CMakeLists.txt
+++ b/vdslib/src/tests/bucketdistribution/CMakeLists.txt
@@ -4,4 +4,5 @@ vespa_add_library(vdslib_bucketdistributiontest
bucketdistributiontest.cpp
DEPENDS
vdslib
+ gtest
)
diff --git a/vdslib/src/tests/bucketdistribution/bucketdistributiontest.cpp b/vdslib/src/tests/bucketdistribution/bucketdistributiontest.cpp
index 4c0a30b7133..7f2b012680c 100644
--- a/vdslib/src/tests/bucketdistribution/bucketdistributiontest.cpp
+++ b/vdslib/src/tests/bucketdistribution/bucketdistributiontest.cpp
@@ -1,28 +1,22 @@
// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
-#include <cppunit/extensions/HelperMacros.h>
#include <vespa/vdslib/bucketdistribution.h>
+#include <gtest/gtest.h>
using namespace vdslib;
-class BucketDistributionTest : public CppUnit::TestFixture {
-public:
- void testDistribution();
- void testNumBucketBits();
-
-public:
- CPPUNIT_TEST_SUITE(BucketDistributionTest);
- CPPUNIT_TEST(testDistribution);
- CPPUNIT_TEST(testNumBucketBits);
- CPPUNIT_TEST_SUITE_END();
-
-private:
- void assertDistribution(uint32_t numColumns, uint32_t numBucketBits, const uint32_t expected[]);
-};
-
-CPPUNIT_TEST_SUITE_REGISTRATION(BucketDistributionTest);
+void
+assertDistribution(uint32_t numColumns, uint32_t numBucketBits, const uint32_t expected[])
+{
+ BucketDistribution bd(numColumns, numBucketBits);
+ EXPECT_EQ(numColumns, bd.getNumColumns());
+ EXPECT_EQ((uint32_t)(1 << numBucketBits), bd.getNumBuckets());
+ for (uint32_t i = 0; i < bd.getNumBuckets(); ++i) {
+ EXPECT_EQ(expected[i], bd.getColumn(document::BucketId(16, i)));
+ }
+}
-void BucketDistributionTest::testDistribution()
+TEST(BucketDistributionTest, testDistribution)
{
const uint32_t expected4[] = {
10, 11, 9, 6, 4, 8, 14, 1, 13, 2, 12, 3, 5, 7, 15, 0 };
@@ -75,36 +69,24 @@ void BucketDistributionTest::testDistribution()
assertDistribution(16, 9, expected9);
}
-void
-BucketDistributionTest::assertDistribution(uint32_t numColumns, uint32_t numBucketBits, const uint32_t expected[])
-{
- BucketDistribution bd(numColumns, numBucketBits);
- CPPUNIT_ASSERT_EQUAL(numColumns, bd.getNumColumns());
- CPPUNIT_ASSERT_EQUAL((uint32_t)(1 << numBucketBits), bd.getNumBuckets());
- for (uint32_t i = 0; i < bd.getNumBuckets(); ++i) {
- CPPUNIT_ASSERT_EQUAL(expected[i],
- bd.getColumn(document::BucketId(16, i)));
- }
-}
-
-void BucketDistributionTest::testNumBucketBits()
+TEST(BucketDistributionTest, testNumBucketBits)
{
BucketDistribution bd(1, 4);
for (uint32_t i = 0; i <= 0xf; ++i) {
- CPPUNIT_ASSERT_EQUAL(0u, bd.getColumn(document::BucketId(32, (rand() << 4) & i)));
+ EXPECT_EQ(0u, bd.getColumn(document::BucketId(32, (rand() << 4) & i)));
}
bd.reset();
bd.setNumColumns(1);
bd.setNumBucketBits(8);
for (uint32_t i = 0; i <= 0xff; ++i) {
- CPPUNIT_ASSERT_EQUAL(0u, bd.getColumn(document::BucketId(32, (rand() << 8) & i)));
+ EXPECT_EQ(0u, bd.getColumn(document::BucketId(32, (rand() << 8) & i)));
}
bd.reset();
bd.setNumColumns(1);
bd.setNumBucketBits(16);
for (uint32_t i = 0; i <= 0xffff; ++i) {
- CPPUNIT_ASSERT_EQUAL(0u, bd.getColumn(document::BucketId(32, (rand() << 16) & i)));
+ EXPECT_EQ(0u, bd.getColumn(document::BucketId(32, (rand() << 16) & i)));
}
}
diff --git a/vdslib/src/tests/gtest_runner.cpp b/vdslib/src/tests/gtest_runner.cpp
new file mode 100644
index 00000000000..d10f7182c07
--- /dev/null
+++ b/vdslib/src/tests/gtest_runner.cpp
@@ -0,0 +1,14 @@
+// Copyright 2019 Oath Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+
+#include <gtest/gtest.h>
+
+#include <vespa/log/log.h>
+LOG_SETUP("vdslib_gtest_runner");
+
+int
+main(int argc, char* argv[])
+{
+ ::testing::InitGoogleTest(&argc, argv);
+ return RUN_ALL_TESTS();
+}
+