+2004-11-04 hugo303
+
+ * src/check.c, src/check.h.in, tests/check_check_master.c,
+ tests/check_check_sub.c: Applied ANSI C99 patch (#1047014)
+
2004-08-20 hugo303
* doc/tutorial.sgml: Updated with new features.
}
void _fail_unless (int result, const char *file,
- int line, const char * msg, ...)
+ int line, const char *expr, ...)
{
- if (msg == NULL)
- eprintf ("_fail_unless() called with NULL msg",__FILE__,__LINE__);
-
+ const char *msg;
+
send_loc_info (get_send_key(), file, line);
if (!result) {
va_list ap;
char buf[BUFSIZ];
-
- va_start(ap,msg);
+
+ va_start(ap,expr);
+ msg = (const char*)va_arg(ap, char *);
+ if (msg == NULL)
+ msg = expr;
vsnprintf(buf, BUFSIZ, msg, ap);
va_end(ap);
send_failure_info (get_send_key(), buf);
/* Fail the test case unless expr is true */
-#define fail_unless(expr, msg, args...)\
+#define fail_unless(expr, ...)\
_fail_unless(expr, __FILE__, __LINE__,\
- msg ? msg : "Assertion '"#expr"' failed", ##args)
+ "Assertion '"#expr"' failed" , ## __VA_ARGS__, NULL)
/* Fail the test case if expr is true */
-#define fail_if(expr, msg, args...)\
+#define fail_if(expr, ...)\
_fail_unless(!(expr), __FILE__, __LINE__,\
- msg ?msg :"Assertion '"#expr"' failed", ##args)
+ "Assertion '"#expr"' failed", ## __VA_ARGS__, NULL)
/* Always fail */
-#define fail(msg, args...) _fail_unless(0, __FILE__, __LINE__, msg, ##args)
+#define fail(...) _fail_unless(0, __FILE__, __LINE__, "Failed" , ## __VA_ARGS__, NULL)
/* Non macro version of #fail_unless, with more complicated interface */
void _fail_unless (int result, const char *file,
- int line, const char *msg, ...);
+ int line, const char *expr, ...);
/* Mark the last point reached in a unit test
START_TEST(test_check_nfailures)
{
- fail_unless (sub_nfailed == 16,
+ fail_unless (sub_nfailed == 19,
"Unexpected number of failures received, %d.", sub_nfailed);
}
END_TEST
START_TEST(test_check_ntests_run)
{
- fail_unless (sub_ntests == 18,
+ fail_unless (sub_ntests == 21,
"Unexpected number of tests run, %d.", sub_ntests);
}
END_TEST
/* "Test passed", */
"This test should fail",
"Assertion '2 == 3' failed",
+ "Assertion '4 == 5' failed",
"Assertion '2 != 3' failed",
+ "Assertion '4 != 5' failed",
"3 != 4",
"5 != 6",
"7 == 7",
+ "Failed",
"Received signal 11",
"Received signal 8",
"Received signal 8",
-1,
-1,
-1,
+ -1,
+ -1,
+ -1,
-1};
for (i = 0; i < sub_nfailed; i++) {
CK_FAILURE,
CK_FAILURE,
CK_FAILURE,
+ CK_FAILURE,
+ CK_FAILURE,
+ CK_FAILURE,
CK_ERROR,
CK_ERROR,
CK_ERROR,
"Simple Tests",
"Simple Tests",
"Simple Tests",
+ "Simple Tests",
+ "Simple Tests",
+ "Simple Tests",
"Signal Tests",
"Signal Tests",
"Signal Tests",
"Passed",
"This test should fail",
"Assertion '2 == 3' failed",
+ "Assertion '4 == 5' failed",
"Assertion '2 != 3' failed",
+ "Assertion '4 != 5' failed",
"3 != 4",
"5 != 6",
"7 == 7",
+ "Failed",
"Received signal 11",
"Received signal 8",
"Received signal 8",
CK_FAILURE,
CK_FAILURE,
CK_FAILURE,
+ CK_FAILURE,
+ CK_FAILURE,
+ CK_FAILURE,
CK_ERROR,
CK_ERROR,
CK_ERROR,
}
END_TEST
+
+START_TEST(test_fail_no_msg)
+{
+ fail_unless(4 == 5);
+}
+END_TEST
+
START_TEST(test_fail_if_null_msg)
{
fail_if(2 != 3, NULL);
}
END_TEST
+
+START_TEST(test_fail_if_no_msg)
+{
+ fail_if(4 != 5);
+}
+END_TEST
+
START_TEST(test_fail_vararg_msg_1)
{
int x = 3;
}
END_TEST
+START_TEST(test_fail_empty)
+{
+ fail();
+}
+END_TEST
+
START_TEST(test_segv)
{
raise (SIGSEGV);
tcase_add_test (tc_simple, test_fail_if_pass);
tcase_add_test (tc_simple, test_fail_if_fail);
tcase_add_test (tc_simple, test_fail_null_msg);
+ tcase_add_test (tc_simple, test_fail_no_msg);
tcase_add_test (tc_simple, test_fail_if_null_msg);
+ tcase_add_test (tc_simple, test_fail_if_no_msg);
tcase_add_test (tc_simple, test_fail_vararg_msg_1);
tcase_add_test (tc_simple, test_fail_vararg_msg_2);
tcase_add_test (tc_simple, test_fail_vararg_msg_3);
+ tcase_add_test (tc_simple, test_fail_empty);
tcase_add_test (tc_signal, test_segv);
tcase_add_test (tc_signal, test_fpe);
tcase_add_test (tc_signal, test_mark_point);