From 2de50acb35d0d97677515b57aeab1531027f595f Mon Sep 17 00:00:00 2001 From: Geir Storli Date: Fri, 28 Jun 2019 08:45:41 +0000 Subject: Rewrite url field inverter tests to gtest. --- .../memoryindex/url_field_inverter/CMakeLists.txt | 1 + .../url_field_inverter/url_field_inverter_test.cpp | 588 ++++++++++----------- 2 files changed, 293 insertions(+), 296 deletions(-) (limited to 'searchlib/src/tests/memoryindex') diff --git a/searchlib/src/tests/memoryindex/url_field_inverter/CMakeLists.txt b/searchlib/src/tests/memoryindex/url_field_inverter/CMakeLists.txt index 28efc8a861e..db9418b7190 100644 --- a/searchlib/src/tests/memoryindex/url_field_inverter/CMakeLists.txt +++ b/searchlib/src/tests/memoryindex/url_field_inverter/CMakeLists.txt @@ -5,5 +5,6 @@ vespa_add_executable(searchlib_url_field_inverter_test_app TEST DEPENDS searchlib_test searchlib + gtest ) vespa_add_test(NAME searchlib_url_field_inverter_test_app COMMAND searchlib_url_field_inverter_test_app) diff --git a/searchlib/src/tests/memoryindex/url_field_inverter/url_field_inverter_test.cpp b/searchlib/src/tests/memoryindex/url_field_inverter/url_field_inverter_test.cpp index 2ea13a20063..2151a44a66d 100644 --- a/searchlib/src/tests/memoryindex/url_field_inverter/url_field_inverter_test.cpp +++ b/searchlib/src/tests/memoryindex/url_field_inverter/url_field_inverter_test.cpp @@ -1,15 +1,14 @@ // Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. -/* -*- mode: C++; coding: utf-8; -*- */ #include #include #include #include #include -#include #include +#include #include -#include +#include namespace search { @@ -56,7 +55,6 @@ makeDoc10Single(DocBuilder &b) return b.endDocument(); } - Document::UP makeDoc10Array(DocBuilder &b) { @@ -169,7 +167,6 @@ makeDoc10WeightedSet(DocBuilder &b) return b.endDocument(); } - Document::UP makeDoc10Empty(DocBuilder &b) { @@ -179,8 +176,7 @@ makeDoc10Empty(DocBuilder &b) } -struct Fixture -{ +struct UrlFieldInverterTest : public ::testing::Test { Schema _schema; DocBuilder _b; WordStore _word_store; @@ -191,15 +187,13 @@ struct Fixture std::unique_ptr _urlInverter; index::SchemaIndexFields _schemaIndexFields; - static Schema - makeSchema(Schema::CollectionType collectionType) - { + static Schema makeSchema(Schema::CollectionType collectionType) { Schema schema; schema.addUriIndexFields(Schema::IndexField("url", DataType::STRING, collectionType)); return schema; } - Fixture(Schema::CollectionType collectionType) + UrlFieldInverterTest(Schema::CollectionType collectionType) : _schema(makeSchema(collectionType)), _b(_schema), _word_store(), @@ -233,15 +227,11 @@ struct Fixture _inverters[urlField._hostname].get()); } - void - invertDocument(uint32_t docId, const Document &doc) - { + void invertDocument(uint32_t docId, const Document &doc) { _urlInverter->invertField(docId, doc.getValue(url)); } - void - pushDocuments() - { + void pushDocuments() { uint32_t fieldId = 0; for (auto &inverter : _inverters) { _inserter.setFieldId(fieldId); @@ -250,324 +240,330 @@ struct Fixture } } - void - enableAnnotations() - { + void enableAnnotations() { _urlInverter->setUseAnnotations(true); } }; +struct SingleInverterTest : public UrlFieldInverterTest { + SingleInverterTest() : UrlFieldInverterTest(CollectionType::SINGLE) {} +}; + +struct ArrayInverterTest : public UrlFieldInverterTest { + ArrayInverterTest() : UrlFieldInverterTest(CollectionType::ARRAY) {} +}; -TEST_F("requireThatSingleUrlFieldWorks", Fixture(CollectionType::SINGLE)) -{ - f.invertDocument(10, *makeDoc10Single(f._b)); - f.pushDocuments(); - EXPECT_EQUAL("f=0," - "w=2,a=10," - "w=4,a=10," - "w=81,a=10," - "w=ab,a=10," - "w=com,a=10," - "w=example,a=10," - "w=fluke,a=10," - "w=http,a=10," - "w=www,a=10," - "f=1," - "w=http,a=10," - "f=2," - "w=com,a=10," - "w=example,a=10," - "w=www,a=10," - "f=3," - "w=81,a=10," - "f=4," - "w=fluke,a=10," - "f=5," - "w=2,a=10," - "w=ab,a=10," - "f=6," - "w=4,a=10," - "f=7," - "w=EnDhOsT,a=10," - "w=StArThOsT,a=10," - "w=com,a=10," - "w=example,a=10," - "w=www,a=10", - f._inserter.toStr()); -} +struct WeightedSetInverterTest : public UrlFieldInverterTest { + WeightedSetInverterTest() : UrlFieldInverterTest(CollectionType::WEIGHTEDSET) {} +}; -TEST_F("requireThatArrayUrlFieldWorks", Fixture(CollectionType::ARRAY)) +TEST_F(SingleInverterTest, require_that_single_url_field_works) { - f.invertDocument(10, *makeDoc10Array(f._b)); - f.pushDocuments(); - EXPECT_EQUAL("f=0," - "w=2,a=10," - "w=8,a=10," - "w=82,a=10," - "w=9,a=10," - "w=ab,a=10," - "w=com,a=10," - "w=example,a=10," - "w=flickr,a=10," - "w=fluke,a=10," - "w=http,a=10," - "w=www,a=10," - "f=1," - "w=http,a=10," - "f=2," - "w=com,a=10," - "w=example,a=10," - "w=flickr,a=10," - "w=www,a=10," - "f=3," - "w=82,a=10," - "f=4," - "w=fluke,a=10," - "f=5," - "w=2,a=10," - "w=ab,a=10," - "f=6," - "w=8,a=10," - "w=9,a=10," - "f=7," - "w=EnDhOsT,a=10," - "w=StArThOsT,a=10," - "w=com,a=10," - "w=example,a=10," - "w=flickr,a=10," - "w=www,a=10", - f._inserter.toStr()); + invertDocument(10, *makeDoc10Single(_b)); + pushDocuments(); + EXPECT_EQ("f=0," + "w=2,a=10," + "w=4,a=10," + "w=81,a=10," + "w=ab,a=10," + "w=com,a=10," + "w=example,a=10," + "w=fluke,a=10," + "w=http,a=10," + "w=www,a=10," + "f=1," + "w=http,a=10," + "f=2," + "w=com,a=10," + "w=example,a=10," + "w=www,a=10," + "f=3," + "w=81,a=10," + "f=4," + "w=fluke,a=10," + "f=5," + "w=2,a=10," + "w=ab,a=10," + "f=6," + "w=4,a=10," + "f=7," + "w=EnDhOsT,a=10," + "w=StArThOsT,a=10," + "w=com,a=10," + "w=example,a=10," + "w=www,a=10", + _inserter.toStr()); } -TEST_F("requireThatWeightedSetFieldWorks", Fixture(CollectionType::WEIGHTEDSET)) +TEST_F(ArrayInverterTest, require_that_array_url_field_works) { - f.invertDocument(10, *makeDoc10WeightedSet(f._b)); - f.pushDocuments(); - EXPECT_EQUAL("f=0," - "w=12,a=10," - "w=13,a=10," - "w=2,a=10," - "w=83,a=10," - "w=85,a=10," - "w=ab,a=10," - "w=com,a=10," - "w=example,a=10," - "w=flickr,a=10," - "w=fluke,a=10," - "w=http,a=10," - "w=www,a=10," - "f=1," - "w=http,a=10," - "f=2," - "w=com,a=10," - "w=example,a=10," - "w=flickr,a=10," - "w=www,a=10," - "f=3," - "w=83,a=10," - "w=85,a=10," - "f=4," - "w=fluke,a=10," - "f=5," - "w=2,a=10," - "w=ab,a=10," - "f=6," - "w=12,a=10," - "w=13,a=10," - "f=7," - "w=EnDhOsT,a=10," - "w=StArThOsT,a=10," - "w=com,a=10," - "w=example,a=10," - "w=flickr,a=10," - "w=www,a=10", - f._inserter.toStr()); + invertDocument(10, *makeDoc10Array(_b)); + pushDocuments(); + EXPECT_EQ("f=0," + "w=2,a=10," + "w=8,a=10," + "w=82,a=10," + "w=9,a=10," + "w=ab,a=10," + "w=com,a=10," + "w=example,a=10," + "w=flickr,a=10," + "w=fluke,a=10," + "w=http,a=10," + "w=www,a=10," + "f=1," + "w=http,a=10," + "f=2," + "w=com,a=10," + "w=example,a=10," + "w=flickr,a=10," + "w=www,a=10," + "f=3," + "w=82,a=10," + "f=4," + "w=fluke,a=10," + "f=5," + "w=2,a=10," + "w=ab,a=10," + "f=6," + "w=8,a=10," + "w=9,a=10," + "f=7," + "w=EnDhOsT,a=10," + "w=StArThOsT,a=10," + "w=com,a=10," + "w=example,a=10," + "w=flickr,a=10," + "w=www,a=10", + _inserter.toStr()); } -TEST_F("requireThatAnnotatedSingleUrlFieldWorks", Fixture(CollectionType::SINGLE)) +TEST_F(WeightedSetInverterTest, require_that_weighted_set_field_works) { - f.enableAnnotations(); - f.invertDocument(10, *makeDoc10Single(f._b)); - f.pushDocuments(); - EXPECT_EQUAL("f=0," - "w=2,a=10," - "w=4,a=10," - "w=81,a=10," - "w=ab,a=10," - "w=com,a=10," - "w=example,a=10," - "w=fluke,a=10," - "w=http,a=10," - "w=www,a=10," - "f=1," - "w=http,a=10," - "f=2," - "w=com,a=10," - "w=example,a=10," - "w=www,a=10," - "f=3," - "w=81,a=10," - "f=4," - "w=altfluke,a=10," - "w=fluke,a=10," - "f=5," - "w=2,a=10," - "w=ab,a=10," - "f=6," - "w=4,a=10," - "f=7," - "w=EnDhOsT,a=10," - "w=StArThOsT,a=10," - "w=com,a=10," - "w=example,a=10," - "w=www,a=10", - f._inserter.toStr()); + invertDocument(10, *makeDoc10WeightedSet(_b)); + pushDocuments(); + EXPECT_EQ("f=0," + "w=12,a=10," + "w=13,a=10," + "w=2,a=10," + "w=83,a=10," + "w=85,a=10," + "w=ab,a=10," + "w=com,a=10," + "w=example,a=10," + "w=flickr,a=10," + "w=fluke,a=10," + "w=http,a=10," + "w=www,a=10," + "f=1," + "w=http,a=10," + "f=2," + "w=com,a=10," + "w=example,a=10," + "w=flickr,a=10," + "w=www,a=10," + "f=3," + "w=83,a=10," + "w=85,a=10," + "f=4," + "w=fluke,a=10," + "f=5," + "w=2,a=10," + "w=ab,a=10," + "f=6," + "w=12,a=10," + "w=13,a=10," + "f=7," + "w=EnDhOsT,a=10," + "w=StArThOsT,a=10," + "w=com,a=10," + "w=example,a=10," + "w=flickr,a=10," + "w=www,a=10", + _inserter.toStr()); } - -TEST_F("requireThatAnnotatedArrayUrlFieldWorks", Fixture(CollectionType::ARRAY)) +TEST_F(SingleInverterTest, require_that_annotated_single_url_field_works) { - f.enableAnnotations(); - f.invertDocument(10, *makeDoc10Array(f._b)); - f.pushDocuments(); - EXPECT_EQUAL("f=0," - "w=2,a=10," - "w=8,a=10," - "w=82,a=10," - "w=9,a=10," - "w=ab,a=10," - "w=com,a=10," - "w=example,a=10," - "w=flickr,a=10," - "w=fluke,a=10," - "w=http,a=10," - "w=www,a=10," - "f=1," - "w=http,a=10," - "f=2," - "w=com,a=10," - "w=example,a=10," - "w=flickr,a=10," - "w=www,a=10," - "f=3," - "w=82,a=10," - "f=4," - "w=altfluke,a=10," - "w=fluke,a=10," - "f=5," - "w=2,a=10," - "w=ab,a=10," - "f=6," - "w=8,a=10," - "w=9,a=10," - "f=7," - "w=EnDhOsT,a=10," - "w=StArThOsT,a=10," - "w=com,a=10," - "w=example,a=10," - "w=flickr,a=10," - "w=www,a=10", - f._inserter.toStr()); + enableAnnotations(); + invertDocument(10, *makeDoc10Single(_b)); + pushDocuments(); + EXPECT_EQ("f=0," + "w=2,a=10," + "w=4,a=10," + "w=81,a=10," + "w=ab,a=10," + "w=com,a=10," + "w=example,a=10," + "w=fluke,a=10," + "w=http,a=10," + "w=www,a=10," + "f=1," + "w=http,a=10," + "f=2," + "w=com,a=10," + "w=example,a=10," + "w=www,a=10," + "f=3," + "w=81,a=10," + "f=4," + "w=altfluke,a=10," + "w=fluke,a=10," + "f=5," + "w=2,a=10," + "w=ab,a=10," + "f=6," + "w=4,a=10," + "f=7," + "w=EnDhOsT,a=10," + "w=StArThOsT,a=10," + "w=com,a=10," + "w=example,a=10," + "w=www,a=10", + _inserter.toStr()); } -TEST_F("requireThatAnnotatedWeightedSetFieldWorks", - Fixture(CollectionType::WEIGHTEDSET)) +TEST_F(ArrayInverterTest, require_that_annotated_array_url_field_works) { - f.enableAnnotations(); - f._inserter.setVerbose(); - f.invertDocument(10, *makeDoc10WeightedSet(f._b)); - f.pushDocuments(); - EXPECT_EQUAL("f=0," - "w=12,a=10(e=0,w=4,l=9[8])," - "w=13,a=10(e=1,w=7,l=9[8])," - "w=2,a=10(e=0,w=4,l=9[7],e=1,w=7,l=9[7])," - "w=83,a=10(e=0,w=4,l=9[4])," - "w=85,a=10(e=1,w=7,l=9[4])," - "w=ab,a=10(e=0,w=4,l=9[6],e=1,w=7,l=9[6])," - "w=com,a=10(e=0,w=4,l=9[3],e=1,w=7,l=9[3])," - "w=example,a=10(e=0,w=4,l=9[2])," - "w=flickr,a=10(e=1,w=7,l=9[2])," - "w=fluke,a=10(e=0,w=4,l=9[5],e=1,w=7,l=9[5])," - "w=http,a=10(e=0,w=4,l=9[0],e=1,w=7,l=9[0])," - "w=www,a=10(e=0,w=4,l=9[1],e=1,w=7,l=9[1])," - "f=1," - "w=http,a=10(e=0,w=4,l=1[0],e=1,w=7,l=1[0])," - "f=2," - "w=com,a=10(e=0,w=4,l=3[2],e=1,w=7,l=3[2])," - "w=example,a=10(e=0,w=4,l=3[1])," - "w=flickr,a=10(e=1,w=7,l=3[1])," - "w=www,a=10(e=0,w=4,l=3[0],e=1,w=7,l=3[0])," - "f=3," - "w=83,a=10(e=0,w=4,l=1[0])," - "w=85,a=10(e=1,w=7,l=1[0])," - "f=4," - "w=altfluke,a=10(e=0,w=4,l=1[0])," - "w=fluke,a=10(e=0,w=4,l=1[0],e=1,w=7,l=1[0])," - "f=5," - "w=2,a=10(e=0,w=4,l=2[1],e=1,w=7,l=2[1])," - "w=ab,a=10(e=0,w=4,l=2[0],e=1,w=7,l=2[0])," - "f=6," - "w=12,a=10(e=0,w=4,l=1[0])," - "w=13,a=10(e=1,w=7,l=1[0])," - "f=7," - "w=EnDhOsT,a=10(e=0,w=4,l=5[4],e=1,w=7,l=5[4])," - "w=StArThOsT,a=10(e=0,w=4,l=5[0],e=1,w=7,l=5[0])," - "w=com,a=10(e=0,w=4,l=5[3],e=1,w=7,l=5[3])," - "w=example,a=10(e=0,w=4,l=5[2])," - "w=flickr,a=10(e=1,w=7,l=5[2])," - "w=www,a=10(e=0,w=4,l=5[1],e=1,w=7,l=5[1])", - f._inserter.toStr()); + enableAnnotations(); + invertDocument(10, *makeDoc10Array(_b)); + pushDocuments(); + EXPECT_EQ("f=0," + "w=2,a=10," + "w=8,a=10," + "w=82,a=10," + "w=9,a=10," + "w=ab,a=10," + "w=com,a=10," + "w=example,a=10," + "w=flickr,a=10," + "w=fluke,a=10," + "w=http,a=10," + "w=www,a=10," + "f=1," + "w=http,a=10," + "f=2," + "w=com,a=10," + "w=example,a=10," + "w=flickr,a=10," + "w=www,a=10," + "f=3," + "w=82,a=10," + "f=4," + "w=altfluke,a=10," + "w=fluke,a=10," + "f=5," + "w=2,a=10," + "w=ab,a=10," + "f=6," + "w=8,a=10," + "w=9,a=10," + "f=7," + "w=EnDhOsT,a=10," + "w=StArThOsT,a=10," + "w=com,a=10," + "w=example,a=10," + "w=flickr,a=10," + "w=www,a=10", + _inserter.toStr()); } +TEST_F(WeightedSetInverterTest, require_that_annotated_weighted_set_field_works) +{ + enableAnnotations(); + _inserter.setVerbose(); + invertDocument(10, *makeDoc10WeightedSet(_b)); + pushDocuments(); + EXPECT_EQ("f=0," + "w=12,a=10(e=0,w=4,l=9[8])," + "w=13,a=10(e=1,w=7,l=9[8])," + "w=2,a=10(e=0,w=4,l=9[7],e=1,w=7,l=9[7])," + "w=83,a=10(e=0,w=4,l=9[4])," + "w=85,a=10(e=1,w=7,l=9[4])," + "w=ab,a=10(e=0,w=4,l=9[6],e=1,w=7,l=9[6])," + "w=com,a=10(e=0,w=4,l=9[3],e=1,w=7,l=9[3])," + "w=example,a=10(e=0,w=4,l=9[2])," + "w=flickr,a=10(e=1,w=7,l=9[2])," + "w=fluke,a=10(e=0,w=4,l=9[5],e=1,w=7,l=9[5])," + "w=http,a=10(e=0,w=4,l=9[0],e=1,w=7,l=9[0])," + "w=www,a=10(e=0,w=4,l=9[1],e=1,w=7,l=9[1])," + "f=1," + "w=http,a=10(e=0,w=4,l=1[0],e=1,w=7,l=1[0])," + "f=2," + "w=com,a=10(e=0,w=4,l=3[2],e=1,w=7,l=3[2])," + "w=example,a=10(e=0,w=4,l=3[1])," + "w=flickr,a=10(e=1,w=7,l=3[1])," + "w=www,a=10(e=0,w=4,l=3[0],e=1,w=7,l=3[0])," + "f=3," + "w=83,a=10(e=0,w=4,l=1[0])," + "w=85,a=10(e=1,w=7,l=1[0])," + "f=4," + "w=altfluke,a=10(e=0,w=4,l=1[0])," + "w=fluke,a=10(e=0,w=4,l=1[0],e=1,w=7,l=1[0])," + "f=5," + "w=2,a=10(e=0,w=4,l=2[1],e=1,w=7,l=2[1])," + "w=ab,a=10(e=0,w=4,l=2[0],e=1,w=7,l=2[0])," + "f=6," + "w=12,a=10(e=0,w=4,l=1[0])," + "w=13,a=10(e=1,w=7,l=1[0])," + "f=7," + "w=EnDhOsT,a=10(e=0,w=4,l=5[4],e=1,w=7,l=5[4])," + "w=StArThOsT,a=10(e=0,w=4,l=5[0],e=1,w=7,l=5[0])," + "w=com,a=10(e=0,w=4,l=5[3],e=1,w=7,l=5[3])," + "w=example,a=10(e=0,w=4,l=5[2])," + "w=flickr,a=10(e=1,w=7,l=5[2])," + "w=www,a=10(e=0,w=4,l=5[1],e=1,w=7,l=5[1])", + _inserter.toStr()); +} -TEST_F("requireThatEmptySingleFieldWorks", Fixture(CollectionType::SINGLE)) +TEST_F(SingleInverterTest, require_that_empty_single_field_works) { - f.invertDocument(10, *makeDoc10Empty(f._b)); - f.pushDocuments(); - EXPECT_EQUAL("", f._inserter.toStr()); + invertDocument(10, *makeDoc10Empty(_b)); + pushDocuments(); + EXPECT_EQ("", _inserter.toStr()); } -TEST_F("requireThatEmptyArrayFieldWorks", Fixture(CollectionType::ARRAY)) +TEST_F(ArrayInverterTest, require_that_empty_array_field_works) { - f.invertDocument(10, *makeDoc10Empty(f._b)); - f.pushDocuments(); - EXPECT_EQUAL("", - f._inserter.toStr()); + invertDocument(10, *makeDoc10Empty(_b)); + pushDocuments(); + EXPECT_EQ("", + _inserter.toStr()); } -TEST_F("requireThatEmptyWeightedSetFieldWorks", Fixture(CollectionType::WEIGHTEDSET)) +TEST_F(WeightedSetInverterTest, require_that_empty_weighted_set_field_works) { - f.invertDocument(10, *makeDoc10Empty(f._b)); - f.pushDocuments(); - EXPECT_EQUAL("", f._inserter.toStr()); + invertDocument(10, *makeDoc10Empty(_b)); + pushDocuments(); + EXPECT_EQ("", _inserter.toStr()); } -TEST_F("requireThatAnnotatedEmptySingleFieldWorks", Fixture(CollectionType::SINGLE)) +TEST_F(SingleInverterTest, require_that_annotated_empty_single_field_works) { - f.enableAnnotations(); - f.invertDocument(10, *makeDoc10Empty(f._b)); - f.pushDocuments(); - EXPECT_EQUAL("", f._inserter.toStr()); + enableAnnotations(); + invertDocument(10, *makeDoc10Empty(_b)); + pushDocuments(); + EXPECT_EQ("", _inserter.toStr()); } -TEST_F("requireThatAnnotatedEmptyArrayFieldWorks", Fixture(CollectionType::ARRAY)) +TEST_F(ArrayInverterTest, require_that_annotated_empty_array_field_works) { - f.enableAnnotations(); - f.invertDocument(10, *makeDoc10Empty(f._b)); - f.pushDocuments(); - EXPECT_EQUAL("", f._inserter.toStr()); + enableAnnotations(); + invertDocument(10, *makeDoc10Empty(_b)); + pushDocuments(); + EXPECT_EQ("", _inserter.toStr()); } -TEST_F("requireThatAnnotatedEmptyWeightedSetFieldWorks", Fixture(CollectionType::WEIGHTEDSET)) +TEST_F(WeightedSetInverterTest, require_that_annotated_empty_weighted_set_field_works) { - f.enableAnnotations(); - f.invertDocument(10, *makeDoc10Empty(f._b)); - f.pushDocuments(); - EXPECT_EQUAL("", f._inserter.toStr()); + enableAnnotations(); + invertDocument(10, *makeDoc10Empty(_b)); + pushDocuments(); + EXPECT_EQ("", _inserter.toStr()); } -} // namespace memoryindex -} // namespace search +} +} -TEST_MAIN() { TEST_RUN_ALL(); } +GTEST_MAIN_RUN_ALL_TESTS() -- cgit v1.2.3