aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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();
+}
+