From f837f28171970b56781a57b5dc503e6067abecd2 Mon Sep 17 00:00:00 2001 From: Carbenium Date: Wed, 22 Jul 2020 20:27:54 +0200 Subject: dep: Add catch2 unit test framework and wire it up To enable the test suite, make sure to configure CMake with -DBUILD_TESTING=1 , since it is disabled by default. The catch2 dependency will be downloaded during configure time. Also add a new target "tests-common", which includes unit tests for the "common" project. To finally run the tests use the "test" target. CircleCI: Run unit tests (cherry picked from commit 6a28ee7b2a4269aa7e43265d1cd0067537e3e883) --- tests/CMakeLists.txt | 23 +++++++++++++++++++++++ tests/common/test-main.cpp | 20 ++++++++++++++++++++ 2 files changed, 43 insertions(+) create mode 100644 tests/CMakeLists.txt create mode 100644 tests/common/test-main.cpp (limited to 'tests') diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt new file mode 100644 index 00000000000..fdbfe689fc2 --- /dev/null +++ b/tests/CMakeLists.txt @@ -0,0 +1,23 @@ +# This file is part of the TrinityCore Project. See AUTHORS file for Copyright information +# +# This file is free software; as a special exception the author gives +# unlimited permission to copy and/or distribute it, with or without +# modifications, as long as this notice is preserved. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY, to the extent permitted by law; without even the +# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + +CollectSourceFiles( + ${CMAKE_CURRENT_SOURCE_DIR}/common + COMMON_SOURCES +) + +add_executable(tests-common ${COMMON_SOURCES}) + +target_link_libraries(tests-common + PRIVATE + common + Catch2::Catch2) + +catch_discover_tests(tests-common) diff --git a/tests/common/test-main.cpp b/tests/common/test-main.cpp new file mode 100644 index 00000000000..8ed9dd5863b --- /dev/null +++ b/tests/common/test-main.cpp @@ -0,0 +1,20 @@ +/* + * This file is part of the TrinityCore Project. See AUTHORS file for Copyright information + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2 of the License, or (at your + * option) any later version. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along + * with this program. If not, see . + */ + + +#define CATCH_CONFIG_MAIN +#include "catch2/catch.hpp" -- cgit v1.2.3