From 87ec259c28d6dadf0ede7ba6e1702c9270823615 Mon Sep 17 00:00:00 2001 From: Petra Baranski Date: Sun, 23 Jul 2023 06:04:29 +0200 Subject: [PATCH] build: add option for running tests cmake configuration for running tests is now in the tests folder. Add option in main cmake file that has to be set to ON and only build the tests in that case. Update appveyor and travis ci configurations accordingly. --- .travis.yml | 2 +- CHANGELOG.md | 1 + CMakeLists.txt | 29 +++++++++++------------------ README.md | 5 ++--- appveyor.yml | 2 +- libs/CMakeLists.txt | 11 ----------- tests/CMakeLists.txt | 28 ++++++++++++++++++++++++++++ 7 files changed, 44 insertions(+), 34 deletions(-) delete mode 100644 libs/CMakeLists.txt create mode 100644 tests/CMakeLists.txt diff --git a/.travis.yml b/.travis.yml index 4daaa67..424c24c 100644 --- a/.travis.yml +++ b/.travis.yml @@ -27,6 +27,6 @@ before_install: script: - mkdir tmp - cd tmp - - cmake .. + - cmake -DMADDY_ENABLED_TESTS=ON .. - make -j4 - ../build/MaddyTests diff --git a/CHANGELOG.md b/CHANGELOG.md index 72633bb..e08fd7c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -18,6 +18,7 @@ maddy uses [semver versioning](https://semver.org/). * ![**ADDED**](https://img.shields.io/badge/-ADDED-%23099) Added contribution guideline * ![**CHANGED**](https://img.shields.io/badge/-CHANGED-%23e90) updated cmake minimum required version to 3.25 * ![**CHANGED**](https://img.shields.io/badge/-CHANGED-%23e90) gtest is now loaded via cmake and not a git submodule any longer - updated gtest version to 1.13.0 +* ![**CHANGED**](https://img.shields.io/badge/-CHANGED-%23e90) tests are only run if the cmake option `MADDY_ENABLED_TESTS` is on, moved test cmake code to the `tests` subfolder * ? ## version 1.1.2 2020-10-04 diff --git a/CMakeLists.txt b/CMakeLists.txt index 526e905..a19207d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -5,8 +5,6 @@ cmake_minimum_required(VERSION 3.25) project(maddy) -enable_testing() - # ------------------------------------------------------------------------------ set(MADDY_CPP_VERSION 14) @@ -20,8 +18,15 @@ set(LIBRARY_OUTPUT_PATH ${CMAKE_BINARY_DIR}) # ------------------------------------------------------------------------------ +option(MADDY_ENABLED_TESTS "enable building tests" OFF) + +if(${MADDY_ENABLED_TESTS}) + enable_testing() +endif() + +# ------------------------------------------------------------------------------ + set(MADDY_INCLUDE_DIR ${PROJECT_SOURCE_DIR}/include) -file(GLOB_RECURSE MADDY_TESTS_FILES ${CMAKE_CURRENT_SOURCE_DIR}/tests/maddy/*.cpp) # ------------------------------------------------------------------------------ @@ -54,10 +59,6 @@ endif() # ------------------------------------------------------------------------------ -add_subdirectory(libs) - -# ------------------------------------------------------------------------------ - add_library(maddy INTERFACE) target_include_directories(maddy INTERFACE ${MADDY_INCLUDE_DIR} @@ -65,14 +66,6 @@ target_include_directories(maddy INTERFACE # ------------------------------------------------------------------------------ -add_executable( - MaddyTests - ${MADDY_TESTS_FILES} - ${CMAKE_CURRENT_SOURCE_DIR}/tests/main.cpp -) -target_include_directories(MaddyTests PUBLIC - ${LIBS_INCLUDE_DIRS} - ${CMAKE_CURRENT_SOURCE_DIR}/tests -) -target_link_libraries(MaddyTests maddy gmock_main) -add_test(MaddyTests ${CMAKE_CURRENT_SOURCE_DIR}/build/MaddyTests) +if(${MADDY_ENABLED_TESTS}) + add_subdirectory(tests) +endif() diff --git a/README.md b/README.md index e5d457f..8c2c65b 100644 --- a/README.md +++ b/README.md @@ -15,7 +15,7 @@ It is tested to work on: * Linux (gcc) * OSX (clang) -* Windows (Visual Studio 2017) +* Windows (Visual Studio 2017, mingw) ## Dependencies @@ -63,10 +63,9 @@ Open your preferred terminal and type: ```shell git clone https://github.com/progsource/maddy.git cd maddy -git submodule update --init --recursive mkdir tmp cd tmp -cmake .. +cmake -DMADDY_ENABLED_TESTS=ON .. make make test # or run the executable in ../build/MaddyTests ``` diff --git a/appveyor.yml b/appveyor.yml index e8842c3..847894d 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -6,7 +6,7 @@ install: before_build: - cmd: mkdir tmp - cmd: cd tmp - - cmd: cmake -G "Visual Studio 15 Win64" .. + - cmd: cmake -G "Visual Studio 15 Win64" -DMADDY_ENABLED_TESTS=ON .. build: project: $(APPVEYOR_BUILD_FOLDER)\tmp\$(APPVEYOR_PROJECT_NAME).sln diff --git a/libs/CMakeLists.txt b/libs/CMakeLists.txt deleted file mode 100644 index 6391206..0000000 --- a/libs/CMakeLists.txt +++ /dev/null @@ -1,11 +0,0 @@ -# This project is licensed under the MIT license. For more information see the -# LICENSE file. - -include(FetchContent) - -FetchContent_Declare( - googletest - GIT_REPOSITORY https://github.com/google/googletest.git - GIT_TAG b796f7d44681514f58a683a3a71ff17c94edb0c1 # v1.13.0 -) -FetchContent_MakeAvailable(googletest) diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt new file mode 100644 index 0000000..0252b57 --- /dev/null +++ b/tests/CMakeLists.txt @@ -0,0 +1,28 @@ +# This project is licensed under the MIT license. For more information see the +# LICENSE file. + +include(FetchContent) + +FetchContent_Declare( + googletest + GIT_REPOSITORY https://github.com/google/googletest.git + GIT_TAG b796f7d44681514f58a683a3a71ff17c94edb0c1 # v1.13.0 +) +FetchContent_MakeAvailable(googletest) + +# ------------------------------------------------------------------------------ + +file(GLOB_RECURSE MADDY_TESTS_FILES ${CMAKE_CURRENT_SOURCE_DIR}/maddy/*.cpp) + +# ------------------------------------------------------------------------------ + +add_executable( + MaddyTests + ${MADDY_TESTS_FILES} + ${CMAKE_CURRENT_SOURCE_DIR}/main.cpp +) +target_include_directories(MaddyTests PUBLIC + ${CMAKE_CURRENT_SOURCE_DIR} +) +target_link_libraries(MaddyTests maddy gmock_main) +add_test(MaddyTests MaddyTests)