summary refs log tree commit diff
path: root/tests/guix-shell.sh
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2021-12-10 12:26:29 +0100
committerLudovic Courtès <ludo@gnu.org>2021-12-10 15:32:44 +0100
commit71977101218d1fd5d7f5016cbbcb8710be057d49 (patch)
tree1748634f97058e9b754df205ab2eaee0ebc041c9 /tests/guix-shell.sh
parentc879354003df61703c4b6c874650608bf569d77d (diff)
downloadguix-71977101218d1fd5d7f5016cbbcb8710be057d49.tar.gz
shell: When using '-D -f', '-D' has no effect on remaining packages.
Fixes <https://issues.guix.gnu.org/52093>.
Reported by Konrad Hinsen <konrad.hinsen@fastmail.net>.

* guix/scripts/shell.scm (%options): In "--file" handler, add call to
'ensure-ad-hoc'.
* tests/guix-shell.sh: Add test.
Diffstat (limited to 'tests/guix-shell.sh')
-rw-r--r--tests/guix-shell.sh14
1 files changed, 14 insertions, 0 deletions
diff --git a/tests/guix-shell.sh b/tests/guix-shell.sh
index 3bdf625189..d8cae9d614 100644
--- a/tests/guix-shell.sh
+++ b/tests/guix-shell.sh
@@ -73,6 +73,20 @@ echo "Broken manifest." > "$tmpdir/manifest.scm"
 (cd "$tmpdir"; SHELL="$(realpath fake-shell.sh)" guix shell --bootstrap -q)
 rm "$tmpdir/manifest.scm"
 
+# Make sure '-D' affects only the immediately following '-f', and not packages
+# that appear later: <https://issues.guix.gnu.org/52093>.
+cat > "$tmpdir/empty-package.scm" <<EOF
+(use-modules (guix) (guix tests)
+             (guix build-system trivial))
+
+(dummy-package "empty-package"
+  (build-system trivial-build-system))   ;zero inputs
+EOF
+
+guix shell --bootstrap --pure -D -f "$tmpdir/empty-package.scm" \
+     guile-bootstrap -- guile --version
+rm "$tmpdir/empty-package.scm"
+
 if guile -c '(getaddrinfo "www.gnu.org" "80" AI_NUMERICSERV)' 2> /dev/null
 then
     # Compute the build environment for the initial GNU Make.