summaryrefslogtreecommitdiffstats
path: root/persistence/src/tests
diff options
context:
space:
mode:
authorTor Egge <Tor.Egge@broadpark.no>2019-04-17 11:57:19 +0200
committerTor Egge <Tor.Egge@broadpark.no>2019-04-17 12:45:15 +0200
commit5f8c923e8bd72c71de76ece5b79cceeffb37dea3 (patch)
treef29d55f166c16d107476069240281d70ea8bec32 /persistence/src/tests
parent8ccf68c4466fdd50a8e3d7de9292c59f9895b7e2 (diff)
Migrate persistence unit tests from cppunit to gtest.
Diffstat (limited to 'persistence/src/tests')
-rw-r--r--persistence/src/tests/CMakeLists.txt1
-rw-r--r--persistence/src/tests/dummyimpl/CMakeLists.txt8
-rw-r--r--persistence/src/tests/dummyimpl/dummyimpltest.cpp47
-rw-r--r--persistence/src/tests/spi/CMakeLists.txt1
-rw-r--r--persistence/src/tests/spi/clusterstatetest.cpp112
-rw-r--r--persistence/src/tests/testrunner.cpp11
6 files changed, 80 insertions, 100 deletions
diff --git a/persistence/src/tests/CMakeLists.txt b/persistence/src/tests/CMakeLists.txt
index 396e9f99655..1f5c609dcc3 100644
--- a/persistence/src/tests/CMakeLists.txt
+++ b/persistence/src/tests/CMakeLists.txt
@@ -3,7 +3,6 @@ vespa_add_executable(persistence_testrunner_app TEST
SOURCES
testrunner.cpp
DEPENDS
- persistence_testdummyimpl
persistence_testspi
)
diff --git a/persistence/src/tests/dummyimpl/CMakeLists.txt b/persistence/src/tests/dummyimpl/CMakeLists.txt
index 9b008838d13..0a8993dd8b3 100644
--- a/persistence/src/tests/dummyimpl/CMakeLists.txt
+++ b/persistence/src/tests/dummyimpl/CMakeLists.txt
@@ -1,11 +1,17 @@
# Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
-vespa_add_library(persistence_testdummyimpl
+vespa_add_executable(persistence_dummyimpl_conformance_test_app TEST
SOURCES
dummyimpltest.cpp
DEPENDS
persistence_persistence_conformancetest
persistence
)
+
+vespa_add_test(
+ NAME persistence_dummyimpl_conformance_test_app
+ COMMAND persistence_dummyimpl_conformance_test_app
+)
+
vespa_add_executable(persistence_dummypersistence_test_app TEST
SOURCES
dummypersistence_test.cpp
diff --git a/persistence/src/tests/dummyimpl/dummyimpltest.cpp b/persistence/src/tests/dummyimpl/dummyimpltest.cpp
index 54876b01b81..6cf0b53766f 100644
--- a/persistence/src/tests/dummyimpl/dummyimpltest.cpp
+++ b/persistence/src/tests/dummyimpl/dummyimpltest.cpp
@@ -1,34 +1,41 @@
// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
-#include <vespa/vdstestlib/cppunit/macros.h>
#include <vespa/persistence/conformancetest/conformancetest.h>
#include <vespa/persistence/dummyimpl/dummypersistence.h>
#include <vespa/document/repo/documenttyperepo.h>
-namespace storage {
-namespace spi {
+#include <vespa/log/log.h>
+LOG_SETUP("persistence_dummyimpl_conformance_test");
-struct DummyImplTest : public ConformanceTest {
- struct Factory : public PersistenceFactory {
- using Repo = document::DocumentTypeRepo;
+namespace storage::spi {
- PersistenceProvider::UP
- getPersistenceImplementation(const std::shared_ptr<const Repo>& repo, const Repo::DocumenttypesConfig&) override {
- return PersistenceProvider::UP(new dummy::DummyPersistence(repo, 4));
- }
+namespace {
- bool supportsActiveState() const override { return true; }
- };
+struct DummyPersistenceFactory : public ConformanceTest::PersistenceFactory {
+ using Repo = document::DocumentTypeRepo;
- DummyImplTest()
- : ConformanceTest(PersistenceFactory::UP(new Factory)) {}
+ PersistenceProvider::UP
+ getPersistenceImplementation(const std::shared_ptr<const Repo>& repo, const Repo::DocumenttypesConfig&) override {
+ return PersistenceProvider::UP(new dummy::DummyPersistence(repo, 4));
+ }
- CPPUNIT_TEST_SUITE(DummyImplTest);
- DEFINE_CONFORMANCE_TESTS();
- CPPUNIT_TEST_SUITE_END();
+ bool supportsActiveState() const override { return true; }
};
-CPPUNIT_TEST_SUITE_REGISTRATION(DummyImplTest);
+std::unique_ptr<ConformanceTest::PersistenceFactory>
+makeDummyPersistenceFactory(const std::string &)
+{
+ return std::make_unique<DummyPersistenceFactory>();
+}
-} // spi
-} // storage
+}
+
+}
+
+int
+main(int argc, char* argv[])
+{
+ ::testing::InitGoogleTest(&argc, argv);
+ storage::spi::ConformanceTest::_factoryFactory = &storage::spi::makeDummyPersistenceFactory;
+ return RUN_ALL_TESTS();
+}
diff --git a/persistence/src/tests/spi/CMakeLists.txt b/persistence/src/tests/spi/CMakeLists.txt
index a130573e028..1a9a23bf112 100644
--- a/persistence/src/tests/spi/CMakeLists.txt
+++ b/persistence/src/tests/spi/CMakeLists.txt
@@ -3,6 +3,5 @@ vespa_add_library(persistence_testspi
SOURCES
clusterstatetest.cpp
DEPENDS
- persistence_persistence_conformancetest
persistence
)
diff --git a/persistence/src/tests/spi/clusterstatetest.cpp b/persistence/src/tests/spi/clusterstatetest.cpp
index f742ca48284..d60330690a9 100644
--- a/persistence/src/tests/spi/clusterstatetest.cpp
+++ b/persistence/src/tests/spi/clusterstatetest.cpp
@@ -1,119 +1,95 @@
// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
-#include <vespa/vdstestlib/cppunit/macros.h>
-#include <vespa/persistence/conformancetest/conformancetest.h>
#include <vespa/persistence/spi/test.h>
#include <vespa/persistence/dummyimpl/dummypersistence.h>
#include <vespa/vdslib/distribution/distribution.h>
#include <vespa/vdslib/state/clusterstate.h>
#include <vespa/config-stor-distribution.h>
+#include <gtest/gtest.h>
using storage::spi::test::makeSpiBucket;
-namespace storage {
-namespace spi {
+namespace storage::spi {
-struct ClusterStateTest : public CppUnit::TestFixture {
- ClusterStateTest() {}
-
- CPPUNIT_TEST_SUITE(ClusterStateTest);
- CPPUNIT_TEST(testClusterUp);
- CPPUNIT_TEST(testNodeUp);
- CPPUNIT_TEST(testNodeInitializing);
- CPPUNIT_TEST(testReady);
- CPPUNIT_TEST(can_infer_own_node_retired_state);
- CPPUNIT_TEST_SUITE_END();
-
- void testClusterUp();
- void testNodeUp();
- void testNodeInitializing();
- void testReady();
- void can_infer_own_node_retired_state();
-};
-
-CPPUNIT_TEST_SUITE_REGISTRATION(ClusterStateTest);
-
-void
-ClusterStateTest::testClusterUp()
+TEST(ClusterStateTest, testClusterUp)
{
lib::Distribution d(lib::Distribution::getDefaultDistributionConfig(3, 3));
{
lib::ClusterState s("version:1 storage:3 distributor:3");
ClusterState state(s, 0, d);
- CPPUNIT_ASSERT_EQUAL(true, state.clusterUp());
+ EXPECT_EQ(true, state.clusterUp());
}
{
lib::ClusterState s("version:1 storage:3 .0.s:d distributor:3");
ClusterState state(s, 0, d);
- CPPUNIT_ASSERT_EQUAL(true, state.clusterUp());
+ EXPECT_EQ(true, state.clusterUp());
}
{
lib::ClusterState s("version:1 cluster:d storage:3 .0.s:d distributor:3");
ClusterState state(s, 0, d);
- CPPUNIT_ASSERT_EQUAL(false, state.clusterUp());
+ EXPECT_EQ(false, state.clusterUp());
}
{
lib::ClusterState s("version:1 cluster:d storage:3 distributor:3");
ClusterState state(s, 0, d);
- CPPUNIT_ASSERT_EQUAL(false, state.clusterUp());
+ EXPECT_EQ(false, state.clusterUp());
}
}
-void
-ClusterStateTest::testNodeUp()
+TEST(ClusterStateTest, testNodeUp)
{
lib::Distribution d(lib::Distribution::getDefaultDistributionConfig(3, 3));
{
lib::ClusterState s("version:1 storage:3 distributor:3");
ClusterState state(s, 0, d);
- CPPUNIT_ASSERT_EQUAL(true, state.nodeUp());
+ EXPECT_EQ(true, state.nodeUp());
}
{
lib::ClusterState s("version:1 storage:3 .0.s:d distributor:3");
ClusterState state(s, 0, d);
- CPPUNIT_ASSERT_EQUAL(false, state.nodeUp());
+ EXPECT_EQ(false, state.nodeUp());
}
{
lib::ClusterState s("version:1 storage:3 .0.s:d distributor:3");
ClusterState state(s, 1, d);
- CPPUNIT_ASSERT_EQUAL(true, state.nodeUp());
+ EXPECT_EQ(true, state.nodeUp());
}
{
lib::ClusterState s("version:1 cluster:d storage:3 distributor:3");
ClusterState state(s, 0, d);
- CPPUNIT_ASSERT_EQUAL(true, state.nodeUp());
+ EXPECT_EQ(true, state.nodeUp());
}
{
lib::ClusterState s("version:1 cluster:d storage:3 distributor:3 .0.s:d");
ClusterState state(s, 0, d);
- CPPUNIT_ASSERT_EQUAL(true, state.nodeUp());
+ EXPECT_EQ(true, state.nodeUp());
}
{
lib::ClusterState s("version:1 cluster:d storage:3 .0.s:d distributor:3");
ClusterState state(s, 0, d);
- CPPUNIT_ASSERT_EQUAL(false, state.nodeUp());
+ EXPECT_EQ(false, state.nodeUp());
}
{
lib::ClusterState s("version:1 cluster:d storage:3 .0.s:r distributor:3");
ClusterState state(s, 0, d);
- CPPUNIT_ASSERT_EQUAL(true, state.nodeUp());
+ EXPECT_EQ(true, state.nodeUp());
}
{
lib::ClusterState s("version:1 cluster:d storage:3 .0.s:i distributor:3");
ClusterState state(s, 0, d);
- CPPUNIT_ASSERT_EQUAL(true, state.nodeUp());
+ EXPECT_EQ(true, state.nodeUp());
}
}
@@ -131,28 +107,27 @@ nodeMarkedAsInitializingInState(const std::string& stateStr,
} // anon ns
-void
-ClusterStateTest::testNodeInitializing()
+TEST(ClusterStateTest, testNodeInitializing)
{
lib::Distribution d(lib::Distribution::getDefaultDistributionConfig(3, 3));
- CPPUNIT_ASSERT(!nodeMarkedAsInitializingInState(
+ EXPECT_TRUE(!nodeMarkedAsInitializingInState(
"version:1 storage:3 distributor:3", d, 0));
- CPPUNIT_ASSERT(nodeMarkedAsInitializingInState(
+ EXPECT_TRUE(nodeMarkedAsInitializingInState(
"version:1 storage:3 .0.s:i distributor:3", d, 0));
- CPPUNIT_ASSERT(!nodeMarkedAsInitializingInState(
+ EXPECT_TRUE(!nodeMarkedAsInitializingInState(
"version:1 storage:3 .0.s:i distributor:3", d, 1));
// To mirror nodeUp functionality, we ignore cluster state.
- CPPUNIT_ASSERT(nodeMarkedAsInitializingInState(
+ EXPECT_TRUE(nodeMarkedAsInitializingInState(
"version:1 cluster:d storage:3 .0.s:i distributor:3", d, 0));
// Distributors don't technically have init state, but just go with it.
- CPPUNIT_ASSERT(!nodeMarkedAsInitializingInState(
+ EXPECT_TRUE(!nodeMarkedAsInitializingInState(
"version:1 storage:3 distributor:3 .0.s:i", d, 0));
- CPPUNIT_ASSERT(!nodeMarkedAsInitializingInState(
+ EXPECT_TRUE(!nodeMarkedAsInitializingInState(
"version:1 storage:3 .0.s:d distributor:3", d, 0));
- CPPUNIT_ASSERT(!nodeMarkedAsInitializingInState(
+ EXPECT_TRUE(!nodeMarkedAsInitializingInState(
"version:1 storage:3 .0.s:r distributor:3", d, 0));
- CPPUNIT_ASSERT(!nodeMarkedAsInitializingInState(
+ EXPECT_TRUE(!nodeMarkedAsInitializingInState(
"version:1 storage:3 .0.s:m distributor:3", d, 0));
}
@@ -167,8 +142,7 @@ lib::Distribution::DistributionConfig getCfg(uint16_t redundancy, uint16_t ready
}
-void
-ClusterStateTest::testReady()
+TEST(ClusterStateTest, testReady)
{
lib::ClusterState s("version:1 storage:3 distributor:3");
@@ -180,35 +154,35 @@ ClusterStateTest::testReady()
{
lib::Distribution d(getCfg(3, 0));
ClusterState state(s, 0, d);
- CPPUNIT_ASSERT_EQUAL(false, state.shouldBeReady(b));
+ EXPECT_EQ(false, state.shouldBeReady(b));
}
// Only node 0 with 1 ready copy.
for (uint32_t i = 0; i < 3; ++i) {
lib::Distribution d(getCfg(3, 1));
ClusterState state(s, i, d);
- CPPUNIT_ASSERT_EQUAL(i == 0, state.shouldBeReady(b));
+ EXPECT_EQ(i == 0, state.shouldBeReady(b));
}
// All of them with 3 ready copies
for (uint32_t i = 0; i < 3; ++i) {
lib::Distribution d(getCfg(3, 3));
ClusterState state(s, i, d);
- CPPUNIT_ASSERT_EQUAL(true, state.shouldBeReady(b));
+ EXPECT_EQ(true, state.shouldBeReady(b));
}
// Node 0 and node 1 with 2 ready copies.
for (uint32_t i = 0; i < 3; ++i) {
lib::Distribution d(getCfg(3, 2));
ClusterState state(s, i, d);
- CPPUNIT_ASSERT_EQUAL(i == 0 || i == 2, state.shouldBeReady(b));
+ EXPECT_EQ(i == 0 || i == 2, state.shouldBeReady(b));
}
// All of them with 3 ready copies
for (uint32_t i = 0; i < 3; ++i) {
lib::Distribution d(getCfg(3, 3));
ClusterState state(s, i, d);
- CPPUNIT_ASSERT_EQUAL(true, state.shouldBeReady(b));
+ EXPECT_EQ(true, state.shouldBeReady(b));
}
lib::ClusterState s2("version:1 storage:3 .0.s:d distributor:3");
@@ -217,13 +191,13 @@ ClusterStateTest::testReady()
for (uint32_t i = 0; i < 3; ++i) {
lib::Distribution d(getCfg(3, 2));
ClusterState state(s2, i, d);
- CPPUNIT_ASSERT_EQUAL(i == 1 || i == 2, state.shouldBeReady(b));
+ EXPECT_EQ(i == 1 || i == 2, state.shouldBeReady(b));
}
for (uint32_t i = 0; i < 3; ++i) {
lib::Distribution d(getCfg(3, 1));
ClusterState state(s2, i, d);
- CPPUNIT_ASSERT_EQUAL(i == 2, state.shouldBeReady(b));
+ EXPECT_EQ(i == 2, state.shouldBeReady(b));
}
}
@@ -241,17 +215,17 @@ node_marked_as_retired_in_state(const std::string& stateStr,
}
-void ClusterStateTest::can_infer_own_node_retired_state() {
+TEST(ClusterStateTest, can_infer_own_node_retired_state)
+{
lib::Distribution d(lib::Distribution::getDefaultDistributionConfig(3, 3));
- CPPUNIT_ASSERT(!node_marked_as_retired_in_state("distributor:3 storage:3", d, 0));
- CPPUNIT_ASSERT(!node_marked_as_retired_in_state("distributor:3 storage:3 .0.s:i", d, 0));
- CPPUNIT_ASSERT(!node_marked_as_retired_in_state("distributor:3 storage:3 .0.s:d", d, 0));
- CPPUNIT_ASSERT(!node_marked_as_retired_in_state("distributor:3 storage:3 .0.s:m", d, 0));
- CPPUNIT_ASSERT(node_marked_as_retired_in_state("distributor:3 storage:3 .0.s:r", d, 0));
- CPPUNIT_ASSERT(!node_marked_as_retired_in_state("distributor:3 storage:3 .0.s:r", d, 1));
- CPPUNIT_ASSERT(!node_marked_as_retired_in_state("distributor:3 storage:3 .1.s:r", d, 0));
+ EXPECT_TRUE(!node_marked_as_retired_in_state("distributor:3 storage:3", d, 0));
+ EXPECT_TRUE(!node_marked_as_retired_in_state("distributor:3 storage:3 .0.s:i", d, 0));
+ EXPECT_TRUE(!node_marked_as_retired_in_state("distributor:3 storage:3 .0.s:d", d, 0));
+ EXPECT_TRUE(!node_marked_as_retired_in_state("distributor:3 storage:3 .0.s:m", d, 0));
+ EXPECT_TRUE(node_marked_as_retired_in_state("distributor:3 storage:3 .0.s:r", d, 0));
+ EXPECT_TRUE(!node_marked_as_retired_in_state("distributor:3 storage:3 .0.s:r", d, 1));
+ EXPECT_TRUE(!node_marked_as_retired_in_state("distributor:3 storage:3 .1.s:r", d, 0));
}
-} // spi
-} // storage
+}
diff --git a/persistence/src/tests/testrunner.cpp b/persistence/src/tests/testrunner.cpp
index 7bd12fedce5..0a46cc17ac6 100644
--- a/persistence/src/tests/testrunner.cpp
+++ b/persistence/src/tests/testrunner.cpp
@@ -1,13 +1,8 @@
// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
-#include <vespa/vdstestlib/cppunit/cppunittestrunner.h>
+#include <vespa/vespalib/gtest/gtest.h>
#include <vespa/log/log.h>
-LOG_SETUP("persistencecppunittests");
+LOG_SETUP("persistenceunittests");
-int
-main(int argc, const char *argv[])
-{
- vdstestlib::CppUnitTestRunner testRunner;
- return testRunner.run(argc, argv);
-}
+GTEST_MAIN_RUN_ALL_TESTS()