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.
This commit is contained in:
parent
ed795c0608
commit
b86b00567c
|
@ -52,9 +52,11 @@ TESTS = \
|
||||||
tests/packages.scm
|
tests/packages.scm
|
||||||
|
|
||||||
TESTS_ENVIRONMENT = \
|
TESTS_ENVIRONMENT = \
|
||||||
|
NIX_HASH="$(NIX_HASH)"; \
|
||||||
|
NIX_INSTANTIATE="$(NIX_INSTANTIATE)"; \
|
||||||
NIXPKGS="$(NIXPKGS)"; \
|
NIXPKGS="$(NIXPKGS)"; \
|
||||||
GUILE_LOAD_COMPILED_PATH="$(top_builddir):$$GUILE_LOAD_COMPILED_PATH"; \
|
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 = \
|
LOG_COMPILER = \
|
||||||
$(GUILE) --no-auto-compile -L "$(top_srcdir)"
|
$(GUILE) --no-auto-compile -L "$(top_srcdir)"
|
||||||
|
@ -70,6 +72,7 @@ CLEANFILES = $(GOBJECTS) *.log
|
||||||
|
|
||||||
.scm.go:
|
.scm.go:
|
||||||
$(MKDIR_P) `dirname "$@"`
|
$(MKDIR_P) `dirname "$@"`
|
||||||
|
NIX_INSTANTIATE="$(NIX_INSTANTIATE)" \
|
||||||
NIXPKGS="$(NIXPKGS)" \
|
NIXPKGS="$(NIXPKGS)" \
|
||||||
GUILE_AUTO_COMPILE=0 \
|
GUILE_AUTO_COMPILE=0 \
|
||||||
GUILE_LOAD_COMPILED_PATH="$(top_builddir):$$GUILE_LOAD_COMPILED_PATH" \
|
GUILE_LOAD_COMPILED_PATH="$(top_builddir):$$GUILE_LOAD_COMPILED_PATH" \
|
||||||
|
|
|
@ -450,8 +450,9 @@ starting from the right of S."
|
||||||
|
|
||||||
(define (nixpkgs-derivation attribute)
|
(define (nixpkgs-derivation attribute)
|
||||||
"Return the derivation path of ATTRIBUTE in Nixpkgs."
|
"Return the derivation path of ATTRIBUTE in Nixpkgs."
|
||||||
(let* ((p (open-pipe* OPEN_READ "nix-instantiate" "-A"
|
(let* ((p (open-pipe* OPEN_READ (or (getenv "NIX_INSTANTIATE")
|
||||||
attribute (%nixpkgs-directory)))
|
"nix-instantiate")
|
||||||
|
"-A" attribute (%nixpkgs-directory)))
|
||||||
(l (read-line p))
|
(l (read-line p))
|
||||||
(s (close-pipe p)))
|
(s (close-pipe p)))
|
||||||
(and (zero? (status:exit-val s))
|
(and (zero? (status:exit-val s))
|
||||||
|
|
|
@ -29,6 +29,10 @@
|
||||||
#:use-module (ice-9 popen)
|
#:use-module (ice-9 popen)
|
||||||
#:use-module (ice-9 match))
|
#:use-module (ice-9 match))
|
||||||
|
|
||||||
|
(define %nix-hash
|
||||||
|
(or (getenv "NIX_HASH")
|
||||||
|
"nix-hash"))
|
||||||
|
|
||||||
(test-begin "utils")
|
(test-begin "utils")
|
||||||
|
|
||||||
(test-assert "bytevector->base32-string"
|
(test-assert "bytevector->base32-string"
|
||||||
|
@ -72,7 +76,7 @@
|
||||||
(map string->utf8 '("" "f" "fo" "foo" "foob" "fooba" "foobar"))))
|
(map string->utf8 '("" "f" "fo" "foo" "foob" "fooba" "foobar"))))
|
||||||
|
|
||||||
;; The following tests requires `nix-hash' in $PATH.
|
;; 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
|
0
|
||||||
1))
|
1))
|
||||||
|
|
||||||
|
@ -80,8 +84,8 @@
|
||||||
(let ((file (search-path %load-path "tests/test.drv")))
|
(let ((file (search-path %load-path "tests/test.drv")))
|
||||||
(equal? (bytevector->nix-base32-string
|
(equal? (bytevector->nix-base32-string
|
||||||
(sha256 (call-with-input-file file get-bytevector-all)))
|
(sha256 (call-with-input-file file get-bytevector-all)))
|
||||||
(let* ((c (format #f "nix-hash --type sha256 --base32 --flat \"~a\""
|
(let* ((c (format #f "~a --type sha256 --base32 --flat \"~a\""
|
||||||
file))
|
%nix-hash file))
|
||||||
(p (open-input-pipe c))
|
(p (open-input-pipe c))
|
||||||
(l (read-line p)))
|
(l (read-line p)))
|
||||||
(close-pipe p)
|
(close-pipe p)
|
||||||
|
|
Loading…
Reference in New Issue