debug: add XFAIL exit codes
This commit is contained in:
parent
028dee034a
commit
16b81f2a07
25
debug.hpp
25
debug.hpp
@ -28,6 +28,7 @@
|
|||||||
#include <iostream>
|
#include <iostream>
|
||||||
#include <sstream>
|
#include <sstream>
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
#ifdef ENABLE_DEBUGGING
|
#ifdef ENABLE_DEBUGGING
|
||||||
#define DEBUG_ONLY(X) \
|
#define DEBUG_ONLY(X) \
|
||||||
X;
|
X;
|
||||||
@ -35,6 +36,14 @@
|
|||||||
#define DEBUG_ONLY(X)
|
#define DEBUG_ONLY(X)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
#define EXIT_XSUCCESS 0
|
||||||
|
#define EXIT_XSKIP 77
|
||||||
|
#define EXIT_XHARD_ERROR 99
|
||||||
|
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
#define TRACE { \
|
#define TRACE { \
|
||||||
std::cerr << __FILE__ << ":" << __func__ << ":" << __LINE__ << std::endl; \
|
std::cerr << __FILE__ << ":" << __func__ << ":" << __LINE__ << std::endl; \
|
||||||
}
|
}
|
||||||
@ -52,6 +61,7 @@
|
|||||||
} while (0)
|
} while (0)
|
||||||
|
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
#define VERIFY_SOFT(C, COND) ({ \
|
#define VERIFY_SOFT(C, COND) ({ \
|
||||||
const auto __DEBUG_value = (C); \
|
const auto __DEBUG_value = (C); \
|
||||||
CHECK_SOFT(__DEBUG_value COND); \
|
CHECK_SOFT(__DEBUG_value COND); \
|
||||||
@ -66,6 +76,7 @@
|
|||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
#define _CHECK_META(C, SUCCESS, FAILURE) do { \
|
#define _CHECK_META(C, SUCCESS, FAILURE) do { \
|
||||||
const auto __DEBUG_value = (C); \
|
const auto __DEBUG_value = (C); \
|
||||||
if (unlikely (!__DEBUG_value)) { \
|
if (unlikely (!__DEBUG_value)) { \
|
||||||
@ -94,6 +105,7 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
#define CHECK_EQ(A,B) do { \
|
#define CHECK_EQ(A,B) do { \
|
||||||
const auto __a = (A); \
|
const auto __a = (A); \
|
||||||
const auto __b = (B); \
|
const auto __b = (B); \
|
||||||
@ -111,6 +123,7 @@
|
|||||||
} while (0)
|
} while (0)
|
||||||
|
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
#define CHECK_LT(A,B) do { \
|
#define CHECK_LT(A,B) do { \
|
||||||
const auto __a = (A); \
|
const auto __a = (A); \
|
||||||
const auto __b = (B); \
|
const auto __b = (B); \
|
||||||
@ -128,6 +141,7 @@
|
|||||||
} while (0)
|
} while (0)
|
||||||
|
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
#define CHECK_LE(A,B) do { \
|
#define CHECK_LE(A,B) do { \
|
||||||
const auto __a = (A); \
|
const auto __a = (A); \
|
||||||
const auto __b = (B); \
|
const auto __b = (B); \
|
||||||
@ -145,6 +159,7 @@
|
|||||||
} while (0)
|
} while (0)
|
||||||
|
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
#define CHECK_GT(A,B) do { \
|
#define CHECK_GT(A,B) do { \
|
||||||
const auto __a = (A); \
|
const auto __a = (A); \
|
||||||
const auto __b = (B); \
|
const auto __b = (B); \
|
||||||
@ -162,6 +177,7 @@
|
|||||||
} while (0)
|
} while (0)
|
||||||
|
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
#define CHECK_GE(A,B) do { \
|
#define CHECK_GE(A,B) do { \
|
||||||
const auto __a = (A); \
|
const auto __a = (A); \
|
||||||
const auto __b = (B); \
|
const auto __b = (B); \
|
||||||
@ -179,6 +195,7 @@
|
|||||||
} while (0)
|
} while (0)
|
||||||
|
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
#define CHECK_NEQ(A,B) do { \
|
#define CHECK_NEQ(A,B) do { \
|
||||||
const auto __a = (A); \
|
const auto __a = (A); \
|
||||||
const auto __b = (B); \
|
const auto __b = (B); \
|
||||||
@ -195,6 +212,7 @@
|
|||||||
} while (0)
|
} while (0)
|
||||||
|
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
#define CHECK_THROWS(E,C) do { \
|
#define CHECK_THROWS(E,C) do { \
|
||||||
bool caught = false; \
|
bool caught = false; \
|
||||||
\
|
\
|
||||||
@ -208,6 +226,7 @@
|
|||||||
} while (0)
|
} while (0)
|
||||||
|
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
#define CHECK_NOTHROW(C) do { \
|
#define CHECK_NOTHROW(C) do { \
|
||||||
try { \
|
try { \
|
||||||
C; \
|
C; \
|
||||||
@ -217,6 +236,7 @@
|
|||||||
} while (0)
|
} while (0)
|
||||||
|
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
class panic_error {
|
class panic_error {
|
||||||
protected:
|
protected:
|
||||||
std::string m_what;
|
std::string m_what;
|
||||||
@ -232,22 +252,27 @@ void panic (const std::string&) terminal;
|
|||||||
void panic (void) terminal;
|
void panic (void) terminal;
|
||||||
|
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
void not_implemented (void) terminal;
|
void not_implemented (void) terminal;
|
||||||
void not_implemented (const char*) terminal;
|
void not_implemented (const char*) terminal;
|
||||||
|
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
void unreachable (void) terminal;
|
void unreachable (void) terminal;
|
||||||
void unreachable (const std::string&) terminal;
|
void unreachable (const std::string&) terminal;
|
||||||
void unusual (void);
|
void unusual (void);
|
||||||
|
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
void breakpoint (void);
|
void breakpoint (void);
|
||||||
|
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
void enable_fpe (void);
|
void enable_fpe (void);
|
||||||
void disable_fpe (void);
|
void disable_fpe (void);
|
||||||
|
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
namespace debug {
|
namespace debug {
|
||||||
void init (void);
|
void init (void);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user