mirror of
https://github.com/NixOS/nix
synced 2025-07-07 18:31:49 +02:00
ValidPathInfo
JSON format should use null
not omit field
Co-authored-by: Robert Hensing <roberth@users.noreply.github.com> Co-authored-by: Robert Hensing <roberth@users.noreply.github.com>
This commit is contained in:
parent
213a7a87b4
commit
84c65135a5
11 changed files with 98 additions and 54 deletions
|
@ -15,9 +15,9 @@ outPath=$(nix-build dependencies.nix --no-out-link --secret-key-files "$TEST_ROO
|
|||
|
||||
# Verify that the path got signed.
|
||||
info=$(nix path-info --json $outPath)
|
||||
[[ $info =~ '"ultimate":true' ]]
|
||||
[[ $info =~ 'cache1.example.org' ]]
|
||||
[[ $info =~ 'cache2.example.org' ]]
|
||||
echo $info | jq -e '.[] | .ultimate == true'
|
||||
echo $info | jq -e '.[] | .signatures.[] | select(startswith("cache1.example.org"))'
|
||||
echo $info | jq -e '.[] | .signatures.[] | select(startswith("cache2.example.org"))'
|
||||
|
||||
# Test "nix store verify".
|
||||
nix store verify -r $outPath
|
||||
|
@ -39,8 +39,8 @@ nix store verify -r $outPath
|
|||
|
||||
# Verify that the path did not get signed but does have the ultimate bit.
|
||||
info=$(nix path-info --json $outPath2)
|
||||
[[ $info =~ '"ultimate":true' ]]
|
||||
(! [[ $info =~ 'signatures' ]])
|
||||
echo $info | jq -e '.[] | .ultimate == true'
|
||||
echo $info | jq -e '.[] | .signatures == []'
|
||||
|
||||
# Test "nix store verify".
|
||||
nix store verify -r $outPath2
|
||||
|
@ -57,7 +57,7 @@ nix store verify -r $outPath2 --sigs-needed 1 --trusted-public-keys $pk1
|
|||
# Build something content-addressed.
|
||||
outPathCA=$(IMPURE_VAR1=foo IMPURE_VAR2=bar nix-build ./fixed.nix -A good.0 --no-out-link)
|
||||
|
||||
[[ $(nix path-info --json $outPathCA) =~ '"ca":"fixed:md5:' ]]
|
||||
nix path-info --json $outPathCA | jq -e '.[] | .ca | startswith("fixed:md5:")'
|
||||
|
||||
# Content-addressed paths don't need signatures, so they verify
|
||||
# regardless of --sigs-needed.
|
||||
|
@ -73,15 +73,15 @@ nix copy --to file://$cacheDir $outPath2
|
|||
|
||||
# Verify that signatures got copied.
|
||||
info=$(nix path-info --store file://$cacheDir --json $outPath2)
|
||||
(! [[ $info =~ '"ultimate":true' ]])
|
||||
[[ $info =~ 'cache1.example.org' ]]
|
||||
(! [[ $info =~ 'cache2.example.org' ]])
|
||||
echo $info | jq -e '.[] | .ultimate == false'
|
||||
echo $info | jq -e '.[] | .signatures.[] | select(startswith("cache1.example.org"))'
|
||||
echo $info | expect 4 jq -e '.[] | .signatures.[] | select(startswith("cache2.example.org"))'
|
||||
|
||||
# Verify that adding a signature to a path in a binary cache works.
|
||||
nix store sign --store file://$cacheDir --key-file $TEST_ROOT/sk2 $outPath2
|
||||
info=$(nix path-info --store file://$cacheDir --json $outPath2)
|
||||
[[ $info =~ 'cache1.example.org' ]]
|
||||
[[ $info =~ 'cache2.example.org' ]]
|
||||
echo $info | jq -e '.[] | .signatures.[] | select(startswith("cache1.example.org"))'
|
||||
echo $info | jq -e '.[] | .signatures.[] | select(startswith("cache2.example.org"))'
|
||||
|
||||
# Copying to a diverted store should fail due to a lack of signatures by trusted keys.
|
||||
chmod -R u+w $TEST_ROOT/store0 || true
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue