gnu: linux-libre@4.14: Update to 4.14.198.
[jackhill/guix/guix.git] / tests / builders.scm
index 54cdeb6..fdcf38d 100644 (file)
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2012, 2013, 2014 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2012, 2013, 2014, 2015, 2019 Ludovic Courtès <ludo@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
   #: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)
 (define %store
   (open-connection-for-tests))
 
-(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))
 
 \f
 (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      (url-fetch %store url 'sha256 hash
-                              #:guile %bootstrap-guile))
+         (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->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))
 
-\f
-(exit (= (test-runner-fail-count (test-runner-current)) 0))
+(test-end "builders")