diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2023-10-03 08:57:28 +0000 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2023-10-03 09:46:03 +0000 |
commit | 9c8ecc24c725d00fb39640d40be32603d8406bf9 (patch) | |
tree | a6b8850ed4fd9a34ff85b3ea3dc5532e7b689c6e /searchlib/src | |
parent | 0f20fa13a7ca5e070f1bb40bfe659ed9134a397c (diff) |
Add test counting seeks
Diffstat (limited to 'searchlib/src')
-rw-r--r-- | searchlib/src/tests/queryeval/multibitvectoriterator/multibitvectoriterator_test.cpp | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/searchlib/src/tests/queryeval/multibitvectoriterator/multibitvectoriterator_test.cpp b/searchlib/src/tests/queryeval/multibitvectoriterator/multibitvectoriterator_test.cpp index 9cb7e1def1c..42f37df6a29 100644 --- a/searchlib/src/tests/queryeval/multibitvectoriterator/multibitvectoriterator_test.cpp +++ b/searchlib/src/tests/queryeval/multibitvectoriterator/multibitvectoriterator_test.cpp @@ -573,6 +573,22 @@ TEST_F("testThatOptimizePreservesUnpack", Fixture) { f.template testThatOptimizePreservesUnpack<AndSearch>(); } +TEST_F("test that short vectors don't spin at end", Fixture) { + TermFieldMatchData tfmd; + MultiSearch::Children children; + children.push_back(f.createIter(0, false, tfmd, true)); + children.push_back(f.createIter(1, false, tfmd, true)); + SearchIterator::UP s = AndSearch::create(std::move(children), false); + s = MultiBitVectorIteratorBase::optimize(std::move(s)); + EXPECT_TRUE(s); + s->initRange(1, f._bvs[0]->size()); + uint32_t seekCount = 0; + for (uint32_t docId = s->seekFirst(1); !s->isAtEnd(); docId = s->seekNext(docId+1)) { + seekCount++; + } + EXPECT_EQUAL(2459u, seekCount); +} + class Verifier : public search::test::SearchIteratorVerifier { public: Verifier(size_t numBv, bool is_and); |