9 char* CuStrAlloc(int size
);
10 char* CuStrCopy(const char* old
);
12 #define CU_ALLOC(TYPE) ((TYPE*) malloc(sizeof(TYPE)))
14 #define HUGE_STRING_LEN 8192
15 #define STRING_MAX 256
16 #define STRING_INC 256
25 void CuStringInit(CuString
* str
);
26 CuString
* CuStringNew(void);
27 void CuStringRead(CuString
* str
, const char* path
);
28 void CuStringAppend(CuString
* str
, const char* text
);
29 void CuStringAppendChar(CuString
* str
, char ch
);
30 void CuStringAppendFormat(CuString
* str
, const char* format
, ...);
31 void CuStringInsert(CuString
* str
, const char* text
, int pos
);
32 void CuStringResize(CuString
* str
, int newSize
);
36 typedef struct CuTest CuTest
;
38 typedef void (*TestFunction
)(CuTest
*);
43 TestFunction function
;
50 void CuTestInit(CuTest
* t
, const char* name
, TestFunction function
);
51 CuTest
* CuTestNew(const char* name
, TestFunction function
);
52 void CuTestRun(CuTest
* tc
);
54 /* Internal versions of assert functions -- use the public versions */
55 void CuFail_Line(CuTest
* tc
, const char* file
, int line
, const char* message2
, const char* message
);
56 void CuAssert_Line(CuTest
* tc
, const char* file
, int line
, const char* message
, int condition
);
57 void CuAssertStrEquals_LineMsg(CuTest
* tc
,
58 const char* file
, int line
, const char* message
,
59 const char* expected
, const char* actual
);
60 void CuAssertIntEquals_LineMsg(CuTest
* tc
,
61 const char* file
, int line
, const char* message
,
62 int expected
, int actual
);
63 void CuAssertDblEquals_LineMsg(CuTest
* tc
,
64 const char* file
, int line
, const char* message
,
65 double expected
, double actual
, double delta
);
66 void CuAssertPtrEquals_LineMsg(CuTest
* tc
,
67 const char* file
, int line
, const char* message
,
68 void* expected
, void* actual
);
70 /* public assert functions */
72 #define CuFail(tc, ms) CuFail_Line( (tc), __FILE__, __LINE__, NULL, (ms))
73 #define CuAssert(tc, ms, cond) CuAssert_Line((tc), __FILE__, __LINE__, (ms), (cond))
74 #define CuAssertTrue(tc, cond) CuAssert_Line((tc), __FILE__, __LINE__, "assert failed", (cond))
76 #define CuAssertStrEquals(tc,ex,ac) CuAssertStrEquals_LineMsg((tc),__FILE__,__LINE__,NULL,(ex),(ac))
77 #define CuAssertStrEquals_Msg(tc,ms,ex,ac) CuAssertStrEquals_LineMsg((tc),__FILE__,__LINE__,(ms),(ex),(ac))
78 #define CuAssertIntEquals(tc,ex,ac) CuAssertIntEquals_LineMsg((tc),__FILE__,__LINE__,NULL,(ex),(ac))
79 #define CuAssertIntEquals_Msg(tc,ms,ex,ac) CuAssertIntEquals_LineMsg((tc),__FILE__,__LINE__,(ms),(ex),(ac))
80 #define CuAssertDblEquals(tc,ex,ac,dl) CuAssertDblEquals_LineMsg((tc),__FILE__,__LINE__,NULL,(ex),(ac),(dl))
81 #define CuAssertDblEquals_Msg(tc,ms,ex,ac,dl) CuAssertDblEquals_LineMsg((tc),__FILE__,__LINE__,(ms),(ex),(ac),(dl))
82 #define CuAssertPtrEquals(tc,ex,ac) CuAssertPtrEquals_LineMsg((tc),__FILE__,__LINE__,NULL,(ex),(ac))
83 #define CuAssertPtrEquals_Msg(tc,ms,ex,ac) CuAssertPtrEquals_LineMsg((tc),__FILE__,__LINE__,(ms),(ex),(ac))
85 #define CuAssertPtrNotNull(tc,p) CuAssert_Line((tc),__FILE__,__LINE__,"null pointer unexpected",(p != NULL))
86 #define CuAssertPtrNotNullMsg(tc,msg,p) CuAssert_Line((tc),__FILE__,__LINE__,(msg),(p != NULL))
90 #define MAX_TEST_CASES 1024
92 #define SUITE_ADD_TEST(SUITE,TEST) CuSuiteAdd(SUITE, CuTestNew(#TEST, TEST))
97 CuTest
* list
[MAX_TEST_CASES
];
103 void CuSuiteInit(CuSuite
* testSuite
);
104 CuSuite
* CuSuiteNew(void);
105 void CuSuiteAdd(CuSuite
* testSuite
, CuTest
*testCase
);
106 void CuSuiteAddSuite(CuSuite
* testSuite
, CuSuite
* testSuite2
);
107 void CuSuiteRun(CuSuite
* testSuite
);
108 void CuSuiteSummary(CuSuite
* testSuite
, CuString
* summary
);
109 void CuSuiteDetails(CuSuite
* testSuite
, CuString
* details
);
111 #endif /* CU_TEST_H */