mirror of
https://github.com/NixOS/nix
synced 2025-06-25 06:31:14 +02:00
parent
a8e600e386
commit
a75b082a28
12 changed files with 159 additions and 163 deletions
|
@ -7,9 +7,9 @@ buggyNeedLocalStore "see #4813"
|
|||
|
||||
checkBuildTempDirRemoved ()
|
||||
{
|
||||
buildDir=$(sed -n 's/CHECK_TMPDIR=//p' $1 | head -1)
|
||||
buildDir=$(sed -n 's/CHECK_TMPDIR=//p' "$1" | head -1)
|
||||
checkBuildIdFile=${buildDir}/checkBuildId
|
||||
[[ ! -f $checkBuildIdFile ]] || ! grep $checkBuildId $checkBuildIdFile
|
||||
[[ ! -f $checkBuildIdFile ]] || ! grep "$checkBuildId" "$checkBuildIdFile"
|
||||
}
|
||||
|
||||
# written to build temp directories to verify created by this instance
|
||||
|
@ -28,15 +28,15 @@ nix-build dependencies.nix --no-out-link --check
|
|||
# check for dangling temporary build directories
|
||||
# only retain if build fails and --keep-failed is specified, or...
|
||||
# ...build is non-deterministic and --check and --keep-failed are both specified
|
||||
nix-build check.nix -A failed --argstr checkBuildId $checkBuildId \
|
||||
--no-out-link 2> $TEST_ROOT/log || status=$?
|
||||
nix-build check.nix -A failed --argstr checkBuildId "$checkBuildId" \
|
||||
--no-out-link 2> "$TEST_ROOT/log" || status=$?
|
||||
[ "$status" = "100" ]
|
||||
checkBuildTempDirRemoved $TEST_ROOT/log
|
||||
checkBuildTempDirRemoved "$TEST_ROOT/log"
|
||||
|
||||
nix-build check.nix -A failed --argstr checkBuildId $checkBuildId \
|
||||
--no-out-link --keep-failed 2> $TEST_ROOT/log || status=$?
|
||||
nix-build check.nix -A failed --argstr checkBuildId "$checkBuildId" \
|
||||
--no-out-link --keep-failed 2> "$TEST_ROOT/log" || status=$?
|
||||
[ "$status" = "100" ]
|
||||
if checkBuildTempDirRemoved $TEST_ROOT/log; then false; fi
|
||||
if checkBuildTempDirRemoved "$TEST_ROOT/log"; then false; fi
|
||||
|
||||
test_custom_build_dir() {
|
||||
local customBuildDir="$TEST_ROOT/custom-build-dir"
|
||||
|
@ -44,42 +44,42 @@ test_custom_build_dir() {
|
|||
# Nix does not create the parent directories, and perhaps it shouldn't try to
|
||||
# decide the permissions of build-dir.
|
||||
mkdir "$customBuildDir"
|
||||
nix-build check.nix -A failed --argstr checkBuildId $checkBuildId \
|
||||
--no-out-link --keep-failed --option build-dir "$TEST_ROOT/custom-build-dir" 2> $TEST_ROOT/log || status=$?
|
||||
nix-build check.nix -A failed --argstr checkBuildId "$checkBuildId" \
|
||||
--no-out-link --keep-failed --option build-dir "$TEST_ROOT/custom-build-dir" 2> "$TEST_ROOT/log" || status=$?
|
||||
[ "$status" = "100" ]
|
||||
[[ 1 == "$(count "$customBuildDir/nix-build-"*)" ]]
|
||||
local buildDir="$customBuildDir/nix-build-"*""
|
||||
if [[ -e $buildDir/build ]]; then
|
||||
buildDir=$buildDir/build
|
||||
local buildDir=("$customBuildDir/nix-build-"*)
|
||||
if [[ -e ${buildDir[*]}/build ]]; then
|
||||
buildDir[0]="${buildDir[*]}/build"
|
||||
fi
|
||||
grep $checkBuildId $buildDir/checkBuildId
|
||||
grep "$checkBuildId" "${buildDir[*]}/checkBuildId"
|
||||
}
|
||||
test_custom_build_dir
|
||||
|
||||
nix-build check.nix -A deterministic --argstr checkBuildId $checkBuildId \
|
||||
--no-out-link 2> $TEST_ROOT/log
|
||||
checkBuildTempDirRemoved $TEST_ROOT/log
|
||||
nix-build check.nix -A deterministic --argstr checkBuildId "$checkBuildId" \
|
||||
--no-out-link 2> "$TEST_ROOT/log"
|
||||
checkBuildTempDirRemoved "$TEST_ROOT/log"
|
||||
|
||||
nix-build check.nix -A deterministic --argstr checkBuildId $checkBuildId \
|
||||
--no-out-link --check --keep-failed 2> $TEST_ROOT/log
|
||||
if grepQuiet 'may not be deterministic' $TEST_ROOT/log; then false; fi
|
||||
checkBuildTempDirRemoved $TEST_ROOT/log
|
||||
nix-build check.nix -A deterministic --argstr checkBuildId "$checkBuildId" \
|
||||
--no-out-link --check --keep-failed 2> "$TEST_ROOT/log"
|
||||
if grepQuiet 'may not be deterministic' "$TEST_ROOT/log"; then false; fi
|
||||
checkBuildTempDirRemoved "$TEST_ROOT/log"
|
||||
|
||||
nix-build check.nix -A nondeterministic --argstr checkBuildId $checkBuildId \
|
||||
--no-out-link 2> $TEST_ROOT/log
|
||||
checkBuildTempDirRemoved $TEST_ROOT/log
|
||||
nix-build check.nix -A nondeterministic --argstr checkBuildId "$checkBuildId" \
|
||||
--no-out-link 2> "$TEST_ROOT/log"
|
||||
checkBuildTempDirRemoved "$TEST_ROOT/log"
|
||||
|
||||
nix-build check.nix -A nondeterministic --argstr checkBuildId $checkBuildId \
|
||||
--no-out-link --check 2> $TEST_ROOT/log || status=$?
|
||||
grep 'may not be deterministic' $TEST_ROOT/log
|
||||
nix-build check.nix -A nondeterministic --argstr checkBuildId "$checkBuildId" \
|
||||
--no-out-link --check 2> "$TEST_ROOT/log" || status=$?
|
||||
grep 'may not be deterministic' "$TEST_ROOT/log"
|
||||
[ "$status" = "104" ]
|
||||
checkBuildTempDirRemoved $TEST_ROOT/log
|
||||
checkBuildTempDirRemoved "$TEST_ROOT/log"
|
||||
|
||||
nix-build check.nix -A nondeterministic --argstr checkBuildId $checkBuildId \
|
||||
--no-out-link --check --keep-failed 2> $TEST_ROOT/log || status=$?
|
||||
grep 'may not be deterministic' $TEST_ROOT/log
|
||||
nix-build check.nix -A nondeterministic --argstr checkBuildId "$checkBuildId" \
|
||||
--no-out-link --check --keep-failed 2> "$TEST_ROOT/log" || status=$?
|
||||
grep 'may not be deterministic' "$TEST_ROOT/log"
|
||||
[ "$status" = "104" ]
|
||||
if checkBuildTempDirRemoved $TEST_ROOT/log; then false; fi
|
||||
if checkBuildTempDirRemoved "$TEST_ROOT/log"; then false; fi
|
||||
|
||||
TODO_NixOS
|
||||
|
||||
|
@ -87,24 +87,24 @@ clearStore
|
|||
|
||||
path=$(nix-build check.nix -A fetchurl --no-out-link)
|
||||
|
||||
chmod +w $path
|
||||
echo foo > $path
|
||||
chmod -w $path
|
||||
chmod +w "$path"
|
||||
echo foo > "$path"
|
||||
chmod -w "$path"
|
||||
|
||||
nix-build check.nix -A fetchurl --no-out-link --check
|
||||
# Note: "check" doesn't repair anything, it just compares to the hash stored in the database.
|
||||
[[ $(cat $path) = foo ]]
|
||||
[[ $(cat "$path") = foo ]]
|
||||
|
||||
nix-build check.nix -A fetchurl --no-out-link --repair
|
||||
[[ $(cat $path) != foo ]]
|
||||
[[ $(cat "$path") != foo ]]
|
||||
|
||||
echo 'Hello World' > $TEST_ROOT/dummy
|
||||
echo 'Hello World' > "$TEST_ROOT/dummy"
|
||||
nix-build check.nix -A hashmismatch --no-out-link || status=$?
|
||||
[ "$status" = "102" ]
|
||||
|
||||
echo -n > $TEST_ROOT/dummy
|
||||
echo -n > "$TEST_ROOT/dummy"
|
||||
nix-build check.nix -A hashmismatch --no-out-link
|
||||
echo 'Hello World' > $TEST_ROOT/dummy
|
||||
echo 'Hello World' > "$TEST_ROOT/dummy"
|
||||
|
||||
nix-build check.nix -A hashmismatch --no-out-link --check || status=$?
|
||||
[ "$status" = "102" ]
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue