diff options
author | Geir Storli <geirst@yahooinc.com> | 2022-04-13 15:17:33 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-04-13 15:17:33 +0200 |
commit | dd38333faaeaeeccaef5e08fbf40be6feb2a67b4 (patch) | |
tree | 0b896fbbeaef01f9f3f5664b7c0e9ade401e7255 | |
parent | 06e81ffbe9a59cbb09ec77702c1880e4eb55d7bc (diff) | |
parent | df1cf5402a7f237db9a80ad231286087488f5f6b (diff) |
Merge pull request #22116 from vespa-engine/toregge/use-google-test-for-extendable-attribute-unit-test
Use google test for extendable attribute unit test.
3 files changed, 101 insertions, 83 deletions
diff --git a/searchlib/src/tests/attribute/extendattributes/CMakeLists.txt b/searchlib/src/tests/attribute/extendattributes/CMakeLists.txt index e989d317b9c..f733f3d0091 100644 --- a/searchlib/src/tests/attribute/extendattributes/CMakeLists.txt +++ b/searchlib/src/tests/attribute/extendattributes/CMakeLists.txt @@ -4,6 +4,6 @@ vespa_add_executable(searchlib_extendattribute_test_app TEST extendattribute.cpp DEPENDS searchlib + GTest::GTest ) -vespa_add_test(NAME searchlib_extendattribute_test_app COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/extendattribute_test.sh - DEPENDS searchlib_extendattribute_test_app) +vespa_add_test(NAME searchlib_extendattribute_test_app COMMAND searchlib_extendattribute_test_app) diff --git a/searchlib/src/tests/attribute/extendattributes/extendattribute.cpp b/searchlib/src/tests/attribute/extendattributes/extendattribute.cpp index 6707a7c6edf..35dd0351f34 100644 --- a/searchlib/src/tests/attribute/extendattributes/extendattribute.cpp +++ b/searchlib/src/tests/attribute/extendattributes/extendattribute.cpp @@ -1,58 +1,55 @@ // Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. -#include <vespa/log/log.h> -LOG_SETUP("extendattribute_test"); -#include <vespa/vespalib/testkit/testapp.h> +#include <vespa/vespalib/gtest/gtest.h> #include <vespa/searchlib/attribute/extendableattributes.h> namespace search { -class ExtendAttributeTest : public vespalib::TestApp +class ExtendAttributeTest : public ::testing::Test { -private: +protected: + ExtendAttributeTest() = default; + ~ExtendAttributeTest() override = default; template <typename Attribute> void testExtendInteger(Attribute & attr); template <typename Attribute> void testExtendFloat(Attribute & attr); template <typename Attribute> void testExtendString(Attribute & attr); - -public: - int Main() override; }; template <typename Attribute> void ExtendAttributeTest::testExtendInteger(Attribute & attr) { uint32_t docId(0); - EXPECT_EQUAL(attr.getNumDocs(), 0u); + EXPECT_EQ(attr.getNumDocs(), 0u); attr.addDoc(docId); - EXPECT_EQUAL(docId, 0u); - EXPECT_EQUAL(attr.getNumDocs(), 1u); + EXPECT_EQ(docId, 0u); + EXPECT_EQ(attr.getNumDocs(), 1u); attr.add(1, 10); - EXPECT_EQUAL(attr.getInt(0), 1); + EXPECT_EQ(attr.getInt(0), 1); attr.add(2, 20); - EXPECT_EQUAL(attr.getInt(0), attr.hasMultiValue() ? 1 : 2); + EXPECT_EQ(attr.getInt(0), attr.hasMultiValue() ? 1 : 2); if (attr.hasMultiValue()) { AttributeVector::WeightedInt v[2]; - EXPECT_EQUAL((static_cast<AttributeVector &>(attr)).get(0, v, 2), 2u); - EXPECT_EQUAL(v[0].getValue(), 1); - EXPECT_EQUAL(v[1].getValue(), 2); + EXPECT_EQ((static_cast<AttributeVector &>(attr)).get(0, v, 2), 2u); + EXPECT_EQ(v[0].getValue(), 1); + EXPECT_EQ(v[1].getValue(), 2); if (attr.hasWeightedSetType()) { - EXPECT_EQUAL(v[0].getWeight(), 10); - EXPECT_EQUAL(v[1].getWeight(), 20); + EXPECT_EQ(v[0].getWeight(), 10); + EXPECT_EQ(v[1].getWeight(), 20); } } attr.addDoc(docId); - EXPECT_EQUAL(docId, 1u); - EXPECT_EQUAL(attr.getNumDocs(), 2u); + EXPECT_EQ(docId, 1u); + EXPECT_EQ(attr.getNumDocs(), 2u); attr.add(3, 30); - EXPECT_EQUAL(attr.getInt(1), 3); + EXPECT_EQ(attr.getInt(1), 3); if (attr.hasMultiValue()) { AttributeVector::WeightedInt v[1]; - EXPECT_EQUAL((static_cast<AttributeVector &>(attr)).get(1, v, 1), 1u); - EXPECT_EQUAL(v[0].getValue(), 3); + EXPECT_EQ((static_cast<AttributeVector &>(attr)).get(1, v, 1), 1u); + EXPECT_EQ(v[0].getValue(), 3); if (attr.hasWeightedSetType()) { - EXPECT_EQUAL(v[0].getWeight(), 30); + EXPECT_EQ(v[0].getWeight(), 30); } } } @@ -61,36 +58,36 @@ template <typename Attribute> void ExtendAttributeTest::testExtendFloat(Attribute & attr) { uint32_t docId(0); - EXPECT_EQUAL(attr.getNumDocs(), 0u); + EXPECT_EQ(attr.getNumDocs(), 0u); attr.addDoc(docId); - EXPECT_EQUAL(docId, 0u); - EXPECT_EQUAL(attr.getNumDocs(), 1u); + EXPECT_EQ(docId, 0u); + EXPECT_EQ(attr.getNumDocs(), 1u); attr.add(1.7, 10); - EXPECT_EQUAL(attr.getInt(0), 1); - EXPECT_EQUAL(attr.getFloat(0), 1.7); + EXPECT_EQ(attr.getInt(0), 1); + EXPECT_EQ(attr.getFloat(0), 1.7); attr.add(2.3, 20); - EXPECT_EQUAL(attr.getFloat(0), attr.hasMultiValue() ? 1.7 : 2.3); + EXPECT_EQ(attr.getFloat(0), attr.hasMultiValue() ? 1.7 : 2.3); if (attr.hasMultiValue()) { AttributeVector::WeightedFloat v[2]; - EXPECT_EQUAL((static_cast<AttributeVector &>(attr)).get(0, v, 2), 2u); - EXPECT_EQUAL(v[0].getValue(), 1.7); - EXPECT_EQUAL(v[1].getValue(), 2.3); + EXPECT_EQ((static_cast<AttributeVector &>(attr)).get(0, v, 2), 2u); + EXPECT_EQ(v[0].getValue(), 1.7); + EXPECT_EQ(v[1].getValue(), 2.3); if (attr.hasWeightedSetType()) { - EXPECT_EQUAL(v[0].getWeight(), 10); - EXPECT_EQUAL(v[1].getWeight(), 20); + EXPECT_EQ(v[0].getWeight(), 10); + EXPECT_EQ(v[1].getWeight(), 20); } } attr.addDoc(docId); - EXPECT_EQUAL(docId, 1u); - EXPECT_EQUAL(attr.getNumDocs(), 2u); + EXPECT_EQ(docId, 1u); + EXPECT_EQ(attr.getNumDocs(), 2u); attr.add(3.6, 30); - EXPECT_EQUAL(attr.getFloat(1), 3.6); + EXPECT_EQ(attr.getFloat(1), 3.6); if (attr.hasMultiValue()) { AttributeVector::WeightedFloat v[1]; - EXPECT_EQUAL((static_cast<AttributeVector &>(attr)).get(1, v, 1), 1u); - EXPECT_EQUAL(v[0].getValue(), 3.6); + EXPECT_EQ((static_cast<AttributeVector &>(attr)).get(1, v, 1), 1u); + EXPECT_EQ(v[0].getValue(), 3.6); if (attr.hasWeightedSetType()) { - EXPECT_EQUAL(v[0].getWeight(), 30); + EXPECT_EQ(v[0].getWeight(), 30); } } } @@ -99,77 +96,103 @@ template <typename Attribute> void ExtendAttributeTest::testExtendString(Attribute & attr) { uint32_t docId(0); - EXPECT_EQUAL(attr.getNumDocs(), 0u); + EXPECT_EQ(attr.getNumDocs(), 0u); attr.addDoc(docId); - EXPECT_EQUAL(docId, 0u); - EXPECT_EQUAL(attr.getNumDocs(), 1u); + EXPECT_EQ(docId, 0u); + EXPECT_EQ(attr.getNumDocs(), 1u); attr.add("1.7", 10); - EXPECT_EQUAL(std::string(attr.getString(0, NULL, 0)), "1.7"); + EXPECT_EQ(std::string(attr.getString(0, NULL, 0)), "1.7"); attr.add("2.3", 20); - EXPECT_EQUAL(std::string(attr.getString(0, NULL, 0)), attr.hasMultiValue() ? "1.7" : "2.3"); + EXPECT_EQ(std::string(attr.getString(0, NULL, 0)), attr.hasMultiValue() ? "1.7" : "2.3"); if (attr.hasMultiValue()) { AttributeVector::WeightedString v[2]; - EXPECT_EQUAL((static_cast<AttributeVector &>(attr)).get(0, v, 2), 2u); - EXPECT_EQUAL(v[0].getValue(), "1.7"); - EXPECT_EQUAL(v[1].getValue(), "2.3"); + EXPECT_EQ((static_cast<AttributeVector &>(attr)).get(0, v, 2), 2u); + EXPECT_EQ(v[0].getValue(), "1.7"); + EXPECT_EQ(v[1].getValue(), "2.3"); if (attr.hasWeightedSetType()) { - EXPECT_EQUAL(v[0].getWeight(), 10); - EXPECT_EQUAL(v[1].getWeight(), 20); + EXPECT_EQ(v[0].getWeight(), 10); + EXPECT_EQ(v[1].getWeight(), 20); } } attr.addDoc(docId); - EXPECT_EQUAL(docId, 1u); - EXPECT_EQUAL(attr.getNumDocs(), 2u); + EXPECT_EQ(docId, 1u); + EXPECT_EQ(attr.getNumDocs(), 2u); attr.add("3.6", 30); - EXPECT_EQUAL(std::string(attr.getString(1, NULL, 0)), "3.6"); + EXPECT_EQ(std::string(attr.getString(1, NULL, 0)), "3.6"); if (attr.hasMultiValue()) { AttributeVector::WeightedString v[1]; - EXPECT_EQUAL((static_cast<AttributeVector &>(attr)).get(1, v, 1), 1u); - EXPECT_EQUAL(v[0].getValue(), "3.6"); + EXPECT_EQ((static_cast<AttributeVector &>(attr)).get(1, v, 1), 1u); + EXPECT_EQ(v[0].getValue(), "3.6"); if (attr.hasWeightedSetType()) { - EXPECT_EQUAL(v[0].getWeight(), 30); + EXPECT_EQ(v[0].getWeight(), 30); } } } -int -ExtendAttributeTest::Main() -{ - TEST_INIT("extendattribute_test"); +TEST_F(ExtendAttributeTest, single_integer_ext_attribute) +{ SingleIntegerExtAttribute siattr("si1"); - MultiIntegerExtAttribute miattr("mi1"); - WeightedSetIntegerExtAttribute wsiattr("wsi1"); EXPECT_TRUE( ! siattr.hasMultiValue() ); - EXPECT_TRUE( miattr.hasMultiValue() ); - EXPECT_TRUE( wsiattr.hasWeightedSetType() ); testExtendInteger(siattr); +} + +TEST_F(ExtendAttributeTest, array_integer_ext_attribute) +{ + MultiIntegerExtAttribute miattr("mi1"); + EXPECT_TRUE( miattr.hasMultiValue() ); testExtendInteger(miattr); +} + +TEST_F(ExtendAttributeTest, weighted_set_integer_ext_attribute) +{ + WeightedSetIntegerExtAttribute wsiattr("wsi1"); + EXPECT_TRUE( wsiattr.hasWeightedSetType() ); testExtendInteger(wsiattr); +} +TEST_F(ExtendAttributeTest, single_float_ext_attribute) +{ SingleFloatExtAttribute sdattr("sd1"); - MultiFloatExtAttribute mdattr("md1"); - WeightedSetFloatExtAttribute wsdattr("wsd1"); EXPECT_TRUE( ! sdattr.hasMultiValue() ); - EXPECT_TRUE( mdattr.hasMultiValue() ); - EXPECT_TRUE( wsdattr.hasWeightedSetType() ); testExtendFloat(sdattr); +} + +TEST_F(ExtendAttributeTest, array_float_ext_attribute) +{ + MultiFloatExtAttribute mdattr("md1"); + EXPECT_TRUE( mdattr.hasMultiValue() ); testExtendFloat(mdattr); +} + +TEST_F(ExtendAttributeTest, weighted_set_float_ext_attribute) +{ + WeightedSetFloatExtAttribute wsdattr("wsd1"); + EXPECT_TRUE( wsdattr.hasWeightedSetType() ); testExtendFloat(wsdattr); +} +TEST_F(ExtendAttributeTest, single_string_ext_attribute) +{ SingleStringExtAttribute ssattr("ss1"); - MultiStringExtAttribute msattr("ms1"); - WeightedSetStringExtAttribute wssattr("wss1"); EXPECT_TRUE( ! ssattr.hasMultiValue() ); - EXPECT_TRUE( msattr.hasMultiValue() ); - EXPECT_TRUE( wssattr.hasWeightedSetType() ); testExtendString(ssattr); +} + +TEST_F(ExtendAttributeTest, array_string_ext_attribute) +{ + MultiStringExtAttribute msattr("ms1"); + EXPECT_TRUE( msattr.hasMultiValue() ); testExtendString(msattr); - testExtendString(wssattr); +} - TEST_DONE(); +TEST_F(ExtendAttributeTest, weighted_set_string_ext_attribute) +{ + WeightedSetStringExtAttribute wssattr("wss1"); + EXPECT_TRUE( wssattr.hasWeightedSetType() ); + testExtendString(wssattr); } } -TEST_APPHOOK(search::ExtendAttributeTest); +GTEST_MAIN_RUN_ALL_TESTS() diff --git a/searchlib/src/tests/attribute/extendattributes/extendattribute_test.sh b/searchlib/src/tests/attribute/extendattributes/extendattribute_test.sh deleted file mode 100755 index 250725ac052..00000000000 --- a/searchlib/src/tests/attribute/extendattributes/extendattribute_test.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash -# Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. -set -e -$VALGRIND ./searchlib_extendattribute_test_app -rm -rf *.dat |