diff options
author | Ludovic Courtès <ludo@gnu.org> | 2018-10-19 17:58:00 +0200 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2018-10-19 18:28:57 +0200 |
commit | 19c924af4f3726688ca155a905ebf1cb9acdfca2 (patch) | |
tree | b3118b3977c93b61e9c65a0387daadd223908f1b /tests/guix-pack.sh | |
parent | fbdb7b9526272e1983bec1908d0704428af7c1f2 (diff) | |
download | patches-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/guix-pack.sh')
-rw-r--r-- | tests/guix-pack.sh | 30 |
1 files changed, 19 insertions, 11 deletions
diff --git a/tests/guix-pack.sh b/tests/guix-pack.sh index bf367fa429..cd721a60e9 100644 --- a/tests/guix-pack.sh +++ b/tests/guix-pack.sh @@ -1,5 +1,6 @@ # GNU Guix --- Functional package management for GNU # Copyright © 2018 Chris Marusich <cmmarusich@gmail.com> +# Copyright © 2018 Ludovic Courtès <ludo@gnu.org> # # This file is part of GNU Guix. # @@ -28,26 +29,33 @@ fi guix pack --version -# FIXME: Starting from commit 66e9944e078cbb9e0d618377dd6df6e639640efa, -# '--bootstrap' is mostly ineffective since 'guix pack' produces derivations -# that refer to guile-sqlite3 and libgcrypt. For now we just skip the test. -exit 77 +# Starting from commit 66e9944e078cbb9e0d618377dd6df6e639640efa, 'guix pack' +# produces derivations that refer to guile-sqlite3 and libgcrypt. To make +# that relatively inexpensive, run the test in the user's global store if +# possible, on the grounds that binaries may already be there or can be built +# or downloaded inexpensively. -# Use --no-substitutes because we need to verify we can do this ourselves. -GUIX_BUILD_OPTIONS="--no-substitutes" -export GUIX_BUILD_OPTIONS +NIX_STORE_DIR="`guile -c '(use-modules (guix config))(display %storedir)'`" +localstatedir="`guile -c '(use-modules (guix config))(display %localstatedir)'`" +GUIX_DAEMON_SOCKET="$localstatedir/guix/daemon-socket/socket" +export NIX_STORE_DIR GUIX_DAEMON_SOCKET + +if ! guile -c '(use-modules (guix)) (exit (false-if-exception (open-connection)))' +then + exit 77 +fi # Build a tarball with no compression. -guix pack --compression=none --bootstrap guile-bootstrap +guix pack --compression=none guile-bootstrap # Build a tarball (with compression). Check that '-e' works as well. -out1="`guix pack --bootstrap guile-bootstrap`" -out2="`guix pack --bootstrap -e '(@ (gnu packages bootstrap) %bootstrap-guile)'`" +out1="`guix pack guile-bootstrap`" +out2="`guix pack -e '(@ (gnu packages bootstrap) %bootstrap-guile)'`" test -n "$out1" test "$out1" = "$out2" # Build a tarball with a symlink. -the_pack="`guix pack --bootstrap -S /opt/gnu/bin=bin guile-bootstrap`" +the_pack="`guix pack -S /opt/gnu/bin=bin guile-bootstrap`" # Try to extract it. Note: we cannot test whether /opt/gnu/bin/guile itself # exists because /opt/gnu/bin may be an absolute symlink to a store item that |