00001 #ifndef CPPUNIT_TESTRESULTCOLLECTOR_H
00002 #define CPPUNIT_TESTRESULTCOLLECTOR_H
00003
00004 #include <cppunit/Portability.h>
00005
00006 #if CPPUNIT_NEED_DLL_DECL
00007 #pragma warning( push )
00008 #pragma warning( disable: 4251 4660 ) // X needs to have dll-interface to be used by clients of class Z
00009 #endif
00010
00011 #include <cppunit/TestSuccessListener.h>
00012 #include <deque>
00013
00014
00015 CPPUNIT_NS_BEGIN
00016
00017
00031 class CPPUNIT_API TestResultCollector : public TestSuccessListener
00032 {
00033 public:
00034 typedef std::deque<TestFailure *> TestFailures;
00035 typedef std::deque<Test *> Tests;
00036
00037
00040 TestResultCollector( SynchronizationObject *syncObject = 0 );
00041
00043 virtual ~TestResultCollector();
00044
00045 void startTest( Test *test );
00046 void addFailure( const TestFailure &failure );
00047
00048 virtual void reset();
00049
00050 virtual int runTests() const;
00051 virtual int testErrors() const;
00052 virtual int testFailures() const;
00053 virtual int testFailuresTotal() const;
00054
00055 virtual const TestFailures& failures() const;
00056 virtual const Tests &tests() const;
00057
00058 protected:
00059 void freeFailures();
00060
00061 Tests m_tests;
00062 TestFailures m_failures;
00063 int m_testErrors;
00064
00065 private:
00067 TestResultCollector( const TestResultCollector © );
00068
00070 void operator =( const TestResultCollector © );
00071 };
00072
00073
00074
00075 CPPUNIT_NS_END
00076
00077 #if CPPUNIT_NEED_DLL_DECL
00078 #pragma warning( pop )
00079 #endif
00080
00081
00082 #endif // CPPUNIT_TESTRESULTCOLLECTOR_H