aboutsummaryrefslogtreecommitdiff
path: root/tests/pack.scm
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2018-10-19 17:58:00 +0200
committerLudovic Courtès <ludo@gnu.org>2018-10-19 18:28:57 +0200
commit19c924af4f3726688ca155a905ebf1cb9acdfca2 (patch)
treeb3118b3977c93b61e9c65a0387daadd223908f1b /tests/pack.scm
parentfbdb7b9526272e1983bec1908d0704428af7c1f2 (diff)
downloadpatches-19c924af4f3726688ca155a905ebf1cb9acdfca2.tar
patches-19c924af4f3726688ca155a905ebf1cb9acdfca2.tar.gz
tests: Run 'guix pack' tests using the external store.
Fixes <https://bugs.gnu.org/32184>. * guix/tests.scm (call-with-external-store): New procedure. (with-external-store): New macro. * tests/pack.scm (%store): Remove. (test-assertm): Add 'store' parameter. ("self-contained-tarball"): Wrap in 'with-external-store'. * tests/guix-pack.sh: Connect to the external store, if possible, by setting NIX_STORE_DIR and GUIX_DAEMON_SOCKET. Remove most uses of '--bootstrap'.
Diffstat (limited to 'tests/pack.scm')
-rw-r--r--tests/pack.scm75
1 files changed, 39 insertions, 36 deletions
diff --git a/tests/pack.scm b/tests/pack.scm
index c57c6848ff..7f867894c2 100644
--- a/tests/pack.scm
+++ b/tests/pack.scm
@@ -29,15 +29,12 @@
#:use-module (gnu packages bootstrap)
#:use-module (srfi srfi-64))
-(define %store
- (open-connection-for-tests))
-
;; Globally disable grafts because they can trigger early builds.
(%graft? #f)
-(define-syntax-rule (test-assertm name exp)
+(define-syntax-rule (test-assertm name store exp)
(test-assert name
- (run-with-store %store exp
+ (run-with-store store exp
#:guile-for-build (%guile-for-build))))
(define %gzip-compressor
@@ -51,37 +48,43 @@
(test-begin "pack")
-;; FIXME: The following test would rebuild the world (and likely fail) as a
-;; consequence of commit c45477d2a1a651485feede20fe0f3d15aec48b39 (and related
-;; changes) that made guile-sqlite3 a dependency of the derivation.
-;; See <https://bugs.gnu.org/32184>.
-(test-skip 1)
+;; The following test needs guile-sqlite3, libgcrypt, etc. as a consequence of
+;; commit c45477d2a1a651485feede20fe0f3d15aec48b39 and related changes. Thus,
+;; run it on the user's store, if it's available, on the grounds that these
+;; dependencies may be already there, or we can get substitutes or build them
+;; quite inexpensively; see <https://bugs.gnu.org/32184>.
-(test-assertm "self-contained-tarball"
- (mlet* %store-monad
- ((profile (profile-derivation (packages->manifest
- (list %bootstrap-guile))
- #:hooks '()
- #:locales? #f))
- (tarball (self-contained-tarball "pack" profile
- #:symlinks '(("/bin/Guile"
- -> "bin/guile"))
- #:compressor %gzip-compressor
- #:archiver %tar-bootstrap))
- (check (gexp->derivation
- "check-tarball"
- #~(let ((bin (string-append "." #$profile "/bin")))
- (setenv "PATH"
- (string-append #$%tar-bootstrap "/bin"))
- (system* "tar" "xvf" #$tarball)
- (mkdir #$output)
- (exit
- (and (file-exists? (string-append bin "/guile"))
- (string=? (string-append #$%bootstrap-guile "/bin")
- (readlink bin))
- (string=? (string-append ".." #$profile
- "/bin/guile")
- (readlink "bin/Guile"))))))))
- (built-derivations (list check))))
+(with-external-store store
+ (unless store (tests-skip 1))
+ (test-assertm "self-contained-tarball" store
+ (mlet* %store-monad
+ ((profile (profile-derivation (packages->manifest
+ (list %bootstrap-guile))
+ #:hooks '()
+ #:locales? #f))
+ (tarball (self-contained-tarball "pack" profile
+ #:symlinks '(("/bin/Guile"
+ -> "bin/guile"))
+ #:compressor %gzip-compressor
+ #:archiver %tar-bootstrap))
+ (check (gexp->derivation
+ "check-tarball"
+ #~(let ((bin (string-append "." #$profile "/bin")))
+ (setenv "PATH"
+ (string-append #$%tar-bootstrap "/bin"))
+ (system* "tar" "xvf" #$tarball)
+ (mkdir #$output)
+ (exit
+ (and (file-exists? (string-append bin "/guile"))
+ (string=? (string-append #$%bootstrap-guile "/bin")
+ (readlink bin))
+ (string=? (string-append ".." #$profile
+ "/bin/guile")
+ (readlink "bin/Guile"))))))))
+ (built-derivations (list check)))))
(test-end)
+
+;; Local Variables:
+;; eval: (put 'test-assertm 'scheme-indent-function 2)
+;; End: