701aa4d804
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64515 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
82 lines
2.4 KiB
C++
82 lines
2.4 KiB
C++
#include "wx/wxprec.h"
|
|
#include "wx/cppunit.h"
|
|
|
|
// define wxHAVE_U_ESCAPE if the compiler supports \uxxxx character constants
|
|
#if (defined(__VISUALC__) && (__VISUALC__ >= 1300)) || \
|
|
(defined(__GNUC__) && (__GNUC__ >= 3))
|
|
#define wxHAVE_U_ESCAPE
|
|
|
|
// and disable warning that using them results in with MSVC 8+
|
|
#if wxCHECK_VISUALC_VERSION(8)
|
|
// universal-character-name encountered in source
|
|
#pragma warning(disable:4428)
|
|
#endif
|
|
#endif
|
|
|
|
// thrown when assert fails in debug build
|
|
class TestAssertFailure
|
|
{
|
|
public:
|
|
TestAssertFailure(const wxString& file,
|
|
int line,
|
|
const wxString& func,
|
|
const wxString& cond,
|
|
const wxString& msg)
|
|
: m_file(file),
|
|
m_line(line),
|
|
m_func(func),
|
|
m_cond(cond),
|
|
m_msg(msg)
|
|
{
|
|
}
|
|
|
|
const wxString m_file;
|
|
const int m_line;
|
|
const wxString m_func;
|
|
const wxString m_cond;
|
|
const wxString m_msg;
|
|
|
|
wxDECLARE_NO_ASSIGN_CLASS(TestAssertFailure);
|
|
};
|
|
|
|
// macro to use for the functions which are supposed to fail an assertion
|
|
#if wxDEBUG_LEVEL
|
|
// 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 this build so just check that it fails
|
|
#define WX_ASSERT_FAILS_WITH_ASSERT(cond) CPPUNIT_ASSERT(!(cond))
|
|
#endif
|
|
|
|
// these functions can be used to hook into wxApp event processing and are
|
|
// currently used by the events propagation test
|
|
class WXDLLIMPEXP_FWD_BASE wxEvent;
|
|
|
|
typedef int (*FilterEventFunc)(wxEvent&);
|
|
typedef bool (*ProcessEventFunc)(wxEvent&);
|
|
|
|
extern void SetFilterEventFunc(FilterEventFunc func);
|
|
extern void SetProcessEventFunc(ProcessEventFunc func);
|
|
|
|
extern bool IsNetworkAvailable();
|
|
|
|
// helper class setting the locale to "C" for its lifetime
|
|
class CLocaleSetter
|
|
{
|
|
public:
|
|
CLocaleSetter() : m_locOld(setlocale(LC_ALL, "C")) { }
|
|
~CLocaleSetter() { setlocale(LC_ALL, m_locOld); }
|
|
|
|
private:
|
|
const char * const m_locOld;
|
|
wxDECLARE_NO_COPY_CLASS(CLocaleSetter);
|
|
};
|