CppUnit project page FAQ

TestPlugIn.h
Go to the documentation of this file.
1#ifndef CPPUNIT_PLUGIN_TESTPLUGIN
2#define CPPUNIT_PLUGIN_TESTPLUGIN
3
5
6#if !defined(CPPUNIT_NO_TESTPLUGIN)
7
9
11
12
13class Test;
15class TestResult;
16class XmlOutputter;
17
19
44{
58 virtual void initialize( CPPUNIT_NS::TestFactoryRegistry *registry,
59 const CPPUNIT_NS::PlugInParameters &parameters ) =0;
60
68 virtual void addListener( CPPUNIT_NS::TestResult *eventManager ) =0;
69
74 virtual void removeListener( CPPUNIT_NS::TestResult *eventManager ) =0;
75
78 virtual void addXmlOutputterHooks( CPPUNIT_NS::XmlOutputter *outputter ) =0;
79
84 virtual void removeXmlOutputterHooks() = 0;
85
94 virtual void uninitialize( CPPUNIT_NS::TestFactoryRegistry *registry ) =0;
95
96 virtual ~CppUnitTestPlugIn() {}
97};
98
99
100
109#define CPPUNIT_PLUGIN_EXPORTED_NAME cppunitTestPlugIn
110
114typedef CppUnitTestPlugIn *(*TestPlugInSignature)();
115
116
120#define CPPUNIT_PLUGIN_EXPORTED_FUNCTION_IMPL( TestPlugInInterfaceType ) \
121 CPPUNIT_PLUGIN_EXPORT CppUnitTestPlugIn *CPPUNIT_PLUGIN_EXPORTED_NAME(void) \
122 { \
123 static TestPlugInInterfaceType plugIn; \
124 return &plugIn; \
125 } \
126 typedef char __CppUnitPlugInExportFunctionDummyTypeDef // dummy typedef so it can end with ';'
127
128
129// Note: This include should remain after definition of CppUnitTestPlugIn
131
132
141// Win32
142#if defined(CPPUNIT_HAVE_WIN32_DLL_LOADER)
143#if !defined(APIENTRY)
144#define WIN32_LEAN_AND_MEAN
145#define NOGDI
146#define NOUSER
147#define NOKERNEL
148#define NOSOUND
149#ifndef NOMINMAX
150#define NOMINMAX
151#endif
152#define BLENDFUNCTION void // for mingw & gcc
153#include <windows.h>
154#endif
155#define CPPUNIT_PLUGIN_IMPLEMENT_MAIN() \
156 BOOL APIENTRY DllMain( HANDLE, DWORD, LPVOID ) \
157 { \
158 return TRUE; \
159 } \
160 typedef char __CppUnitPlugInImplementMainDummyTypeDef
161
162// Unix
163#elif defined(CPPUNIT_HAVE_UNIX_DLL_LOADER) || defined(CPPUNIT_HAVE_UNIX_SHL_LOADER)
164#define CPPUNIT_PLUGIN_IMPLEMENT_MAIN() \
165 int main() \
166 { \
167 return 0; \
168 } \
169 typedef char __CppUnitPlugInImplementMainDummyTypeDef
170
171
172// Other
173#else // other platforms don't require anything specifics
174#endif
175
176
177
192#define CPPUNIT_PLUGIN_IMPLEMENT() \
193 CPPUNIT_PLUGIN_EXPORTED_FUNCTION_IMPL( CPPUNIT_NS::TestPlugInDefaultImpl ); \
194 CPPUNIT_PLUGIN_IMPLEMENT_MAIN()
195
196
197#endif // !defined(CPPUNIT_NO_TESTPLUGIN)
198
199
200#endif // CPPUNIT_PLUGIN_TESTPLUGIN
#define CPPUNIT_API
Definition CppUnitApi.h:27
#define CPPUNIT_NS_END
Definition Portability.h:106
#define CPPUNIT_NS_BEGIN
Definition Portability.h:105
Registry for TestFactory.
Definition TestFactoryRegistry.h:76
Base class for all test objects.
Definition Test.h:26
Manages TestListener.
Definition TestResult.h:48
Outputs a TestResultCollector in XML format.
Definition XmlOutputter.h:40
Test plug-in interface.
Definition TestPlugIn.h:44
virtual void removeXmlOutputterHooks()=0
Called when the XmlOutputter is destroyed.
virtual void addXmlOutputterHooks(CPPUNIT_NS::XmlOutputter *outputter)=0
Provides a way for the plug-in to register some XmlOutputterHook.
virtual ~CppUnitTestPlugIn()
Definition TestPlugIn.h:96
virtual void uninitialize(CPPUNIT_NS::TestFactoryRegistry *registry)=0
Called just before unloading the dynamic library.
virtual void removeListener(CPPUNIT_NS::TestResult *eventManager)=0
Gives a chance to the plug-in to remove its registered TestListener.
virtual void addListener(CPPUNIT_NS::TestResult *eventManager)=0
Gives a chance to the plug-in to register TestListener.
virtual void initialize(CPPUNIT_NS::TestFactoryRegistry *registry, const CPPUNIT_NS::PlugInParameters &parameters)=0
Called just after loading the dynamic library.

Send comments to:
CppUnit Developers