summaryrefslogtreecommitdiffstats
path: root/searchlib/src
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2023-10-03 08:57:28 +0000
committerHenning Baldersheim <balder@yahoo-inc.com>2023-10-03 09:46:03 +0000
commit9c8ecc24c725d00fb39640d40be32603d8406bf9 (patch)
treea6b8850ed4fd9a34ff85b3ea3dc5532e7b689c6e /searchlib/src
parent0f20fa13a7ca5e070f1bb40bfe659ed9134a397c (diff)
Add test counting seeks
Diffstat (limited to 'searchlib/src')
-rw-r--r--searchlib/src/tests/queryeval/multibitvectoriterator/multibitvectoriterator_test.cpp16
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);