aboutsummaryrefslogtreecommitdiff
path: root/src/zencore/testing.cpp
diff options
context:
space:
mode:
authorStefan Boberg <[email protected]>2026-03-01 12:40:20 +0100
committerGitHub Enterprise <[email protected]>2026-03-01 12:40:20 +0100
commit4d01aaee0a45f4c9f96e8a4925eff696be98de8d (patch)
treea0cefd6ef899f77a98370f52079b86af3db0d070 /src/zencore/testing.cpp
parentsubprocess tracking using Jobs on Windows/hub (#796) (diff)
downloadzen-4d01aaee0a45f4c9f96e8a4925eff696be98de8d.tar.xz
zen-4d01aaee0a45f4c9f96e8a4925eff696be98de8d.zip
added `--verbose` option to zenserver-test and `xmake test` (#798)
* when `--verbose` is specified to zenserver-test, all child process output (typically, zenserver instances) is piped through to stdout. you can also pass `--verbose` to `xmake test` to accomplish the same thing. * this PR also consolidates all test runner `main` function logic (such as from zencore-test, zenhttp-test etc) into central implementation in zencore for consistency and ease of maintenance * also added extended utf8-tests including a fix to `Utf8ToWide()`
Diffstat (limited to 'src/zencore/testing.cpp')
-rw-r--r--src/zencore/testing.cpp37
1 files changed, 35 insertions, 2 deletions
diff --git a/src/zencore/testing.cpp b/src/zencore/testing.cpp
index ef8fb0480..6000bd95c 100644
--- a/src/zencore/testing.cpp
+++ b/src/zencore/testing.cpp
@@ -1,18 +1,23 @@
// Copyright Epic Games, Inc. All Rights Reserved.
+#define ZEN_TEST_WITH_RUNNER 1
+
#include "zencore/testing.h"
+
+#include "zencore/filesystem.h"
#include "zencore/logging.h"
+#include "zencore/process.h"
+#include "zencore/trace.h"
#if ZEN_WITH_TESTS
# include <chrono>
+# include <clocale>
# include <cstdlib>
# include <cstdio>
# include <string>
# include <vector>
-# include <doctest/doctest.h>
-
namespace zen::testing {
using namespace std::literals;
@@ -149,6 +154,34 @@ TestRunner::Run()
return m_Impl->Session.run();
}
+int
+RunTestMain(int argc, char* argv[], [[maybe_unused]] const char* traceName, void (*forceLink)())
+{
+# if ZEN_PLATFORM_WINDOWS
+ setlocale(LC_ALL, "en_us.UTF8");
+# endif
+
+ forceLink();
+
+# if ZEN_PLATFORM_LINUX
+ zen::IgnoreChildSignals();
+# endif
+
+# if ZEN_WITH_TRACE
+ zen::TraceInit(traceName);
+ zen::TraceOptions TraceCommandlineOptions;
+ if (GetTraceOptionsFromCommandline(TraceCommandlineOptions))
+ {
+ TraceConfigure(TraceCommandlineOptions);
+ }
+# endif
+
+ zen::logging::InitializeLogging();
+ zen::MaximizeOpenFileCount();
+
+ return ZEN_RUN_TESTS(argc, argv);
+}
+
} // namespace zen::testing
#endif // ZEN_WITH_TESTS