| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526 | 
							- #
 
- # Build extra tests.
 
- #
 
- cmake_minimum_required( VERSION 3.10 )
 
- project( Catch2ExtraTests LANGUAGES CXX )
 
- message( STATUS "Extra tests included" )
 
- add_test(
 
-   NAME TestShardingIntegration
 
-   COMMAND ${PYTHON_EXECUTABLE} ${CATCH_DIR}/tests/TestScripts/testSharding.py $<TARGET_FILE:SelfTest>
 
- )
 
- set_tests_properties(TestShardingIntegration
 
-   PROPERTIES
 
-     LABELS "uses-python"
 
- )
 
- add_test(
 
-   NAME TestSharding::OverlyLargeShardIndex
 
-   COMMAND $<TARGET_FILE:SelfTest>  --shard-index 5 --shard-count 5
 
- )
 
- set_tests_properties(
 
-     TestSharding::OverlyLargeShardIndex
 
-   PROPERTIES
 
-     PASS_REGULAR_EXPRESSION "The shard count \\(5\\) must be greater than the shard index \\(5\\)"
 
- )
 
- # The MinDuration reporting tests do not need separate compilation, but
 
- # they have non-trivial execution time, so they are categorized as
 
- # extra tests, so that they are run less.
 
- add_test(NAME MinDuration::SimpleThreshold COMMAND $<TARGET_FILE:SelfTest> --min-duration 0.950 [min_duration_test])
 
- set_tests_properties(
 
-     MinDuration::SimpleThreshold
 
-   PROPERTIES
 
-     PASS_REGULAR_EXPRESSION "s: sleep_for_1000ms"
 
-     FAIL_REGULAR_EXPRESSION "sleep_for_100ms"
 
-     RUN_SERIAL ON  # The test is timing sensitive, so we want to run it
 
-     # serially to avoid false positives on oversubscribed machines
 
- )
 
- # -d yes overrides the threshold, so we should see the faster test even
 
- # with a ridiculous high min duration threshold
 
- add_test(NAME MinDuration::DurationOverrideYes COMMAND $<TARGET_FILE:SelfTest> --min-duration 1.0 -d yes [min_duration_test])
 
- set_tests_properties(
 
-     MinDuration::DurationOverrideYes
 
-   PROPERTIES
 
-     PASS_REGULAR_EXPRESSION "s: sleep_for_100ms"
 
- )
 
- # -d no overrides the threshold, so we should never see any tests even
 
- # with ridiculously low min duration threshold
 
- add_test(NAME MinDuration::DurationOverrideNo COMMAND $<TARGET_FILE:SelfTest> --min-duration 0.0001 -d no [min_duration_test])
 
- set_tests_properties(
 
-     MinDuration::DurationOverrideNo
 
-   PROPERTIES
 
-     FAIL_REGULAR_EXPRESSION "sleep_for_250ms"
 
- )
 
- # ------------ end of duration reporting tests
 
- # 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 Catch2WithMain )
 
- 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 Catch2WithMain )
 
- 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_executable( BazelReporter ${TESTS_DIR}/X30-BazelReporter.cpp )
 
- target_compile_definitions( BazelReporter PRIVATE CATCH_CONFIG_BAZEL_SUPPORT )
 
- target_link_libraries(BazelReporter Catch2_buildall_interface)
 
- add_test(NAME CATCH_CONFIG_BAZEL_REPORTER-1
 
-   COMMAND
 
-   "${PYTHON_EXECUTABLE}" "${CATCH_DIR}/tests/TestScripts/testBazelReporter.py" $<TARGET_FILE:BazelReporter> "${CMAKE_CURRENT_BINARY_DIR}"
 
- )
 
- set_tests_properties(CATCH_CONFIG_BAZEL_REPORTER-1
 
-   PROPERTIES
 
-     LABELS "uses-python"
 
- )
 
- # We must now test this works without the build flag.
 
- add_executable( BazelReporterNoCatchConfig ${TESTS_DIR}/X30-BazelReporter.cpp )
 
- target_link_libraries(BazelReporterNoCatchConfig Catch2WithMain)
 
- add_test(NAME NO_CATCH_CONFIG_BAZEL_REPORTER-1
 
-   COMMAND
 
-   "${PYTHON_EXECUTABLE}" "${CATCH_DIR}/tests/TestScripts/testBazelReporter.py" $<TARGET_FILE:BazelReporterNoCatchConfig> "${CMAKE_CURRENT_BINARY_DIR}"
 
- )
 
