From 1a0e1cb98d303b5bd927ed33973b7bcff2c0a605 Mon Sep 17 00:00:00 2001 From: Aina Niemetz Date: Mon, 20 Aug 2018 18:39:10 -0700 Subject: [PATCH] cmake: Build unit tests only if -DENABLE_UNIT_TESTING=ON. --- CMakeLists.txt | 6 +++- test/unit/CMakeLists.txt | 72 +++++++++++++++++++++------------------- 2 files changed, 42 insertions(+), 36 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 1ed87951d..2898f9dff 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -225,6 +225,11 @@ elseif(CMAKE_BUILD_TYPE STREQUAL "Competition") #TODO endif() +#-----------------------------------------------------------------------------# +# Enable the ctest testing framework + +enable_testing() + #-----------------------------------------------------------------------------# if(ENABLE_ASAN) @@ -293,7 +298,6 @@ endif() if(ENABLE_UNIT_TESTING) find_package(CxxTest REQUIRED) - enable_testing() # Force shared libs for unit tests, static libs with unit tests are not # working right now. set(ENABLE_SHARED ON) diff --git a/test/unit/CMakeLists.txt b/test/unit/CMakeLists.txt index b29c705c1..15ac63dd2 100644 --- a/test/unit/CMakeLists.txt +++ b/test/unit/CMakeLists.txt @@ -1,40 +1,42 @@ -include_directories(.) -include_directories(${PROJECT_SOURCE_DIR}/src) -include_directories(${PROJECT_SOURCE_DIR}/src/include) -include_directories(${CMAKE_BINARY_DIR}/src) +if(ENABLE_UNIT_TESTING) + include_directories(.) + include_directories(${PROJECT_SOURCE_DIR}/src) + include_directories(${PROJECT_SOURCE_DIR}/src/include) + include_directories(${CMAKE_BINARY_DIR}/src) -set(CVC4_CXXTEST_FLAGS_BLACK - -D__BUILDING_CVC4LIB_UNIT_TEST -D__BUILDING_CVC4PARSERLIB_UNIT_TEST - -D__STDC_LIMIT_MACROS -D__STDC_FORMAT_MACROS) -set(CVC4_CXXTEST_FLAGS_WHITE -fno-access-control ${CVC4_CXXTEST_FLAGS_BLACK}) + set(CVC4_CXXTEST_FLAGS_BLACK + -D__BUILDING_CVC4LIB_UNIT_TEST -D__BUILDING_CVC4PARSERLIB_UNIT_TEST + -D__STDC_LIMIT_MACROS -D__STDC_FORMAT_MACROS) + set(CVC4_CXXTEST_FLAGS_WHITE -fno-access-control ${CVC4_CXXTEST_FLAGS_BLACK}) -macro(cvc4_add_unit_test is_white name) - cxxtest_add_test(${name} ${name}.cpp ${CMAKE_CURRENT_LIST_DIR}/${name}.h) - set_tests_properties(${name} PROPERTIES LABELS "unit") - target_link_libraries(${name} main) - target_compile_definitions(${name} PRIVATE ${CVC4_CXXTEST_FLAGS_BLACK}) - if(${is_white}) - target_compile_options(${name} PRIVATE -fno-access-control) - endif() - # Disable the Wsuggest-override warnings for the unit tests. CxxTest generates - # code that does not properly add the override keyword to runTest(). - target_compile_options(${name} PRIVATE -Wno-suggest-override) -endmacro() + macro(cvc4_add_unit_test is_white name) + cxxtest_add_test(${name} ${name}.cpp ${CMAKE_CURRENT_LIST_DIR}/${name}.h) + set_tests_properties(${name} PROPERTIES LABELS "unit") + target_link_libraries(${name} main) + target_compile_definitions(${name} PRIVATE ${CVC4_CXXTEST_FLAGS_BLACK}) + if(${is_white}) + target_compile_options(${name} PRIVATE -fno-access-control) + endif() + # Disable the Wsuggest-override warnings for the unit tests. CxxTest generates + # code that does not properly add the override keyword to runTest(). + target_compile_options(${name} PRIVATE -Wno-suggest-override) + endmacro() -macro(cvc4_add_unit_test_black name) - cvc4_add_unit_test(FALSE ${name}) -endmacro() -macro(cvc4_add_unit_test_white name) - cvc4_add_unit_test(TRUE ${name}) -endmacro() + macro(cvc4_add_unit_test_black name) + cvc4_add_unit_test(FALSE ${name}) + endmacro() + macro(cvc4_add_unit_test_white name) + cvc4_add_unit_test(TRUE ${name}) + endmacro() -add_subdirectory(base) -add_subdirectory(context) -add_subdirectory(expr) -add_subdirectory(main) -add_subdirectory(parser) -add_subdirectory(prop) -add_subdirectory(theory) -add_subdirectory(util) + add_subdirectory(base) + add_subdirectory(context) + add_subdirectory(expr) + add_subdirectory(main) + add_subdirectory(parser) + add_subdirectory(prop) + add_subdirectory(theory) + add_subdirectory(util) -add_custom_target(units COMMAND ctest -L "unit") + add_custom_target(units COMMAND ctest -L "unit") +endif() -- 2.30.2