diff options
Diffstat (limited to 'searchlib/src/tests/engine')
9 files changed, 0 insertions, 621 deletions
diff --git a/searchlib/src/tests/engine/docsumapi/.gitignore b/searchlib/src/tests/engine/docsumapi/.gitignore deleted file mode 100644 index 1b38a4ff745..00000000000 --- a/searchlib/src/tests/engine/docsumapi/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -.depend -Makefile -docsumapi_test -searchlib_docsumapi_test_app diff --git a/searchlib/src/tests/engine/docsumapi/CMakeLists.txt b/searchlib/src/tests/engine/docsumapi/CMakeLists.txt deleted file mode 100644 index d1acc996848..00000000000 --- a/searchlib/src/tests/engine/docsumapi/CMakeLists.txt +++ /dev/null @@ -1,8 +0,0 @@ -# Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. -vespa_add_executable(searchlib_docsumapi_test_app TEST - SOURCES - docsumapi_test.cpp - DEPENDS - searchlib -) -vespa_add_test(NAME searchlib_docsumapi_test_app COMMAND searchlib_docsumapi_test_app) diff --git a/searchlib/src/tests/engine/docsumapi/docsumapi_test.cpp b/searchlib/src/tests/engine/docsumapi/docsumapi_test.cpp deleted file mode 100644 index 612e4622373..00000000000 --- a/searchlib/src/tests/engine/docsumapi/docsumapi_test.cpp +++ /dev/null @@ -1,184 +0,0 @@ -// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. -#include <vespa/log/log.h> -LOG_SETUP("docsumapi_test"); -#include <vespa/vespalib/testkit/testapp.h> -#include <vespa/searchlib/common/packets.h> -#include <vespa/searchlib/engine/docsumapi.h> -#include <vespa/searchlib/engine/packetconverter.h> - -using namespace search::engine; -using namespace search::fs4transport; - -namespace { - -// light-weight network hop simulation -template <typename T> void copyPacket(T &src, T &dst) { - FNET_DataBuffer buf; - src.Encode(&buf); - dst.Decode(&buf, buf.GetDataLen()); -} - -} // namespace <unnamed> - -class Test : public vespalib::TestApp -{ -public: - void convertToRequest(); - void convertFromReply(); - int Main() override; -}; - -document::GlobalId gid0("aaaaaaaaaaaa"); -document::GlobalId gid1("bbbbbbbbbbbb"); - -void -Test::convertToRequest() -{ - const string sessionId("qrserver.0.XXXXXXXXXXXXX.0"); - - FS4Packet_GETDOCSUMSX src; - src.setTimeout(fastos::TimeStamp(4*fastos::TimeStamp::MS)); - src._features |= GDF_RANKP_QFLAGS; - src.setRanking("seven"); - src._qflags = 5u; - src._features |= GDF_RESCLASSNAME; - src.setResultClassName("resclass"); - src._features |= GDF_PROPERTIES; - src._propsVector.resize(3); - src._propsVector[0].allocEntries(2); - src._propsVector[0].setName("feature", strlen("feature")); - src._propsVector[0].setKey(0, "p1k1", strlen("p1k1")); - src._propsVector[0].setValue(0, "p1v1", strlen("p1v1")); - src._propsVector[0].setKey(1, "p1k2", strlen("p1k2")); - src._propsVector[0].setValue(1, "p1v2", strlen("p1v2")); - src._propsVector[1].allocEntries(2); - src._propsVector[1].setName("caches", strlen("caches")); - src._propsVector[1].setKey(0, "p2k1", strlen("p2k1")); - src._propsVector[1].setValue(0, "p2v1", strlen("p2v1")); - src._propsVector[1].setKey(1, "p2k2", strlen("p2k2")); - src._propsVector[1].setValue(1, "p2v2", strlen("p2v2")); - src._propsVector[2].allocEntries(1); - src._propsVector[2].setName("rank", strlen("rank")); - src._propsVector[2].setKey(0, "sessionId", strlen("sessionId")); - src._propsVector[2].setValue(0, sessionId.c_str(), sessionId.size()); - src._features |= GDF_QUERYSTACK; - src._stackItems = 14u; - src.setStackDump("stackdump"); - src._features |= GDF_LOCATION; - src.setLocation("location"); - src._features |= GDF_MLD; - src.AllocateDocIDs(2); - src._docid[0]._gid = gid0; - src._docid[0]._partid = 5; - src._docid[1]._gid = gid1; - src._docid[1]._partid = 6; - - { // full copy - FS4Packet_GETDOCSUMSX cpy; - copyPacket(src, cpy); - - DocsumRequest dst; - PacketConverter::toDocsumRequest(cpy, dst); - EXPECT_EQUAL((dst.getTimeOfDoom() - dst.getStartTime()).ms(), 4u); - EXPECT_EQUAL(dst.ranking, "seven"); - EXPECT_EQUAL(dst.queryFlags, 5u); - EXPECT_EQUAL(dst.resultClassName, "resclass"); - EXPECT_EQUAL(dst.propertiesMap.size(), 3u); - EXPECT_EQUAL(dst.propertiesMap.featureOverrides().lookup("p1k1").get(), std::string("p1v1")); - EXPECT_EQUAL(dst.propertiesMap.featureOverrides().lookup("p1k2").get(), std::string("p1v2")); - EXPECT_EQUAL(dst.propertiesMap.cacheProperties().lookup("p2k1").get(), std::string("p2v1")); - EXPECT_EQUAL(dst.propertiesMap.cacheProperties().lookup("p2k2").get(), std::string("p2v2")); - EXPECT_EQUAL(dst.propertiesMap.matchProperties().lookup("p3k1").get(), std::string("")); - EXPECT_EQUAL(std::string(&dst.stackDump[0], dst.stackDump.size()), "stackdump"); - EXPECT_EQUAL(dst.location, "location"); - EXPECT_EQUAL(dst._flags, 0u); - EXPECT_EQUAL(dst.hits.size(), 2u); - EXPECT_EQUAL(dst.hits[0].docid, 0u); - EXPECT_TRUE(dst.hits[0].gid == gid0); - EXPECT_EQUAL(dst.hits[0].path, 5u); - EXPECT_EQUAL(dst.hits[1].docid, 0u); - EXPECT_TRUE(dst.hits[1].gid == gid1); - EXPECT_EQUAL(dst.hits[1].path, 6u); - EXPECT_EQUAL(sessionId, - string(&dst.sessionId[0], dst.sessionId.size())); - } - { // without datetime - FS4Packet_GETDOCSUMSX cpy; - copyPacket(src, cpy); - - DocsumRequest dst; - PacketConverter::toDocsumRequest(cpy, dst); - } - { // without mld - FS4Packet_GETDOCSUMSX cpy; - copyPacket(src, cpy); - cpy._features &= ~GDF_MLD; - - DocsumRequest dst; - PacketConverter::toDocsumRequest(cpy, dst); - EXPECT_EQUAL(dst.useWideHits, false); - EXPECT_EQUAL(dst.hits.size(), 2u); - EXPECT_EQUAL(dst.hits[0].docid, 0u); - EXPECT_TRUE(dst.hits[0].gid == gid0); - EXPECT_EQUAL(dst.hits[1].docid, 0u); - EXPECT_TRUE(dst.hits[1].gid == gid1); - } - { // with ignore row flag - FS4Packet_GETDOCSUMSX tcpy; - copyPacket(src, tcpy); - tcpy._features |= GDF_FLAGS; - tcpy._flags = GDFLAG_IGNORE_ROW; - FS4Packet_GETDOCSUMSX cpy; - copyPacket(tcpy, cpy); - DocsumRequest dst; - PacketConverter::toDocsumRequest(cpy, dst); - EXPECT_EQUAL(dst._flags, static_cast<uint32_t>(GDFLAG_IGNORE_ROW)); - } -} - -void -Test::convertFromReply() -{ - DocsumReply src; - src.docsums.resize(2); - src.docsums[0].docid = 1; - src.docsums[0].gid = gid0; - src.docsums[0].data.resize(2); - src.docsums[0].data.str()[0] = 5; - src.docsums[0].data.str()[1] = 6; - src.docsums[1].docid = 2; - src.docsums[1].gid = gid1; - src.docsums[1].data.resize(3); - src.docsums[1].data.str()[0] = 7; - src.docsums[1].data.str()[1] = 8; - src.docsums[1].data.str()[2] = 9; - - { // test first - FS4Packet_DOCSUM dst; - PacketConverter::fromDocsumReplyElement(src.docsums[0], dst); - EXPECT_EQUAL(dst.getGid(), gid0); - EXPECT_EQUAL(dst.getBuf().size(), 2u); - EXPECT_EQUAL(dst.getBuf().c_str()[0], 5); - EXPECT_EQUAL(dst.getBuf().c_str()[1], 6); - } - { // test second - FS4Packet_DOCSUM dst; - PacketConverter::fromDocsumReplyElement(src.docsums[1], dst); - EXPECT_EQUAL(dst.getGid(), gid1); - EXPECT_EQUAL(dst.getBuf().size(), 3u); - EXPECT_EQUAL(dst.getBuf().c_str()[0], 7); - EXPECT_EQUAL(dst.getBuf().c_str()[1], 8); - EXPECT_EQUAL(dst.getBuf().c_str()[2], 9); - } -} - -int -Test::Main() -{ - TEST_INIT("docsumapi_test"); - convertToRequest(); - convertFromReply(); - TEST_DONE(); -} - -TEST_APPHOOK(Test); diff --git a/searchlib/src/tests/engine/monitorapi/.gitignore b/searchlib/src/tests/engine/monitorapi/.gitignore deleted file mode 100644 index 66fc005087f..00000000000 --- a/searchlib/src/tests/engine/monitorapi/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -.depend -Makefile -monitorapi_test -searchlib_monitorapi_test_app diff --git a/searchlib/src/tests/engine/monitorapi/CMakeLists.txt b/searchlib/src/tests/engine/monitorapi/CMakeLists.txt deleted file mode 100644 index 3fea05f4841..00000000000 --- a/searchlib/src/tests/engine/monitorapi/CMakeLists.txt +++ /dev/null @@ -1,8 +0,0 @@ -# Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. -vespa_add_executable(searchlib_monitorapi_test_app TEST - SOURCES - monitorapi_test.cpp - DEPENDS - searchlib -) -vespa_add_test(NAME searchlib_monitorapi_test_app COMMAND searchlib_monitorapi_test_app) diff --git a/searchlib/src/tests/engine/monitorapi/monitorapi_test.cpp b/searchlib/src/tests/engine/monitorapi/monitorapi_test.cpp deleted file mode 100644 index 27b00b8a074..00000000000 --- a/searchlib/src/tests/engine/monitorapi/monitorapi_test.cpp +++ /dev/null @@ -1,125 +0,0 @@ -// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. -#include <vespa/log/log.h> -LOG_SETUP("monitorapi_test"); -#include <vespa/vespalib/testkit/testapp.h> -#include <vespa/searchlib/common/packets.h> -#include <vespa/searchlib/engine/monitorapi.h> -#include <vespa/searchlib/engine/packetconverter.h> - -using namespace search::engine; -using namespace search::fs4transport; - -namespace { - -bool checkFeature(uint32_t features, uint32_t mask) { - return ((features & mask) != 0); -} - -bool checkNotFeature(uint32_t features, uint32_t mask) { - return !checkFeature(features, mask); -} - -// light-weight network hop simulation -template <typename T> void copyPacket(T &src, T &dst) { - FNET_DataBuffer buf; - src.Encode(&buf); - dst.Decode(&buf, buf.GetDataLen()); -} - -} // namespace <unnamed> - -class Test : public vespalib::TestApp -{ -public: - void convertToRequest(); - void convertFromReply(); - int Main() override; -}; - -void -Test::convertToRequest() -{ - FS4Packet_MONITORQUERYX src; - src._features |= MQF_QFLAGS; - src._qflags = 1u; - - { // copy all - FS4Packet_MONITORQUERYX cpy; - copyPacket(src, cpy); - - MonitorRequest dst; - PacketConverter::toMonitorRequest(cpy, dst); - EXPECT_EQUAL(dst.flags, 1u); - } -} - -void -Test::convertFromReply() -{ - MonitorReply src; - src.mld = true; - src.partid = 1u; - src.timestamp = 2u; - src.totalNodes = 3u; - src.activeNodes = 4u; - src.totalParts = 5u; - src.activeParts = 6u; - src.flags = 7u; - src.activeDocs = 8u; - src.activeDocsRequested = true; - - { // full copy - MonitorReply cpy = src; - - FS4Packet_MONITORRESULTX dst; - PacketConverter::fromMonitorReply(cpy, dst); - EXPECT_EQUAL(dst._partid, 1u); - EXPECT_EQUAL(dst._timestamp, 2u); - EXPECT_TRUE(checkFeature(dst._features, MRF_MLD)); - EXPECT_EQUAL(dst._totalNodes, 3u); - EXPECT_EQUAL(dst._activeNodes, 4u); - EXPECT_EQUAL(dst._totalParts, 5u); - EXPECT_EQUAL(dst._activeParts, 6u); - EXPECT_TRUE(checkFeature(dst._features, MRF_RFLAGS)); - EXPECT_EQUAL(dst._rflags, 7u); - EXPECT_EQUAL(dst._activeDocs, 8u); - EXPECT_TRUE(checkFeature(dst._features, MRF_ACTIVEDOCS)); - } - { // non-mld - MonitorReply cpy = src; - cpy.mld = false; - - FS4Packet_MONITORRESULTX dst; - PacketConverter::fromMonitorReply(cpy, dst); - EXPECT_TRUE(checkNotFeature(dst._features, MRF_MLD)); - } - { // without flags - MonitorReply cpy = src; - cpy.flags = 0; - - FS4Packet_MONITORRESULTX dst; - PacketConverter::fromMonitorReply(cpy, dst); - EXPECT_TRUE(checkNotFeature(dst._features, MRF_RFLAGS)); - EXPECT_EQUAL(dst._rflags, 0u); - } - { // without activedocs - MonitorReply cpy = src; - cpy.activeDocsRequested = false; - - FS4Packet_MONITORRESULTX dst; - PacketConverter::fromMonitorReply(cpy, dst); - EXPECT_TRUE(checkNotFeature(dst._features, MRF_ACTIVEDOCS)); - EXPECT_EQUAL(dst._activeDocs, 0u); - } -} - -int -Test::Main() -{ - TEST_INIT("monitorapi_test"); - convertToRequest(); - convertFromReply(); - TEST_DONE(); -} - -TEST_APPHOOK(Test); diff --git a/searchlib/src/tests/engine/searchapi/.gitignore b/searchlib/src/tests/engine/searchapi/.gitignore deleted file mode 100644 index 92089e63cdd..00000000000 --- a/searchlib/src/tests/engine/searchapi/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -.depend -Makefile -searchapi_test -searchlib_searchapi_test_app diff --git a/searchlib/src/tests/engine/searchapi/CMakeLists.txt b/searchlib/src/tests/engine/searchapi/CMakeLists.txt deleted file mode 100644 index c4e3de1280a..00000000000 --- a/searchlib/src/tests/engine/searchapi/CMakeLists.txt +++ /dev/null @@ -1,8 +0,0 @@ -# Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. -vespa_add_executable(searchlib_searchapi_test_app TEST - SOURCES - searchapi_test.cpp - DEPENDS - searchlib -) -vespa_add_test(NAME searchlib_searchapi_test_app COMMAND searchlib_searchapi_test_app) diff --git a/searchlib/src/tests/engine/searchapi/searchapi_test.cpp b/searchlib/src/tests/engine/searchapi/searchapi_test.cpp deleted file mode 100644 index 99d1967b0df..00000000000 --- a/searchlib/src/tests/engine/searchapi/searchapi_test.cpp +++ /dev/null @@ -1,276 +0,0 @@ -// 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/packets.h> -#include <vespa/searchlib/engine/searchapi.h> -#include <vespa/searchlib/engine/packetconverter.h> -#include <vespa/vespalib/data/slime/slime.h> -#include <vespa/log/log.h> -LOG_SETUP("searchapi_test"); - -using namespace search::engine; -using namespace search::fs4transport; - -namespace { - -bool checkFeature(uint32_t features, uint32_t mask) { - return ((features & mask) != 0); -} - -bool checkNotFeature(uint32_t features, uint32_t mask) { - return !checkFeature(features, mask); -} - -// light-weight network hop simulation -template <typename T> void copyPacket(T &src, T &dst) { - FNET_DataBuffer buf; - src.Encode(&buf); - dst.Decode(&buf, buf.GetDataLen()); -} - -} // namespace <unnamed> - - -TEST("propertyNames") { - EXPECT_EQUAL(search::MapNames::RANK, "rank"); - EXPECT_EQUAL(search::MapNames::FEATURE, "feature"); - EXPECT_EQUAL(search::MapNames::HIGHLIGHTTERMS, "highlightterms"); - EXPECT_EQUAL(search::MapNames::MATCH, "match"); - EXPECT_EQUAL(search::MapNames::CACHES, "caches"); - EXPECT_EQUAL(search::MapNames::TRACE, "trace"); -} - -TEST("convertToReques") { - FS4Packet_QUERYX src; - src._offset = 2u; - src._maxhits = 3u; - src.setTimeout(fastos::TimeStamp(4*fastos::TimeStamp::MS)); - src.setQueryFlags(5u); - src._features |= QF_RANKP; - src.setRanking("seven"); - src._features |= QF_PROPERTIES; - src._propsVector.resize(2); - src._propsVector[0].allocEntries(2); - src._propsVector[0].setName("feature", strlen("feature")); - src._propsVector[0].setKey(0, "p1k1", strlen("p1k1")); - src._propsVector[0].setValue(0, "p1v1", strlen("p1v1")); - src._propsVector[0].setKey(1, "p1k2", strlen("p1k2")); - src._propsVector[0].setValue(1, "p1v2", strlen("p1v2")); - src._propsVector[1].allocEntries(2); - src._propsVector[1].setName("caches", strlen("caches")); - src._propsVector[1].setKey(0, "p2k1", strlen("p2k1")); - src._propsVector[1].setValue(0, "p2v1", strlen("p2v1")); - src._propsVector[1].setKey(1, "p2k2", strlen("p2k2")); - src._propsVector[1].setValue(1, "p2v2", strlen("p2v2")); - src._features |= QF_SORTSPEC; - src.setSortSpec("sortspec"); - src._features |= QF_GROUPSPEC; - src.setGroupSpec("groupspec"); - src._features |= QF_SESSIONID; - src.setSessionId("sessionid"); - src._features |= QF_LOCATION; - src.setLocation("location"); - src._features |= QF_PARSEDQUERY; - src._numStackItems = 14u; - src.setStackDump("stackdump"); - - { // full copy - FS4Packet_QUERYX cpy; - copyPacket(src, cpy); - - SearchRequest dst; - PacketConverter::toSearchRequest(cpy, dst); - EXPECT_EQUAL(dst.offset, 2u); - EXPECT_EQUAL(dst.maxhits, 3u); - EXPECT_EQUAL((dst.getTimeOfDoom() - dst.getStartTime()).ms(), 4u); - EXPECT_EQUAL(dst.queryFlags, 1u); //Filtered - EXPECT_EQUAL(vespalib::string("seven"), dst.ranking); - EXPECT_EQUAL(dst.propertiesMap.size(), 2u); - EXPECT_EQUAL(dst.propertiesMap.featureOverrides().lookup("p1k1").get(), std::string("p1v1")); - EXPECT_EQUAL(dst.propertiesMap.featureOverrides().lookup("p1k2").get(), std::string("p1v2")); - EXPECT_EQUAL(dst.propertiesMap.cacheProperties().lookup("p2k1").get(), std::string("p2v1")); - EXPECT_EQUAL(dst.propertiesMap.cacheProperties().lookup("p2k2").get(), std::string("p2v2")); - EXPECT_EQUAL(dst.propertiesMap.matchProperties().lookup("p3k1").get(), std::string("")); - EXPECT_EQUAL(dst.sortSpec, "sortspec"); - EXPECT_EQUAL(std::string(&dst.groupSpec[0], dst.groupSpec.size()), "groupspec"); - EXPECT_EQUAL(std::string(&dst.sessionId[0], dst.sessionId.size()), "sessionid"); - EXPECT_EQUAL(dst.location, "location"); - EXPECT_EQUAL(dst.stackItems, 14u); - EXPECT_EQUAL(std::string(&dst.stackDump[0], dst.stackDump.size()), "stackdump"); - } - { // without datetime - FS4Packet_QUERYX cpy; - copyPacket(src, cpy); - - SearchRequest dst; - PacketConverter::toSearchRequest(cpy, dst); - } -} - -TEST("convertFromReply") { - SearchReply src; - src.offset = 1u; - src.totalHitCount = 2u; - src.maxRank = 3; - src.setDistributionKey(4u); - src.sortIndex.push_back(0); - src.sortIndex.push_back(1); - src.sortIndex.push_back(2); - src.sortData.push_back(11); - src.sortData.push_back(22); - src.groupResult.push_back(2); - src.coverage = SearchReply::Coverage(5, 3); - src.useWideHits = true; - src.hits.resize(2); - document::GlobalId gid0("aaaaaaaaaaaa"); - document::GlobalId gid1("bbbbbbbbbbbb"); - src.hits[0].gid = gid0; - src.hits[0].metric = 5; - src.hits[0].path = 11; - src.hits[0].setDistributionKey(100); - src.hits[1].gid = gid1; - src.hits[1].metric = 4; - src.hits[1].path = 10; - src.hits[1].setDistributionKey(105); - - { // full copy - SearchReply cpy = src; - - FS4Packet_QUERYRESULTX dst0; - PacketConverter::fromSearchReply(cpy, dst0); - FS4Packet_QUERYRESULTX dst; - copyPacket(dst0, dst); - EXPECT_EQUAL(dst._offset, 1u); - EXPECT_EQUAL(dst._numDocs, 2u); - EXPECT_EQUAL(dst._totNumDocs, 2u); - EXPECT_EQUAL(dst._maxRank, 3); - EXPECT_EQUAL(4u, dst.getDistributionKey()); - EXPECT_TRUE(checkFeature(dst._features, QRF_SORTDATA)); - EXPECT_EQUAL(dst._sortIndex[0], 0u); - EXPECT_EQUAL(dst._sortIndex[1], 1u); - EXPECT_EQUAL(dst._sortIndex[2], 2u); - EXPECT_EQUAL(dst._sortData[0], 11); - EXPECT_EQUAL(dst._sortData[1], 22); - EXPECT_TRUE(checkFeature(dst._features, QRF_GROUPDATA)); - EXPECT_EQUAL(dst._groupDataLen, 1u); - EXPECT_EQUAL(dst._groupData[0], 2); - EXPECT_TRUE(checkFeature(dst._features, QRF_COVERAGE)); - EXPECT_EQUAL(dst._coverageDocs, 3u); - EXPECT_EQUAL(dst._activeDocs, 5u); - EXPECT_TRUE(checkFeature(dst._features, QRF_MLD)); - EXPECT_TRUE(dst._hits[0]._gid == gid0); - EXPECT_EQUAL(dst._hits[0]._metric, 5); - EXPECT_EQUAL(dst._hits[0]._partid, 11u); - EXPECT_EQUAL(dst._hits[0].getDistributionKey(), 100u); - EXPECT_TRUE(dst._hits[1]._gid == gid1); - EXPECT_EQUAL(dst._hits[1]._metric, 4); - EXPECT_EQUAL(dst._hits[1]._partid, 10u); - EXPECT_EQUAL(dst._hits[1].getDistributionKey(), 105u); - } - { // not sortdata - SearchReply cpy = src; - cpy.sortIndex.clear(); - cpy.sortData.clear(); - - FS4Packet_QUERYRESULTX dst0; - PacketConverter::fromSearchReply(cpy, dst0); - FS4Packet_QUERYRESULTX dst; - copyPacket(dst0, dst); - EXPECT_TRUE(checkNotFeature(dst._features, QRF_SORTDATA)); - } - { // not groupdata - SearchReply cpy = src; - cpy.groupResult.clear(); - - FS4Packet_QUERYRESULTX dst0; - PacketConverter::fromSearchReply(cpy, dst0); - FS4Packet_QUERYRESULTX dst; - copyPacket(dst0, dst); - EXPECT_TRUE(checkNotFeature(dst._features, QRF_GROUPDATA)); - } - { // non-full coverage - SearchReply cpy = src; - - FS4Packet_QUERYRESULTX dst0; - PacketConverter::fromSearchReply(cpy, dst0); - FS4Packet_QUERYRESULTX dst; - copyPacket(dst0, dst); - EXPECT_TRUE(checkFeature(dst._features, QRF_COVERAGE)); - EXPECT_EQUAL(dst._coverageDocs, 3u); - EXPECT_EQUAL(dst._activeDocs, 5u); - } - { // non-mld - SearchReply cpy = src; - cpy.useWideHits = false; - - FS4Packet_QUERYRESULTX dst0; - PacketConverter::fromSearchReply(cpy, dst0); - FS4Packet_QUERYRESULTX dst; - copyPacket(dst0, dst); - EXPECT_TRUE(checkNotFeature(dst._features, QRF_MLD)); - EXPECT_TRUE(dst._hits[0]._gid == gid0); - EXPECT_EQUAL(dst._hits[0]._metric, 5); - EXPECT_TRUE(dst._hits[1]._gid == gid1); - EXPECT_EQUAL(dst._hits[1]._metric, 4); - } - { // non-mld not siteid - SearchReply cpy = src; - cpy.useWideHits = false; - - FS4Packet_QUERYRESULTX dst0; - PacketConverter::fromSearchReply(cpy, dst0); - FS4Packet_QUERYRESULTX dst; - copyPacket(dst0, dst); - EXPECT_TRUE(checkNotFeature(dst._features, QRF_MLD)); - EXPECT_TRUE(dst._hits[0]._gid == gid0); - EXPECT_EQUAL(dst._hits[0]._metric, 5); - EXPECT_TRUE(dst._hits[1]._gid == gid1); - EXPECT_EQUAL(dst._hits[1]._metric, 4); - } -} - -void verify(vespalib::stringref expected, const vespalib::Slime & slime) { - vespalib::Slime expectedSlime; - vespalib::slime::JsonFormat::decode(expected, expectedSlime); - EXPECT_EQUAL(expectedSlime, slime); -} - -TEST("verify trace") { - RelativeTime clock(std::make_unique<CountingClock>(fastos::TimeStamp::fromSec(1500000000), 1700000L)); - Trace t(clock); - EXPECT_FALSE(t.hasTrace()); - t.start(0); - EXPECT_TRUE(t.hasTrace()); - t.createCursor("tag_a"); - verify("{" - " start_time_utc: '2017-07-14 02:40:00.000 UTC'," - " traces: [" - " {" - " tag: 'tag_a'," - " timestamp_ms: 1.7" - " }" - " ]" - "}", - t.getSlime()); - Trace::Cursor & tagB = t.createCursor("tag_b"); - tagB.setLong("long", 19); - t.done(); - verify("{" - " start_time_utc: '2017-07-14 02:40:00.000 UTC'," - " traces: [" - " {" - " tag: 'tag_a'," - " timestamp_ms: 1.7" - " }," - " {" - " tag: 'tag_b'," - " timestamp_ms: 3.4," - " long: 19" - " }" - " ]," - " duration_ms: 5.1" - "}", - t.getSlime()); -} - -TEST_MAIN() { TEST_RUN_ALL(); } |