summary refs log tree commit diff
path: root/tests
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2013-06-13 22:03:42 +0200
committerLudovic Courtès <ludo@gnu.org>2013-06-13 22:03:42 +0200
commit3f1e69395cbfaad80710bdfbef433c26aa216271 (patch)
tree4937f847fc6c22f5595f6d75d9e7b1f15cbf8a7c /tests
parentd4c748607995bec8a13f058bdeba89e41ff6539c (diff)
downloadguix-3f1e69395cbfaad80710bdfbef433c26aa216271.tar.gz
store: Add `requisites'.
* guix/store.scm (fold-path, requisites): New procedures.
* tests/store.scm ("requisites"): New test.
Diffstat (limited to 'tests')
-rw-r--r--tests/store.scm18
1 files changed, 18 insertions, 0 deletions
diff --git a/tests/store.scm b/tests/store.scm
index c0126ce335..b42bc97017 100644
--- a/tests/store.scm
+++ b/tests/store.scm
@@ -106,6 +106,24 @@
          (null? (references %store t1))
          (null? (referrers %store t2)))))
 
+(test-assert "requisites"
+  (let* ((t1 (add-text-to-store %store "random1"
+                                (random-text) '()))
+         (t2 (add-text-to-store %store "random2"
+                                (random-text) (list t1)))
+         (t3 (add-text-to-store %store "random3"
+                                (random-text) (list t2)))
+         (t4 (add-text-to-store %store "random4"
+                                (random-text) (list t1 t3))))
+    (define (same? x y)
+      (and (= (length x) (length y))
+           (lset= equal? x y)))
+
+    (and (same? (requisites %store t1) (list t1))
+         (same? (requisites %store t2) (list t1 t2))
+         (same? (requisites %store t3) (list t1 t2 t3))
+         (same? (requisites %store t4) (list t1 t2 t3 t4)))))
+
 (test-assert "derivers"
   (let* ((b (add-text-to-store %store "build" "echo $foo > $out" '()))
          (s (add-to-store %store "bash" #t "sha256"