My Project  debian-1:4.1.1-p2+ds-4
RealDescriptions.h
Go to the documentation of this file.
1 #ifndef __cxxtest__RealDescriptions_h__
2 #define __cxxtest__RealDescriptions_h__
3 
4 //
5 // The "real" description classes
6 //
7 
8 #include <cxxtest/Descriptions.h>
9 #include <cxxtest/TestSuite.h>
10 #include <cxxtest/GlobalFixture.h>
11 
12 namespace CxxTest
13 {
15  {
16  public:
18  RealTestDescription( List &argList, SuiteDescription &argSuite, unsigned argLine, const char *argTestName );
19  void initialize( List &argList, SuiteDescription &argSuite, unsigned argLine, const char *argTestName );
20 
21  const char *file() const;
22  unsigned line() const;
23  const char *testName() const;
24  const char *suiteName() const;
25 
27  const TestDescription *next() const;
28 
29  TestSuite *suite() const;
30 
31  bool setUp();
32  void run();
33  bool tearDown();
34 
35  private:
38 
39  virtual void runTest() = 0;
40 
42  unsigned _line;
43  const char *_testName;
44  };
45 
47  {
48  public:
50  RealSuiteDescription( const char *argFile, unsigned argLine, const char *argSuiteName, List &argTests );
51 
52  void initialize( const char *argFile, unsigned argLine, const char *argSuiteName, List &argTests );
53 
54  const char *file() const;
55  unsigned line() const;
56  const char *suiteName() const;
57 
59  const TestDescription *firstTest() const;
61  const SuiteDescription *next() const;
62 
63  unsigned numTests() const;
64  const TestDescription &testDescription( unsigned i ) const;
65 
66  void activateAllTests();
67  bool leaveOnly( const char *testName );
68 
69  private:
72 
73  const char *_file;
74  unsigned _line;
75  const char *_suiteName;
77 
78  static List _suites;
79  friend class RealWorldDescription;
80  };
81 
83  {
84  public:
86  StaticSuiteDescription( const char *argFile, unsigned argLine,
87  const char *argSuiteName, TestSuite &argSuite,
88  List &argTests );
89 
90  void initialize( const char *argFile, unsigned argLine,
91  const char *argSuiteName, TestSuite &argSuite,
92  List &argTests );
93  TestSuite *suite() const;
94 
95  bool setUp();
96  bool tearDown();
97 
98  private:
101 
102  void doInitialize( TestSuite &argSuite );
103 
105  };
106 
108  {
109  public:
111  CommonDynamicSuiteDescription( const char *argFile, unsigned argLine,
112  const char *argSuiteName, List &argTests,
113  unsigned argCreateLine, unsigned argDestroyLine );
114 
115  void initialize( const char *argFile, unsigned argLine,
116  const char *argSuiteName, List &argTests,
117  unsigned argCreateLine, unsigned argDestroyLine );
118 
119  protected:
121 
122  private:
123  void doInitialize( unsigned argCreateLine, unsigned argDestroyLine );
124  };
125 
126  template<class S>
128  {
129  public:
131  DynamicSuiteDescription( const char *argFile, unsigned argLine,
132  const char *argSuiteName, List &argTests,
133  S *&argSuite, unsigned argCreateLine,
134  unsigned argDestroyLine ) :
135  CommonDynamicSuiteDescription( argFile, argLine, argSuiteName, argTests, argCreateLine, argDestroyLine )
136  {
137  _suite = &argSuite;
138  }
139 
140  void initialize( const char *argFile, unsigned argLine,
141  const char *argSuiteName, List &argTests,
142  S *&argSuite, unsigned argCreateLine,
143  unsigned argDestroyLine )
144  {
146  argSuiteName, argTests,
147  argCreateLine, argDestroyLine );
148  _suite = &argSuite;
149  }
150 
151  TestSuite *suite() const { return realSuite(); }
152 
153  bool setUp();
154  bool tearDown();
155 
156  private:
157  S *realSuite() const { return *_suite; }
158  void setSuite( S *s ) { *_suite = s; }
159 
160  void createSuite()
161  {
162  setSuite( S::createSuite() );
163  }
164 
166  {
167  S *s = realSuite();
168  setSuite( 0 );
169  S::destroySuite( s );
170  }
171 
172  S **_suite;
173  };
174 
175  template<class S>
177  {
178  _TS_TRY {
179  _TSM_ASSERT_THROWS_NOTHING( file(), _createLine, "Exception thrown from createSuite()", createSuite() );
180  _TSM_ASSERT( file(), _createLine, "createSuite() failed", suite() != 0 );
181  }
182  _TS_CATCH_ABORT( { return false; } );
183 
184  return (suite() != 0);
185  }
186 
187  template<class S>
189  {
190  if ( !_suite )
191  return true;
192 
193  _TS_TRY {
194  _TSM_ASSERT_THROWS_NOTHING( file(), _destroyLine, "destroySuite() failed", destroySuite() );
195  }
196  _TS_CATCH_ABORT( { return false; } );
197 
198  return true;
199  }
200 
202  {
203  public:
204  static List &suites();
205  unsigned numSuites( void ) const;
206  unsigned numTotalTests( void ) const;
208  const SuiteDescription *firstSuite() const;
209  const SuiteDescription &suiteDescription( unsigned i ) const;
210  void activateAllTests();
211  bool leaveOnly( const char *suiteName, const char *testName = 0 );
212 
213  bool setUp();
214  bool tearDown();
215  static void reportError( const char *message );
216  };
217 
218  void activateAllTests();
219  bool leaveOnly( const char *suiteName, const char *testName = 0 );
220 }
221 
222 #endif // __cxxtest__RealDescriptions_h__
223 
CxxTest::RealTestDescription::operator=
RealTestDescription & operator=(const RealTestDescription &)
CxxTest::DynamicSuiteDescription::realSuite
S * realSuite() const
Definition: RealDescriptions.h:157
Descriptions.h
CxxTest::RealWorldDescription
Definition: RealDescriptions.h:201
CxxTest::DynamicSuiteDescription::DynamicSuiteDescription
DynamicSuiteDescription(const char *argFile, unsigned argLine, const char *argSuiteName, List &argTests, S *&argSuite, unsigned argCreateLine, unsigned argDestroyLine)
Definition: RealDescriptions.h:131
CxxTest::StaticSuiteDescription::setUp
bool setUp()
Definition: RealDescriptions.cpp:182
CxxTest::RealTestDescription::suite
TestSuite * suite() const
Definition: RealDescriptions.cpp:92
CxxTest::leaveOnly
bool leaveOnly(const char *suiteName, const char *testName)
Definition: RealDescriptions.cpp:304
_TSM_ASSERT
#define _TSM_ASSERT(f, l, m, e)
Definition: TestSuite.h:242
CxxTest::RealSuiteDescription::initialize
void initialize(const char *argFile, unsigned argLine, const char *argSuiteName, List &argTests)
Definition: RealDescriptions.cpp:110
CxxTest::RealWorldDescription::reportError
static void reportError(const char *message)
Definition: RealDescriptions.cpp:294
CxxTest::RealTestDescription::_testName
const char * _testName
Definition: RealDescriptions.h:43
CxxTest::DynamicSuiteDescription::destroySuite
void destroySuite()
Definition: RealDescriptions.h:165
CxxTest::RealSuiteDescription::_line
unsigned _line
Definition: RealDescriptions.h:74
CxxTest::RealSuiteDescription::numTests
unsigned numTests() const
Definition: RealDescriptions.cpp:132
CxxTest::RealTestDescription::run
void run()
Definition: RealDescriptions.cpp:94
CxxTest::RealTestDescription::testName
const char * testName() const
Definition: RealDescriptions.cpp:86
CxxTest::StaticSuiteDescription
Definition: RealDescriptions.h:82
CxxTest::DynamicSuiteDescription::setUp
bool setUp()
Definition: RealDescriptions.h:176
CxxTest::List
Definition: LinkedList.h:11
CxxTest::RealWorldDescription::numSuites
unsigned numSuites(void) const
Definition: RealDescriptions.cpp:213
CxxTest::RealWorldDescription::setUp
bool setUp()
Definition: RealDescriptions.cpp:262
CxxTest::RealTestDescription::next
TestDescription * next()
Definition: RealDescriptions.cpp:89
CxxTest::StaticSuiteDescription::initialize
void initialize(const char *argFile, unsigned argLine, const char *argSuiteName, TestSuite &argSuite, List &argTests)
Definition: RealDescriptions.cpp:164
CxxTest::SuiteDescription
Definition: Descriptions.h:31
CxxTest::RealSuiteDescription::_tests
List * _tests
Definition: RealDescriptions.h:76
CxxTest::RealTestDescription::setUp
bool setUp()
Definition: RealDescriptions.cpp:36
CxxTest::RealTestDescription::_suite
SuiteDescription * _suite
Definition: RealDescriptions.h:41
CxxTest::s
char * s
Definition: ValueTraits.h:143
i
int i
Definition: cfEzgcd.cc:125
CxxTest::CommonDynamicSuiteDescription::CommonDynamicSuiteDescription
CommonDynamicSuiteDescription()
Definition: RealDescriptions.cpp:185
CxxTest::activateAllTests
void activateAllTests()
Definition: RealDescriptions.cpp:299
CxxTest::RealSuiteDescription::line
unsigned line() const
Definition: RealDescriptions.cpp:124
CxxTest::StaticSuiteDescription::tearDown
bool tearDown()
Definition: RealDescriptions.cpp:183
CxxTest::RealTestDescription::line
unsigned line() const
Definition: RealDescriptions.cpp:85
CxxTest::TestSuite
Definition: TestSuite.h:21
message
void message(int i, int *reduc, int *olddeg, kStrategy strat, int red_result)
Definition: kutil.cc:7727
CxxTest::StaticSuiteDescription::StaticSuiteDescription
StaticSuiteDescription()
Definition: RealDescriptions.cpp:155
CxxTest::RealTestDescription::suiteName
const char * suiteName() const
Definition: RealDescriptions.cpp:87
TestSuite.h
CxxTest::RealTestDescription::RealTestDescription
RealTestDescription()
Definition: RealDescriptions.cpp:13
CxxTest::DynamicSuiteDescription::createSuite
void createSuite()
Definition: RealDescriptions.h:160
CxxTest::DynamicSuiteDescription::DynamicSuiteDescription
DynamicSuiteDescription()
Definition: RealDescriptions.h:130
CxxTest::StaticSuiteDescription::operator=
StaticSuiteDescription & operator=(const StaticSuiteDescription &)
CxxTest::RealSuiteDescription::testDescription
const TestDescription & testDescription(unsigned i) const
Definition: RealDescriptions.cpp:134
CxxTest::CommonDynamicSuiteDescription::_createLine
unsigned _createLine
Definition: RealDescriptions.h:120
CxxTest::RealSuiteDescription::leaveOnly
bool leaveOnly(const char *testName)
Definition: RealDescriptions.cpp:144
CxxTest::RealSuiteDescription::firstTest
TestDescription * firstTest()
Definition: RealDescriptions.cpp:127
CxxTest::RealTestDescription::runTest
virtual void runTest()=0
CxxTest::RealSuiteDescription::suiteName
const char * suiteName() const
Definition: RealDescriptions.cpp:125
CxxTest::TestDescription
Definition: Descriptions.h:15
CxxTest::RealSuiteDescription::file
const char * file() const
Definition: RealDescriptions.cpp:123
CxxTest::RealSuiteDescription::activateAllTests
void activateAllTests()
Definition: RealDescriptions.cpp:139
CxxTest::RealWorldDescription::firstSuite
SuiteDescription * firstSuite()
Definition: RealDescriptions.cpp:226
CxxTest::DynamicSuiteDescription::initialize
void initialize(const char *argFile, unsigned argLine, const char *argSuiteName, List &argTests, S *&argSuite, unsigned argCreateLine, unsigned argDestroyLine)
Definition: RealDescriptions.h:140
CxxTest::RealTestDescription::initialize
void initialize(List &argList, SuiteDescription &argSuite, unsigned argLine, const char *argTestName)
Definition: RealDescriptions.cpp:25
CxxTest::RealSuiteDescription::_file
const char * _file
Definition: RealDescriptions.h:73
CxxTest::RealSuiteDescription::RealSuiteDescription
RealSuiteDescription()
Definition: RealDescriptions.cpp:101
CxxTest::CommonDynamicSuiteDescription::doInitialize
void doInitialize(unsigned argCreateLine, unsigned argDestroyLine)
Definition: RealDescriptions.cpp:202
CxxTest::RealSuiteDescription::next
SuiteDescription * next()
Definition: RealDescriptions.cpp:129
CxxTest::CommonDynamicSuiteDescription::initialize
void initialize(const char *argFile, unsigned argLine, const char *argSuiteName, List &argTests, unsigned argCreateLine, unsigned argDestroyLine)
Definition: RealDescriptions.cpp:194
CxxTest::RealWorldDescription::leaveOnly
bool leaveOnly(const char *suiteName, const char *testName=0)
Definition: RealDescriptions.cpp:248
CxxTest::WorldDescription
Definition: Descriptions.h:53
_TSM_ASSERT_THROWS_NOTHING
#define _TSM_ASSERT_THROWS_NOTHING(f, l, m, e)
Definition: TestSuite.h:465
CxxTest::StaticSuiteDescription::doInitialize
void doInitialize(TestSuite &argSuite)
Definition: RealDescriptions.cpp:172
_TS_CATCH_ABORT
#define _TS_CATCH_ABORT(b)
Definition: TestSuite.h:216
CxxTest::CommonDynamicSuiteDescription::_destroyLine
unsigned _destroyLine
Definition: RealDescriptions.h:120
CxxTest::RealWorldDescription::suiteDescription
const SuiteDescription & suiteDescription(unsigned i) const
Definition: RealDescriptions.cpp:236
CxxTest::CommonDynamicSuiteDescription
Definition: RealDescriptions.h:107
CxxTest::RealWorldDescription::activateAllTests
void activateAllTests()
Definition: RealDescriptions.cpp:241
CxxTest::RealWorldDescription::numTotalTests
unsigned numTotalTests(void) const
Definition: RealDescriptions.cpp:218
_TS_TRY
#define _TS_TRY
Definition: TestSuite.h:209
CxxTest::RealWorldDescription::suites
static List & suites()
Definition: RealDescriptions.cpp:208
CxxTest::DynamicSuiteDescription::_suite
S ** _suite
Definition: RealDescriptions.h:172
CxxTest::RealTestDescription::_line
unsigned _line
Definition: RealDescriptions.h:42
CxxTest::DynamicSuiteDescription
Definition: RealDescriptions.h:127
GlobalFixture.h
CxxTest::RealTestDescription
Definition: RealDescriptions.h:14
CxxTest::DynamicSuiteDescription::tearDown
bool tearDown()
Definition: RealDescriptions.h:188
CxxTest::RealSuiteDescription::_suites
static List _suites
Definition: RealDescriptions.h:78
CxxTest
Definition: Descriptions.cpp:6
CxxTest::RealSuiteDescription::_suiteName
const char * _suiteName
Definition: RealDescriptions.h:75
CxxTest::RealSuiteDescription
Definition: RealDescriptions.h:46
CxxTest::DynamicSuiteDescription::suite
TestSuite * suite() const
Definition: RealDescriptions.h:151
CxxTest::DynamicSuiteDescription::setSuite
void setSuite(S *s)
Definition: RealDescriptions.h:158
CxxTest::StaticSuiteDescription::_suite
TestSuite * _suite
Definition: RealDescriptions.h:104
CxxTest::RealWorldDescription::tearDown
bool tearDown()
Definition: RealDescriptions.cpp:278
CxxTest::RealTestDescription::tearDown
bool tearDown()
Definition: RealDescriptions.cpp:60
CxxTest::RealTestDescription::file
const char * file() const
Definition: RealDescriptions.cpp:84
CxxTest::StaticSuiteDescription::suite
TestSuite * suite() const
Definition: RealDescriptions.cpp:177
CxxTest::RealSuiteDescription::operator=
RealSuiteDescription & operator=(const RealSuiteDescription &)