Merge "Remove explicit paths from cmake add_test() calls."
[alexxy/gromacs.git] / src / testutils / TestMacros.cmake
1 function (add_gtest_test NAME EXENAME)
2     if (GTEST_FOUND AND BUILD_TESTING)
3         include_directories(${GTEST_INCLUDE_DIRS})
4         add_executable(${EXENAME} ${ARGN} ${TESTUTILS_DIR}/test_main_gtest.cpp)
5         target_link_libraries(${EXENAME} libgromacs ${TESTUTILS_LIBS} ${GTEST_LIBRARIES})
6         get_target_property(DEFS ${EXENAME} COMPILE_DEFINITIONS)
7         if (NOT DEFS)
8             set(DEFS)
9         endif ()
10         list(APPEND DEFS TEST_DATA_PATH="${CMAKE_CURRENT_SOURCE_DIR}")
11         set_target_properties(${EXENAME} PROPERTIES COMPILE_DEFINITIONS ${DEFS})
12         add_test(NAME ${NAME}
13                  COMMAND ${EXENAME})
14     endif ()
15 endfunction ()
16
17 function (add_gmock_test NAME EXENAME)
18     if (GMOCK_FOUND AND BUILD_TESTING)
19         include_directories(${GMOCK_INCLUDE_DIRS})
20         add_executable(${EXENAME} ${ARGN} ${TESTUTILS_DIR}/test_main_gmock.cpp)
21         target_link_libraries(${EXENAME} libgromacs ${TESTUTILS_LIBS} ${GMOCK_LIBRARIES})
22         get_target_property(DEFS ${EXENAME} COMPILE_DEFINITIONS)
23         if (NOT DEFS)
24             set(DEFS)
25         endif ()
26         list(APPEND DEFS TEST_DATA_PATH="${CMAKE_CURRENT_SOURCE_DIR}")
27         set_target_properties(${EXENAME} PROPERTIES COMPILE_DEFINITIONS ${DEFS})
28         add_test(NAME ${NAME}
29                  COMMAND ${EXENAME})
30     endif ()
31 endfunction ()
32
33 function (add_gtest_or_gmock_test NAME EXENAME)
34     if (GTEST_FOUND AND BUILD_TESTING)
35         set(_outvar GTEST_SOURCES)
36         foreach(_source IN ITEMS ${ARGN})
37             if (_source STREQUAL GMOCK_ONLY)
38                 set(_outvar GMOCK_SOURCES)
39             else ()
40                 list(APPEND ${_outvar} ${_source})
41             endif ()
42         endforeach()
43         if (GMOCK_FOUND)
44             set(SOURCES ${GTEST_SOURCES} ${GMOCK_SOURCES})
45             add_gmock_test(${NAME} ${EXENAME} ${SOURCES})
46         else ()
47             add_gtest_test(${NAME} ${EXENAME} ${GTEST_SOURCES})
48         endif ()
49     endif ()
50 endfunction ()