- set_tests_properties(NO_CATCH_CONFIG_BAZEL_REPORTER-1
 
-   PROPERTIES
 
-     LABELS "uses-python"
 
-     ENVIRONMENT "BAZEL_TEST=1"
 
- )
 
- # The default handler on Windows leads to the just-in-time debugger firing,
 
- # which makes this test unsuitable for CI and headless runs, as it opens
 
- # up an interactive dialog.
 
- if (NOT WIN32)
 
-   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"
 
-   )
 
- endif(NOT WIN32)
 
- 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(DeferredStaticChecks ${TESTS_DIR}/X05-DeferredStaticChecks.cpp)
 
- target_link_libraries(DeferredStaticChecks PRIVATE Catch2WithMain)
 
- target_compile_definitions(DeferredStaticChecks PRIVATE "CATCH_CONFIG_RUNTIME_STATIC_REQUIRE")
 
- add_test(NAME DeferredStaticChecks COMMAND DeferredStaticChecks -r compact)
 
- set_tests_properties(
 
-     DeferredStaticChecks
 
-   PROPERTIES
 
-     PASS_REGULAR_EXPRESSION "Failed 1 test case, failed all 3 assertions."
 
- )
 
- add_executable(FallbackStringifier ${TESTS_DIR}/X10-FallbackStringifier.cpp)
 
- target_compile_definitions( FallbackStringifier PRIVATE CATCH_CONFIG_FALLBACK_STRINGIFIER=fallbackStringifier )
 
- target_link_libraries( FallbackStringifier Catch2WithMain )
 
- 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 Catch2WithMain)
 
- 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 Catch2WithMain )
 
-     add_test(NAME WindowsHeader COMMAND WindowsHeader -r compact)
 
-     list(APPEND CATCH_WARNING_TARGETS ${EXTRA_TEST_BINARIES} WindowsHeader)
 
- endif()
 
- add_executable(PartialTestCaseEvents ${TESTS_DIR}/X21-PartialTestCaseEvents.cpp)
 
- target_link_libraries(PartialTestCaseEvents PRIVATE Catch2WithMain)
 
- add_test(
 
-   NAME PartialTestCaseEvents
 
-   COMMAND ${PYTHON_EXECUTABLE} ${CATCH_DIR}/tests/TestScripts/testPartialTestCaseEvent.py $<TARGET_FILE:PartialTestCaseEvents>
 
- )
 
- set_tests_properties(PartialTestCaseEvents
 
-   PROPERTIES
 
-     LABELS "uses-python"
 
- )
 
- add_executable(BenchmarksInCumulativeReporter ${TESTS_DIR}/X22-BenchmarksInCumulativeReporter.cpp)
 
- target_link_libraries(BenchmarksInCumulativeReporter PRIVATE Catch2::Catch2WithMain)
 
- add_test(
 
-   NAME BenchmarksInCumulativeReporter
 
-   COMMAND BenchmarksInCumulativeReporter --reporter testReporter
 
- )
 
- set_tests_properties(
 
-     BenchmarksInCumulativeReporter
 
-   PROPERTIES
 
-     PASS_REGULAR_EXPRESSION "1\n2\n3\n4\n5\n"
 
- )
 
- add_executable(CasingInReporterNames ${TESTS_DIR}/X23-CasingInReporterNames.cpp)
 
- target_link_libraries(CasingInReporterNames PRIVATE Catch2::Catch2WithMain)
 
- add_test(
 
-   NAME Reporters::registration-is-case-preserving
 
-   COMMAND CasingInReporterNames --list-reporters
 
- )
 
- set_tests_properties(
 
-     Reporters::registration-is-case-preserving
 
-   PROPERTIES
 
-     PASS_REGULAR_EXPRESSION "testReporterCASED"
 
- )
 
- add_test(
 
-   NAME Reporters::selection-is-case-insensitive
 
-   COMMAND  CasingInReporterNames -r testReportercased
 
- )
 
- set_tests_properties(
 
-     Reporters::selection-is-case-insensitive
 
-   PROPERTIES
 
-     PASS_REGULAR_EXPRESSION "TestReporter constructed"
 
- )
 
