Implemented assert macros
This commit is contained in:
parent
61afbabfa4
commit
c5ff634cd1
|
@ -0,0 +1,38 @@
|
|||
#ifndef ASSERT_H
|
||||
#define ASSERT_H
|
||||
|
||||
#include "TString.h"
|
||||
#include <cstdlib>
|
||||
#include <string.h>
|
||||
|
||||
#define __FILE_SHORT__ strrchr(__FILE__, '\\') ? strrchr(__FILE__, '\\') + 1 : __FILE__
|
||||
|
||||
#define ASSERT_CHECK_BEGIN(Expression) \
|
||||
{ \
|
||||
if (!(Expression)) \
|
||||
{
|
||||
|
||||
#define ASSERT_CHECK_END \
|
||||
} \
|
||||
}
|
||||
|
||||
#define WRITE_FAILURE_TO_LOG(Expression) \
|
||||
Log::Write(TString(__FILE_SHORT__) + "(" + TString::FromInt32(__LINE__, 0, 10) + "): ASSERT FAILED: " + #Expression);
|
||||
|
||||
#define BREAK_ONLY_ASSERT(Expression) \
|
||||
ASSERT_CHECK_BEGIN(Expression) \
|
||||
__debugbreak(); \
|
||||
ASSERT_CHECK_END
|
||||
|
||||
#define LOG_ONLY_ASSERT(Expression) \
|
||||
ASSERT_CHECK_BEGIN(Expression) \
|
||||
WRITE_FAILURE_TO_LOG(Expression) \
|
||||
ASSERT_CHECK_END
|
||||
|
||||
#define ASSERT(Expression) \
|
||||
ASSERT_CHECK_BEGIN(Expression) \
|
||||
WRITE_FAILURE_TO_LOG(Expression) \
|
||||
__debugbreak(); \
|
||||
ASSERT_CHECK_END
|
||||
|
||||
#endif // ASSERT_H
|
Loading…
Reference in New Issue