aboutsummaryrefslogtreecommitdiff
path: root/src/zenserver-test/zenserver-test.cpp
diff options
context:
space:
mode:
authorzousar <[email protected]>2025-09-19 23:46:52 -0600
committerzousar <[email protected]>2025-09-19 23:46:52 -0600
commit7a94b22eafdbd3f394fb9200e713cbb3b2b0cd56 (patch)
tree2ff8345484208d100000d8be805ff8f13dd2e7cc /src/zenserver-test/zenserver-test.cpp
parentfix quoted wildcard options (#500) (diff)
downloadzen-7a94b22eafdbd3f394fb9200e713cbb3b2b0cd56.tar.xz
zen-7a94b22eafdbd3f394fb9200e713cbb3b2b0cd56.zip
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.
Diffstat (limited to 'src/zenserver-test/zenserver-test.cpp')
-rw-r--r--src/zenserver-test/zenserver-test.cpp14
1 files changed, 13 insertions, 1 deletions
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) {