From a5ce3c378f12d9ef9de129897aada95fff0fa490 Mon Sep 17 00:00:00 2001 From: Pcornat Date: Fri, 14 Jan 2022 23:36:38 +0100 Subject: [PATCH] Adding Catch2 unit testing framework. Init characteristics serializer tests. --- .gitmodules | 3 ++ CMakeLists.txt | 6 ++++ Unit testing/CMakeLists.txt | 46 ++++++++++++++++++++++++++ Unit testing/adummy.cpp | 2 ++ Unit testing/characteristics_tests.cpp | 17 ++++++++++ external/catch2 | 1 + 6 files changed, 75 insertions(+) create mode 100644 Unit testing/CMakeLists.txt create mode 100644 Unit testing/adummy.cpp create mode 100644 Unit testing/characteristics_tests.cpp create mode 160000 external/catch2 diff --git a/.gitmodules b/.gitmodules index 2ded04f..2cb190d 100644 --- a/.gitmodules +++ b/.gitmodules @@ -7,3 +7,6 @@ [submodule "external/json"] path = external/json url = https://github.com/nlohmann/json.git +[submodule "external/catch2"] + path = external/catch2 + url = https://github.com/catchorg/Catch2.git diff --git a/CMakeLists.txt b/CMakeLists.txt index 09b0d16..d4dd6fe 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -82,6 +82,12 @@ add_subdirectory(external/spdlog) set(JSON_BuildTests OFF CACHE INTERNAL "") add_subdirectory(external/json) +option(CATCH_INSTALL_DOCS "Install documentation alongside library" OFF) +option(CATCH_INSTALL_EXTRAS "Install extras alongside library" OFF) +add_subdirectory(external/catch2) + +add_subdirectory("Unit testing") + set(COMPILE_FLAGS -pipe -march=skylake # change to native or your architecture. diff --git a/Unit testing/CMakeLists.txt b/Unit testing/CMakeLists.txt new file mode 100644 index 0000000..05cfd12 --- /dev/null +++ b/Unit testing/CMakeLists.txt @@ -0,0 +1,46 @@ +cmake_minimum_required(VERSION 3.19 FATAL_ERROR) + +project(UnitTest CXX) + +set(COMPILE_FLAGS + -pipe + -march=skylake # change to native or your architecture. + -mtune=skylake # same as above + -mrdseed # be careful about this, this is linked to the x86 architecture. + -mrdrnd # same as above + -Wall + -Wextra + -Wpedantic + # -Wpadded + -pedantic + -ffunction-sections + -fdata-sections + -fuse-ld=gold + -funroll-loops + -fdevirtualize-at-ltrans + -fno-builtin-malloc -fno-builtin-calloc -fno-builtin-realloc -fno-builtin-free + ) +set(LINKER_OPTIONS + -Wl,--sort-common,--as-needed,--gc-sections,--strip-all + -fuse-ld=gold + -fdevirtualize-at-ltrans + ) + +set(LINKER_FLAGS + jemalloc + ) + +add_executable(UnitTest adummy.cpp characteristics_tests.cpp) + +set_target_properties(Catch2 UnitTest PROPERTIES + CXX_STANDARD 17 + CXX_STANDARD_REQUIRED ON + CXX_EXTENSIONS OFF + INTERPROCEDURAL_OPTIMIZATION ON + UNITY_BUILD ON) + +target_include_directories(UnitTest PRIVATE ${CMAKE_SOURCE_DIR}/include) +target_compile_definitions(UnitTest PRIVATE ${DEF_COMP}) +target_compile_options(UnitTest PRIVATE ${COMPILE_FLAGS}) +target_link_options(UnitTest PRIVATE ${LINKER_OPTIONS}) +target_link_libraries(UnitTest ${LINKER_FLAGS} Catch2 nlohmann_json::nlohmann_json) diff --git a/Unit testing/adummy.cpp b/Unit testing/adummy.cpp new file mode 100644 index 0000000..2380d6b --- /dev/null +++ b/Unit testing/adummy.cpp @@ -0,0 +1,2 @@ +#define CATCH_CONFIG_MAIN +#include \ No newline at end of file diff --git a/Unit testing/characteristics_tests.cpp b/Unit testing/characteristics_tests.cpp new file mode 100644 index 0000000..d2adf99 --- /dev/null +++ b/Unit testing/characteristics_tests.cpp @@ -0,0 +1,17 @@ +#include + +TEST_CASE("Serialize adresse", "[serialize][0]") { + +} + +TEST_CASE("Serialize chance", "[serialize][1]") { + +} + +TEST_CASE("Serialize endurance", "[serialize][2]") { + +} + +TEST_CASE("Serialize habilete", "[serialize][3]") { + +} diff --git a/external/catch2 b/external/catch2 new file mode 160000 index 0000000..216713a --- /dev/null +++ b/external/catch2 @@ -0,0 +1 @@ +Subproject commit 216713a4066b79d9803d374f261ccb30c0fb451f