- add_executable(CapturedStdoutInTestCaseEvents ${TESTS_DIR}/X27-CapturedStdoutInTestCaseEvents.cpp)
 
- target_link_libraries(CapturedStdoutInTestCaseEvents PRIVATE Catch2::Catch2WithMain)
 
- add_test(
 
-   NAME Reporters::CapturedStdOutInEvents
 
-   COMMAND CapturedStdoutInTestCaseEvents
 
-     --reporter test-reporter
 
- )
 
- set_tests_properties(
 
-     Reporters::CapturedStdOutInEvents
 
-   PROPERTIES
 
-     PASS_REGULAR_EXPRESSION "X27 - TestReporter constructed"
 
-     FAIL_REGULAR_EXPRESSION "X27 ERROR"
 
- )
 
- if (MSVC)
 
-   set(_NullFile "NUL")
 
- else()
 
-   set(_NullFile "/dev/null")
 
- endif()
 
- add_executable(ListenerStdoutCaptureInMultireporter ${TESTS_DIR}/X24-ListenerStdoutCaptureInMultireporter.cpp)
 
- target_link_libraries(ListenerStdoutCaptureInMultireporter PRIVATE Catch2::Catch2WithMain)
 
- # This test checks that there is nothing written out from the process,
 
- # but if CMake is running the tests under Valgrind or similar tool, then
 
- # that will write its own output to stdout and the test would fail.
 
- if (NOT MEMORYCHECK_COMMAND)
 
-   add_test(
 
-     NAME MultiReporter::NoncapturingListenerDoesntCauseStdoutPassThrough
 
-     COMMAND ListenerStdoutCaptureInMultireporter
 
-       --reporter xml::out=${_NullFile}
 
-       --reporter junit::out=${_NullFile}
 
-   )
 
-   set_tests_properties(
 
-       MultiReporter::NoncapturingListenerDoesntCauseStdoutPassThrough
 
-     PROPERTIES
 
-       PASS_REGULAR_EXPRESSION "X24 - NonCapturingListener initialized"
 
-       FAIL_REGULAR_EXPRESSION "X24 - FooBarBaz"
 
-   )
 
- endif()
 
- add_executable(ListenerCanAskForCapturedStdout ${TESTS_DIR}/X25-ListenerCanAskForCapturedStdout.cpp)
 
- target_link_libraries(ListenerCanAskForCapturedStdout PRIVATE Catch2::Catch2WithMain)
 
- add_test(
 
-   NAME MultiReporter::CapturingListenerCausesStdoutCapture
 
-   COMMAND ListenerCanAskForCapturedStdout
 
-     --reporter compact::out=${_NullFile}
 
-     --reporter console::out=${_NullFile}
 
- )
 
- set_tests_properties(
 
-     MultiReporter::CapturingListenerCausesStdoutCapture
 
-   PROPERTIES
 
-     PASS_REGULAR_EXPRESSION "CapturingListener initialized"
 
-     FAIL_REGULAR_EXPRESSION "X25 - ERROR"
 
- )
 
- add_executable(ReporterPreferencesForPassingAssertionsIsRespected ${TESTS_DIR}/X26-ReporterPreferencesForPassingAssertionsIsRespected.cpp)
 
- target_link_libraries(ReporterPreferencesForPassingAssertionsIsRespected PRIVATE Catch2::Catch2WithMain)
 
- add_test(
 
-   NAME Reporters::PreferencesForPassingAssertionsIsRespected
 
-   COMMAND ReporterPreferencesForPassingAssertionsIsRespected
 
-     --reporter test-reporter
 
- )
 
- set_tests_properties(
 
-     Reporters::PreferencesForPassingAssertionsIsRespected
 
-   PROPERTIES
 
-     PASS_REGULAR_EXPRESSION "X26 - TestReporter constructed"
 
-     FAIL_REGULAR_EXPRESSION "X26 - assertionEnded"
 
- )
 
- add_test(
 
-   NAME MultiReporter::PreferencesForPassingAssertionsIsRespected
 
-   COMMAND ReporterPreferencesForPassingAssertionsIsRespected
 
-     --reporter test-reporter
 
-     --reporter console::out=${_NullFile}
 
- )
 
