Imported Upstream version 2.81
[platform/upstream/libbullet.git] / UnitTests / cppunit / src / cppunit / TestResultCollector.cpp
1 #include <cppunit/TestFailure.h>
2 #include <cppunit/TestResultCollector.h>
3
4
5 CPPUNIT_NS_BEGIN
6
7
8 TestResultCollector::TestResultCollector( SynchronizationObject *syncObject )
9     : TestSuccessListener( syncObject )
10 {
11   reset();
12 }
13
14
15 TestResultCollector::~TestResultCollector()
16 {
17   freeFailures();
18 }
19
20
21 void 
22 TestResultCollector::freeFailures()
23 {
24   TestFailures::iterator itFailure = m_failures.begin();
25   while ( itFailure != m_failures.end() )
26     delete *itFailure++;
27   m_failures.clear();
28 }
29
30
31 void 
32 TestResultCollector::reset()
33 {
34   TestSuccessListener::reset();
35
36   ExclusiveZone zone( m_syncObject ); 
37   freeFailures();
38   m_testErrors = 0;
39   m_tests.clear();
40 }
41
42
43 void 
44 TestResultCollector::startTest( Test *test )
45 {
46   ExclusiveZone zone (m_syncObject); 
47   m_tests.push_back( test );
48 }
49
50
51 void 
52 TestResultCollector::addFailure( const TestFailure &failure )
53 {
54   TestSuccessListener::addFailure( failure );
55
56   ExclusiveZone zone( m_syncObject ); 
57   if ( failure.isError() )
58     ++m_testErrors;
59   m_failures.push_back( failure.clone() );
60 }
61
62
63 /// Gets the number of run tests.
64 int 
65 TestResultCollector::runTests() const
66
67   ExclusiveZone zone( m_syncObject ); 
68   return m_tests.size(); 
69 }
70
71
72 /// Gets the number of detected errors (uncaught exception).
73 int 
74 TestResultCollector::testErrors() const
75
76   ExclusiveZone zone( m_syncObject );
77   return m_testErrors;
78 }
79
80
81 /// Gets the number of detected failures (failed assertion).
82 int 
83 TestResultCollector::testFailures() const
84
85   ExclusiveZone zone( m_syncObject ); 
86   return m_failures.size() - m_testErrors;
87 }
88
89
90 /// Gets the total number of detected failures.
91 int 
92 TestResultCollector::testFailuresTotal() const
93 {
94   ExclusiveZone zone( m_syncObject ); 
95   return m_failures.size();
96 }
97
98
99 /// Returns a the list failures (random access collection).
100 const TestResultCollector::TestFailures & 
101 TestResultCollector::failures() const
102
103   ExclusiveZone zone( m_syncObject );
104   return m_failures; 
105 }
106
107
108 const TestResultCollector::Tests &
109 TestResultCollector::tests() const
110 {
111   ExclusiveZone zone( m_syncObject );
112   return m_tests;
113 }
114
115
116 CPPUNIT_NS_END
117