unbound: testcode/unitlruhash.c File Reference

unbound 0.1

Data Structures | Macros | Typedefs | Functions
unitlruhash.c File Reference

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...

## Macros
#define | HASHTESTMAX 25
| number of hash test max

## Typedefs
typedef struct slabhash_testkey | testkey_type
| use this type for the lruhash test key
typedef struct slabhash_testdata | testdata_type
| 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_type | myhash (int id)
| hash func, very bad to improve collisions
static testkey_type * | newkey (int id)
| allocate new key, fill in hash
static testdata_type * | 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_type *ref[])
| test adding a random element
static void | testremove (struct lruhash *table, testdata_type *ref[])
| test adding a random element
static void | testlookup (struct lruhash *table, testdata_type *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_type **ref)
| test adding a random element (unlimited range)
static void | testremove_unlim (struct lruhash *table, testdata_type **ref)
| test adding a random element (unlimited range)
static void | testlookup_unlim (struct lruhash *table, testdata_type **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

## Detailed Description

Tests the locking LRU keeping hash table implementation.