]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib: test-event-filter - Replace event_filter_add() with event_filter_parse()
authorTimo Sirainen <timo.sirainen@open-xchange.com>
Mon, 16 Aug 2021 14:13:27 +0000 (17:13 +0300)
committeraki.tuomi <aki.tuomi@open-xchange.com>
Wed, 18 Aug 2021 10:10:45 +0000 (10:10 +0000)
src/lib/test-event-filter.c

index 3a3b6e4d22bfc2a7a459ddef1a41a7890e9acab9..ed914c3019dbbf95f1bde4f974128913ac693652 100644 (file)
@@ -7,24 +7,7 @@
 static void test_event_filter_override_parent_fields(void)
 {
        struct event_filter *filter;
-       struct event_filter_field parent_query_fields[] = {
-               { .key = "str", .value = "parent_str" },
-               { .key = "int1", .value = "0" },
-               { .key = "int2", .value = "5" },
-               { .key = NULL, .value = NULL }
-       };
-       const struct event_filter_query parent_query = {
-               .fields = parent_query_fields,
-       };
-       struct event_filter_field child_query_fields[] = {
-               { .key = "str", .value = "child_str" },
-               { .key = "int1", .value = "6" },
-               { .key = "int2", .value = "0" },
-               { .key = NULL, .value = NULL }
-       };
-       const struct event_filter_query child_query = {
-               .fields = child_query_fields,
-       };
+       const char *error;
        const struct failure_context failure_ctx = {
                .type = LOG_TYPE_DEBUG
        };
@@ -42,13 +25,13 @@ static void test_event_filter_override_parent_fields(void)
        event_add_int(child, "int2", 0);
 
        filter = event_filter_create();
-       event_filter_add(filter, &parent_query);
+       test_assert(event_filter_parse("str=parent_str AND int1=0 AND int2=5", filter, &error) == 0);
        test_assert(event_filter_match(filter, parent, &failure_ctx));
        test_assert(!event_filter_match(filter, child, &failure_ctx));
        event_filter_unref(&filter);
 
        filter = event_filter_create();
-       event_filter_add(filter, &child_query);
+       test_assert(event_filter_parse("str=child_str AND int1=6 AND int2=0", filter, &error) == 0);
        test_assert(event_filter_match(filter, child, &failure_ctx));
        test_assert(!event_filter_match(filter, parent, &failure_ctx));
        event_filter_unref(&filter);
@@ -61,13 +44,7 @@ static void test_event_filter_override_parent_fields(void)
 static void test_event_filter_clear_parent_fields(void)
 {
        struct event_filter *filter;
-       struct event_filter_field filter_fields[] = {
-               { .key = "", .value = "*" },
-               { .key = NULL, .value = NULL }
-       };
-       const struct event_filter_query query = {
-               .fields = filter_fields,
-       };
+       const char *error;
        const struct failure_context failure_ctx = {
                .type = LOG_TYPE_DEBUG
        };
@@ -85,9 +62,9 @@ static void test_event_filter_clear_parent_fields(void)
 
        for (unsigned int i = 0; i < N_ELEMENTS(keys); i++) {
                /* match any value */
-               filter_fields[0].key = keys[i];
+               const char *query = t_strdup_printf("%s=*", keys[i]);
                filter = event_filter_create();
-               event_filter_add(filter, &query);
+               test_assert(event_filter_parse(query, filter, &error) == 0);
 
                test_assert_idx(event_filter_match(filter, parent, &failure_ctx), i);
                test_assert_idx(!event_filter_match(filter, child, &failure_ctx), i);
@@ -95,21 +72,15 @@ static void test_event_filter_clear_parent_fields(void)
        }
 
        /* match empty field */
-       filter_fields[0].key = "str";
-       filter_fields[0].value = "";
        filter = event_filter_create();
-       event_filter_add(filter, &query);
-
+       test_assert(event_filter_parse("str=\"\"", filter, &error) == 0);
        test_assert(!event_filter_match(filter, parent, &failure_ctx));
        test_assert(event_filter_match(filter, child, &failure_ctx));
        event_filter_unref(&filter);
 
        /* match nonexistent field */
-       filter_fields[0].key = "nonexistent";
-       filter_fields[0].value = "";
        filter = event_filter_create();
-       event_filter_add(filter, &query);
-
+       test_assert(event_filter_parse("nonexistent=\"\"", filter, &error) == 0);
        test_assert(event_filter_match(filter, parent, &failure_ctx));
        test_assert(event_filter_match(filter, child, &failure_ctx));
        event_filter_unref(&filter);
@@ -122,13 +93,7 @@ static void test_event_filter_clear_parent_fields(void)
 static void test_event_filter_inc_int(void)
 {
        struct event_filter *filter;
-       struct event_filter_field filter_fields[] = {
-               { .key = "int", .value = "14" },
-               { .key = NULL, .value = NULL }
-       };
-       const struct event_filter_query query = {
-               .fields = filter_fields,
-       };
+       const char *error;
        const struct failure_context failure_ctx = {
                .type = LOG_TYPE_DEBUG
        };
@@ -138,7 +103,7 @@ static void test_event_filter_inc_int(void)
        struct event *root = event_create(NULL);
 
        filter = event_filter_create();
-       event_filter_add(filter, &query);
+       test_assert(event_filter_parse("int=14", filter, &error) == 0);
 
        const struct event_field *f = event_find_field_recursive(root, "int");
        i_assert(f == NULL);
@@ -175,13 +140,10 @@ static void test_event_filter_parent_category_match(void)
                .name = "child",
        };
        struct event_filter *filter;
+       const char *error;
        const struct failure_context failure_ctx = {
                .type = LOG_TYPE_DEBUG
        };
-       const char *query_categories[] = { "parent", NULL };
-       struct event_filter_query query = {
-               .categories = query_categories,
-       };
 
        test_begin("event filter: parent category match");
 
@@ -189,7 +151,7 @@ static void test_event_filter_parent_category_match(void)
        event_add_category(e, &child_category);
 
        filter = event_filter_create();
-       event_filter_add(filter, &query);
+       test_assert(event_filter_parse("category=parent", filter, &error) == 0);
 
        test_assert(event_filter_match(filter, e, &failure_ctx));