diff --git a/lib/isc/include/isc/hash.h b/lib/isc/include/isc/hash.h index bac9d9f7b8..231ecfb321 100644 --- a/lib/isc/include/isc/hash.h +++ b/lib/isc/include/isc/hash.h @@ -44,8 +44,6 @@ isc_hash_get_initializer(void); void isc_hash_set_initializer(const void *initializer); -#define isc_hash_function isc_hash64 - void isc_hash32_init(isc_hash32_t *restrict state); void diff --git a/tests/isc/hash_test.c b/tests/isc/hash_test.c index a0a7093209..6d04943866 100644 --- a/tests/isc/hash_test.c +++ b/tests/isc/hash_test.c @@ -34,60 +34,87 @@ #include /* Hash function test */ -ISC_RUN_TEST_IMPL(isc_hash_function) { - unsigned int h1; - unsigned int h2; - - UNUSED(state); +ISC_RUN_TEST_IMPL(isc_hash32) { + uint32_t h1; + uint32_t h2; /* Immutability of hash function */ - h1 = isc_hash_function(NULL, 0, true); - h2 = isc_hash_function(NULL, 0, true); + h1 = isc_hash32(NULL, 0, true); + h2 = isc_hash32(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_hash32("Hello world", 12, true); + h2 = isc_hash32("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_hash32("Hello world", 12, false); + h2 = isc_hash32("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_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_hash64(NULL, 0, true); + h2 = isc_hash64(NULL, 0, true); + + assert_int_equal(h1, h2); + + /* Hash function characteristics */ + h1 = isc_hash64("Hello world", 12, true); + h2 = isc_hash64("Hello world", 12, true); + + assert_int_equal(h1, h2); + + /* Case */ + h1 = isc_hash64("Hello world", 12, false); + h2 = isc_hash64("heLLo WorLd", 12, false); + + assert_int_equal(h1, h2); + + /* Unequal */ + 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; + uint64_t h1; + uint64_t h2; - UNUSED(state); - - 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