diff options
author | Geir Storli <geirst@verizonmedia.com> | 2019-02-18 14:41:34 +0000 |
---|---|---|
committer | Geir Storli <geirst@verizonmedia.com> | 2019-02-18 14:41:34 +0000 |
commit | e3638b6671b46c781bcdd7b3ea0659c753c1220e (patch) | |
tree | b9e8ee846432c5fffe041df3691f9c565f26adb5 /vdslib | |
parent | 7cdf46e48695488110b05027e1d76963d4c4db6f (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/.gitignore | 1 | ||||
-rw-r--r-- | vdslib/src/tests/CMakeLists.txt | 18 | ||||
-rw-r--r-- | vdslib/src/tests/bucketdistribution/CMakeLists.txt | 1 | ||||
-rw-r--r-- | vdslib/src/tests/bucketdistribution/bucketdistributiontest.cpp | 50 | ||||
-rw-r--r-- | vdslib/src/tests/gtest_runner.cpp | 14 |
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(); +} + |