Add options to enable/disable building of unit and system testing

Unit Testing is enabled by default. In some memory-constrained
environments it can be useful to disable its building. It can be
disabled by setting -DENABLE_UNIT_TESTING=OFF

System testing is disabled by default. It can be build by setting
-DENABLE_SYSTEM_TESTING=ON
This commit is contained in:
Carles Fernandez 2016-10-02 01:59:12 +02:00
parent 3a10f3c26b
commit ff4c323b01
3 changed files with 64 additions and 48 deletions

View File

@ -59,6 +59,9 @@ if(ENABLE_PACKAGING)
set(ENABLE_GENERIC_ARCH ON) set(ENABLE_GENERIC_ARCH ON)
endif(ENABLE_PACKAGING) endif(ENABLE_PACKAGING)
# Testing
option(ENABLE_SYSTEM_TESTING "Builds system tests" OFF)
option(ENABLE_UNIT_TESTING "Builds unit tests" ON)
############################### ###############################
# GNSS-SDR version information # GNSS-SDR version information
@ -296,29 +299,31 @@ endif(NOT ENABLE_GENERIC_ARCH)
# Googletest - https://github.com/google/googletest # Googletest - https://github.com/google/googletest
################################################################################ ################################################################################
enable_testing() enable_testing()
if(EXISTS $ENV{GTEST_DIR}) if(ENABLE_UNIT_TESTING OR ENABLE_SYSTEM_TESTING)
set(GTEST_DIR $ENV{GTEST_DIR}) if(EXISTS $ENV{GTEST_DIR})
endif(EXISTS $ENV{GTEST_DIR}) set(GTEST_DIR $ENV{GTEST_DIR})
if(GTEST_DIR) endif(EXISTS $ENV{GTEST_DIR})
message(STATUS "Googletest root folder set at ${GTEST_DIR}") if(GTEST_DIR)
find_path(LIBGTEST_DEV_DIR NAMES src/gtest-all.cc PATHS ${GTEST_DIR}) message(STATUS "Googletest root folder set at ${GTEST_DIR}")
if(LIBGTEST_DEV_DIR) find_path(LIBGTEST_DEV_DIR NAMES src/gtest-all.cc PATHS ${GTEST_DIR})
message (STATUS "Googletest has been found.") if(LIBGTEST_DEV_DIR)
else(LIBGTEST_DEV_DIR) message (STATUS "Googletest has been found.")
message (FATAL_ERROR " Googletest source code has not been found at ${GTEST_DIR}.") else(LIBGTEST_DEV_DIR)
endif(LIBGTEST_DEV_DIR) message (FATAL_ERROR " Googletest source code has not been found at ${GTEST_DIR}.")
find_path(GTEST_INCLUDE_DIRS NAMES gtest/gtest.h PATHS ${GTEST_DIR}/include) endif(LIBGTEST_DEV_DIR)
else(GTEST_DIR) find_path(GTEST_INCLUDE_DIRS NAMES gtest/gtest.h PATHS ${GTEST_DIR}/include)
find_path(LIBGTEST_DEV_DIR NAMES src/gtest-all.cc PATHS /usr/src/gtest /opt/local/src/gtest-1.7.0) else(GTEST_DIR)
find_path(GTEST_INCLUDE_DIRS NAMES gtest/gtest.h PATHS /usr/include /opt/local/src/gtest-1.7.0/include) find_path(LIBGTEST_DEV_DIR NAMES src/gtest-all.cc PATHS /usr/src/gtest /opt/local/src/gtest-1.7.0)
if(LIBGTEST_DEV_DIR) find_path(GTEST_INCLUDE_DIRS NAMES gtest/gtest.h PATHS /usr/include /opt/local/src/gtest-1.7.0/include)
message (STATUS "Googletest (libgtest-dev package) has been found.") if(LIBGTEST_DEV_DIR)
else(LIBGTEST_DEV_DIR) message (STATUS "Googletest (libgtest-dev package) has been found.")
message (STATUS " Googletest has not been found.") else(LIBGTEST_DEV_DIR)
message (STATUS " Googletest will be downloaded and built automatically ") message (STATUS " Googletest has not been found.")
message (STATUS " when doing 'make'. ") message (STATUS " Googletest will be downloaded and built automatically ")
endif(LIBGTEST_DEV_DIR) message (STATUS " when doing 'make'. ")
endif(GTEST_DIR) endif(LIBGTEST_DEV_DIR)
endif(GTEST_DIR)
endif(ENABLE_UNIT_TESTING OR ENABLE_SYSTEM_TESTING)

View File

