summaryrefslogtreecommitdiffstats
path: root/searchlib
diff options
context:
space:
mode:
authorGeir Storli <geirst@verizonmedia.com>2019-06-06 11:08:28 +0000
committerGeir Storli <geirst@verizonmedia.com>2019-06-06 12:31:24 +0000
commit7b629efc2f963558e663615bc5e63d7d59624cae (patch)
tree48512a80a1a58879596c530191cfcabd35030e00 /searchlib
parent798842b3766fd51323c43182573f13487e51eb43 (diff)
Rewrite memory index unit tests to gtest.
Diffstat (limited to 'searchlib')
-rw-r--r--searchlib/src/tests/memoryindex/memory_index/CMakeLists.txt1
-rw-r--r--searchlib/src/tests/memoryindex/memory_index/memory_index_test.cpp110
2 files changed, 58 insertions, 53 deletions
diff --git a/searchlib/src/tests/memoryindex/memory_index/CMakeLists.txt b/searchlib/src/tests/memoryindex/memory_index/CMakeLists.txt
index d6b6691f05d..0dd42eacf30 100644
--- a/searchlib/src/tests/memoryindex/memory_index/CMakeLists.txt
+++ b/searchlib/src/tests/memoryindex/memory_index/CMakeLists.txt
@@ -4,5 +4,6 @@ vespa_add_executable(searchlib_memory_index_test_app TEST
memory_index_test.cpp
DEPENDS
searchlib
+ gtest
)
vespa_add_test(NAME searchlib_memory_index_test_app COMMAND searchlib_memory_index_test_app)
diff --git a/searchlib/src/tests/memoryindex/memory_index/memory_index_test.cpp b/searchlib/src/tests/memoryindex/memory_index/memory_index_test.cpp
index 50f44074683..4695f0e6e00 100644
--- a/searchlib/src/tests/memoryindex/memory_index/memory_index_test.cpp
+++ b/searchlib/src/tests/memoryindex/memory_index/memory_index_test.cpp
@@ -1,7 +1,5 @@
// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
-#include <vespa/vespalib/testkit/testapp.h>
-
#include <vespa/searchlib/common/scheduletaskcallback.h>
#include <vespa/searchlib/common/sequencedtaskexecutor.h>
#include <vespa/searchlib/fef/matchdata.h>
@@ -15,6 +13,7 @@
#include <vespa/searchlib/queryeval/fake_search.h>
#include <vespa/searchlib/queryeval/fake_searchable.h>
#include <vespa/searchlib/queryeval/searchiterator.h>
+#include <vespa/vespalib/gtest/gtest.h>
#include <vespa/vespalib/util/stringfmt.h>
#include <vespa/vespalib/util/threadstackexecutor.h>
@@ -36,9 +35,9 @@ using namespace search::queryeval;
//-----------------------------------------------------------------------------
-struct Setup {
+struct MySetup {
Schema schema;
- Setup &field(const std::string &name) {
+ MySetup &field(const std::string &name) {
schema.addIndexField(Schema::IndexField(name, DataType::STRING));
return *this;
}
@@ -56,7 +55,7 @@ struct Index {
uint32_t docid;
std::string currentField;
- Index(const Setup &setup);
+ Index(const MySetup &setup);
~Index();
void closeField() {
if (!currentField.empty()) {
@@ -105,7 +104,7 @@ private:
};
-Index::Index(const Setup &setup)
+Index::Index(const MySetup &setup)
: schema(setup.schema),
_executor(1, 128 * 1024),
_invertThreads(2),
@@ -158,15 +157,19 @@ verifyResult(const FakeResult &expect,
fields.add(field);
Blueprint::UP result = index.createBlueprint(requestContext, fields, term);
- if (!EXPECT_TRUE(result.get() != 0)) {
+ bool valid_result = result.get() != 0;
+ EXPECT_TRUE(valid_result);
+ if (!valid_result) {
return false;
}
- EXPECT_EQUAL(expect.inspect().size(), result->getState().estimate().estHits);
- EXPECT_EQUAL(expect.inspect().empty(), result->getState().estimate().empty);
+ EXPECT_EQ(expect.inspect().size(), result->getState().estimate().estHits);
+ EXPECT_EQ(expect.inspect().empty(), result->getState().estimate().empty);
result->fetchPostings(true);
SearchIterator::UP search = result->createSearch(*match_data, true);
- if (!EXPECT_TRUE(search.get() != 0)) {
+ bool valid_search = search.get() != 0;
+ EXPECT_TRUE(valid_search);
+ if (!valid_search) {
return false;
}
TermFieldMatchData &tmd = *match_data->resolveTermField(handle);
@@ -176,14 +179,15 @@ verifyResult(const FakeResult &expect,
for (search->seek(1); !search->isAtEnd(); search->seek(search->getDocId() + 1)) {
actual.doc(search->getDocId());
search->unpack(search->getDocId());
- EXPECT_EQUAL(search->getDocId(), tmd.getDocId());
+ EXPECT_EQ(search->getDocId(), tmd.getDocId());
FieldPositionsIterator p = tmd.getIterator();
actual.len(p.getFieldLength());
for (; p.valid(); p.next()) {
actual.pos(p.getPosition());
}
}
- return EXPECT_EQUAL(expect, actual);
+ EXPECT_EQ(expect, actual);
+ return expect == actual;
}
namespace {
@@ -202,9 +206,9 @@ Node::UP makePhrase(const std::string &term1, const std::string &term2) {
// tests basic usage; index some documents in docid order and perform
// some searches.
-TEST("testIndexAndSearch")
+TEST(MemoryIndexTest, test_index_and_search)
{
- Index index(Setup().field(title).field(body));
+ Index index(MySetup().field(title).field(body));
index.doc(1)
.field(title).add(foo).add(bar).add(foo)
.field(body).add(foo).add(foo).add(foo)
@@ -254,9 +258,9 @@ TEST("testIndexAndSearch")
// tests index update behavior; remove/update and unordered docid
// indexing.
-TEST("require that documents can be removed and updated")
+TEST(MemoryIndexTest, require_that_documents_can_be_removed_and_updated)
{
- Index index(Setup().field(title));
+ Index index(MySetup().field(title));
// add unordered
index.doc(3).field(title).add(foo).add(foo).add(foo).commit();
@@ -288,9 +292,9 @@ TEST("require that documents can be removed and updated")
// test the fake field source here, to make sure it acts similar to
// the memory index field source.
-TEST("testFakeSearchable")
+TEST(MemoryIndexTest, test_fake_searchable)
{
- Index index(Setup().field(title).field(body));
+ Index index(MySetup().field(title).field(body));
// setup fake field source with predefined results
FakeSearchable fakeSource;
@@ -340,9 +344,9 @@ TEST("testFakeSearchable")
fakeSource, "bogus", makeTerm(foo)));
}
-TEST("requireThatFrozenIndexIgnoresUpdates")
+TEST(MemoryIndexTest, require_that_frozen_index_ignores_updates)
{
- Index index(Setup().field(title));
+ Index index(MySetup().field(title));
Document::UP doc1 = index.doc(1).field(title).add(foo).add(bar).commit();
FakeResult ffr = FakeResult().doc(1).len(2).pos(0);
EXPECT_TRUE(verifyResult(ffr, index.index, title, makeTerm(foo)));
@@ -355,64 +359,64 @@ TEST("requireThatFrozenIndexIgnoresUpdates")
EXPECT_TRUE(verifyResult(ffr, index.index, title, makeTerm(foo)));
}
-TEST("requireThatNumDocsAndDocIdLimitIsReturned")
+TEST(MemoryIndexTest, require_that_num_docs_and_doc_id_limit_is_returned)
{
- Index index(Setup().field(title));
- EXPECT_EQUAL(0u, index.index.getNumDocs());
- EXPECT_EQUAL(1u, index.index.getDocIdLimit());
+ Index index(MySetup().field(title));
+ EXPECT_EQ(0u, index.index.getNumDocs());
+ EXPECT_EQ(1u, index.index.getDocIdLimit());
Document::UP doc1 = index.doc(1).field(title).add(foo).commit();
- EXPECT_EQUAL(1u, index.index.getNumDocs());
- EXPECT_EQUAL(2u, index.index.getDocIdLimit());
+ EXPECT_EQ(1u, index.index.getNumDocs());
+ EXPECT_EQ(2u, index.index.getDocIdLimit());
Document::UP doc4 = index.doc(4).field(title).add(foo).commit();
- EXPECT_EQUAL(2u, index.index.getNumDocs());
- EXPECT_EQUAL(5u, index.index.getDocIdLimit());
+ EXPECT_EQ(2u, index.index.getNumDocs());
+ EXPECT_EQ(5u, index.index.getDocIdLimit());
Document::UP doc2 = index.doc(2).field(title).add(foo).commit();
- EXPECT_EQUAL(3u, index.index.getNumDocs());
- EXPECT_EQUAL(5u, index.index.getDocIdLimit());
+ EXPECT_EQ(3u, index.index.getNumDocs());
+ EXPECT_EQ(5u, index.index.getDocIdLimit());
// re-add doc4
index.doc(4).field(title).add(bar).commit();
- EXPECT_EQUAL(3u, index.index.getNumDocs());
- EXPECT_EQUAL(5u, index.index.getDocIdLimit());
+ EXPECT_EQ(3u, index.index.getNumDocs());
+ EXPECT_EQ(5u, index.index.getDocIdLimit());
// remove doc2
index.remove(2);
- EXPECT_EQUAL(2u, index.index.getNumDocs());
- EXPECT_EQUAL(5u, index.index.getDocIdLimit());
+ EXPECT_EQ(2u, index.index.getNumDocs());
+ EXPECT_EQ(5u, index.index.getDocIdLimit());
}
-TEST("requireThatWeUnderstandTheMemoryFootprint")
+TEST(MemoryIndexTest, require_that_we_understand_the_memory_footprint)
{
constexpr size_t BASE_SIZE = 188172u;
{
- Setup setup;
+ MySetup setup;
Index index(setup);
- EXPECT_EQUAL(0u, index.index.getStaticMemoryFootprint());
- EXPECT_EQUAL(index.index.getStaticMemoryFootprint(), index.index.getMemoryUsage().allocatedBytes());
+ EXPECT_EQ(0u, index.index.getStaticMemoryFootprint());
+ EXPECT_EQ(index.index.getStaticMemoryFootprint(), index.index.getMemoryUsage().allocatedBytes());
}
{
- Index index(Setup().field("f1"));
- EXPECT_EQUAL(BASE_SIZE, index.index.getStaticMemoryFootprint());
- EXPECT_EQUAL(index.index.getStaticMemoryFootprint(), index.index.getMemoryUsage().allocatedBytes());
+ Index index(MySetup().field("f1"));
+ EXPECT_EQ(BASE_SIZE, index.index.getStaticMemoryFootprint());
+ EXPECT_EQ(index.index.getStaticMemoryFootprint(), index.index.getMemoryUsage().allocatedBytes());
}
{
- Index index(Setup().field("f1").field("f2"));
- EXPECT_EQUAL(2 * BASE_SIZE, index.index.getStaticMemoryFootprint());
- EXPECT_EQUAL(index.index.getStaticMemoryFootprint(), index.index.getMemoryUsage().allocatedBytes());
+ Index index(MySetup().field("f1").field("f2"));
+ EXPECT_EQ(2 * BASE_SIZE, index.index.getStaticMemoryFootprint());
+ EXPECT_EQ(index.index.getStaticMemoryFootprint(), index.index.getMemoryUsage().allocatedBytes());
}
}
-TEST("requireThatNumWordsIsReturned")
+TEST(MemoryIndexTest, require_that_num_words_is_returned)
{
- Index index(Setup().field(title));
- EXPECT_EQUAL(0u, index.index.getNumWords());
+ Index index(MySetup().field(title));
+ EXPECT_EQ(0u, index.index.getNumWords());
index.doc(1).field(title).add(foo).commit();
- EXPECT_EQUAL(1u, index.index.getNumWords());
+ EXPECT_EQ(1u, index.index.getNumWords());
index.doc(2).field(title).add(foo).add(bar).add(body).commit();
- EXPECT_EQUAL(3u, index.index.getNumWords());
+ EXPECT_EQ(3u, index.index.getNumWords());
}
-TEST("requireThatWeCanFakeBitVector")
+TEST(MemoryIndexTest, require_that_we_can_fake_bit_vector)
{
- Index index(Setup().field(title));
+ Index index(MySetup().field(title));
index.doc(1).field(title).add(foo).commit();
index.doc(3).field(title).add(foo).commit();
{
@@ -437,8 +441,8 @@ TEST("requireThatWeCanFakeBitVector")
EXPECT_TRUE(search.get() != NULL);
EXPECT_TRUE(dynamic_cast<BooleanMatchIteratorWrapper *>(search.get()) != NULL);
search->initFullRange();
- EXPECT_EQUAL("1,3", toString(*search));
+ EXPECT_EQ("1,3", toString(*search));
}
}
-TEST_MAIN() { TEST_RUN_ALL(); }
+GTEST_MAIN_RUN_ALL_TESTS()