- set_tests_properties(
 
-     MultiReporter::PreferencesForPassingAssertionsIsRespected
 
-   PROPERTIES
 
-     PASS_REGULAR_EXPRESSION "X26 - TestReporter constructed"
 
-     FAIL_REGULAR_EXPRESSION "X26 - assertionEnded"
 
- )
 
- add_executable(ListenersGetEventsBeforeReporters ${TESTS_DIR}/X28-ListenersGetEventsBeforeReporters.cpp)
 
- target_link_libraries(ListenersGetEventsBeforeReporters PRIVATE Catch2::Catch2WithMain)
 
- add_test(
 
-   NAME ListenersGetEventsBeforeReporters
 
-   COMMAND ListenersGetEventsBeforeReporters --reporter test-reporter
 
- )
 
- set_tests_properties(
 
-     ListenersGetEventsBeforeReporters
 
-   PROPERTIES
 
-     PASS_REGULAR_EXPRESSION "X28 - TestReporter constructed"
 
-     FAIL_REGULAR_EXPRESSION "X28 - ERROR"
 
- )
 
- add_executable(CustomArgumentsForReporters ${TESTS_DIR}/X29-CustomArgumentsForReporters.cpp)
 
- target_link_libraries(CustomArgumentsForReporters PRIVATE Catch2::Catch2WithMain)
 
- add_test(
 
-   NAME CustomArgumentsForReporters
 
-   COMMAND CustomArgumentsForReporters
 
-     --reporter "test-reporter::Xa b=c 1::Xz:e = 1234"
 
- )
 
- set_tests_properties(
 
-     CustomArgumentsForReporters
 
-   PROPERTIES
 
-     PASS_REGULAR_EXPRESSION "Xa b=c 1::Xz:e = 1234"
 
- )
 
- add_executable(DuplicatedTestCases-SameNameAndTags ${TESTS_DIR}/X31-DuplicatedTestCases.cpp)
 
- target_link_libraries(DuplicatedTestCases-SameNameAndTags PRIVATE Catch2::Catch2WithMain)
 
- add_test(
 
-   NAME DuplicatedTestCases::SameNameAndTags
 
-   COMMAND $<TARGET_FILE:DuplicatedTestCases-SameNameAndTags>
 
- )
 
- set_tests_properties(
 
-     DuplicatedTestCases::SameNameAndTags
 
-   PROPERTIES
 
-      PASS_REGULAR_EXPRESSION "error: .* already defined\\."
 
- )
 
- add_executable(DuplicatedTestCases-SameNameDifferentTags ${TESTS_DIR}/X32-DuplicatedTestCasesDifferentTags.cpp)
 
- target_link_libraries(DuplicatedTestCases-SameNameDifferentTags PRIVATE Catch2::Catch2WithMain)
 
- add_test(
 
-   NAME DuplicatedTestCases::SameNameDifferentTags
 
-   COMMAND $<TARGET_FILE:DuplicatedTestCases-SameNameDifferentTags>
 
- )
 
- set_tests_properties(
 
-     DuplicatedTestCases::SameNameDifferentTags
 
-   PROPERTIES
 
-      FAIL_REGULAR_EXPRESSION "error: .* already defined\\."
 
- )
 
- add_executable(DuplicatedTestCases-DuplicatedTestCaseMethods ${TESTS_DIR}/X33-DuplicatedTestCaseMethods.cpp)
 
- target_link_libraries(DuplicatedTestCases-DuplicatedTestCaseMethods PRIVATE Catch2::Catch2WithMain)
 
- add_test(
 
-   NAME DuplicatedTestCases::DuplicatedTestCaseMethods
 
-   COMMAND $<TARGET_FILE:DuplicatedTestCases-DuplicatedTestCaseMethods>
 
- )
 
- set_tests_properties(
 
-     DuplicatedTestCases::DuplicatedTestCaseMethods
 
-   PROPERTIES
 
-      PASS_REGULAR_EXPRESSION "error: .* already defined\\."
 
- )
 
- add_executable(DuplicatedTestCases-DifferentFixtures ${TESTS_DIR}/X34-DuplicatedTestCaseMethodsDifferentFixtures.cpp)
 
- target_link_libraries(DuplicatedTestCases-DifferentFixtures PRIVATE Catch2::Catch2WithMain)
 
- add_test(
 
-   NAME DuplicatedTestCases::DuplicatedTestCaseMethodsDifferentFixtures
 
-   COMMAND $<TARGET_FILE:DuplicatedTestCases-DifferentFixtures>
 
- )
 
