aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2020-05-25 16:06:03 +0200
committerLudovic Courtès <ludo@gnu.org>2020-05-25 23:00:30 +0200
commitabf43d4511566e97f09049aa8b29453a2ed5ed16 (patch)
tree8d53e34d2f04d3ec6da2a11e8a97bcbc922e12fa /tests
parente033700f17660ff936936cf89cc557b95d12bb13 (diff)
downloadguix-abf43d4511566e97f09049aa8b29453a2ed5ed16.tar
guix-abf43d4511566e97f09049aa8b29453a2ed5ed16.tar.gz
gexp: Fix expansion for (file-append (local-file ...) ...).
Fixes <https://bugs.gnu.org/41527>. Regression introduced in d03001a31a6d460b712825640dba11e3f1a53a14. * guix/gexp.scm (lower+expand-object): When LOWERED is not a struct and EXPAND is true, call EXPAND. * tests/gexp.scm ("file-append, raw store item"): New test.
Diffstat (limited to 'tests')
-rw-r--r--tests/gexp.scm14
1 files changed, 14 insertions, 0 deletions
diff --git a/tests/gexp.scm b/tests/gexp.scm
index 20ef8d2648..1beeb67c21 100644
--- a/tests/gexp.scm
+++ b/tests/gexp.scm
@@ -285,6 +285,20 @@
(((thing "out"))
(eq? thing file))))))
+(test-assert "file-append, raw store item"
+ (let* ((obj (plain-file "example.txt" "Hello!"))
+ (a (file-append obj "/a"))
+ (b (file-append a "/b"))
+ (c (file-append b "/c"))
+ (exp #~(list #$c))
+ (item (run-with-store %store (lower-object obj)))
+ (lexp (run-with-store %store (lower-gexp exp))))
+ (and (equal? (lowered-gexp-sexp lexp)
+ `(list ,(string-append item "/a/b/c")))
+ (equal? (lowered-gexp-sources lexp)
+ (list item))
+ (null? (lowered-gexp-inputs lexp)))))
+
(test-assertm "with-parameters for %current-system"
(mlet* %store-monad ((system -> (match (%current-system)
("aarch64-linux" "x86_64-linux")