summaryrefslogtreecommitdiff
path: root/tests/store.scm
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2014-01-11 17:11:14 +0100
committerLudovic Courtès <ludo@gnu.org>2014-01-24 00:01:49 +0100
commit6bfec3edf52ed6145c3c89fb19d350498dd2b758 (patch)
tree6474526e72c555688af6efd220b015ec4351fa50 /tests/store.scm
parent349fd3b11f320453ad8eeb3031621d0ffcaf078d (diff)
downloadgnu-guix-6bfec3edf52ed6145c3c89fb19d350498dd2b758.tar
gnu-guix-6bfec3edf52ed6145c3c89fb19d350498dd2b758.tar.gz
store: Add 'register-path' procedure.
* guix/store.scm (register-path): New procedure. * tests/store.scm ("register-path"): New test. * guix/config.scm.in (%guix-register-program): New variable. * configure.ac: Compute and substitute 'guix_sbindir'. Compute 'guix_prefix'. * pre-inst-env.in: Define 'GUIX_REGISTER'.
Diffstat (limited to 'tests/store.scm')
-rw-r--r--tests/store.scm22
1 files changed, 21 insertions, 1 deletions
diff --git a/tests/store.scm b/tests/store.scm
index 4bd739e7f6..5ae036c060 100644
--- a/tests/store.scm
+++ b/tests/store.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2012, 2013 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2012, 2013, 2014 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -389,6 +389,26 @@ Deriver: ~a~%"
(pk 'corrupt-imported imported)
#f)))))
+(test-assert "register-path"
+ (let ((file (string-append (%store-prefix) "/" (make-string 32 #\f)
+ "-fake")))
+ (when (valid-path? %store file)
+ (delete-paths %store (list file)))
+ (false-if-exception (delete-file file))
+
+ (let ((ref (add-text-to-store %store "ref-of-fake" (random-text)))
+ (drv (string-append file ".drv")))
+ (call-with-output-file file
+ (cut display "This is a fake store item.\n" <>))
+ (register-path file
+ #:references (list ref)
+ #:deriver drv)
+
+ (and (valid-path? %store file)
+ (equal? (references %store file) (list ref))
+ (null? (valid-derivers %store file))
+ (null? (referrers %store file))))))
+
(test-end "store")