diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2017-08-04 14:47:11 +0200 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2017-08-04 14:47:11 +0200 |
commit | 7ec911ecb9dac0966ed3c4f70d6545002f589c1a (patch) | |
tree | cf3de077b2efeb04ae21845ba52b5646dbb8c09c /searchlib/src/tests/docstore | |
parent | bd032a4734d39a7d6b91a4455694d692eb0a11fe (diff) |
Clean up incompletely compacted files at startup.
Diffstat (limited to 'searchlib/src/tests/docstore')
-rw-r--r-- | searchlib/src/tests/docstore/logdatastore/logdatastore_test.cpp | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/searchlib/src/tests/docstore/logdatastore/logdatastore_test.cpp b/searchlib/src/tests/docstore/logdatastore/logdatastore_test.cpp index 57763b931f5..18b9886167c 100644 --- a/searchlib/src/tests/docstore/logdatastore/logdatastore_test.cpp +++ b/searchlib/src/tests/docstore/logdatastore/logdatastore_test.cpp @@ -953,6 +953,30 @@ TEST_F("require that lid space can be shrunk only after read guards are deleted" EXPECT_EQUAL(8u, f.store.getEstimatedShrinkLidSpaceGain()); } +LogDataStore::NameIdSet create(std::vector<size_t> list) { + LogDataStore::NameIdSet l; + for (size_t id : list) { + l.emplace(id); + } + return l; +} + +TEST("require that findIncompleteCompactedFiles does expected filtering") { + EXPECT_TRUE(LogDataStore::findIncompleteCompactedFiles(create({1,3,100,200,202,204})).empty()); + LogDataStore::NameIdSet toRemove = LogDataStore::findIncompleteCompactedFiles(create({1,3,100,200,201,204})); + EXPECT_EQUAL(1u, toRemove.size()); + EXPECT_TRUE(toRemove.find(FileChunk::NameId(201)) != toRemove.end()); + toRemove = LogDataStore::findIncompleteCompactedFiles(create({1,2,4,100,200,201,204,205})); + EXPECT_EQUAL(3u, toRemove.size()); + EXPECT_TRUE(toRemove.find(FileChunk::NameId(2)) != toRemove.end()); + EXPECT_TRUE(toRemove.find(FileChunk::NameId(201)) != toRemove.end()); + EXPECT_TRUE(toRemove.find(FileChunk::NameId(205)) != toRemove.end()); + + EXPECT_EXCEPTION(LogDataStore::findIncompleteCompactedFiles(create({1,3,100,200,201,202,204})).empty(), + vespalib::IllegalStateException, "3 consecutive files {200, 201, 202}. Impossible"); + +} + TEST_MAIN() { DummyFileHeaderContext::setCreator("logdatastore_test"); TEST_RUN_ALL(); |