diff options
author | jpadkins <jacobpadkins@gmail.com> | 2017-03-10 20:03:04 +0300 |
---|---|---|
committer | jpadkins <jacobpadkins@gmail.com> | 2017-03-10 20:03:04 +0300 |
commit | 299492c50991f62dff009d7cd24cf42ec38ec62c (patch) | |
tree | 0844f23693e656e60a57aa76b3a63c9a438d49e1 /check/magma/servers | |
parent | d3be2ea03c18997d65c6afe9024d18a788956437 (diff) |
Added a regex test
Diffstat (limited to 'check/magma/servers')
-rw-r--r-- | check/magma/servers/smtp/checkers_check.c | 25 | ||||
-rw-r--r-- | check/magma/servers/smtp/smtp_check.c | 3 | ||||
-rw-r--r-- | check/magma/servers/smtp/smtp_check.h | 1 |
3 files changed, 27 insertions, 2 deletions
diff --git a/check/magma/servers/smtp/checkers_check.c b/check/magma/servers/smtp/checkers_check.c index e9c51b2f..21ce3488 100644 --- a/check/magma/servers/smtp/checkers_check.c +++ b/check/magma/servers/smtp/checkers_check.c @@ -88,6 +88,30 @@ bool_t check_smtp_checkers_greylist_sthread(stringer_t *errmsg) { return true; } +bool_t check_smtp_checkers_regex_sthread(stringer_t *errmsg) { + + chr_t *expressions[] = { + "http\\:\\/\\/www\\.lavabit\\.com\\ ", + "lavabit\\ ", + "expr\\ with\\ spaces", + "expr\\ with\\ trailing\\ backslash\\ ", + "\\ levabit\\ ", + "\\*\\*\\ regex\\ with\\ wildcards\\ \\*", + "regex\\ \\*\\ with\\ \\*\\ wildcards" + }; + struct re_pattern_buffer regbuff; + mm_wipe(®buff, sizeof(struct re_pattern_buffer)); + + for (size_t i = 0; i < (sizeof(expressions)/sizeof(chr_t*)); i++) { + if (regcomp(®buff, expressions[i], REG_ICASE) != 0) { + st_sprint(errmsg, "Regular expression compilation failed. { expression = %s }", expressions[i]); + return false;; + } + } + + return true; +} + bool_t check_smtp_checkers_filters_sthread(stringer_t *errmsg, int_t action, int_t expected) { multi_t key = mt_get_null(); @@ -189,7 +213,6 @@ bool_t check_smtp_checkers_filters_sthread(stringer_t *errmsg, int_t action, int } inx_cleanup(prefs.filters); - st_cleanup(message); return true; } diff --git a/check/magma/servers/smtp/smtp_check.c b/check/magma/servers/smtp/smtp_check.c index 8efa8372..9a649b17 100644 --- a/check/magma/servers/smtp/smtp_check.c +++ b/check/magma/servers/smtp/smtp_check.c @@ -60,7 +60,8 @@ START_TEST (check_smtp_checkers_filters_s) { bool_t outcome = true; stringer_t *errmsg = MANAGEDBUF(1024); - if (status()) outcome = check_smtp_checkers_filters_sthread(errmsg, SMTP_FILTER_ACTION_DELETE, -2); + if (status()) outcome = check_smtp_checkers_regex_sthread(errmsg); + if (status() && outcome) outcome = check_smtp_checkers_filters_sthread(errmsg, SMTP_FILTER_ACTION_DELETE, -2); if (status() && outcome) outcome = check_smtp_checkers_filters_sthread(errmsg, SMTP_FILTER_ACTION_MOVE, 2); if (status() && outcome) outcome = check_smtp_checkers_filters_sthread(errmsg, SMTP_FILTER_ACTION_LABEL, 3); if (status() && outcome) outcome = check_smtp_checkers_filters_sthread(errmsg, SMTP_FILTER_ACTION_MARK_READ, 4); diff --git a/check/magma/servers/smtp/smtp_check.h b/check/magma/servers/smtp/smtp_check.h index e684064c..9e27bee4 100644 --- a/check/magma/servers/smtp/smtp_check.h +++ b/check/magma/servers/smtp/smtp_check.h @@ -12,6 +12,7 @@ bool_t check_smtp_accept_message_sthread(stringer_t *errmsg); /// checkers_check.c bool_t check_smtp_checkers_greylist_sthread(stringer_t *errmsg); +bool_t check_smtp_checkers_regex_sthread(stringer_t *errmsg); bool_t check_smtp_checkers_filters_sthread(stringer_t *errmsg, int_t action, int_t expected); /// smtp_check_network.c |