mirror of
https://github.com/catchorg/Catch2.git
synced 2024-12-23 11:43:29 +01:00
a1be19aa1b
Thanks to the changes to compilation model, the tests for benchmarking macros have been made part of the normal test run. This means that the only purpose these separately compiled tests served was to waste CI time.
158 lines
5.9 KiB
CMake
158 lines
5.9 KiB
CMake
#
|
|
# Build extra tests.
|
|
#
|
|
|
|
cmake_minimum_required( VERSION 3.5 )
|
|
|
|
project( Catch2ExtraTests LANGUAGES CXX )
|
|
|
|
message( STATUS "Extra tests included" )
|
|
|
|
# define folders used:
|
|
set( TESTS_DIR ${CATCH_DIR}/tests/ExtraTests )
|
|
|
|
add_executable(PrefixedMacros ${TESTS_DIR}/X01-PrefixedMacros.cpp)
|
|
target_compile_definitions( PrefixedMacros PRIVATE CATCH_CONFIG_PREFIX_ALL CATCH_CONFIG_RUNTIME_STATIC_REQUIRE )
|
|
# Macro configuration does not touch the compiled parts, so we can link
|
|
# it against the main library
|
|
target_link_libraries( PrefixedMacros Catch2 )
|
|
|
|
add_test(NAME CATCH_CONFIG_PREFIX_ALL COMMAND PrefixedMacros -s)
|
|
set_tests_properties(
|
|
CATCH_CONFIG_PREFIX_ALL
|
|
PROPERTIES
|
|
PASS_REGULAR_EXPRESSION "CATCH_"
|
|
FAIL_REGULAR_EXPRESSION
|
|
# The spaces are important -> They disambiguate between CATCH_REQUIRE
|
|
# and REQUIRE without prefix.
|
|
" REQUIRE; REQUIRE_FALSE; REQUIRE_THROWS; REQUIRE_THROWS_AS; REQUIRE_THROWS_WITH; REQUIRE_THROWS_MATCHES; REQUIRE_NOTHROW; CHECK; CHECK_FALSE; CHECKED_IF; CHECKED_ELSE; CHECK_NOFAIL; CHECK_THROWS; CHECK_THROWS_AS; CHECK_THROWS_WITH; CHECK_THROWS_MATCHES; CHECK_NOTHROW; REQUIRE_THAT; CHECK_THAT"
|
|
)
|
|
|
|
|
|
add_executable(DisabledMacros ${TESTS_DIR}/X02-DisabledMacros.cpp)
|
|
target_compile_definitions( DisabledMacros PRIVATE CATCH_CONFIG_DISABLE )
|
|
# Macro configuration does not touch the compiled parts, so we can link
|
|
# it against the main library
|
|
target_link_libraries( DisabledMacros Catch2 )
|
|
|
|
add_test(NAME CATCH_CONFIG_DISABLE-1 COMMAND DisabledMacros -s)
|
|
set_tests_properties(
|
|
CATCH_CONFIG_DISABLE-1
|
|
PROPERTIES
|
|
PASS_REGULAR_EXPRESSION "No tests ran"
|
|
FAIL_REGULAR_EXPRESSION "This should not happen"
|
|
)
|
|
add_test(NAME CATCH_CONFIG_DISABLE-2 COMMAND DisabledMacros --list-tests)
|
|
set_tests_properties(
|
|
CATCH_CONFIG_DISABLE-2
|
|
PROPERTIES
|
|
PASS_REGULAR_EXPRESSION "0 test cases"
|
|
)
|
|
|
|
add_executable( DisabledExceptions-DefaultHandler ${TESTS_DIR}/X03-DisabledExceptions-DefaultHandler.cpp )
|
|
add_executable( DisabledExceptions-CustomHandler ${TESTS_DIR}/X04-DisabledExceptions-CustomHandler.cpp )
|
|
|
|
foreach(target DisabledExceptions-DefaultHandler DisabledExceptions-CustomHandler)
|
|
target_compile_options( ${target}
|
|
PUBLIC
|
|
$<$<CXX_COMPILER_ID:MSVC>:/EHs-c-;/D_HAS_EXCEPTIONS=0>
|
|
$<$<OR:$<CXX_COMPILER_ID:Clang>,$<CXX_COMPILER_ID:GNU>,$<CXX_COMPILER_ID:AppleClang>>:-fno-exceptions>
|
|
)
|
|
target_link_libraries(${target} Catch2_buildall_interface)
|
|
endforeach()
|
|
target_compile_definitions( DisabledExceptions-CustomHandler PUBLIC CATCH_CONFIG_DISABLE_EXCEPTIONS_CUSTOM_HANDLER )
|
|
|
|
|
|
add_test(NAME CATCH_CONFIG_DISABLE_EXCEPTIONS-1 COMMAND DisabledExceptions-DefaultHandler "Tests that run")
|
|
set_tests_properties(
|
|
CATCH_CONFIG_DISABLE_EXCEPTIONS-1
|
|
PROPERTIES
|
|
PASS_REGULAR_EXPRESSION "assertions: 4 \| 2 passed \| 2 failed"
|
|
FAIL_REGULAR_EXPRESSION "abort;terminate;fatal"
|
|
)
|
|
|
|
add_test(NAME CATCH_CONFIG_DISABLE_EXCEPTIONS-2 COMMAND DisabledExceptions-DefaultHandler "Tests that abort")
|
|
set_tests_properties(
|
|
CATCH_CONFIG_DISABLE_EXCEPTIONS-2
|
|
PROPERTIES
|
|
PASS_REGULAR_EXPRESSION "Catch will terminate"
|
|
)
|
|
|
|
add_test(NAME CATCH_CONFIG_DISABLE_EXCEPTIONS-3 COMMAND DisabledExceptions-CustomHandler "Tests that run")
|
|
set_tests_properties(
|
|
CATCH_CONFIG_DISABLE_EXCEPTIONS-3
|
|
PROPERTIES
|
|
PASS_REGULAR_EXPRESSION "assertions: 4 \| 2 passed \| 2 failed"
|
|
FAIL_REGULAR_EXPRESSION "====== CUSTOM HANDLER ======"
|
|
)
|
|
|
|
add_test(NAME CATCH_CONFIG_DISABLE_EXCEPTIONS-4 COMMAND DisabledExceptions-CustomHandler "Tests that abort")
|
|
set_tests_properties(
|
|
CATCH_CONFIG_DISABLE_EXCEPTIONS-4
|
|
PROPERTIES
|
|
PASS_REGULAR_EXPRESSION "====== CUSTOM HANDLER ======"
|
|
)
|
|
|
|
|
|
|
|
add_executable(FallbackStringifier ${TESTS_DIR}/X10-FallbackStringifier.cpp)
|
|
target_compile_definitions( FallbackStringifier PRIVATE CATCH_CONFIG_FALLBACK_STRINGIFIER=fallbackStringifier )
|
|
target_link_libraries( FallbackStringifier Catch2 )
|
|
|
|
add_test(NAME FallbackStringifier COMMAND FallbackStringifier -r compact -s)
|
|
set_tests_properties(
|
|
FallbackStringifier
|
|
PROPERTIES
|
|
PASS_REGULAR_EXPRESSION "foo{} for: { !!! }"
|
|
)
|
|
|
|
|
|
add_executable(DisableStringification ${TESTS_DIR}/X11-DisableStringification.cpp)
|
|
target_compile_definitions( DisableStringification PRIVATE CATCH_CONFIG_DISABLE_STRINGIFICATION )
|
|
target_link_libraries(DisableStringification Catch2)
|
|
add_test(NAME CATCH_CONFIG_DISABLE_STRINGIFICATION COMMAND DisableStringification -r compact -s)
|
|
set_tests_properties(
|
|
CATCH_CONFIG_DISABLE_STRINGIFICATION
|
|
PROPERTIES
|
|
PASS_REGULAR_EXPRESSION "Disabled by CATCH_CONFIG_DISABLE_STRINGIFICATION"
|
|
FAIL_REGULAR_EXPRESSION "Hidden{} == Hidden{}"
|
|
)
|
|
|
|
|
|
# This test touches windows.h, so it should only be compiled under msvc
|
|
if (MSVC)
|
|
# This test fails if it does not compile and succeeds otherwise
|
|
add_executable(WindowsHeader ${TESTS_DIR}/X90-WindowsHeaderInclusion.cpp)
|
|
set_property( TARGET WindowsHeader PROPERTY CXX_STANDARD 14 )
|
|
set_property( TARGET WindowsHeader PROPERTY CXX_STANDARD_REQUIRED ON )
|
|
set_property( TARGET WindowsHeader PROPERTY CXX_EXTENSIONS OFF )
|
|
target_link_libraries( WindowsHeader Catch2 )
|
|
add_test(NAME WindowsHeader COMMAND WindowsHeader -r compact)
|
|
endif()
|
|
|
|
#add_executable(DebugBreakMacros ${TESTS_DIR}/X12-CustomDebugBreakMacro.cpp)
|
|
#target_link_libraries(DebugBreakMacros Catch2)
|
|
#add_test(NAME DebugBreakMacros COMMAND DebugBreakMacros --break)
|
|
#set_tests_properties(
|
|
# DebugBreakMacros
|
|
# PROPERTIES
|
|
# PASS_REGULAR_EXPRESSION "Pretty please, break into debugger"
|
|
#)
|
|
|
|
set( EXTRA_TEST_BINARIES
|
|
PrefixedMacros
|
|
DisabledMacros
|
|
DisabledExceptions-DefaultHandler
|
|
DisabledExceptions-CustomHandler
|
|
FallbackStringifier
|
|
DisableStringification
|
|
# DebugBreakMacros
|
|
)
|
|
|
|
# Shared config
|
|
foreach( test ${EXTRA_TEST_BINARIES} )
|
|
set_property( TARGET ${test} PROPERTY CXX_STANDARD 14 )
|
|
set_property( TARGET ${test} PROPERTY CXX_STANDARD_REQUIRED ON )
|
|
set_property( TARGET ${test} PROPERTY CXX_EXTENSIONS OFF )
|
|
endforeach()
|