mirror of
https://git.sr.ht/~cismonx/bookmarkfs
synced 2025-06-07 11:48:51 +00:00
44 lines
1.2 KiB
Text
44 lines
1.2 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
|
|
}
|
|
|
|
ATX_RUN_REPEAT([16], [
|
|
seed=$(ath_fn_rand_u64_hex)
|
|
input=$(ath_fn_rand_base64 300)
|
|
echo "hash seed: $seed; input: $input"
|
|
|
|
hash_1=$(calc_digest $seed $input)
|
|
hash_2=$(calc_digest $seed $input)
|
|
hash_3=$(calc_digest $seed $input)
|
|
hash_x=$(calc_digest $seed $input+)
|
|
|
|
if test "$hash_1" != "$hash_2" -o "$hash_2" != "$hash_3"; then
|
|
echo 'bad hash function: inconsistent digest'
|
|
exit 1
|
|
fi
|
|
|
|
if test "$hash_1" = "$hash_x"; then
|
|
echo 'bad hash function: collision'
|
|
exit 1
|
|
fi
|
|
])
|
|
])
|
|
|
|
AT_CLEANUP
|