#include "util/module.h"
#include "testcode/unitmain.h"
#include "edns-subnet/addrtree.h"
+#include "edns-subnet/subnetmod.h"
/*
void printkey(addrkey_t *k, addrlen_t bits)
unit_show_func("edns-subnet/addrtree.h", "Tree consistency check");
srand(9195); /* just some value for reproducibility */
- t = addrtree_create(100, &elemfree, NULL, &env, 0);
+ t = addrtree_create(100, &elemfree, &unittest_wrapper_subnetmod_sizefunc, &env, 0);
count = t->node_count;
unit_assert(count == 0);
for (i = 0; i < 1000; i++) {
free(k);
unit_assert( !addrtree_inconsistent(t) );
}
+ addrtree_size(t);
addrtree_delete(t);
unit_show_func("edns-subnet/addrtree.h", "Tree consistency with purge");
- t = addrtree_create(8, &elemfree, NULL, &env, 0);
+ t = addrtree_create(8, &elemfree, &unittest_wrapper_subnetmod_sizefunc, &env, 0);
unit_assert(t->node_count == 0);
for (i = 0; i < 1000; i++) {
l = randomkey(&k, 128);
free(k);
unit_assert( !addrtree_inconsistent(t) );
}
+ addrtree_size(t);
addrtree_delete(t);
unit_show_func("edns-subnet/addrtree.h", "Tree consistency with limit");
- t = addrtree_create(8, &elemfree, NULL, &env, 27);
+ t = addrtree_create(8, &elemfree, &unittest_wrapper_subnetmod_sizefunc, &env, 27);
unit_assert(t->node_count == 0);
for (i = 0; i < 1000; i++) {
l = randomkey(&k, 128);
free(k);
unit_assert( !addrtree_inconsistent(t) );
}
+ addrtree_size(t);
addrtree_delete(t);
}
table->space_used += need_size;
} else {
/* if so: update data - needs a writelock */
+ /* A+=B-C; works because A will wrap around when B<C */
table->space_used += need_size -
(*table->sizefunc)(found->key, found->data);
if (found->key != entry->key) {