From 8b1e56a25dbe6e985bab376fec759adfe8b18dcd Mon Sep 17 00:00:00 2001 From: Rick Barenthin Date: Fri, 20 May 2022 13:40:37 +0200 Subject: [PATCH] feat(list): update CMakeLists.txt to have also coverage reports --- CMakeLists.txt | 9 +++++++++ CTestCustom.cmake | 1 + tests/CMakeLists.txt | 12 ++++++++++++ tests/library/list/CMakeLists.txt | 8 ++++++-- tests/project-meta-info.in | 3 +++ 5 files changed, 31 insertions(+), 2 deletions(-) create mode 100644 CTestCustom.cmake create mode 100644 tests/project-meta-info.in diff --git a/CMakeLists.txt b/CMakeLists.txt index 31da526..3450350 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -13,9 +13,14 @@ set(CMAKE_C_STANDARD 17) list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake") +option(ENABLE_TEST_COVERAGE "Enable test coverage" OFF) + if (CMAKE_PROJECT_NAME STREQUAL PROJECT_NAME) set_property(GLOBAL PROPERTY USE_FOLDERS ON) include(CTest) + if (ENABLE_TEST_COVERAGE) + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -g -fprofile-arcs -ftest-coverage") + endif () endif () add_subdirectory(app) @@ -24,5 +29,9 @@ add_subdirectory(library/log) if ((CMAKE_PROJECT_NAME STREQUAL PROJECT_NAME OR MODERN_CMAKE_BUILD_TESTING) AND BUILD_TESTING) + configure_file( + ${CMAKE_SOURCE_DIR}/CTestCustom.cmake + ${CMAKE_BINARY_DIR}/CTestCustom.cmake COPYONLY + ) add_subdirectory(tests) endif () diff --git a/CTestCustom.cmake b/CTestCustom.cmake new file mode 100644 index 0000000..ebf0384 --- /dev/null +++ b/CTestCustom.cmake @@ -0,0 +1 @@ +set(CTEST_CUSTOM_COVERAGE_EXCLUDE tests/) diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 287859f..0a807bf 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -1 +1,13 @@ +cmake_minimum_required(VERSION 3.21 FATAL_ERROR) + +include("project-meta-info.in") + +project(waitui-tests + VERSION ${project_version} + DESCRIPTION ${project_description} + HOMEPAGE_URL ${project_homepage} + LANGUAGES C) + +#option(ENABLE_TEST_COVERAGE "Enable test coverage" ON) + add_subdirectory(library/list) \ No newline at end of file diff --git a/tests/library/list/CMakeLists.txt b/tests/library/list/CMakeLists.txt index 8a770ee..356d070 100644 --- a/tests/library/list/CMakeLists.txt +++ b/tests/library/list/CMakeLists.txt @@ -7,5 +7,9 @@ target_sources(waitui-test_list target_link_libraries(waitui-test_list PRIVATE list) -add_test(waitui-test_list waitui-test_list) -set_tests_properties(waitui-test_list PROPERTIES ENVIRONMENT "BDD_USE_TAP=1") \ No newline at end of file +add_test(NAME waitui-test_list COMMAND waitui-test_list) + +#if(ENABLE_TEST_COVERAGE) +# target_compile_options(list PUBLIC -O0 -g -fprofile-arcs -ftest-coverage) +# target_link_options(list PUBLIC -fprofile-arcs -ftest-coverage) +#endif() diff --git a/tests/project-meta-info.in b/tests/project-meta-info.in new file mode 100644 index 0000000..9e35505 --- /dev/null +++ b/tests/project-meta-info.in @@ -0,0 +1,3 @@ +set(project_version 0.0.1) +set(project_description "waitui language system tests") +set(project_homepage "http://example.com") \ No newline at end of file