aboutsummaryrefslogtreecommitdiff
path: root/zenserver-test/zenserver-test.cpp
diff options
context:
space:
mode:
authorStefan Boberg <[email protected]>2021-05-22 11:41:08 +0200
committerStefan Boberg <[email protected]>2021-05-22 11:41:08 +0200
commit02c19b524e54bc8f2fc36fecd43310a5ed665fcd (patch)
tree4eea19c7fd9ec8293a3d2d771a3ad40ddec17574 /zenserver-test/zenserver-test.cpp
parentclang-format (diff)
downloadzen-02c19b524e54bc8f2fc36fecd43310a5ed665fcd.tar.xz
zen-02c19b524e54bc8f2fc36fecd43310a5ed665fcd.zip
Structured cache changes
- Changed cachestore to use BasicFile and TCasLog instead of local variants - Added structured cache persistence tests
Diffstat (limited to 'zenserver-test/zenserver-test.cpp')
-rw-r--r--zenserver-test/zenserver-test.cpp69
1 files changed, 48 insertions, 21 deletions
diff --git a/zenserver-test/zenserver-test.cpp b/zenserver-test/zenserver-test.cpp
index b9fa96ca0..dbe7ac9b9 100644
--- a/zenserver-test/zenserver-test.cpp
+++ b/zenserver-test/zenserver-test.cpp
@@ -1100,38 +1100,65 @@ TEST_CASE("z$.basic")
const uint16_t PortNumber = 13337;
- ZenServerInstance Instance1(TestEnv);
- Instance1.SetTestDir(TestDir);
- Instance1.SpawnServer(PortNumber);
- Instance1.WaitUntilReady();
+ const int kIterationCount = 100;
+ const auto BaseUri = "http://localhost:{}/z$"_format(PortNumber);
- auto BaseUri = "http://localhost:{}/z$"_format(PortNumber);
+ {
+ ZenServerInstance Instance1(TestEnv);
+ Instance1.SetTestDir(TestDir);
+ Instance1.SpawnServer(PortNumber);
+ Instance1.WaitUntilReady();
- // Populate with some simple data
+ // Populate with some simple data
- for (int i = 0; i < 100; ++i)
- {
- zen::CbObjectWriter Cbo;
- Cbo << "index" << i;
+ for (int i = 0; i < kIterationCount; ++i)
+ {
+ zen::CbObjectWriter Cbo;
+ Cbo << "index" << i;
+
+ zen::MemoryOutStream MemOut;
+ zen::BinaryWriter Writer{MemOut};
+ Cbo.Save(Writer);
+
+ zen::IoHash Key = zen::IoHash::HashMemory(&i, sizeof i);
+
+ cpr::Response Result = cpr::Put(cpr::Url{"{}/{}/{}"_format(BaseUri, "test", Key)},
+ cpr::Body{(const char*)MemOut.Data(), MemOut.Size()},
+ cpr::Header{{"Content-Type", "application/x-ue-cb"}});
- zen::MemoryOutStream MemOut;
- zen::BinaryWriter Writer{MemOut};
- Cbo.Save(Writer);
+ CHECK(Result.status_code == 201);
+ }
+
+ // Retrieve data
+
+ for (int i = 0; i < kIterationCount; ++i)
+ {
+ zen::IoHash Key = zen::IoHash::HashMemory(&i, sizeof i);
- zen::IoHash Key = zen::IoHash::HashMemory(&i, sizeof i);
+ cpr::Response Result = cpr::Get(cpr::Url{"{}/{}/{}"_format(BaseUri, "test", Key)});
- cpr::Response Result = cpr::Put(cpr::Url{"{}/{}/{}"_format(BaseUri, "test", Key)},
- cpr::Body{(const char*)MemOut.Data(), MemOut.Size()},
- cpr::Header{{"Content-Type", "application/x-ue-cb"}});
+ CHECK(Result.status_code == 200);
+ }
}
- // Retrieve data
+ // Verify that the data persists between process runs (the previous server has exited at this point)
- for (int i = 0; i < 100; ++i)
{
- zen::IoHash Key = zen::IoHash::HashMemory(&i, sizeof i);
+ ZenServerInstance Instance1(TestEnv);
+ Instance1.SetTestDir(TestDir);
+ Instance1.SpawnServer(PortNumber);
+ Instance1.WaitUntilReady();
- cpr::Response Result = cpr::Get(cpr::Url{"{}/{}/{}"_format(BaseUri, "test", Key)});
+ // Retrieve data again
+
+ for (int i = 0; i < kIterationCount; ++i)
+ {
+ zen::IoHash Key = zen::IoHash::HashMemory(&i, sizeof i);
+
+ cpr::Response Result = cpr::Get(cpr::Url{"{}/{}/{}"_format(BaseUri, "test", Key)});
+
+ CHECK(Result.status_code == 200);
+ }
}
}