summaryrefslogtreecommitdiff
path: root/include/msvc6/testrunner/TestPlugInInterface.h
blob: 79c128df3f2b85e462076df9a26f3acead3d99f4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#ifndef CPPUNIT_TESTPLUGINRUNNER_TESTPLUGININTERFACE_H
#define CPPUNIT_TESTPLUGINRUNNER_TESTPLUGININTERFACE_H

#include <cppunit/Test.h>
#include <cppunit/TestSuite.h>

#if !defined(WINAPI)
#define WIN32_LEAN_AND_MEAN 
#define NOGDI
#define NOUSER
#define NOKERNEL
#define NOSOUND
#ifndef NOMINMAX
#define NOMINMAX
#endif
#include <windows.h>
#endif

/*! \brief Abstract TestPlugIn for DLL.
 * \deprecated Use CppUnitTestPlugIn instead.
 *
 * A Test plug-in DLL must subclass this class and "publish" an instance
 * using the following exported function:
 * \code
 * extern "C" {
 *   __declspec(dllimport) TestPlugInInterface *GetTestPlugInInterface();
 * }
 * \endcode
 *
 * When loading the DLL, the TestPlugIn runner look-up this function and
 * retreives the 
 *
 */
class TestPlugInInterface
{
public:
  virtual ~TestPlugInInterface() {}

  /*! Returns an instance of the "All Tests" suite.
   *
   * \return Instance of the top-level suite that contains all test. Ownership
   *         is granted to the method caller.
   */
  virtual CppUnit::Test *makeTest() =0;
};

typedef TestPlugInInterface* (WINAPI *GetTestPlugInInterfaceFunction)(void);


extern "C" {
  __declspec(dllexport) TestPlugInInterface *GetTestPlugInInterface();
}

#endif // CPPUNIT_TESTPLUGINRUNNER_TESTPLUGININTERFACE_H