lru_cache
threads
README
bloom_perf.c
do_tests.mingw
do_tests_win32.cmd
emit_keys.c
example.c
hashscan.c
keystat.c
sleep_test.c
tdiff.cpp
test1.ans
test1.c
test10.ans
test10.c
test11.ans
test11.c
test11.dat
test12.ans
test12.c
test13.ans
test13.c
test14.ans
test14.c
test14.dat
test15.ans
test15.c
test16.ans
test16.c
test17.ans
test17.c
test18.ans
test18.c
test19.ans
test19.c
test2.ans
test2.c
test20.ans
test20.c
test21.ans
test21.c
test22.ans
test22.c
test23.ans
test23.c
test24.ans
test24.c
test25.ans
test25.c
test26.ans
test26.c
test27.ans
test27.c
test28.ans
test28.c
test29.ans
test29.c
test3.ans
test3.c
test30.ans
test30.c
test31.ans
test31.c
test32.ans
test32.c
test33.ans
test33.c
test34.ans
test34.c
test35.ans
test35.c
test36.ans
test36.c
test37.ans
test37.c
test38.ans
test38.c
test39.ans
test39.c
test4.ans
test4.c
test40.ans
test40.c
test41.ans
test41.c
test42.ans
test42.c
test43.ans
test43.c
test44.ans
test44.c
test45.ans
test45.c
test46.ans
test46.c
test47.ans
test47.c
test48.ans
test48.c
test49.ans
test49.c
test5.ans
test5.c
test50.ans
test50.c
test51.ans
test51.c
test52.ans
test52.c
test53.ans
test53.c
test54.ans
test54.c
test55.ans
test55.c
test56.ans
test56.c
test57.ans
test57.c
test58.ans
test58.c
test59.ans
test59.c
test6.ans
test6.c
test60.ans
test60.c
test61.ans
test61.c
test62.ans
test62.c
test63.ans
test63.c
test64.ans
test64.c
test65.ans
test65.c
test65.dat
test66.ans
test66.c
test67.ans
test67.c
test68.ans
test68.c
test69.ans
test69.c
test7.ans
test7.c
test70.ans
test70.c
test71.ans
test71.c
test72.ans
test72.c
test73.ans
test73.c
test74.ans
test74.c
test75.ans
test75.c
test76.ans
test76.c
test77.ans
test77.c
test78.ans
test78.c
test79.ans
test79.c
test8.ans
test8.c
test80.ans
test80.c
test81.ans
test81.c
test82.ans
test82.c
test9.ans
test9.c
all_funcs
bloom_perf.sh
do_tests
do_tests.cygwin
keystats
mexpand
simkeys.pl
README
Automated tests for uthash
==============================================================================
Run "make" in this directory to build the tests and run them.