@ -19,5 +19,7 @@
add_subdirectory(algorithms) add_subdirectory(algorithms)
add_subdirectory(core) add_subdirectory(core)
add_subdirectory(main) add_subdirectory(main)
add_subdirectory(tests) if(ENABLE_UNIT_TESTING OR ENABLE_SYSTEM_TESTING)
add_subdirectory(tests)
endif(ENABLE_UNIT_TESTING OR ENABLE_SYSTEM_TESTING)
add_subdirectory(utils) add_subdirectory(utils)

View File

@ -164,14 +164,14 @@ endif(ENABLE_CUDA)
add_definitions(-DTEST_PATH="${CMAKE_SOURCE_DIR}/src/tests/") add_definitions(-DTEST_PATH="${CMAKE_SOURCE_DIR}/src/tests/")
if(ENABLE_UNIT_TESTING)
add_executable(run_tests ${CMAKE_CURRENT_SOURCE_DIR}/test_main.cc)
add_executable(run_tests ${CMAKE_CURRENT_SOURCE_DIR}/test_main.cc) add_custom_command(TARGET run_tests POST_BUILD
add_custom_command(TARGET run_tests POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:run_tests> COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:run_tests>
${CMAKE_SOURCE_DIR}/install/$<TARGET_FILE_NAME:run_tests>) ${CMAKE_SOURCE_DIR}/install/$<TARGET_FILE_NAME:run_tests>)
target_link_libraries(run_tests ${CLANG_FLAGS} target_link_libraries(run_tests ${CLANG_FLAGS}
${Boost_LIBRARIES} ${Boost_LIBRARIES}
${GFLAGS_LIBS} ${GFLAGS_LIBS}
${GLOG_LIBRARIES} ${GLOG_LIBRARIES}
@ -191,8 +191,8 @@ target_link_libraries(run_tests ${CLANG_FLAGS}
pvt_gr_blocks pvt_gr_blocks
${VOLK_GNSSSDR_LIBRARIES} ${ORC_LIBRARIES} ${VOLK_GNSSSDR_LIBRARIES} ${ORC_LIBRARIES}
${GNSS_SDR_TEST_OPTIONAL_LIBS} ${GNSS_SDR_TEST_OPTIONAL_LIBS}
) )
endif(ENABLE_UNIT_TESTING)
######################################################### #########################################################
# Adding Tests to Ctest # Adding Tests to Ctest
@ -375,21 +375,30 @@ add_dependencies(check control_thread_test flowgraph_test gnss_block_test
# Addition of System Tests # Addition of System Tests
add_executable(ttff if(ENABLE_SYSTEM_TESTING)
${CMAKE_CURRENT_SOURCE_DIR}/system-tests/ttff_gps_l1.cc ) add_executable(ttff
if(NOT ${GTEST_DIR_LOCAL}) ${CMAKE_CURRENT_SOURCE_DIR}/system-tests/ttff_gps_l1.cc )
add_dependencies(ttff gtest-${gtest_RELEASE}) if(NOT ${GTEST_DIR_LOCAL})
else(NOT ${GTEST_DIR_LOCAL}) add_dependencies(ttff gtest-${gtest_RELEASE})
add_dependencies(ttff gtest) else(NOT ${GTEST_DIR_LOCAL})
endif(NOT ${GTEST_DIR_LOCAL}) add_dependencies(ttff gtest)
target_link_libraries(ttff endif(NOT ${GTEST_DIR_LOCAL})
${Boost_LIBRARIES} target_link_libraries(ttff
${GFLAGS_LIBS} ${Boost_LIBRARIES}
${GLOG_LIBRARIES} ${GFLAGS_LIBS}
${GTEST_LIBRARIES} ${GLOG_LIBRARIES}
gnss_rx ${GTEST_LIBRARIES}
) ${GNURADIO_RUNTIME_LIBRARIES}
add_custom_command(TARGET ttff POST_BUILD ${GNURADIO_BLOCKS_LIBRARIES}
COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:ttff> ${GNURADIO_FILTER_LIBRARIES}
${CMAKE_SOURCE_DIR}/install/$<TARGET_FILE_NAME:ttff> ${GNURADIO_ANALOG_LIBRARIES}
) ${VOLK_GNSSSDR_LIBRARIES} ${ORC_LIBRARIES}
gnss_sp_libs
gnss_rx
gnss_system_parameters
)
add_custom_command(TARGET ttff POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:ttff>
${CMAKE_SOURCE_DIR}/install/$<TARGET_FILE_NAME:ttff>
)
endif(ENABLE_SYSTEM_TESTING)