cedric pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=41c28c3deb33cce2b728c11f6a9f85ed62922f21
commit 41c28c3deb33cce2b728c11f6a9f85ed62922f21 Author: Cedric Bail <cedric.b...@samsung.com> Date: Wed Dec 4 19:04:24 2013 +0900 eina: fuzze test the eina_hash_string_superfast to. --- src/tests/eina/eina_test_hash.c | 65 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) diff --git a/src/tests/eina/eina_test_hash.c b/src/tests/eina/eina_test_hash.c index 78526b9..0471d5e 100644 --- a/src/tests/eina/eina_test_hash.c +++ b/src/tests/eina/eina_test_hash.c @@ -260,6 +260,70 @@ START_TEST(eina_hash_int32_fuzze) } END_TEST +START_TEST(eina_hash_string_fuzze) +{ + Eina_Hash *hash; + Eina_List *added = NULL; + char *r; + unsigned int i; + unsigned int j; + unsigned int seed; + + eina_init(); + + seed = time(NULL); + srand(seed); + + hash = eina_hash_string_superfast_new(free); + + for (i = 0; i < 10000; ++i) + { + char convert[128]; + + eina_convert_itoa(rand(), convert); + r = strdup(convert); + eina_hash_direct_add(hash, r, r); + } + + for (j = 0; j < 50; ++j) + { + for (i = 0; i < 1000; ++i) + { + do + { + char convert[128]; + + eina_convert_itoa(rand(), convert); + r = eina_hash_find(hash, convert); + if (r) + { + r = NULL; + continue; + } + + r = strdup(convert); + eina_hash_direct_add(hash, r, r); + added = eina_list_append(added, r); + } + while (r == NULL); + } + + EINA_LIST_FREE(added, r) + { + char *s; + + s = eina_hash_find(hash, r); + fail_if(s != r); + eina_hash_del(hash, r, r); + } + } + + eina_hash_free(hash); + + eina_shutdown(); +} +END_TEST + START_TEST(eina_hash_seed) { eina_init(); @@ -278,4 +342,5 @@ void eina_test_hash(TCase *tc) tcase_add_test(tc, eina_hash_all_int); tcase_add_test(tc, eina_hash_seed); tcase_add_test(tc, eina_hash_int32_fuzze); + tcase_add_test(tc, eina_hash_string_fuzze); } --