assert_int_equal(ret, KNOT_EOK);
}
- output_rr = kr_cache_materialize(&global_rr, 0, &global_mm);
+ static void test_materialize(void **state)
+ {
+ knot_rrset_t output_rr;
+ knot_dname_t * owner_saved = global_rr.owner;
+ bool res_cmp_ok_empty, res_cmp_fail_empty;
+ bool res_cmp_ok, res_cmp_fail;
+
+ global_rr.owner = NULL;
+ knot_rrset_init(&output_rr, NULL, 0, 0);
- output_rr = kr_cache_materialize(&global_rr, 0, &global_mm);
++ kr_cache_materialize(&output_rr, &global_rr, 0, &global_mm);
+ res_cmp_ok_empty = knot_rrset_equal(&global_rr, &output_rr, KNOT_RRSET_COMPARE_HEADER);
+ res_cmp_fail_empty = knot_rrset_equal(&global_rr, &output_rr, KNOT_RRSET_COMPARE_WHOLE);
+ knot_rrset_clear(&output_rr,&global_mm);
+ global_rr.owner = owner_saved;
+ assert_true(res_cmp_ok_empty);
+ assert_false(res_cmp_fail_empty);
+
+ knot_rrset_init(&output_rr, NULL, 0, 0);
+ will_return (knot_rdataset_add,KNOT_EOK);
- output_rr = kr_cache_materialize(&global_rr, 0, &global_mm);
++ kr_cache_materialize(&output_rr, &global_rr, 0, &global_mm);
+ res_cmp_ok = knot_rrset_equal(&global_rr, &output_rr, KNOT_RRSET_COMPARE_WHOLE);
+ knot_rrset_clear(&output_rr,&global_mm);
+ assert_true(res_cmp_ok);
+
+ knot_rrset_init(&output_rr, NULL, 0, 0);
+ will_return (knot_rdataset_add,KNOT_EINVAL);
++ kr_cache_materialize(&output_rr, &global_rr, 0, &global_mm);
+ res_cmp_fail = knot_rrset_equal(&global_rr, &output_rr, KNOT_RRSET_COMPARE_WHOLE);
+ knot_rrset_clear(&output_rr,&global_mm);
+ assert_false(res_cmp_fail);
+ }
+
/* Test cache read */
static void test_query(void **state)
{
memset(&global_context, 0, sizeof(struct kr_context));
global_context.pool = &global_mm;
global_context.modules = &global_modules;
+
+ /* Create cache */
global_tmpdir = test_tmpdir_create();
assert(global_tmpdir);
struct namedb_lmdb_opts opts;
opts.path = global_tmpdir;
opts.mapsize = 100 * 4096;
int ret = kr_cache_open(&global_context.cache, NULL, &opts, &global_mm);
-- assert(ret == 0);
- if (ret != 0)
++ if (ret != 0) {
+ return NULL;
++ }
++
+ /* Create RTT tracking */
+ global_context.nsrep = malloc(lru_size(kr_nsrep_lru_t, 1000));
+ assert(global_context.nsrep);
+ lru_init(global_context.nsrep, 1000);
+ global_context.options = QUERY_NO_THROTTLE;
/* No configuration parsing support yet. */
if (strstr(config, "query-minimization: on") == NULL) {