]> git.ipfire.org Git - thirdparty/knot-resolver.git/commitdiff
Merge branch 'master' into ns-rtt-cache
authorMarek Vavruša <marek.vavrusa@nic.cz>
Thu, 4 Jun 2015 22:10:06 +0000 (00:10 +0200)
committerMarek Vavruša <marek.vavrusa@nic.cz>
Thu, 4 Jun 2015 22:10:06 +0000 (00:10 +0200)
1  2 
lib/cache.c
lib/cache.h
tests/test_cache.c
tests/test_integration.c

diff --cc lib/cache.c
Simple merge
diff --cc lib/cache.h
Simple merge
index 9312c74c2e20947bf37db52b4a1c1a0a3e09ec94,f044712e1d3cc69e3541c3ad1f54af777b05b2f5..d3ea193deab8ec9efb2ee89a6488ac30a8e4e25a
@@@ -207,6 -303,38 +303,38 @@@ static void test_insert_rr(void **state
        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)
  {
index 306dddc9554aed5a890f2dbefec53ffb5848e97b,e02a7b5e98f4394b76858c3adaacf556cd245fc8..4ea1517cc818d379c27484c5e905513a3038ee56
@@@ -64,7 -64,7 +64,8 @@@ static PyObject* init(PyObject* self, P
        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) {