1 /* Ctest.h
2  *
3  *              Defines a test framework for C projects.
4  */
5 
6 
7 /*
8  * C/C++ Users Journal Sept 2000 <br>
9  * The Simplest Automated Unit Test Framework That Could Possibly Work <br>
10  * Chuck Allison <br>
11  */
12 
13 #ifndef CTEST_H
14 #define CTEST_H
15 
16 #include <stdio.h>
17 //#include "bool.h"
18 
19 #define ct_test(test, cond) \
20         ct_do_test(test, #cond, cond, __FILE__, __LINE__)
21 #define ct_fail(test, str)  \
22         ct_do_fail(test, str, __FILE__, __LINE__)
23 
24 typedef struct Test Test;
25 typedef void (*TestFunc)(Test*);
26 
27 Test* ct_create(const char* name, void (*init)(Test*));
28 void ct_destroy(Test* pTest);
29 
30 const char* ct_getName(Test* pTest);
31 long ct_getNumPassed(Test* pTest);
32 long ct_getNumFailed(Test* pTest);
33 long ct_getNumTests(Test* pTest);
34 FILE* ct_getStream(Test* pTest);
35 void ct_setStream(Test* pTest, FILE* stream);
36 
37 bool ct_addTestFun(Test* pTest, TestFunc tfun);
38 void ct_succeed(Test* pTest);
39 long ct_run(Test* pTest);
40 long ct_report(Test* pTest);
41 void ct_reset(Test* pTest);
42 
43 /* Not intended for end-users: */
44 void ct_do_test(Test* pTest, const char* str,
45                                 bool cond, const char* file, long line);
46 void ct_do_fail(Test* pTest, const char* str,
47                                 const char* file, long line);
48 
49 #endif
50