aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2019-06-14 21:26:22 +0200
committerLudovic Courtès <ludo@gnu.org>2019-06-14 21:57:39 +0200
commit03d76577b96ba81c9921eb3a297d42db8644280b (patch)
tree8814bcef3f082a98f853ca7bacf02a552a76a1d2 /tests
parent11b4a8716c65e8fe21e5975e764b3e14dbd8dcc4 (diff)
downloadguix-03d76577b96ba81c9921eb3a297d42db8644280b.tar
guix-03d76577b96ba81c9921eb3a297d42db8644280b.tar.gz
tests: Make builds less expensive.
The switch to the reduced bootstrap broke build time assumptions made by tests, notably the assumption that GNU-MAKE-BOOT0 was cheap to build. This commit adjusts this to make these tests cheaper. * gnu/packages/bootstrap.scm (%bootstrap-inputs-for-tests): New variable. * guix/tests.scm (gnu-make-for-tests): New variable. * tests/guix-environment.sh: Use GNU-MAKE-FOR-TESTS instead of GNU-MAKE-BOOT0. Remove test with FINDUTILS-BOOT0. * tests/guix-package-net.sh (boot_make): Use GNU-MAKE-FOR-TESTS. * tests/packages.scm ("GNU Make, bootstrap"): Likewise. * tests/profiles.scm ("profile-derivation relative symlinks, two entries"): Likewise. * tests/union.scm (%bootstrap-inputs): Remove. ("union-build"): Use %BOOTSTRAP-INPUTS-FOR-TESTS instead of %BOOTSTRAP-INPUTS.
Diffstat (limited to 'tests')
-rw-r--r--tests/guix-environment.sh27
-rw-r--r--tests/guix-package-net.sh2
-rw-r--r--tests/packages.scm6
-rw-r--r--tests/profiles.scm7
-rw-r--r--tests/union.scm9
5 files changed, 16 insertions, 35 deletions
diff --git a/tests/guix-environment.sh b/tests/guix-environment.sh
index a670db36be..fb1c1a022d 100644
--- a/tests/guix-environment.sh
+++ b/tests/guix-environment.sh
@@ -156,7 +156,7 @@ if guile -c '(getaddrinfo "www.gnu.org" "80" AI_NUMERICSERV)' 2> /dev/null
then
# Compute the build environment for the initial GNU Make.
guix environment --bootstrap --no-substitutes --search-paths --pure \
- -e '(@@ (gnu packages commencement) gnu-make-boot0)' > "$tmpdir/a"
+ -e '(@ (guix tests) gnu-make-for-tests)' > "$tmpdir/a"
# Make sure bootstrap binaries are in the profile.
profile=`grep "^export PATH" "$tmpdir/a" | sed -r 's|^.*="(.*)/bin"|\1|'`
@@ -177,30 +177,15 @@ then
# Make sure that the shell spawned with '--exec' sees the same environment
# as returned by '--search-paths'.
guix environment --bootstrap --no-substitutes --pure \
- -e '(@@ (gnu packages commencement) gnu-make-boot0)' \
+ -e '(@ (guix tests) gnu-make-for-tests)' \
-- /bin/sh -c 'echo $PATH $CPATH $LIBRARY_PATH' > "$tmpdir/b"
( . "$tmpdir/a" ; echo $PATH $CPATH $LIBRARY_PATH ) > "$tmpdir/c"
cmp "$tmpdir/b" "$tmpdir/c"
rm "$tmpdir"/*
- # Compute the build environment for the initial GNU Findutils.
- guix environment --bootstrap --no-substitutes --search-paths --pure \
- -e '(@@ (gnu packages commencement) findutils-boot0)' > "$tmpdir/a"
- profile=`grep "^export PATH" "$tmpdir/a" | sed -r 's|^.*="(.*)/bin"|\1|'`
-
- # Make sure the bootstrap binaries are all listed where they belong.
- grep -E "^export PATH=\"$profile/bin\"" "$tmpdir/a"
- grep -E "^export CPATH=\"$profile/include\"" "$tmpdir/a"
- grep -E "^export LIBRARY_PATH=\"$profile/lib\"" "$tmpdir/a"
- for dep in bootstrap-binaries-0 gcc-bootstrap-0 glibc-bootstrap-0 \
- make-boot0
- do
- guix gc --references "$profile" | grep "$dep"
- done
-
# The following test assumes 'make-boot0' has a "debug" output.
- make_boot0_debug="`guix build -e '(@@ (gnu packages commencement) gnu-make-boot0)' | grep -e -debug`"
+ make_boot0_debug="`guix build -e '(@ (guix tests) gnu-make-for-tests)' | grep -e -debug`"
test "x$make_boot0_debug" != "x"
# Make sure the "debug" output is not listed.
@@ -210,7 +195,7 @@ then
# Compute the build environment for the initial GNU Make, but add in the
# bootstrap Guile as an ad-hoc addition.
guix environment --bootstrap --no-substitutes --search-paths --pure \
- -e '(@@ (gnu packages commencement) gnu-make-boot0)' \
+ -e '(@ (guix tests) gnu-make-for-tests)' \
--ad-hoc guile-bootstrap > "$tmpdir/a"
profile=`grep "^export PATH" "$tmpdir/a" | sed -r 's|^.*="(.*)/bin"|\1|'`
@@ -227,14 +212,14 @@ then
# Make sure a package list with plain package objects and package+output
# tuples can be used with -e.
expr_list_test_code="
-(list (@@ (gnu packages commencement) gnu-make-boot0)
+(list (@ (guix tests) gnu-make-for-tests)
(list (@ (gnu packages bootstrap) %bootstrap-guile) \"out\"))"
guix environment --bootstrap --ad-hoc --no-substitutes --search-paths \
--pure -e "$expr_list_test_code" > "$tmpdir/a"
profile=`grep "^export PATH" "$tmpdir/a" | sed -r 's|^.*="(.*)/bin"|\1|'`
- for dep in make-boot0 guile-bootstrap
+ for dep in make-test-boot0 guile-bootstrap
do
guix gc --references "$profile" | grep "$dep"
done
diff --git a/tests/guix-package-net.sh b/tests/guix-package-net.sh
index 82c346dd4c..48a94865e1 100644
--- a/tests/guix-package-net.sh
+++ b/tests/guix-package-net.sh
@@ -57,7 +57,7 @@ test -L "$profile" && test -L "$profile-1-link"
! test -f "$profile-2-link"
test -f "$profile/bin/guile"
-boot_make="(@@ (gnu packages commencement) gnu-make-boot0)"
+boot_make="(@ (guix tests) gnu-make-for-tests)"
boot_make_drv="`guix build -e "$boot_make" | grep -v -e -debug`"
guix package --bootstrap -p "$profile" -i "$boot_make_drv"
test -L "$profile-2-link"
diff --git a/tests/packages.scm b/tests/packages.scm
index af1f76e36d..bd100bea5b 100644
--- a/tests/packages.scm
+++ b/tests/packages.scm
@@ -935,9 +935,9 @@
(when (or (not (network-reachable?)) (shebang-too-long?))
(test-skip 1))
(test-assert "GNU Make, bootstrap"
- ;; GNU Make is the first program built during bootstrap; we choose it
- ;; here so that the test doesn't last for too long.
- (let ((gnu-make (@@ (gnu packages commencement) gnu-make-boot0)))
+ ;; GNU-MAKE-FOR-TESTS can be built cheaply; we choose it here so that the
+ ;; test doesn't last for too long.
+ (let ((gnu-make gnu-make-for-tests))
(and (package? gnu-make)
(or (location? (package-location gnu-make))
(not (package-location gnu-make)))
diff --git a/tests/profiles.scm b/tests/profiles.scm
index eef93e24cf..a4e28672b5 100644
--- a/tests/profiles.scm
+++ b/tests/profiles.scm
@@ -239,11 +239,10 @@
(unless (network-reachable?) (test-skip 1))
(test-assertm "profile-derivation relative symlinks, two entries"
(mlet* %store-monad
- ((gnu-make-boot0 -> (@@ (gnu packages commencement) gnu-make-boot0))
- (manifest -> (packages->manifest
- (list %bootstrap-guile gnu-make-boot0)))
+ ((manifest -> (packages->manifest
+ (list %bootstrap-guile gnu-make-for-tests)))
(guile (package->derivation %bootstrap-guile))
- (make (package->derivation gnu-make-boot0))
+ (make (package->derivation gnu-make-for-tests))
(drv (profile-derivation manifest
#:relative-symlinks? #t
#:hooks '()
diff --git a/tests/union.scm b/tests/union.scm
index 091895ff8e..a8387edf42 100644
--- a/tests/union.scm
+++ b/tests/union.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2012, 2013, 2014, 2015, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2012, 2013, 2014, 2015, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2018 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
;;;
;;; This file is part of GNU Guix.
@@ -32,9 +32,6 @@
#:use-module (rnrs io ports)
#:use-module (ice-9 match))
-(define %bootstrap-inputs
- (@@ (gnu packages commencement) %bootstrap-inputs+toolchain))
-
;; Exercise the (guix build union) module.
(define %store
@@ -99,8 +96,8 @@
;; Purposefully leave duplicate entries.
(filter (compose package? cadr)
- (append (%bootstrap-inputs)
- (take (%bootstrap-inputs) 3)))))
+ (append %bootstrap-inputs-for-tests
+ (take %bootstrap-inputs-for-tests 3)))))
(builder `(begin
(use-modules (guix build union))
(union-build (assoc-ref %outputs "out")