summaryrefslogtreecommitdiff
path: root/guix/tests.scm
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 /guix/tests.scm
parent11b4a8716c65e8fe21e5975e764b3e14dbd8dcc4 (diff)
downloadpatches-03d76577b96ba81c9921eb3a297d42db8644280b.tar
patches-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 'guix/tests.scm')
-rw-r--r--guix/tests.scm33
1 files changed, 32 insertions, 1 deletions
diff --git a/guix/tests.scm b/guix/tests.scm
index 66d60e964e..9df6353798 100644
--- a/guix/tests.scm
+++ b/guix/tests.scm
@@ -23,8 +23,10 @@
#:use-module (guix packages)
#:use-module (guix base32)
#:use-module (guix serialization)
+ #:use-module ((guix utils) #:select (substitute-keyword-arguments))
#:use-module (gcrypt hash)
#:use-module (guix build-system gnu)
+ #:use-module (gnu packages base)
#:use-module (gnu packages bootstrap)
#:use-module (srfi srfi-34)
#:use-module (srfi srfi-64)
@@ -50,7 +52,9 @@
with-derivation-narinfo
with-derivation-substitute
dummy-package
- dummy-origin))
+ dummy-origin
+
+ gnu-make-for-tests))
;;; Commentary:
;;;
@@ -364,6 +368,33 @@ default values, and with EXTRA-FIELDS set as specified."
(sha256 (base32 (make-string 52 #\x))))))
(origin (inherit o) extra-fields ...)))
+(define gnu-make-for-tests
+ ;; This is a variant of 'gnu-make-boot0' that can be built with minimal
+ ;; resources.
+ (package-with-bootstrap-guile
+ (package
+ (inherit gnu-make)
+ (name "make-test-boot0")
+ (arguments
+ `(#:guile ,%bootstrap-guile
+ #:implicit-inputs? #f
+ #:tests? #f ;cannot run "make check"
+ ,@(substitute-keyword-arguments (package-arguments gnu-make)
+ ((#:phases phases)
+ `(modify-phases ,phases
+ (replace 'build
+ (lambda _
+ (invoke "./build.sh")
+ #t))
+ (replace 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (bin (string-append out "/bin")))
+ (install-file "make" bin)
+ #t))))))))
+ (native-inputs '()) ;no need for 'pkg-config'
+ (inputs %bootstrap-inputs-for-tests))))
+
;; Local Variables:
;; eval: (put 'call-with-derivation-narinfo 'scheme-indent-function 1)
;; eval: (put 'call-with-derivation-substitute 'scheme-indent-function 2)