diff options
author | Geir Storli <geirst@vespa.ai> | 2024-03-12 12:35:09 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-03-12 12:35:09 +0100 |
commit | 087850a03bafbecd13c474df4f9c3b32a9cd54dc (patch) | |
tree | 1ff54fb9e34aa1bb48a37c37cced51edd598699a /searchcore | |
parent | d09ae9d8228f4bf7cfba189a6e96b437f87554b4 (diff) | |
parent | 3a19ff2f02d8da2a9b8f62967da9c8ebb1d989ae (diff) |
Merge pull request #30579 from vespa-engine/toregge/rewrite-searchcore-disk-index-cleaner-unit-test-to-gtest
Rewrite searchcore DiskIndexCleaner unit test to gtest.
Diffstat (limited to 'searchcore')
-rw-r--r-- | searchcore/src/tests/proton/index/CMakeLists.txt | 1 | ||||
-rw-r--r-- | searchcore/src/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 <vespa/searchcorespi/index/disk_indexes.h> #include <vespa/searchcorespi/index/diskindexcleaner.h> -#include <vespa/vespalib/testkit/testapp.h> +#include <vespa/vespalib/gtest/gtest.h> #include <vespa/fastos/file.h> #include <algorithm> #include <filesystem> -#include <vespa/log/log.h> -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<string> 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<string> 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<string> 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<string> 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() |