enum ck_test_msg_type_t {
#if ENABLE_REGEX
- // For tests with different output on different platforms
+ /* For tests with different output on different platforms */
CK_MSG_REGEXP,
#endif
- // Simple text
+ /* Simple text */
CK_MSG_TEXT
};
START_TEST(test_check_nfailures)
{
int i;
- int failed = 0;
+ int number_failed = 0;
for (i = 0; i < nr_of_master_tests; i++) {
if (master_tests[i].failure_type != CK_PASS) {
- failed++;
+ number_failed++;
}
}
- ck_assert_msg (sub_nfailed == failed,
+ ck_assert_msg (sub_nfailed == number_failed,
"Unexpected number of failures received, %d, expected %d.",
- sub_nfailed, failed);
+ sub_nfailed, number_failed);
}
END_TEST
expected_msg = master_test->msg;
switch (master_test->msg_type) {
- case CK_MSG_TEXT:
- if (strcmp(got_msg, expected_msg) != 0) {
- not_equal = 1;
- }
- break;
+ case CK_MSG_TEXT:
+ if (strcmp(got_msg, expected_msg) != 0) {
+ not_equal = 1;
+ }
+ break;
#if ENABLE_REGEX
- case CK_MSG_REGEXP: {
- reg_err = regcomp(&re, expected_msg, REG_EXTENDED | REG_NOSUB);
- if (reg_err) {
- regerror(reg_err, &re, err_text, sizeof(err_text));
- ck_assert_msg(reg_err == 0,
- "For test %d:%s:%s Expected regexp '%s', but regcomp returned error '%s'",
- i, master_test->tcname, master_test->test_name, expected_msg,
- err_text);
- }
- reg_err = regexec(&re, got_msg, 0, NULL, 0);
- regfree(&re);
- if (reg_err) {
- not_equal = 1;
+ case CK_MSG_REGEXP: {
+ reg_err = regcomp(&re, expected_msg, REG_EXTENDED | REG_NOSUB);
+ if (reg_err) {
+ regerror(reg_err, &re, err_text, sizeof(err_text));
+ ck_assert_msg(reg_err == 0,
+ "For test %d:%s:%s Expected regexp '%s', but regcomp returned error '%s'",
+ i, master_test->tcname, master_test->test_name, expected_msg,
+ err_text);
+ }
+ reg_err = regexec(&re, got_msg, 0, NULL, 0);
+ regfree(&re);
+ if (reg_err) {
+ not_equal = 1;
+ }
+ break;
}
- break;
- }
#endif /* ENABLE_REGEX */
+ default:
+ /* Program should not reach here */
+ break;
}
if (not_equal) {
int i;
int line_no;
int passed = 0;
- int failed;
+ int number_failed;
TestResult *tr;
/* Create list of line numbers where failures occurred */
continue;
}
- failed = i - passed;
+ number_failed = i - passed;
ck_assert_msg(i - passed <= sub_nfailed, NULL);
- tr = tr_fail_array[failed];
+ tr = tr_fail_array[number_failed];
ck_assert_msg(tr != NULL, NULL);
line_no = get_next_failure_line_num(line_num_failures);
if(line_no == -1)
{
ck_abort_msg("Did not find the %dth failure line number for suite %s, msg %s",
- (failed+1), tr_tcname(tr), tr_msg(tr));
+ (number_failed+1), tr_tcname(tr), tr_msg(tr));
}
if (line_no > 0 && tr_lno(tr) != line_no) {
ck_abort_msg("For test %d (failure %d): Expected lno %d, got %d for suite %s, msg %s",
- i, failed, line_no, tr_lno(tr), tr_tcname(tr), tr_msg(tr));
+ i, number_failed, line_no, tr_lno(tr), tr_tcname(tr), tr_msg(tr));
}
}
ck_assert_msg(tr != NULL, NULL);
ck_assert_msg(master_tests[i].failure_type == tr_rtype(tr),
"Failure type wrong for test %d:%s:%s",
- i, master_tests[i].tcname, master_tests[i].test_name);
+ i, master_tests[i].tcname, master_tests[i].test_name);
}
}
END_TEST
ck_assert_msg(tr_lfile(tr) != NULL, "Bad file name for test %d", i);
ck_assert_msg(strstr(tr_lfile(tr), "check_check_sub.c") != 0,
"Bad file name for test %d:%s:%s",
- i, master_tests[i].tcname, master_tests[i].test_name);
+ i, master_tests[i].tcname, master_tests[i].test_name);
}
}
END_TEST
if (strcmp(tcname, master_tests[_i].tcname) != 0) {
ck_abort_msg("Expected '%s', got '%s' for test %d:%s",
master_tests[_i].tcname, tcname,
- _i, master_tests[_i].test_name);
+ _i, master_tests[_i].test_name);
}
}
END_TEST
int i;
int line_no;
int passed = 0;
- int failed;
+ int number_failed;
TestResult *tr;
rewind(test_names_file);
for (i = 0; i < sub_ntests; i++)
{
- char* test_name = get_next_test_name(test_names_file);
-
- if(test_name == NULL || strcmp(master_tests[i].test_name, test_name) != 0)
- {
- ck_abort_msg("Expected test name '%s' but found '%s' for test %d:%s",
- master_tests[i].test_name,
- (test_name == NULL ? "(null)" : test_name),
- i, master_tests[i].tcname);
- }
+ char* test_name = get_next_test_name(test_names_file);
+
+ if(test_name == NULL || strcmp(master_tests[i].test_name, test_name) != 0)
+ {
+ ck_abort_msg("Expected test name '%s' but found '%s' for test %d:%s",
+ master_tests[i].test_name,
+ (test_name == NULL ? "(null)" : test_name),
+ i, master_tests[i].tcname);
+ }
- free(test_name);
+ free(test_name);
}
}
END_TEST
const char *got_msg = tr_msg(tr_all_array[_i]);
master_test_t *master_test = &master_tests[_i];
const char *expected_msg = master_test->msg;
- char emsg[MAXSTR];
- const char *msg_type_str;
- char err_text[256];
- int reg_err;
unsigned char not_equal = 0;
- char *emsg_escaped;
#if ENABLE_REGEX
regex_t re;
#endif
switch (master_test->msg_type) {
- case CK_MSG_TEXT:
- if (strcmp(got_msg, expected_msg) != 0) {
- not_equal = 1;
- }
- break;
+ case CK_MSG_TEXT:
+ if (strcmp(got_msg, expected_msg) != 0) {
+ not_equal = 1;
+ }
+ break;
#if ENABLE_REGEX
- case CK_MSG_REGEXP: {
- reg_err = regcomp(&re, expected_msg, REG_EXTENDED | REG_NOSUB);
- if (reg_err) {
- regerror(reg_err, &re, err_text, sizeof(err_text));
- ck_assert_msg(reg_err == 0,
- "For test %d:%s:%s Expected regexp '%s', but regcomp returned error '%s'",
- _i, master_test->tcname, master_test->test_name, expected_msg,
- err_text);
- }
- reg_err = regexec(&re, got_msg, 0, NULL, 0);
- regfree(&re);
- if (reg_err) {
- not_equal = 1;
+ case CK_MSG_REGEXP: {
+ int reg_err = regcomp(&re, expected_msg, REG_EXTENDED | REG_NOSUB);
+ if (reg_err) {
+ char err_text[256];
+ regerror(reg_err, &re, err_text, sizeof(err_text));
+ ck_assert_msg(reg_err == 0,
+ "For test %d:%s:%s Expected regexp '%s', but regcomp returned error '%s'",
+ _i, master_test->tcname, master_test->test_name, expected_msg,
+ err_text);
+ }
+ reg_err = regexec(&re, got_msg, 0, NULL, 0);
+ regfree(&re);
+ if (reg_err) {
+ not_equal = 1;
+ }
+ break;
}
- break;
- }
#endif /* ENABLE_REGEX */
+ default:
+ /* Program should not reach here */
+ break;
}
if (not_equal) {
+ const char *msg_type_str;
+ char emsg[MAXSTR];
+ char *emsg_escaped;
switch(master_test->msg_type) {
#if ENABLE_REGEX
case CK_MSG_REGEXP:
{
ck_assert_msg(master_tests[_i].failure_type == tr_rtype(tr_all_array[_i]),
"For test %d:%s:%s failure type wrong, expected %d but got %d",
- _i, master_tests[_i].tcname, master_tests[_i].test_name,
- master_tests[_i].failure_type, tr_rtype(tr_all_array[_i]));
+ _i, master_tests[_i].tcname, master_tests[_i].test_name,
+ master_tests[_i].failure_type, tr_rtype(tr_all_array[_i]));
}
END_TEST
START_TEST(test_setup)
{
ck_assert_msg (test_fixture_val == 1,
- "Value not setup or changed across tests correctly");
+ "Value not setup or changed across tests correctly");
test_fixture_val = 2;
}
END_TEST
START_TEST(test_teardown)
{
ck_assert_msg (test_fixture_val == 3,
- "Value not changed correctly in teardown");
+ "Value not changed correctly in teardown");
}
END_TEST
tcase_add_loop_test (tc_core, test_check_all_msgs, 0, sub_ntests);
tcase_add_loop_test (tc_core, test_check_all_ftypes, 0, nr_of_master_tests);
tcase_add_unchecked_fixture(tc_fixture, test_fixture_setup,
- test_fixture_teardown);
+ test_fixture_teardown);
/* add the test 3 times to make sure we adequately test
preservation of fixture values across tests, regardless
of the order in which tests are added to the test case */
line_num_failures = fopen(line_num_failures_file_name, "w+b");
#else
test_names_file_name = strdup("check_test_names__XXXXXX");
+ assert(test_names_file_name != NULL && "strdup() failed");
test_names_file = fdopen(mkstemp(test_names_file_name), "w+b");
line_num_failures_file_name = strdup("check_error_linenums_XXXXXX");
+ assert(line_num_failures_file_name != NULL && "strdup() failed");
line_num_failures = fdopen(mkstemp(line_num_failures_file_name), "w+b");
#endif
*/
if(written > 0 && line[written-1] == '\n')
{
- line[written-1] = '\0';
+ line[written-1] = '\0';
}
return line;
written = fwrite(string, 1, to_write, line_num_failures);
if(written != to_write)
{
- fprintf(stderr, "%s:%d: Error in call to fwrite, wrote %ld instead of %d:", __FILE__, __LINE__, written, to_write);
+ fprintf(stderr, "%s:%d: Error in call to fwrite, wrote %zd instead of %d:", __FILE__, __LINE__, written, to_write);
exit(1);
}