- set_tests_properties(
 
-     DuplicatedTestCases::DuplicatedTestCaseMethodsDifferentFixtures
 
-   PROPERTIES
 
-     FAIL_REGULAR_EXPRESSION "error: .* already defined\\."
 
- )
 
- add_executable(DuplicatedReporters ${TESTS_DIR}/X35-DuplicatedReporterNames.cpp)
 
- target_link_libraries(DuplicatedReporters PRIVATE Catch2::Catch2WithMain)
 
- add_test(
 
-   NAME Reporters::RegistrationErrorsAreCaught
 
-   COMMAND $<TARGET_FILE:DuplicatedReporters>
 
- )
 
- set_tests_properties(
 
-     Reporters::RegistrationErrorsAreCaught
 
-   PROPERTIES
 
-     PASS_REGULAR_EXPRESSION "Errors occurred during startup!"
 
- )
 
- #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"
 
- #)
 
- add_executable(NoTests ${TESTS_DIR}/X92-NoTests.cpp)
 
- target_link_libraries(NoTests PRIVATE Catch2::Catch2WithMain)
 
- add_test(
 
-   NAME TestSpecs::EmptySpecWithNoTestsFails
 
-   COMMAND $<TARGET_FILE:NoTests>
 
- )
 
- set_tests_properties(TestSpecs::EmptySpecWithNoTestsFails
 
-   PROPERTIES
 
-     WILL_FAIL ON
 
- )
 
- add_test(
 
-   NAME TestSpecs::OverrideFailureWithEmptySpec
 
-   COMMAND $<TARGET_FILE:NoTests> --allow-running-no-tests
 
- )
 
- add_test(
 
-   NAME List::Listeners::WorksWithoutRegisteredListeners
 
-   COMMAND $<TARGET_FILE:NoTests> --list-listeners
 
- )
 
- set( EXTRA_TEST_BINARIES
 
-     PrefixedMacros
 
-     DisabledMacros
 
-     DisabledExceptions-DefaultHandler
 
-     DisabledExceptions-CustomHandler
 
-     FallbackStringifier
 
-     DisableStringification
 
-     PartialTestCaseEvents
 
-     DuplicatedTestCases-SameNameAndTags
 
-     DuplicatedTestCases-SameNameDifferentTags
 
-     DuplicatedTestCases-DuplicatedTestCaseMethods
 
-     NoTests
 
-     ListenersGetEventsBeforeReporters
 
- #    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()
 
- # Notice that we are modifying EXTRA_TEST_BINARIES destructively, do not
 
- # use it after this point!
 
- list(FILTER EXTRA_TEST_BINARIES EXCLUDE REGEX "DisabledExceptions.*")
 
- list(APPEND CATCH_WARNING_TARGETS ${EXTRA_TEST_BINARIES})
 
- set(CATCH_WARNING_TARGETS ${CATCH_WARNING_TARGETS} PARENT_SCOPE)
 
- # This sets up a one-off executable that compiles against the amalgamated
 
- # files, and then runs it for a super simple check that the amalgamated
 
- # files are usable.
 
- add_executable(AmalgamatedTestCompilation
 
-   ${TESTS_DIR}/X91-AmalgamatedCatch.cpp
 
-   ${CATCH_DIR}/extras/catch_amalgamated.hpp
 
-   ${CATCH_DIR}/extras/catch_amalgamated.cpp
 
- )
 
- target_include_directories(AmalgamatedTestCompilation PRIVATE ${CATCH_DIR}/extras)
 
- set_property( TARGET AmalgamatedTestCompilation PROPERTY CXX_STANDARD 14 )
 
- set_property( TARGET AmalgamatedTestCompilation PROPERTY CXX_STANDARD_REQUIRED ON )
 
- set_property( TARGET AmalgamatedTestCompilation PROPERTY CXX_EXTENSIONS OFF )
 
- add_test(NAME AmalgamatedFileTest COMMAND AmalgamatedTestCompilation)
 
- set_tests_properties(
 
-     AmalgamatedFileTest
 
-   PROPERTIES
 
-     PASS_REGULAR_EXPRESSION "All tests passed \\(14 assertions in 3 test cases\\)"
 
- )
 
 
  |