2024-05-28 12:43:04 -04:00
|
|
|
#!/usr/bin/env bash
|
|
|
|
|
2006-03-01 08:49:12 -05:00
|
|
|
source common.sh
|
|
|
|
|
2024-06-16 06:51:46 -04:00
|
|
|
TODO_NixOS
|
|
|
|
|
2024-06-16 11:56:50 -04:00
|
|
|
clearStoreIfPossible
|
2006-03-01 08:49:12 -05:00
|
|
|
|
2017-11-24 12:07:29 -05:00
|
|
|
outPath=$(nix-build dependencies.nix -o $TEST_ROOT/result)
|
2006-03-01 08:49:12 -05:00
|
|
|
test "$(cat $TEST_ROOT/result/foobar)" = FOOBAR
|
|
|
|
|
|
|
|
# The result should be retained by a GC.
|
2006-03-01 09:26:03 -05:00
|
|
|
echo A
|
|
|
|
target=$(readLink $TEST_ROOT/result)
|
|
|
|
echo B
|
2006-03-01 08:49:12 -05:00
|
|
|
echo target is $target
|
2011-10-10 17:32:34 -04:00
|
|
|
nix-store --gc
|
2006-03-01 08:49:12 -05:00
|
|
|
test -e $target/foobar
|
|
|
|
|
|
|
|
# But now it should be gone.
|
|
|
|
rm $TEST_ROOT/result
|
2011-10-10 17:32:34 -04:00
|
|
|
nix-store --gc
|
2006-03-01 08:49:12 -05:00
|
|
|
if test -e $target/foobar; then false; fi
|
2017-11-24 12:07:29 -05:00
|
|
|
|
|
|
|
outPath2=$(nix-build $(nix-instantiate dependencies.nix) --no-out-link)
|
|
|
|
[[ $outPath = $outPath2 ]]
|
|
|
|
|
|
|
|
outPath2=$(nix-build $(nix-instantiate dependencies.nix)!out --no-out-link)
|
|
|
|
[[ $outPath = $outPath2 ]]
|
2019-12-16 13:11:47 -05:00
|
|
|
|
2020-09-03 05:22:00 -04:00
|
|
|
outPath2=$(nix-store -r $(nix-instantiate --add-root $TEST_ROOT/indirect dependencies.nix)!out)
|
2019-12-16 13:11:47 -05:00
|
|
|
[[ $outPath = $outPath2 ]]
|
2020-11-13 11:49:55 -05:00
|
|
|
|
|
|
|
# The order of the paths on stdout must correspond to the -A options
|
|
|
|
# https://github.com/NixOS/nix/issues/4197
|
|
|
|
|
|
|
|
input0="$(nix-build nix-build-examples.nix -A input0 --no-out-link)"
|
|
|
|
input1="$(nix-build nix-build-examples.nix -A input1 --no-out-link)"
|
|
|
|
input2="$(nix-build nix-build-examples.nix -A input2 --no-out-link)"
|
|
|
|
body="$(nix-build nix-build-examples.nix -A body --no-out-link)"
|
|
|
|
|
|
|
|
outPathsA="$(echo $(nix-build nix-build-examples.nix -A input0 -A input1 -A input2 -A body --no-out-link))"
|
|
|
|
[[ "$outPathsA" = "$input0 $input1 $input2 $body" ]]
|
|
|
|
|
|
|
|
# test a different ordering to make sure it fails, not just in 23 out of 24 permutations
|
|
|
|
outPathsB="$(echo $(nix-build nix-build-examples.nix -A body -A input1 -A input2 -A input0 --no-out-link))"
|
|
|
|
[[ "$outPathsB" = "$body $input1 $input2 $input0" ]]
|