@@ -16,6 +16,11 @@ enum cl_test_status {
1616 CL_TEST_NOTRUN ,
1717};
1818
19+ enum cl_output_format {
20+ CL_OUTPUT_CLAP ,
21+ CL_OUTPUT_TAP ,
22+ };
23+
1924/** Setup clar environment */
2025void clar_test_init (int argc , char * argv []);
2126int clar_test_run (void );
@@ -81,16 +86,16 @@ const char *cl_fixture_basename(const char *fixture_name);
8186/**
8287 * Assertion macros with explicit error message
8388 */
84- #define cl_must_pass_ (expr , desc ) clar__assert((expr) >= 0, __FILE__, __LINE__, "Function call failed: " #expr, desc, 1)
85- #define cl_must_fail_ (expr , desc ) clar__assert((expr) < 0, __FILE__, __LINE__, "Expected function call to fail: " #expr, desc, 1)
86- #define cl_assert_ (expr , desc ) clar__assert((expr) != 0, __FILE__, __LINE__, "Expression is not true: " #expr, desc, 1)
89+ #define cl_must_pass_ (expr , desc ) clar__assert((expr) >= 0, __FILE__, __func__, __LINE__, "Function call failed: " #expr, desc, 1)
90+ #define cl_must_fail_ (expr , desc ) clar__assert((expr) < 0, __FILE__, __func__, __LINE__, "Expected function call to fail: " #expr, desc, 1)
91+ #define cl_assert_ (expr , desc ) clar__assert((expr) != 0, __FILE__, __func__, __LINE__, "Expression is not true: " #expr, desc, 1)
8792
8893/**
8994 * Check macros with explicit error message
9095 */
91- #define cl_check_pass_ (expr , desc ) clar__assert((expr) >= 0, __FILE__, __LINE__, "Function call failed: " #expr, desc, 0)
92- #define cl_check_fail_ (expr , desc ) clar__assert((expr) < 0, __FILE__, __LINE__, "Expected function call to fail: " #expr, desc, 0)
93- #define cl_check_ (expr , desc ) clar__assert((expr) != 0, __FILE__, __LINE__, "Expression is not true: " #expr, desc, 0)
96+ #define cl_check_pass_ (expr , desc ) clar__assert((expr) >= 0, __FILE__, __func__, __LINE__, "Function call failed: " #expr, desc, 0)
97+ #define cl_check_fail_ (expr , desc ) clar__assert((expr) < 0, __FILE__, __func__, __LINE__, "Expected function call to fail: " #expr, desc, 0)
98+ #define cl_check_ (expr , desc ) clar__assert((expr) != 0, __FILE__, __func__, __LINE__, "Expression is not true: " #expr, desc, 0)
9499
95100/**
96101 * Assertion macros with no error message
@@ -109,38 +114,39 @@ const char *cl_fixture_basename(const char *fixture_name);
109114/**
110115 * Forced failure/warning
111116 */
112- #define cl_fail (desc ) clar__fail(__FILE__, __LINE__, "Test failed.", desc, 1)
113- #define cl_warning (desc ) clar__fail(__FILE__, __LINE__, "Warning during test execution:", desc, 0)
117+ #define cl_fail (desc ) clar__fail(__FILE__, __func__, __LINE__, "Test failed.", desc, 1)
118+ #define cl_warning (desc ) clar__fail(__FILE__, __func__, __LINE__, "Warning during test execution:", desc, 0)
114119
115120#define cl_skip () clar__skip()
116121
117122/**
118123 * Typed assertion macros
119124 */
120- #define cl_assert_equal_s (s1 ,s2 ) clar__assert_equal(__FILE__,__LINE__,"String mismatch: " #s1 " != " #s2, 1, "%s", (s1), (s2))
121- #define cl_assert_equal_s_ (s1 ,s2 ,note ) clar__assert_equal(__FILE__,__LINE__,"String mismatch: " #s1 " != " #s2 " (" #note ")", 1, "%s", (s1), (s2))
125+ #define cl_assert_equal_s (s1 ,s2 ) clar__assert_equal(__FILE__,__func__, __LINE__,"String mismatch: " #s1 " != " #s2, 1, "%s", (s1), (s2))
126+ #define cl_assert_equal_s_ (s1 ,s2 ,note ) clar__assert_equal(__FILE__,__func__, __LINE__,"String mismatch: " #s1 " != " #s2 " (" #note ")", 1, "%s", (s1), (s2))
122127
123- #define cl_assert_equal_wcs (wcs1 ,wcs2 ) clar__assert_equal(__FILE__,__LINE__,"String mismatch: " #wcs1 " != " #wcs2, 1, "%ls", (wcs1), (wcs2))
124- #define cl_assert_equal_wcs_ (wcs1 ,wcs2 ,note ) clar__assert_equal(__FILE__,__LINE__,"String mismatch: " #wcs1 " != " #wcs2 " (" #note ")", 1, "%ls", (wcs1), (wcs2))
128+ #define cl_assert_equal_wcs (wcs1 ,wcs2 ) clar__assert_equal(__FILE__,__func__, __LINE__,"String mismatch: " #wcs1 " != " #wcs2, 1, "%ls", (wcs1), (wcs2))
129+ #define cl_assert_equal_wcs_ (wcs1 ,wcs2 ,note ) clar__assert_equal(__FILE__,__func__, __LINE__,"String mismatch: " #wcs1 " != " #wcs2 " (" #note ")", 1, "%ls", (wcs1), (wcs2))
125130
126- #define cl_assert_equal_strn (s1 ,s2 ,len ) clar__assert_equal(__FILE__,__LINE__,"String mismatch: " #s1 " != " #s2, 1, "%.*s", (s1), (s2), (int)(len))
127- #define cl_assert_equal_strn_ (s1 ,s2 ,len ,note ) clar__assert_equal(__FILE__,__LINE__,"String mismatch: " #s1 " != " #s2 " (" #note ")", 1, "%.*s", (s1), (s2), (int)(len))
131+ #define cl_assert_equal_strn (s1 ,s2 ,len ) clar__assert_equal(__FILE__,__func__, __LINE__,"String mismatch: " #s1 " != " #s2, 1, "%.*s", (s1), (s2), (int)(len))
132+ #define cl_assert_equal_strn_ (s1 ,s2 ,len ,note ) clar__assert_equal(__FILE__,__func__, __LINE__,"String mismatch: " #s1 " != " #s2 " (" #note ")", 1, "%.*s", (s1), (s2), (int)(len))
128133
129- #define cl_assert_equal_wcsn (wcs1 ,wcs2 ,len ) clar__assert_equal(__FILE__,__LINE__,"String mismatch: " #wcs1 " != " #wcs2, 1, "%.*ls", (wcs1), (wcs2), (int)(len))
130- #define cl_assert_equal_wcsn_ (wcs1 ,wcs2 ,len ,note ) clar__assert_equal(__FILE__,__LINE__,"String mismatch: " #wcs1 " != " #wcs2 " (" #note ")", 1, "%.*ls", (wcs1), (wcs2), (int)(len))
134+ #define cl_assert_equal_wcsn (wcs1 ,wcs2 ,len ) clar__assert_equal(__FILE__,__func__, __LINE__,"String mismatch: " #wcs1 " != " #wcs2, 1, "%.*ls", (wcs1), (wcs2), (int)(len))
135+ #define cl_assert_equal_wcsn_ (wcs1 ,wcs2 ,len ,note ) clar__assert_equal(__FILE__,__func__, __LINE__,"String mismatch: " #wcs1 " != " #wcs2 " (" #note ")", 1, "%.*ls", (wcs1), (wcs2), (int)(len))
131136
132- #define cl_assert_equal_i (i1 ,i2 ) clar__assert_equal(__FILE__,__LINE__,#i1 " != " #i2, 1, "%d", (int)(i1), (int)(i2))
133- #define cl_assert_equal_i_ (i1 ,i2 ,note ) clar__assert_equal(__FILE__,__LINE__,#i1 " != " #i2 " (" #note ")", 1, "%d", (i1), (i2))
134- #define cl_assert_equal_i_fmt (i1 ,i2 ,fmt ) clar__assert_equal(__FILE__,__LINE__,#i1 " != " #i2, 1, (fmt), (int)(i1), (int)(i2))
137+ #define cl_assert_equal_i (i1 ,i2 ) clar__assert_equal(__FILE__,__func__, __LINE__,#i1 " != " #i2, 1, "%d", (int)(i1), (int)(i2))
138+ #define cl_assert_equal_i_ (i1 ,i2 ,note ) clar__assert_equal(__FILE__,__func__, __LINE__,#i1 " != " #i2 " (" #note ")", 1, "%d", (i1), (i2))
139+ #define cl_assert_equal_i_fmt (i1 ,i2 ,fmt ) clar__assert_equal(__FILE__,__func__, __LINE__,#i1 " != " #i2, 1, (fmt), (int)(i1), (int)(i2))
135140
136- #define cl_assert_equal_b (b1 ,b2 ) clar__assert_equal(__FILE__,__LINE__,#b1 " != " #b2, 1, "%d", (int)((b1) != 0),(int)((b2) != 0))
141+ #define cl_assert_equal_b (b1 ,b2 ) clar__assert_equal(__FILE__,__func__, __LINE__,#b1 " != " #b2, 1, "%d", (int)((b1) != 0),(int)((b2) != 0))
137142
138- #define cl_assert_equal_p (p1 ,p2 ) clar__assert_equal(__FILE__,__LINE__,"Pointer mismatch: " #p1 " != " #p2, 1, "%p", (p1), (p2))
143+ #define cl_assert_equal_p (p1 ,p2 ) clar__assert_equal(__FILE__,__func__, __LINE__,"Pointer mismatch: " #p1 " != " #p2, 1, "%p", (p1), (p2))
139144
140145void clar__skip (void );
141146
142147void clar__fail (
143148 const char * file ,
149+ const char * func ,
144150 size_t line ,
145151 const char * error ,
146152 const char * description ,
@@ -149,13 +155,15 @@ void clar__fail(
149155void clar__assert (
150156 int condition ,
151157 const char * file ,
158+ const char * func ,
152159 size_t line ,
153160 const char * error ,
154161 const char * description ,
155162 int should_abort );
156163
157164void clar__assert_equal (
158165 const char * file ,
166+ const char * func ,
159167 size_t line ,
160168 const char * err ,
161169 int should_abort ,
0 commit comments