index 48bb4832f4b81e723743d27cefd1c705e40e93a5..f95598e27dcf222be6ef0dfe42f80e3e9f137d7c 100644 (file)
{
/* host */ NULL, NULL,
/* svc */ NULL, NULL,
- /* attr */ NULL, NULL, NULL, NULL, 0
+ /* attr */ NULL, NULL, NULL, NULL, 1
},
{
/* host */ "a", NULL,
/* svc */ NULL, NULL,
- /* attr */ NULL, NULL, NULL, NULL, 0
+ /* attr */ NULL, NULL, NULL, NULL, 1
},
{
/* host */ "b", NULL,
/* svc */ NULL, NULL,
- /* attr */ NULL, NULL, NULL, NULL, -1
+ /* attr */ NULL, NULL, NULL, NULL, 0
},
{
/* host */ NULL, "^a$",
/* svc */ NULL, NULL,
- /* attr */ NULL, NULL, NULL, NULL, 0
+ /* attr */ NULL, NULL, NULL, NULL, 1
},
{
/* host */ NULL, "^b$",
/* svc */ NULL, NULL,
- /* attr */ NULL, NULL, NULL, NULL, -1
+ /* attr */ NULL, NULL, NULL, NULL, 0
},
{
/* host */ "a", "^a$",
/* svc */ NULL, NULL,
- /* attr */ NULL, NULL, NULL, NULL, 0
+ /* attr */ NULL, NULL, NULL, NULL, 1
},
{
/* host */ "a", "^b$",
/* svc */ NULL, NULL,
- /* attr */ NULL, NULL, NULL, NULL, -1
+ /* attr */ NULL, NULL, NULL, NULL, 0
},
{
/* host */ "b", "^a$",
/* svc */ NULL, NULL,
- /* attr */ NULL, NULL, NULL, NULL, -1
+ /* attr */ NULL, NULL, NULL, NULL, 0
},
{
/* host */ "a", "^a$",
/* svc */ "s1", NULL,
- /* attr */ NULL, NULL, NULL, NULL, 0
+ /* attr */ NULL, NULL, NULL, NULL, 1
},
{
/* host */ "a", "^a$",
/* svc */ NULL, "^s1$",
- /* attr */ NULL, NULL, NULL, NULL, 0
+ /* attr */ NULL, NULL, NULL, NULL, 1
},
{
/* host */ "a", "^a$",
/* svc */ "s1", "^s1$",
- /* attr */ NULL, NULL, NULL, NULL, 0
+ /* attr */ NULL, NULL, NULL, NULL, 1
},
{
/* host */ "a", "^a$",
/* svc */ "x1", NULL,
- /* attr */ NULL, NULL, NULL, NULL, -1
+ /* attr */ NULL, NULL, NULL, NULL, 0
},
{
/* host */ "a", "^a$",
/* svc */ NULL, "x",
- /* attr */ NULL, NULL, NULL, NULL, -1
+ /* attr */ NULL, NULL, NULL, NULL, 0
},
{
/* host */ "a", "^a$",
/* svc */ "x1", "x",
- /* attr */ NULL, NULL, NULL, NULL, -1
+ /* attr */ NULL, NULL, NULL, NULL, 0
},
{
/* host */ "a", "^a$",
/* svc */ "s1", "x",
- /* attr */ NULL, NULL, NULL, NULL, -1
+ /* attr */ NULL, NULL, NULL, NULL, 0
},
{
/* host */ "a", "^a$",
/* svc */ "x1", "s",
- /* attr */ NULL, NULL, NULL, NULL, -1
+ /* attr */ NULL, NULL, NULL, NULL, 0
},
{
/* host */ "a", "^a$",
/* svc */ "s1", "^s1$",
- /* attr */ "k1", NULL, NULL, NULL, 0
+ /* attr */ "k1", NULL, NULL, NULL, 1
},
{
/* host */ "a", "^a$",
/* svc */ "s1", "^s1$",
- /* attr */ NULL, "^k", NULL, NULL, 0
+ /* attr */ NULL, "^k", NULL, NULL, 1
},
{
/* host */ "a", "^a$",
/* svc */ "s1", "^s1$",
- /* attr */ NULL, NULL, "v1", NULL, 0
+ /* attr */ NULL, NULL, "v1", NULL, 1
},
{
/* host */ "a", "^a$",
/* svc */ "s1", "^s1$",
- /* attr */ NULL, NULL, NULL, "^v1$", 0
+ /* attr */ NULL, NULL, NULL, "^v1$", 1
},
{
/* host */ "a", "^a$",
/* svc */ "s1", "^s1$",
- /* attr */ "k1", "1", "v1", "1", 0
+ /* attr */ "k1", "1", "v1", "1", 1
},
};
sdb_store_matcher_t *right;
int expected;
} golden_data[] = {
- { "OR", always, always, 0 },
- { "OR", always, never, 0 },
- { "OR", never, always, 0 },
- { "OR", never, never, -1 },
- { "AND", always, always, 0 },
- { "AND", always, never, -1 },
- { "AND", never, always, -1 },
- { "AND", never, never, -1 },
+ { "OR", always, always, 1 },
+ { "OR", always, never, 1 },
+ { "OR", never, always, 1 },
+ { "OR", never, never, 0 },
+ { "AND", always, always, 1 },
+ { "AND", always, never, 0 },
+ { "AND", never, always, 0 },
+ { "AND", never, never, 0 },
};
int status;
obj = sdb_store_get_host("a");
status = sdb_store_matcher_matches(always, obj);
- fail_unless(status == 0,
+ fail_unless(status == 1,
"INTERNAL ERROR: 'always' did not match host");
status = sdb_store_matcher_matches(never, obj);
- fail_unless(status < 0,
+ fail_unless(status == 0,
"INTERNAL ERROR: 'never' matches host");
for (i = 0; i < SDB_STATIC_ARRAY_LEN(golden_data); ++i) {
else if (! strcmp(golden_data[i].op, "AND"))
m = sdb_store_con_matcher(golden_data[i].left,
golden_data[i].right);
- else
+ else {
fail("INTERNAL ERROR: unexpected operator %s", golden_data[i].op);
+ continue;
+ }
#define TO_NAME(v) (((v) == always) ? "always" \
: ((v) == never) ? "never" : "<unknown>")
}
END_TEST
+static int
+lookup_cb(sdb_store_base_t *obj, void *user_data)
+{
+ intptr_t *i = user_data;
+
+ fail_unless(obj != NULL,
+ "sdb_store_lookup callback received NULL obj; expected: "
+ "<store base obj>");
+ fail_unless(i != NULL,
+ "sdb_store_lookup callback received NULL user_data; "
+ "expected: <pointer to data>");
+
+ ++(*i);
+ return 0;
+} /* lookup_cb */
+
+START_TEST(test_lookup)
+{
+ intptr_t i = 0;
+ int check;
+
+ check = sdb_store_lookup(NULL, lookup_cb, &i);
+ fail_unless(check == 0,
+ "sdb_store_lookup() = %d; expected: 0", check);
+ fail_unless(i == 3,
+ "sdb_store_lookup called callback %d times; expected: 3", (int)i);
+}
+END_TEST
+
Suite *
core_store_lookup_suite(void)
{
tcase_add_checked_fixture(tc, populate, sdb_store_clear);
tcase_add_test(tc, test_store_match);
tcase_add_test(tc, test_store_match_op);
+ tcase_add_test(tc, test_lookup);
suite_add_tcase(s, tc);
return s;