Skip to content

Files

This branch is 7 commits behind troydhanson/uthash:master.

tests

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
Apr 29, 2020
Oct 5, 2018
Dec 3, 2020
Dec 3, 2020
Nov 27, 2019
Feb 7, 2018
Jan 7, 2013
Jan 7, 2013
Jan 7, 2013
Oct 29, 2019
Jan 7, 2013
Feb 7, 2018
Jun 5, 2021
Jan 29, 2022
Apr 22, 2017
Dec 2, 2020
Jan 7, 2013
Apr 29, 2020
Jan 7, 2013
Jan 7, 2013
Apr 29, 2020
Jan 7, 2013
Dec 2, 2020
Jan 7, 2013
Apr 29, 2020
Jan 7, 2013
Jan 7, 2013
Apr 29, 2020
Jan 7, 2013
Apr 29, 2020
Jan 7, 2013
Apr 29, 2020
Jan 7, 2013
Jan 7, 2013
Apr 29, 2020
Jan 7, 2013
Apr 29, 2020
Jan 7, 2013
Apr 29, 2020
Jan 7, 2013
Apr 29, 2020
Jan 7, 2013
Apr 29, 2020
Jan 7, 2013
Apr 29, 2020
Jan 7, 2013
Apr 29, 2020
Jan 7, 2013
Apr 29, 2020
Jan 7, 2013
Apr 29, 2020
Jan 7, 2013
Apr 22, 2015
Jan 7, 2013
Apr 29, 2020
Jun 20, 2013
Apr 29, 2020
Jan 7, 2013
Apr 29, 2020
Jan 7, 2013
Apr 29, 2020
Jan 7, 2013
Apr 29, 2020
Jan 7, 2013
Apr 29, 2020
Jan 7, 2013
Apr 29, 2020
Jan 7, 2013
Apr 29, 2020
Jan 7, 2013
Apr 29, 2020
Jan 7, 2013
Apr 29, 2020
Jan 7, 2013
Apr 29, 2020
Jan 7, 2013
Apr 29, 2020
Jan 7, 2013
Apr 29, 2020
Jun 6, 2017
Apr 29, 2020
Jan 7, 2013
Apr 29, 2020
Jan 7, 2013
Apr 29, 2020
Jan 7, 2013
Apr 22, 2015
Jan 7, 2013
Apr 29, 2020
Jan 7, 2013
Apr 29, 2020
Jan 7, 2013
Apr 29, 2020
Jan 7, 2013
Apr 29, 2020
Jan 7, 2013
Apr 22, 2015
Jan 7, 2013
Apr 29, 2020
Jan 7, 2013
Apr 22, 2015
Jan 7, 2013
Apr 29, 2020
Jan 7, 2013
Dec 17, 2016
Jan 7, 2013
Apr 22, 2015
Jan 7, 2013
Jan 22, 2017
Jan 7, 2013
Apr 29, 2020
Jan 7, 2013
Apr 22, 2015
Jan 7, 2013
Apr 22, 2015
Jan 7, 2013
Apr 29, 2020
Jan 7, 2013
Apr 22, 2015
Jan 7, 2013
Dec 17, 2016
Jan 7, 2013
Dec 17, 2016
Jan 7, 2013
Apr 29, 2020
Jun 21, 2022
Jun 21, 2022
Jan 7, 2013
Apr 29, 2020
Jan 7, 2013
Apr 29, 2020
Jun 6, 2017
Dec 3, 2020
Jan 7, 2013
Apr 29, 2020
Jan 7, 2013
Apr 29, 2020
Nov 27, 2019
Apr 29, 2020
Jan 7, 2013
Apr 29, 2020
Jan 7, 2013
Apr 29, 2020
Jan 7, 2013
Jan 29, 2022
Jan 7, 2013
Jan 7, 2013
Apr 29, 2020
Jan 7, 2013
Apr 22, 2015
Jan 7, 2013
Apr 29, 2020
Jan 7, 2013
Apr 29, 2020
Jan 7, 2013
Apr 29, 2020
Jan 7, 2013
Apr 29, 2020
Jan 7, 2013
Apr 29, 2020
Jan 7, 2013
Apr 29, 2020
Jan 7, 2013
Apr 29, 2020
Jan 7, 2013
Dec 17, 2016
Jan 7, 2013
Dec 17, 2016
Jan 7, 2013
Jan 1, 2021
Jan 7, 2013
Jan 1, 2021
Jan 7, 2013
Apr 29, 2020
Jan 16, 2013
Apr 29, 2020
Jan 7, 2013
Apr 29, 2020
Mar 12, 2013
Apr 22, 2015
Mar 12, 2013
Apr 22, 2015
Mar 12, 2013
Apr 22, 2015
Jun 26, 2014
Apr 29, 2020
Jun 26, 2014
Apr 29, 2020
Jan 26, 2015
Apr 29, 2020
Feb 26, 2016
Apr 29, 2020
Aug 3, 2016
Jan 17, 2017
Dec 3, 2020
Dec 3, 2020
Aug 7, 2016
Mar 27, 2017
Jan 7, 2013
Apr 29, 2020
Jan 17, 2017
Nov 27, 2019
Mar 19, 2017
Apr 29, 2020
Sep 7, 2017
Apr 29, 2020
Sep 7, 2017
Jan 1, 2021
May 10, 2018
Apr 29, 2020
Nov 12, 2018
Nov 27, 2019
Dec 3, 2020
Dec 3, 2020
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 (and alt key-comparison macro)
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_REPLACE_STR with char[] key
test84: test HASH_REPLACE_STR with char* key
test85: test HASH_OVERHEAD on null and non null hash
test86: test *_APPEND_ELEM / *_PREPEND_ELEM (Thilo Schulz)
test87: test HASH_ADD_INORDER() macro (Thilo Schulz)
test88: test alt key-comparison and strlen macros
test89: test code from the tinydtls project
test90: regression-test HASH_ADD_KEYPTR_INORDER (IronBug)
test91: test LL_INSERT_INORDER etc.
test92: HASH_NONFATAL_OOM
test93: alt_fatal
test94: utlist with fields named other than 'next' and 'prev'
test95: utstack
test96: HASH_FUNCTION + HASH_KEYCMP

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

Testing a specific hash function
--------------------------------
Set EXTRA_CFLAGS with this Makefile to use a specific hash function:
   EXTRA_CFLAGS=-DHASH_FUNCTION=HASH_BER make

Other files
================================================================================
keystats:  key statistics analyzer. See the uthash User Guide.
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/FREEBSD
-------------
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