X-Git-Url: http://git.hcoop.net/jackhill/guix/guix.git/blobdiff_plain/0734a9a8131525d6da2e7bf802402dc0350eda98..a424ebdefc2d49258787b862afc0686b088065b4:/tests/builders.scm diff --git a/tests/builders.scm b/tests/builders.scm index 1e6b62ee6a..fdcf38ded3 100644 --- a/tests/builders.scm +++ b/tests/builders.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012, 2013 Ludovic Courtès +;;; Copyright © 2012, 2013, 2014, 2015, 2019 Ludovic Courtès ;;; ;;; This file is part of GNU Guix. ;;; @@ -25,8 +25,11 @@ #:use-module (guix utils) #:use-module (guix base32) #:use-module (guix derivations) + #:use-module (gcrypt hash) + #:use-module (guix tests) #:use-module ((guix packages) - #:select (package-derivation package-native-search-paths)) + #:select (package? + package-derivation package-native-search-paths)) #:use-module (gnu packages bootstrap) #:use-module (ice-9 match) #:use-module (srfi srfi-1) @@ -35,70 +38,44 @@ ;; Test the higher-level builders. (define %store - (false-if-exception (open-connection))) + (open-connection-for-tests)) -(when %store - ;; Make sure we build everything by ourselves. - (set-build-options %store #:use-substitutes? #f)) - -(define %bootstrap-inputs - ;; Use the bootstrap inputs so it doesn't take ages to run these tests. - ;; This still involves building Make, Diffutils, and Findutils. - ;; XXX: We're relying on the higher-level `package-derivations' here. - (and %store - (map (match-lambda - ((name package) - (list name (package-derivation %store package)))) - (@@ (gnu packages base) %boot0-inputs)))) - -(define %bootstrap-search-paths - ;; Search path specifications that go with %BOOTSTRAP-INPUTS. - (append-map (match-lambda - ((name package _ ...) - (package-native-search-paths package))) - (@@ (gnu packages base) %boot0-inputs))) - -(define network-reachable? - (false-if-exception (getaddrinfo "www.gnu.org" "80" AI_NUMERICSERV))) +(define url-fetch* + (store-lower url-fetch)) (test-begin "builders") -(unless network-reachable? (test-skip 1)) +(unless (network-reachable?) (test-skip 1)) (test-assert "url-fetch" (let* ((url '("http://ftp.gnu.org/gnu/hello/hello-2.8.tar.gz" "ftp://ftp.gnu.org/gnu/hello/hello-2.8.tar.gz")) (hash (nix-base32-string->bytevector "0wqd8sjmxfskrflaxywc7gqw7sfawrfvdxd9skxawzfgyy0pzdz6")) - (drv-path (url-fetch %store url 'sha256 hash - #:guile %bootstrap-guile)) - (out-path (derivation-path->output-path drv-path))) - (and (build-derivations %store (list drv-path)) + (drv (url-fetch* %store url 'sha256 hash + #:guile %bootstrap-guile)) + (out-path (derivation->output-path drv))) + (and (build-derivations %store (list drv)) (file-exists? out-path) (valid-path? %store out-path)))) -(test-assert "gnu-build-system" - (and (build-system? gnu-build-system) - (eq? gnu-build (build-system-builder gnu-build-system)))) +(test-assert "url-fetch, file" + (let* ((file (search-path %load-path "guix.scm")) + (hash (call-with-input-file file port-sha256)) + (out (url-fetch* %store file 'sha256 hash))) + (and (file-exists? out) + (valid-path? %store out)))) -(unless network-reachable? (test-skip 1)) -(test-assert "gnu-build" - (let* ((url "http://ftp.gnu.org/gnu/hello/hello-2.8.tar.gz") - (hash (nix-base32-string->bytevector - "0wqd8sjmxfskrflaxywc7gqw7sfawrfvdxd9skxawzfgyy0pzdz6")) - (tarball (url-fetch %store url 'sha256 hash - #:guile %bootstrap-guile)) - (build (gnu-build %store "hello-2.8" tarball - %bootstrap-inputs - #:implicit-inputs? #f - #:guile %bootstrap-guile - #:search-paths %bootstrap-search-paths)) - (out (derivation-path->output-path build))) - (and (build-derivations %store (list (pk 'hello-drv build))) - (valid-path? %store out) - (file-exists? (string-append out "/bin/hello"))))) +(test-assert "url-fetch, file URI" + (let* ((file (search-path %load-path "guix.scm")) + (hash (call-with-input-file file port-sha256)) + (out (url-fetch* %store + (string-append "file://" (canonicalize-path file)) + 'sha256 hash))) + (and (file-exists? out) + (valid-path? %store out)))) -(test-end "builders") +(test-assert "gnu-build-system" + (build-system? gnu-build-system)) - -(exit (= (test-runner-fail-count (test-runner-current)) 0)) +(test-end "builders")