diff options
author | Geir Storli <geirst@verizonmedia.com> | 2019-06-06 11:08:28 +0000 |
---|---|---|
committer | Geir Storli <geirst@verizonmedia.com> | 2019-06-06 12:31:24 +0000 |
commit | 7b629efc2f963558e663615bc5e63d7d59624cae (patch) | |
tree | 48512a80a1a58879596c530191cfcabd35030e00 /searchlib | |
parent | 798842b3766fd51323c43182573f13487e51eb43 (diff) |
Rewrite memory index unit tests to gtest.
Diffstat (limited to 'searchlib')
-rw-r--r-- | searchlib/src/tests/memoryindex/memory_index/CMakeLists.txt | 1 | ||||
-rw-r--r-- | searchlib/src/tests/memoryindex/memory_index/memory_index_test.cpp | 110 |
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() |