123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239 |
- #include <check.h>
- #include <errno.h>
- #include <stdio.h>
- #include <unistd.h>
-
-
- #include "ttail.h"
-
- ttail_t *ttail;
- #define __Fname_sz 5
- #define FNAME_NO_EXIST 0
- #define FNAME_EXIST 1
- char *fname[__Fname_sz];
-
- void teardown_ttail(void)
- {
- ttail_free(ttail);
- }
- void setup_ttail_empty(void)
- {
- ttail = ttail_init(1, (char**)&"foo");
- }
- START_TEST (test_init_empty_logfilename)
- {
- ck_assert_msg(ttail->logfile_name == NULL,
- "ttail_t.logfile_name should be NULL");
- }
- END_TEST
-
- START_TEST (test_init_nonexist_logfilename)
- {
- char *fname;
- int ret;
- fname = tempnam(NULL, "ttail_check");
-
- ret = ttail_add_logfile(ttail, fname);
- ck_assert_int_eq(ret, 1);
- ck_assert(ttail->logfile_name != NULL);
- ck_assert_str_eq(ttail->logfile_name[0], fname);
- ck_assert(ttail->logfile[0] == NULL);
- free(fname);
- }
- END_TEST
-
- START_TEST (test_init_exist_logfilename)
- {
- char *fname;
- int ret;
- FILE *fp;
- fname = tempnam(NULL, "ttail_check");
- if(!(fp = fopen(fname, "w+")))
- {
- perror("Unable to create file for testing");
- ck_abort_msg("Unable to create file for testing");
- }
- if(fclose(fp))
- {
- perror("Unable to close file for testing");
- ck_abort_msg("Unabe to close file for testing");
- }
-
- ret = ttail_add_logfile(ttail, fname);
- ck_assert_int_eq(ret, 0);
- ck_assert(ttail->logfile_name != NULL);
- ck_assert_str_eq(ttail->logfile_name[0], fname);
- ck_assert(ttail->logfile[0] != NULL);
- free(fname);
- }
- END_TEST
-
- START_TEST (test_init_same_exist_logfilename)
- {
- char *fname;
- int ret;
- FILE *fp;
- fname = tempnam(NULL, "ttail_check");
- if(!(fp = fopen(fname, "w+")))
- {
- perror("Unable to create file for testing");
- ck_abort_msg("Unable to create file for testing");
- }
- if(fclose(fp))
- {
- perror("Unable to close file for testing");
- ck_abort_msg("Unabe to close file for testing");
- }
-
- ret = ttail_add_logfile(ttail, fname);
- ck_assert_int_eq(ret, 0);
- ret = ttail_add_logfile(ttail, fname);
- ck_assert_int_eq(ret, -1);
- ck_assert_int_eq(ttail->logfile_sz, 1);
- ck_assert(ttail->logfile_name != NULL);
- ck_assert_str_eq(ttail->logfile_name[0], fname);
- ck_assert(ttail->logfile[0] != NULL);
- free(fname);
- }
- END_TEST
-
- START_TEST (test_init_same_nonexist_logfilename)
- {
- char *fname;
- int ret;
- fname = tempnam(NULL, "ttail_check");
-
- ret = ttail_add_logfile(ttail, fname);
- ck_assert_int_eq(ret, 1);
- ret = ttail_add_logfile(ttail, fname);
- ck_assert_int_eq(ret, -1);
- ck_assert_int_eq(ttail->logfile_sz, 1);
- ck_assert(ttail->logfile_name != NULL);
- ck_assert_str_eq(ttail->logfile_name[0], fname);
- ck_assert(ttail->logfile[0] == NULL);
- free(fname);
- }
- END_TEST
-
- START_TEST (test_init_multiple_logfilename)
- {
- char *fname[20];
- int ret;
- int i, j;
- for(i=0;i<20;i++)
- {
- fname[i] = tempnam(NULL, "ttail_check");
- }
-
- for(i=0; i<20; i++)
- {
- for(j=0; j<i; j++)
- {
- ret = ttail_add_logfile(ttail, fname[j]);
- ck_assert_int_eq(ret, -1);
- ck_assert_int_eq(ttail->logfile_sz, i);
- }
- ret = ttail_add_logfile(ttail, fname[i]);
- ck_assert_int_eq(ret, 1);
- ck_assert_int_eq(ttail->logfile_sz, i+1);
- for(j=0; j<i+1; j++)
- {
- ck_assert_str_eq(ttail->logfile_name[j], fname[j]);
- ck_assert(ttail->logfile[j] == NULL);
- }
- }
- for(i=0; i<20; i++)
- {
- free(fname[i]);
- }
- }
- END_TEST
-
- START_TEST (test_init_prefix)
- {
- int ret;
- ret = ttail_set_prefix(ttail, "^[^ ]+ ");
- ck_assert_int_eq(ret, 0);
- ck_assert((ttail->flag & TTAIL_FLAG_PREFIX) == TTAIL_FLAG_PREFIX);
- }
- END_TEST
-
- START_TEST (test_init_bad_prefix)
- {
- int ret;
- ret = ttail_set_prefix(ttail, "^[^ + ");
- ck_assert_int_eq(ret, -1);
- ck_assert((ttail->flag & TTAIL_FLAG_PREFIX) == 0);
- }
- END_TEST
-
- START_TEST (test_init_again_prefix)
- {
- int ret;
- ret = ttail_set_prefix(ttail, "^[^ ]+ ");
- ck_assert_int_eq(ret, 0);
- ck_assert((ttail->flag & TTAIL_FLAG_PREFIX) == TTAIL_FLAG_PREFIX);
- ret = ttail_set_prefix(ttail, "^[^ + ");
- ck_assert_int_eq(ret, 0);
- ck_assert((ttail->flag & TTAIL_FLAG_PREFIX) == TTAIL_FLAG_PREFIX);
- }
- END_TEST
-
- START_TEST (test_init_againbad_prefix)
- {
- int ret;
- ret = ttail_set_prefix(ttail, "^[^ + ");
- ck_assert_int_eq(ret, -1);
- ck_assert((ttail->flag & TTAIL_FLAG_PREFIX) == 0);
-
- ret = ttail_set_prefix(ttail, "^[^ ]+ ");
- ck_assert_int_eq(ret, 0);
- ck_assert((ttail->flag & TTAIL_FLAG_PREFIX) == TTAIL_FLAG_PREFIX);
- }
- END_TEST
-
- Suite * ttail_init_suite(void)
- {
- Suite *s;
- TCase *tc_init_logfile;
- TCase *tc_init_prefix;
-
- s = suite_create("ttail init checks");
-
- tc_init_logfile = tcase_create("logfile init checks");
- tcase_add_checked_fixture(tc_init_logfile,
- setup_ttail_empty, teardown_ttail);
- tcase_add_test(tc_init_logfile, test_init_empty_logfilename);
- tcase_add_test(tc_init_logfile, test_init_nonexist_logfilename);
- tcase_add_test(tc_init_logfile, test_init_exist_logfilename);
- tcase_add_test(tc_init_logfile, test_init_same_exist_logfilename);
- tcase_add_test(tc_init_logfile, test_init_same_nonexist_logfilename);
- tcase_add_test(tc_init_logfile, test_init_multiple_logfilename);
-
- tc_init_prefix = tcase_create("date prefix regex init checks");
- tcase_add_checked_fixture(tc_init_prefix,
- setup_ttail_empty, teardown_ttail);
- tcase_add_test(tc_init_prefix, test_init_prefix);
- tcase_add_test(tc_init_prefix, test_init_bad_prefix);
- tcase_add_test(tc_init_prefix, test_init_again_prefix);
- tcase_add_test(tc_init_prefix, test_init_againbad_prefix);
-
- suite_add_tcase(s, tc_init_logfile);
- suite_add_tcase(s, tc_init_prefix);
- return s;
- }
-
- int main(void)
- {
- int number_failed = 0;
- SRunner *sr;
-
- sr = srunner_create(ttail_init_suite());
- srunner_set_fork_status(sr, CK_FORK);
-
- srunner_run_all(sr,CK_VERBOSE);
- number_failed = srunner_ntests_failed(sr);
- srunner_free(sr);
- return (number_failed == 0) ? EXIT_SUCCESS : EXIT_FAILURE;
-
- }
|