aboutsummaryrefslogtreecommitdiff
path: root/src/zenserver-test/projectstore-tests.cpp
diff options
context:
space:
mode:
authorStefan Boberg <[email protected]>2026-02-28 15:36:13 +0100
committerGitHub Enterprise <[email protected]>2026-02-28 15:36:13 +0100
commitc7e0efb9c12f4607d4bc6a844a3e5bd3272bd839 (patch)
tree47c7edc37dcd54f06be04b40f96e6edc24d7f4ab /src/zenserver-test/projectstore-tests.cpp
parentadd multirange requests to blob store (#795) (diff)
downloadzen-c7e0efb9c12f4607d4bc6a844a3e5bd3272bd839.tar.xz
zen-c7e0efb9c12f4607d4bc6a844a3e5bd3272bd839.zip
test running / reporting improvements (#797)
**CI/CD improvements (validate.yml):** - Add test reporter (`ue-foundation/test-reporter@v2`) for all three platforms, rendering JUnit test results directly in PR check runs - Add "Trust workspace" step on Windows to fix git safe.directory ownership issue with self-hosted runners - Clean stale report files before each test run to prevent false failures from leftover XML - Broaden `paths-ignore` to skip builds for non-code changes (`*.md`, `LICENSE`, `.gitignore`, `docs/**`) **Test improvements:** - Convert `CHECK` to `REQUIRE` in several test suites (projectstore, integration, http) for fail-fast behavior - Mark some tests with `doctest::skip()` for selective execution - Skip httpclient transport tests pending investigation - Add `--noskip` option to `xmake test` task - Add `--repeat=<N>` option to `xmake test` task, to run tests repeatedly N times or until there is a failure **xmake test output improvements:** - Add totals row to test summary table - Right-justify numeric columns in summary table
Diffstat (limited to 'src/zenserver-test/projectstore-tests.cpp')
-rw-r--r--src/zenserver-test/projectstore-tests.cpp34
1 files changed, 17 insertions, 17 deletions
diff --git a/src/zenserver-test/projectstore-tests.cpp b/src/zenserver-test/projectstore-tests.cpp
index 735aef159..487832405 100644
--- a/src/zenserver-test/projectstore-tests.cpp
+++ b/src/zenserver-test/projectstore-tests.cpp
@@ -71,7 +71,7 @@ TEST_CASE("project.basic")
{
auto Response = Http.Get("/prj/test"sv);
- CHECK(Response.StatusCode == HttpResponseCode::OK);
+ REQUIRE(Response.StatusCode == HttpResponseCode::OK);
CbObject ResponseObject = Response.AsObject();
@@ -92,7 +92,7 @@ TEST_CASE("project.basic")
{
auto Response = Http.Get(""sv);
- CHECK(Response.StatusCode == HttpResponseCode::OK);
+ REQUIRE(Response.StatusCode == HttpResponseCode::OK);
CbObject ResponseObject = Response.AsObject();
@@ -213,7 +213,7 @@ TEST_CASE("project.basic")
auto Response = Http.Get(ChunkGetUri);
REQUIRE(Response);
- CHECK(Response.StatusCode == HttpResponseCode::OK);
+ REQUIRE(Response.StatusCode == HttpResponseCode::OK);
IoBuffer Data = Response.ResponsePayload;
IoBuffer ReferenceData = IoBufferBuilder::MakeFromFile(RootPath / BinPath);
@@ -235,13 +235,13 @@ TEST_CASE("project.basic")
auto Response = Http.Get(ChunkGetUri, {{"Accept-Type", "application/x-ue-comp"}});
REQUIRE(Response);
- CHECK(Response.StatusCode == HttpResponseCode::OK);
+ REQUIRE(Response.StatusCode == HttpResponseCode::OK);
IoBuffer Data = Response.ResponsePayload;
IoHash RawHash;
uint64_t RawSize;
CompressedBuffer Compressed = CompressedBuffer::FromCompressed(SharedBuffer(Data), RawHash, RawSize);
- CHECK(Compressed);
+ REQUIRE(Compressed);
IoBuffer DataDecompressed = Compressed.Decompress().AsIoBuffer();
IoBuffer ReferenceData = IoBufferBuilder::MakeFromFile(RootPath / BinPath);
CHECK(RawSize == ReferenceData.GetSize());
@@ -436,13 +436,13 @@ TEST_CASE("project.remote")
HttpClient Http{UrlBase};
HttpClient::Response Response = Http.Post(fmt::format("/prj/{}", ProjectName), ProjectPayload);
- CHECK(Response);
+ REQUIRE(Response);
};
auto MakeOplog = [](std::string_view UrlBase, std::string_view ProjectName, std::string_view OplogName) {
HttpClient Http{UrlBase};
HttpClient::Response Response = Http.Post(fmt::format("/prj/{}/oplog/{}", ProjectName, OplogName), IoBuffer{});
- CHECK(Response);
+ REQUIRE(Response);
};
auto MakeOp = [](std::string_view UrlBase, std::string_view ProjectName, std::string_view OplogName, const CbPackage& OpPackage) {
@@ -453,7 +453,7 @@ TEST_CASE("project.remote")
HttpClient Http{UrlBase};
HttpClient::Response Response = Http.Post(fmt::format("/prj/{}/oplog/{}/new", ProjectName, OplogName), Body);
- CHECK(Response);
+ REQUIRE(Response);
};
MakeProject(Servers.GetInstance(0).GetBaseUri(), "proj0");
@@ -504,7 +504,7 @@ TEST_CASE("project.remote")
HttpClient::Response Response =
Http.Post(fmt::format("/prj/{}/oplog/{}/rpc", Project, Oplog), Payload, {{"Accept", "application/x-ue-cbpkg"}});
- CHECK(Response);
+ REQUIRE(Response);
CbPackage ResponsePackage = ParsePackageMessage(Response.ResponsePayload);
CHECK(ResponsePackage.GetAttachments().size() == AttachmentHashes.size());
for (auto A : ResponsePackage.GetAttachments())
@@ -519,7 +519,7 @@ TEST_CASE("project.remote")
HttpClient Http{Servers.GetInstance(ServerIndex).GetBaseUri()};
HttpClient::Response Response = Http.Get(fmt::format("/prj/{}/oplog/{}/entries", Project, Oplog));
- CHECK(Response);
+ REQUIRE(Response);
IoBuffer Payload(Response.ResponsePayload);
CbObject OplogResonse = LoadCompactBinaryObject(Payload);
@@ -541,7 +541,7 @@ TEST_CASE("project.remote")
auto HttpWaitForCompletion = [](ZenServerInstance& Server, const HttpClient::Response& Response) {
REQUIRE(Response);
const uint64_t JobId = ParseInt<uint64_t>(Response.AsText()).value_or(0);
- CHECK(JobId != 0);
+ REQUIRE(JobId != 0);
HttpClient Http{Server.GetBaseUri()};
@@ -549,10 +549,10 @@ TEST_CASE("project.remote")
{
HttpClient::Response StatusResponse =
Http.Get(fmt::format("/admin/jobs/{}", JobId), {{"Accept", ToString(ZenContentType::kCbObject)}});
- CHECK(StatusResponse);
+ REQUIRE(StatusResponse);
CbObject ResponseObject = StatusResponse.AsObject();
std::string_view Status = ResponseObject["Status"sv].AsString();
- CHECK(Status != "Aborted"sv);
+ REQUIRE(Status != "Aborted"sv);
if (Status == "Complete"sv)
{
return;
@@ -887,16 +887,16 @@ TEST_CASE("project.rpcappendop")
Project.AddString("project"sv, ""sv);
Project.AddString("projectfile"sv, ""sv);
HttpClient::Response Response = Client.Post(fmt::format("/prj/{}", ProjectName), Project.Save());
- CHECK_MESSAGE(Response.IsSuccess(), Response.ErrorMessage(""));
+ REQUIRE_MESSAGE(Response.IsSuccess(), Response.ErrorMessage(""));
};
auto MakeOplog = [](HttpClient& Client, std::string_view ProjectName, std::string_view OplogName) {
HttpClient::Response Response = Client.Post(fmt::format("/prj/{}/oplog/{}", ProjectName, OplogName));
- CHECK_MESSAGE(Response.IsSuccess(), Response.ErrorMessage(""));
+ REQUIRE_MESSAGE(Response.IsSuccess(), Response.ErrorMessage(""));
};
auto GetOplog = [](HttpClient& Client, std::string_view ProjectName, std::string_view OplogName) {
HttpClient::Response Response = Client.Get(fmt::format("/prj/{}/oplog/{}", ProjectName, OplogName));
- CHECK_MESSAGE(Response.IsSuccess(), Response.ErrorMessage(""));
+ REQUIRE_MESSAGE(Response.IsSuccess(), Response.ErrorMessage(""));
return Response.AsObject();
};
@@ -910,7 +910,7 @@ TEST_CASE("project.rpcappendop")
}
Request.EndArray(); // "ops"
HttpClient::Response Response = Client.Post(fmt::format("/prj/{}/oplog/{}/rpc", ProjectName, OplogName), Request.Save());
- CHECK_MESSAGE(Response.IsSuccess(), Response.ErrorMessage(""));
+ REQUIRE_MESSAGE(Response.IsSuccess(), Response.ErrorMessage(""));
CbObjectView ResponsePayload = Response.AsPackage().GetObject();
CbArrayView NeedArray = ResponsePayload["need"sv].AsArrayView();