// // Created by erki on 29.06.22. // #include #ifdef NDEBUG #undef NDEBUG #define NDEBUG_WAS_SET #endif #include "utility_assert.hpp" #ifdef NDEBUG_WAS_SET #define NDEBUG #endif namespace { bool assert_flag = false; void assertCallback(const char*, const char*, const int) { assert_flag = true; } }// namespace TEST_CASE("Assert debug without NDEBUG gets triggered if check is false.", "[utility],[assert]") { assert_flag = false; Utility::Assert::setHandler(assertCallback); SKULLC_ASSERT_DEBUG(false); CHECK(assert_flag == true); } TEST_CASE("Assert debug without NDEBUG doesn't get triggered if check is true.", "[utility],[assert]") { assert_flag = false; Utility::Assert::setHandler(assertCallback); SKULLC_ASSERT_DEBUG(true); CHECK(assert_flag == false); } TEST_CASE("Assert safe without NDEBUG gets triggered if check is false.", "[utility],[assert]") { assert_flag = false; Utility::Assert::setHandler(assertCallback); SKULLC_ASSERT_SAFE(false); CHECK(assert_flag == true); } TEST_CASE("Assert safe without NDEBUG doesn't get triggered if check is true.", "[utility],[assert]") { assert_flag = false; Utility::Assert::setHandler(assertCallback); SKULLC_ASSERT_SAFE(true); CHECK(assert_flag == false); }