aboutsummaryrefslogtreecommitdiff
path: root/src/zenserver-test/cache-tests.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/zenserver-test/cache-tests.cpp')
-rw-r--r--src/zenserver-test/cache-tests.cpp31
1 files changed, 22 insertions, 9 deletions
diff --git a/src/zenserver-test/cache-tests.cpp b/src/zenserver-test/cache-tests.cpp
index 334dd04ab..986dc67e0 100644
--- a/src/zenserver-test/cache-tests.cpp
+++ b/src/zenserver-test/cache-tests.cpp
@@ -9,6 +9,7 @@
# include <zencore/compactbinarypackage.h>
# include <zencore/compress.h>
# include <zencore/fmtutils.h>
+# include <zenhttp/localrefpolicy.h>
# include <zenhttp/packageformat.h>
# include <zenstore/cache/cachepolicy.h>
# include <zencore/filesystem.h>
@@ -25,6 +26,13 @@ namespace zen::tests {
TEST_SUITE_BEGIN("server.cache");
+/// Permissive policy that allows any path, for use in tests that exercise local ref
+/// functionality but are not testing path validation.
+struct PermissiveLocalRefPolicy : public ILocalRefPolicy
+{
+ void ValidatePath(const std::filesystem::path&) const override {}
+};
+
TEST_CASE("zcache.basic")
{
using namespace std::literals;
@@ -743,7 +751,11 @@ TEST_CASE("zcache.rpc")
if (Result.StatusCode == HttpResponseCode::OK)
{
- CbPackage Response = ParsePackageMessage(Result.ResponsePayload);
+ ParseFlags PFlags = EnumHasAllFlags(AcceptOptions, RpcAcceptOptions::kAllowLocalReferences) ? ParseFlags::kAllowLocalReferences
+ : ParseFlags::kDefault;
+ PermissiveLocalRefPolicy AllowAllPolicy;
+ const ILocalRefPolicy* PPolicy = EnumHasAllFlags(PFlags, ParseFlags::kAllowLocalReferences) ? &AllowAllPolicy : nullptr;
+ CbPackage Response = ParsePackageMessage(Result.ResponsePayload, {}, PFlags, PPolicy);
CHECK(!Response.IsNull());
OutResult.Response = std::move(Response);
CHECK(OutResult.Result.Parse(OutResult.Response));
@@ -1193,14 +1205,10 @@ TEST_CASE("zcache.rpc")
// CbPackage Package;
// CHECK(Request.Format(Package));
- // IoBuffer Body = FormatPackageMessageBuffer(Package).Flatten().AsIoBuffer();
- // cpr::Response Result = cpr::Post(cpr::Url{fmt::format("{}/$rpc", LocalCfg.BaseUri)},
- // cpr::Header{{"Content-Type", "application/x-ue-cbpkg"}, {"Accept", "application/x-ue-cbpkg"}},
- // cpr::Body{(const char*)Body.GetData(), Body.GetSize()});
+ // IoBuffer Body = FormatPackageMessageBuffer(Package).Flatten().AsIoBuffer();
+ // // TODO: rewrite using HttpClient instead of removed CPR dependency
- // CHECK(Result.status_code == 200);
// cacherequests::PutCacheRecordsResult ParsedResult;
- // CbPackage Response = ParsePackageMessage(zen::IoBuffer(zen::IoBuffer::Wrap, Result.text.data(), Result.text.size()));
// CHECK(!Response.IsNull());
// CHECK(ParsedResult.Parse(Response));
// for (bool ResponseSuccess : ParsedResult.Success)
@@ -1749,8 +1757,13 @@ TEST_CASE("zcache.rpc.partialchunks")
CHECK(Result.StatusCode == HttpResponseCode::OK);
- CbPackage Response = ParsePackageMessage(Result.ResponsePayload);
- bool Loaded = !Response.IsNull();
+ ParseFlags PFlags = EnumHasAllFlags(Options.AcceptOptions, RpcAcceptOptions::kAllowLocalReferences)
+ ? ParseFlags::kAllowLocalReferences
+ : ParseFlags::kDefault;
+ PermissiveLocalRefPolicy AllowAllPolicy;
+ const ILocalRefPolicy* PPolicy = EnumHasAllFlags(PFlags, ParseFlags::kAllowLocalReferences) ? &AllowAllPolicy : nullptr;
+ CbPackage Response = ParsePackageMessage(Result.ResponsePayload, {}, PFlags, PPolicy);
+ bool Loaded = !Response.IsNull();
CHECK_MESSAGE(Loaded, "GetCacheChunks response failed to load.");
cacherequests::GetCacheChunksResult GetCacheChunksResult;
CHECK(GetCacheChunksResult.Parse(Response));