From 3a19ff2f02d8da2a9b8f62967da9c8ebb1d989ae Mon Sep 17 00:00:00 2001 From: Tor Egge Date: Mon, 11 Mar 2024 21:24:52 +0100 Subject: Rewrite searchcore DiskIndexCleaner unit test to gtest. --- searchcore/src/tests/proton/index/CMakeLists.txt | 1 + .../tests/proton/index/diskindexcleaner_test.cpp | 72 ++++++++++------------ 2 files changed, 35 insertions(+), 38 deletions(-) diff --git a/searchcore/src/tests/proton/index/CMakeLists.txt b/searchcore/src/tests/proton/index/CMakeLists.txt index 40e3d8e7b79..4185d342293 100644 --- a/searchcore/src/tests/proton/index/CMakeLists.txt +++ b/searchcore/src/tests/proton/index/CMakeLists.txt @@ -32,6 +32,7 @@ vespa_add_executable(searchcore_diskindexcleaner_test_app TEST diskindexcleaner_test.cpp DEPENDS searchcore_index + GTest::gtest ) vespa_add_test(NAME searchcore_diskindexcleaner_test_app diff --git a/searchcore/src/tests/proton/index/diskindexcleaner_test.cpp b/searchcore/src/tests/proton/index/diskindexcleaner_test.cpp index 745d9c6a983..1aa79e11a57 100644 --- a/searchcore/src/tests/proton/index/diskindexcleaner_test.cpp +++ b/searchcore/src/tests/proton/index/diskindexcleaner_test.cpp @@ -3,53 +3,44 @@ #include #include -#include +#include #include #include #include -#include -LOG_SETUP("diskindexcleaner_test"); - using std::string; using std::vector; using namespace searchcorespi::index; namespace { -class Test : public vespalib::TestApp { - void requireThatAllIndexesOlderThanLastFusionIsRemoved(); - void requireThatIndexesInUseAreNotRemoved(); - void requireThatInvalidFlushIndexesAreRemoved(); - void requireThatInvalidFusionIndexesAreRemoved(); - void requireThatRemoveDontTouchNewIndexes(); - -public: - int Main() override; -}; - const string index_dir = "diskindexcleaner_test_data"; void removeTestData() { std::filesystem::remove_all(std::filesystem::path(index_dir)); } -int -Test::Main() -{ - TEST_INIT("diskindexcleaner_test"); - - TEST_DO(removeTestData()); +class DiskIndexCleanerTest : public ::testing::Test { +protected: + DiskIndexCleanerTest(); + ~DiskIndexCleanerTest() override; + void SetUp() override; + void TearDown() override; +}; - TEST_DO(requireThatAllIndexesOlderThanLastFusionIsRemoved()); - TEST_DO(requireThatIndexesInUseAreNotRemoved()); - TEST_DO(requireThatInvalidFlushIndexesAreRemoved()); - TEST_DO(requireThatInvalidFusionIndexesAreRemoved()); - TEST_DO(requireThatRemoveDontTouchNewIndexes()); +DiskIndexCleanerTest::DiskIndexCleanerTest() = default; +DiskIndexCleanerTest::~DiskIndexCleanerTest() = default; - TEST_DO(removeTestData()); +void +DiskIndexCleanerTest::SetUp() +{ + removeTestData(); +} - TEST_DONE(); +void +DiskIndexCleanerTest::TearDown() +{ + removeTestData(); } void createIndex(const string &name) { @@ -87,18 +78,20 @@ void createIndexes() { createIndex("index.flush.4"); } -void Test::requireThatAllIndexesOlderThanLastFusionIsRemoved() { +TEST_F(DiskIndexCleanerTest, require_that_all_indexes_older_than_last_fusion_is_removed) +{ createIndexes(); DiskIndexes disk_indexes; DiskIndexCleaner::clean(index_dir, disk_indexes); vector indexes = readIndexes(); - EXPECT_EQUAL(3u, indexes.size()); + EXPECT_EQ(3u, indexes.size()); EXPECT_TRUE(contains(indexes, "index.fusion.2")); EXPECT_TRUE(contains(indexes, "index.flush.3")); EXPECT_TRUE(contains(indexes, "index.flush.4")); } -void Test::requireThatIndexesInUseAreNotRemoved() { +TEST_F(DiskIndexCleanerTest, require_that_indexes_in_use_are_not_removed) +{ createIndexes(); DiskIndexes disk_indexes; disk_indexes.setActive(index_dir + "/index.fusion.1", 0); @@ -116,37 +109,40 @@ void Test::requireThatIndexesInUseAreNotRemoved() { EXPECT_TRUE(!contains(indexes, "index.flush.2")); } -void Test::requireThatInvalidFlushIndexesAreRemoved() { +TEST_F(DiskIndexCleanerTest, require_that_invalid_flush_indexes_are_removed) +{ createIndexes(); std::filesystem::remove(std::filesystem::path(index_dir + "/index.flush.4/serial.dat")); DiskIndexes disk_indexes; DiskIndexCleaner::clean(index_dir, disk_indexes); vector indexes = readIndexes(); - EXPECT_EQUAL(2u, indexes.size()); + EXPECT_EQ(2u, indexes.size()); EXPECT_TRUE(contains(indexes, "index.fusion.2")); EXPECT_TRUE(contains(indexes, "index.flush.3")); } -void Test::requireThatInvalidFusionIndexesAreRemoved() { +TEST_F(DiskIndexCleanerTest, require_that_invalid_fusion_indexes_are_removed) +{ createIndexes(); std::filesystem::remove(std::filesystem::path(index_dir + "/index.fusion.2/serial.dat")); DiskIndexes disk_indexes; DiskIndexCleaner::clean(index_dir, disk_indexes); vector indexes = readIndexes(); - EXPECT_EQUAL(4u, indexes.size()); + EXPECT_EQ(4u, indexes.size()); EXPECT_TRUE(contains(indexes, "index.fusion.1")); EXPECT_TRUE(contains(indexes, "index.flush.2")); EXPECT_TRUE(contains(indexes, "index.flush.3")); EXPECT_TRUE(contains(indexes, "index.flush.4")); } -void Test::requireThatRemoveDontTouchNewIndexes() { +TEST_F(DiskIndexCleanerTest, require_that_remove_doesnt_touch_new_indexes) +{ createIndexes(); std::filesystem::remove(std::filesystem::path(index_dir + "/index.flush.4/serial.dat")); DiskIndexes disk_indexes; DiskIndexCleaner::removeOldIndexes(index_dir, disk_indexes); vector indexes = readIndexes(); - EXPECT_EQUAL(3u, indexes.size()); + EXPECT_EQ(3u, indexes.size()); EXPECT_TRUE(contains(indexes, "index.fusion.2")); EXPECT_TRUE(contains(indexes, "index.flush.3")); EXPECT_TRUE(contains(indexes, "index.flush.4")); @@ -154,4 +150,4 @@ void Test::requireThatRemoveDontTouchNewIndexes() { } // namespace -TEST_APPHOOK(Test); +GTEST_MAIN_RUN_ALL_TESTS() -- cgit v1.2.3