CppUnit project page FAQ CppUnit home page

Main Page   Modules   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members   Related Pages  

Writing Test Plug-in


Compounds

struct  CppUnitTestPlugIn
 Test plug-in interface. More...

class  TestPlugInDefaultImpl
 Default implementation of test plug-in interface. More...


Defines

#define CPPUNIT_PLUGIN_EXPORT   extern "C"
 A macro to export a function from a dynamic library.


Detailed Description

Creating a test plug-in is really simple: Example:
 #include <cppunit/include/plugin/TestPlugIn.h>

 CPPUNIT_PLUGIN_IMPLEMENT();

The interface CppUnitTestPlugIn is automatically implemented by the previous macro. You can define your one implementation.

To provide your custom implementation of the plug-in interface, you must:

Some of the reason you may want to do this: See CppUnitTestPlugIn for further detail on how to do this.

Creating your own test plug-in with VC++:

See examples/simple/simple_plugin.dsp for an example.

Notes to VC++ users:

How does it works ?

When CppUnit is linked as a DLL, the singleton used for the TestFactoryRegistry is the same for the plug-in runner (also linked against CppUnit DLL). This means that the tests registered with the macros (at static initialization) are registered in the same registry. As soon as a DLL is loaded by the PlugInManager, the DLL static variable are constructed and the test registered to the TestFactoryRegistry.

After loading the DLL, the PlugInManager look-up a specific function exported by the DLL. That function returns a pointer on the plug-in interface, which is later used by the PlugInManager.

See also:
Creating TestSuite.

Define Documentation

#define CPPUNIT_PLUGIN_EXPORT   extern "C"
 

A macro to export a function from a dynamic library.

This macro export the C function following it from a dynamic library. Exporting the function makes it accessible to the DynamicLibraryManager.

Example of usage:

 #include <cppunit/include/plugin/TestPlugIn.h>

 CPPUNIT_PLUGIN_EXPORT CppUnitTestPlugIn *CPPUNIT_PLUGIN_EXPORTED_NAME(void)
 {
   ...
   return &myPlugInInterface;
 }


SourceForge Logo hosts this site. Send comments to:
CppUnit Developers