summaryrefslogtreecommitdiffstats
path: root/searchsummary
diff options
context:
space:
mode:
authorTor Egge <Tor.Egge@broadpark.no>2019-09-25 12:53:22 +0200
committerTor Egge <Tor.Egge@broadpark.no>2019-09-25 12:53:22 +0200
commit1801eb4421d5ea80b6cd881755ba140d5bb76d22 (patch)
treed40a798b56df535b45b5b7c151c2953a6aac2897 /searchsummary
parentc3d30accc4c14693a9c1e794eae1f11027ef2da8 (diff)
Rewrite attribute combiner unit test to use GTest.
Diffstat (limited to 'searchsummary')
-rw-r--r--searchsummary/src/tests/docsummary/attribute_combiner/CMakeLists.txt2
-rw-r--r--searchsummary/src/tests/docsummary/attribute_combiner/attribute_combiner_test.cpp76
2 files changed, 46 insertions, 32 deletions
diff --git a/searchsummary/src/tests/docsummary/attribute_combiner/CMakeLists.txt b/searchsummary/src/tests/docsummary/attribute_combiner/CMakeLists.txt
index df323b9c982..cffdef25e5b 100644
--- a/searchsummary/src/tests/docsummary/attribute_combiner/CMakeLists.txt
+++ b/searchsummary/src/tests/docsummary/attribute_combiner/CMakeLists.txt
@@ -1,8 +1,10 @@
# Copyright 2018 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+find_package(GTest REQUIRED)
vespa_add_executable(searchsummary_attribute_combiner_test_app TEST
SOURCES
attribute_combiner_test.cpp
DEPENDS
searchsummary
+ GTest::GTest
)
vespa_add_test(NAME searchsummary_attribute_combiner_test_app COMMAND searchsummary_attribute_combiner_test_app)
diff --git a/searchsummary/src/tests/docsummary/attribute_combiner/attribute_combiner_test.cpp b/searchsummary/src/tests/docsummary/attribute_combiner/attribute_combiner_test.cpp
index 60b1574a8d5..01b458daf5d 100644
--- a/searchsummary/src/tests/docsummary/attribute_combiner/attribute_combiner_test.cpp
+++ b/searchsummary/src/tests/docsummary/attribute_combiner/attribute_combiner_test.cpp
@@ -13,7 +13,7 @@
#include <vespa/searchsummary/docsummary/docsum_field_writer_state.h>
#include <vespa/searchsummary/docsummary/attribute_combiner_dfw.h>
#include <vespa/vespalib/data/slime/slime.h>
-#include <vespa/vespalib/testkit/testapp.h>
+#include <vespa/vespalib/gtest/gtest.h>
#include <vespa/log/log.h>
LOG_SETUP("attribute_combiner_test");
@@ -122,7 +122,7 @@ AttributeManagerFixture::buildAttribute(const vespalib::string &name,
for (const auto &docValues : values) {
uint32_t docId = 0;
EXPECT_TRUE(attr->addDoc(docId));
- EXPECT_NOT_EQUAL(0u, docId);
+ EXPECT_NE(0u, docId);
for (const auto &value : docValues) {
attr->append(docId, value, 1);
}
@@ -164,33 +164,40 @@ public:
};
-struct Fixture
+struct AttributeCombinerTest : public ::testing::Test
{
AttributeManagerFixture attrs;
std::unique_ptr<IDocsumFieldWriter> writer;
DummyStateCallback stateCallback;
GetDocsumsState state;
- Fixture(const vespalib::string &fieldName);
- ~Fixture();
+ AttributeCombinerTest();
+ ~AttributeCombinerTest();
+ void set_field_name(const vespalib::string &field_name);
void assertWritten(const vespalib::string &exp, uint32_t docId);
};
-Fixture::Fixture(const vespalib::string &fieldName)
+AttributeCombinerTest::AttributeCombinerTest()
: attrs(),
- writer(AttributeCombinerDFW::create(fieldName, attrs.mgr)),
+ writer(),
stateCallback(),
state(stateCallback)
{
- EXPECT_TRUE(writer->setFieldWriterStateIndex(0));
state._attrCtx = attrs.mgr.createContext();
- state._fieldWriterStates.resize(1);
}
-Fixture::~Fixture() = default;
+AttributeCombinerTest::~AttributeCombinerTest() = default;
+
+void
+AttributeCombinerTest::set_field_name(const vespalib::string &field_name)
+{
+ writer = AttributeCombinerDFW::create(field_name, attrs.mgr);
+ EXPECT_TRUE(writer->setFieldWriterStateIndex(0));
+ state._fieldWriterStates.resize(1);
+}
void
-Fixture::assertWritten(const vespalib::string &expectedJson, uint32_t docId)
+AttributeCombinerTest::assertWritten(const vespalib::string &expectedJson, uint32_t docId)
{
vespalib::Slime target;
vespalib::slime::SlimeInserter inserter(target);
@@ -200,41 +207,46 @@ Fixture::assertWritten(const vespalib::string &expectedJson, uint32_t docId)
search::SlimeOutputRawBufAdapter adapter(binary);
vespalib::slime::BinaryFormat::encode(target, adapter);
FieldBlock block(expectedJson);
- if (!EXPECT_EQUAL(block.dataLen(), binary.GetUsedLen()) ||
- !EXPECT_EQUAL(0, memcmp(block.data(), binary.GetDrainPos(), block.dataLen()))) {
+ EXPECT_EQ(block.dataLen(), binary.GetUsedLen());
+ EXPECT_EQ(0, memcmp(block.data(), binary.GetDrainPos(), block.dataLen()));
+ if (block.dataLen() != binary.GetUsedLen() ||
+ memcmp(block.data(), binary.GetDrainPos(), block.dataLen()) != 0) {
LOG(error, "Expected '%s'", expectedJson.c_str());
LOG(error, "Expected normalized '%s'", block.json.c_str());
LOG(error, "Got '%s'", json.c_str());
}
}
-TEST_F("require that attribute combiner dfw generates correct slime output for array of struct", Fixture("array"))
+TEST_F(AttributeCombinerTest, require_that_attribute_combiner_dfw_generates_correct_slime_output_for_array_of_struct)
{
- TEST_DO(f.assertWritten("[ { fval: 110.0, name: \"n1.1\", val: 10}, { name: \"n1.2\", val: 11}]", 1));
- TEST_DO(f.assertWritten("[ { fval: 120.0, name: \"n2\", val: 20}, { fval: 121.0, val: 21 }]", 2));
- TEST_DO(f.assertWritten("[ { fval: 130.0, name: \"n3.1\", val: 30}, { fval: 131.0, name: \"n3.2\"} ]", 3));
- TEST_DO(f.assertWritten("[ { }, { fval: 141.0, name: \"n4.2\", val: 41} ]", 4));
- TEST_DO(f.assertWritten("null", 5));
+ set_field_name("array");
+ assertWritten("[ { fval: 110.0, name: \"n1.1\", val: 10}, { name: \"n1.2\", val: 11}]", 1);
+ assertWritten("[ { fval: 120.0, name: \"n2\", val: 20}, { fval: 121.0, val: 21 }]", 2);
+ assertWritten("[ { fval: 130.0, name: \"n3.1\", val: 30}, { fval: 131.0, name: \"n3.2\"} ]", 3);
+ assertWritten("[ { }, { fval: 141.0, name: \"n4.2\", val: 41} ]", 4);
+ assertWritten("null", 5);
}
-TEST_F("require that attribute combiner dfw generates correct slime output for map of struct", Fixture("smap"))
+TEST_F(AttributeCombinerTest, require_that_attribute_combiner_dfw_generates_correct_slime_output_for_map_of_struct)
{
- TEST_DO(f.assertWritten("[ { key: \"k1.1\", value: { fval: 110.0, name: \"n1.1\", val: 10} }, { key: \"k1.2\", value: { name: \"n1.2\", val: 11} }]", 1));
- TEST_DO(f.assertWritten("[ { key: \"k2\", value: { fval: 120.0, name: \"n2\", val: 20} }, { value: { fval: 121.0, val: 21 } }]", 2));
- TEST_DO(f.assertWritten("[ { key: \"k3.1\", value: { fval: 130.0, name: \"n3.1\", val: 30} }, { key: \"k3.2\", value: { fval: 131.0, name: \"n3.2\"} } ]", 3));
- TEST_DO(f.assertWritten("[ { value: { } }, { key: \"k4.2\", value: { fval: 141.0, name: \"n4.2\", val: 41} } ]", 4));
- TEST_DO(f.assertWritten("null", 5));
+ set_field_name("smap");
+ assertWritten("[ { key: \"k1.1\", value: { fval: 110.0, name: \"n1.1\", val: 10} }, { key: \"k1.2\", value: { name: \"n1.2\", val: 11} }]", 1);
+ assertWritten("[ { key: \"k2\", value: { fval: 120.0, name: \"n2\", val: 20} }, { value: { fval: 121.0, val: 21 } }]", 2);
+ assertWritten("[ { key: \"k3.1\", value: { fval: 130.0, name: \"n3.1\", val: 30} }, { key: \"k3.2\", value: { fval: 131.0, name: \"n3.2\"} } ]", 3);
+ assertWritten("[ { value: { } }, { key: \"k4.2\", value: { fval: 141.0, name: \"n4.2\", val: 41} } ]", 4);
+ assertWritten("null", 5);
}
-TEST_F("require that attribute combiner dfw generates correct slime output for map of string", Fixture("map"))
+TEST_F(AttributeCombinerTest, require_that_attribute_combiner_dfw_generates_correct_slime_output_for_map_of_string)
{
- TEST_DO(f.assertWritten("[ { key: \"k1.1\", value: \"n1.1\" }, { key: \"k1.2\", value: \"n1.2\"}]", 1));
- TEST_DO(f.assertWritten("[ { key: \"k2\"}]", 2));
- TEST_DO(f.assertWritten("[ { key: \"k3.1\", value: \"n3.1\" }, { value: \"n3.2\"} ]", 3));
- TEST_DO(f.assertWritten("[ { }, { key: \"k4.2\", value: \"n4.2\" } ]", 4));
- TEST_DO(f.assertWritten("null", 5));
+ set_field_name("map");
+ assertWritten("[ { key: \"k1.1\", value: \"n1.1\" }, { key: \"k1.2\", value: \"n1.2\"}]", 1);
+ assertWritten("[ { key: \"k2\"}]", 2);
+ assertWritten("[ { key: \"k3.1\", value: \"n3.1\" }, { value: \"n3.2\"} ]", 3);
+ assertWritten("[ { }, { key: \"k4.2\", value: \"n4.2\" } ]", 4);
+ assertWritten("null", 5);
}
}
-TEST_MAIN() { TEST_RUN_ALL(); }
+GTEST_MAIN_RUN_ALL_TESTS()