mirror of
https://git.sr.ht/~cismonx/bookmarkfs
synced 2025-07-17 06:38:53 +00:00
41 lines
1.1 KiB
Text
41 lines
1.1 KiB
Text
dnl
|
|
dnl Copyright (C) 2025 CismonX <admin@cismon.net>
|
|
dnl
|
|
dnl Copying and distribution of this file, with or without modification,
|
|
dnl are permitted in any medium without royalty,
|
|
dnl provided the copyright notice and this notice are preserved.
|
|
dnl This file is offered as-is, without any warranty.
|
|
dnl
|
|
|
|
AT_SETUP([util lib: hash function])
|
|
AT_KEYWORDS([lib hash])
|
|
|
|
# This test only serves as a basic sanity check.
|
|
#
|
|
# For reliable testing of hash functions,
|
|
# see <https://github.com/Cyan4973/xxHash/tree/dev/tests>.
|
|
ATX_CHECK_LIB([
|
|
calc_digest() {
|
|
echo "$2" | check-util-lib hash -s$1
|
|
}
|
|
|
|
seed=$(ath_fn_rand_u64_hex)
|
|
input=$(ath_fn_rand_base64 300)
|
|
|
|
hash_1=$(calc_digest $seed $input)
|
|
hash_2=$(calc_digest $seed $input)
|
|
hash_3=$(calc_digest $seed $input)
|
|
hash_x=$(calc_digest $seed $input+)
|
|
|
|
# Given the same seed and input, the digest should be consistent.
|
|
if test "$hash_1" != "$hash_2" -o "$hash_2" != "$hash_3"; then
|
|
ATX_FAIL
|
|
fi
|
|
|
|
# Bad hash function if we're getting collisions.
|
|
if test "$hash_1" = "$hash_x"; then
|
|
ATX_FAIL
|
|
fi
|
|
])
|
|
|
|
AT_CLEANUP
|