Make assert library print out assert expressions
This commit is contained in:
parent
c0a622c5e4
commit
eef2e1318c
@ -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]")
|
||||
{
|
||||
|
||||
@ -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]")
|
||||
{
|
||||
|
||||
@ -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_
|
||||
|
||||
@ -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
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user