X-Git-Url: https://git.tokkee.org/?p=sysdb.git;a=blobdiff_plain;f=t%2Funit%2Fcore%2Fstore_lookup_test.c;h=923ce066e498b90ab41e7754020e04d3d4dd55ff;hp=c55184f63670bc00c85b48ffadf4f8f6a1501789;hb=59947b2a42517a95b9c4451c8ebca0c0d8aadc11;hpb=967d9181f6329ca00b910c0c458b1c6b60f2a0d6 diff --git a/t/unit/core/store_lookup_test.c b/t/unit/core/store_lookup_test.c index c55184f..923ce06 100644 --- a/t/unit/core/store_lookup_test.c +++ b/t/unit/core/store_lookup_test.c @@ -152,7 +152,7 @@ START_TEST(test_cmp_name) { sdb_store_obj_t *host; sdb_data_t datum; - sdb_store_expr_t *obj, *value; + sdb_store_expr_t *obj = NULL, *value; sdb_store_matcher_t *m, *n; int status; @@ -163,10 +163,12 @@ START_TEST(test_cmp_name) datum.type = SDB_TYPE_STRING; datum.data.string = cmp_name_data[_i].name; - obj = sdb_store_expr_fieldvalue(SDB_FIELD_NAME); - fail_unless(obj != NULL, - "sdb_store_expr_fieldvalue(SDB_STORE_NAME) = NULL; " - "expected: "); + if (cmp_name_data[_i].type == SDB_HOST) { + obj = sdb_store_expr_fieldvalue(SDB_FIELD_NAME); + fail_unless(obj != NULL, + "sdb_store_expr_fieldvalue(SDB_STORE_NAME) = NULL; " + "expected: "); + } value = sdb_store_expr_constvalue(&datum); fail_unless(value != NULL, "sdb_store_expr_constvalue(%s) = NULL; " @@ -176,9 +178,15 @@ START_TEST(test_cmp_name) m = sdb_store_regex_matcher(obj, value); else m = sdb_store_eq_matcher(obj, value); + if (cmp_name_data[_i].type != SDB_HOST) { + sdb_store_expr_t *iter; sdb_store_matcher_t *tmp; - tmp = sdb_store_any_matcher(cmp_name_data[_i].type, m); + obj = sdb_store_expr_fieldvalue(SDB_FIELD_NAME); + iter = sdb_store_expr_typed(cmp_name_data[_i].type, obj); + tmp = sdb_store_any_matcher(iter, m); + ck_assert(iter && m); + sdb_object_deref(SDB_OBJ(iter)); sdb_object_deref(SDB_OBJ(m)); m = tmp; } @@ -511,56 +519,56 @@ struct { int expected; } scan_data[] = { /* TODO: check the name of the expected hosts */ - { "name = 'a'", NULL, 1 }, - { "name = 'a'", "name = 'x'", 0 }, /* filter never matches */ + { "name = 'a'", NULL, 1 }, + { "name = 'a'", "name = 'x'", 0 }, /* filter never matches */ { "name = 'a'", - "NOT attribute['x'] = ''", 1 }, /* filter always matches */ - { "name =~ 'a|b'", NULL, 2 }, - { "name =~ 'host'", NULL, 0 }, - { "name =~ '.'", NULL, 3 }, - { "ANY backend = 'backend'", NULL, 0 }, - { "ALL backend = ''", NULL, 3 }, /* backend is empty */ - { "backend = ['backend']", NULL, 0 }, - { "backend != ['backend']", NULL, 3 }, - { "backend < ['backend']", NULL, 3 }, - { "backend <= ['backend']", NULL, 3 }, - { "backend >= ['backend']", NULL, 0 }, - { "backend > ['backend']", NULL, 0 }, - { "ANY metric = 'm1'", NULL, 2 }, - { "ANY metric= 'm1'", "name = 'x'", 0 }, /* filter never matches */ - { "ANY metric = 'm1'", - "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 }, - { "ALL metric !~ 'm'", NULL, 1 }, - { "ANY metric =~ 'x'", NULL, 0 }, - { "ANY service = 's1'", NULL, 2 }, - { "ANY service = 's1'", "name = 'x'", 0 }, /* filter never matches */ - { "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'", "name = 'x'",0 }, /* filter never matches */ - { "ANY attribute = 'k1'", + "NOT attribute['x'] = ''", 1 }, /* filter always matches */ + { "name =~ 'a|b'", NULL, 2 }, + { "name =~ 'host'", NULL, 0 }, + { "name =~ '.'", NULL, 3 }, + { "ANY backend = 'backend'", NULL, 0 }, + { "ALL backend = ''", NULL, 3 }, /* backend is empty */ + { "backend = ['backend']", NULL, 0 }, + { "backend != ['backend']", NULL, 3 }, + { "backend < ['backend']", NULL, 3 }, + { "backend <= ['backend']", NULL, 3 }, + { "backend >= ['backend']", NULL, 0 }, + { "backend > ['backend']", NULL, 0 }, + { "ANY metric.name = 'm1'", NULL, 2 }, + { "ANY metric.name = 'm1'", "name = 'x'", 0 }, /* filter never matches */ + { "ANY metric.name = 'm1'", + "NOT attribute['x'] = ''", 2 }, /* filter always matches */ + { "ANY metric.name =~ 'm'", NULL, 2 }, + { "ALL metric.name =~ 'm'", NULL, 3 }, + { "ANY metric.name =~ 'm'", "name !~ '1'", 1 }, + { "ANY metric.name =~ 'm'", "name !~ 'm'", 0 }, + { "ALL metric.name =~ '1'", NULL, 2 }, + { "ALL metric.name =~ '2'", NULL, 1 }, + { "ANY metric.name !~ 'm'", NULL, 0 }, + { "ALL metric.name !~ 'm'", NULL, 1 }, + { "ANY metric.name =~ 'x'", NULL, 0 }, + { "ANY service.name = 's1'", NULL, 2 }, + { "ANY service.name = 's1'", "name = 'x'", 0 }, /* filter never matches */ + { "ANY service.name = 's1'", + "NOT attribute['x'] = ''", 2 }, /* filter always matches */ + { "ANY service.name =~ 's'", NULL, 2 }, + { "ANY service.name =~ 's'", "name !~ 's'", 0 }, + { "ANY service.name =~ 's'", "name !~ '1'", 2 }, + { "ANY service.name !~ 's'", NULL, 0 }, + { "ANY attribute.name = 'k1'", NULL, 2 }, + { "ANY attribute.name = 'k1'", "name = 'x'", 0 }, /* filter never matches */ + { "ANY attribute.name = 'k1'", "NOT attribute['x'] = ''", 2 }, /* filter always matches */ - { "ANY attribute =~ 'k'", NULL, 2 }, - { "ANY attribute =~ 'k'", + { "ANY attribute.name =~ 'k'", NULL, 2 }, + { "ANY attribute.name =~ 'k'", "name !~ '1'", 1 }, - { "ANY attribute =~ 'k'", + { "ANY attribute.name =~ '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 }, + { "ANY attribute.name =~ '1'", NULL, 2 }, + { "ANY attribute.name =~ '2'", NULL, 1 }, + { "ANY attribute.name = 'x'", NULL, 0 }, + { "ANY attribute.name =~ 'x'", NULL, 0 }, + { "ALL attribute.name = 'k1'", NULL, 2 }, { "host.name = 'a'", NULL, 1 }, { "host.attribute['k1'] =~ 'v1'", NULL, 1 }, @@ -591,7 +599,7 @@ struct { { "attribute['k2'] != 123", NULL, 0 }, { "attribute['k1'] != 'v1'", NULL, 1 }, { "attribute['k1'] != 'v2'", NULL, 1 }, - { "ANY attribute != 'x' " + { "ANY attribute.name != 'x' " "AND attribute['k1'] !~ 'x'", NULL, 2 }, };