X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/20f46e8dc8ba9246f7174e9d9153f61282f53a07..eaca2a2cfcdd82a877c966b4f702a5a460c8c4c4:/include/wx/cppunit.h diff --git a/include/wx/cppunit.h b/include/wx/cppunit.h index daca99cb6a..243e68303f 100644 --- a/include/wx/cppunit.h +++ b/include/wx/cppunit.h @@ -10,6 +10,7 @@ #ifndef _WX_CPPUNIT_H_ #define _WX_CPPUNIT_H_ +/////////////////////////////////////////////////////////////////////////////// // using CPPUNIT_TEST() macro results in this warning, disable it as there is // no other way to get rid of it and it's not very useful anyhow #ifdef __VISUALC__ @@ -27,6 +28,11 @@ #pragma warn -8022 #endif + +/////////////////////////////////////////////////////////////////////////////// +// Include all needed cppunit headers. +// + #include "wx/beforestd.h" #include #include @@ -34,6 +40,37 @@ #include #include "wx/afterstd.h" + +/////////////////////////////////////////////////////////////////////////////// +// Set of helpful test macros. +// + +// Base macro for wrapping CPPUNIT_TEST macros and so making them conditional +// tests, meaning that the test only get registered and thus run when a given +// runtime condition is true. +// In case the condition is evaluated as false a skip message is logged +// (the message will only be shown in verbose mode). +#define WXTEST_ANY_WITH_CONDITION(suiteName, Condition, testMethod, anyTest) \ + if (Condition) \ + { anyTest; } \ + else \ + wxLogInfo(wxString::Format(_T("skipping: %s.%s\n reason: %s equals false\n"), \ + wxString(suiteName, wxConvUTF8).c_str(), \ + wxString(#testMethod, wxConvUTF8).c_str(), \ + wxString(#Condition, wxConvUTF8).c_str())) + +// Conditional CPPUNIT_TEST macro. +#define WXTEST_WITH_CONDITION(suiteName, Condition, testMethod) \ + WXTEST_ANY_WITH_CONDITION(suiteName, Condition, testMethod, CPPUNIT_TEST(testMethod)) +// Conditional CPPUNIT_TEST_FAIL macro. +#define WXTEST_FAIL_WITH_CONDITION(suiteName, Condition, testMethod) \ + WXTEST_ANY_WITH_CONDITION(suiteName, Condition, testMethod, CPPUNIT_TEST_FAIL(testMethod)) + + +/////////////////////////////////////////////////////////////////////////////// +// Some more compiler warning tweaking and auto linking. +// + #ifdef __BORLANDC__ #pragma warn .8022 #endif