diff options
author | Arne H Juul <arnej@yahooinc.com> | 2021-10-15 09:47:40 +0000 |
---|---|---|
committer | Arne H Juul <arnej@yahooinc.com> | 2021-10-15 09:47:40 +0000 |
commit | 0f268db1367835ac3d748a3494ab152ac5f161b4 (patch) | |
tree | 60e0f8a0f4501158020505937dced4898c0b11b9 /searchlib | |
parent | e28a07fab5f83fd06f84bee95f20f457738b7ddb (diff) |
update after review
Diffstat (limited to 'searchlib')
4 files changed, 28 insertions, 23 deletions
diff --git a/searchlib/src/tests/engine/proto_converter/proto_converter_test.cpp b/searchlib/src/tests/engine/proto_converter/proto_converter_test.cpp index 23b95f489c6..d0c356bf879 100644 --- a/searchlib/src/tests/engine/proto_converter/proto_converter_test.cpp +++ b/searchlib/src/tests/engine/proto_converter/proto_converter_test.cpp @@ -478,20 +478,25 @@ TEST_F(DocsumRequestTest, require_that_global_ids_are_converted) { //----------------------------------------------------------------------------- struct DocsumReplyTest : ::testing::Test { - DocsumReply reply{std::make_unique<vespalib::Slime>()}; + Slime &slime; + DocsumReply reply; Converter::ProtoDocsumReply proto; void convert() { Converter::docsum_reply_to_proto(reply, proto); } + DocsumReplyTest(std::unique_ptr<Slime> slime_in) + : slime(*slime_in), reply(std::move(slime_in)) + {} + DocsumReplyTest() : DocsumReplyTest(std::make_unique<Slime>()) {} }; TEST_F(DocsumReplyTest, require_that_slime_summaries_are_converted) { - auto &list = reply.slime().setArray(); + auto &list = slime.setArray(); auto &doc0 = list.addObject(); doc0.setLong("my_field", 42); convert(); const auto &mem = proto.slime_summaries(); - Slime slime; - EXPECT_EQ(BinaryFormat::decode(Memory(mem.data(), mem.size()), slime), mem.size()); - EXPECT_EQ(slime.get()[0]["my_field"].asLong(), 42); + Slime decoded; + EXPECT_EQ(BinaryFormat::decode(Memory(mem.data(), mem.size()), decoded), mem.size()); + EXPECT_EQ(decoded.get()[0]["my_field"].asLong(), 42); } TEST_F(DocsumReplyTest, require_that_missing_root_slime_gives_empty_payload) { @@ -501,11 +506,13 @@ TEST_F(DocsumReplyTest, require_that_missing_root_slime_gives_empty_payload) { } TEST_F(DocsumReplyTest, require_that_issues_are_converted_to_errors) { - reply.issues().handle(vespalib::Issue("a")); - reply.issues().handle(vespalib::Issue("b")); - reply.issues().handle(vespalib::Issue("c")); - reply.issues().handle(vespalib::Issue("a")); - reply.issues().handle(vespalib::Issue("b")); + auto my_issues = std::make_unique<UniqueIssues>(); + my_issues->handle(vespalib::Issue("a")); + my_issues->handle(vespalib::Issue("b")); + my_issues->handle(vespalib::Issue("c")); + my_issues->handle(vespalib::Issue("a")); + my_issues->handle(vespalib::Issue("b")); + reply.setIssues(std::move(my_issues)); convert(); ASSERT_EQ(proto.errors_size(), 3); EXPECT_EQ(proto.errors(0).message(), "a"); diff --git a/searchlib/src/vespa/searchlib/engine/docsumreply.cpp b/searchlib/src/vespa/searchlib/engine/docsumreply.cpp index ba738a51183..550398d225c 100644 --- a/searchlib/src/vespa/searchlib/engine/docsumreply.cpp +++ b/searchlib/src/vespa/searchlib/engine/docsumreply.cpp @@ -19,20 +19,19 @@ DocsumReply::DocsumReply(std::unique_ptr<vespalib::Slime> root, {} DocsumReply::DocsumReply(Slime::UP root, DocsumRequest::UP request) - : DocsumReply(std::move(root), std::move(request), std::make_unique<UniqueIssues>()) {} + : DocsumReply(std::move(root), std::move(request), {}) {} DocsumReply::DocsumReply(Slime::UP root) - : DocsumReply(std::move(root), {}, std::make_unique<UniqueIssues>()) {} + : DocsumReply(std::move(root), {}, {}) {} -DocsumReply::DocsumReply() - : DocsumReply(std::make_unique<Slime>()) { } +DocsumReply::DocsumReply() = default; vespalib::slime::Inspector & DocsumReply::root() const { return _slime ? _slime->get() : *NixValue::invalid(); } -bool DocsumReply::hasResults() const { - return (root().children() > 0); +bool DocsumReply::hasResult() const { + return root().valid(); } std::unique_ptr<Slime> DocsumReply::releaseSlime() { diff --git a/searchlib/src/vespa/searchlib/engine/docsumreply.h b/searchlib/src/vespa/searchlib/engine/docsumreply.h index f8fccc2c436..0caa848e4ef 100644 --- a/searchlib/src/vespa/searchlib/engine/docsumreply.h +++ b/searchlib/src/vespa/searchlib/engine/docsumreply.h @@ -33,22 +33,21 @@ public: DocsumReply(); - bool hasResults() const; + bool hasResult() const; bool hasRequest() const { return (_request.get() != nullptr); } bool hasIssues() const { return _issues && (_issues->size() > 0); } - vespalib::Slime & slime() const { assert(_slime.get()); return *_slime; } - DocsumRequest& request() const { assert(hasRequest()); return *_request; } - UniqueIssues & issues() const { return *_issues; } + const vespalib::Slime & slime() const { assert(_slime.get()); return *_slime; } + const DocsumRequest& request() const { assert(_request.get()); return *_request; } + const UniqueIssues & issues() const { assert(_issues.get()); return *_issues; } -/* void setRequest(DocsumRequest::UP request) { _request = std::move(request); } + void setIssues(UniqueIssues::UP issues) { _issues = std::move(issues); } -*/ std::unique_ptr<vespalib::Slime> releaseSlime(); diff --git a/searchlib/src/vespa/searchlib/engine/proto_converter.cpp b/searchlib/src/vespa/searchlib/engine/proto_converter.cpp index 732ddecd357..8b949d9ed4e 100644 --- a/searchlib/src/vespa/searchlib/engine/proto_converter.cpp +++ b/searchlib/src/vespa/searchlib/engine/proto_converter.cpp @@ -168,7 +168,7 @@ ProtoConverter::docsum_request_from_proto(const ProtoDocsumRequest &proto, Docsu void ProtoConverter::docsum_reply_to_proto(const DocsumReply &reply, ProtoDocsumReply &proto) { - if (reply.hasResults()) { + if (reply.hasResult()) { vespalib::SmartBuffer buf(4_Ki); vespalib::slime::BinaryFormat::encode(reply.slime(), buf); proto.set_slime_summaries(buf.obtain().data, buf.obtain().size); |