CppUnit project page FAQ CppUnit home page

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

Writing Test Plug-in


Classes

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:
CreatingTestSuite.

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