summaryrefslogtreecommitdiffstats
path: root/searchlib/src/tests/queryeval
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2023-02-01 15:21:04 +0000
committerHenning Baldersheim <balder@yahoo-inc.com>2023-02-01 15:21:04 +0000
commit9ece782152a1f06b00a143d9cebf38c553c5a028 (patch)
treea6ab7c9f768399b03e7d5e956f122287198413fd /searchlib/src/tests/queryeval
parent179daa38c12471ec9de4e48ec91865c8a336d8a8 (diff)
Deinline large destructors and clean up some code based on clion hints.
Diffstat (limited to 'searchlib/src/tests/queryeval')
-rw-r--r--searchlib/src/tests/queryeval/weak_and/wand_bench_setup.hpp15
-rw-r--r--searchlib/src/tests/queryeval/weighted_set_term/weighted_set_term_test.cpp70
2 files changed, 48 insertions, 37 deletions
diff --git a/searchlib/src/tests/queryeval/weak_and/wand_bench_setup.hpp b/searchlib/src/tests/queryeval/weak_and/wand_bench_setup.hpp
index fd73243b4fa..0cd31cd491a 100644
--- a/searchlib/src/tests/queryeval/weak_and/wand_bench_setup.hpp
+++ b/searchlib/src/tests/queryeval/weak_and/wand_bench_setup.hpp
@@ -54,13 +54,13 @@ struct ModSearch : SearchIterator {
uint32_t limit;
MinMaxPostingInfo info;
TermFieldMatchData *tfmd;
- ModSearch(Stats &stats_in, uint32_t step_in, uint32_t limit_in, int32_t maxWeight, TermFieldMatchData *tfmd_in)
- : stats(stats_in), step(step_in), limit(limit_in), info(0, maxWeight), tfmd(tfmd_in) { }
+ ModSearch(Stats &stats_in, uint32_t step_in, uint32_t limit_in, int32_t maxWeight, TermFieldMatchData *tfmd_in);
+ ~ModSearch() override;
void initRange(uint32_t begin, uint32_t end) override {
SearchIterator::initRange(begin, end);
setDocId(step);
}
- virtual void doSeek(uint32_t docid) override {
+ void doSeek(uint32_t docid) override {
assert(docid > getDocId());
uint32_t skippedDocs = (docid - getDocId() - 1);
uint32_t skippedHits = (skippedDocs / step);
@@ -76,7 +76,7 @@ struct ModSearch : SearchIterator {
setAtEnd();
}
}
- virtual void doUnpack(uint32_t docid) override {
+ void doUnpack(uint32_t docid) override {
if (tfmd != NULL) {
tfmd->reset(docid);
search::fef::TermFieldMatchDataPosition pos;
@@ -85,9 +85,14 @@ struct ModSearch : SearchIterator {
}
stats.unpack();
}
- virtual const PostingInfo *getPostingInfo() const override { return &info; }
+ const PostingInfo *getPostingInfo() const override { return &info; }
};
+ModSearch::ModSearch(Stats &stats_in, uint32_t step_in, uint32_t limit_in, int32_t maxWeight, TermFieldMatchData *tfmd_in)
+ : stats(stats_in), step(step_in), limit(limit_in), info(0, maxWeight), tfmd(tfmd_in)
+{ }
+ModSearch::~ModSearch() = default;
+
struct WandFactory {
virtual std::string name() const = 0;
virtual SearchIterator::UP create(const wand::Terms &terms) = 0;
diff --git a/searchlib/src/tests/queryeval/weighted_set_term/weighted_set_term_test.cpp b/searchlib/src/tests/queryeval/weighted_set_term/weighted_set_term_test.cpp
index 8f4381c48f9..51594c478e5 100644
--- a/searchlib/src/tests/queryeval/weighted_set_term/weighted_set_term_test.cpp
+++ b/searchlib/src/tests/queryeval/weighted_set_term/weighted_set_term_test.cpp
@@ -44,28 +44,20 @@ struct WS {
bool field_is_filter;
bool term_is_not_needed;
- WS()
- : layout(),
- handle(layout.allocTermField(fieldId)),
- tokens(),
- field_is_filter(false),
- term_is_not_needed(false)
- {
- MatchData::UP tmp = layout.createMatchData();
- ASSERT_TRUE(tmp->resolveTermField(handle)->getFieldId() == fieldId);
- }
+ WS();
+ ~WS();
WS &add(const std::string &token, uint32_t weight) {
- tokens.push_back(std::make_pair(token, weight));
+ tokens.emplace_back(token, weight);
return *this;
}
WS& set_field_is_filter(bool value) { field_is_filter = value; return *this; }
WS& set_term_is_not_needed(bool value) { term_is_not_needed = value; return *this; }
- Node::UP createNode() const {
- SimpleWeightedSetTerm *node = new SimpleWeightedSetTerm(tokens.size(), "view", 0, Weight(0));
- for (size_t i = 0; i < tokens.size(); ++i) {
- node->addTerm(tokens[i].first,Weight(tokens[i].second));
+ [[nodiscard]] Node::UP createNode() const {
+ auto *node = new SimpleWeightedSetTerm(tokens.size(), "view", 0, Weight(0));
+ for (const auto & token : tokens) {
+ node->addTerm(token.first,Weight(token.second));
}
return Node::UP(node);
}
@@ -78,7 +70,7 @@ struct WS {
queryeval::Blueprint::UP bp = searchable.createBlueprint(requestContext, fields, *node);
bp->fetchPostings(ExecuteInfo::create(strict));
SearchIterator::UP sb = bp->createSearch(*md, strict);
- return (dynamic_cast<WeightedSetTermSearch*>(sb.get()) != 0);
+ return (dynamic_cast<WeightedSetTermSearch*>(sb.get()) != nullptr);
}
FakeResult search(Searchable &searchable, const std::string &field, bool strict) const {
@@ -111,26 +103,38 @@ struct WS {
}
};
+WS::WS()
+ : layout(),
+ handle(layout.allocTermField(fieldId)),
+ tokens(),
+ field_is_filter(false),
+ term_is_not_needed(false)
+{
+ MatchData::UP tmp = layout.createMatchData();
+ ASSERT_TRUE(tmp->resolveTermField(handle)->getFieldId() == fieldId);
+}
+WS::~WS() = default;
+
struct MockSearch : public SearchIterator {
int seekCnt;
int _initial;
- MockSearch(uint32_t initial) : SearchIterator(), seekCnt(0), _initial(initial) { }
+ explicit MockSearch(uint32_t initial) : SearchIterator(), seekCnt(0), _initial(initial) { }
void initRange(uint32_t begin, uint32_t end) override {
SearchIterator::initRange(begin, end);
setDocId(_initial);
}
- virtual void doSeek(uint32_t) override {
+ void doSeek(uint32_t) override {
++seekCnt;
setAtEnd();
}
- virtual void doUnpack(uint32_t) override {}
+ void doUnpack(uint32_t) override {}
};
struct MockFixture {
MockSearch *mock;
TermFieldMatchData tfmd;
std::unique_ptr<SearchIterator> search;
- MockFixture(uint32_t initial) : mock(0), tfmd(), search() {
+ explicit MockFixture(uint32_t initial) : mock(nullptr), tfmd(), search() {
std::vector<SearchIterator*> children;
std::vector<int32_t> weights;
mock = new MockSearch(initial);
@@ -156,10 +160,11 @@ void run_simple(bool field_is_filter, bool term_is_not_needed)
.doc(5).elem(0).weight(50).pos(0)
.doc(7).elem(0).weight(70).pos(0);
}
- WS ws = WS().add("7", 70).add("5", 50).add("3", 30).add("100", 1000)
- .set_field_is_filter(field_is_filter)
- .set_term_is_not_needed(term_is_not_needed);
-;
+ WS ws;
+ ws.add("7", 70).add("5", 50).add("3", 30).add("100", 1000)
+ .set_field_is_filter(field_is_filter)
+ .set_term_is_not_needed(term_is_not_needed);
+
EXPECT_TRUE(ws.isGenericSearch(index, "field", true));
EXPECT_TRUE(ws.isGenericSearch(index, "field", false));
EXPECT_TRUE(ws.isGenericSearch(index, "multi-field", true));
@@ -197,11 +202,12 @@ void run_multi(bool field_is_filter, bool term_is_not_needed)
.doc(5).elem(0).weight(150).pos(0).elem(0).weight(50).pos(0)
.doc(7).elem(0).weight(70).pos(0);
}
- WS ws = WS().add("7", 70).add("5", 50).add("3", 30)
- .add("15", 150).add("13", 130)
- .add("23", 230).add("100", 1000)
- .set_field_is_filter(field_is_filter)
- .set_term_is_not_needed(term_is_not_needed);
+ WS ws;
+ ws.add("7", 70).add("5", 50).add("3", 30)
+ .add("15", 150).add("13", 130)
+ .add("23", 230).add("100", 1000)
+ .set_field_is_filter(field_is_filter)
+ .set_term_is_not_needed(term_is_not_needed);
EXPECT_TRUE(ws.isGenericSearch(index, "multi-field", true));
EXPECT_TRUE(ws.isGenericSearch(index, "multi-field", false));
@@ -274,9 +280,9 @@ TEST("verify search iterator conformance with document weight iterator children"
struct VerifyMatchData {
struct MyBlueprint : search::queryeval::SimpleLeafBlueprint {
VerifyMatchData &vmd;
- MyBlueprint(VerifyMatchData &vmd_in, FieldSpec spec_in)
+ MyBlueprint(VerifyMatchData &vmd_in, const FieldSpec & spec_in)
: SimpleLeafBlueprint(spec_in), vmd(vmd_in) {}
- SearchIterator::UP createLeafSearch(const fef::TermFieldMatchDataArray &tfmda, bool) const override {
+ [[nodiscard]] SearchIterator::UP createLeafSearch(const fef::TermFieldMatchDataArray &tfmda, bool) const override {
EXPECT_EQUAL(tfmda.size(), 1u);
EXPECT_TRUE(tfmda[0] != nullptr);
if (vmd.child_tfmd == nullptr) {
@@ -287,7 +293,7 @@ struct VerifyMatchData {
++vmd.child_cnt;
return std::make_unique<EmptySearch>();
}
- SearchIteratorUP createFilterSearch(bool strict, FilterConstraint constraint) const override {
+ [[nodiscard]] SearchIteratorUP createFilterSearch(bool strict, FilterConstraint constraint) const override {
return create_default_filter(strict, constraint);
}
};