diff options
author | Geir Storli <geirst@verizonmedia.com> | 2019-02-18 13:12:37 +0000 |
---|---|---|
committer | Geir Storli <geirst@verizonmedia.com> | 2019-02-18 13:35:35 +0000 |
commit | f82f1cec65c02aff71039127ac361657e70ce06b (patch) | |
tree | 8401e58be7e33dc6b82a74ad3481588570142a90 /storage | |
parent | 1256e16527f31f6446690fe0b563215caae45d20 (diff) |
Add gtest runner in storage and migrate bucketmovertest from CppUnit to gtest.
Diffstat (limited to 'storage')
-rw-r--r-- | storage/src/tests/.gitignore | 1 | ||||
-rw-r--r-- | storage/src/tests/CMakeLists.txt | 18 | ||||
-rw-r--r-- | storage/src/tests/bucketmover/CMakeLists.txt | 1 | ||||
-rw-r--r-- | storage/src/tests/bucketmover/bucketmovertest.cpp | 58 | ||||
-rw-r--r-- | storage/src/tests/bucketmover/htmltabletest.cpp | 25 | ||||
-rw-r--r-- | storage/src/tests/gtest_runner.cpp | 14 | ||||
-rw-r--r-- | storage/src/vespa/storage/bucketmover/bucketmover.h | 4 |
7 files changed, 61 insertions, 60 deletions
diff --git a/storage/src/tests/.gitignore b/storage/src/tests/.gitignore index 9023e5da3b4..bec2d867a95 100644 --- a/storage/src/tests/.gitignore +++ b/storage/src/tests/.gitignore @@ -19,4 +19,5 @@ piefile.html piefile-customcols.html palette.html use_new_storage_core +storage_gtest_runner_app storage_testrunner_app diff --git a/storage/src/tests/CMakeLists.txt b/storage/src/tests/CMakeLists.txt index a0264bf2946..77582a17fb8 100644 --- a/storage/src/tests/CMakeLists.txt +++ b/storage/src/tests/CMakeLists.txt @@ -1,10 +1,26 @@ # 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(storage_gtest_runner_app TEST + SOURCES + gtest_runner.cpp + DEPENDS + storage_testbucketmover +) + +vespa_add_test( + NAME storage_gtest_runner_app + COMMAND storage_gtest_runner_app + DEPENDS storage_gtest_runner_app +) + +# Runner for unit tests written in CppUnit (DEPRECATED). vespa_add_executable(storage_testrunner_app TEST SOURCES testrunner.cpp DEPENDS storage_teststorageserver - storage_testbucketmover storage_testvisiting storage_testbucketdb storage_testcommon diff --git a/storage/src/tests/bucketmover/CMakeLists.txt b/storage/src/tests/bucketmover/CMakeLists.txt index 7daeb20c666..d4304477817 100644 --- a/storage/src/tests/bucketmover/CMakeLists.txt +++ b/storage/src/tests/bucketmover/CMakeLists.txt @@ -6,4 +6,5 @@ vespa_add_library(storage_testbucketmover TEST DEPENDS storage storage_testcommon + gtest ) diff --git a/storage/src/tests/bucketmover/bucketmovertest.cpp b/storage/src/tests/bucketmover/bucketmovertest.cpp index aad66624e89..a942843eb6a 100644 --- a/storage/src/tests/bucketmover/bucketmovertest.cpp +++ b/storage/src/tests/bucketmover/bucketmovertest.cpp @@ -6,52 +6,38 @@ #include <vespa/document/test/make_bucket_space.h> #include <vespa/document/test/make_document_bucket.h> #include <tests/common/dummystoragelink.h> -#include <tests/common/testhelper.h> #include <tests/common/teststorageapp.h> #include <vespa/config/common/exceptions.h> +#include <gtest/gtest.h> bool debug = false; using document::test::makeBucketSpace; using document::test::makeDocumentBucket; -namespace storage { -namespace bucketmover { +namespace storage::bucketmover { -struct BucketMoverTest : public CppUnit::TestFixture { +struct BucketMoverTest : public ::testing::Test { public: - void setUp() override; - void tearDown() override; - - void testNormalUsage(); - void testMaxPending(); - void testErrorHandling(); - - CPPUNIT_TEST_SUITE(BucketMoverTest); - CPPUNIT_TEST(testNormalUsage); - CPPUNIT_TEST(testMaxPending); - CPPUNIT_TEST(testErrorHandling); - CPPUNIT_TEST_SUITE_END(); + void SetUp() override; + void TearDown() override; std::unique_ptr<TestServiceLayerApp> _node; std::unique_ptr<ServiceLayerComponent> _component; std::unique_ptr<BucketMover> _bucketMover; DummyStorageLink* after; -private: void addBucket(const document::BucketId& id, uint16_t idealDiff); }; -CPPUNIT_TEST_SUITE_REGISTRATION(BucketMoverTest); - void -BucketMoverTest::tearDown() +BucketMoverTest::TearDown() { _node.reset(0); } void -BucketMoverTest::setUp() +BucketMoverTest::SetUp() { try { _node.reset(new TestServiceLayerApp(DiskCount(4))); @@ -83,8 +69,7 @@ BucketMoverTest::addBucket(const document::BucketId& id, entry.write(); } -void -BucketMoverTest::testNormalUsage() +TEST_F(BucketMoverTest, testNormalUsage) { for (uint32_t i = 1; i < 4; ++i) { addBucket(document::BucketId(16, i), 1); @@ -97,15 +82,15 @@ BucketMoverTest::testNormalUsage() _bucketMover->tick(); std::vector<api::StorageMessage::SP> msgs = after->getCommandsOnce(); - CPPUNIT_ASSERT_EQUAL( + EXPECT_EQ( std::string("BucketDiskMoveCommand(" "BucketId(0x4000000000000002), source 3, target 2)"), msgs[0]->toString()); - CPPUNIT_ASSERT_EQUAL( + EXPECT_EQ( std::string("BucketDiskMoveCommand(" "BucketId(0x4000000000000001), source 2, target 1)"), msgs[1]->toString()); - CPPUNIT_ASSERT_EQUAL( + EXPECT_EQ( std::string("BucketDiskMoveCommand(" "BucketId(0x4000000000000003), source 1, target 0)"), msgs[2]->toString()); @@ -117,13 +102,12 @@ BucketMoverTest::testNormalUsage() } _bucketMover->tick(); - CPPUNIT_ASSERT_EQUAL(0, (int)after->getNumCommands()); + EXPECT_EQ(0, (int)after->getNumCommands()); _bucketMover->finishCurrentRun(); } -void -BucketMoverTest::testMaxPending() +TEST_F(BucketMoverTest, testMaxPending) { for (uint32_t i = 1; i < 100; ++i) { addBucket(document::BucketId(16, i), 1); @@ -137,7 +121,7 @@ BucketMoverTest::testMaxPending() std::vector<api::StorageMessage::SP> msgs = after->getCommandsOnce(); // 5 is the max pending default config. - CPPUNIT_ASSERT_EQUAL(5, (int)msgs.size()); + EXPECT_EQ(5, (int)msgs.size()); after->sendUp(std::shared_ptr<api::StorageMessage>( ((api::StorageCommand*)msgs[3].get())-> @@ -146,11 +130,10 @@ BucketMoverTest::testMaxPending() _bucketMover->tick(); std::vector<api::StorageMessage::SP> msgs2 = after->getCommandsOnce(); - CPPUNIT_ASSERT_EQUAL(1, (int)msgs2.size()); + EXPECT_EQ(1, (int)msgs2.size()); } -void -BucketMoverTest::testErrorHandling() +TEST_F(BucketMoverTest, testErrorHandling) { for (uint32_t i = 1; i < 100; ++i) { addBucket(document::BucketId(16, i), 1); @@ -164,7 +147,7 @@ BucketMoverTest::testErrorHandling() std::vector<api::StorageMessage::SP> msgs = after->getCommandsOnce(); // 5 is the max pending default config. - CPPUNIT_ASSERT_EQUAL(5, (int)msgs.size()); + EXPECT_EQ(5, (int)msgs.size()); BucketDiskMoveCommand& cmd = static_cast<BucketDiskMoveCommand&>(*msgs[0]); uint32_t targetDisk = cmd.getDstDisk(); @@ -182,13 +165,12 @@ BucketMoverTest::testErrorHandling() _bucketMover->tick(); std::vector<api::StorageMessage::SP> msgs2 = after->getCommandsOnce(); - CPPUNIT_ASSERT_EQUAL(5, (int)msgs2.size()); + EXPECT_EQ(5, (int)msgs2.size()); for (uint32_t i = 0; i < msgs2.size(); ++i) { BucketDiskMoveCommand& bdm = static_cast<BucketDiskMoveCommand&>(*msgs2[i]); - CPPUNIT_ASSERT(bdm.getDstDisk() != targetDisk); + EXPECT_NE(bdm.getDstDisk(), targetDisk); } } -} // bucketmover -} // storage +} diff --git a/storage/src/tests/bucketmover/htmltabletest.cpp b/storage/src/tests/bucketmover/htmltabletest.cpp index 032aa4f311a..8791ae1ec8d 100644 --- a/storage/src/tests/bucketmover/htmltabletest.cpp +++ b/storage/src/tests/bucketmover/htmltabletest.cpp @@ -1,24 +1,11 @@ // Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. #include <vespa/storage/bucketmover/htmltable.h> -#include <tests/common/testhelper.h> +#include <gtest/gtest.h> namespace storage { -struct HtmlTableTest : public CppUnit::TestFixture { - - void testPercentageColumn(); - void testByteSizeColumn(); - - CPPUNIT_TEST_SUITE(HtmlTableTest); - CPPUNIT_TEST(testPercentageColumn); - CPPUNIT_TEST(testByteSizeColumn); - CPPUNIT_TEST_SUITE_END(); -}; - -CPPUNIT_TEST_SUITE_REGISTRATION(HtmlTableTest); - -void HtmlTableTest::testPercentageColumn() +TEST(HtmlTableTest, testPercentageColumn) { // With total hardcoded to 100 { @@ -43,7 +30,7 @@ void HtmlTableTest::testPercentageColumn() "<tr><td>1</td><td bgcolor=\"#ffffa0\" align=\"right\">80.00 %</td></tr>\n" "<tr><td>2</td><td bgcolor=\"#ffa0a0\" align=\"right\">100.00 %</td></tr>\n" "</table>\n"); - CPPUNIT_ASSERT_EQUAL(expected, ost.str()); + EXPECT_EQ(expected, ost.str()); } // With automatically gathered total { @@ -65,11 +52,11 @@ void HtmlTableTest::testPercentageColumn() "<tr><td>1</td><td align=\"right\">38.10 %</td></tr>\n" "<tr><td>2</td><td align=\"right\">47.62 %</td></tr>\n" "</table>\n"); - CPPUNIT_ASSERT_EQUAL(expected, ost.str()); + EXPECT_EQ(expected, ost.str()); } } -void HtmlTableTest::testByteSizeColumn() +TEST(HtmlTableTest, testByteSizeColumn) { { HtmlTable table("disk"); @@ -91,7 +78,7 @@ void HtmlTableTest::testByteSizeColumn() "<tr><td>1</td><td align=\"right\">118 MB</td></tr>\n" "<tr><td>2</td><td align=\"right\">5 MB</td></tr>\n" "</table>\n"); - CPPUNIT_ASSERT_EQUAL(expected, ost.str()); + EXPECT_EQ(expected, ost.str()); } } diff --git a/storage/src/tests/gtest_runner.cpp b/storage/src/tests/gtest_runner.cpp new file mode 100644 index 00000000000..f3400187ff4 --- /dev/null +++ b/storage/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("storage_gtest_runner"); + +int +main(int argc, char* argv[]) +{ + ::testing::InitGoogleTest(&argc, argv); + return RUN_ALL_TESTS(); +} + diff --git a/storage/src/vespa/storage/bucketmover/bucketmover.h b/storage/src/vespa/storage/bucketmover/bucketmover.h index 2d706517ee0..57829eb91bd 100644 --- a/storage/src/vespa/storage/bucketmover/bucketmover.h +++ b/storage/src/vespa/storage/bucketmover/bucketmover.h @@ -69,6 +69,8 @@ public: // Useful for unit testing vespa::config::content::core::StorBucketmoverConfig& getConfig() { return *_config; } RunStatistics& getLastRunStats() { return *_history.begin(); } + bool tick(); + void finishCurrentRun(); private: friend struct BucketMoverTest; @@ -76,8 +78,6 @@ private: void startNewRun(); void queueNewMoves(); void sendNewMoves(); - void finishCurrentRun(); - bool tick(); void configure(std::unique_ptr<vespa::config::content::core::StorBucketmoverConfig>) override; void run(framework::ThreadHandle&) override; |