34 #include "SimpleString.h" 42 extern bool doubles_equal(
double d1,
double d2,
double threshold);
56 virtual void teardown();
57 virtual void testBody();
65 virtual void exitCurrentTest()
const=0;
66 virtual ~TestTerminator();
69 class NormalTestTerminator :
public TestTerminator
72 virtual void exitCurrentTest() const _override;
73 virtual ~NormalTestTerminator();
76 class TestTerminatorWithoutExceptions : public TestTerminator
79 virtual void exitCurrentTest() const _override;
80 virtual ~TestTerminatorWithoutExceptions();
88 static UtestShell *getCurrent();
91 UtestShell(
const char* groupName,
const char* testName,
const char* fileName,
int lineNumber);
92 virtual ~UtestShell();
94 virtual UtestShell* addTest(UtestShell* test);
95 virtual UtestShell *getNext()
const;
96 virtual int countTests();
98 bool shouldRun(
const TestFilter* groupFilters,
const TestFilter* nameFilters)
const;
99 const SimpleString getName()
const;
100 const SimpleString getGroup()
const;
101 virtual SimpleString getFormattedName()
const;
102 const SimpleString getFile()
const;
103 int getLineNumber()
const;
104 virtual bool willRun()
const;
105 virtual bool hasFailed()
const;
108 virtual void assertTrue(
bool condition,
const char *checkString,
const char *conditionString,
const char* text,
const char *fileName,
int lineNumber,
const TestTerminator& testTerminator = NormalTestTerminator());
109 virtual void assertCstrEqual(
const char *expected,
const char *actual,
const char* text,
const char *fileName,
int lineNumber,
const TestTerminator& testTerminator = NormalTestTerminator());
110 virtual void assertCstrNEqual(
const char *expected,
const char *actual,
size_t length,
const char* text,
const char *fileName,
int lineNumber,
const TestTerminator& testTerminator = NormalTestTerminator());
111 virtual void assertCstrNoCaseEqual(
const char *expected,
const char *actual,
const char* text,
const char *fileName,
int lineNumber);
112 virtual void assertCstrContains(
const char *expected,
const char *actual,
const char* text,
const char *fileName,
int lineNumber);
113 virtual void assertCstrNoCaseContains(
const char *expected,
const char *actual,
const char* text,
const char *fileName,
int lineNumber);
114 virtual void assertLongsEqual(
long expected,
long actual,
const char* text,
const char *fileName,
int lineNumber,
const TestTerminator& testTerminator = NormalTestTerminator());
115 virtual void assertUnsignedLongsEqual(
unsigned long expected,
unsigned long actual,
const char* text,
const char *fileName,
int lineNumber,
const TestTerminator& testTerminator = NormalTestTerminator());
116 virtual void assertLongLongsEqual(cpputest_longlong expected, cpputest_longlong actual,
const char* text,
const char *fileName,
int lineNumber,
const TestTerminator& testTerminator = NormalTestTerminator());
117 virtual void assertUnsignedLongLongsEqual(cpputest_ulonglong expected, cpputest_ulonglong actual,
const char* text,
const char *fileName,
int lineNumber,
const TestTerminator& testTerminator = NormalTestTerminator());
118 virtual void assertSignedBytesEqual(
signed char expected,
signed char actual,
const char* text,
const char *fileName,
int lineNumber,
const TestTerminator& testTerminator = NormalTestTerminator());
119 virtual void assertPointersEqual(
const void *expected,
const void *actual,
const char* text,
const char *fileName,
int lineNumber,
const TestTerminator& testTerminator = NormalTestTerminator());
120 virtual void assertFunctionPointersEqual(
void (*expected)(),
void (*actual)(),
const char* text,
const char* fileName,
int lineNumber,
const TestTerminator& testTerminator = NormalTestTerminator());
121 virtual void assertDoublesEqual(
double expected,
double actual,
double threshold,
const char* text,
const char *fileName,
int lineNumber,
const TestTerminator& testTerminator = NormalTestTerminator());
122 virtual void assertEquals(
bool failed,
const char* expected,
const char* actual,
const char* text,
const char* file,
int line,
const TestTerminator& testTerminator = NormalTestTerminator());
123 virtual void assertBinaryEqual(
const void *expected,
const void *actual,
size_t length,
const char* text,
const char *fileName,
int lineNumber,
const TestTerminator& testTerminator = NormalTestTerminator());
124 virtual void assertBitsEqual(
unsigned long expected,
unsigned long actual,
unsigned long mask,
size_t byteCount,
const char* text,
const char *fileName,
int lineNumber,
const TestTerminator& testTerminator = NormalTestTerminator());
125 virtual void fail(
const char *text,
const char *fileName,
int lineNumber,
const TestTerminator& testTerminator = NormalTestTerminator());
126 virtual void exitTest(
const TestTerminator& testTerminator = NormalTestTerminator());
128 virtual void print(
const char *text,
const char *fileName,
int lineNumber);
129 virtual void print(
const SimpleString & text,
const char *fileName,
int lineNumber);
131 void setFileName(
const char *fileName);
132 void setLineNumber(
int lineNumber);
133 void setGroupName(
const char *groupName);
134 void setTestName(
const char *testName);
137 static void setCrashMethod(
void (*crashme)());
138 static void resetCrashMethod();
140 virtual bool isRunInSeperateProcess()
const;
141 virtual void setRunInSeperateProcess();
143 virtual void setRunIgnored();
145 virtual Utest* createTest();
146 virtual void destroyTest(Utest* test);
148 virtual void runOneTest(TestPlugin* plugin, TestResult& result);
149 virtual void runOneTestInCurrentProcess(TestPlugin *plugin, TestResult & result);
151 virtual void failWith(
const TestFailure& failure);
152 virtual void failWith(
const TestFailure& failure,
const TestTerminator& terminator);
156 UtestShell(
const char *groupName,
const char *testName,
const char *fileName,
int lineNumber, UtestShell *nextTest);
158 virtual SimpleString getMacroName()
const;
159 TestResult *getTestResult();
166 bool isRunAsSeperateProcess_;
169 void setTestResult(TestResult* result);
170 void setCurrentTest(UtestShell* test);
171 bool match(
const char* target,
const TestFilter* filters)
const;
173 static UtestShell* currentTest_;
174 static TestResult* testResult_;
182 class ExecFunctionTestShell;
184 class ExecFunctionTest :
public Utest
187 ExecFunctionTest(ExecFunctionTestShell* shell);
188 void testBody() _override;
189 virtual
void setup() _override;
190 virtual
void teardown() _override;
192 ExecFunctionTestShell* shell_;
197 class ExecFunctionTestShell: public UtestShell
202 void (*testFunction_)();
204 ExecFunctionTestShell(
void(*
set)() = 0,
void(*tear)() = 0) :
205 UtestShell(
"Generic",
"Generic",
"Generic", 1), setup_(set), teardown_(
206 tear), testFunction_(0)
209 Utest* createTest() {
return new ExecFunctionTest(
this); }
210 virtual ~ExecFunctionTestShell();
215 class CppUTestFailedException
223 class IgnoredUtestShell :
public UtestShell
227 virtual ~IgnoredUtestShell();
228 explicit IgnoredUtestShell(
const char* groupName,
const char* testName,
229 const char* fileName,
int lineNumber);
230 virtual bool willRun() const _override;
231 virtual
void setRunIgnored() _override;
233 virtual SimpleString getMacroName() const _override;
234 virtual
void runOneTest(TestPlugin* plugin, TestResult& result) _override;
237 IgnoredUtestShell(const IgnoredUtestShell&);
238 IgnoredUtestShell& operator=(const IgnoredUtestShell&);
249 explicit TestInstaller(UtestShell& shell,
const char* groupName,
const char* testName,
250 const char* fileName,
int lineNumber);
251 virtual ~TestInstaller();
257 TestInstaller(
const TestInstaller&);
258 TestInstaller& operator=(
const TestInstaller&);