summaryrefslogtreecommitdiffstats
path: root/storage
diff options
context:
space:
mode:
authorGeir Storli <geirst@verizonmedia.com>2019-02-18 13:12:37 +0000
committerGeir Storli <geirst@verizonmedia.com>2019-02-18 13:35:35 +0000
commitf82f1cec65c02aff71039127ac361657e70ce06b (patch)
tree8401e58be7e33dc6b82a74ad3481588570142a90 /storage
parent1256e16527f31f6446690fe0b563215caae45d20 (diff)
Add gtest runner in storage and migrate bucketmovertest from CppUnit to gtest.
Diffstat (limited to 'storage')
-rw-r--r--storage/src/tests/.gitignore1
-rw-r--r--storage/src/tests/CMakeLists.txt18
-rw-r--r--storage/src/tests/bucketmover/CMakeLists.txt1
-rw-r--r--storage/src/tests/bucketmover/bucketmovertest.cpp58
-rw-r--r--storage/src/tests/bucketmover/htmltabletest.cpp25
-rw-r--r--storage/src/tests/gtest_runner.cpp14
-rw-r--r--storage/src/vespa/storage/bucketmover/bucketmover.h4
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;