Files
libsst/Include/ZUtil/ZAssert.hpp
2026-04-03 00:22:39 -05:00

54 lines
1.6 KiB
C++

/*
ZAssert.hpp
Author : Chris Ertel
Purpose : Asserts for debugging and error checking purposes.
Changelog
8/16/2010 - creation (crertel)
12/4/2011 - Updated to use libsst-os asserts (jcrussell)
*/
#pragma once
#ifndef _ZASSERT_H
#define _ZASSERT_H
#include <SST/SST_Assert.h>
/*****************/
/* Assert Macros */
/*****************/
//ZASSERT_RUNTIME macro, which will raise an error with debug output if the condition is not true after logging the message
#define ZASSERT_RUNTIME(_condition, _message) SST_OS_RuntimeAssert(_condition, _message)
//ZASSERT_RUNTIME_FAIL macro, which will raise an error with debug output
#define ZASSERT_RUNTIME_FAIL(_message) SST_OS_RuntimeError(_message)
#if ZASSERT_ENABLE
//ZASSERT macro, which will trigger a breakpoint if the condition is not met
#define ZASSERT(_condition, _message) SST_OS_DebugAssert(_condition, _message)
//ZASSERT_FAIL macro, which triggers a breakpoint
#define ZASSERT_FAIL(_message) SST_OS_DebugError(_message)
#else /* ZASSERT is disabled */
#define ZASSERT(_condition, _message)
#define ZASSERT_FAIL(_message)
#endif //ZASSERT_ENABLE
#if ZASSERT_UTIL_ENABLE
//ZASSERT_UTIL macro, which will trigger a breakpoint if the condition is not met
//ZASSERT_UTIL is meant to be used within the ZUtil project for internal assertion debugging
//ZASSERT should be used when the error condition can be caused by user actions
#define ZASSERT_UTIL(_condition, _message) SST_OS_DebugAssert(_condition, _message)
#else /* ZASSERT_UTIL is disabled */
#define ZASSERT_UTIL(_condition, _message) ((void)0)
#endif //ZASSERT_UTIL_ENABLE
#endif