diff options
| author | Stefan Boberg <[email protected]> | 2022-05-20 18:45:35 +0200 |
|---|---|---|
| committer | GitHub <[email protected]> | 2022-05-20 18:45:35 +0200 |
| commit | f0d389a4430b62bfa8ea0852905fcf84065b08c2 (patch) | |
| tree | 450344815e7bb7c3dde0d94f6032f048f3430527 /zencore | |
| parent | fix mac compilation error (diff) | |
| download | zen-f0d389a4430b62bfa8ea0852905fcf84065b08c2.tar.xz zen-f0d389a4430b62bfa8ea0852905fcf84065b08c2.zip | |
Add catch2 support (#101)
Added option to use catch2 for unit tests
Currently both doctest and catch2 are supported via some compatibility macros. doctest is the default, and ZEN_USE_CATCH2 needs to be defined to switch to catch2.
Our goal is to evaluate how well catch2 works and switch to catch2 if everything pans out since UE5 now supports using catch2 for unit tests.
Diffstat (limited to 'zencore')
| -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 | 32 | ||||
| -rw-r--r-- | zencore/md5.cpp | 16 | ||||
| -rw-r--r-- | zencore/sha1.cpp | 16 | ||||
| -rw-r--r-- | zencore/xmake.lua | 1 |
7 files changed, 71 insertions, 40 deletions
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 a51253989..375a97fc5 100644 --- a/zencore/compactbinary.cpp +++ b/zencore/compactbinary.cpp @@ -2133,8 +2133,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 1d2ba45df..d4ccd434d 100644 --- a/zencore/compactbinarybuilder.cpp +++ b/zencore/compactbinarybuilder.cpp @@ -706,19 +706,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..faa4eef6c 100644 --- a/zencore/include/zencore/testing.h +++ b/zencore/include/zencore/testing.h @@ -4,6 +4,36 @@ #include <zencore/zencore.h> +#ifdef ZEN_TEST_WITH_RUNNER +# define CATCH_CONFIG_RUNNER +# define DOCTEST_CONFIG_IMPLEMENT +#endif + +#ifndef ZEN_USE_CATCH2 +# define ZEN_USE_CATCH2 0 +#endif + #if ZEN_WITH_TESTS -# include <doctest/doctest.h> +# if ZEN_USE_CATCH2 +# 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", |