summaryrefslogtreecommitdiff
path: root/src/cppunit
diff options
context:
space:
mode:
authorBaptiste Lepilleur <gaiacrtn@free.fr>2002-04-17 21:27:28 +0000
committerBaptiste Lepilleur <gaiacrtn@free.fr>2002-04-17 21:27:28 +0000
commit87e5cf8f526380c40f63208c6c9e785f73d327b7 (patch)
treeba1871a917dfae7667b31587ced4072d5d18657d /src/cppunit
parent6c1e9ed0f8fd7339084186df71b4dfc4c98a524e (diff)
downloadcppunit-87e5cf8f526380c40f63208c6c9e785f73d327b7.tar.gz
Bumped version to 1.
bumped version to 1.9.3 * FAQ: added question about 4786 warning on VC++. * NEWS: updated. * contrib/msvc/readme.txt: moved to contrib/readme.txt. * contrib/xml-xsl/report.xsl: added XML style sheet contributed by 'cuppa' project team (http://sourceforge.jp/projects/cuppa/) * examples/cppunittest/TestResultTest.h: * examples/cppunittest/TestResultTest.cpp: added tests for startTestRun()/endTestRun(). * examples/simple/*: added. A simple example. * include/cppunit/BriefTestProgressListener.h: * src/cppunit/BriefTestProgressListener.cpp: added. Verbose progess listener that print the test name before running the test. * include/cppunit/TestListener.h: added startTestRun()/endTestRun(). * include/cppunit/TestResult.h: * src/cppunit/TestResult.cpp: added runTest(), to be called to run a test by test runner. * src/cppunit/TextTestRunner.cpp: * src/cppunit/TestRunner.cpp: updated to use TestResult::runTest(). * include/cppunit/plugin/PlugInManager.h: * src/cppunit/PlugInManager.cpp: added. Managers for all loaded plug-ins. * include/cppunit/plugin/TestPlugInDefaultImpl.h: * src/cppunit/TestPlugInDefaultImpl.cpp: renamed TestPlugInAdapter. All implementations are empty. * include/cppunit/plugin/TestPlugInSuite.h: removed. * src/cppunit/TestPlugInSuite.cpp: removed. Replaced by PlugInManager. * include/cppunit/plugin/TestPlugIn.h: rewrote the plug-in interface to provide more versatility. updated macros to match new interface. * include/cppunit/extensions/TestFactoryRegistry.h: * include/cppunit/extensions/TestFactoryRegistry.cpp: Added unregisterFactory(). Added convenience method addRegistry(). Rewrote registry life cycle management. AutoRegisterSuite can now detect that the registry has been destroy and not call to it to unregister its test factory. * include/cppunit/extensions/AutoRegisterTest.h: on destruction, the registered factory is unregistered from the registry. * include/cppunit/extensions/HelperMacros.h: added macros CPPUNIT_REGISTRY_ADD_TO_DEFAULT and CPPUNIT_REGISTRY_ADD to help build test suite hierarchy. * src/cppunit/msvc/DllPlugInTester/*: moved to src/cppunit/DllPlugInTester/. * src/cppunit/DllPlugInTester/DllPlugInTester.cpp: removed UNICODE stuffs. Use the PlugInManager instead of PlugInTestSuite. Simplified: only one test on command line, but many DLL can be specified. Added configurations to link against cppunit dll, those are now the default configuration (static linking don't make much sense for plug-in).
Diffstat (limited to 'src/cppunit')
-rw-r--r--src/cppunit/BriefTestProgressListener.cpp56
-rw-r--r--src/cppunit/CompilerOutputter.cpp2
-rw-r--r--src/cppunit/Exception.cpp2
-rw-r--r--src/cppunit/Makefile.am3
-rw-r--r--src/cppunit/PlugInManager.cpp90
-rw-r--r--src/cppunit/TestFactoryRegistry.cpp171
-rw-r--r--src/cppunit/TestFailure.cpp6
-rw-r--r--src/cppunit/TestPlugInAdapter.cpp51
-rw-r--r--src/cppunit/TestPlugInDefaultImpl.cpp59
-rw-r--r--src/cppunit/TestPlugInSuite.cpp59
-rw-r--r--src/cppunit/TestResult.cpp33
-rw-r--r--src/cppunit/TestRunner.cpp3
-rw-r--r--src/cppunit/TextTestProgressListener.cpp2
-rw-r--r--src/cppunit/TextTestRunner.cpp2
-rw-r--r--src/cppunit/cppunit.dsp128
-rw-r--r--src/cppunit/cppunit_dll.dsp14
16 files changed, 400 insertions, 281 deletions
diff --git a/src/cppunit/BriefTestProgressListener.cpp b/src/cppunit/BriefTestProgressListener.cpp
new file mode 100644
index 0000000..8864ad5
--- /dev/null
+++ b/src/cppunit/BriefTestProgressListener.cpp
@@ -0,0 +1,56 @@
+#include <cppunit/BriefTestProgressListener.h>
+#include <cppunit/Test.h>
+#include <cppunit/TestFailure.h>
+#include <iostream>
+
+
+namespace CppUnit
+{
+
+
+BriefTestProgressListener::BriefTestProgressListener()
+ : m_lastTestFailed( false )
+{
+}
+
+
+BriefTestProgressListener::~BriefTestProgressListener()
+{
+}
+
+
+void
+BriefTestProgressListener::startTest( Test *test )
+{
+ std::cerr << test->getName();
+ std::cerr.flush();
+
+ m_lastTestFailed = false;
+}
+
+
+void
+BriefTestProgressListener::addFailure( const TestFailure &failure )
+{
+ std::cerr << " : " << (failure.isError() ? "error" : "assertion");
+ m_lastTestFailed = true;
+}
+
+
+void
+BriefTestProgressListener::endTest( Test *test )
+{
+ if ( !m_lastTestFailed )
+ std::cerr << " : OK";
+ std::cerr << std::endl;
+}
+
+
+void
+BriefTestProgressListener::done()
+{
+}
+
+
+} // namespace CppUnit
+
diff --git a/src/cppunit/CompilerOutputter.cpp b/src/cppunit/CompilerOutputter.cpp
index 2722cb3..1c0b14f 100644
--- a/src/cppunit/CompilerOutputter.cpp
+++ b/src/cppunit/CompilerOutputter.cpp
@@ -1,9 +1,9 @@
-#include <algorithm>
#include <cppunit/NotEqualException.h>
#include <cppunit/SourceLine.h>
#include <cppunit/TestFailure.h>
#include <cppunit/TestResultCollector.h>
#include <cppunit/CompilerOutputter.h>
+#include <algorithm>
namespace CppUnit
diff --git a/src/cppunit/Exception.cpp b/src/cppunit/Exception.cpp
index add261a..ab8cdde 100644
--- a/src/cppunit/Exception.cpp
+++ b/src/cppunit/Exception.cpp
@@ -1,4 +1,4 @@
-#include "cppunit/Exception.h"
+#include <cppunit/Exception.h>
namespace CppUnit {
diff --git a/src/cppunit/Makefile.am b/src/cppunit/Makefile.am
index bed96e4..b8978f2 100644
--- a/src/cppunit/Makefile.am
+++ b/src/cppunit/Makefile.am
@@ -1,5 +1,5 @@
#
-# $Id: Makefile.am,v 1.25 2002-04-15 16:01:18 blep Exp $
+# $Id: Makefile.am,v 1.26 2002-04-17 22:27:28 blep Exp $
#
EXTRA_DIST = cppunit.dsp cppunit_dll.dsp DllMain.cpp
@@ -40,6 +40,7 @@ libcppunit_la_SOURCES = \
TextTestRunner.cpp \
TypeInfoHelper.cpp \
UnixDynamicLibraryManager.cpp \
+ VerboseTestProgressListener.cpp \
XmlOutputter.cpp \
Win32DynamicLibraryManager.cpp
diff --git a/src/cppunit/PlugInManager.cpp b/src/cppunit/PlugInManager.cpp
new file mode 100644
index 0000000..ad17a65
--- /dev/null
+++ b/src/cppunit/PlugInManager.cpp
@@ -0,0 +1,90 @@
+#include <cppunit/plugin/PlugInManager.h>
+#include <cppunit/extensions/TestFactoryRegistry.h>
+#include <cppunit/plugin/TestPlugIn.h>
+#include <cppunit/plugin/DynamicLibraryManager.h>
+
+
+namespace CppUnit
+{
+
+
+
+PlugInManager::PlugInManager()
+{
+}
+
+
+PlugInManager::~PlugInManager()
+{
+ for ( PlugIns::iterator it = m_plugIns.begin(); it != m_plugIns.end(); ++it )
+ unload( *it );
+}
+
+
+void
+PlugInManager::load( const std::string &libraryFileName,
+ const Parameters &parameters )
+{
+ PlugInInfo info;
+ info.m_fileName = libraryFileName;
+ info.m_manager = new DynamicLibraryManager( libraryFileName );
+
+ TestPlugInSignature plug = (TestPlugInSignature)info.m_manager->findSymbol(
+ CPPUNIT_STRINGIZE( CPPUNIT_PLUGIN_EXPORTED_NAME ) );
+ info.m_interface = (*plug)();
+
+ m_plugIns.push_back( info );
+
+ info.m_interface->initialize( &TestFactoryRegistry::getRegistry(), parameters );
+}
+
+
+void
+PlugInManager::unload( const std::string &libraryFileName )
+{
+ for ( PlugIns::iterator it = m_plugIns.begin(); it != m_plugIns.end(); ++it )
+ {
+ if ( it->m_fileName == libraryFileName )
+ {
+ unload( *it );
+ m_plugIns.erase( it );
+ break;
+ }
+ }
+}
+
+
+void
+PlugInManager::addListener( TestResult *eventManager )
+{
+ for ( PlugIns::iterator it = m_plugIns.begin(); it != m_plugIns.end(); ++it )
+ it->m_interface->addListener( eventManager );
+}
+
+
+void
+PlugInManager::removeListener( TestResult *eventManager )
+{
+ for ( PlugIns::iterator it = m_plugIns.begin(); it != m_plugIns.end(); ++it )
+ it->m_interface->removeListener( eventManager );
+}
+
+
+void
+PlugInManager::unload( PlugInInfo &plugIn )
+{
+ try
+ {
+ plugIn.m_interface->uninitialize( &TestFactoryRegistry::getRegistry() );
+ }
+ catch (...)
+ {
+ delete plugIn.m_manager;
+ plugIn.m_manager = NULL;
+ throw;
+ }
+}
+
+
+} // namespace CppUnit
+
diff --git a/src/cppunit/TestFactoryRegistry.cpp b/src/cppunit/TestFactoryRegistry.cpp
index d46ff29..ec10c5f 100644
--- a/src/cppunit/TestFactoryRegistry.cpp
+++ b/src/cppunit/TestFactoryRegistry.cpp
@@ -1,7 +1,7 @@
#include <cppunit/extensions/TestFactoryRegistry.h>
#include <cppunit/TestSuite.h>
-#include <set>
-
+#include <map>
+#include <assert.h>
#if CPPUNIT_USE_TYPEINFO_NAME
# include "cppunit/extensions/TypeInfoHelper.h"
@@ -10,86 +10,77 @@
namespace CppUnit {
-/** (Implementation) This class manages all the TestFactoryRegistry.
- *
- * Responsible for the life-cycle of the TestFactoryRegistry.
- *
- * TestFactory registry must call wasDestroyed() to indicate that
- * a given TestRegistry was destroyed, and needDestroy() to
- * know if a given TestFactory need to be destroyed (was not already
- * destroyed by another TestFactoryRegistry).
- */
-class NamedRegistries
-{
-public:
- ~NamedRegistries();
-
- static NamedRegistries &getInstance();
-
- TestFactoryRegistry &getRegistry( std::string name );
-
- void wasDestroyed( TestFactory *factory );
-
- bool needDestroy( TestFactory *factory );
+class TestFactoryRegistryList
+{
private:
typedef std::map<std::string, TestFactoryRegistry *> Registries;
Registries m_registries;
- typedef std::set<TestFactory *> Factories;
- Factories m_factoriesToDestroy;
- Factories m_destroyedFactories;
-};
-
+ enum State {
+ doNotChange =0,
+ notCreated,
+ exist,
+ destroyed
+ };
-NamedRegistries::~NamedRegistries()
-{
- Registries::iterator it = m_registries.begin();
- while ( it != m_registries.end() )
+ static State stateFlag( State newState = doNotChange )
{
- TestFactoryRegistry *registry = (it++)->second;
- if ( needDestroy( registry ) )
- delete registry;
+ static State state = notCreated;
+ if ( newState != doNotChange )
+ state = newState;
+ return state;
}
-}
-
-NamedRegistries &
-NamedRegistries::getInstance()
-{
- static NamedRegistries namedRegistries;
- return namedRegistries;
-}
+ static TestFactoryRegistryList *getInstance()
+ {
+ static TestFactoryRegistryList list;
+ return &list;
+ }
+ TestFactoryRegistry *getInternalRegistry( const std::string &name )
+ {
+ Registries::const_iterator foundIt = m_registries.find( name );
+ if ( foundIt == m_registries.end() )
+ {
+ TestFactoryRegistry *factory = new TestFactoryRegistry( name );
+ m_registries.insert( std::make_pair( name, factory ) );
+ return factory;
+ }
+ return foundIt->second;
+ }
-TestFactoryRegistry &
-NamedRegistries::getRegistry( std::string name )
-{
- Registries::const_iterator foundIt = m_registries.find( name );
- if ( foundIt == m_registries.end() )
+public:
+ TestFactoryRegistryList()
{
- TestFactoryRegistry *factory = new TestFactoryRegistry( name );
- m_registries.insert( std::make_pair( name, factory ) );
- m_factoriesToDestroy.insert( factory );
- return *factory;
+ stateFlag( exist );
}
- return *foundIt->second;
-}
+ ~TestFactoryRegistryList()
+ {
+ for ( Registries::iterator it = m_registries.begin(); it != m_registries.end(); ++it )
+ delete it->second;
-void
-NamedRegistries::wasDestroyed( TestFactory *factory )
-{
- m_factoriesToDestroy.erase( factory );
- m_destroyedFactories.insert( factory );
-}
+ stateFlag( destroyed );
+ }
+ static TestFactoryRegistry *getRegistry( const std::string &name )
+ {
+ // If the following assertion failed, then TestFactoryRegistry::getRegistry()
+ // was called during static variable destruction without checking the registry
+ // validity beforehand using TestFactoryRegistry::isValid() beforehand.
+ assert( isValid() );
+ if ( !isValid() ) // release mode
+ return NULL; // => force CRASH
+
+ return getInstance()->getInternalRegistry( name );
+ }
-bool
-NamedRegistries::needDestroy( TestFactory *factory )
-{
- return m_destroyedFactories.count( factory ) == 0;
-}
+ static bool isValid()
+ {
+ return stateFlag() != destroyed;
+ }
+};
@@ -101,33 +92,13 @@ TestFactoryRegistry::TestFactoryRegistry( std::string name ) :
TestFactoryRegistry::~TestFactoryRegistry()
{
- // The wasDestroyed() and needDestroy() is used to prevent
- // a double destruction of a factory registry.
- // registerFactory( "All Tests", getRegistry( "Unit Tests" ) );
- // => the TestFactoryRegistry "Unit Tests" is owned by both
- // the "All Tests" registry and the NamedRegistries...
- NamedRegistries::getInstance().wasDestroyed( this );
-
- for ( Factories::iterator it = m_factories.begin(); it != m_factories.end(); ++it )
- {
- TestFactory *factory = it->second;
- if ( NamedRegistries::getInstance().needDestroy( factory ) )
- delete factory;
- }
-}
-
-
-TestFactoryRegistry &
-TestFactoryRegistry::getRegistry()
-{
- return getRegistry( "All Tests" );
}
TestFactoryRegistry &
TestFactoryRegistry::getRegistry( const std::string &name )
{
- return NamedRegistries::getInstance().getRegistry( name );
+ return *TestFactoryRegistryList::getRegistry( name );
}
@@ -135,19 +106,28 @@ void
TestFactoryRegistry::registerFactory( const std::string &name,
TestFactory *factory )
{
- m_factories[name] = factory;
+ registerFactory( factory );
}
void
TestFactoryRegistry::registerFactory( TestFactory *factory )
{
- static int serialNumber = 1;
+ m_factories.insert( factory );
+}
+
+
+void
+TestFactoryRegistry::unregisterFactory( TestFactory *factory )
+{
+ m_factories.erase( factory );
+}
- OStringStream ost;
- ost << "@Dummy@" << serialNumber++;
- registerFactory( ost.str(), factory );
+void
+TestFactoryRegistry::addRegistry( const std::string &name )
+{
+ registerFactory( &getRegistry( name ) );
}
@@ -167,10 +147,17 @@ TestFactoryRegistry::addTestToSuite( TestSuite *suite )
it != m_factories.end();
++it )
{
- TestFactory *factory = (*it).second;
+ TestFactory *factory = *it;
suite->addTest( factory->makeTest() );
}
}
+bool
+TestFactoryRegistry::isValid()
+{
+ return TestFactoryRegistryList::isValid();
+}
+
+
} // namespace CppUnit
diff --git a/src/cppunit/TestFailure.cpp b/src/cppunit/TestFailure.cpp
index 474761d..22e0ee9 100644
--- a/src/cppunit/TestFailure.cpp
+++ b/src/cppunit/TestFailure.cpp
@@ -1,6 +1,6 @@
-#include "cppunit/Exception.h"
-#include "cppunit/Test.h"
-#include "cppunit/TestFailure.h"
+#include <cppunit/Exception.h>
+#include <cppunit/Test.h>
+#include <cppunit/TestFailure.h>
namespace CppUnit {
diff --git a/src/cppunit/TestPlugInAdapter.cpp b/src/cppunit/TestPlugInAdapter.cpp
new file mode 100644
index 0000000..87f761a
--- /dev/null
+++ b/src/cppunit/TestPlugInAdapter.cpp
@@ -0,0 +1,51 @@
+#include <cppunit/Portability.h>
+
+#if !defined(CPPUNIT_NO_TESTPLUGIN)
+
+#include <cppunit/extensions/TestFactoryRegistry.h>
+#include <cppunit/TestSuite.h>
+#include <cppunit/plugin/TestPlugInAdapter.h>
+
+
+namespace CppUnit
+{
+
+TestPlugInAdapter::TestPlugInAdapter()
+{
+}
+
+
+TestPlugInAdapter::~TestPlugInAdapter()
+{
+}
+
+
+void
+TestPlugInAdapter::initialize( TestFactoryRegistry *registry,
+ const Parameters &parameters )
+{
+}
+
+
+void
+TestPlugInAdapter::addListener( TestResult *eventManager )
+{
+}
+
+
+void
+TestPlugInAdapter::removeListener( TestResult *eventManager )
+{
+}
+
+
+void
+TestPlugInAdapter::uninitialize( TestFactoryRegistry *registry )
+{
+}
+
+
+} // namespace CppUnit
+
+
+#endif // !defined(CPPUNIT_NO_TESTPLUGIN)
diff --git a/src/cppunit/TestPlugInDefaultImpl.cpp b/src/cppunit/TestPlugInDefaultImpl.cpp
deleted file mode 100644
index d6bd117..0000000
--- a/src/cppunit/TestPlugInDefaultImpl.cpp
+++ /dev/null
@@ -1,59 +0,0 @@
-#include <cppunit/Portability.h>
-
-#if !defined(CPPUNIT_NO_TESTPLUGIN)
-
-#include <cppunit/extensions/TestFactoryRegistry.h>
-#include <cppunit/TestSuite.h>
-#include <cppunit/plugin/TestPlugInDefaultImpl.h>
-
-
-namespace CppUnit
-{
-
-TestPlugInDefaultImpl::TestPlugInDefaultImpl()
- : m_suite( NULL )
-{
-}
-
-
-TestPlugInDefaultImpl::~TestPlugInDefaultImpl()
-{
- delete m_suite;
- m_suite = NULL;
-}
-
-
-void
-TestPlugInDefaultImpl::initialize()
-{
- m_suite = new TestSuite( getSuiteName() );
- TestFactoryRegistry::getRegistry().addTestToSuite( m_suite );
-}
-
-
-Test *
-TestPlugInDefaultImpl::getTestSuite()
-{
- return m_suite;
-}
-
-
-void
-TestPlugInDefaultImpl::uninitialize()
-{
- delete m_suite;
- m_suite = NULL;
-}
-
-
-std::string
-TestPlugInDefaultImpl::getSuiteName()
-{
- return "All Tests";
-}
-
-
-} // namespace CppUnit
-
-
-#endif // !defined(CPPUNIT_NO_TESTPLUGIN)
diff --git a/src/cppunit/TestPlugInSuite.cpp b/src/cppunit/TestPlugInSuite.cpp
deleted file mode 100644
index a8fea7a..0000000
--- a/src/cppunit/TestPlugInSuite.cpp
+++ /dev/null
@@ -1,59 +0,0 @@
-#include <cppunit/plugin/TestPlugInSuite.h>
-
-#if !defined(CPPUNIT_NO_TESTPLUGIN)
-
-#include <cppunit/plugin/DynamicLibraryManager.h>
-
-
-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
diff --git a/src/cppunit/TestResult.cpp b/src/cppunit/TestResult.cpp
index aacb9a4..39ec208 100644
--- a/src/cppunit/TestResult.cpp
+++ b/src/cppunit/TestResult.cpp
@@ -1,3 +1,4 @@
+#include <cppunit/Test.h>
#include <cppunit/TestFailure.h>
#include <cppunit/TestListener.h>
#include <cppunit/TestResult.h>
@@ -150,4 +151,36 @@ TestResult::removeListener ( TestListener *listener )
m_listeners.end());
}
+
+void
+TestResult::runTest( Test *test )
+{
+ startTestRun( test );
+ test->run( this );
+ endTestRun( test );
+}
+
+
+void
+TestResult::startTestRun( Test *test )
+{
+ ExclusiveZone zone( m_syncObject );
+ for ( TestListeners::iterator it = m_listeners.begin();
+ it != m_listeners.end();
+ ++it )
+ (*it)->startTestRun( test, this );
+}
+
+
+void
+TestResult::endTestRun( Test *test )
+{
+ ExclusiveZone zone( m_syncObject );
+ for ( TestListeners::iterator it = m_listeners.begin();
+ it != m_listeners.end();
+ ++it )
+ (*it)->endTestRun( test, this );
+}
+
+
} // namespace CppUnit
diff --git a/src/cppunit/TestRunner.cpp b/src/cppunit/TestRunner.cpp
index 9bce34d..5baf69e 100644
--- a/src/cppunit/TestRunner.cpp
+++ b/src/cppunit/TestRunner.cpp
@@ -1,5 +1,6 @@
#include <cppunit/TestRunner.h>
#include <cppunit/TestPath.h>
+#include <cppunit/TestResult.h>
namespace CppUnit
@@ -91,7 +92,7 @@ TestRunner::run( TestResult &controller,
TestPath path = m_suite->resolveTestPath( testPath );
Test *testToRun = path.getChildTest();
- testToRun->run( &controller );
+ controller.runTest( testToRun );
}
diff --git a/src/cppunit/TextTestProgressListener.cpp b/src/cppunit/TextTestProgressListener.cpp
index bd86ddf..0eb783d 100644
--- a/src/cppunit/TextTestProgressListener.cpp
+++ b/src/cppunit/TextTestProgressListener.cpp
@@ -21,7 +21,6 @@ void
TextTestProgressListener::startTest( Test *test )
{
std::cerr << ".";
- std::cerr.flush();
}
@@ -29,7 +28,6 @@ void
TextTestProgressListener::addFailure( const TestFailure &failure )
{
std::cerr << ( failure.isError() ? "E" : "F" );
- std::cerr.flush();
}
diff --git a/src/cppunit/TextTestRunner.cpp b/src/cppunit/TextTestRunner.cpp
index ad8f72c..74c1d8f 100644
--- a/src/cppunit/TextTestRunner.cpp
+++ b/src/cppunit/TextTestRunner.cpp
@@ -123,7 +123,7 @@ TestRunner::runTest( Test *test,
if ( doPrintProgress )
m_eventManager->addListener( &progress );
- test->run( m_eventManager );
+ m_eventManager->runTest( test );
if ( doPrintProgress )
m_eventManager->removeListener( &progress );
diff --git a/src/cppunit/cppunit.dsp b/src/cppunit/cppunit.dsp
index d38f5ef..6075765 100644
--- a/src/cppunit/cppunit.dsp
+++ b/src/cppunit/cppunit.dsp
@@ -105,89 +105,53 @@ LIB32=link.exe -lib
# Name "cppunit - Win32 Release"
# Name "cppunit - Win32 Debug"
# Name "cppunit - Win32 Debug Crossplatform Setting"
-# Begin Group "plugin"
+# Begin Group "documentation"
# PROP Default_Filter ""
# Begin Source File
-SOURCE=.\BeosDynamicLibraryManager.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=.\DynamicLibraryManager.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\include\cppunit\plugin\DynamicLibraryManager.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\DynamicLibraryManagerException.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\include\cppunit\plugin\DynamicLibraryManagerException.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\include\cppunit\plugin\TestPlugIn.h
-# End Source File
-# Begin Source File
-
-SOURCE=.\TestPlugInDefaultImpl.cpp
+SOURCE=..\..\ChangeLog
# End Source File
# Begin Source File
-SOURCE=..\..\include\cppunit\plugin\TestPlugInDefaultImpl.h
+SOURCE=..\..\doc\cookbook.dox
# End Source File
# Begin Source File
-SOURCE=.\TestPlugInSuite.cpp
+SOURCE=..\..\doc\FAQ
# End Source File
# Begin Source File
-SOURCE=..\..\include\cppunit\plugin\TestPlugInSuite.h
+SOURCE=..\..\NEWS
# End Source File
# Begin Source File
-SOURCE=.\UnixDynamicLibraryManager.cpp
+SOURCE=..\..\doc\other_documentation.dox
# End Source File
# Begin Source File
-SOURCE=.\Win32DynamicLibraryManager.cpp
+SOURCE=..\..\TODO
# End Source File
# End Group
-# Begin Group "documentation"
+# Begin Group "listener"
# PROP Default_Filter ""
# Begin Source File
-SOURCE=..\..\ChangeLog
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\doc\cookbook.dox
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\doc\FAQ
+SOURCE=.\BriefTestProgressListener.cpp
# End Source File
# Begin Source File
-SOURCE=..\..\NEWS
+SOURCE=..\..\include\cppunit\BriefTestProgressListener.h
# End Source File
# Begin Source File
-SOURCE=..\..\doc\other_documentation.dox
+SOURCE=.\TestResultCollector.cpp
# End Source File
# Begin Source File
-SOURCE=..\..\TODO
+SOURCE=..\..\include\cppunit\TestResultCollector.h
# End Source File
-# End Group
-# Begin Group "listener"
-
-# PROP Default_Filter ""
# Begin Source File
SOURCE=.\TestSuccessListener.cpp
@@ -262,14 +226,6 @@ SOURCE=..\..\include\cppunit\Outputter.h
# End Source File
# Begin Source File
-SOURCE=.\TestResultCollector.cpp
-# End Source File
-# Begin Source File
-
-SOURCE=..\..\include\cppunit\TestResultCollector.h
-# End Source File
-# Begin Source File
-
SOURCE=.\TextOutputter.cpp
# End Source File
# Begin Source File
@@ -489,6 +445,66 @@ SOURCE=.\TestSetUp.cpp
SOURCE=..\..\include\cppunit\extensions\TestSetUp.h
# End Source File
# End Group
+# Begin Group "plugin"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=.\BeOsDynamicLibraryManager.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\DynamicLibraryManager.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\include\cppunit\plugin\DynamicLibraryManager.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\DynamicLibraryManagerException.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\include\cppunit\plugin\DynamicLibraryManagerException.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\include\cppunit\plugin\Parameters.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\PlugInManager.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\include\cppunit\plugin\PlugInManager.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\include\cppunit\plugin\TestPlugIn.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\TestPlugInAdapter.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\include\cppunit\plugin\TestPlugInAdapter.h
+# End Source File
+# Begin Source File
+
+SOURCE=.\UnixDynamicLibraryManager.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\Win32DynamicLibraryManager.cpp
+# End Source File
+# End Group
+# Begin Source File
+
+SOURCE=..\..\configure.in
+# End Source File
# Begin Source File
SOURCE="..\..\INSTALL-WIN32.txt"
diff --git a/src/cppunit/cppunit_dll.dsp b/src/cppunit/cppunit_dll.dsp
index 5960ecc..ceca72e 100644
--- a/src/cppunit/cppunit_dll.dsp
+++ b/src/cppunit/cppunit_dll.dsp
@@ -455,23 +455,27 @@ SOURCE=..\..\include\cppunit\plugin\DynamicLibraryManagerException.h
# End Source File
# Begin Source File
-SOURCE=..\..\include\cppunit\plugin\TestPlugIn.h
+SOURCE=..\..\include\cppunit\plugin\Parameters.h
# End Source File
# Begin Source File
-SOURCE=.\TestPlugInDefaultImpl.cpp
+SOURCE=.\PlugInManager.cpp
# End Source File
# Begin Source File
-SOURCE=..\..\include\cppunit\plugin\TestPlugInDefaultImpl.h
+SOURCE=..\..\include\cppunit\plugin\PlugInManager.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\include\cppunit\plugin\TestPlugIn.h
# End Source File
# Begin Source File
-SOURCE=.\TestPlugInSuite.cpp
+SOURCE=.\TestPlugInAdapter.cpp
# End Source File
# Begin Source File
-SOURCE=..\..\include\cppunit\plugin\TestPlugInSuite.h
+SOURCE=..\..\include\cppunit\plugin\TestPlugInAdapter.h
# End Source File
# Begin Source File