From 7a94b22eafdbd3f394fb9200e713cbb3b2b0cd56 Mon Sep 17 00:00:00 2001 From: zousar Date: Fri, 19 Sep 2025 23:46:52 -0600 Subject: Change batch put responses for client reporting Conflicts are now treated as successes, and we optionally return a Details array instead of an ErrorMessages array. Details are returned for all requests in a batch, or no requests in a batch depending on whether there are any details to be shared about any of the put requests. The details for a conflict include the raw hash and raw size of the item. If the item is a record, we also include the record as an object. --- src/zenserver-test/zenserver-test.cpp | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) (limited to 'src/zenserver-test/zenserver-test.cpp') diff --git a/src/zenserver-test/zenserver-test.cpp b/src/zenserver-test/zenserver-test.cpp index 79e5db554..1cbd10194 100644 --- a/src/zenserver-test/zenserver-test.cpp +++ b/src/zenserver-test/zenserver-test.cpp @@ -1556,6 +1556,7 @@ TEST_CASE("zcache.rpc") { CHECK(ResponseSuccess); } + CHECK(ParsedResult.Details.empty()); } auto CheckRecordCorrectness = [&](const ZenConfig& Cfg) { @@ -1619,9 +1620,18 @@ TEST_CASE("zcache.rpc") CbPackage Response = ParsePackageMessage(zen::IoBuffer(zen::IoBuffer::Wrap, Result.text.data(), Result.text.size())); CHECK(!Response.IsNull()); CHECK(ParsedResult.Parse(Response)); + CHECK(Request.Requests.size() == ParsedResult.Success.size()); for (bool ResponseSuccess : ParsedResult.Success) { - CHECK(!ResponseSuccess); + CHECK(ResponseSuccess); + } + CHECK(Request.Requests.size() == ParsedResult.Details.size()); + for (const CbObjectView& Details : ParsedResult.Details) + { + CHECK(Details); + CHECK(Details["RawHash"sv].IsHash()); + CHECK(Details["RawSize"sv].IsInteger()); + CHECK(Details["Object"sv].IsObject()); } } @@ -1690,6 +1700,7 @@ TEST_CASE("zcache.rpc") { CHECK(ResponseSuccess); } + CHECK(ParsedResult.Details.empty()); } auto CheckRecordCorrectness = [&](const ZenConfig& Cfg) { @@ -1753,6 +1764,7 @@ TEST_CASE("zcache.rpc") { CHECK(ResponseSuccess); } + CHECK(ParsedResult.Details.empty()); } auto CheckRecordCorrectness = [&](const ZenConfig& Cfg) { -- cgit v1.2.3 From c7eebb0c8fc5d046d630b462bbfdab1f46bb2d42 Mon Sep 17 00:00:00 2001 From: zousar Date: Tue, 23 Sep 2025 09:26:11 -0600 Subject: Adjust the responses from PUT commands - Ensure that text responses are in a field named "Message" - Change the record response to be named "Record" instead of "Object" --- src/zenserver-test/zenserver-test.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/zenserver-test/zenserver-test.cpp') diff --git a/src/zenserver-test/zenserver-test.cpp b/src/zenserver-test/zenserver-test.cpp index 1cbd10194..0ea953937 100644 --- a/src/zenserver-test/zenserver-test.cpp +++ b/src/zenserver-test/zenserver-test.cpp @@ -1631,7 +1631,7 @@ TEST_CASE("zcache.rpc") CHECK(Details); CHECK(Details["RawHash"sv].IsHash()); CHECK(Details["RawSize"sv].IsInteger()); - CHECK(Details["Object"sv].IsObject()); + CHECK(Details["Record"sv].IsObject()); } } -- cgit v1.2.3