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);
 }

-- 


Reply via email to