diff --git a/CMakeLists.txt b/CMakeLists.txt index 0eb1ff6e9..e98c6af33 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -59,6 +59,9 @@ if(ENABLE_PACKAGING) set(ENABLE_GENERIC_ARCH ON) endif(ENABLE_PACKAGING) +# Testing +option(ENABLE_SYSTEM_TESTING "Builds system tests" OFF) +option(ENABLE_UNIT_TESTING "Builds unit tests" ON) ############################### # GNSS-SDR version information @@ -296,29 +299,31 @@ endif(NOT ENABLE_GENERIC_ARCH) # Googletest - https://github.com/google/googletest ################################################################################ enable_testing() -if(EXISTS $ENV{GTEST_DIR}) - set(GTEST_DIR $ENV{GTEST_DIR}) -endif(EXISTS $ENV{GTEST_DIR}) -if(GTEST_DIR) - message(STATUS "Googletest root folder set at ${GTEST_DIR}") - find_path(LIBGTEST_DEV_DIR NAMES src/gtest-all.cc PATHS ${GTEST_DIR}) - if(LIBGTEST_DEV_DIR) - message (STATUS "Googletest has been found.") - else(LIBGTEST_DEV_DIR) - message (FATAL_ERROR " Googletest source code has not been found at ${GTEST_DIR}.") - endif(LIBGTEST_DEV_DIR) - find_path(GTEST_INCLUDE_DIRS NAMES gtest/gtest.h PATHS ${GTEST_DIR}/include) -else(GTEST_DIR) - find_path(LIBGTEST_DEV_DIR NAMES src/gtest-all.cc PATHS /usr/src/gtest /opt/local/src/gtest-1.7.0) - find_path(GTEST_INCLUDE_DIRS NAMES gtest/gtest.h PATHS /usr/include /opt/local/src/gtest-1.7.0/include) - if(LIBGTEST_DEV_DIR) - message (STATUS "Googletest (libgtest-dev package) has been found.") - else(LIBGTEST_DEV_DIR) - message (STATUS " Googletest has not been found.") - message (STATUS " Googletest will be downloaded and built automatically ") - message (STATUS " when doing 'make'. ") - endif(LIBGTEST_DEV_DIR) -endif(GTEST_DIR) +if(ENABLE_UNIT_TESTING OR ENABLE_SYSTEM_TESTING) + if(EXISTS $ENV{GTEST_DIR}) + set(GTEST_DIR $ENV{GTEST_DIR}) + endif(EXISTS $ENV{GTEST_DIR}) + if(GTEST_DIR) + message(STATUS "Googletest root folder set at ${GTEST_DIR}") + find_path(LIBGTEST_DEV_DIR NAMES src/gtest-all.cc PATHS ${GTEST_DIR}) + if(LIBGTEST_DEV_DIR) + message (STATUS "Googletest has been found.") + else(LIBGTEST_DEV_DIR) + message (FATAL_ERROR " Googletest source code has not been found at ${GTEST_DIR}.") + endif(LIBGTEST_DEV_DIR) + find_path(GTEST_INCLUDE_DIRS NAMES gtest/gtest.h PATHS ${GTEST_DIR}/include) + else(GTEST_DIR) + find_path(LIBGTEST_DEV_DIR NAMES src/gtest-all.cc PATHS /usr/src/gtest /opt/local/src/gtest-1.7.0) + find_path(GTEST_INCLUDE_DIRS NAMES gtest/gtest.h PATHS /usr/include /opt/local/src/gtest-1.7.0/include) + if(LIBGTEST_DEV_DIR) + message (STATUS "Googletest (libgtest-dev package) has been found.") + else(LIBGTEST_DEV_DIR) + message (STATUS " Googletest has not been found.") + message (STATUS " Googletest will be downloaded and built automatically ") + message (STATUS " when doing 'make'. ") + endif(LIBGTEST_DEV_DIR) + endif(GTEST_DIR) +endif(ENABLE_UNIT_TESTING OR ENABLE_SYSTEM_TESTING) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 368063869..fbce5e499 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -19,5 +19,7 @@ add_subdirectory(algorithms) add_subdirectory(core) 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) diff --git a/src/tests/CMakeLists.txt b/src/tests/CMakeLists.txt index 0838dc879..d755ef93a 100644 --- a/src/tests/CMakeLists.txt +++ b/src/tests/CMakeLists.txt @@ -164,14 +164,14 @@ endif(ENABLE_CUDA) 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 $ ${CMAKE_SOURCE_DIR}/install/$) -target_link_libraries(run_tests ${CLANG_FLAGS} + target_link_libraries(run_tests ${CLANG_FLAGS} ${Boost_LIBRARIES} ${GFLAGS_LIBS} ${GLOG_LIBRARIES} @@ -191,8 +191,8 @@ target_link_libraries(run_tests ${CLANG_FLAGS} pvt_gr_blocks ${VOLK_GNSSSDR_LIBRARIES} ${ORC_LIBRARIES} ${GNSS_SDR_TEST_OPTIONAL_LIBS} -) - + ) +endif(ENABLE_UNIT_TESTING) ######################################################### # Adding Tests to Ctest @@ -375,21 +375,30 @@ add_dependencies(check control_thread_test flowgraph_test gnss_block_test # Addition of System Tests -add_executable(ttff - ${CMAKE_CURRENT_SOURCE_DIR}/system-tests/ttff_gps_l1.cc ) -if(NOT ${GTEST_DIR_LOCAL}) - add_dependencies(ttff gtest-${gtest_RELEASE}) -else(NOT ${GTEST_DIR_LOCAL}) - add_dependencies(ttff gtest) -endif(NOT ${GTEST_DIR_LOCAL}) -target_link_libraries(ttff - ${Boost_LIBRARIES} - ${GFLAGS_LIBS} - ${GLOG_LIBRARIES} - ${GTEST_LIBRARIES} - gnss_rx -) -add_custom_command(TARGET ttff POST_BUILD - COMMAND ${CMAKE_COMMAND} -E copy $ - ${CMAKE_SOURCE_DIR}/install/$ -) +if(ENABLE_SYSTEM_TESTING) + add_executable(ttff + ${CMAKE_CURRENT_SOURCE_DIR}/system-tests/ttff_gps_l1.cc ) + if(NOT ${GTEST_DIR_LOCAL}) + add_dependencies(ttff gtest-${gtest_RELEASE}) + else(NOT ${GTEST_DIR_LOCAL}) + add_dependencies(ttff gtest) + endif(NOT ${GTEST_DIR_LOCAL}) + target_link_libraries(ttff + ${Boost_LIBRARIES} + ${GFLAGS_LIBS} + ${GLOG_LIBRARIES} + ${GTEST_LIBRARIES} + ${GNURADIO_RUNTIME_LIBRARIES} + ${GNURADIO_BLOCKS_LIBRARIES} + ${GNURADIO_FILTER_LIBRARIES} + ${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 $ + ${CMAKE_SOURCE_DIR}/install/$ + ) +endif(ENABLE_SYSTEM_TESTING) \ No newline at end of file