test/CMakeLists.txt

Fri, 15 Apr 2022 21:28:51 +0200

author
Mike Becker <universe@uap-core.de>
date
Fri, 15 Apr 2022 21:28:51 +0200
changeset 510
133ac0f8f3fc
parent 427
ec92b4ed23aa
child 511
a32e6a6b1ca7
permissions
-rw-r--r--

add googletest framework

     1 # Transitional support for CTest written tests
     2 message(CHECK_START "Searching for CUnit test framework")
     4 find_path(CUNIT_INCLUDE_DIR NAMES CUnit/CUnit.h)
     5 find_library(CUNIT_LIBRARY NAMES cunit libcunit cunitlib)
     6 include(FindPackageHandleStandardArgs)
     7 find_package_handle_standard_args(CUnit DEFAULT_MSG CUNIT_LIBRARY CUNIT_INCLUDE_DIR)
     9 if (CUNIT_FOUND)
    10     message(CHECK_PASS "found: compiling tests.")
    11     set(TESTS
    12             test_allocator
    13             test_list
    14             test_tree
    15     )
    17     foreach (test ${TESTS})
    18         add_executable(${test} ${test}.c)
    19         target_link_libraries(${test} PRIVATE ucx_static ${CUNIT_LIBRARY})
    20         target_include_directories(${test} PRIVATE ${CUNIT_INCLUDE_DIR})
    21         add_test(NAME ${test} COMMAND ${test} WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}")
    22     endforeach ()
    23 else ()
    24     message(CHECK_FAIL "not found: CUnit tests will not be available.")
    25 endif ()
    27 # Load Google Test Framework
    28 set(CMAKE_CXX_STANDARD 11)
    30 include(FetchContent)
    31 FetchContent_Declare(
    32         googletest
    33         GIT_REPOSITORY https://github.com/google/googletest.git
    34         GIT_TAG e2239ee6043f73722e7aa812a459f54a28552929 # release 1.11.0
    35 )
    36 # For Windows: Prevent overriding the parent project's compiler/linker settings
    37 set(gtest_force_shared_crt ON CACHE BOOL "" FORCE)
    38 FetchContent_MakeAvailable(googletest)
    39 include(GoogleTest)
    40 message(STATUS "Google Test made available")
    42 set(TESTS
    43         selftest
    44         )
    45 foreach (test ${TESTS})
    46     add_executable(${test} ${test}.cpp)
    47     target_link_libraries(${test} PRIVATE ucx_static gtest_main)
    48 endforeach ()
    49 gtest_discover_tests(${TESTS})

mercurial