summary refs log tree commit diff
path: root/tests/gexp.scm
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2024-04-06 23:03:26 +0200
committerLudovic Courtès <ludo@gnu.org>2024-04-08 00:05:48 +0200
commitb30b838d5055e36be19d030db28838fec4474d98 (patch)
tree9348f47514b74687ea06e6263d62183c20259128 /tests/gexp.scm
parenta7f15c9ecffc1762f5886fb5a2a14490e2994c8c (diff)
downloadguix-b30b838d5055e36be19d030db28838fec4474d98.tar.gz
gexp: Add #:guile parameter to ‘gexp->file’ and ‘scheme-file’.
This brings ‘gexp->file’ in line with its documentation and mirrors
what’s done for ‘gexp->script’ and ‘program-file’.

Fixes <https://issues.guix.gnu.org/69401>.

* guix/gexp.scm (gexp->file): Add #:guile, as was already documented.
(<scheme-file>)[guile]: New field.
(scheme-file): Add #:guile.
(scheme-file-compiler): Honor ‘guile’ field.
* tests/gexp.scm ("gexp->file")
("gexp->file + file-append", "gexp->file + #:splice?")
("gexp->file, cross-compilation")
("gexp->file, cross-compilation with default target")
Add #:guile to ‘gexp->file’ calls.
("gexp-modules deletes duplicates")
("gexp->derivation & with-imported-module & computed module")
("gexp->derivation & with-extensions", "scheme-file"): Likewise for
‘scheme-file’ calls.

Change-Id: I47536063d5e411e561ec321e535267e92dd06044

Reported-by: Efraim Flashner <efraim@flashner.co.il>
Change-Id: I58d653c7fbe65c665bafcbd332ac9b264ddeab64
Diffstat (limited to 'tests/gexp.scm')
-rw-r--r--tests/gexp.scm31
1 files changed, 21 insertions, 10 deletions
diff --git a/tests/gexp.scm b/tests/gexp.scm
index 001786c13c..905009caee 100644
--- a/tests/gexp.scm
+++ b/tests/gexp.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2014-2023 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2014-2024 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2021-2022 Maxime Devos <maximedevos@telenet.be>
 ;;;
 ;;; This file is part of GNU Guix.
@@ -661,7 +661,8 @@
   (mlet* %store-monad ((exp -> (gexp (display (ungexp %bootstrap-guile))))
                        (guile  (package-file %bootstrap-guile))
                        (sexp   (gexp->sexp exp (%current-system) #f))
-                       (drv    (gexp->file "foo" exp))
+                       (drv    (gexp->file "foo" exp
+                                           #:guile %bootstrap-guile))
                        (out -> (derivation->output-path drv))
                        (done   (built-derivations (list drv)))
                        (refs   (references* out)))
@@ -672,7 +673,8 @@
   (mlet* %store-monad ((exp -> #~#$(file-append %bootstrap-guile
                                                 "/bin/guile"))
                        (guile  (package-file %bootstrap-guile))
-                       (drv    (gexp->file "foo" exp))
+                       (drv    (gexp->file "foo" exp
+                                           #:guile %bootstrap-guile))
                        (out -> (derivation->output-path drv))
                        (done   (built-derivations (list drv)))
                        (refs   (references* out)))
@@ -685,7 +687,9 @@
                                 #~(define foo 'bar)
                                 #~(define guile #$%bootstrap-guile)))
                        (guile  (package-file %bootstrap-guile))
-                       (drv    (gexp->file "splice" exp #:splice? #t))
+                       (drv    (gexp->file "splice" exp
+                                           #:splice? #t
+                                           #:guile %bootstrap-guile))
                        (out -> (derivation->output-path drv))
                        (done   (built-derivations (list drv)))
                        (refs   (references* out)))
@@ -943,7 +947,8 @@
   (let ((make-file (lambda ()
                      ;; Use 'eval' to make sure we get an object that's not
                      ;; 'eq?' nor 'equal?' due to the closures it embeds.
-                     (eval '(scheme-file "bar.scm" #~(define-module (bar)))
+                     (eval '(scheme-file "bar.scm" #~(define-module (bar))
+                                         #:guile %bootstrap-guile)
                            (current-module)))))
     (define result
       ((@@ (guix gexp) gexp-modules)
@@ -1035,7 +1040,8 @@ importing.* \\(guix config\\) from the host"
                                          #:export (the-answer))
 
                                        (define the-answer 42))
-                               #:splice? #t))
+                               #:splice? #t
+                               #:guile %bootstrap-guile))
        (build -> (with-imported-modules `(((foo bar) => ,module)
                                           (guix build utils))
                    #~(begin
@@ -1080,7 +1086,8 @@ importing.* \\(guix config\\) from the host"
 
                                       (define (multiply x)
                                         (* the-answer x)))
-                               #:splice? #t))
+                               #:splice? #t
+                               #:guile %bootstrap-guile))
        (build -> (with-extensions (list extension)
                    (with-imported-modules `((guix build utils)
                                             ((foo) => ,module))
@@ -1432,7 +1439,8 @@ importing.* \\(guix config\\) from the host"
 
 (test-assertm "scheme-file"
   (let* ((text   (plain-file "foo" "Hello, world!"))
-         (scheme (scheme-file "bar" #~(list "foo" #$text))))
+         (scheme (scheme-file "bar" #~(list "foo" #$text)
+                              #:guile %bootstrap-guile)))
     (mlet* %store-monad ((drv  (lower-object scheme))
                          (text (lower-object text))
                          (out -> (derivation->output-path drv)))
@@ -1719,7 +1727,9 @@ importing.* \\(guix config\\) from the host"
 (test-assertm "gexp->file, cross-compilation"
   (mlet* %store-monad ((target -> "aarch64-linux-gnu")
                        (exp    -> (gexp (list (ungexp coreutils))))
-                       (xdrv      (gexp->file "foo" exp #:target target))
+                       (xdrv      (gexp->file "foo" exp
+                                              #:target target
+                                              #:guile %bootstrap-guile))
                        (refs      (references*
                                    (derivation-file-name xdrv)))
                        (xcu       (package->cross-derivation coreutils
@@ -1732,7 +1742,8 @@ importing.* \\(guix config\\) from the host"
   (mlet* %store-monad ((target -> "aarch64-linux-gnu")
                        (_         (set-current-target target))
                        (exp    -> (gexp (list (ungexp coreutils))))
-                       (xdrv      (gexp->file "foo" exp))
+                       (xdrv      (gexp->file "foo" exp
+                                              #:guile %bootstrap-guile))
                        (refs      (references*
                                    (derivation-file-name xdrv)))
                        (xcu       (package->cross-derivation coreutils