1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
###############
### TESTING ###
###############

if(Tomato_BUILD_TESTING)

    include(../cmake/gtest.cmake)

    enable_testing ()

    # Threads are needed for testing
    find_package (Threads REQUIRED)
    target_link_libraries(gtest ${CMAKE_THREAD_LIBS_INIT})

    # Test executable
    file(GLOB_RECURSE TESTS_FILES ${PROJECT_SOURCE_DIR}/tests/*.c* ${PROJECT_SOURCE_DIR}/tests/*.h* ${PROJECT_SOURCE_DIR}/tests/*.t*)
    #message("TESTS_FILES:" ${TESTS_FILES})

    add_executable(TomatoTests ${TESTS_FILES})
    target_link_libraries (TomatoTests PUBLIC gtest)
    target_link_libraries (TomatoTests PUBLIC ${OxSmolli2_LIBS_TO_LINK})
    #add_dependencies(TomatoTests TomatoLib)

    add_test(NAME ctest_tests COMMAND TomatoTests)

    file(COPY testData DESTINATION ${CMAKE_CURRENT_BINARY_DIR})
    file(GLOB_RECURSE TESTDATA ${PROJECT_SOURCE_DIR}/tests/testData/*.*)

    install (TARGETS TomatoTests DESTINATION ${CMAKE_INSTALL_PREFIX}/tests)
    # install (FILES ${TESTDATA} DESTINATION ${CMAKE_INSTALL_PREFIX}/tests/testData/)
    install (DIRECTORY ${PROJECT_SOURCE_DIR}/tests/testData/ DESTINATION ${CMAKE_INSTALL_PREFIX}/tests/testData)

    ########################
    ### TESTING COVERAGE ###
    ########################

    # Compiler flags for coveralls, only in linux
    if (UNIX AND NOT APPLE)
        set (CMAKE_CXX_FLAGS "-fprofile-arcs -ftest-coverage")
    endif(UNIX AND NOT APPLE)

    # Coveralls
    SET(COVERAGE OFF CACHE BOOL "Coverage")
    if (COVERAGE)
        target_compile_options(TomatoTests PRIVATE --coverage)
        target_link_libraries(TomatoTests PRIVATE --coverage)
    endif()

endif(Tomato_BUILD_TESTING)