1
1
Fork 0
mirror of https://github.com/NixOS/nix.git synced 2025-12-08 18:11:02 +01:00
nix/tests/functional/path-info.sh
2025-12-03 23:41:48 -05:00

47 lines
1.4 KiB
Bash
Executable file

#!/usr/bin/env bash
source common.sh
echo foo > "$TEST_ROOT"/foo
foo=$(nix store add-file "$TEST_ROOT"/foo)
fooBase=$(basename "$foo")
echo bar > "$TEST_ROOT"/bar
bar=$(nix store add-file "$TEST_ROOT"/bar)
barBase=$(basename "$bar")
echo baz > "$TEST_ROOT"/baz
baz=$(nix store add-file "$TEST_ROOT"/baz)
bazBase=$(basename "$baz")
nix-store --delete "$baz"
diff --unified --color=always \
<(nix path-info --json --json-format 2 "$foo" "$bar" "$baz" |
jq --sort-keys '.info | map_values(.narHash)') \
<(jq --sort-keys <<-EOF
{
"$fooBase": {
"algorithm": "sha256",
"format": "base16",
"hash": "42fb4031b525feebe2f8b08e6e6a8e86f34e6a91dd036ada888e311b9cc8e690"
},
"$barBase": {
"algorithm": "sha256",
"format": "base16",
"hash": "f5f8581aef5fab17100b629cf35aa1d91328d5070b054068f14fa93e7fa3b614"
},
"$bazBase": null
}
EOF
)
# Test that storeDir is returned in the JSON output in individual store objects
nix path-info --json --json-format 2 "$foo" | jq -e \
--arg fooBase "$fooBase" \
--arg storeDir "${NIX_STORE_DIR:-/nix/store}" \
'.info[$fooBase].storeDir == $storeDir'
# And also at the top -evel
echo | nix path-info --json --json-format 2 --stdin | jq -e \
--arg storeDir "${NIX_STORE_DIR:-/nix/store}" \
'.storeDir == $storeDir'