home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Chip 1998 February
/
CHIP_2_98.iso
/
software
/
pelne
/
optionp
/
msmqocm.cab
/
utassert.h
< prev
next >
Wrap
C/C++ Source or Header
|
1997-10-06
|
3KB
|
106 lines
/* ----------------------------------------------------------------------------
Microsoft Transaction Server 1.0
Copyright 1994 - 1996 Microsoft Corporation. All Rights Reserved.
@doc
@module UTAssert.H.h |
This file contains some macros for asserts.
Following are the Assert macros with a brief definition of them
DeclAssertFile Should be added at the begining of each .C/.CPP
Assert(exp) Simple Assert with an expression
Verify(exp) Assert whose exp has side effects and is
always evaluated, even !_DEBUG.
ExpAssert(exp) Same as Assert, just a more convenient name.
AssertSz(exp, sz) The assert will dump the sz passed to it
AssertEq(exp, exp2) Assert that exp == exp2
AssertGe(exp, exp2) Assert that exp >= exp2
AssertNe(exp, exp2) Assert that exp <= exp2
@devnote None
*******************************************************************************/
#ifndef __UTAssert_H__
#define __UTAssert_H__
#include <stdio.h>
typedef unsigned short WORD;
typedef unsigned long DWORD;
#ifndef _DEBUG
#define DeclAssertFile
#define Assert(exp) ((void)1)
#ifndef Verify
#define Verify(exp) (exp)
#endif
#define ExpAssert(exp) ((void)1)
#define AssertSz(exp, sz) ((void)1)
#define AssertEq(exp, exp2) (exp)
#define AssertGe(exp, exp2) (exp)
#define AssertNe(exp, exp2) (exp)
#else //Debug
#define DTCAssertNone 0x0000 /* None */
#define DTCAssertExit 0x0001 /* Exit the application */
#define DTCAssertBreak 0x0002 /* Break to debugger */
#define DTCAssertMsgBox 0x0004 /* Display message box */
#define DTCAssertStop 0x0008 /* Alert and stop */
#define DTCAssertStack 0x0010 /* Stack trace */
#define DTCAssertLog 0x0020 /* Log assert to file only */
#ifdef __cplusplus
extern "C" {
#endif
void AssertSzFail(const char *sz, const char *szFilename, unsigned Line);
void AssertFail(const char *szFilename, unsigned Line);
static WORD z_wAssertAction = DTCAssertNone; // default to None
static const char szAssertFile[] = "assert.txt";
static const char szAssertHdr[] = "Assertion Failure: ";
static const char szMsgHdr[] = ": ";
static const char szLineHdr[] = ", Line ";
static const char szAssertEnd[] = "\r\n";
static const char szAssertCaption[] = "Assertion Failure";
#ifdef __cplusplus
}
#endif
#define DeclAssertFile static const char szAssertFilename[] = __FILE__
#define AssertSz(exp, sz) { \
static char szMsg[] = sz; \
(exp) ? (void) 0 : AssertSzFail(szMsg, szAssertFilename, __LINE__); \
}
#define Assert(exp) \
( (exp) ? (void) 0 : AssertFail(szAssertFilename, __LINE__) )
#ifndef Verify
#define Verify(exp) Assert(exp)
#endif
#define ExpAssert(exp) Assert(exp)
#define AssertEq(exp, exp2) Assert((exp) == (exp2))
#define AssertGe(exp, exp2) Assert((exp) >= (exp2))
#define AssertNe(exp, exp2) Assert((exp) != (exp2))
#endif //!def _DEBUG
#endif //__UTAssert_H__