summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVivek Ellur <vivek.ellur@samsung.com>2015-10-30 04:06:25 +0100
committerCedric BAIL <cedric@osg.samsung.com>2015-10-31 02:12:06 +0100
commit85f8daac6d3554f980d8737ee7b904d6a5be203d (patch)
treefae5fca92d95907199699338798fd8289c89ff4e
parentdc391da42430624e1ee91bfba8fc326a9c77ed83 (diff)
downloadefl-85f8daac6d3554f980d8737ee7b904d6a5be203d.tar.gz
eina_hash: add test cases for eina_hash_add/del by hash functions
Summary: Added test cases for eina_hash_add_by_hash/del_by_hash functions Signed-off-by: Vivek Ellur <vivek.ellur@samsung.com> Reviewers: cedric Subscribers: cedric Differential Revision: https://phab.enlightenment.org/D3245 Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
-rw-r--r--src/tests/eina/eina_test_hash.c35
1 files changed, 35 insertions, 0 deletions
diff --git a/src/tests/eina/eina_test_hash.c b/src/tests/eina/eina_test_hash.c
index b2f970468b..cc44bffd0a 100644
--- a/src/tests/eina/eina_test_hash.c
+++ b/src/tests/eina/eina_test_hash.c
@@ -418,6 +418,40 @@ START_TEST(eina_hash_seed)
}
END_TEST
+START_TEST(eina_hash_add_del_by_hash)
+{
+ Eina_Hash *hash = NULL;
+ int array[] = { 1, 42, 4, 5, 6 };
+ int key_len, key_hash;
+
+ fail_if(eina_init() != 2);
+
+ hash = eina_hash_new(EINA_KEY_LENGTH(_eina_string_key_length),
+ EINA_KEY_CMP(_eina_string_key_cmp),
+ EINA_KEY_HASH(eina_hash_crc),
+ NULL,
+ EINA_HASH_BUCKET_SIZE);
+ fail_if(hash == NULL);
+ fail_if(eina_hash_add(hash, "1", &array[0]) != EINA_TRUE);
+ fail_if(eina_hash_add(hash, "42", &array[1]) != EINA_TRUE);
+ fail_if(eina_hash_add(hash, "5", &array[3]) != EINA_TRUE);
+ fail_if(eina_hash_add(hash, "6", &array[4]) != EINA_TRUE);
+
+ key_len = _eina_string_key_length("4");
+ key_hash = eina_hash_crc("4", key_len);
+
+ fail_if(eina_hash_add_by_hash(hash, "4", key_len, key_hash, &array[2]) != EINA_TRUE);
+ fail_if(eina_hash_del_by_hash(hash, "4", key_len, key_hash, &array[2]) != EINA_TRUE);
+ fail_if(eina_hash_del_by_hash(hash, "4", key_len, key_hash, &array[2]) != EINA_FALSE);
+
+ key_len = _eina_string_key_length("42");
+ key_hash = eina_hash_crc("42", key_len);
+ fail_if(eina_hash_del_by_hash(hash, "42", key_len, key_hash, &array[1]) != EINA_TRUE);
+
+ fail_if(eina_hash_population(hash) != 3);
+}
+END_TEST
+
void eina_test_hash(TCase *tc)
{
tcase_add_test(tc, eina_hash_simple);
@@ -428,4 +462,5 @@ void eina_test_hash(TCase *tc)
tcase_add_test(tc, eina_hash_seed);
tcase_add_test(tc, eina_hash_int32_fuzze);
tcase_add_test(tc, eina_hash_string_fuzze);
+ tcase_add_test(tc, eina_hash_add_del_by_hash);
}