X-Git-Url: http://git.liburcu.org/?p=urcu.git;a=blobdiff_plain;f=tests%2Ftest_urcu_hash.c;h=043a33a9353105eac57e2363693bdfb41c49f12c;hp=554f1e914202c48ce7cc296524a1fd4fb4ef1f6c;hb=747d725c1dd45d5072e0e411642c4d5c6403b4be;hpb=6d3201268d1d5f42ae79ddbca1d5a5b983cc49ba diff --git a/tests/test_urcu_hash.c b/tests/test_urcu_hash.c index 554f1e9..043a33a 100644 --- a/tests/test_urcu_hash.c +++ b/tests/test_urcu_hash.c @@ -384,7 +384,7 @@ void hashword2( #if (CAA_BITS_PER_LONG == 32) static -unsigned long test_hash(void *_key, size_t length, unsigned long seed) +unsigned long test_hash(const void *_key, size_t length, unsigned long seed) { unsigned int key = (unsigned int) _key; @@ -393,7 +393,7 @@ unsigned long test_hash(void *_key, size_t length, unsigned long seed) } #else static -unsigned long test_hash(void *_key, size_t length, unsigned long seed) +unsigned long test_hash(const void *_key, size_t length, unsigned long seed) { union { uint64_t v64; @@ -413,8 +413,8 @@ unsigned long test_hash(void *_key, size_t length, unsigned long seed) #endif static -unsigned long test_compare(void *key1, size_t key1_len, - void *key2, size_t key2_len) +unsigned long test_compare(const void *key1, size_t key1_len, + const void *key2, size_t key2_len) { if (caa_unlikely(key1_len != key2_len)) return -1; @@ -426,7 +426,7 @@ unsigned long test_compare(void *key1, size_t key1_len, } static -int test_match(struct cds_lfht_node *node, void *key) +int test_match(struct cds_lfht_node *node, const void *key) { struct lfht_test_node *test_node = to_test_node(node); @@ -440,9 +440,8 @@ void cds_lfht_test_lookup(struct cds_lfht *ht, void *key, size_t key_len, { assert(key_len == sizeof(unsigned long)); - cds_lfht_lookup(ht, test_match, - test_hash(key, key_len, TEST_HASH_SEED), - key, iter); + cds_lfht_lookup(ht, test_hash(key, key_len, TEST_HASH_SEED), + test_match, key, iter); } void *thr_count(void *arg) @@ -577,14 +576,14 @@ void *thr_writer(void *_count) sizeof(void *)); rcu_read_lock(); if (add_unique) { - ret_node = cds_lfht_add_unique(test_ht, test_match, node->key, + ret_node = cds_lfht_add_unique(test_ht, test_hash(node->key, node->key_len, TEST_HASH_SEED), - &node->node); + test_match, node->key, &node->node); } else { if (add_replace) - ret_node = cds_lfht_add_replace(test_ht, test_match, node->key, + ret_node = cds_lfht_add_replace(test_ht, test_hash(node->key, node->key_len, TEST_HASH_SEED), - &node->node); + test_match, node->key, &node->node); else cds_lfht_add(test_ht, test_hash(node->key, node->key_len, TEST_HASH_SEED), @@ -674,14 +673,14 @@ static int populate_hash(void) sizeof(void *)); rcu_read_lock(); if (add_unique) { - ret_node = cds_lfht_add_unique(test_ht, test_match, node->key, + ret_node = cds_lfht_add_unique(test_ht, test_hash(node->key, node->key_len, TEST_HASH_SEED), - &node->node); + test_match, node->key, &node->node); } else { if (add_replace) - ret_node = cds_lfht_add_replace(test_ht, test_match, node->key, + ret_node = cds_lfht_add_replace(test_ht, test_hash(node->key, node->key_len, TEST_HASH_SEED), - &node->node); + test_match, node->key, &node->node); else cds_lfht_add(test_ht, test_hash(node->key, node->key_len, TEST_HASH_SEED), @@ -897,7 +896,7 @@ int main(int argc, char **argv) return -1; } - if (min_hash_alloc_size && min_hash_alloc_size * (min_hash_alloc_size - 1)) { + if (min_hash_alloc_size && min_hash_alloc_size & (min_hash_alloc_size - 1)) { printf("Error: Min hash alloc size %lu is not a power of 2.\n", min_hash_alloc_size); return -1; @@ -968,7 +967,7 @@ int main(int argc, char **argv) * thread from the point of view of resize. */ rcu_register_thread(); - test_ht = cds_lfht_new(init_hash_size, min_hash_alloc_size, + test_ht = cds_lfht_new(init_hash_size, min_hash_alloc_size, (1UL << 18), (opt_auto_resize ? CDS_LFHT_AUTO_RESIZE : 0) | CDS_LFHT_ACCOUNTING, NULL); ret = populate_hash();