aboutsummaryrefslogtreecommitdiffstats
path: root/searchlib/src/tests/engine
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2019-09-27 17:46:17 +0000
committerHenning Baldersheim <balder@yahoo-inc.com>2019-09-27 17:46:17 +0000
commit1d0570f9fbaa06d7d89d1ca0d06b92f25395c8bc (patch)
treea62e7a5bfb6a184bd297d2f4e471edcd5f63d8fc /searchlib/src/tests/engine
parent8aead1fd3a4cee143ba1c915c7180255fbd0446b (diff)
GC some unused code related to fs4 protocol that has now gone missing.
Diffstat (limited to 'searchlib/src/tests/engine')
-rw-r--r--searchlib/src/tests/engine/docsumapi/.gitignore4
-rw-r--r--searchlib/src/tests/engine/docsumapi/CMakeLists.txt8
-rw-r--r--searchlib/src/tests/engine/docsumapi/docsumapi_test.cpp184
-rw-r--r--searchlib/src/tests/engine/monitorapi/.gitignore4
-rw-r--r--searchlib/src/tests/engine/monitorapi/CMakeLists.txt8
-rw-r--r--searchlib/src/tests/engine/monitorapi/monitorapi_test.cpp125
-rw-r--r--searchlib/src/tests/engine/searchapi/.gitignore4
-rw-r--r--searchlib/src/tests/engine/searchapi/CMakeLists.txt8
-rw-r--r--searchlib/src/tests/engine/searchapi/searchapi_test.cpp276
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(); }