![]() |
3 månader sedan | |
---|---|---|
.. | ||
lru_cache | 3 månader sedan | |
threads | 3 månader sedan | |
Makefile | 3 månader sedan | |
README | 3 månader sedan | |
all_funcs | 3 månader sedan | |
bloom_perf.c | 3 månader sedan | |
bloom_perf.sh | 3 månader sedan | |
do_tests | 3 månader sedan | |
do_tests.cygwin | 3 månader sedan | |
do_tests.mingw | 3 månader sedan | |
do_tests_win32.cmd | 3 månader sedan | |
emit_keys.c | 3 månader sedan | |
example.c | 3 månader sedan | |
hashscan.c | 3 månader sedan | |
keystats | 3 månader sedan | |
simkeys.pl | 3 månader sedan | |
sleep_test.c | 3 månader sedan | |
tdiff.cpp | 3 månader sedan | |
test1.ans | 3 månader sedan | |
test1.c | 3 månader sedan | |
test2.ans | 3 månader sedan | |
test2.c | 3 månader sedan | |
test3.ans | 3 månader sedan | |
test3.c | 3 månader sedan | |
test4.ans | 3 månader sedan | |
test4.c | 3 månader sedan | |
test5.ans | 3 månader sedan | |
test5.c | 3 månader sedan | |
test6.ans | 3 månader sedan | |
test6.c | 3 månader sedan | |
test7.ans | 3 månader sedan | |
test7.c | 3 månader sedan | |
test8.ans | 3 månader sedan | |
test8.c | 3 månader sedan | |
test9.ans | 3 månader sedan | |
test9.c | 3 månader sedan | |
test10.ans | 3 månader sedan | |
test10.c | 3 månader sedan | |
test11.ans | 3 månader sedan | |
test11.c | 3 månader sedan | |
test11.dat | 3 månader sedan | |
test12.ans | 3 månader sedan | |
test12.c | 3 månader sedan | |
test13.ans | 3 månader sedan | |
test13.c | 3 månader sedan | |
test14.ans | 3 månader sedan | |
test14.c | 3 månader sedan | |
test14.dat | 3 månader sedan | |
test15.ans | 3 månader sedan | |
test15.c | 3 månader sedan | |
test16.ans | 3 månader sedan | |
test16.c | 3 månader sedan | |
test17.ans | 3 månader sedan | |
test17.c | 3 månader sedan | |
test18.ans | 3 månader sedan | |
test18.c | 3 månader sedan | |
test19.ans | 3 månader sedan | |
test19.c | 3 månader sedan | |
test20.ans | 3 månader sedan | |
test20.c | 3 månader sedan | |
test21.ans | 3 månader sedan | |
test21.c | 3 månader sedan | |
test22.ans | 3 månader sedan | |
test22.c | 3 månader sedan | |
test23.ans | 3 månader sedan | |
test23.c | 3 månader sedan | |
test24.ans | 3 månader sedan | |
test24.c | 3 månader sedan | |
test25.ans | 3 månader sedan | |
test25.c | 3 månader sedan | |
test26.ans | 3 månader sedan | |
test26.c | 3 månader sedan | |
test27.ans | 3 månader sedan | |
test27.c | 3 månader sedan | |
test28.ans | 3 månader sedan | |
test28.c | 3 månader sedan | |
test29.ans | 3 månader sedan | |
test29.c | 3 månader sedan | |
test30.ans | 3 månader sedan | |
test30.c | 3 månader sedan | |
test31.ans | 3 månader sedan | |
test31.c | 3 månader sedan | |
test32.ans | 3 månader sedan | |
test32.c | 3 månader sedan | |
test33.ans | 3 månader sedan | |
test33.c | 3 månader sedan | |
test34.ans | 3 månader sedan | |
test34.c | 3 månader sedan | |
test35.ans | 3 månader sedan | |
test35.c | 3 månader sedan | |
test36.ans | 3 månader sedan | |
test36.c | 3 månader sedan | |
test37.ans | 3 månader sedan | |
test37.c | 3 månader sedan | |
test38.ans | 3 månader sedan | |
test38.c | 3 månader sedan | |
test39.ans | 3 månader sedan | |
test39.c | 3 månader sedan | |
test40.ans | 3 månader sedan | |
test40.c | 3 månader sedan | |
test41.ans | 3 månader sedan | |
test41.c | 3 månader sedan | |
test42.ans | 3 månader sedan | |
test42.c | 3 månader sedan | |
test43.ans | 3 månader sedan | |
test43.c | 3 månader sedan | |
test44.ans | 3 månader sedan | |
test44.c | 3 månader sedan | |
test45.ans | 3 månader sedan | |
test45.c | 3 månader sedan | |
test46.ans | 3 månader sedan | |
test46.c | 3 månader sedan | |
test47.ans | 3 månader sedan | |
test47.c | 3 månader sedan | |
test48.ans | 3 månader sedan | |
test48.c | 3 månader sedan | |
test49.ans | 3 månader sedan | |
test49.c | 3 månader sedan | |
test50.ans | 3 månader sedan | |
test50.c | 3 månader sedan | |
test51.ans | 3 månader sedan | |
test51.c | 3 månader sedan | |
test52.ans | 3 månader sedan | |
test52.c | 3 månader sedan | |
test53.ans | 3 månader sedan | |
test53.c | 3 månader sedan | |
test54.ans | 3 månader sedan | |
test54.c | 3 månader sedan | |
test55.ans | 3 månader sedan | |
test55.c | 3 månader sedan | |
test56.ans | 3 månader sedan | |
test56.c | 3 månader sedan | |
test57.ans | 3 månader sedan | |
test57.c | 3 månader sedan | |
test58.ans | 3 månader sedan | |
test58.c | 3 månader sedan | |
test59.ans | 3 månader sedan | |
test59.c | 3 månader sedan | |
test60.ans | 3 månader sedan | |
test60.c | 3 månader sedan | |
test61.ans | 3 månader sedan | |
test61.c | 3 månader sedan | |
test62.ans | 3 månader sedan | |
test62.c | 3 månader sedan | |
test63.ans | 3 månader sedan | |
test63.c | 3 månader sedan | |
test64.ans | 3 månader sedan | |
test64.c | 3 månader sedan | |
test65.ans | 3 månader sedan | |
test65.c | 3 månader sedan | |
test65.dat | 3 månader sedan | |
test66.ans | 3 månader sedan | |
test66.c | 3 månader sedan | |
test67.ans | 3 månader sedan | |
test67.c | 3 månader sedan | |
test68.ans | 3 månader sedan | |
test68.c | 3 månader sedan | |
test69.ans | 3 månader sedan | |
test69.c | 3 månader sedan | |
test70.ans | 3 månader sedan | |
test70.c | 3 månader sedan | |
test71.ans | 3 månader sedan | |
test71.c | 3 månader sedan | |
test72.ans | 3 månader sedan | |
test72.c | 3 månader sedan | |
test73.ans | 3 månader sedan | |
test73.c | 3 månader sedan | |
test74.ans | 3 månader sedan | |
test74.c | 3 månader sedan | |
test75.ans | 3 månader sedan | |
test75.c | 3 månader sedan | |
test76.ans | 3 månader sedan | |
test76.c | 3 månader sedan | |
test77.ans | 3 månader sedan | |
test77.c | 3 månader sedan | |
test78.ans | 3 månader sedan | |
test78.c | 3 månader sedan | |
test79.ans | 3 månader sedan | |
test79.c | 3 månader sedan | |
test80.ans | 3 månader sedan | |
test80.c | 3 månader sedan | |
test81.ans | 3 månader sedan | |
test81.c | 3 månader sedan | |
test82.ans | 3 månader sedan | |
test82.c | 3 månader sedan | |
test83.ans | 3 månader sedan | |
test83.c | 3 månader sedan | |
test84.ans | 3 månader sedan | |
test84.c | 3 månader sedan | |
test85.ans | 3 månader sedan | |
test85.c | 3 månader sedan | |
test86.ans | 3 månader sedan | |
test86.c | 3 månader sedan | |
test87.ans | 3 månader sedan | |
test87.c | 3 månader sedan | |
test88.ans | 3 månader sedan | |
test88.c | 3 månader sedan | |
test89.ans | 3 månader sedan | |
test89.c | 3 månader sedan | |
test90.ans | 3 månader sedan | |
test90.c | 3 månader sedan | |
test91.ans | 3 månader sedan | |
test91.c | 3 månader sedan | |
test92.ans | 3 månader sedan | |
test92.c | 3 månader sedan | |
test93.ans | 3 månader sedan | |
test93.c | 3 månader sedan | |
test94.ans | 3 månader sedan | |
test94.c | 3 månader sedan | |
test95.ans | 3 månader sedan | |
test95.c | 3 månader sedan | |
test96.ans | 3 månader sedan | |
test96.c | 3 månader sedan |
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