aboutsummaryrefslogtreecommitdiff
path: root/src/zenserver-test/cachepolicy-tests.cpp
diff options
context:
space:
mode:
authorDan Engelbrecht <[email protected]>2024-03-14 16:33:17 +0100
committerGitHub Enterprise <[email protected]>2024-03-14 16:33:17 +0100
commit45bfc721dd049193abf3b2be2aa7b097466ddbe9 (patch)
treeabb6cf119aa148972aabad730ed384c115177cf1 /src/zenserver-test/cachepolicy-tests.cpp
parentchange code owners for Enterprise github user names (#7) (diff)
downloadzen-45bfc721dd049193abf3b2be2aa7b097466ddbe9.tar.xz
zen-45bfc721dd049193abf3b2be2aa7b097466ddbe9.zip
clean up test linking (#4)
- Improvement: Add zenhttp-test and zenutil-test - Improvement: Moved cachepolicy test to cachepolicy.cpp - Improvement: Renamed cachestore tests from z$ to cachestore - Improvement: Moved test linking so test for a lib is linked by <lib>-test - Improvement: Removed HttpRequestParseRelativeUri in httpstructuredcache.cpp and use the one in cacherequests.h instead
Diffstat (limited to 'src/zenserver-test/cachepolicy-tests.cpp')
-rw-r--r--src/zenserver-test/cachepolicy-tests.cpp153
1 files changed, 0 insertions, 153 deletions
diff --git a/src/zenserver-test/cachepolicy-tests.cpp b/src/zenserver-test/cachepolicy-tests.cpp
deleted file mode 100644
index 79d78e522..000000000
--- a/src/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