diff options
author | Tor Egge <Tor.Egge@broadpark.no> | 2019-04-17 11:57:19 +0200 |
---|---|---|
committer | Tor Egge <Tor.Egge@broadpark.no> | 2019-04-17 12:45:15 +0200 |
commit | 5f8c923e8bd72c71de76ece5b79cceeffb37dea3 (patch) | |
tree | f29d55f166c16d107476069240281d70ea8bec32 /persistence/src/tests | |
parent | 8ccf68c4466fdd50a8e3d7de9292c59f9895b7e2 (diff) |
Migrate persistence unit tests from cppunit to gtest.
Diffstat (limited to 'persistence/src/tests')
-rw-r--r-- | persistence/src/tests/CMakeLists.txt | 1 | ||||
-rw-r--r-- | persistence/src/tests/dummyimpl/CMakeLists.txt | 8 | ||||
-rw-r--r-- | persistence/src/tests/dummyimpl/dummyimpltest.cpp | 47 | ||||
-rw-r--r-- | persistence/src/tests/spi/CMakeLists.txt | 1 | ||||
-rw-r--r-- | persistence/src/tests/spi/clusterstatetest.cpp | 112 | ||||
-rw-r--r-- | persistence/src/tests/testrunner.cpp | 11 |
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() |