diff options
| author | Stefan Boberg <[email protected]> | 2022-04-05 15:58:41 +0200 |
|---|---|---|
| committer | Stefan Boberg <[email protected]> | 2022-04-05 15:58:41 +0200 |
| commit | ca6516d1b552c5d6959aac3abc84cf3ee02393b6 (patch) | |
| tree | be3559834a28603871d79bdb0f6332d9b09349b2 | |
| parent | Fix gc shutdown stalling if shutting down while gc is running (diff) | |
| download | zen-ca6516d1b552c5d6959aac3abc84cf3ee02393b6.tar.xz zen-ca6516d1b552c5d6959aac3abc84cf3ee02393b6.zip | |
Added option to use Catch2 framework for tests
| -rw-r--r-- | xmake.lua | 1 | ||||
| -rw-r--r-- | zen/zen.cpp | 5 | ||||
| -rw-r--r-- | zencore-test/xmake.lua | 1 | ||||
| -rw-r--r-- | zencore-test/zencore-test.cpp | 5 | ||||
| -rw-r--r-- | zencore/blake3.cpp | 16 | ||||
| -rw-r--r-- | zencore/compactbinary.cpp | 4 | ||||
| -rw-r--r-- | zencore/compactbinarybuilder.cpp | 26 | ||||
| -rw-r--r-- | zencore/include/zencore/testing.h | 28 | ||||
| -rw-r--r-- | zencore/md5.cpp | 16 | ||||
| -rw-r--r-- | zencore/sha1.cpp | 16 | ||||
| -rw-r--r-- | zencore/xmake.lua | 1 | ||||
| -rw-r--r-- | zenserver-test/zenserver-test.cpp | 76 | ||||
| -rw-r--r-- | zenserver/zenserver.cpp | 5 | ||||
| -rw-r--r-- | zenstore-test/zenstore-test.cpp | 6 |
14 files changed, 116 insertions, 90 deletions
@@ -5,6 +5,7 @@ set_configvar("ZEN_SCHEMA_VERSION", 3) -- changed cas oplog format (p3rl) add_requires( "vcpkg::asio", + "vcpkg::catch2", "vcpkg::cpr", "vcpkg::curl", "vcpkg::cxxopts", diff --git a/zen/zen.cpp b/zen/zen.cpp index 7f547a77a..0a1136da5 100644 --- a/zen/zen.cpp +++ b/zen/zen.cpp @@ -21,9 +21,8 @@ #include <zenstore/cas.h> #if ZEN_WITH_TESTS -# define DOCTEST_CONFIG_IMPLEMENT +# define ZEN_TEST_WITH_RUNNER # include <zencore/testing.h> -# undef DOCTEST_CONFIG_IMPLEMENT #endif #include <gsl/gsl-lite.hpp> @@ -78,7 +77,7 @@ public: return GetLastError(); # endif // ZEN_PLATFORM_WINDOWS - return doctest::Context(argc, argv).run(); + return ZEN_RUN_TESTS(argc, argv); } virtual cxxopts::Options* Options() override { return &m_Options; } diff --git a/zencore-test/xmake.lua b/zencore-test/xmake.lua index 74c7e74a7..2556a1399 100644 --- a/zencore-test/xmake.lua +++ b/zencore-test/xmake.lua @@ -5,4 +5,5 @@ target("zencore-test") add_headerfiles("**.h") add_files("*.cpp") add_deps("zencore") + add_packages("vcpkg::catch2") add_packages("vcpkg::doctest") diff --git a/zencore-test/zencore-test.cpp b/zencore-test/zencore-test.cpp index cd4ce3e0a..37f309be0 100644 --- a/zencore-test/zencore-test.cpp +++ b/zencore-test/zencore-test.cpp @@ -5,9 +5,8 @@ #include <zencore/zencore.h> #if ZEN_WITH_TESTS -# define DOCTEST_CONFIG_IMPLEMENT +# define ZEN_TEST_WITH_RUNNER 1 # include <zencore/testing.h> -# undef DOCTEST_CONFIG_IMPLEMENT #endif int @@ -18,7 +17,7 @@ main([[maybe_unused]] int argc, [[maybe_unused]] char* argv[]) zen::logging::InitializeLogging(); - return doctest::Context(argc, argv).run(); + return ZEN_RUN_TESTS(argc, argv); #else return 0; #endif diff --git a/zencore/blake3.cpp b/zencore/blake3.cpp index b2019d4e2..02d6eb241 100644 --- a/zencore/blake3.cpp +++ b/zencore/blake3.cpp @@ -127,14 +127,14 @@ BLAKE3Stream::GetHash() #if ZEN_WITH_TESTS -doctest::String -toString(const BLAKE3& value) -{ - char text[2 * sizeof(BLAKE3) + 1]; - value.ToHexString(text); - - return text; -} +// doctest::String +// toString(const BLAKE3& value) +// { +// char text[2 * sizeof(BLAKE3) + 1]; +// value.ToHexString(text); + +// return text; +// } TEST_CASE("BLAKE3") { diff --git a/zencore/compactbinary.cpp b/zencore/compactbinary.cpp index 31d449c41..05ae32f2b 100644 --- a/zencore/compactbinary.cpp +++ b/zencore/compactbinary.cpp @@ -1909,8 +1909,8 @@ TEST_CASE("uson.json") const double DoubleValue = Json["Double"].number_value(); CHECK(JsonError.empty()); - CHECK(FloatValue == doctest::Approx(ExpectedFloatValue)); - CHECK(DoubleValue == doctest::Approx(ExpectedDoubleValue)); + CHECK(FloatValue == Approx(ExpectedFloatValue)); + CHECK(DoubleValue == Approx(ExpectedDoubleValue)); } SUBCASE("number.nan") diff --git a/zencore/compactbinarybuilder.cpp b/zencore/compactbinarybuilder.cpp index 5111504e1..262f4e7d3 100644 --- a/zencore/compactbinarybuilder.cpp +++ b/zencore/compactbinarybuilder.cpp @@ -705,19 +705,19 @@ usonbuilder_forcelink() { } -doctest::String -toString(const DateTime&) -{ - // TODO:implement - return ""; -} - -doctest::String -toString(const TimeSpan&) -{ - // TODO:implement - return ""; -} +// doctest::String +// toString(const DateTime&) +// { +// // TODO:implement +// return ""; +// } + +// doctest::String +// toString(const TimeSpan&) +// { +// // TODO:implement +// return ""; +// } TEST_CASE("usonbuilder.object") { diff --git a/zencore/include/zencore/testing.h b/zencore/include/zencore/testing.h index 80aebc26e..38c882edb 100644 --- a/zencore/include/zencore/testing.h +++ b/zencore/include/zencore/testing.h @@ -4,6 +4,32 @@ #include <zencore/zencore.h> +#ifdef ZEN_TEST_WITH_RUNNER +# define CATCH_CONFIG_RUNNER +# define DOCTEST_CONFIG_IMPLEMENT +#endif + #if ZEN_WITH_TESTS -# include <doctest/doctest.h> +# if 1 +# include <catch2/catch.hpp> +# define SUBCASE(x) SECTION(x) +# define CHECK_EQ(x, y) CHECK((x) == (y)) +# define CHECK_MESSAGE(x, y) CHECK(x) +# define ZEN_RUN_TESTS(argC, argV) Catch::Session().run(argC, argV) +# else +# include <doctest/doctest.h> +# define ZEN_RUN_TESTS(argC, argV) doctest::Context(argc, argv).run() +inline auto +Approx(auto Value) +{ + return doctest::Approx(Value); +} +# endif +#else +# define ZEN_RUN_TESTS(argC, argV) +#endif + +#ifdef ZEN_TEST_WITH_RUNNER +# undef CATCH_CONFIG_RUNNER +# undef DOCTEST_CONFIG_IMPLEMENT #endif diff --git a/zencore/md5.cpp b/zencore/md5.cpp index faece3862..4ec145697 100644 --- a/zencore/md5.cpp +++ b/zencore/md5.cpp @@ -428,14 +428,14 @@ md5_forcelink() { } -doctest::String -toString(const MD5& value) -{ - char md5text[2 * sizeof(MD5) + 1]; - value.ToHexString(md5text); - - return md5text; -} +// doctest::String +// toString(const MD5& value) +// { +// char md5text[2 * sizeof(MD5) + 1]; +// value.ToHexString(md5text); + +// return md5text; +// } TEST_CASE("MD5") { diff --git a/zencore/sha1.cpp b/zencore/sha1.cpp index 66e01f232..3ee74d7d8 100644 --- a/zencore/sha1.cpp +++ b/zencore/sha1.cpp @@ -364,14 +364,14 @@ sha1_forcelink() { } -doctest::String -toString(const SHA1& value) -{ - char sha1text[2 * sizeof(SHA1) + 1]; - value.ToHexString(sha1text); - - return sha1text; -} +// doctest::String +// toString(const SHA1& value) +// { +// char sha1text[2 * sizeof(SHA1) + 1]; +// value.ToHexString(sha1text); + +// return sha1text; +// } TEST_CASE("SHA1") { diff --git a/zencore/xmake.lua b/zencore/xmake.lua index 1044c5025..63e874ac5 100644 --- a/zencore/xmake.lua +++ b/zencore/xmake.lua @@ -33,6 +33,7 @@ target('zencore') "vcpkg::spdlog", "vcpkg::fmt", "vcpkg::doctest", + "vcpkg::catch2", "vcpkg::json11", "vcpkg::lz4", "vcpkg::mimalloc", diff --git a/zenserver-test/zenserver-test.cpp b/zenserver-test/zenserver-test.cpp index 5260eaa65..2c5d1d11b 100644 --- a/zenserver-test/zenserver-test.cpp +++ b/zenserver-test/zenserver-test.cpp @@ -65,9 +65,8 @@ ZEN_THIRD_PARTY_INCLUDES_END ////////////////////////////////////////////////////////////////////////// #if ZEN_WITH_TESTS -# define DOCTEST_CONFIG_IMPLEMENT +# define ZEN_TEST_WITH_RUNNER 1 # include <zencore/testing.h> -# undef DOCTEST_CONFIG_IMPLEMENT #endif using namespace std::literals; @@ -331,7 +330,8 @@ main(int argc, char** argv) TestEnv.InitializeForTest(ProgramBaseDir, TestBaseDir); ZEN_INFO("Running tests...(base dir: '{}')", TestBaseDir); - return doctest::Context(argc, argv).run(); + + return ZEN_RUN_TESTS(argc, argv); } namespace zen::tests { @@ -2490,41 +2490,41 @@ private: zen::BinaryWriter m_MemOut; }; -TEST_CASE("exec.basic" * doctest::skip(true)) -{ -# if ZEN_WITH_EXEC_SERVICES - 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(".exec.basic" /* * doctest::skip(true) */) +//{ +//# if ZEN_WITH_EXEC_SERVICES +// 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") { diff --git a/zenserver/zenserver.cpp b/zenserver/zenserver.cpp index 667bcd317..500b57e73 100644 --- a/zenserver/zenserver.cpp +++ b/zenserver/zenserver.cpp @@ -50,9 +50,8 @@ ZEN_THIRD_PARTY_INCLUDES_END // in some shared code into the executable #if ZEN_WITH_TESTS -# define DOCTEST_CONFIG_IMPLEMENT +# define ZEN_TEST_WITH_RUNNER # include <zencore/testing.h> -# undef DOCTEST_CONFIG_IMPLEMENT #endif ////////////////////////////////////////////////////////////////////////// @@ -1158,7 +1157,7 @@ test_main(int argc, char** argv) spdlog::set_level(spdlog::level::debug); - return doctest::Context(argc, argv).run(); + return ZEN_RUN_TESTS(argc, argv); } #endif diff --git a/zenstore-test/zenstore-test.cpp b/zenstore-test/zenstore-test.cpp index e6bd92ab9..587cf4a05 100644 --- a/zenstore-test/zenstore-test.cpp +++ b/zenstore-test/zenstore-test.cpp @@ -5,9 +5,8 @@ #include <zenstore/zenstore.h> #if ZEN_WITH_TESTS -# define DOCTEST_CONFIG_IMPLEMENT +# define ZEN_TEST_WITH_RUNNER 1 # include <zencore/testing.h> -# undef DOCTEST_CONFIG_IMPLEMENT #endif int @@ -18,7 +17,8 @@ main([[maybe_unused]] int argc, [[maybe_unused]] char* argv[]) zen::logging::InitializeLogging(); - return doctest::Context(argc, argv).run(); + return ZEN_RUN_TESTS(argc, argv); #else + return 0; #endif } |