forked from lix-project/lix
Test whether build/repair results are read-only
This commit is contained in:
parent
cec9473871
commit
31ab4c3816
|
@ -13,14 +13,14 @@ hash=$(nix-hash $path2)
|
||||||
chmod u+w $path2
|
chmod u+w $path2
|
||||||
touch $path2/bad
|
touch $path2/bad
|
||||||
|
|
||||||
if nix-store --verify --check-contents -v; then
|
(! nix-store --verify --check-contents -v)
|
||||||
echo "nix-store --verify succeeded unexpectedly" >&2
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# The path can be repaired by rebuilding the derivation.
|
# The path can be repaired by rebuilding the derivation.
|
||||||
nix-store --verify --check-contents --repair
|
nix-store --verify --check-contents --repair
|
||||||
|
|
||||||
|
(! [ -e $path2/bad ])
|
||||||
|
(! [ -w $path2 ])
|
||||||
|
|
||||||
nix-store --verify-path $path2
|
nix-store --verify-path $path2
|
||||||
|
|
||||||
# Re-corrupt and delete the deriver. Now --verify --repair should
|
# Re-corrupt and delete the deriver. Now --verify --repair should
|
||||||
|
@ -30,10 +30,7 @@ touch $path2/bad
|
||||||
|
|
||||||
nix-store --delete $(nix-store -qd $path2)
|
nix-store --delete $(nix-store -qd $path2)
|
||||||
|
|
||||||
if nix-store --verify --check-contents --repair; then
|
(! nix-store --verify --check-contents --repair)
|
||||||
echo "nix-store --verify --repair succeeded unexpectedly" >&2
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
nix-build dependencies.nix -o $TEST_ROOT/result --repair
|
nix-build dependencies.nix -o $TEST_ROOT/result --repair
|
||||||
|
|
||||||
|
|
|
@ -10,13 +10,15 @@ outPath=$(nix-store -rvv "$drvPath")
|
||||||
|
|
||||||
echo "output path is $outPath"
|
echo "output path is $outPath"
|
||||||
|
|
||||||
|
(! [ -w $outPath ])
|
||||||
|
|
||||||
text=$(cat "$outPath"/hello)
|
text=$(cat "$outPath"/hello)
|
||||||
if test "$text" != "Hello World!"; then exit 1; fi
|
if test "$text" != "Hello World!"; then exit 1; fi
|
||||||
|
|
||||||
# Directed delete: $outPath is not reachable from a root, so it should
|
# Directed delete: $outPath is not reachable from a root, so it should
|
||||||
# be deleteable.
|
# be deleteable.
|
||||||
nix-store --delete $outPath
|
nix-store --delete $outPath
|
||||||
if test -e $outPath/hello; then false; fi
|
(! [ -e $outPath/hello ])
|
||||||
|
|
||||||
outPath="$(NIX_REMOTE=local?store=/foo\&real=$TEST_ROOT/real-store nix-instantiate --readonly-mode hash-check.nix)"
|
outPath="$(NIX_REMOTE=local?store=/foo\&real=$TEST_ROOT/real-store nix-instantiate --readonly-mode hash-check.nix)"
|
||||||
if test "$outPath" != "/foo/lfy1s6ca46rm5r6w4gg9hc0axiakjcnm-dependencies.drv"; then
|
if test "$outPath" != "/foo/lfy1s6ca46rm5r6w4gg9hc0axiakjcnm-dependencies.drv"; then
|
||||||
|
|
Loading…
Reference in a new issue