aboutsummaryrefslogtreecommitdiff
path: root/tests/gexp.scm
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2015-02-27 22:01:54 +0100
committerLudovic Courtès <ludo@gnu.org>2015-02-27 22:03:20 +0100
commit4b23c4664ec67b8c6329c4aa82a331d2e48341cb (patch)
tree80376f105c135eac65a04a0b4b3afeb3fd0cfa9b /tests/gexp.scm
parentc9727aac405123ecf2ffb26745fa255a76c87e40 (diff)
downloadguix-4b23c4664ec67b8c6329c4aa82a331d2e48341cb.tar
guix-4b23c4664ec67b8c6329c4aa82a331d2e48341cb.tar.gz
gexp: Add tests for 'gexp-outputs'.
* tests/gexp.scm (gexp-outputs): New procedure. ("output list", "output list, combined gexps"): New tests.
Diffstat (limited to 'tests/gexp.scm')
-rw-r--r--tests/gexp.scm16
1 files changed, 16 insertions, 0 deletions
diff --git a/tests/gexp.scm b/tests/gexp.scm
index 0b189b570b..a6fb550540 100644
--- a/tests/gexp.scm
+++ b/tests/gexp.scm
@@ -42,6 +42,7 @@
;; For white-box testing.
(define gexp-inputs (@@ (guix gexp) gexp-inputs))
(define gexp-native-inputs (@@ (guix gexp) gexp-native-inputs))
+(define gexp-outputs (@@ (guix gexp) gexp-outputs))
(define gexp->sexp (@@ (guix gexp) gexp->sexp))
(define* (gexp->sexp* exp #:optional target)
@@ -214,6 +215,21 @@
(equal? (gexp->sexp* exp) ;native
(gexp->sexp* exp "mips64el-linux")))))
+(test-equal "output list"
+ 2
+ (let ((exp (gexp (begin (mkdir (ungexp output))
+ (mkdir (ungexp output "bar"))))))
+ (length (gexp-outputs exp)))) ;XXX: <output-ref> is private
+
+(test-assert "output list, combined gexps"
+ (let* ((exp0 (gexp (mkdir (ungexp output))))
+ (exp1 (gexp (mkdir (ungexp output "foo"))))
+ (exp2 (gexp (begin (display "hi!") (ungexp exp0) (ungexp exp1)))))
+ (and (lset= equal?
+ (append (gexp-outputs exp0) (gexp-outputs exp1))
+ (gexp-outputs exp2))
+ (= 2 (length (gexp-outputs exp2))))))
+
(test-assertm "gexp->file"
(mlet* %store-monad ((exp -> (gexp (display (ungexp %bootstrap-guile))))
(guile (package-file %bootstrap-guile))