diff --git a/include/internal/catch_capture.hpp b/include/internal/catch_capture.hpp index 3b2cfdf7..5055cddf 100644 --- a/include/internal/catch_capture.hpp +++ b/include/internal/catch_capture.hpp @@ -159,7 +159,7 @@ struct TestFailureException{}; #define INTERNAL_CATCH_MSG( messageType, resultDisposition, macroName, log ) \ do { \ INTERNAL_CATCH_ACCEPT_INFO( "", macroName, resultDisposition ); \ - INTERNAL_CATCH_ACCEPT_EXPR( Catch::ExpressionResultBuilder( messageType ) << log +::Catch::StreamEndStop(), resultDisposition, true ) \ + INTERNAL_CATCH_ACCEPT_EXPR( Catch::ExpressionResultBuilder( messageType ) << log, resultDisposition, true ) \ } while( Catch::isTrue( false ) ) #endif diff --git a/projects/SelfTest/MessageTests.cpp b/projects/SelfTest/MessageTests.cpp index e0c44848..55098b2c 100644 --- a/projects/SelfTest/MessageTests.cpp +++ b/projects/SelfTest/MessageTests.cpp @@ -51,6 +51,14 @@ TEST_CASE( "FAIL aborts the test", "[failing][messages][.]" ) FAIL( "This is a " << "failure" ); // This should output the message and abort } +#ifdef CATCH_CONFIG_VARIADIC_MACROS +TEST_CASE( "FAIL does not require an argument", "[failing][messages][.]" ) +{ + if( Catch::isTrue( true ) ) + FAIL(); +} +#endif + TEST_CASE( "Output from all sections is reported", "[failing][messages][.]" ) { SECTION( "one", "" )