Imported Upstream version 2.81
[platform/upstream/libbullet.git] / UnitTests / cppunit / include / cppunit / TestResultCollector.h
1 #ifndef CPPUNIT_TESTRESULTCOLLECTOR_H
2 #define CPPUNIT_TESTRESULTCOLLECTOR_H
3
4 #include <cppunit/Portability.h>
5
6 #if CPPUNIT_NEED_DLL_DECL
7 #pragma warning( push )
8 #pragma warning( disable: 4251 4660 )  // X needs to have dll-interface to be used by clients of class Z
9 #endif
10
11 #include <cppunit/TestSuccessListener.h>
12 #include <cppunit/portability/CppUnitDeque.h>
13
14
15 CPPUNIT_NS_BEGIN
16
17 #if CPPUNIT_NEED_DLL_DECL
18 //  template class CPPUNIT_API std::deque<TestFailure *>;
19 //  template class CPPUNIT_API std::deque<Test *>;
20 #endif
21
22
23 /*! \brief Collects test result.
24  * \ingroup WritingTestResult
25  * \ingroup BrowsingCollectedTestResult
26  * 
27  * A TestResultCollector is a TestListener which collects the results of executing 
28  * a test case. It is an instance of the Collecting Parameter pattern.
29  *
30  * The test framework distinguishes between failures and errors.
31  * A failure is anticipated and checked for with assertions. Errors are
32  * unanticipated problems signified by exceptions that are not generated
33  * by the framework.
34  * \see TestListener, TestFailure.
35  */
36 class CPPUNIT_API TestResultCollector : public TestSuccessListener
37 {
38 public:
39   typedef CppUnitDeque<TestFailure *> TestFailures;
40   typedef CppUnitDeque<Test *> Tests;
41
42
43   /*! Constructs a TestResultCollector object.
44    */
45   TestResultCollector( SynchronizationObject *syncObject = 0 );
46
47   /// Destructor.
48   virtual ~TestResultCollector();
49
50   void startTest( Test *test );
51   void addFailure( const TestFailure &failure );
52
53   virtual void reset();
54
55   virtual int runTests() const;
56   virtual int testErrors() const;
57   virtual int testFailures() const;
58   virtual int testFailuresTotal() const;
59
60   virtual const TestFailures& failures() const;
61   virtual const Tests &tests() const;
62
63 protected:
64   void freeFailures();
65
66   Tests m_tests;
67   TestFailures m_failures;
68   int m_testErrors;
69
70 private:
71   /// Prevents the use of the copy constructor.
72   TestResultCollector( const TestResultCollector &copy );
73
74   /// Prevents the use of the copy operator.
75   void operator =( const TestResultCollector &copy );
76 };
77
78
79
80 CPPUNIT_NS_END
81
82 #if CPPUNIT_NEED_DLL_DECL
83 #pragma warning( pop )
84 #endif
85
86
87 #endif  // CPPUNIT_TESTRESULTCOLLECTOR_H