From 03d76577b96ba81c9921eb3a297d42db8644280b Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Fri, 14 Jun 2019 21:26:22 +0200 Subject: 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. --- guix/tests.scm | 33 ++++++++++++++++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-) (limited to 'guix/tests.scm') 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 @@ (define-module (guix tests) #: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 @@ (define-module (guix tests) with-derivation-narinfo with-derivation-substitute dummy-package - dummy-origin)) + dummy-origin + + gnu-make-for-tests)) ;;; Commentary: ;;; @@ -364,6 +368,33 @@ (define-syntax-rule (dummy-origin extra-fields ...) (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) -- cgit v1.2.3