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