9 #include <libhashkit/hashkit.h>
11 #include "hash_results.h"
13 static test_return_t
exists_test(void *obj
__attribute__((unused
)))
20 static test_return_t
new_test(void *obj
__attribute__((unused
)))
22 Hashkit
*hashk
= new Hashkit
;
31 static test_return_t
copy_test(void *obj
__attribute__((unused
)))
33 Hashkit
*hashk
= new Hashkit
;
43 static test_return_t
assign_test(void *obj
__attribute__((unused
)))
55 static test_return_t
digest_test(void *obj
__attribute__((unused
)))
60 value
= hashk
.digest("Foo", sizeof("Foo"));
65 static test_return_t
set_function_test(void *obj
__attribute__((unused
)))
68 hashkit_hash_algorithm_t algo_list
[]= {
73 HASHKIT_HASH_FNV1A_64
,
75 HASHKIT_HASH_FNV1A_32
,
80 hashkit_hash_algorithm_t
*algo
;
83 for (algo
= algo_list
; *algo
!= HASHKIT_HASH_MAX
; algo
++)
90 rc
= hashk
.set_function(*algo
);
92 test_true(rc
== HASHKIT_SUCCESS
);
96 case HASHKIT_HASH_DEFAULT
:
97 list
= one_at_a_time_values
;
99 case HASHKIT_HASH_MD5
:
102 case HASHKIT_HASH_CRC
:
105 case HASHKIT_HASH_FNV1_64
:
106 list
= fnv1_64_values
;
108 case HASHKIT_HASH_FNV1A_64
:
109 list
= fnv1a_64_values
;
111 case HASHKIT_HASH_FNV1_32
:
112 list
= fnv1_32_values
;
114 case HASHKIT_HASH_FNV1A_32
:
115 list
= fnv1a_32_values
;
117 case HASHKIT_HASH_HSIEH
:
120 case HASHKIT_HASH_MURMUR
:
123 case HASHKIT_HASH_JENKINS
:
124 list
= jenkins_values
;
126 case HASHKIT_HASH_CUSTOM
:
127 case HASHKIT_HASH_MAX
:
130 test_fail("We ended up on a non-existent hash");
133 // Now we make sure we did set the hash correctly.
134 for (ptr
= list_to_hash
, x
= 0; *ptr
; ptr
++, x
++)
138 hash_val
= hashk
.digest(*ptr
, strlen(*ptr
));
139 test_true(list
[x
] == hash_val
);
146 static test_return_t
set_distribution_function_test(void *obj
__attribute__((unused
)))
151 rc
= hashk
.set_distribution_function(HASHKIT_HASH_CUSTOM
);
152 test_true(rc
== HASHKIT_FAILURE
);
154 rc
= hashk
.set_distribution_function(HASHKIT_HASH_JENKINS
);
155 test_true(rc
== HASHKIT_SUCCESS
);
160 static test_return_t
compare_function_test(void *obj
__attribute__((unused
)))
168 b
.set_function(HASHKIT_HASH_MURMUR
);
178 { "exists", 0, exists_test
},
179 { "new", 0, new_test
},
180 { "copy", 0, copy_test
},
181 { "assign", 0, assign_test
},
182 { "digest", 0, digest_test
},
183 { "set_function", 0, set_function_test
},
184 { "set_distribution_function", 0, set_distribution_function_test
},
185 { "compare", 0, compare_function_test
},
189 collection_st collection
[] ={
190 {"basic", 0, 0, basic
},
194 void get_world(world_st
*world
)
196 world
->collections
= collection
;