/[escript]/trunk/tools/CppUnitTest/src/TestSuite.h
ViewVC logotype

Contents of /trunk/tools/CppUnitTest/src/TestSuite.h

Parent Directory Parent Directory | Revision Log Revision Log


Revision 3150 - (show annotations)
Fri Sep 3 05:40:27 2010 UTC (9 years, 1 month ago) by caltinay
File MIME type: text/plain
File size: 3981 byte(s)
Removed executable prop from non-executables.

1 //
2 // Permission to reproduce and create derivative works from the Software ("Software Derivative Works")
3 // is hereby granted to you under the copyright of Michael Feathers. Michael Feathers also grants you
4 // the right to distribute the Software and Software Derivative Works.
5 //
6 // Michael Feathers licenses the Software to you on an "AS IS" basis, without warranty of any kind.
7 // Michael Feathers HEREBY EXPRESSLY DISCLAIMS ALL WARRANTIES OR CONDITIONS, EITHER EXPRESS OR IMPLIED,
8 // INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OR CONDITIONS OF MERCHANTABILITY, NON INFRINGEMENT
9 // AND FITNESS FOR A PARTICULAR PURPOSE.  You are solely responsible for determining the appropriateness
10 // of using the Software and assume all risks associated with the use and distribution of this Software,
11 // including but not limited to the risks of program errors, damage to or loss of data, programs or
12 // equipment, and unavailability or interruption of operations.  MICHAEL FEATHERS WILL NOT BE
13 // LIABLE FOR ANY DIRECT DAMAGES OR FOR ANY SPECIAL, INCIDENTAL, OR INDIRECT DAMAGES OR FOR ANY ECONOMIC
14 // CONSEQUENTIAL DAMAGES (INCLUDING LOST PROFITS OR SAVINGS), EVEN IF MICHAEL FEATHERS HAD BEEN ADVISED
15 // OF THE POSSIBILITY OF SUCH DAMAGE.  Michael Feathers will not be liable for the loss of, or damage
16 // to, your records or data, or any damages claimed by you based on a third party claim.
17 //
18 // You agree to distribute the Software and any Software Derivatives under a license agreement that:
19 //
20 // 1) is sufficient to notify all licensees of the Software and Software Derivatives that Michael
21 // Feathers assumes no liability for any claim that may arise regarding the Software or
22 // Software Derivatives, and
23 // 2) that disclaims all warranties, both express and implied, from Michael Feathers regarding the
24 // Software and Software Derivatives.  (If you include this Agreement with any distribution
25 // of the Software and Software Derivatives you will have meet this requirement) You agree that
26 // you will not delete any copyright notices in the Software.
27 //
28 // This Agreement is the exclusive statement of your rights in the Software as provided by Michael
29 // Feathers. Except for the licenses granted to you in the second paragraph above, no other licenses
30 // are granted hereunder, by estoppel, implication or otherwise.
31 //
32 #ifndef CPPUNIT_TESTSUITE_H
33 #define CPPUNIT_TESTSUITE_H
34
35 #include <vector>
36 #include <string>
37
38 #include "Guards.h"
39 #include "Test.h"
40 #include "CppUnitTestNamespace.h"
41
42 BEGIN_NAMESPACE_CPPUNITTEST
43
44 class TestResult;
45
46 /*
47 * A TestSuite is a Composite of Tests.
48 * It runs a collection of test cases. Here is an example.
49 *
50 * TestSuite *suite= new TestSuite();
51 * suite->addTest(new TestCaller<MathTest> ("testAdd", testAdd));
52 * suite->addTest(new TestCaller<MathTest> ("testDivideByZero", testDivideByZero));
53 *
54 * Note that TestSuites assume lifetime
55 * control for any tests added to them.
56 *
57 * see Test and TestCaller
58 */
59
60
61 class TestSuite : public Test
62 {
63 REFERENCEOBJECT (TestSuite)
64
65 public:
66 TestSuite (std::string name = "");
67 ~TestSuite ();
68
69 void run (TestResult *result);
70 int countTestCases ();
71 void addTest (Test *test);
72 std::string toString ();
73
74 virtual void deleteContents ();
75
76 private:
77 std::vector<Test *> m_tests;
78 const std::string m_name;
79
80
81 };
82
83
84 // Default constructor
85 inline TestSuite::TestSuite (std::string name)
86 : m_name (name)
87 {}
88
89
90 // Destructor
91 inline TestSuite::~TestSuite ()
92 { deleteContents (); }
93
94
95 // Adds a test to the suite.
96 inline void TestSuite::addTest (Test *test)
97 { m_tests.push_back (test); }
98
99
100 // Returns a string representation of the test suite.
101 inline std::string TestSuite::toString ()
102 { return "suite " + m_name; }
103
104
105 END_NAMESPACE_CPPUNITTEST
106
107 #endif

Properties

Name Value
svn:eol-style native
svn:keywords Author Date Id Revision

  ViewVC Help
Powered by ViewVC 1.1.26