]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib: event-filter-parser - Use str_begins() to compare unit test error strings
authorJosef 'Jeff' Sipek <jeff.sipek@open-xchange.com>
Fri, 14 Aug 2020 14:25:33 +0000 (10:25 -0400)
committerJosef 'Jeff' Sipek <jeff.sipek@open-xchange.com>
Fri, 14 Aug 2020 14:25:33 +0000 (10:25 -0400)
Different versions of bison generate slightly different error strings, but
they always begin the same way.  So, instead of comparing them let's only
compare the beginning.

src/lib/test-event-filter-parser.c

index bf96eb34a566a2237940064f6a603e093ee67388..6fb919748bbe51ec84a5e21b3828c9d6c3f2cbf8 100644 (file)
@@ -141,8 +141,7 @@ static struct test {
 #undef CHECK_REAL
 
        /* check empty parens */
-       BAD("()",
-           "event filter: syntax error, unexpected ')', expecting TOKEN or STRING or NOT or '('"),
+       BAD("()", "event filter: syntax error"),
 
        /* check name only / name+comparator (!negated & negated) */
 #define CHECK_CMP_REAL(not, name, cmp, err) \
@@ -153,17 +152,17 @@ static struct test {
        CHECK_CMP_REAL("NOT ", name, cmp, err)
 #define CHECK(name) \
        CHECK_CMP(name, "", \
-           "event filter: syntax error, unexpected $end, expecting '=' or '>' or '<'"), \
+           "event filter: syntax error"), \
        CHECK_CMP(name, "=", \
-           "event filter: syntax error, unexpected $end"), \
+           "event filter: syntax error"), \
        CHECK_CMP(name, "<", \
-           "event filter: syntax error, unexpected $end"), \
+           "event filter: syntax error"), \
        CHECK_CMP(name, "<=", \
-           "event filter: syntax error, unexpected $end"), \
+           "event filter: syntax error"), \
        CHECK_CMP(name, ">", \
-           "event filter: syntax error, unexpected $end"), \
+           "event filter: syntax error"), \
        CHECK_CMP(name, ">=", \
-           "event filter: syntax error, unexpected $end")
+           "event filter: syntax error")
 
        CHECK("event"),
        CHECK("source_location"),
@@ -205,7 +204,6 @@ static void testcase(const char *name, const char *input, const char *exp,
 {
        struct event_filter *filter;
        const char *error;
-       const char *got;
        int ret;
 
        test_begin(t_strdup_printf("event filter parser: %s: %s", name, input));
@@ -220,13 +218,11 @@ static void testcase(const char *name, const char *input, const char *exp,
 
                event_filter_export(filter, tmp);
 
-               got = str_c(tmp);
+               test_assert_strcmp(exp, str_c(tmp));
        } else {
-               got = error;
+               test_assert(str_begins(error, exp));
        }
 
-       test_assert_strcmp(exp, got);
-
        event_filter_unref(&filter);
 
        test_end();