aboutsummaryrefslogtreecommitdiff
path: root/zenserver-test/cachepolicy-tests.cpp
diff options
context:
space:
mode:
authorStefan Boberg <[email protected]>2023-05-02 10:01:47 +0200
committerGitHub <[email protected]>2023-05-02 10:01:47 +0200
commit075d17f8ada47e990fe94606c3d21df409223465 (patch)
treee50549b766a2f3c354798a54ff73404217b4c9af /zenserver-test/cachepolicy-tests.cpp
parentfix: bundle shouldn't append content zip to zen (diff)
downloadzen-075d17f8ada47e990fe94606c3d21df409223465.tar.xz
zen-075d17f8ada47e990fe94606c3d21df409223465.zip
moved source directories into `/src` (#264)
* moved source directories into `/src` * updated bundle.lua for new `src` path * moved some docs, icon * removed old test trees
Diffstat (limited to 'zenserver-test/cachepolicy-tests.cpp')
-rw-r--r--zenserver-test/cachepolicy-tests.cpp153
1 files changed, 0 insertions, 153 deletions
diff --git a/zenserver-test/cachepolicy-tests.cpp b/zenserver-test/cachepolicy-tests.cpp
deleted file mode 100644
index 79d78e522..000000000
--- a/zenserver-test/cachepolicy-tests.cpp
+++ /dev/null
@@ -1,153 +0,0 @@
-// Copyright Epic Games, Inc. All Rights Reserved.
-
-#include <zencore/zencore.h>
-
-#if ZEN_WITH_TESTS
-
-# include <zencore/compactbinary.h>
-# include <zencore/compactbinarybuilder.h>
-# include <zencore/string.h>
-# include <zencore/testing.h>
-# include <zencore/uid.h>
-# include <zenutil/cache/cachepolicy.h>
-
-namespace zen::tests {
-
-using namespace std::literals;
-
-TEST_CASE("cachepolicy")
-{
- SUBCASE("atomics serialization")
- {
- CachePolicy SomeAtomics[] = {CachePolicy::None,
- CachePolicy::QueryLocal,
- CachePolicy::StoreRemote,
- CachePolicy::SkipData,
- CachePolicy::KeepAlive};
- for (CachePolicy Atomic : SomeAtomics)
- {
- CHECK(ParseCachePolicy(WriteToString<128>(Atomic)) == Atomic);
- }
- // Also verify that we ignore unrecognized bits
- for (CachePolicy Atomic : SomeAtomics)
- {
- CHECK(ParseCachePolicy(WriteToString<128>(Atomic | (CachePolicy)0x10000000)) == Atomic);
- }
- }
- SUBCASE("aliases serialization")
- {
- CachePolicy SomeAliases[] = {CachePolicy::Query, CachePolicy::Local};
- for (CachePolicy Alias : SomeAliases)
- {
- CHECK(ParseCachePolicy(WriteToString<128>(Alias)) == Alias);
- }
- // Also verify that we ignore unrecognized bits
- for (CachePolicy Alias : SomeAliases)
- {
- CHECK(ParseCachePolicy(WriteToString<128>(Alias | (CachePolicy)0x10000000)) == Alias);
- }
- }
- SUBCASE("aliases take priority over atomics")
- {
- CHECK(WriteToString<128>(CachePolicy::Default).ToView() == "Default"sv);
- CHECK(WriteToString<128>(CachePolicy::Query).ToView() == "Query"sv);
- CHECK(WriteToString<128>(CachePolicy::Local).ToView() == "Local"sv);
- }
- SUBCASE("policies requiring multiple strings work")
- {
- char Delimiter = ',';
- CachePolicy Combination = CachePolicy::SkipData | CachePolicy::QueryLocal;
- CHECK(WriteToString<128>(Combination).ToView().find(Delimiter) != std::string_view::npos);
- CHECK(ParseCachePolicy(WriteToString<128>(Combination)) == Combination);
- }
- SUBCASE("parsing invalid text")
- {
- CHECK(ParseCachePolicy(",,,") == CachePolicy::None);
- CHECK(ParseCachePolicy("fee,fie,foo,fum") == CachePolicy::None);
- CHECK(ParseCachePolicy("fee,KeepAlive,foo,fum") == CachePolicy::KeepAlive);
- }
-}
-
-TEST_CASE("cacherecordpolicy")
-{
- SUBCASE("policy with no values")
- {
- CachePolicy Policy = CachePolicy::SkipData | CachePolicy::QueryLocal | CachePolicy::PartialRecord;
- CachePolicy ValuePolicy = Policy & CacheValuePolicy::PolicyMask;
- CacheRecordPolicy RecordPolicy;
- CacheRecordPolicyBuilder Builder(Policy);
- RecordPolicy = Builder.Build();
- SUBCASE("construct")
- {
- CHECK(RecordPolicy.IsUniform());
- CHECK(RecordPolicy.GetRecordPolicy() == Policy);
- CHECK(RecordPolicy.GetBasePolicy() == Policy);
- CHECK(RecordPolicy.GetValuePolicy(Oid::NewOid()) == ValuePolicy);
- CHECK(RecordPolicy.GetValuePolicies().size() == 0);
- }
- SUBCASE("saveload")
- {
- CbWriter Writer;
- RecordPolicy.Save(Writer);
- CbObject Saved = Writer.Save()->AsObject();
- CacheRecordPolicy Loaded = CacheRecordPolicy::Load(Saved).Get();
- CHECK(Loaded.IsUniform());
- CHECK(Loaded.GetRecordPolicy() == Policy);
- CHECK(Loaded.GetBasePolicy() == Policy);
- CHECK(Loaded.GetValuePolicy(Oid::NewOid()) == ValuePolicy);
- CHECK(Loaded.GetValuePolicies().size() == 0);
- }
- }
-
- SUBCASE("policy with values")
- {
- CachePolicy DefaultPolicy = CachePolicy::StoreRemote | CachePolicy::QueryLocal | CachePolicy::PartialRecord;
- CachePolicy DefaultValuePolicy = DefaultPolicy & CacheValuePolicy::PolicyMask;
- CachePolicy PartialOverlap = CachePolicy::StoreRemote;
- CachePolicy NoOverlap = CachePolicy::QueryRemote;
- CachePolicy UnionPolicy = DefaultPolicy | PartialOverlap | NoOverlap | CachePolicy::PartialRecord;
-
- CacheRecordPolicy RecordPolicy;
- CacheRecordPolicyBuilder Builder(DefaultPolicy);
- Oid PartialOid = Oid::NewOid();
- Oid NoOverlapOid = Oid::NewOid();
- Oid OtherOid = Oid::NewOid();
- Builder.AddValuePolicy(PartialOid, PartialOverlap);
- Builder.AddValuePolicy(NoOverlapOid, NoOverlap);
- RecordPolicy = Builder.Build();
- SUBCASE("construct")
- {
- CHECK(!RecordPolicy.IsUniform());
- CHECK(RecordPolicy.GetRecordPolicy() == UnionPolicy);
- CHECK(RecordPolicy.GetBasePolicy() == DefaultPolicy);
- CHECK(RecordPolicy.GetValuePolicy(PartialOid) == PartialOverlap);
- CHECK(RecordPolicy.GetValuePolicy(NoOverlapOid) == NoOverlap);
- CHECK(RecordPolicy.GetValuePolicy(OtherOid) == DefaultValuePolicy);
- CHECK(RecordPolicy.GetValuePolicies().size() == 2);
- }
- SUBCASE("saveload")
- {
- CbWriter Writer;
- RecordPolicy.Save(Writer);
- CbObject Saved = Writer.Save()->AsObject();
- CacheRecordPolicy Loaded = CacheRecordPolicy::Load(Saved).Get();
- CHECK(!RecordPolicy.IsUniform());
- CHECK(RecordPolicy.GetRecordPolicy() == UnionPolicy);
- CHECK(RecordPolicy.GetBasePolicy() == DefaultPolicy);
- CHECK(RecordPolicy.GetValuePolicy(PartialOid) == PartialOverlap);
- CHECK(RecordPolicy.GetValuePolicy(NoOverlapOid) == NoOverlap);
- CHECK(RecordPolicy.GetValuePolicy(OtherOid) == DefaultValuePolicy);
- CHECK(RecordPolicy.GetValuePolicies().size() == 2);
- }
- }
-
- SUBCASE("parsing invalid text")
- {
- OptionalCacheRecordPolicy Loaded = CacheRecordPolicy::Load(CbObject());
- CHECK(Loaded.IsNull());
- }
-}
-
-} // namespace zen::tests
-
-#endif