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 50 51 52 53 54 55 56 57 58 59 60 61
|
configure_file(
"${PROJECT_SOURCE_DIR}/cmake/CTestCustom.cmake"
"${PROJECT_BINARY_DIR}/CTestCustom.cmake"
COPYONLY)
add_executable(frozen.tests "")
target_link_libraries(frozen.tests PUBLIC frozen::frozen)
target_sources(frozen.tests PRIVATE
${CMAKE_CURRENT_LIST_DIR}/bench.hpp
${CMAKE_CURRENT_LIST_DIR}/catch.hpp
${CMAKE_CURRENT_LIST_DIR}/test_algorithms.cpp
${CMAKE_CURRENT_LIST_DIR}/test_elsa_std.cpp
${CMAKE_CURRENT_LIST_DIR}/test_main.cpp
${CMAKE_CURRENT_LIST_DIR}/test_map.cpp
${CMAKE_CURRENT_LIST_DIR}/test_rand.cpp
${CMAKE_CURRENT_LIST_DIR}/test_set.cpp
${CMAKE_CURRENT_LIST_DIR}/test_str.cpp
${CMAKE_CURRENT_LIST_DIR}/test_str_set.cpp
${CMAKE_CURRENT_LIST_DIR}/test_unordered_map.cpp
${CMAKE_CURRENT_LIST_DIR}/test_unordered_map_str.cpp
${CMAKE_CURRENT_LIST_DIR}/test_unordered_set.cpp
${CMAKE_CURRENT_LIST_DIR}/test_unordered_str_set.cpp)
string(CONCAT generator
# msvc gives invalid integral overflow warning for unsigned type
"$<$<CXX_COMPILER_ID:MSVC>:/W3;/WX;/wd4307>"
"$<$<OR:$<CXX_COMPILER_ID:GNU>"
",$<CXX_COMPILER_ID:Clang>"
",$<CXX_COMPILER_ID:AppleClang>>"
":-Wall;-Wextra;-Wpedantic;-Wshadow;"
"$<$<BOOL:${frozen.coverage}>:--coverage>>"
"$<$<CXX_COMPILER_ID:Intel>:"
"$<$<PLATFORM_ID:Windows>:/W3;/WX;>"
"$<$<NOT:$<PLATFORM_ID:Windows>>:-Wall;-Werror>>")
target_compile_options(frozen.tests PUBLIC ${generator})
if(cxx_20_supported)
target_compile_features(frozen.tests PUBLIC cxx_std_20)
elseif(cxx_17_supported)
target_compile_features(frozen.tests PUBLIC cxx_std_17)
endif()
string(CONCAT generator
"$<$<OR:$<CXX_COMPILER_ID:GNU>"
",$<CXX_COMPILER_ID:Clang>"
",$<CXX_COMPILER_ID:AppleClang>>"
":$<$<BOOL:${frozen.coverage}>:--coverage>>")
target_link_libraries(frozen.tests PUBLIC ${generator})
add_test(NAME frozen.tests COMMAND frozen.tests)
add_executable(test_no_expections
${CMAKE_CURRENT_LIST_DIR}/no_exceptions.cpp)
target_link_libraries(test_no_expections PUBLIC frozen::frozen)
target_compile_options(test_no_expections PUBLIC "-fno-exceptions")
add_test(no_exceptions test_no_expections)
set_tests_properties(no_exceptions PROPERTIES WILL_FAIL TRUE)
|