Make assert library print out assert expressions

This commit is contained in:
Erki 2022-06-30 19:44:50 +03:00
parent c0a622c5e4
commit eef2e1318c
4 changed files with 24 additions and 27 deletions

View File

@ -20,12 +20,12 @@ namespace
bool assert_flag = false;
void assertCallback(const char*, const int)
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]")
{

View File

@ -20,12 +20,12 @@ namespace
bool assert_flag = false;
void assertCallback(const char*, const int)
void assertCallback(const char*, const char*, const int)
{
assert_flag = true;
}
}
}// namespace
TEST_CASE("Assert debug with NDEBUG is a null-opt.", "[utility],[assert]")
{

View File

@ -8,26 +8,26 @@
namespace Utility::Assert::Detail
{
void assertImpl(const bool expr, const char* file, const int line);
void assertImpl(const char* expression, const char* file, const int line);
}
#ifndef NDEBUG
# define SKULLC_ASSERT_DEBUG(e) Utility::Assert::Detail::assertImpl(e, __FILE__, __LINE__)
#define SKULLC_ASSERT_DEBUG(e) (!(e) ? Utility::Assert::Detail::assertImpl(#e, __FILE__, __LINE__) : ((void) 0))
#else
#define SKULLC_ASSERT_DEBUG(e)
#endif
#define SKULLC_ASSERT_SAFE(e) Utility::Assert::Detail::assertImpl(e, __FILE__, __LINE__)
#define SKULLC_ASSERT_SAFE(e) (!(e) ? Utility::Assert::Detail::assertImpl(#e, __FILE__, __LINE__) : ((void) 0))
namespace Utility::Assert
{
using assert_cb = void (*)(const char* file, const int line);
using assert_cb = void (*)(const char* expression, const char* file, const int line);
void setHandler(assert_cb callback);
assert_cb getHandler();
}
}// namespace Utility::Assert
#endif// SKULLC_UTILITY_ASSERT_HPP_

View File

@ -19,18 +19,15 @@ namespace Utility::Assert
namespace Detail
{
void assertImpl(const bool expr, const char* file, const int line)
{
if (!expr)
void assertImpl(const char* expression, const char* file, const int line)
{
if (INSTALLED_HANDLER)
INSTALLED_HANDLER(file, line);
INSTALLED_HANDLER(expression, file, line);
else
std::terminate();
}
}
}
}// namespace Detail
void setHandler(assert_cb callback)
{
@ -42,4 +39,4 @@ assert_cb getHandler()
return INSTALLED_HANDLER;
}
}
}// namespace Utility::Assert