2011-09-14 05:59:29 +00:00
|
|
|
|
source common.sh
|
|
|
|
|
|
2011-12-21 13:47:21 +00:00
|
|
|
|
clearStore
|
2011-09-14 05:59:29 +00:00
|
|
|
|
|
2011-12-21 13:47:21 +00:00
|
|
|
|
# Test whether read-only evaluation works when referring to the
|
|
|
|
|
# ‘drvPath’ attribute.
|
|
|
|
|
echo "evaluating c..."
|
|
|
|
|
drvPath=$(nix-instantiate multiple-outputs.nix -A c --readonly-mode)
|
|
|
|
|
|
|
|
|
|
# And check whether the resulting derivation explicitly depends on all
|
|
|
|
|
# outputs.
|
|
|
|
|
drvPath2=$(nix-instantiate multiple-outputs.nix -A c)
|
|
|
|
|
[ "$drvPath" = "$drvPath2" ]
|
|
|
|
|
grep -q 'multiple-outputs-a.drv",\["first","second"\]' $drvPath
|
|
|
|
|
grep -q 'multiple-outputs-b.drv",\["out"\]' $drvPath
|
|
|
|
|
|
2011-12-21 14:42:06 +00:00
|
|
|
|
# While we're at it, test the ‘unsafeDiscardOutputDependency’ primop.
|
|
|
|
|
outPath=$(nix-build multiple-outputs.nix -A d)
|
|
|
|
|
drvPath=$(cat $outPath/drv)
|
|
|
|
|
outPath=$(nix-store -q $drvPath)
|
|
|
|
|
! [ -e "$outPath" ]
|
|
|
|
|
|
2011-12-21 13:47:21 +00:00
|
|
|
|
# Do a build of something that depends on a derivation with multiple
|
|
|
|
|
# outputs.
|
|
|
|
|
echo "building b..."
|
2011-12-20 17:01:02 +00:00
|
|
|
|
outPath=$(nix-build multiple-outputs.nix -A b)
|
2011-09-14 05:59:29 +00:00
|
|
|
|
echo "output path is $outPath"
|
2011-12-20 17:01:02 +00:00
|
|
|
|
[ "$(cat "$outPath"/file)" = "success" ]
|
2011-12-20 17:08:43 +00:00
|
|
|
|
|
|
|
|
|
# Make sure that nix-build works on derivations with multiple outputs.
|
2011-12-21 13:47:21 +00:00
|
|
|
|
echo "building a.first..."
|
2011-12-20 17:08:43 +00:00
|
|
|
|
nix-build multiple-outputs.nix -A a.first
|
|
|
|
|
|
|
|
|
|
# Cyclic outputs should be rejected.
|
2011-12-21 13:47:21 +00:00
|
|
|
|
echo "building cyclic..."
|
2011-12-20 17:08:43 +00:00
|
|
|
|
if nix-build multiple-outputs.nix -A cyclic; then
|
|
|
|
|
echo "Cyclic outputs incorrectly accepted!"
|
|
|
|
|
exit 1
|
|
|
|
|
fi
|
|
|
|
|
|
2011-12-21 13:47:21 +00:00
|
|
|
|
echo "collecting garbage..."
|
2011-12-20 17:10:39 +00:00
|
|
|
|
nix-store --gc
|