tests/functional2: migrate hash.sh

Change-Id: I5061479b972088c904ca1db4d9004e738c2b5a57
This commit is contained in:
Commentator2.0
2025-08-25 21:29:27 +02:00
parent 451a14980b
commit 9cdc2bf61c
124 changed files with 261 additions and 113 deletions
-107
View File
@@ -1,107 +0,0 @@
source common.sh
try () {
printf "%s" "$2" > $TEST_ROOT/vector
hash="$(nix-hash --flat ${FORMAT_FLAG-} --type "$1" "$TEST_ROOT/vector")"
if ! (( "${NO_TEST_CLASSIC-}" )) && test "$hash" != "$3"; then
echo "try nix-hash: hash $1, expected $3, got $hash"
exit 1
fi
hash="$(nix hash file ${FORMAT_FLAG-} --type "$1" "$TEST_ROOT/vector")"
if ! (( "${NO_TEST_NIX_COMMAND-}" )) && test "$hash" != "$3"; then
echo "try nix hash: hash $1, expected $3, got $hash"
exit 1
fi
}
FORMAT_FLAG=--base16
try md5 "" "d41d8cd98f00b204e9800998ecf8427e"
try md5 "a" "0cc175b9c0f1b6a831c399e269772661"
try md5 "abc" "900150983cd24fb0d6963f7d28e17f72"
try md5 "message digest" "f96b697d7cb7938d525a2f31aaf161d0"
try md5 "abcdefghijklmnopqrstuvwxyz" "c3fcd3d76192e4007dfb496cca67e13b"
try md5 "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789" "d174ab98d277d9f5a5611c2c9f419d9f"
try md5 "12345678901234567890123456789012345678901234567890123456789012345678901234567890" "57edf4a22be3c955ac49da2e2107b67a"
try sha1 "" "da39a3ee5e6b4b0d3255bfef95601890afd80709"
try sha1 "abc" "a9993e364706816aba3e25717850c26c9cd0d89d"
try sha1 "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq" "84983e441c3bd26ebaae4aa1f95129e5e54670f1"
try sha256 "" "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
try sha256 "abc" "ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad"
try sha256 "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq" "248d6a61d20638b8e5c026930c3e6039a33ce45964ff2167f6ecedd419db06c1"
try sha512 "" "cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e"
try sha512 "abc" "ddaf35a193617abacc417349ae20413112e6fa4e89a97ea20a9eeee64b55d39a2192992a274fc1a836ba3c23a3feebbd454d4423643ce80e2a9ac94fa54ca49f"
try sha512 "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq" "204a8fc6dda82f0a0ced7beb8e08a41657c16ef468b228a8279be331a703c33596fd15c13b1b07f9aa1d3bea57789ca031ad85c7a71dd70354ec631238ca3445"
unset FORMAT_FLAG
FORMAT_FLAG=--base32
try sha256 "abc" "1b8m03r63zqhnjf7l5wnldhh7c134ap5vpj0850ymkq1iyzicy5s"
unset FORMAT_FLAG
FORMAT_FLAG=--sri
try sha512 "" "sha512-z4PhNX7vuL3xVChQ1m2AB9Yg5AULVxXcg/SpIdNs6c5H0NE8XYXysP+DGNKHfuwvY7kxvUdBeoGlODJ6+SfaPg=="
try sha512 "abc" "sha512-3a81oZNherrMQXNJriBBMRLm+k6JqX6iCp7u5ktV05ohkpkqJ0/BqDa6PCOj/uu9RU1EI2Q86A4qmslPpUyknw=="
try sha512 "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq" "sha512-IEqPxt2oLwoM7XvrjgikFlfBbvRosiioJ5vjMacDwzWW/RXBOxsH+aodO+pXeJygMa2Fx6cd1wNU7GMSOMo0RQ=="
try sha256 "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq" "sha256-JI1qYdIGOLjlwCaTDD5gOaM85Flk/yFn9uzt1BnbBsE="
unset FORMAT_FLAG
# nix-hash [--flat] defaults to the Base16 format
NO_TEST_NIX_COMMAND=1 try sha512 "abc" "ddaf35a193617abacc417349ae20413112e6fa4e89a97ea20a9eeee64b55d39a2192992a274fc1a836ba3c23a3feebbd454d4423643ce80e2a9ac94fa54ca49f"
# nix hash [file|path] defaults to the SRI format
NO_TEST_CLASSIC=1 try sha512 "abc" "sha512-3a81oZNherrMQXNJriBBMRLm+k6JqX6iCp7u5ktV05ohkpkqJ0/BqDa6PCOj/uu9RU1EI2Q86A4qmslPpUyknw=="
try2 () {
hash=$(nix-hash --type "$1" $TEST_ROOT/hash-path)
if test "$hash" != "$2"; then
echo "hash $1, expected $2, got $hash"
exit 1
fi
}
rm -rf $TEST_ROOT/hash-path
mkdir $TEST_ROOT/hash-path
echo "Hello World" > $TEST_ROOT/hash-path/hello
try2 md5 "ea9b55537dd4c7e104515b2ccfaf4100"
# Execute bit matters.
chmod +x $TEST_ROOT/hash-path/hello
try2 md5 "20f3ffe011d4cfa7d72bfabef7882836"
# Mtime and other bits don't.
touch -r . $TEST_ROOT/hash-path/hello
chmod 744 $TEST_ROOT/hash-path/hello
try2 md5 "20f3ffe011d4cfa7d72bfabef7882836"
# File type (e.g., symlink) does.
rm $TEST_ROOT/hash-path/hello
ln -s x $TEST_ROOT/hash-path/hello
try2 md5 "f78b733a68f5edbdf9413899339eaa4a"
# Conversion.
try3() {
h64=$(nix-hash --type "$1" --to-base64 "$2")
[ "$h64" = "$4" ]
h64=$(nix hash to-base64 --type "$1" "$2")
[ "$h64" = "$4" ]
sri=$(nix-hash --type "$1" --to-sri "$2")
[ "$sri" = "$1-$4" ]
sri=$(nix hash to-sri --type "$1" "$2")
[ "$sri" = "$1-$4" ]
h32=$(nix-hash --type "$1" --to-base32 "$2")
[ "$h32" = "$3" ]
h32=$(nix hash to-base32 --type "$1" "$2")
[ "$h32" = "$3" ]
h16=$(nix-hash --type "$1" --to-base16 "$h32")
[ "$h16" = "$2" ]
h16=$(nix hash to-base16 --type "$1" "$h64")
[ "$h16" = "$2" ]
h16=$(nix hash to-base16 "$sri")
[ "$h16" = "$2" ]
}
try3 sha1 "800d59cfcd3c05e900cb4e214be48f6b886a08df" "vw46m23bizj4n8afrc0fj19wrp7mj3c0" "gA1Zz808BekAy04hS+SPa4hqCN8="
try3 sha256 "ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad" "1b8m03r63zqhnjf7l5wnldhh7c134ap5vpj0850ymkq1iyzicy5s" "ungWv48Bz+pBQUDeXa4iI7ADYaOWF3qctBD/YfIAFa0="
try3 sha512 "204a8fc6dda82f0a0ced7beb8e08a41657c16ef468b228a8279be331a703c33596fd15c13b1b07f9aa1d3bea57789ca031ad85c7a71dd70354ec631238ca3445" "12k9jiq29iyqm03swfsgiw5mlqs173qazm3n7daz43infy12pyrcdf30fkk3qwv4yl2ick8yipc2mqnlh48xsvvxl60lbx8vp38yji0" "IEqPxt2oLwoM7XvrjgikFlfBbvRosiioJ5vjMacDwzWW/RXBOxsH+aodO+pXeJygMa2Fx6cd1wNU7GMSOMo0RQ=="
-1
View File
@@ -87,7 +87,6 @@ functional_tests_scripts = [
'optimise-store.sh',
'substitute-with-invalid-ca.sh',
'signing.sh',
'hash.sh',
'gc-non-blocking.sh',
'check.sh',
'nix-shell/basic.sh',
@@ -0,0 +1 @@
d41d8cd98f00b204e9800998ecf8427e
@@ -0,0 +1 @@
d41d8cd98f00b204e9800998ecf8427e
@@ -0,0 +1 @@
3y8bwfr609h3lh9ch0izcqq7fl
@@ -0,0 +1 @@
3y8bwfr609h3lh9ch0izcqq7fl
@@ -0,0 +1 @@
md5-1B2M2Y8AsgTpgAmY7PhCfg==
@@ -0,0 +1 @@
md5-1B2M2Y8AsgTpgAmY7PhCfg==
@@ -0,0 +1 @@
da39a3ee5e6b4b0d3255bfef95601890afd80709
@@ -0,0 +1 @@
da39a3ee5e6b4b0d3255bfef95601890afd80709
@@ -0,0 +1 @@
143xibwh31h9bvxzalr0sjvbbvpa6ffs
@@ -0,0 +1 @@
143xibwh31h9bvxzalr0sjvbbvpa6ffs
@@ -0,0 +1 @@
sha1-2jmj7l5rSw0yVb/vlWAYkK/YBwk=
@@ -0,0 +1 @@
sha1-2jmj7l5rSw0yVb/vlWAYkK/YBwk=
@@ -0,0 +1 @@
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
@@ -0,0 +1 @@
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
@@ -0,0 +1 @@
0mdqa9w1p6cmli6976v4wi0sw9r4p5prkj7lzfd1877wk11c9c73
@@ -0,0 +1 @@
0mdqa9w1p6cmli6976v4wi0sw9r4p5prkj7lzfd1877wk11c9c73
@@ -0,0 +1 @@
sha256-47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=
@@ -0,0 +1 @@
sha256-47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=
@@ -0,0 +1 @@
cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e
@@ -0,0 +1 @@
cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e
@@ -0,0 +1 @@
0zdl9zrg8r3i9c1g90lgg9ip5ijzv3yhz91i0zzn3r8ap9ws784gkp9dk9j3aglhgf1amqb0pj21mh7h1nxcl18akqvvf7ggqsy30yg
@@ -0,0 +1 @@
0zdl9zrg8r3i9c1g90lgg9ip5ijzv3yhz91i0zzn3r8ap9ws784gkp9dk9j3aglhgf1amqb0pj21mh7h1nxcl18akqvvf7ggqsy30yg
@@ -0,0 +1 @@
sha512-z4PhNX7vuL3xVChQ1m2AB9Yg5AULVxXcg/SpIdNs6c5H0NE8XYXysP+DGNKHfuwvY7kxvUdBeoGlODJ6+SfaPg==
@@ -0,0 +1 @@
sha512-z4PhNX7vuL3xVChQ1m2AB9Yg5AULVxXcg/SpIdNs6c5H0NE8XYXysP+DGNKHfuwvY7kxvUdBeoGlODJ6+SfaPg==
@@ -0,0 +1 @@
0cc175b9c0f1b6a831c399e269772661
@@ -0,0 +1 @@
0cc175b9c0f1b6a831c399e269772661
@@ -0,0 +1 @@
314rvnkqlrqcqsidpiq2wpbh8c
@@ -0,0 +1 @@
314rvnkqlrqcqsidpiq2wpbh8c
@@ -0,0 +1 @@
md5-DMF1ucDxtqgxw5niaXcmYQ==
@@ -0,0 +1 @@
md5-DMF1ucDxtqgxw5niaXcmYQ==
@@ -0,0 +1 @@
86f7e437faa5a7fce15d1ddcb9eaeaea377667b8
@@ -0,0 +1 @@
86f7e437faa5a7fce15d1ddcb9eaeaea377667b8
@@ -0,0 +1 @@
p1kpcdzaxbmbkp0xbphzr9x5z8vy9xw6
@@ -0,0 +1 @@
p1kpcdzaxbmbkp0xbphzr9x5z8vy9xw6
@@ -0,0 +1 @@
sha1-hvfkN/qlp/zhXR3cuerq6jd2Z7g=
@@ -0,0 +1 @@
sha1-hvfkN/qlp/zhXR3cuerq6jd2Z7g=
@@ -0,0 +1 @@
ca978112ca1bbdcafac231b39a23dc4da786eff8147c4e72b9807785afee48bb
@@ -0,0 +1 @@
ca978112ca1bbdcafac231b39a23dc4da786eff8147c4e72b9807785afee48bb
@@ -0,0 +1 @@
1fs8xspqaxw0p5r4wz0lz3pqd9sdvhirmcriqbxcmg8vr89835ya
@@ -0,0 +1 @@
1fs8xspqaxw0p5r4wz0lz3pqd9sdvhirmcriqbxcmg8vr89835ya
@@ -0,0 +1 @@
sha256-ypeBEsobvcr6wjGzmiPcTaeG7/gUfE5yuYB3ha/uSLs=
@@ -0,0 +1 @@
sha256-ypeBEsobvcr6wjGzmiPcTaeG7/gUfE5yuYB3ha/uSLs=
@@ -0,0 +1 @@
1f40fc92da241694750979ee6cf582f2d5d7d28e18335de05abc54d0560e0f5302860c652bf08d560252aa5e74210546f369fbbbce8c12cfc7957b2652fe9a75
@@ -0,0 +1 @@
1f40fc92da241694750979ee6cf582f2d5d7d28e18335de05abc54d0560e0f5302860c652bf08d560252aa5e74210546f369fbbbce8c12cfc7957b2652fe9a75
@@ -0,0 +1 @@
1srmzjj4rxrbiyg2a6cxfzvd7rlc191figallh2as6z0av51j304lqg1rbd0m5wbbh5scqqiv9dgmgjhbsnrvkr15sr85i4va9gqh0z
@@ -0,0 +1 @@
1srmzjj4rxrbiyg2a6cxfzvd7rlc191figallh2as6z0av51j304lqg1rbd0m5wbbh5scqqiv9dgmgjhbsnrvkr15sr85i4va9gqh0z
@@ -0,0 +1 @@
sha512-H0D8ktokFpR1CXnubPWC8tXX0o4YM13gWrxU0FYOD1MChgxlK/CNVgJSql50IQVG82n7u86MEs/HlXsmUv6adQ==
@@ -0,0 +1 @@
sha512-H0D8ktokFpR1CXnubPWC8tXX0o4YM13gWrxU0FYOD1MChgxlK/CNVgJSql50IQVG82n7u86MEs/HlXsmUv6adQ==
@@ -0,0 +1 @@
900150983cd24fb0d6963f7d28e17f72
@@ -0,0 +1 @@
900150983cd24fb0d6963f7d28e17f72
@@ -0,0 +1 @@
3jgzhjhz9zjvbb0kyj7jc500ch
@@ -0,0 +1 @@
3jgzhjhz9zjvbb0kyj7jc500ch
@@ -0,0 +1 @@
md5-kAFQmDzST7DWlj99KOF/cg==
@@ -0,0 +1 @@
md5-kAFQmDzST7DWlj99KOF/cg==
@@ -0,0 +1 @@
a9993e364706816aba3e25717850c26c9cd0d89d
@@ -0,0 +1 @@
a9993e364706816aba3e25717850c26c9cd0d89d
@@ -0,0 +1 @@
kpcd173cq987hw957sx6m0868wv3x6d9
@@ -0,0 +1 @@
kpcd173cq987hw957sx6m0868wv3x6d9
@@ -0,0 +1 @@
sha1-qZk+NkcGgWq6PiVxeFDCbJzQ2J0=
@@ -0,0 +1 @@
sha1-qZk+NkcGgWq6PiVxeFDCbJzQ2J0=
@@ -0,0 +1 @@
ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad
@@ -0,0 +1 @@
ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad
@@ -0,0 +1 @@
1b8m03r63zqhnjf7l5wnldhh7c134ap5vpj0850ymkq1iyzicy5s
@@ -0,0 +1 @@
1b8m03r63zqhnjf7l5wnldhh7c134ap5vpj0850ymkq1iyzicy5s
@@ -0,0 +1 @@
sha256-ungWv48Bz+pBQUDeXa4iI7ADYaOWF3qctBD/YfIAFa0=
@@ -0,0 +1 @@
sha256-ungWv48Bz+pBQUDeXa4iI7ADYaOWF3qctBD/YfIAFa0=
@@ -0,0 +1 @@
ddaf35a193617abacc417349ae20413112e6fa4e89a97ea20a9eeee64b55d39a2192992a274fc1a836ba3c23a3feebbd454d4423643ce80e2a9ac94fa54ca49f
@@ -0,0 +1 @@
ddaf35a193617abacc417349ae20413112e6fa4e89a97ea20a9eeee64b55d39a2192992a274fc1a836ba3c23a3feebbd454d4423643ce80e2a9ac94fa54ca49f
@@ -0,0 +1 @@
2gs8k559z4rlahfx0y688s49m2vvszylcikrfinm30ly9rak69236nkam5ydvly1ai7xac99vxfc4ii84hawjbk876blyk1jfhkbbyx
@@ -0,0 +1 @@
2gs8k559z4rlahfx0y688s49m2vvszylcikrfinm30ly9rak69236nkam5ydvly1ai7xac99vxfc4ii84hawjbk876blyk1jfhkbbyx
@@ -0,0 +1 @@
sha512-3a81oZNherrMQXNJriBBMRLm+k6JqX6iCp7u5ktV05ohkpkqJ0/BqDa6PCOj/uu9RU1EI2Q86A4qmslPpUyknw==
@@ -0,0 +1 @@
sha512-3a81oZNherrMQXNJriBBMRLm+k6JqX6iCp7u5ktV05ohkpkqJ0/BqDa6PCOj/uu9RU1EI2Q86A4qmslPpUyknw==
@@ -0,0 +1 @@
248d6a61d20638b8e5c026930c3e6039a33ce45964ff2167f6ecedd419db06c1
@@ -0,0 +1 @@
248d6a61d20638b8e5c026930c3e6039a33ce45964ff2167f6ecedd419db06c1
@@ -0,0 +1 @@
1h86vccx9vgcyrkj3zv4b7j3r8rrc0z0r4r6q3jvhf06s9hnm394
@@ -0,0 +1 @@
1h86vccx9vgcyrkj3zv4b7j3r8rrc0z0r4r6q3jvhf06s9hnm394
@@ -0,0 +1 @@
sha256-JI1qYdIGOLjlwCaTDD5gOaM85Flk/yFn9uzt1BnbBsE=
@@ -0,0 +1 @@
sha256-JI1qYdIGOLjlwCaTDD5gOaM85Flk/yFn9uzt1BnbBsE=
@@ -0,0 +1 @@
204a8fc6dda82f0a0ced7beb8e08a41657c16ef468b228a8279be331a703c33596fd15c13b1b07f9aa1d3bea57789ca031ad85c7a71dd70354ec631238ca3445
@@ -0,0 +1 @@
204a8fc6dda82f0a0ced7beb8e08a41657c16ef468b228a8279be331a703c33596fd15c13b1b07f9aa1d3bea57789ca031ad85c7a71dd70354ec631238ca3445
@@ -0,0 +1 @@
12k9jiq29iyqm03swfsgiw5mlqs173qazm3n7daz43infy12pyrcdf30fkk3qwv4yl2ick8yipc2mqnlh48xsvvxl60lbx8vp38yji0
@@ -0,0 +1 @@
12k9jiq29iyqm03swfsgiw5mlqs173qazm3n7daz43infy12pyrcdf30fkk3qwv4yl2ick8yipc2mqnlh48xsvvxl60lbx8vp38yji0
@@ -0,0 +1 @@
sha512-IEqPxt2oLwoM7XvrjgikFlfBbvRosiioJ5vjMacDwzWW/RXBOxsH+aodO+pXeJygMa2Fx6cd1wNU7GMSOMo0RQ==
@@ -0,0 +1 @@
sha512-IEqPxt2oLwoM7XvrjgikFlfBbvRosiioJ5vjMacDwzWW/RXBOxsH+aodO+pXeJygMa2Fx6cd1wNU7GMSOMo0RQ==
@@ -0,0 +1 @@
bae33f0d6044b5ce7dc9f98d9e017845
@@ -0,0 +1 @@
bae33f0d6044b5ce7dc9f98d9e017845

Some files were not shown because too many files have changed in this diff Show More