X-Git-Url: https://git.tokkee.org/?p=sysdb.git;a=blobdiff_plain;f=t%2Funit%2Fcore%2Fstore_lookup_test.c;h=c256b232ae049096eaace1a86652ff84a77b6e5d;hp=931c4f2097d75200516f8ac2e20aa2f4320eab88;hb=34bfa9790e6e7ed1ba9f1d4ed17fa34a73a1b064;hpb=5c5ff5c501a1753314005d7988fa33ffaea41815 diff --git a/t/unit/core/store_lookup_test.c b/t/unit/core/store_lookup_test.c index 931c4f2..c256b23 100644 --- a/t/unit/core/store_lookup_test.c +++ b/t/unit/core/store_lookup_test.c @@ -538,6 +538,8 @@ START_TEST(test_scan) "NOT attribute['x'] = ''", 2 }, /* filter always matches */ { "ANY metric =~ 'm'", NULL, 2 }, { "ALL metric =~ 'm'", NULL, 3 }, + { "ANY metric =~ 'm'", "name !~ '1'", 1 }, + { "ANY metric =~ 'm'", "name !~ 'm'", 0 }, { "ALL metric =~ '1'", NULL, 2 }, { "ALL metric =~ '2'", NULL, 1 }, { "ANY metric !~ 'm'", NULL, 0 }, @@ -548,18 +550,26 @@ START_TEST(test_scan) { "ANY service = 's1'", "NOT attribute['x'] = ''", 2 }, /* filter always matches */ { "ANY service =~ 's'", NULL, 2 }, + { "ANY service =~ 's'", "name !~ 's'", 0 }, + { "ANY service =~ 's'", "name !~ '1'", 2 }, { "ANY service !~ 's'", NULL, 0 }, { "ANY attribute = 'k1'", NULL, 2 }, { "ANY attribute = 'k1'", "host = 'x'",0 }, /* filter never matches */ { "ANY attribute = 'k1'", "NOT attribute['x'] = ''", 2 }, /* filter always matches */ { "ANY attribute =~ 'k'", NULL, 2 }, + { "ANY attribute =~ 'k'", + "name !~ '1'", 1 }, + { "ANY attribute =~ 'k'", + "name !~ 'k'", 0 }, { "ANY attribute =~ '1'", NULL, 2 }, { "ANY attribute =~ '2'", NULL, 1 }, { "ANY attribute = 'x'", NULL, 0 }, { "ANY attribute =~ 'x'", NULL, 0 }, { "ALL attribute = 'k1'", NULL, 2 }, { "attribute['k1'] = 'v1'", NULL, 1 }, + { "attribute['k1'] = 'v1'", + "name != 'k1'", 0 }, { "attribute['k1'] =~ 'v1'", NULL, 1 }, { "attribute['k1'] =~ '^v1$'", NULL, 1 }, { "attribute['k1'] =~ 'v'", NULL, 2 }, @@ -586,6 +596,7 @@ START_TEST(test_scan) "AND attribute['y'] !~ 'x'", NULL, 2 }, }; + sdb_strbuf_t *errbuf = sdb_strbuf_create(64); int check, n; size_t i; @@ -600,16 +611,18 @@ START_TEST(test_scan) for (i = 0; i < SDB_STATIC_ARRAY_LEN(golden_data); ++i) { sdb_store_matcher_t *m, *filter = NULL; - m = sdb_fe_parse_matcher(golden_data[i].query, -1); + m = sdb_fe_parse_matcher(golden_data[i].query, -1, errbuf); fail_unless(m != NULL, - "sdb_fe_parse_matcher(%s, -1) = NULL; expected: ", - golden_data[i].query); + "sdb_fe_parse_matcher(%s, -1) = NULL; expected: " + "(parser error: %s)", golden_data[i].query, + sdb_strbuf_string(errbuf)); if (golden_data[i].filter) { - filter = sdb_fe_parse_matcher(golden_data[i].filter, -1); + filter = sdb_fe_parse_matcher(golden_data[i].filter, -1, errbuf); fail_unless(filter != NULL, "sdb_fe_parse_matcher(%s, -1) = NULL; " - "expected: ", golden_data[i].filter); + "expected: (parser error: %s)", + golden_data[i].filter, sdb_strbuf_string(errbuf)); } n = 0; @@ -621,6 +634,8 @@ START_TEST(test_scan) sdb_object_deref(SDB_OBJ(filter)); sdb_object_deref(SDB_OBJ(m)); } + + sdb_strbuf_destroy(errbuf); } END_TEST