aboutsummaryrefslogtreecommitdiff
path: root/tests/functional
diff options
context:
space:
mode:
authorRobert Hensing <robert@roberthensing.nl>2024-03-22 22:41:50 +0100
committerK900 <me@0upti.me>2024-06-24 11:30:32 +0300
commitd86009bd76ae85e56e1d26aab26d38f90ecb6439 (patch)
tree99a2396cc247c9857bf896910a74b4aa2f51321e /tests/functional
parent4c3d93611f2848c56ebc69c85f2b1e18001ed3c7 (diff)
Add build-dir setting, clean up default TMPDIR handling
This is a squash of upstream PRs #10303, #10312 and #10883. fix: Treat empty TMPDIR as unset Fixes an instance of nix: src/libutil/util.cc:139: nix::Path nix::canonPath(PathView, bool): Assertion `path != ""' failed. ... which I've been getting in one of my shells for some reason. I have yet to find out why TMPDIR was empty, but it's no reason for Nix to break. (cherry picked from commit c3fb2aa1f9d1fa756dac38d3588c836c5a5395dc) fix: Treat empty XDG_RUNTIME_DIR as unset See preceding commit. Not observed in the wild, but is sensible and consistent with TMPDIR behavior. (cherry picked from commit b9e7f5aa2df3f0e223f5c44b8089cbf9b81be691) local-derivation-goal.cc: Reuse defaultTempDir() (cherry picked from commit fd31945742710984de22805ee8d97fbd83c3f8eb) fix: remove usage of XDG_RUNTIME_DIR for TMP (cherry picked from commit 1363f51bcb24ab9948b7b5093490a009947f7453) tests/functional: Add count() (cherry picked from commit 6221770c9de4d28137206bdcd1a67eea12e1e499) Remove uncalled for message (cherry picked from commit b1fe388d33530f0157dcf9f461348b61eda13228) Add build-dir setting (cherry picked from commit 8b16cced18925aa612049d08d5e78eccbf0530e4) Change-Id: Ic7b75ff0b6a3b19e50a4ac8ff2d70f15c683c16a
Diffstat (limited to 'tests/functional')
-rw-r--r--tests/functional/check.sh15
-rw-r--r--tests/functional/common/vars-and-functions.sh.in5
2 files changed, 20 insertions, 0 deletions
diff --git a/tests/functional/check.sh b/tests/functional/check.sh
index e13abf747..38883c5d7 100644
--- a/tests/functional/check.sh
+++ b/tests/functional/check.sh
@@ -34,6 +34,21 @@ nix-build check.nix -A failed --argstr checkBuildId $checkBuildId \
[ "$status" = "100" ]
if checkBuildTempDirRemoved $TEST_ROOT/log; then false; fi
+test_custom_build_dir() {
+ local customBuildDir="$TEST_ROOT/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=$?
+ [ "$status" = "100" ]
+ [[ 1 == "$(count "$customBuildDir/nix-build-"*)" ]]
+ local buildDir="$customBuildDir/nix-build-"*
+ 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
diff --git a/tests/functional/common/vars-and-functions.sh.in b/tests/functional/common/vars-and-functions.sh.in
index bfc4fbc44..eda15308d 100644
--- a/tests/functional/common/vars-and-functions.sh.in
+++ b/tests/functional/common/vars-and-functions.sh.in
@@ -274,6 +274,11 @@ grepQuietInverse() {
! grep "$@" > /dev/null
}
+# Return the number of arguments
+count() {
+ echo $#
+}
+
trap onError ERR
fi # COMMON_VARS_AND_FUNCTIONS_SH_SOURCED