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

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

mercurial