X-Git-Url: http://git.madism.org/?a=blobdiff_plain;f=postlicyd%2Ftst-filters.c;h=9de410c1fca53c10b7f88ec7d87e9bb0f068cd30;hb=92dc834e982d4b71ce6a3fcc2c973e555afd3fcf;hp=0c08f6964037e456ccf1cfe958687936864b5ec7;hpb=b5c79dd713c2e444df9ba50b48718330ad936eb7;p=apps%2Fpfixtools.git diff --git a/postlicyd/tst-filters.c b/postlicyd/tst-filters.c index 0c08f69..9de410c 100644 --- a/postlicyd/tst-filters.c +++ b/postlicyd/tst-filters.c @@ -38,10 +38,6 @@ #include "file.h" #include -#define DAEMON_NAME "tst-filters" - -DECLARE_MAIN - static char *read_query(const char *basepath, const char *filename, char *buff, char **end, query_t *q) { @@ -54,7 +50,7 @@ static char *read_query(const char *basepath, const char *filename, return NULL; } if (map.end - map.map >= BUFSIZ) { - syslog(LOG_ERR, "File too large for a testcase: %s", path); + err("File too large for a testcase: %s", path); file_map_close(&map); return NULL; } @@ -62,6 +58,8 @@ static char *read_query(const char *basepath, const char *filename, if (end != NULL) { *end = buff + (map.end - map.map); **end = '\0'; + } else { + buff[map.end - map.map] = '\0'; } file_map_close(&map); } @@ -71,7 +69,7 @@ static char *read_query(const char *basepath, const char *filename, return NULL; } if (!query_parse(q, buff)) { - syslog(LOG_ERR, "Cannot parse query from file %s", filename); + err("Cannot parse query from file %s", filename); return NULL; } return eoq + 2; @@ -98,21 +96,21 @@ static bool run_testcase(const config_t *config, const char *basepath, char *sep = memchr(eol, '=', neol - eol); if (sep == NULL) { eol = neol + 1; - syslog(LOG_ERR, "missing separator"); + err("missing separator"); continue; } *sep = '\0'; int pos = filter_find_with_name(&config->filters, eol); if (pos == -1) { - syslog(LOG_ERR, "Unknown filter %s", eol); + err("Unknown filter %s", eol); eol = neol + 1; continue; } ++sep; filter_result_t result = hook_tokenize(sep, neol - sep); if (result == HTK_UNKNOWN) { - syslog(LOG_ERR, "Unknown filter result %.*s", neol - sep, sep); + err("Unknown filter result %.*s", neol - sep, sep); eol = neol + 1; continue; } @@ -144,7 +142,6 @@ static bool run_greylisttest(const config_t *config, const char *basepath) // filter_t *greylist2; #define QUERY(Q) \ - printf("Reading greylist_" STR(Q) "\n"); \ if (read_query(basepath, "greylist_" STR(Q), buff_##Q, NULL, &Q) == NULL) { \ return false; \ } @@ -167,13 +164,17 @@ static bool run_greylisttest(const config_t *config, const char *basepath) /* Test greylist */ TEST("greylisted", filter_test(greylist1, &q1, HTK_GREYLIST)); - TEST("greylisted", filter_test(greylist1, &q1, HTK_GREYLIST)); + TEST("too_fast", filter_test(greylist1, &q1, HTK_GREYLIST)); + sleep(5); + TEST("too_slow", filter_test(greylist1, &q1, HTK_GREYLIST)); sleep(2); TEST("whitelisted", filter_test(greylist1, &q1, HTK_WHITELIST)); TEST("other_greylisted", filter_test(greylist1, &q2, HTK_GREYLIST)); TEST("auto_whitelisted", filter_test(greylist1, &q1, HTK_WHITELIST)); TEST("other_auto_whitelisted", filter_test(greylist1, &q2, HTK_WHITELIST)); TEST("greylisted", filter_test(greylist1, &q3, HTK_GREYLIST)); + sleep(10); + TEST("cleanup", filter_test(greylist1, &q1, HTK_GREYLIST)); return ok; } @@ -184,6 +185,7 @@ int main(int argc, char *argv[]) char path[FILENAME_MAX]; char *p; + common_startup(); p = strrchr(argv[0], '/'); if (p == NULL) { p = argv[0]; @@ -197,8 +199,8 @@ int main(int argc, char *argv[]) #define RM(File) \ snprintf(path, FILENAME_MAX, "%s/%s", basepath, File); \ unlink(path); - RM("test1_greylist.db"); - RM("test1_whitelist.db"); +// RM("test1_greylist.db"); +// RM("test1_whitelist.db"); RM("test2_greylist.db"); RM("test2_whitelist.db"); #undef RM @@ -236,6 +238,5 @@ int main(int argc, char *argv[]) #undef RUN - config_delete(&config); return 0; }