My Project  UNKNOWN_GIT_VERSION
TestTracker.cpp
Go to the documentation of this file.
1 #ifndef __cxxtest__TestTracker_cpp__
2 #define __cxxtest__TestTracker_cpp__
3 
4 #include <cxxtest/TestTracker.h>
5 
6 namespace CxxTest
7 {
8  bool TestTracker::_created = false;
9 
11  {
12  if ( !_created ) {
13  initialize();
14  _created = true;
15  }
16  }
17 
19  {
20  }
21 
23  {
24  static TestTracker theTracker;
25  return theTracker;
26  }
27 
29  {
30  _warnings = 0;
31  _failedTests = 0;
34  _failedSuites = 0;
35  setListener( 0 );
36  _world = 0;
37  _suite = 0;
38  _test = 0;
39  }
40 
42  {
43  return d ? d : &dummyTest();
44  }
45 
47  {
48  return d ? d : &dummySuite();
49  }
50 
52  {
53  return d ? d : &dummyWorld();
54  }
55 
57  {
58  return dummySuite().testDescription(0);
59  }
60 
62  {
63  return dummyWorld().suiteDescription(0);
64  }
65 
67  {
68  return _dummyWorld;
69  }
70 
72  {
73  _l = l ? l : &_dummyListener;
74  }
75 
77  {
78  setWorld( &wd );
80  _l->enterWorld( wd );
81  }
82 
84  {
85  setSuite( &sd );
87  _l->enterSuite(sd);
88  }
89 
91  {
92  setTest( &td );
93  _testFailedAsserts = false;
94  _l->enterTest(td);
95  }
96 
98  {
99  _l->leaveTest( td );
100  setTest( 0 );
101  }
102 
104  {
105  _l->leaveSuite( sd );
106  setSuite( 0 );
107  }
108 
110  {
111  _l->leaveWorld( wd );
112  setWorld( 0 );
113  }
114 
115  void TestTracker::trace( const char *file, unsigned line, const char *expression )
116  {
117  _l->trace( file, line, expression );
118  }
119 
120  void TestTracker::warning( const char *file, unsigned line, const char *expression )
121  {
122  countWarning();
123  _l->warning( file, line, expression );
124  }
125 
126  void TestTracker::failedTest( const char *file, unsigned line, const char *expression )
127  {
128  countFailure();
129  _l->failedTest( file, line, expression );
130  }
131 
132  void TestTracker::failedAssert( const char *file, unsigned line, const char *expression )
133  {
134  countFailure();
135  _l->failedAssert( file, line, expression );
136  }
137 
138  void TestTracker::failedAssertEquals( const char *file, unsigned line,
139  const char *xStr, const char *yStr,
140  const char *x, const char *y )
141  {
142  countFailure();
143  _l->failedAssertEquals( file, line, xStr, yStr, x, y );
144  }
145 
146  void TestTracker::failedAssertSameData( const char *file, unsigned line,
147  const char *xStr, const char *yStr,
148  const char *sizeStr, const void *x,
149  const void *y, unsigned size )
150  {
151  countFailure();
152  _l->failedAssertSameData( file, line, xStr, yStr, sizeStr, x, y, size );
153  }
154 
155  void TestTracker::failedAssertDelta( const char *file, unsigned line,
156  const char *xStr, const char *yStr, const char *dStr,
157  const char *x, const char *y, const char *d )
158  {
159  countFailure();
160  _l->failedAssertDelta( file, line, xStr, yStr, dStr, x, y, d );
161  }
162 
163  void TestTracker::failedAssertDiffers( const char *file, unsigned line,
164  const char *xStr, const char *yStr,
165  const char *value )
166  {
167  countFailure();
168  _l->failedAssertDiffers( file, line, xStr, yStr, value );
169  }
170 
171  void TestTracker::failedAssertLessThan( const char *file, unsigned line,
172  const char *xStr, const char *yStr,
173  const char *x, const char *y )
174  {
175  countFailure();
176  _l->failedAssertLessThan( file, line, xStr, yStr, x, y );
177  }
178 
179  void TestTracker::failedAssertLessThanEquals( const char *file, unsigned line,
180  const char *xStr, const char *yStr,
181  const char *x, const char *y )
182  {
183  countFailure();
184  _l->failedAssertLessThanEquals( file, line, xStr, yStr, x, y );
185  }
186 
187  void TestTracker::failedAssertPredicate( const char *file, unsigned line,
188  const char *predicate, const char *xStr, const char *x )
189  {
190  countFailure();
191  _l->failedAssertPredicate( file, line, predicate, xStr, x );
192  }
193 
194  void TestTracker::failedAssertRelation( const char *file, unsigned line,
195  const char *relation, const char *xStr, const char *yStr,
196  const char *x, const char *y )
197  {
198  countFailure();
199  _l->failedAssertRelation( file, line, relation, xStr, yStr, x, y );
200  }
201 
202  void TestTracker::failedAssertThrows( const char *file, unsigned line,
203  const char *expression, const char *type,
204  bool otherThrown )
205  {
206  countFailure();
207  _l->failedAssertThrows( file, line, expression, type, otherThrown );
208  }
209 
210  void TestTracker::failedAssertThrowsNot( const char *file, unsigned line, const char *expression )
211  {
212  countFailure();
213  _l->failedAssertThrowsNot( file, line, expression );
214  }
215 
217  {
218  _world = fixWorld( w );
219  setSuite( 0 );
220  }
221 
223  {
224  _suite = fixSuite( s );
225  setTest( 0 );
226  }
227 
229  {
230  _test = fixTest( t );
231  }
232 
234  {
235  ++ _warnings;
236  }
237 
239  {
240  if ( ++ _testFailedAsserts == 1 ) {
241  ++ _failedTests;
242  if ( ++ _suiteFailedTests == 1 )
243  ++ _failedSuites;
244  }
245  }
246 };
247 
248 #endif // __cxxtest__TestTracker_cpp__
CxxTest::TestTracker::leaveSuite
void leaveSuite(const SuiteDescription &sd)
Definition: TestTracker.cpp:103
CxxTest::TestTracker::_created
static bool _created
Definition: TestTracker.h:85
CxxTest::TestListener::failedAssertDelta
virtual void failedAssertDelta(const char *, unsigned, const char *, const char *, const char *, const char *, const char *, const char *)
Definition: TestListener.h:41
CxxTest::TestListener::warning
virtual void warning(const char *, unsigned, const char *)
Definition: TestListener.h:28
x
Variable x
Definition: cfModGcd.cc:4023
CxxTest::TestListener::failedAssertSameData
virtual void failedAssertSameData(const char *, unsigned, const char *, const char *, const char *, const void *, const void *, unsigned)
Definition: TestListener.h:37
y
const CanonicalForm int const CFList const Variable & y
Definition: facAbsFact.cc:57
CxxTest::WorldDescription::suiteDescription
virtual const SuiteDescription & suiteDescription(unsigned) const =0
CxxTest::TestTracker::setSuite
void setSuite(const SuiteDescription *s)
Definition: TestTracker.cpp:222
CxxTest::TestListener::enterTest
virtual void enterTest(const TestDescription &)
Definition: TestListener.h:25
CxxTest::TestListener::failedAssertRelation
virtual void failedAssertRelation(const char *, unsigned, const char *, const char *, const char *, const char *, const char *)
Definition: TestListener.h:56
CxxTest::TestTracker::trace
void trace(const char *file, unsigned line, const char *expression)
Definition: TestTracker.cpp:115
CxxTest::TestTracker::_warnings
unsigned _warnings
Definition: TestTracker.h:88
CxxTest::TestTracker::_failedSuites
unsigned _failedSuites
Definition: TestTracker.h:88
CxxTest::TestTracker::failedAssertDiffers
void failedAssertDiffers(const char *file, unsigned line, const char *xStr, const char *yStr, const char *value)
Definition: TestTracker.cpp:163
CxxTest::TestTracker::leaveTest
void leaveTest(const TestDescription &td)
Definition: TestTracker.cpp:97
CxxTest::TestTracker::failedAssertLessThan
void failedAssertLessThan(const char *file, unsigned line, const char *xStr, const char *yStr, const char *x, const char *y)
Definition: TestTracker.cpp:171
CxxTest::TestTracker::_world
const WorldDescription * _world
Definition: TestTracker.h:90
CxxTest::TestTracker::warning
void warning(const char *file, unsigned line, const char *expression)
Definition: TestTracker.cpp:120
CxxTest::TestTracker::fixTest
const TestDescription * fixTest(const TestDescription *d) const
Definition: TestTracker.cpp:41
CxxTest::TestTracker::setTest
void setTest(const TestDescription *t)
Definition: TestTracker.cpp:228
CxxTest::TestTracker::_suite
const SuiteDescription * _suite
Definition: TestTracker.h:91
CxxTest::TestTracker::failedAssert
void failedAssert(const char *file, unsigned line, const char *expression)
Definition: TestTracker.cpp:132
w
const CanonicalForm & w
Definition: facAbsFact.cc:55
CxxTest::TestTracker::failedAssertThrows
void failedAssertThrows(const char *file, unsigned line, const char *expression, const char *type, bool otherThrown)
Definition: TestTracker.cpp:202
CxxTest::TestListener::failedAssertThrowsNot
virtual void failedAssertThrowsNot(const char *, unsigned, const char *)
Definition: TestListener.h:62
CxxTest::TestTracker::_test
const TestDescription * _test
Definition: TestTracker.h:92
CxxTest::TestListener::trace
virtual void trace(const char *, unsigned, const char *)
Definition: TestListener.h:26
CxxTest::SuiteDescription
Definition: Descriptions.h:31
CxxTest::TestTracker::enterTest
void enterTest(const TestDescription &td)
Definition: TestTracker.cpp:90
CxxTest::TestTracker::~TestTracker
virtual ~TestTracker()
Definition: TestTracker.cpp:18
CxxTest::TestListener::failedAssertEquals
virtual void failedAssertEquals(const char *, unsigned, const char *, const char *, const char *, const char *)
Definition: TestListener.h:34
CxxTest::s
char * s
Definition: ValueTraits.h:143
CxxTest::TestTracker::dummyWorld
const WorldDescription & dummyWorld() const
Definition: TestTracker.cpp:66
CxxTest::TestListener::leaveSuite
virtual void leaveSuite(const SuiteDescription &)
Definition: TestListener.h:65
CxxTest::TestTracker::failedAssertRelation
void failedAssertRelation(const char *file, unsigned line, const char *relation, const char *xStr, const char *yStr, const char *x, const char *y)
Definition: TestTracker.cpp:194
CxxTest::TestTracker::enterWorld
void enterWorld(const WorldDescription &wd)
Definition: TestTracker.cpp:76
CxxTest::TestTracker::_testFailedAsserts
unsigned _testFailedAsserts
Definition: TestTracker.h:88
CxxTest::TestTracker::countFailure
void countFailure()
Definition: TestTracker.cpp:238
CxxTest::TestTracker::tracker
static TestTracker & tracker()
Definition: TestTracker.cpp:22
CxxTest::TestListener
Definition: TestListener.h:17
CxxTest::TestTracker::setWorld
void setWorld(const WorldDescription *w)
Definition: TestTracker.cpp:216
size
int size(const CanonicalForm &f, const Variable &v)
int size ( const CanonicalForm & f, const Variable & v )
Definition: cf_ops.cc:600
CxxTest::TestTracker::_suiteFailedTests
unsigned _suiteFailedTests
Definition: TestTracker.h:88
CxxTest::TestTracker::failedAssertLessThanEquals
void failedAssertLessThanEquals(const char *file, unsigned line, const char *xStr, const char *yStr, const char *x, const char *y)
Definition: TestTracker.cpp:179
CxxTest::TestListener::leaveTest
virtual void leaveTest(const TestDescription &)
Definition: TestListener.h:64
CxxTest::TestTracker::leaveWorld
void leaveWorld(const WorldDescription &wd)
Definition: TestTracker.cpp:109
CxxTest::SuiteDescription::testDescription
virtual const TestDescription & testDescription(unsigned) const =0
CxxTest::TestDescription
Definition: Descriptions.h:15
CxxTest::TestTracker::_failedTests
unsigned _failedTests
Definition: TestTracker.h:88
CxxTest::TestTracker
Definition: TestTracker.h:17
CxxTest::TestTracker::initialize
void initialize()
Definition: TestTracker.cpp:28
CxxTest::TestListener::failedAssertLessThan
virtual void failedAssertLessThan(const char *, unsigned, const char *, const char *, const char *, const char *)
Definition: TestListener.h:48
CxxTest::TestTracker::dummyTest
const TestDescription & dummyTest() const
Definition: TestTracker.cpp:56
CxxTest::TestTracker::enterSuite
void enterSuite(const SuiteDescription &sd)
Definition: TestTracker.cpp:83
CxxTest::WorldDescription
Definition: Descriptions.h:53
CxxTest::TestTracker::failedAssertSameData
void failedAssertSameData(const char *file, unsigned line, const char *xStr, const char *yStr, const char *sizeStr, const void *x, const void *y, unsigned size)
Definition: TestTracker.cpp:146
CxxTest::TestListener::enterWorld
virtual void enterWorld(const WorldDescription &)
Definition: TestListener.h:23
CxxTest::TestTracker::failedAssertDelta
void failedAssertDelta(const char *file, unsigned line, const char *xStr, const char *yStr, const char *dStr, const char *x, const char *y, const char *d)
Definition: TestTracker.cpp:155
CxxTest::TestListener::failedAssertDiffers
virtual void failedAssertDiffers(const char *, unsigned, const char *, const char *, const char *)
Definition: TestListener.h:45
CxxTest::TestListener::failedAssert
virtual void failedAssert(const char *, unsigned, const char *)
Definition: TestListener.h:32
CxxTest::TestTracker::TestTracker
TestTracker()
Definition: TestTracker.cpp:10
CxxTest::TestTracker::_l
TestListener * _l
Definition: TestTracker.h:89
CxxTest::TestTracker::fixWorld
const WorldDescription * fixWorld(const WorldDescription *d) const
Definition: TestTracker.cpp:51
CxxTest::TestListener::failedTest
virtual void failedTest(const char *, unsigned, const char *)
Definition: TestListener.h:30
CxxTest::TestTracker::_dummyWorld
DummyWorldDescription _dummyWorld
Definition: TestTracker.h:87
CxxTest::TestListener::failedAssertThrows
virtual void failedAssertThrows(const char *, unsigned, const char *, const char *, bool)
Definition: TestListener.h:59
l
int l
Definition: cfEzgcd.cc:93
CxxTest::TestTracker::countWarning
void countWarning()
Definition: TestTracker.cpp:233
CxxTest::TestTracker::setListener
void setListener(TestListener *l)
Definition: TestTracker.cpp:71
CxxTest::TestListener::failedAssertLessThanEquals
virtual void failedAssertLessThanEquals(const char *, unsigned, const char *, const char *, const char *, const char *)
Definition: TestListener.h:51
CxxTest::TestTracker::fixSuite
const SuiteDescription * fixSuite(const SuiteDescription *d) const
Definition: TestTracker.cpp:46
CxxTest::TestListener::enterSuite
virtual void enterSuite(const SuiteDescription &)
Definition: TestListener.h:24
CxxTest::TestTracker::failedAssertThrowsNot
void failedAssertThrowsNot(const char *file, unsigned line, const char *expression)
Definition: TestTracker.cpp:210
CxxTest::TestListener::leaveWorld
virtual void leaveWorld(const WorldDescription &)
Definition: TestListener.h:66
CxxTest
Definition: Descriptions.cpp:6
CxxTest::TestListener::failedAssertPredicate
virtual void failedAssertPredicate(const char *, unsigned, const char *, const char *, const char *)
Definition: TestListener.h:54
CxxTest::TestTracker::dummySuite
const SuiteDescription & dummySuite() const
Definition: TestTracker.cpp:61
CxxTest::TestTracker::failedTest
void failedTest(const char *file, unsigned line, const char *expression)
Definition: TestTracker.cpp:126
TestTracker.h
CxxTest::TestTracker::failedAssertEquals
void failedAssertEquals(const char *file, unsigned line, const char *xStr, const char *yStr, const char *x, const char *y)
Definition: TestTracker.cpp:138
CxxTest::TestTracker::failedAssertPredicate
void failedAssertPredicate(const char *file, unsigned line, const char *predicate, const char *xStr, const char *x)
Definition: TestTracker.cpp:187
CxxTest::TestTracker::_dummyListener
TestListener _dummyListener
Definition: TestTracker.h:86