diff options
Diffstat (limited to 'zenserver-test/zenserver-test.cpp')
| -rw-r--r-- | zenserver-test/zenserver-test.cpp | 176 |
1 files changed, 39 insertions, 137 deletions
diff --git a/zenserver-test/zenserver-test.cpp b/zenserver-test/zenserver-test.cpp index 46b566a47..0ffb77f3e 100644 --- a/zenserver-test/zenserver-test.cpp +++ b/zenserver-test/zenserver-test.cpp @@ -438,106 +438,6 @@ TEST_CASE("multi.basic") ZEN_INFO("{} requests in {} ({})", RequestCount, zen::NiceTimeSpanMs(Elapsed), zen::NiceRate(RequestCount, (uint32_t)Elapsed, "req")); } -TEST_CASE("cas.basic") -{ - std::filesystem::path TestDir = TestEnv.CreateNewTestDir(); - - const uint16_t PortNumber = 13337; - - const int IterationCount = 1000; - - std::vector<int> ChunkSizes(IterationCount); - std::vector<zen::IoHash> ChunkHashes(IterationCount); - - { - ZenServerInstance Instance1(TestEnv); - Instance1.SetTestDir(TestDir); - Instance1.SpawnServer(PortNumber); - Instance1.WaitUntilReady(); - - std::atomic<uint64_t> RequestCount{0}; - - zen::Stopwatch timer; - - std::mt19937_64 mt; - - auto BaseUri = fmt::format("http://localhost:{}/cas", PortNumber); - - cpr::Session cli; - cli.SetUrl(cpr::Url{BaseUri}); - - // Populate CAS with some generated data - - for (int i = 0; i < IterationCount; ++i) - { - const int ChunkSize = mt() % 10000 + 5; - std::string body = fmt::format("{}", i); - body.resize(ChunkSize, ' '); - - ChunkSizes[i] = ChunkSize; - ChunkHashes[i] = zen::IoHash::HashBuffer(body.data(), body.size()); - - cli.SetBody(body); - - auto res = cli.Post(); - CHECK(!res.error); - - ++RequestCount; - } - - // Verify that the chunks persisted - - for (int i = 0; i < IterationCount; ++i) - { - zen::ExtendableStringBuilder<128> Uri; - Uri << BaseUri << "/"; - ChunkHashes[i].ToHexString(Uri); - - auto res = cpr::Get(cpr::Url{Uri.c_str()}); - CHECK(!res.error); - CHECK(res.status_code == 200); - CHECK(res.text.size() == ChunkSizes[i]); - - zen::IoHash Hash = zen::IoHash::HashBuffer(res.text.data(), res.text.size()); - - CHECK(ChunkHashes[i] == Hash); - - ++RequestCount; - } - - uint64_t Elapsed = timer.GetElapsedTimeMs(); - - ZEN_INFO("{} requests in {} ({})", - RequestCount, - zen::NiceTimeSpanMs(Elapsed), - zen::NiceRate(RequestCount, (uint32_t)Elapsed, "req")); - } - - // Verify that the data persists between process runs (the previous server has exited at this point) - - { - ZenServerInstance Instance2(TestEnv); - Instance2.SetTestDir(TestDir); - Instance2.SpawnServer(PortNumber); - Instance2.WaitUntilReady(); - - for (int i = 0; i < IterationCount; ++i) - { - zen::ExtendableStringBuilder<128> Uri; - Uri << fmt::format("http://localhost:{}/cas/", PortNumber); - ChunkHashes[i].ToHexString(Uri); - - auto res = cpr::Get(cpr::Url{Uri.c_str()}); - CHECK(res.status_code == 200); - CHECK(res.text.size() == ChunkSizes[i]); - - zen::IoHash Hash = zen::IoHash::HashBuffer(res.text.data(), res.text.size()); - - CHECK(ChunkHashes[i] == Hash); - } - } -} - TEST_CASE("project.basic") { using namespace std::literals; @@ -2416,11 +2316,11 @@ struct RemoteExecutionRequest { zen::IoBuffer FileData = zen::IoBufferBuilder::MakeFromFile(It->second); - cpr::Response CasResponse = cpr::Post(cpr::Url(m_CasUri), cpr::Body((const char*)FileData.Data(), FileData.Size())); + cpr::Response CidResponse = cpr::Post(cpr::Url(m_CidUri), cpr::Body((const char*)FileData.Data(), FileData.Size())); - if (CasResponse.status_code >= 300) + if (CidResponse.status_code >= 300) { - ZEN_ERROR("CAS put failed with {}", CasResponse.status_code); + ZEN_ERROR("CID put failed with {}", CidResponse.status_code); } } else @@ -2496,45 +2396,47 @@ private: int m_PortNumber; std::filesystem::path m_TreePath; const std::string m_BaseUri = fmt::format("http://{}:{}/exec/jobs", m_HostName, m_PortNumber); - const std::string m_CasUri = fmt::format("http://{}:{}/cas", m_HostName, m_PortNumber); + const std::string m_CidUri = fmt::format("http://{}:{}/cid", m_HostName, m_PortNumber); Visitor m_Visit{m_TreePath}; zen::BinaryWriter m_MemOut; }; -// TEST_CASE(".exec.basic" /* * doctest::skip(true) */) -//{ -// using namespace std::literals; -// -// std::filesystem::path TestDir = TestEnv.CreateNewTestDir(); -// -// const uint16_t PortNumber = 13337; -// -// ZenServerInstance Zen1(TestEnv); -// Zen1.SetTestDir(TestDir); -// Zen1.SpawnServer(PortNumber); -// Zen1.WaitUntilReady(); -// -// std::filesystem::path TreePath = TestEnv.GetTestRootDir("test/remote1"); -// -// { -// RemoteExecutionRequest RemoteRequest("localhost", PortNumber, TreePath); -// RemoteRequest.Build("zentest-appstub.exe", ""); -// RemoteRequest.Prep(); -// zen::CbObject Result = RemoteRequest.Exec(); -// -// CHECK(Result["exitcode"sv].AsInt32(-1) == 0); -// } -// -// { -// RemoteExecutionRequest RemoteRequest("localhost", PortNumber, TreePath); -// RemoteRequest.Build("zentest-appstub.exe", "-f=1"); -// RemoteRequest.Prep(); -// zen::CbObject Result = RemoteRequest.Exec(); -// -// CHECK(Result["exitcode"sv].AsInt32(-1) == 1); -// } -// } +TEST_CASE(".exec.basic") +{ + if (true) + { + return; + } + using namespace std::literals; + + std::filesystem::path TestDir = TestEnv.CreateNewTestDir(); + + const uint16_t PortNumber = 13337; + + ZenServerInstance Zen1(TestEnv); + Zen1.SetTestDir(TestDir); + Zen1.SpawnServer(PortNumber); + Zen1.WaitUntilReady(); + + std::filesystem::path TreePath = TestEnv.GetTestRootDir("test/remote1"); + + { + RemoteExecutionRequest RemoteRequest("localhost", PortNumber, TreePath); + RemoteRequest.Build("zentest-appstub.exe", ""); + RemoteRequest.Prep(); + zen::CbObject Result = RemoteRequest.Exec(); + CHECK(Result["exitcode"sv].AsInt32(-1) == 0); + } + + { + RemoteExecutionRequest RemoteRequest("localhost", PortNumber, TreePath); + RemoteRequest.Build("zentest-appstub.exe", "-f=1"); + RemoteRequest.Prep(); + zen::CbObject Result = RemoteRequest.Exec(); + CHECK(Result["exitcode"sv].AsInt32(-1) == 1); + } +} # endif // ZEN_WITH_EXEC_SERVICES TEST_CASE("mesh.basic") |