don't show assert message boxes in debug build but throw an exception if an assert unexpectedly fails; do check that expected asserts are generated
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57459 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -6,3 +6,24 @@
|
||||
(defined(__GNUC__) && (__GNUC__ >= 3))
|
||||
#define wxHAVE_U_ESCAPE
|
||||
#endif
|
||||
|
||||
// thrown when assert fails in debug build
|
||||
class TestAssertFailure { };
|
||||
|
||||
// macro to use for the functions which are supposed to fail an assertion
|
||||
#ifdef __WXDEBUG__
|
||||
// some old cppunit versions don't define CPPUNIT_ASSERT_THROW so roll our
|
||||
// own
|
||||
#define WX_ASSERT_FAILS_WITH_ASSERT(cond) \
|
||||
{ \
|
||||
bool throwsAssert = false; \
|
||||
try { cond ; } \
|
||||
catch ( const TestAssertFailure& ) { throwsAssert = true; } \
|
||||
if ( !throwsAssert ) \
|
||||
CPPUNIT_FAIL("expected assertion not generated"); \
|
||||
}
|
||||
#else
|
||||
// there are no assertions in non-debug build so just check that it fails
|
||||
#define WX_ASSERT_FAILS_WITH_ASSERT(cond) CPPUNIT_ASSERT(!(cond))
|
||||
#endif
|
||||
|
||||
|
Reference in New Issue
Block a user