summaryrefslogtreecommitdiffstats
path: root/searchlib/src
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2017-02-02 01:29:24 +0100
committerHenning Baldersheim <balder@yahoo-inc.com>2017-02-03 14:51:08 +0100
commit5b360e6e4d2fd1dc29e2dfdb2ce26014d8332d58 (patch)
treeed43c9535be830f3ebe0c21382e9b350189a261b /searchlib/src
parent6d4ed4f88706ee05b56096a86f473587f0e8e804 (diff)
BooleanMatchIteratorWrapper verification.
Diffstat (limited to 'searchlib/src')
-rw-r--r--searchlib/src/tests/attribute/bitvector/bitvector_test.cpp3
-rw-r--r--searchlib/src/tests/queryeval/booleanmatchiteratorwrapper/booleanmatchiteratorwrapper_test.cpp25
-rw-r--r--searchlib/src/vespa/searchlib/test/initrange.cpp4
-rw-r--r--searchlib/src/vespa/searchlib/test/initrange.h4
-rw-r--r--searchlib/src/vespa/searchlib/test/searchiteratorverifier.cpp27
-rw-r--r--searchlib/src/vespa/searchlib/test/searchiteratorverifier.h5
6 files changed, 42 insertions, 26 deletions
diff --git a/searchlib/src/tests/attribute/bitvector/bitvector_test.cpp b/searchlib/src/tests/attribute/bitvector/bitvector_test.cpp
index 1eafefa5458..b1583f159b2 100644
--- a/searchlib/src/tests/attribute/bitvector/bitvector_test.cpp
+++ b/searchlib/src/tests/attribute/bitvector/bitvector_test.cpp
@@ -12,7 +12,6 @@
#include <vespa/searchlib/attribute/attributevector.hpp>
#include <vespa/searchlib/attribute/i_document_weight_attribute.h>
#include <vespa/searchlib/queryeval/document_weight_search_iterator.h>
-#include <vespa/searchlib/test/initrange.h>
#include <vespa/searchlib/test/searchiteratorverifier.h>
#include <vespa/searchlib/common/bitvectoriterator.h>
#include <vespa/searchlib/parsequery/parse.h>
@@ -627,7 +626,7 @@ private:
BitVector::UP _bv;
};
-TEST("Test bitvector iterators does not break SearchIterator requirements") {
+TEST("Test that bitvector iterators adheres SearchIterator requirements") {
Verifier searchIteratorVerifier;
searchIteratorVerifier.verify();
}
diff --git a/searchlib/src/tests/queryeval/booleanmatchiteratorwrapper/booleanmatchiteratorwrapper_test.cpp b/searchlib/src/tests/queryeval/booleanmatchiteratorwrapper/booleanmatchiteratorwrapper_test.cpp
index 940f825b691..e11bec31868 100644
--- a/searchlib/src/tests/queryeval/booleanmatchiteratorwrapper/booleanmatchiteratorwrapper_test.cpp
+++ b/searchlib/src/tests/queryeval/booleanmatchiteratorwrapper/booleanmatchiteratorwrapper_test.cpp
@@ -1,12 +1,10 @@
// Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
-#include <vespa/fastos/fastos.h>
-#include <vespa/log/log.h>
-LOG_SETUP("booleanmatchiteratorwrapper_test");
+
#include <vespa/vespalib/testkit/testapp.h>
#include <vespa/searchlib/queryeval/booleanmatchiteratorwrapper.h>
#include <vespa/searchlib/fef/termfieldmatchdata.h>
#include <vespa/searchlib/common/bitvectoriterator.h>
-#include <vespa/searchlib/test/initrange.h>
+#include <vespa/searchlib/test/searchiteratorverifier.h>
using namespace search::fef;
using namespace search::queryeval;
@@ -121,13 +119,18 @@ TEST("mostly everything") {
EXPECT_EQUAL(DummyItr::dtorCnt, 3u);
}
-TEST("Test boolean wrapper iterators adheres to initRange") {
- search::test::InitRangeVerifier ir;
- TermFieldMatchDataArray tfmda;
- BooleanMatchIteratorWrapper relaxed(ir.createIterator(ir.getExpectedDocIds(), false), tfmda);
- ir.verify(relaxed);
- BooleanMatchIteratorWrapper strict(ir.createIterator(ir.getExpectedDocIds(), true), tfmda);
- ir.verify(strict);
+class Verifier : public search::test::SearchIteratorVerifier {
+public:
+ SearchIterator::UP create(bool strict) const override {
+ return std::make_unique<BooleanMatchIteratorWrapper>(createIterator(getExpectedDocIds(), strict), _tfmda);;
+ }
+private:
+ mutable TermFieldMatchDataArray _tfmda;
+};
+
+TEST("Test that boolean wrapper iterators adheres to SearchIterator requirements") {
+ Verifier searchIteratorVerifier;
+ searchIteratorVerifier.verify();
}
TEST_MAIN() { TEST_RUN_ALL(); }
diff --git a/searchlib/src/vespa/searchlib/test/initrange.cpp b/searchlib/src/vespa/searchlib/test/initrange.cpp
index 385c22c4797..c3623aa7364 100644
--- a/searchlib/src/vespa/searchlib/test/initrange.cpp
+++ b/searchlib/src/vespa/searchlib/test/initrange.cpp
@@ -87,13 +87,13 @@ InitRangeVerifier::invert(const DocIds & docIds, uint32_t docIdlimit)
}
SearchIterator::UP
-InitRangeVerifier::createIterator(const DocIds &docIds, bool strict) const
+InitRangeVerifier::createIterator(const DocIds &docIds, bool strict)
{
return make_unique<DocIdIterator>(docIds, strict);
}
SearchIterator::UP
-InitRangeVerifier::createEmptyIterator() const
+InitRangeVerifier::createEmptyIterator()
{
return make_unique<EmptySearch>();
}
diff --git a/searchlib/src/vespa/searchlib/test/initrange.h b/searchlib/src/vespa/searchlib/test/initrange.h
index aabeef5d776..5a321b4a52d 100644
--- a/searchlib/src/vespa/searchlib/test/initrange.h
+++ b/searchlib/src/vespa/searchlib/test/initrange.h
@@ -16,8 +16,8 @@ public:
typedef std::vector<Range> Ranges;
static DocIds invert(const DocIds & docIds, uint32_t docIdlimit);
- SearchIterator::UP createIterator(const DocIds &docIds, bool strict) const;
- SearchIterator::UP createEmptyIterator() const;
+ static SearchIterator::UP createIterator(const DocIds &docIds, bool strict);
+ static SearchIterator::UP createEmptyIterator();
SearchIterator::UP createFullIterator() const;
InitRangeVerifier();
~InitRangeVerifier();
diff --git a/searchlib/src/vespa/searchlib/test/searchiteratorverifier.cpp b/searchlib/src/vespa/searchlib/test/searchiteratorverifier.cpp
index d8f24c02e78..bff22cefc72 100644
--- a/searchlib/src/vespa/searchlib/test/searchiteratorverifier.cpp
+++ b/searchlib/src/vespa/searchlib/test/searchiteratorverifier.cpp
@@ -90,19 +90,30 @@ SearchIteratorVerifier::SearchIteratorVerifier() :
}
}
-SearchIteratorVerifier::~SearchIteratorVerifier() { }
-
SearchIterator::UP
-SearchIteratorVerifier::createIterator(const DocIds &docIds, bool strict) const
+SearchIteratorVerifier::createIterator(const DocIds &docIds, bool strict)
{
return make_unique<DocIdIterator>(docIds, strict);
}
- void
- SearchIteratorVerifier::verify() const {
- TEST_DO(verifyTermwise());
- TEST_DO(verifyInitRange());
- }
+SearchIterator::UP
+SearchIteratorVerifier::createEmptyIterator()
+{
+ return make_unique<EmptySearch>();
+}
+
+SearchIterator::UP
+SearchIteratorVerifier::createFullIterator() const
+{
+ return make_unique<TrueSearch>(_trueTfmd);
+}
+SearchIteratorVerifier::~SearchIteratorVerifier() { }
+
+void
+SearchIteratorVerifier::verify() const {
+ TEST_DO(verifyTermwise());
+ TEST_DO(verifyInitRange());
+}
void
SearchIteratorVerifier::verifyTermwise() const {
diff --git a/searchlib/src/vespa/searchlib/test/searchiteratorverifier.h b/searchlib/src/vespa/searchlib/test/searchiteratorverifier.h
index 4d85a286801..6f7d26b6883 100644
--- a/searchlib/src/vespa/searchlib/test/searchiteratorverifier.h
+++ b/searchlib/src/vespa/searchlib/test/searchiteratorverifier.h
@@ -15,6 +15,10 @@ public:
typedef std::pair<uint32_t, uint32_t> Range;
typedef std::vector<Range> Ranges;
+ static SearchIterator::UP createIterator(const DocIds &docIds, bool strict);
+ static SearchIterator::UP createEmptyIterator();
+ SearchIterator::UP createFullIterator() const;
+
SearchIteratorVerifier();
virtual ~SearchIteratorVerifier();
void verify() const;
@@ -25,7 +29,6 @@ protected:
private:
void verifyTermwise() const;
void verifyInitRange() const;
- SearchIterator::UP createIterator(const DocIds &docIds, bool strict) const;
void verify(bool strict) const;
void verifyAnd(bool strict) const;
void verifyOr(bool strict) const;