test1:  make 10-item hash, iterate and print each one
test2:  make 10-item hash, lookup items with even keys, print
test3:  make 10-item hash, delete items with even keys, print others 
test4:  10 structs have dual hash handles, separate keys
test5:  10 structs have dual hash handles, lookup evens by alt key
test6:  test alt malloc macros
test7:  test alt malloc macros with 1000 structs so bucket expansion occurs
test8:  test num_items counter in UT_hash_handle
test9:  test "find" after bucket expansion
test10: dual-hash handle test, bucket expansion on one and not the other
test11: read dat file of names into hash, sort them and print
test12: create hash with string keys, add 10 items, lookup each item
test13: make 10-item hash, delete items with even keys, reverse print others
test14: read dat file of names into hash, read file again and lookup each one
test15: build string-keyed hash of 3 items, lookup one item (c.f. test40.c)
test16: hash on aggregate key, iterate, lookup, using generalized macros
test17: sort, add more items, sort again
test18: test pathological HASH_DEL(a,a) scenario (single head,deletee variable)
test19: sort two hash tables with shared elements using HASH_SRT
test20: test a 5-byte "binary" key
test21: test a structure key (userguide)
test22: test multi-field key using flexible array member (userguide utf32)
test23: test whether delete in iteration works
test24: make 10-item hash and confirm item count (HASH_COUNT)
test25: CDL / DL / LL tests
test26: test the linked list sort macros in utlist.h
test27: LL_APPEND, SORT
test28: CDL / DL / LL tests  
test29: DL_APPEND, SORT
test30: CDL_PREPEND, SORT
test31: CDL_PREPEND, SORT
test32: DL_PREPEND
test33: LL_PREPEND
test34: CDL_PREPEND
test35: CDL_PREPEND
test36: HASH_SELECT
test37: HASH_CLEAR
test38: find-or-add test on integer keys in short loop
test39: HASH_ADD_KEYPTR then HASH_FIND using array element as key pointer
test40: HASH_ADD_KEYPTR on string keys; pointer equivalent to test15.c
test41: test LL_FOREACH_SAFE,DL_FOREACH_SAFE,CDL_FOREACH_SAFE
test42: test LL_SEARCH, LL_SEARCH_SCALAR, and DL and CDL counterparts
test43: test utarray with intpair objects
test44: test utarray with int objects
test45: test utarray with int objects
test46: test utarray with char* objects
test47: test utstring
test48: test utarray of int
test49: test utarray of str
test50: test utarray of long
test51: test utarray of intpair
test52: test utarray of intchar
test53: test utstring
test54: test utstring
test55: test utstring
test56: test uthash, utlist and utstring together for #define conflicts etc
test57: test uthash HASH_ADD_PTR and HASH_FIND_PTR
test58: test HASH_ITER macro
test59: sample of multi-level hash 
test60: sample of multi-level hash that also does HASH_DEL and free
test61: test utarray_find
test62: test macros used in safe unaligned reads on non-Intel type platforms
test63: LL_CONCAT test
test64: DL_CONCAT test
test65: LRU cache example courtesy of jehiah.cz with modifications
test66: test example where output variable to HASH_FIND needs extra parens
test67: test utarray_prev
test68: test DL_REPLACE_ELEM (Zoltán Lajos Kis)
test69: test DL_PREPEND_ELEM (Zoltán Lajos Kis)
test70: test LL_REPLACE_ELEM (Zoltán Lajos Kis)
test71: test LL_PREPEND_ELEM (Zoltán Lajos Kis)
test72: test CDL_REPLACE_ELEM (Zoltán Lajos Kis)
test73: test CDL_PREPEND_ELEM (Zoltán Lajos Kis)
test74: test utstring with utstring_find (Joe Wei)
test75: test utstring with utstring_findR (Joe Wei)
test76: test utstring with _utstring_find (Joe Wei)
test77: test utstring with _utstring_findR (Joe Wei)
test78: test utlist "2" family with flexible Prev/Next naming eg. DL_DELETE2
test79: test HASH_REPLACE
test80: test utarray_insert past end of array
test81: test utarray_insert past end of array
test82: test utarray_inserta past end of array
test83: test HASH_OVERHEAD
test84: test HASH_OVERHEAD on hash with bloom filter


Other Make targets
================================================================================
pedantic:  makes the tests with extra CFLAGS for pedantic compiling
cplusplus: compiles all the C tests using the C++ compiler to test compatibility
debug:     makes the tests with debugging symbols and no optimization
example:   builds the 'example' program from the user guide
================================================================================

Other files
================================================================================
keystats:  key statistics analyzer. See the User Guide (http://uthash.sf.net)
emit_keys: reads a data file of unique strings, emits as keys w/HASH_EMIT_KEYS=1
all_funcs: a script which executes the test suite with every hash function
win32tests:builds and runs the test suite under Microsoft Visual Studio

LINUX-ONLY
----------
hashscan:  tool to examine a running process and get info on its hash tables
test_sleep:used as a subject for inspection by hashscan

Manual performance testing
================================================================================
  # test performance characteristics on keys that are English dictionary words
  emit_keys /usr/share/dict/words > words.keys
  ./keystats words.keys