#ifndef CPPUNIT_TESTRESULTCOLLECTOR_H
#define CPPUNIT_TESTRESULTCOLLECTOR_H
#include <cppunit/Portability.h>
#if CPPUNIT_NEED_DLL_DECL
#pragma warning( push )
#pragma warning( disable: 4251 )
#endif
#include <cppunit/TestSucessListener.h>
#include <deque>
namespace CppUnit
{
#if CPPUNIT_NEED_DLL_DECL
template class CPPUNIT_API deque<TestFailure *>;
template class CPPUNIT_API deque<Test *>;
#endif
class CPPUNIT_API TestResultCollector : public TestSucessListener
{
public:
typedef std::deque<TestFailure *> TestFailures;
typedef std::deque<Test *> Tests;
TestResultCollector( SynchronizationObject *syncObject = 0 );
virtual ~TestResultCollector();
void startTest( Test *test );
void addFailure( const TestFailure &failure );
virtual void reset();
virtual int runTests() const;
virtual int testErrors() const;
virtual int testFailures() const;
virtual int testFailuresTotal() const;
virtual const TestFailures& failures() const;
virtual const Tests &tests() const;
protected:
Tests m_tests;
TestFailures m_failures;
int m_testErrors;
private:
TestResultCollector( const TestResultCollector © );
void operator =( const TestResultCollector © );
};
}
#if CPPUNIT_NEED_DLL_DECL
#pragma warning( pop )
#endif
#endif