Add test for runtime behaviour of STATIC_CHECK

This commit is contained in:
Martin Hořeňovský 2021-11-15 20:05:12 +01:00
parent 67caef6f45
commit d012735c6e
No known key found for this signature in database
GPG Key ID: DE48307B8B0D381A
2 changed files with 33 additions and 0 deletions

View File

@ -151,6 +151,17 @@ set_tests_properties(
)
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 )

View File

@ -0,0 +1,22 @@
// Copyright Catch2 Authors
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE_1_0.txt or copy at
// https://www.boost.org/LICENSE_1_0.txt)
// SPDX-License-Identifier: BSL-1.0
/**\file
* Checks that when `STATIC_CHECK` is deferred to runtime and fails, it
* does not abort the test case.
*/
#include <catch2/catch_test_macros.hpp>
#include <iostream>
TEST_CASE("Deferred static checks") {
STATIC_CHECK(1 == 2);
STATIC_CHECK_FALSE(1 != 2);
// This last assertion must be executed too
CHECK(1 == 2);
}