/* vim: ts=4 sw=4 sts=4 ff=unix fenc=utf-8 : * ===================================================================== * sc_assert.h * Copyright (c) 2003 - 2011 sys0tem * LICENSE : * LGPL (GNU Lesser General Public License - Version 3,29 June 2007) * http://www.gnu.org/copyleft/lesser.html * or * EPL (Eclipse Public License - v1.0) * http://www.eclipse.org/legal/epl-v10.html * ===================================================================== */ #ifndef __SC_ASSERT_H__ #define __SC_ASSERT_H__ #include <stdio.h> #include <sc_stdbool.h> #ifdef SC_DEBUG #define SC_assert(val) SC_assert_(val, \ #val, __FILE__, __LINE__, SC_FUNC) #define SC_assertNumber(val1, val2) SC_assertNumber_(val1, val2, \ #val2, __FILE__, __LINE__, SC_FUNC) #define SC_assertString(val1, val2) SC_assertString_(val1, val2, \ #val2, __FILE__, __LINE__, SC_FUNC) #define SC_assertMemory(val1, val2, size) SC_assertMemory_( \ val1, val2, size, \ #val2, __FILE__, __LINE__, SC_FUNC) #else #define SC_assert(val) SC_assertDummy_(val) #define SC_assertNumber(val1, val2) SC_assertNumberDummy_(val1, val2) #define SC_assertString(val1, val2) SC_assertStringDummy_(val1, val2) #define SC_assertMemory(val1, val2, size) SC_assertMemoryDummy_(val1, val2, size) #endif /* SC_DEBUG */ #ifdef __cplusplus extern "C" { #endif void SC_setAssertOutput(FILE* fp); void SC_clearAssertOutput(void); bool SC_assertAtExit(void (*func)(void)); void SC_assertAtExitClear(void); void SC_assert_(long val, const char* valName, const char* file, int line, const char* func); void SC_assertNumber_(long val1, long val2, const char* valName, const char* file, int line, const char* func); void SC_assertString_(const char* val1, const char* val2, const char* valName, const char* file, int line, const char* func); void SC_assertMemory_(const void* val1, const void* val2, size_t size, const char* valName, const char* file, int line, const char* func); void SC_assertDummy_(long val); void SC_assertNumberDummy_(long val1, long val2); void SC_assertStringDummy_(const char* val1, const char* val2); void SC_assertMemoryDummy_(const void* val1, const void* val2, size_t size); #ifdef __cplusplus } #endif /* エラー表示 先頭部分フォーマット */ #ifdef SC_DEBUG_PRINT_FUNC #define SC_FUNC __func__ #define SC_ASSERT_HEAD_FORMAT "%s:%d:%s " #else #define SC_FUNC "" #define SC_ASSERT_HEAD_FORMAT "%s:%d:%s " #endif /* SC_DEBUG_PRINT_FUNC */ #endif /* __SC_ASSERT_H__ */