summary refs log tree commit diff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2012-08-14 18:36:01 +0200
committerLudovic Courtès <ludo@gnu.org>2012-08-14 18:42:46 +0200
commitb86b00567c82e0e16a3cfa65b3f87d95f31506bb (patch)
tree941eb32405715acea95b3bd9072c6243dd416118
parented795c060858f3949bf5ad321008626f5e7f195a (diff)
downloadguix-b86b00567c82e0e16a3cfa65b3f87d95f31506bb.tar.gz
build: Pass $(NIX_INSTANTIATE) to the build and test environments.
* Makefile.am (.scm.go): Define $NIX_INSTANTIATE.
  (TESTS_ENVIRONMENT): Likewise, and define $NIX_HASH.
* guix/utils.scm (nixpkgs-derivation): Use $NIX_INSTANTIATE when
  defined.

* tests/utils.scm (%nix-hash): New variable.
  ("sha256 & bytevector->nix-base32-string"): Use it.
-rw-r--r--Makefile.am5
-rw-r--r--guix/utils.scm5
-rw-r--r--tests/utils.scm10
3 files changed, 14 insertions, 6 deletions
diff --git a/Makefile.am b/Makefile.am
index f83c8eb1f5..51266585dc 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -52,9 +52,11 @@ TESTS =						\
   tests/packages.scm
 
 TESTS_ENVIRONMENT =								\
+  NIX_HASH="$(NIX_HASH)";							\
+  NIX_INSTANTIATE="$(NIX_INSTANTIATE)";						\
   NIXPKGS="$(NIXPKGS)";								\
   GUILE_LOAD_COMPILED_PATH="$(top_builddir):$$GUILE_LOAD_COMPILED_PATH";	\
-  export NIXPKGS GUILE_LOAD_COMPILED_PATH;
+  export NIX_HASH NIX_INSTANTIATE NIXPKGS GUILE_LOAD_COMPILED_PATH;
 
 LOG_COMPILER =					\
   $(GUILE) --no-auto-compile -L "$(top_srcdir)"
@@ -70,6 +72,7 @@ CLEANFILES = $(GOBJECTS) *.log
 
 .scm.go:
 	$(MKDIR_P) `dirname "$@"`
+	NIX_INSTANTIATE="$(NIX_INSTANTIATE)"					\
 	NIXPKGS="$(NIXPKGS)"							\
 	GUILE_AUTO_COMPILE=0							\
 	GUILE_LOAD_COMPILED_PATH="$(top_builddir):$$GUILE_LOAD_COMPILED_PATH"	\
diff --git a/guix/utils.scm b/guix/utils.scm
index 66563c727e..cbd51fae73 100644
--- a/guix/utils.scm
+++ b/guix/utils.scm
@@ -450,8 +450,9 @@ starting from the right of S."
 
 (define (nixpkgs-derivation attribute)
   "Return the derivation path of ATTRIBUTE in Nixpkgs."
-  (let* ((p (open-pipe* OPEN_READ "nix-instantiate" "-A"
-                        attribute (%nixpkgs-directory)))
+  (let* ((p (open-pipe* OPEN_READ (or (getenv "NIX_INSTANTIATE")
+                                      "nix-instantiate")
+                        "-A" attribute (%nixpkgs-directory)))
          (l (read-line p))
          (s (close-pipe p)))
     (and (zero? (status:exit-val s))
diff --git a/tests/utils.scm b/tests/utils.scm
index 4a24e23df9..6a90817ec3 100644
--- a/tests/utils.scm
+++ b/tests/utils.scm
@@ -29,6 +29,10 @@
   #:use-module (ice-9 popen)
   #:use-module (ice-9 match))
 
+(define %nix-hash
+  (or (getenv "NIX_HASH")
+      "nix-hash"))
+
 (test-begin "utils")
 
 (test-assert "bytevector->base32-string"
@@ -72,7 +76,7 @@
          (map string->utf8 '("" "f" "fo" "foo" "foob" "fooba" "foobar"))))
 
 ;; The following tests requires `nix-hash' in $PATH.
-(test-skip (if (false-if-exception (system* "nix-hash" "--version"))
+(test-skip (if (false-if-exception (system* %nix-hash "--version"))
                0
                1))
 
@@ -80,8 +84,8 @@
   (let ((file (search-path %load-path "tests/test.drv")))
     (equal? (bytevector->nix-base32-string
              (sha256 (call-with-input-file file get-bytevector-all)))
-            (let* ((c (format #f "nix-hash --type sha256 --base32 --flat \"~a\""
-                              file))
+            (let* ((c (format #f "~a --type sha256 --base32 --flat \"~a\""
+                              %nix-hash file))
                    (p (open-input-pipe c))
                    (l (read-line p)))
               (close-pipe p)