2018-01-19 14:58:28 +02:00
|
|
|
source common.sh
|
|
|
|
|
|
|
|
clearStore
|
|
|
|
|
|
|
|
nix-build dependencies.nix --no-out-link
|
|
|
|
nix-build dependencies.nix --no-out-link --check
|
|
|
|
|
|
|
|
nix-build check.nix -A nondeterministic --no-out-link
|
2019-05-12 00:32:53 +03:00
|
|
|
nix-build check.nix -A nondeterministic --no-out-link --check 2> $TEST_ROOT/log || status=$?
|
2018-01-19 14:58:28 +02:00
|
|
|
grep 'may not be deterministic' $TEST_ROOT/log
|
2019-06-15 16:28:32 +03:00
|
|
|
[ "$status" = "104" ]
|
2018-01-19 14:58:28 +02:00
|
|
|
|
|
|
|
clearStore
|
|
|
|
|
|
|
|
nix-build dependencies.nix --no-out-link --repeat 3
|
|
|
|
|
2019-05-12 00:32:53 +03:00
|
|
|
nix-build check.nix -A nondeterministic --no-out-link --repeat 1 2> $TEST_ROOT/log || status=$?
|
|
|
|
[ "$status" = "1" ]
|
2018-01-19 14:58:28 +02:00
|
|
|
grep 'differs from previous round' $TEST_ROOT/log
|
|
|
|
|
2018-01-22 17:56:10 +02:00
|
|
|
path=$(nix-build check.nix -A fetchurl --no-out-link --hashed-mirrors '')
|
2018-01-19 15:53:34 +02:00
|
|
|
|
|
|
|
chmod +w $path
|
|
|
|
echo foo > $path
|
|
|
|
chmod -w $path
|
|
|
|
|
2018-01-22 17:56:10 +02:00
|
|
|
nix-build check.nix -A fetchurl --no-out-link --check --hashed-mirrors ''
|
2018-01-19 15:53:34 +02:00
|
|
|
# Note: "check" doesn't repair anything, it just compares to the hash stored in the database.
|
|
|
|
[[ $(cat $path) = foo ]]
|
|
|
|
|
2018-01-22 17:56:10 +02:00
|
|
|
nix-build check.nix -A fetchurl --no-out-link --repair --hashed-mirrors ''
|
2018-01-19 15:53:34 +02:00
|
|
|
[[ $(cat $path) != foo ]]
|
2019-05-12 00:32:53 +03:00
|
|
|
|
|
|
|
nix-build check.nix -A hashmismatch --no-out-link --hashed-mirrors '' || status=$?
|
|
|
|
[ "$status" = "102" ]
|
|
|
|
|
|
|
|
echo -n > ./dummy
|
|
|
|
nix-build check.nix -A hashmismatch --no-out-link --hashed-mirrors ''
|
|
|
|
echo 'Hello World' > ./dummy
|
|
|
|
|
|
|
|
nix-build check.nix -A hashmismatch --no-out-link --check --hashed-mirrors '' || status=$?
|
|
|
|
[ "$status" = "102" ]
|
|
|
|
|
|
|
|
# Multiple failures with --keep-going
|
|
|
|
nix-build check.nix -A nondeterministic --no-out-link
|
|
|
|
nix-build check.nix -A nondeterministic -A hashmismatch --no-out-link --check --keep-going --hashed-mirrors '' || status=$?
|
2019-06-15 16:28:32 +03:00
|
|
|
[ "$status" = "110" ]
|