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/builders.scm | 18 +++++++++++++++++- tests/packages.scm | 31 +++++++++++++++++++++++-------- 2 files changed, 40 insertions(+), 9 deletions(-) diff --git a/tests/builders.scm b/tests/builders.scm index 762944ba73..629c88c1e5 100644 --- a/tests/builders.scm +++ b/tests/builders.scm @@ -32,6 +32,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 "builders") (test-assert "http-fetch" @@ -48,13 +60,17 @@ (and (build-system? gnu-build-system) (eq? gnu-build (build-system-builder gnu-build-system)))) +(test-skip (if (file-exists? (%nixpkgs-directory)) 1 0)) + (test-assert "gnu-build" (let* ((url "http://ftp.gnu.org/gnu/hello/hello-2.8.tar.gz") (hash (nix-base32-string->bytevector "0wqd8sjmxfskrflaxywc7gqw7sfawrfvdxd9skxawzfgyy0pzdz6")) (tarball (http-fetch %store url 'sha256 hash)) (build (gnu-build %store "hello-2.8" tarball - `(("gawk" ,(nixpkgs-derivation "gawk"))))) + %bootstrap-inputs + #:implicit-inputs? #f + #:guile %bootstrap-guile)) (out (derivation-path->output-path build))) (and (build-derivations %store (list (pk 'hello-drv build))) (valid-path? %store out) 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