diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2017-02-02 01:29:24 +0100 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2017-02-03 14:51:08 +0100 |
commit | 5b360e6e4d2fd1dc29e2dfdb2ce26014d8332d58 (patch) | |
tree | ed43c9535be830f3ebe0c21382e9b350189a261b /searchlib/src | |
parent | 6d4ed4f88706ee05b56096a86f473587f0e8e804 (diff) |
BooleanMatchIteratorWrapper verification.
Diffstat (limited to 'searchlib/src')
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; |