summary refs log tree commit diff
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
parentc9727aac405123ecf2ffb26745fa255a76c87e40 (diff)
downloadguix-4b23c4664ec67b8c6329c4aa82a331d2e48341cb.tar.gz
gexp: Add tests for 'gexp-outputs'.
* tests/gexp.scm (gexp-outputs): New procedure.
  ("output list", "output list, combined gexps"): New tests.
-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))