#include <tests/isc.h>
/* Hash function test */
-ISC_RUN_TEST_IMPL(isc_hash_function) {
- unsigned int h1;
- unsigned int h2;
+ISC_RUN_TEST_IMPL(isc_hash32) {
+ uint32_t h1;
+ uint32_t h2;
- UNUSED(state);
+ /* Immutability of hash function */
+ h1 = isc_hash32(NULL, 0, true);
+ h2 = isc_hash32(NULL, 0, true);
+
+ assert_int_equal(h1, h2);
+
+ /* Hash function characteristics */
+ h1 = isc_hash32("Hello world", 12, true);
+ h2 = isc_hash32("Hello world", 12, true);
+
+ assert_int_equal(h1, h2);
+
+ /* Case */
+ h1 = isc_hash32("Hello world", 12, false);
+ h2 = isc_hash32("heLLo WorLd", 12, false);
+
+ assert_int_equal(h1, h2);
+
+ /* Unequal */
+ h1 = isc_hash32("Hello world", 12, true);
+ h2 = isc_hash32("heLLo WorLd", 12, true);
+
+ assert_int_not_equal(h1, h2);
+}
+
+/* Hash function test */
+ISC_RUN_TEST_IMPL(isc_hash64) {
+ uint64_t h1;
+ uint64_t h2;
/* Immutability of hash function */
- h1 = isc_hash_function(NULL, 0, true);
- h2 = isc_hash_function(NULL, 0, true);
+ h1 = isc_hash64(NULL, 0, true);
+ h2 = isc_hash64(NULL, 0, true);
assert_int_equal(h1, h2);
/* Hash function characteristics */
- h1 = isc_hash_function("Hello world", 12, true);
- h2 = isc_hash_function("Hello world", 12, true);
+ h1 = isc_hash64("Hello world", 12, true);
+ h2 = isc_hash64("Hello world", 12, true);
assert_int_equal(h1, h2);
/* Case */
- h1 = isc_hash_function("Hello world", 12, false);
- h2 = isc_hash_function("heLLo WorLd", 12, false);
+ h1 = isc_hash64("Hello world", 12, false);
+ h2 = isc_hash64("heLLo WorLd", 12, false);
assert_int_equal(h1, h2);
/* Unequal */
- h1 = isc_hash_function("Hello world", 12, true);
- h2 = isc_hash_function("heLLo WorLd", 12, true);
+ h1 = isc_hash64("Hello world", 12, true);
+ h2 = isc_hash64("heLLo WorLd", 12, true);
assert_int_not_equal(h1, h2);
}
/* Hash function initializer test */
ISC_RUN_TEST_IMPL(isc_hash_initializer) {
- unsigned int h1;
- unsigned int h2;
-
- UNUSED(state);
+ uint64_t h1;
+ uint64_t h2;
- h1 = isc_hash_function("Hello world", 12, true);
- h2 = isc_hash_function("Hello world", 12, true);
+ h1 = isc_hash64("Hello world", 12, true);
+ h2 = isc_hash64("Hello world", 12, true);
assert_int_equal(h1, h2);
isc_hash_set_initializer(isc_hash_get_initializer());
/* Hash value must not change */
- h2 = isc_hash_function("Hello world", 12, true);
+ h2 = isc_hash64("Hello world", 12, true);
assert_int_equal(h1, h2);
}
ISC_TEST_LIST_START
-ISC_TEST_ENTRY(isc_hash_function)
+ISC_TEST_ENTRY(isc_hash32)
+ISC_TEST_ENTRY(isc_hash64)
ISC_TEST_ENTRY(isc_hash_initializer)
ISC_TEST_LIST_END