Merge pull request #648 from kiwix/unique_readers_in_searcher

This commit is contained in:
Matthieu Gautier 2021-12-16 17:17:46 +01:00 committed by GitHub
commit 90910c5cab
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 19 additions and 1 deletions

View File

@ -94,6 +94,12 @@ bool Searcher::add_reader(Reader* reader)
if (!reader->hasFulltextIndex()) { if (!reader->hasFulltextIndex()) {
return false; return false;
} }
for ( const Reader* const existing_reader : readers ) {
if ( existing_reader->getZimArchive()->getUuid() == reader->getZimArchive()->getUuid() )
return false;
}
this->readers.push_back(reader); this->readers.push_back(reader);
return true; return true;
} }

View File

@ -5,6 +5,18 @@
namespace kiwix namespace kiwix
{ {
TEST(Searcher, add_reader) {
Reader reader1("./test/example.zim");
Reader reader2("./test/example.zim");
Reader reader3("./test/../test/example.zim");
Searcher searcher;
ASSERT_TRUE (searcher.add_reader(&reader1));
ASSERT_FALSE(searcher.add_reader(&reader1));
ASSERT_FALSE(searcher.add_reader(&reader2));
ASSERT_FALSE(searcher.add_reader(&reader3));
}
TEST(Searcher, search) { TEST(Searcher, search) {
Reader reader("./test/example.zim"); Reader reader("./test/example.zim");
@ -64,4 +76,4 @@ TEST(Searcher, incrementalRange) {
ASSERT_EQ(suggCount, 50); ASSERT_EQ(suggCount, 50);
} }
} }