diff --git a/projects/ExtraTests/CMakeLists.txt b/projects/ExtraTests/CMakeLists.txt index 13b02870..0e514d96 100644 --- a/projects/ExtraTests/CMakeLists.txt +++ b/projects/ExtraTests/CMakeLists.txt @@ -137,6 +137,14 @@ if (MSVC) add_test(NAME WindowsHeader COMMAND WindowsHeader -r compact) endif() +add_executable(DebugBreakMacros ${TESTS_DIR}/X12-CustomDebugBreakMacro.cpp) +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 @@ -145,6 +153,7 @@ set( EXTRA_TEST_BINARIES FallbackStringifier DisableStringification BenchmarkingMacros + DebugBreakMacros ) # Shared config diff --git a/projects/ExtraTests/X12-CustomDebugBreakMacro.cpp b/projects/ExtraTests/X12-CustomDebugBreakMacro.cpp new file mode 100644 index 00000000..25ab4a0e --- /dev/null +++ b/projects/ExtraTests/X12-CustomDebugBreakMacro.cpp @@ -0,0 +1,17 @@ +// X12-CustomDebugBreakMacro.cpp +// Test that user-defined `CATCH_BREAK_INTO_DEBUGGER` is respected and used. + +#include + +void custom_debug_break() { + std::cerr << "Pretty please, break into debugger\n"; +} + +#define CATCH_BREAK_INTO_DEBUGGER() custom_debug_break() + +#define CATCH_CONFIG_MAIN +#include + +TEST_CASE("Failing test that breaks into debugger", "[macros]") { + REQUIRE(1 == 2); +}