From 14da91e2f0de4c8a7e1f3b706cc5d961030ff190 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sat, 6 Oct 2012 01:24:46 +0200 Subject: tests: Use bootstrap and Nixpkgs inputs to be less costly. * tests/builders.scm (%bootstrap-inputs, %bootstrap-guile): New variables. ("gnu-build"): Use them, by setting `#:implicit-inputs? #f' and `#:guile'. * tests/packages.scm (%bootstrap-inputs, %bootstrap-guile): New variables. ("trivial"): Pass `#:guile %bootstrap-guile'. ("GNU Hello"): Use `package-with-explicit-inputs' to use %BOOTSTRAP-GUILE and %BOOTSTRAP-INPUTS. --- tests/packages.scm | 31 +++++++++++++++++++++++-------- 1 file changed, 23 insertions(+), 8 deletions(-) (limited to 'tests/packages.scm') diff --git a/tests/packages.scm b/tests/packages.scm index 20f586e449..1319bf8634 100644 --- a/tests/packages.scm +++ b/tests/packages.scm @@ -35,6 +35,18 @@ (define %store (false-if-exception (open-connection))) +(define %bootstrap-inputs + ;; Derivations taken from Nixpkgs, so that the initial tests don't + ;; take forever. + (and (file-exists? (%nixpkgs-directory)) + `(("make" ,(nixpkgs-derivation "gnumake")) + ("diffutils" ,(nixpkgs-derivation "diffutils")) + ,@(@@ (distro packages base) %bootstrap-inputs)))) + +(define %bootstrap-guile + (@@ (distro packages base) %bootstrap-guile)) + + (test-begin "packages") (define-syntax-rule (dummy-package name* extra-fields ...) @@ -70,7 +82,8 @@ (build-system trivial-build-system) (source #f) (arguments - '(#:builder + `(#:guile ,%bootstrap-guile + #:builder (begin (mkdir %output) (call-with-output-file (string-append %output "/test") @@ -83,13 +96,15 @@ (call-with-input-file (string-append p "/test") read)))))) (test-assert "GNU Hello" - (and (package? hello) - (or (location? (package-location hello)) - (not (package-location hello))) - (let* ((drv (package-derivation %store hello)) - (out (derivation-path->output-path drv))) - (and (build-derivations %store (list drv)) - (file-exists? (string-append out "/bin/hello")))))) + (let ((hello (package-with-explicit-inputs hello %bootstrap-inputs + #:guile %bootstrap-guile))) + (and (package? hello) + (or (location? (package-location hello)) + (not (package-location hello))) + (let* ((drv (package-derivation %store hello)) + (out (derivation-path->output-path drv))) + (and (build-derivations %store (list drv)) + (file-exists? (string-append out "/bin/hello"))))))) (test-assert "find-packages-by-name" (match (find-packages-by-name "hello") -- cgit v1.2.3