From 1b4bcf6f703248cb397587fe08635a1491d460ec Mon Sep 17 00:00:00 2001 From: Baptiste Lepilleur Date: Mon, 15 Apr 2002 14:33:11 +0000 Subject: NEWS: updated. NEWS: updated. * configure.in: added include/cppunit/config/Makefile and include/cppunit/plugin/Makefile to the list of target. * doc/CppUnit-win.dox: enabled generation of HTML Help documentation. * include/cppunit/config/Makefile.am: * include/cppunit/plugin/Makefile.am: added. * include/cppunit/config-bcb5.h: * include/cppunit/config-msvc6.h: * include/cppunit/config-mac.h: moved to include/cppunit/config/. * include/cppunit/Portability.h: updated config files location. Added macros CPPUNIT_STRINGIZE and CPPUNIT_JOIN (implementation adapted from boost.org). Added macro CPPUNIT_MAKE_UNIQUE_NAME. * include/cppunit/Test.h: modified methods order. * include/cppunit/extensions/HelperMacros.h: renamed macro __CPPUNIT_MAKE_UNIQUE_NAME to CPPUNIT_MAKE_UNIQUE_NAME and moved its definition to include/cppunit/Portability.h. * include/cppunit/extensions/TestDecorator.h: Inherits Test instead of TestLeaf. * include/cppunit/plugin/DynamicLibraryManager.h: * src/cppunit/DynamicLibraryManager.cpp: added. DLL manager (load & lookup symbol). * src/cppunit/BeOsDynamicLibraryManager.cpp: * src/cppunit/UnixDynamicLibraryManager.cpp: * src/cppunit/Win32DynamicLibraryManager.cpp: added. Implementation of platform dependent methods of DynamicLibraryManager. * include/cppunit/plugin/DynamicLibraryManagerException.h: * src/cppunit/DynamicLibraryManagerException.cpp: added. Exception thrown by DynamicLibraryManager. * include/cppunit/plugin/TestPlugIn.h: added. CppUnitTestPlugIn interface definition. Helper macros to implements plug-in. * include/cppunit/plugin/TestPlugInSuite.h: * src/cppunit/plugin/TestPlugInSuite.cpp: added. A suite to wrap a test plug-in. * include/cppunit/plugin/TestPlugInDefaultImpl.h: * src/cppunit/TestPlugInDefaultImpl.cpp: added. A default implementation of the test plug-in interface. * src/msvc6/DllPlugInTester/DllPlugInTester.cpp: updated to use the new TestPlugIn. * examples/cppunittest/TestResultCollectorTest.cpp: fixed typo. --- src/cppunit/TestPlugInSuite.cpp | 59 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 src/cppunit/TestPlugInSuite.cpp (limited to 'src/cppunit/TestPlugInSuite.cpp') diff --git a/src/cppunit/TestPlugInSuite.cpp b/src/cppunit/TestPlugInSuite.cpp new file mode 100644 index 0000000..a8fea7a --- /dev/null +++ b/src/cppunit/TestPlugInSuite.cpp @@ -0,0 +1,59 @@ +#include + +#if !defined(CPPUNIT_NO_TESTPLUGIN) + +#include + + +namespace CppUnit +{ + + +TestPlugInSuite::TestPlugInSuite( const std::string &libraryFileName ) + : m_library( new DynamicLibraryManager( libraryFileName ) ) + , m_librarySuite( NULL ) + , m_interface( NULL ) +{ + try + { + CppUnitTestPlugInSignature plug = (CppUnitTestPlugInSignature)m_library->findSymbol( + CPPUNIT_STRINGIZE( CPPUNIT_PLUGIN_EXPORTED_NAME ) ); + m_interface = (*plug)(); + m_interface->initialize(); + m_librarySuite = m_interface->getTestSuite(); + } + catch( ... ) + { + delete m_library; + m_library = NULL; + throw; + } +} + + +TestPlugInSuite::~TestPlugInSuite() +{ + if ( m_interface ) + m_interface->uninitialize(); + delete m_library; +} + + +int +TestPlugInSuite::getChildTestCount() const +{ + return m_librarySuite->getChildTestCount(); +} + + +Test * +TestPlugInSuite::doGetChildTestAt( int index ) const +{ + return m_librarySuite->getChildTestAt( index ); +} + + +} // namespace CppUnit + + +#endif // !defined(CPPUNIT_NO_TESTPLUGIN) \ No newline at end of file -- cgit v1.2.1