Maintained by: NLnet Labs
Data Structures | Macros | Typedefs | Functions
unitslabhash.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/slabhash.h"

Data Structures

struct  slab_test_thr
 structure to threaded test the lru hash table More...
 

Macros

#define HASHTESTMAX   32
 number of hash test max
 

Typedefs

typedef struct slabhash_testkey testkey_t
 use this type for the slabhash test key
 
typedef struct slabhash_testdata testdata_t
 use this type for the slabhash test data
 

Functions

static void delkey (struct slabhash_testkey *k)
 delete key
 
static hashvalue_t myhash (int id)
 hash func, very bad to improve collisions, both high and low bits
 
static testkey_tnewkey (int id)
 allocate new key, fill in hash
 
static testdata_tnewdata (int val)
 new data el
 
static void test_short_table (struct slabhash *table)
 test hashtable using short sequence
 
static void testadd (struct slabhash *table, testdata_t *ref[])
 test adding a random element
 
static void testremove (struct slabhash *table, testdata_t *ref[])
 test adding a random element
 
static void testlookup (struct slabhash *table, testdata_t *ref[])
 test adding a random element
 
static void check_lru_table (struct lruhash *table)
 check integrity of hash table
 
static void check_table (struct slabhash *table)
 check integrity of hash table
 
static void testadd_unlim (struct slabhash *table, testdata_t **ref)
 test adding a random element (unlimited range)
 
static void testremove_unlim (struct slabhash *table, testdata_t **ref)
 test adding a random element (unlimited range)
 
static void testlookup_unlim (struct slabhash *table, testdata_t **ref)
 test adding a random element (unlimited range)
 
static void test_long_table (struct slabhash *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 slabhash *table)
 test hash table access by multiple threads
 
void slabhash_test (void)
 unit test slabhashtable implementation
 

Detailed Description

Tests the locking LRU keeping hash table implementation.