aboutsummaryrefslogtreecommitdiffstats
path: root/searchlib/src/tests
diff options
context:
space:
mode:
Diffstat (limited to 'searchlib/src/tests')
-rw-r--r--searchlib/src/tests/memoryindex/document_inverter/document_inverter_test.cpp47
-rw-r--r--searchlib/src/tests/memoryindex/document_inverter_collection/document_inverter_collection_test.cpp8
-rw-r--r--searchlib/src/tests/memoryindex/field_inverter/field_inverter_test.cpp49
-rw-r--r--searchlib/src/tests/memoryindex/url_field_inverter/url_field_inverter_test.cpp39
4 files changed, 71 insertions, 72 deletions
diff --git a/searchlib/src/tests/memoryindex/document_inverter/document_inverter_test.cpp b/searchlib/src/tests/memoryindex/document_inverter/document_inverter_test.cpp
index bf9bbf1007a..dec21c64456 100644
--- a/searchlib/src/tests/memoryindex/document_inverter/document_inverter_test.cpp
+++ b/searchlib/src/tests/memoryindex/document_inverter/document_inverter_test.cpp
@@ -9,7 +9,9 @@
#include <vespa/searchlib/memoryindex/i_field_index_collection.h>
#include <vespa/searchlib/memoryindex/word_store.h>
#include <vespa/searchlib/test/memoryindex/mock_field_index_collection.h>
-#include <vespa/searchlib/test/memoryindex/ordered_field_index_inserter.h>
+#include <vespa/searchlib/test/memoryindex/ordered_field_index_inserter_backend.h>
+#include <vespa/vespalib/util/gate.h>
+#include <vespa/vespalib/util/destructor_callbacks.h>
#include <vespa/vespalib/util/sequencedtaskexecutor.h>
#include <vespa/vespalib/gtest/gtest.h>
@@ -99,7 +101,7 @@ struct DocumentInverterTest : public ::testing::Test {
std::unique_ptr<ISequencedTaskExecutor> _pushThreads;
WordStore _word_store;
FieldIndexRemover _remover;
- test::OrderedFieldIndexInserter _inserter;
+ test::OrderedFieldIndexInserterBackend _inserter_backend;
FieldLengthCalculator _calculator;
test::MockFieldIndexCollection _fic;
DocumentInverterContext _inv_context;
@@ -117,27 +119,22 @@ struct DocumentInverterTest : public ::testing::Test {
DocumentInverterTest()
: _schema(makeSchema()),
_b(_schema),
- _invertThreads(SequencedTaskExecutor::create(invert_executor, 2)),
- _pushThreads(SequencedTaskExecutor::create(push_executor, 2)),
+ _invertThreads(SequencedTaskExecutor::create(invert_executor, 1)),
+ _pushThreads(SequencedTaskExecutor::create(push_executor, 1)),
_word_store(),
_remover(_word_store),
- _inserter(),
+ _inserter_backend(),
_calculator(),
- _fic(_remover, _inserter, _calculator),
+ _fic(_remover, _inserter_backend, _calculator),
_inv_context(_schema, *_invertThreads, *_pushThreads, _fic),
_inv(_inv_context)
{
}
void pushDocuments() {
- _invertThreads->sync_all();
- uint32_t fieldId = 0;
- for (auto &inverter : _inv.getInverters()) {
- _inserter.setFieldId(fieldId);
- inverter->pushDocuments();
- ++fieldId;
- }
- _pushThreads->sync_all();
+ vespalib::Gate gate;
+ _inv.pushDocuments(std::make_shared<vespalib::GateCallback>(gate));
+ gate.await();
}
};
@@ -149,7 +146,7 @@ TEST_F(DocumentInverterTest, require_that_fresh_insert_works)
"w=b,a=10,"
"w=c,a=10,"
"w=d,a=10",
- _inserter.toStr());
+ _inserter_backend.toStr());
}
TEST_F(DocumentInverterTest, require_that_multiple_docs_work)
@@ -164,7 +161,7 @@ TEST_F(DocumentInverterTest, require_that_multiple_docs_work)
"w=f,a=11,"
"f=1,w=a,a=11,"
"w=g,a=11",
- _inserter.toStr());
+ _inserter_backend.toStr());
}
TEST_F(DocumentInverterTest, require_that_remove_works)
@@ -179,7 +176,7 @@ TEST_F(DocumentInverterTest, require_that_remove_works)
"w=b,r=10,r=11,"
"f=1,w=a,r=10,"
"f=2,w=c,r=12",
- _inserter.toStr());
+ _inserter_backend.toStr());
}
TEST_F(DocumentInverterTest, require_that_reput_works)
@@ -193,7 +190,7 @@ TEST_F(DocumentInverterTest, require_that_reput_works)
"w=f,a=10,"
"f=1,w=a,a=10,"
"w=g,a=10",
- _inserter.toStr());
+ _inserter_backend.toStr());
}
TEST_F(DocumentInverterTest, require_that_abort_pending_doc_works)
@@ -214,7 +211,7 @@ TEST_F(DocumentInverterTest, require_that_abort_pending_doc_works)
"w=f,a=11,"
"f=1,w=a,a=11,"
"w=g,a=11",
- _inserter.toStr());
+ _inserter_backend.toStr());
_inv.invertDocument(10, *doc10);
_inv.invertDocument(11, *doc11);
@@ -223,7 +220,7 @@ TEST_F(DocumentInverterTest, require_that_abort_pending_doc_works)
_inv.invertDocument(14, *doc14);
_inv.removeDocument(11);
_inv.removeDocument(13);
- _inserter.reset();
+ _inserter_backend.reset();
pushDocuments();
EXPECT_EQ("f=0,w=a,a=10,"
"w=b,a=10,"
@@ -233,7 +230,7 @@ TEST_F(DocumentInverterTest, require_that_abort_pending_doc_works)
"w=doc14,a=14,"
"w=h,a=12,"
"w=j,a=14",
- _inserter.toStr());
+ _inserter_backend.toStr());
_inv.invertDocument(10, *doc10);
_inv.invertDocument(11, *doc11);
@@ -244,13 +241,13 @@ TEST_F(DocumentInverterTest, require_that_abort_pending_doc_works)
_inv.removeDocument(12);
_inv.removeDocument(13);
_inv.removeDocument(14);
- _inserter.reset();
+ _inserter_backend.reset();
pushDocuments();
EXPECT_EQ("f=0,w=a,a=10,"
"w=b,a=10,"
"w=c,a=10,"
"w=d,a=10",
- _inserter.toStr());
+ _inserter_backend.toStr());
}
TEST_F(DocumentInverterTest, require_that_mix_of_add_and_remove_works)
@@ -266,7 +263,7 @@ TEST_F(DocumentInverterTest, require_that_mix_of_add_and_remove_works)
"w=c,r=9,a=10,"
"w=d,r=10,a=10,"
"w=z,r=12",
- _inserter.toStr());
+ _inserter_backend.toStr());
}
TEST_F(DocumentInverterTest, require_that_empty_document_can_be_inverted)
@@ -274,7 +271,7 @@ TEST_F(DocumentInverterTest, require_that_empty_document_can_be_inverted)
_inv.invertDocument(15, *makeDoc15(_b));
pushDocuments();
EXPECT_EQ("",
- _inserter.toStr());
+ _inserter_backend.toStr());
}
}
diff --git a/searchlib/src/tests/memoryindex/document_inverter_collection/document_inverter_collection_test.cpp b/searchlib/src/tests/memoryindex/document_inverter_collection/document_inverter_collection_test.cpp
index a6d675d05dc..ef08a6fd0e1 100644
--- a/searchlib/src/tests/memoryindex/document_inverter_collection/document_inverter_collection_test.cpp
+++ b/searchlib/src/tests/memoryindex/document_inverter_collection/document_inverter_collection_test.cpp
@@ -9,7 +9,7 @@
#include <vespa/searchlib/memoryindex/i_field_index_collection.h>
#include <vespa/searchlib/memoryindex/word_store.h>
#include <vespa/searchlib/test/memoryindex/mock_field_index_collection.h>
-#include <vespa/searchlib/test/memoryindex/ordered_field_index_inserter.h>
+#include <vespa/searchlib/test/memoryindex/ordered_field_index_inserter_backend.h>
#include <vespa/vespalib/util/retain_guard.h>
#include <vespa/vespalib/util/sequencedtaskexecutor.h>
#include <thread>
@@ -35,7 +35,7 @@ struct DocumentInverterCollectionTest : public ::testing::Test {
std::unique_ptr<ISequencedTaskExecutor> _pushThreads;
WordStore _word_store;
FieldIndexRemover _remover;
- test::OrderedFieldIndexInserter _inserter;
+ test::OrderedFieldIndexInserterBackend _inserter_backend;
FieldLengthCalculator _calculator;
test::MockFieldIndexCollection _fic;
DocumentInverterContext _inv_context;
@@ -47,9 +47,9 @@ struct DocumentInverterCollectionTest : public ::testing::Test {
_pushThreads(SequencedTaskExecutor::create(push_executor, 4)),
_word_store(),
_remover(_word_store),
- _inserter(),
+ _inserter_backend(),
_calculator(),
- _fic(_remover, _inserter, _calculator),
+ _fic(_remover, _inserter_backend, _calculator),
_inv_context(_schema, *_invertThreads, *_pushThreads, _fic),
_inv_collection(_inv_context, 10)
{
diff --git a/searchlib/src/tests/memoryindex/field_inverter/field_inverter_test.cpp b/searchlib/src/tests/memoryindex/field_inverter/field_inverter_test.cpp
index 9b718052dd0..ed049a82c42 100644
--- a/searchlib/src/tests/memoryindex/field_inverter/field_inverter_test.cpp
+++ b/searchlib/src/tests/memoryindex/field_inverter/field_inverter_test.cpp
@@ -7,6 +7,7 @@
#include <vespa/searchlib/memoryindex/field_inverter.h>
#include <vespa/searchlib/memoryindex/word_store.h>
#include <vespa/searchlib/test/memoryindex/ordered_field_index_inserter.h>
+#include <vespa/searchlib/test/memoryindex/ordered_field_index_inserter_backend.h>
#include <vespa/vespalib/objects/nbostream.h>
#include <vespa/vespalib/gtest/gtest.h>
@@ -136,8 +137,9 @@ struct FieldInverterTest : public ::testing::Test {
DocBuilder _b;
WordStore _word_store;
FieldIndexRemover _remover;
- test::OrderedFieldIndexInserter _inserter;
+ test::OrderedFieldIndexInserterBackend _inserter_backend;
std::vector<std::unique_ptr<FieldLengthCalculator>> _calculators;
+ std::vector<std::unique_ptr<IOrderedFieldIndexInserter>> _inserters;
std::vector<std::unique_ptr<FieldInverter> > _inverters;
static Schema makeSchema() {
@@ -154,17 +156,19 @@ struct FieldInverterTest : public ::testing::Test {
_b(_schema),
_word_store(),
_remover(_word_store),
- _inserter(),
+ _inserter_backend(),
_calculators(),
+ _inserters(),
_inverters()
{
for (uint32_t fieldId = 0; fieldId < _schema.getNumIndexFields();
++fieldId) {
_calculators.emplace_back(std::make_unique<FieldLengthCalculator>());
+ _inserters.emplace_back(std::make_unique<test::OrderedFieldIndexInserter>(_inserter_backend, fieldId));
_inverters.push_back(std::make_unique<FieldInverter>(_schema,
fieldId,
_remover,
- _inserter,
+ *_inserters.back(),
*_calculators.back()));
}
}
@@ -180,11 +184,8 @@ struct FieldInverterTest : public ::testing::Test {
}
void pushDocuments() {
- uint32_t fieldId = 0;
for (auto &inverter : _inverters) {
- _inserter.setFieldId(fieldId);
inverter->pushDocuments();
- ++fieldId;
}
}
@@ -210,7 +211,7 @@ TEST_F(FieldInverterTest, require_that_fresh_insert_works)
"w=b,a=10,"
"w=c,a=10,"
"w=d,a=10",
- _inserter.toStr());
+ _inserter_backend.toStr());
}
TEST_F(FieldInverterTest, require_that_multiple_docs_work)
@@ -225,7 +226,7 @@ TEST_F(FieldInverterTest, require_that_multiple_docs_work)
"w=f,a=11,"
"f=1,w=a,a=11,"
"w=g,a=11",
- _inserter.toStr());
+ _inserter_backend.toStr());
}
TEST_F(FieldInverterTest, require_that_remove_works)
@@ -240,7 +241,7 @@ TEST_F(FieldInverterTest, require_that_remove_works)
"w=b,r=10,r=11,"
"f=1,w=a,r=10,"
"f=2,w=c,r=12",
- _inserter.toStr());
+ _inserter_backend.toStr());
}
TEST_F(FieldInverterTest, require_that_reput_works)
@@ -254,7 +255,7 @@ TEST_F(FieldInverterTest, require_that_reput_works)
"w=f,a=10,"
"f=1,w=a,a=10,"
"w=g,a=10",
- _inserter.toStr());
+ _inserter_backend.toStr());
}
TEST_F(FieldInverterTest, require_that_abort_pending_doc_works)
@@ -275,7 +276,7 @@ TEST_F(FieldInverterTest, require_that_abort_pending_doc_works)
"w=f,a=11,"
"f=1,w=a,a=11,"
"w=g,a=11",
- _inserter.toStr());
+ _inserter_backend.toStr());
invertDocument(10, *doc10);
invertDocument(11, *doc11);
@@ -284,7 +285,7 @@ TEST_F(FieldInverterTest, require_that_abort_pending_doc_works)
invertDocument(14, *doc14);
removeDocument(11);
removeDocument(13);
- _inserter.reset();
+ _inserter_backend.reset();
pushDocuments();
EXPECT_EQ("f=0,w=a,a=10,"
"w=b,a=10,"
@@ -294,7 +295,7 @@ TEST_F(FieldInverterTest, require_that_abort_pending_doc_works)
"w=doc14,a=14,"
"w=h,a=12,"
"w=j,a=14",
- _inserter.toStr());
+ _inserter_backend.toStr());
invertDocument(10, *doc10);
invertDocument(11, *doc11);
@@ -305,13 +306,13 @@ TEST_F(FieldInverterTest, require_that_abort_pending_doc_works)
removeDocument(12);
removeDocument(13);
removeDocument(14);
- _inserter.reset();
+ _inserter_backend.reset();
pushDocuments();
EXPECT_EQ("f=0,w=a,a=10,"
"w=b,a=10,"
"w=c,a=10,"
"w=d,a=10",
- _inserter.toStr());
+ _inserter_backend.toStr());
}
TEST_F(FieldInverterTest, require_that_mix_of_add_and_remove_works)
@@ -327,7 +328,7 @@ TEST_F(FieldInverterTest, require_that_mix_of_add_and_remove_works)
"w=c,r=9,a=10,"
"w=d,r=10,a=10,"
"w=z,r=12",
- _inserter.toStr());
+ _inserter_backend.toStr());
}
TEST_F(FieldInverterTest, require_that_empty_document_can_be_inverted)
@@ -335,13 +336,13 @@ TEST_F(FieldInverterTest, require_that_empty_document_can_be_inverted)
invertDocument(15, *makeDoc15(_b));
pushDocuments();
EXPECT_EQ("",
- _inserter.toStr());
+ _inserter_backend.toStr());
}
TEST_F(FieldInverterTest, require_that_multiple_words_at_same_position_works)
{
invertDocument(16, *makeDoc16(_b));
- _inserter.setVerbose();
+ _inserter_backend.setVerbose();
pushDocuments();
EXPECT_EQ("f=0,"
"w=altbaz,a=16(e=0,w=1,l=5[2]),"
@@ -351,14 +352,14 @@ TEST_F(FieldInverterTest, require_that_multiple_words_at_same_position_works)
"w=foo,a=16(e=0,w=1,l=5[0]),"
"w=y,a=16(e=0,w=1,l=5[3]),"
"w=z,a=16(e=0,w=1,l=5[4])",
- _inserter.toStr());
+ _inserter_backend.toStr());
}
TEST_F(FieldInverterTest, require_that_interleaved_features_are_calculated)
{
invertDocument(17, *makeDoc17(_b));
- _inserter.setVerbose();
- _inserter.set_show_interleaved_features();
+ _inserter_backend.setVerbose();
+ _inserter_backend.set_show_interleaved_features();
pushDocuments();
EXPECT_EQ("f=1,"
"w=bar0,a=17(fl=2,occs=1,e=0,w=1,l=2[1]),"
@@ -369,7 +370,7 @@ TEST_F(FieldInverterTest, require_that_interleaved_features_are_calculated)
"f=3,"
"w=bar2,a=17(fl=3,occs=2,e=0,w=3,l=2[1],e=1,w=4,l=1[0]),"
"w=foo2,a=17(fl=3,occs=1,e=0,w=3,l=2[0])",
- _inserter.toStr());
+ _inserter_backend.toStr());
}
TEST_F(FieldInverterTest, require_that_average_field_length_is_calculated)
@@ -397,7 +398,7 @@ TEST_F(FieldInverterTest, require_that_word_with_NUL_byte_is_truncated)
"w=before,a=1,"
"w=corrupt,a=1,"
"w=z,a=1",
- _inserter.toStr());
+ _inserter_backend.toStr());
}
TEST_F(FieldInverterTest, require_that_word_with_NUL_byte_is_dropped_when_truncated_to_zero_length)
@@ -408,7 +409,7 @@ TEST_F(FieldInverterTest, require_that_word_with_NUL_byte_is_dropped_when_trunca
"w=after,a=1,"
"w=before,a=1,"
"w=z,a=1",
- _inserter.toStr());
+ _inserter_backend.toStr());
}
}
diff --git a/searchlib/src/tests/memoryindex/url_field_inverter/url_field_inverter_test.cpp b/searchlib/src/tests/memoryindex/url_field_inverter/url_field_inverter_test.cpp
index 5f73b9b8282..969f483eef6 100644
--- a/searchlib/src/tests/memoryindex/url_field_inverter/url_field_inverter_test.cpp
+++ b/searchlib/src/tests/memoryindex/url_field_inverter/url_field_inverter_test.cpp
@@ -8,6 +8,7 @@
#include <vespa/searchlib/memoryindex/url_field_inverter.h>
#include <vespa/searchlib/memoryindex/word_store.h>
#include <vespa/searchlib/test/memoryindex/ordered_field_index_inserter.h>
+#include <vespa/searchlib/test/memoryindex/ordered_field_index_inserter_backend.h>
#include <vespa/vespalib/gtest/gtest.h>
namespace search {
@@ -181,8 +182,9 @@ struct UrlFieldInverterTest : public ::testing::Test {
DocBuilder _b;
WordStore _word_store;
FieldIndexRemover _remover;
- test::OrderedFieldIndexInserter _inserter;
+ test::OrderedFieldIndexInserterBackend _inserter_backend;
FieldLengthCalculator _calculator;
+ std::vector<std::unique_ptr<IOrderedFieldIndexInserter>> _inserters;
std::vector<std::unique_ptr<FieldInverter> > _inverters;
std::unique_ptr<UrlFieldInverter> _urlInverter;
index::SchemaIndexFields _schemaIndexFields;
@@ -198,8 +200,9 @@ struct UrlFieldInverterTest : public ::testing::Test {
_b(_schema),
_word_store(),
_remover(_word_store),
- _inserter(),
+ _inserter_backend(),
_calculator(),
+ _inserters(),
_inverters(),
_urlInverter(),
_schemaIndexFields()
@@ -207,10 +210,11 @@ struct UrlFieldInverterTest : public ::testing::Test {
_schemaIndexFields.setup(_schema);
for (uint32_t fieldId = 0; fieldId < _schema.getNumIndexFields();
++fieldId) {
+ _inserters.emplace_back(std::make_unique<test::OrderedFieldIndexInserter>(_inserter_backend, fieldId));
_inverters.push_back(std::make_unique<FieldInverter>(_schema,
fieldId,
_remover,
- _inserter,
+ *_inserters.back(),
_calculator));
}
index::UriField &urlField =
@@ -234,11 +238,8 @@ struct UrlFieldInverterTest : public ::testing::Test {
}
void pushDocuments() {
- uint32_t fieldId = 0;
for (auto &inverter : _inverters) {
- _inserter.setFieldId(fieldId);
inverter->pushDocuments();
- ++fieldId;
}
}
@@ -297,7 +298,7 @@ TEST_F(SingleInverterTest, require_that_single_url_field_works)
"w=com,a=10,"
"w=example,a=10,"
"w=www,a=10",
- _inserter.toStr());
+ _inserter_backend.toStr());
}
TEST_F(ArrayInverterTest, require_that_array_url_field_works)
@@ -340,7 +341,7 @@ TEST_F(ArrayInverterTest, require_that_array_url_field_works)
"w=example,a=10,"
"w=flickr,a=10,"
"w=www,a=10",
- _inserter.toStr());
+ _inserter_backend.toStr());
}
TEST_F(WeightedSetInverterTest, require_that_weighted_set_field_works)
@@ -385,7 +386,7 @@ TEST_F(WeightedSetInverterTest, require_that_weighted_set_field_works)
"w=example,a=10,"
"w=flickr,a=10,"
"w=www,a=10",
- _inserter.toStr());
+ _inserter_backend.toStr());
}
TEST_F(SingleInverterTest, require_that_annotated_single_url_field_works)
@@ -425,7 +426,7 @@ TEST_F(SingleInverterTest, require_that_annotated_single_url_field_works)
"w=com,a=10,"
"w=example,a=10,"
"w=www,a=10",
- _inserter.toStr());
+ _inserter_backend.toStr());
}
TEST_F(ArrayInverterTest, require_that_annotated_array_url_field_works)
@@ -470,13 +471,13 @@ TEST_F(ArrayInverterTest, require_that_annotated_array_url_field_works)
"w=example,a=10,"
"w=flickr,a=10,"
"w=www,a=10",
- _inserter.toStr());
+ _inserter_backend.toStr());
}
TEST_F(WeightedSetInverterTest, require_that_annotated_weighted_set_field_works)
{
enableAnnotations();
- _inserter.setVerbose();
+ _inserter_backend.setVerbose();
invertDocument(10, *makeDoc10WeightedSet(_b));
pushDocuments();
EXPECT_EQ("f=0,"
@@ -518,14 +519,14 @@ TEST_F(WeightedSetInverterTest, require_that_annotated_weighted_set_field_works)
"w=example,a=10(e=0,w=4,l=5[2]),"
"w=flickr,a=10(e=1,w=7,l=5[2]),"
"w=www,a=10(e=0,w=4,l=5[1],e=1,w=7,l=5[1])",
- _inserter.toStr());
+ _inserter_backend.toStr());
}
TEST_F(SingleInverterTest, require_that_empty_single_field_works)
{
invertDocument(10, *makeDoc10Empty(_b));
pushDocuments();
- EXPECT_EQ("", _inserter.toStr());
+ EXPECT_EQ("", _inserter_backend.toStr());
}
TEST_F(ArrayInverterTest, require_that_empty_array_field_works)
@@ -533,14 +534,14 @@ TEST_F(ArrayInverterTest, require_that_empty_array_field_works)
invertDocument(10, *makeDoc10Empty(_b));
pushDocuments();
EXPECT_EQ("",
- _inserter.toStr());
+ _inserter_backend.toStr());
}
TEST_F(WeightedSetInverterTest, require_that_empty_weighted_set_field_works)
{
invertDocument(10, *makeDoc10Empty(_b));
pushDocuments();
- EXPECT_EQ("", _inserter.toStr());
+ EXPECT_EQ("", _inserter_backend.toStr());
}
TEST_F(SingleInverterTest, require_that_annotated_empty_single_field_works)
@@ -548,7 +549,7 @@ TEST_F(SingleInverterTest, require_that_annotated_empty_single_field_works)
enableAnnotations();
invertDocument(10, *makeDoc10Empty(_b));
pushDocuments();
- EXPECT_EQ("", _inserter.toStr());
+ EXPECT_EQ("", _inserter_backend.toStr());
}
TEST_F(ArrayInverterTest, require_that_annotated_empty_array_field_works)
@@ -556,7 +557,7 @@ TEST_F(ArrayInverterTest, require_that_annotated_empty_array_field_works)
enableAnnotations();
invertDocument(10, *makeDoc10Empty(_b));
pushDocuments();
- EXPECT_EQ("", _inserter.toStr());
+ EXPECT_EQ("", _inserter_backend.toStr());
}
TEST_F(WeightedSetInverterTest, require_that_annotated_empty_weighted_set_field_works)
@@ -564,7 +565,7 @@ TEST_F(WeightedSetInverterTest, require_that_annotated_empty_weighted_set_field_
enableAnnotations();
invertDocument(10, *makeDoc10Empty(_b));
pushDocuments();
- EXPECT_EQ("", _inserter.toStr());
+ EXPECT_EQ("", _inserter_backend.toStr());
}
}