aboutsummaryrefslogtreecommitdiff
path: root/tests/store.scm
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2013-02-27 22:40:35 +0100
committerLudovic Courtès <ludo@gnu.org>2013-02-27 22:40:35 +0100
commitfae31edcec43c93a996a1872c68d1c540af0068f (patch)
treeae2bfb9ba57fb7b1ffc3c4241c11f5f59975829c /tests/store.scm
parent149acc2981d8580d9fd258e6c47a16bacfa67cb7 (diff)
downloadgnu-guix-fae31edcec43c93a996a1872c68d1c540af0068f.tar
gnu-guix-fae31edcec43c93a996a1872c68d1c540af0068f.tar.gz
store: Add queries for references & co.
* guix/store.scm (operation-id)[query-valid-derivers]: New value. (references, referrers, valid-derivers, query-derivation-outputs): New procedures. * tests/store.scm ("references", "derivers"): New tests.
Diffstat (limited to 'tests/store.scm')
-rw-r--r--tests/store.scm26
1 files changed, 26 insertions, 0 deletions
diff --git a/tests/store.scm b/tests/store.scm
index c90fd3fed9..c2de99e160 100644
--- a/tests/store.scm
+++ b/tests/store.scm
@@ -23,6 +23,7 @@
#:use-module (guix base32)
#:use-module (guix packages)
#:use-module (guix derivations)
+ #:use-module (gnu packages)
#:use-module (gnu packages bootstrap)
#:use-module (ice-9 match)
#:use-module (srfi srfi-1)
@@ -79,6 +80,31 @@
(> freed 0)
(not (file-exists? p))))))
+(test-assert "references"
+ (let* ((t1 (add-text-to-store %store "random1"
+ (random-text) '()))
+ (t2 (add-text-to-store %store "random2"
+ (random-text) (list t1))))
+ (and (equal? (list t1) (references %store t2))
+ (equal? (list t2) (referrers %store t1))
+ (null? (references %store t1))
+ (null? (referrers %store t2)))))
+
+(test-assert "derivers"
+ (let* ((b (add-text-to-store %store "build" "echo $foo > $out" '()))
+ (s (add-to-store %store "bash" #t "sha256"
+ (search-bootstrap-binary "bash"
+ (%current-system))))
+ (d (derivation %store "the-thing" (%current-system)
+ s `("-e" ,b) `(("foo" . ,(random-text)))
+ `((,b) (,s))))
+ (o (derivation-path->output-path d)))
+ (and (build-derivations %store (list d))
+ (equal? (query-derivation-outputs %store d)
+ (list o))
+ (equal? (valid-derivers %store o)
+ (list d)))))
+
(test-assert "no substitutes"
(let* ((s (open-connection))
(d1 (package-derivation s %bootstrap-guile (%current-system)))