mirror of
https://github.com/catchorg/Catch2.git
synced 2025-11-30 16:59:32 +01:00
Fix lazy removal of unscoped messages also removing still valid msgs
This commit is contained in:
@@ -177,6 +177,18 @@ set_tests_properties(DeferredStaticChecks
|
||||
PASS_REGULAR_EXPRESSION "test cases: 1 \\| 1 failed\nassertions: 3 \\| 3 failed"
|
||||
)
|
||||
|
||||
add_executable(MixingClearedAndUnclearedMessages ${TESTS_DIR}/X06-MixingClearedAndUnclearedMessages.cpp)
|
||||
target_link_libraries(MixingClearedAndUnclearedMessages PRIVATE Catch2WithMain)
|
||||
|
||||
add_test(NAME MixingClearedAndUnclearedMessages
|
||||
COMMAND
|
||||
MixingClearedAndUnclearedMessages
|
||||
-r compact)
|
||||
set_tests_properties(MixingClearedAndUnclearedMessages
|
||||
PROPERTIES
|
||||
PASS_REGULAR_EXPRESSION ": false with 1 message: 'b'"
|
||||
)
|
||||
|
||||
add_executable(FallbackStringifier ${TESTS_DIR}/X10-FallbackStringifier.cpp)
|
||||
target_compile_definitions(FallbackStringifier PRIVATE CATCH_CONFIG_FALLBACK_STRINGIFIER=fallbackStringifier)
|
||||
target_link_libraries(FallbackStringifier Catch2WithMain)
|
||||
@@ -528,6 +540,7 @@ set(EXTRA_TEST_BINARIES
|
||||
DuplicatedTestCases-DuplicatedTestCaseMethods
|
||||
NoTests
|
||||
ListenersGetEventsBeforeReporters
|
||||
MixingClearedAndUnclearedMessages
|
||||
# DebugBreakMacros
|
||||
)
|
||||
|
||||
|
||||
27
tests/ExtraTests/X06-MixingClearedAndUnclearedMessages.cpp
Normal file
27
tests/ExtraTests/X06-MixingClearedAndUnclearedMessages.cpp
Normal file
@@ -0,0 +1,27 @@
|
||||
|
||||
// Copyright Catch2 Authors
|
||||
// Distributed under the Boost Software License, Version 1.0.
|
||||
// (See accompanying file LICENSE.txt or copy at
|
||||
// https://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
// SPDX-License-Identifier: BSL-1.0
|
||||
|
||||
/**\file
|
||||
* Checks that when we use up an unscoped message (e.g. `UNSCOPED_INFO`),
|
||||
* with an assertion, and then add another message later, it will be
|
||||
* properly reported with later failing assertion.
|
||||
*
|
||||
* This needs separate binary to avoid the main test binary's validating
|
||||
* listener, which disables the assertion fast path.
|
||||
*/
|
||||
|
||||
#include <catch2/catch_test_macros.hpp>
|
||||
|
||||
TEST_CASE(
|
||||
"Delayed unscoped message clearing does not catch newly inserted messages",
|
||||
"[messages][unscoped][!shouldfail]" ) {
|
||||
UNSCOPED_INFO( "a" );
|
||||
REQUIRE( true );
|
||||
UNSCOPED_INFO( "b" );
|
||||
REQUIRE( false );
|
||||
}
|
||||
Reference in New Issue
Block a user