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_typenewkey (int id)
 allocate new key, fill in hash
 
static testdata_typenewdata (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.