1 | /////////////////////////////////////////////////////////////////////////////
|
---|
2 | // Name: wx/cppunit.h
|
---|
3 | // Purpose: wrapper header for CppUnit headers
|
---|
4 | // Author: Vadim Zeitlin
|
---|
5 | // Created: 15.02.04
|
---|
6 | // RCS-ID: $Id: cppunit.h,v 1.6 2005/05/04 18:51:56 JS Exp $
|
---|
7 | // Copyright: (c) 2004 Vadim Zeitlin
|
---|
8 | // Licence: wxWindows Licence
|
---|
9 | /////////////////////////////////////////////////////////////////////////////
|
---|
10 |
|
---|
11 | #ifndef _WX_CPPUNIT_H_
|
---|
12 | #define _WX_CPPUNIT_H_
|
---|
13 |
|
---|
14 | ///////////////////////////////////////////////////////////////////////////////
|
---|
15 | // using CPPUNIT_TEST() macro results in this warning, disable it as there is
|
---|
16 | // no other way to get rid of it and it's not very useful anyhow
|
---|
17 | #ifdef __VISUALC__
|
---|
18 | // typedef-name 'foo' used as synonym for class-name 'bar'
|
---|
19 | #pragma warning(disable:4097)
|
---|
20 |
|
---|
21 | // unreachable code: we don't care about warnings in CppUnit headers
|
---|
22 | #pragma warning(disable:4702)
|
---|
23 |
|
---|
24 | // 'id': identifier was truncated to 'num' characters in the debug info
|
---|
25 | #pragma warning(disable:4786)
|
---|
26 | #endif // __VISUALC__
|
---|
27 |
|
---|
28 | #ifdef __BORLANDC__
|
---|
29 | #pragma warn -8022
|
---|
30 | #endif
|
---|
31 |
|
---|
32 | ///////////////////////////////////////////////////////////////////////////////
|
---|
33 | // Set the default format for the errors, which can be used by an IDE to jump
|
---|
34 | // to the error location. This default gets overridden by the cppunit headers
|
---|
35 | // for some compilers (e.g. VC++).
|
---|
36 |
|
---|
37 | #ifndef CPPUNIT_COMPILER_LOCATION_FORMAT
|
---|
38 | #define CPPUNIT_COMPILER_LOCATION_FORMAT "%p:%l:"
|
---|
39 | #endif
|
---|
40 |
|
---|
41 |
|
---|
42 | ///////////////////////////////////////////////////////////////////////////////
|
---|
43 | // Include all needed cppunit headers.
|
---|
44 | //
|
---|
45 |
|
---|
46 | #include "wx/beforestd.h"
|
---|
47 | #include <cppunit/extensions/TestFactoryRegistry.h>
|
---|
48 | #include <cppunit/ui/text/TestRunner.h>
|
---|
49 | #include <cppunit/TestCase.h>
|
---|
50 | #include <cppunit/extensions/HelperMacros.h>
|
---|
51 | #include <cppunit/CompilerOutputter.h>
|
---|
52 | #include "wx/afterstd.h"
|
---|
53 |
|
---|
54 |
|
---|
55 | ///////////////////////////////////////////////////////////////////////////////
|
---|
56 | // Set of helpful test macros.
|
---|
57 | //
|
---|
58 |
|
---|
59 | // Base macro for wrapping CPPUNIT_TEST macros and so making them conditional
|
---|
60 | // tests, meaning that the test only get registered and thus run when a given
|
---|
61 | // runtime condition is true.
|
---|
62 | // In case the condition is evaluated as false a skip message is logged
|
---|
63 | // (the message will only be shown in verbose mode).
|
---|
64 | #define WXTEST_ANY_WITH_CONDITION(suiteName, Condition, testMethod, anyTest) \
|
---|
65 | if (Condition) \
|
---|
66 | { anyTest; } \
|
---|
67 | else \
|
---|
68 | wxLogInfo(wxString::Format(_T("skipping: %s.%s\n reason: %s equals false\n"), \
|
---|
69 | wxString(suiteName, wxConvUTF8).c_str(), \
|
---|
70 | wxString(#testMethod, wxConvUTF8).c_str(), \
|
---|
71 | wxString(#Condition, wxConvUTF8).c_str()))
|
---|
72 |
|
---|
73 | // Conditional CPPUNIT_TEST macro.
|
---|
74 | #define WXTEST_WITH_CONDITION(suiteName, Condition, testMethod) \
|
---|
75 | WXTEST_ANY_WITH_CONDITION(suiteName, Condition, testMethod, CPPUNIT_TEST(testMethod))
|
---|
76 | // Conditional CPPUNIT_TEST_FAIL macro.
|
---|
77 | #define WXTEST_FAIL_WITH_CONDITION(suiteName, Condition, testMethod) \
|
---|
78 | WXTEST_ANY_WITH_CONDITION(suiteName, Condition, testMethod, CPPUNIT_TEST_FAIL(testMethod))
|
---|
79 |
|
---|
80 |
|
---|
81 | ///////////////////////////////////////////////////////////////////////////////
|
---|
82 | // Some more compiler warning tweaking and auto linking.
|
---|
83 | //
|
---|
84 |
|
---|
85 | #ifdef __BORLANDC__
|
---|
86 | #pragma warn .8022
|
---|
87 | #endif
|
---|
88 |
|
---|
89 | #ifdef _MSC_VER
|
---|
90 | #pragma warning(default:4702)
|
---|
91 | #endif // _MSC_VER
|
---|
92 |
|
---|
93 | // for VC++ automatically link in cppunit library
|
---|
94 | #ifdef __VISUALC__
|
---|
95 | #ifdef NDEBUG
|
---|
96 | #pragma comment(lib, "cppunit.lib")
|
---|
97 | #else // Debug
|
---|
98 | #pragma comment(lib, "cppunitd.lib")
|
---|
99 | #endif // Release/Debug
|
---|
100 | #endif
|
---|
101 |
|
---|
102 | #endif // _WX_CPPUNIT_H_
|
---|
103 |
|
---|