unbound 0.1
|
Tests the locking LRU keeping hash table implementation. More...
#include "config.h"
#include "testcode/unitmain.h"
#include "util/log.h"
#include "util/storage/lruhash.h"
#include "util/storage/slabhash.h"
Data Structures | |
struct | test_thr |
structure to threaded test the lru hash table More... | |
Defines | |
#define | HASHTESTMAX 25 |
number of hash test max | |
Typedefs | |
typedef struct slabhash_testkey | testkey_t |
use this type for the lruhash test key | |
typedef struct slabhash_testdata | testdata_t |
use this type for the lruhash test data | |
Functions | |
static void | delkey (struct slabhash_testkey *k) |
delete key | |
static void | deldata (struct slabhash_testdata *d) |
delete data | |
static hashvalue_t | myhash (int id) |
hash func, very bad to improve collisions | |
static testkey_t * | newkey (int id) |
allocate new key, fill in hash | |
static testdata_t * | newdata (int val) |
new data el | |
static void | test_bin_find_entry (struct lruhash *table) |
test bin_find_entry function and bin_overflow_remove | |
static void | test_lru (struct lruhash *table) |
test lru_front lru_remove | |
static void | test_short_table (struct lruhash *table) |
test hashtable using short sequence | |
static void | testadd (struct lruhash *table, testdata_t *ref[]) |
test adding a random element | |
static void | testremove (struct lruhash *table, testdata_t *ref[]) |
test adding a random element | |
static void | testlookup (struct lruhash *table, testdata_t *ref[]) |
test adding a random element | |
static void | check_table (struct lruhash *table) |
check integrity of hash table | |
static void | testadd_unlim (struct lruhash *table, testdata_t **ref) |
test adding a random element (unlimited range) | |
static void | testremove_unlim (struct lruhash *table, testdata_t **ref) |
test adding a random element (unlimited range) | |
static void | testlookup_unlim (struct lruhash *table, testdata_t **ref) |
test adding a random element (unlimited range) | |
static void | test_long_table (struct lruhash *table) |
test with long sequence of adds, removes and updates, and lookups | |
static void * | test_thr_main (void *arg) |
main routine for threaded hash table test | |
static void | test_threaded_table (struct lruhash *table) |
test hash table access by multiple threads | |
void | lruhash_test (void) |
unit test lruhashtable implementation |
Tests the locking LRU keeping hash table implementation.