derivations: Add test for #:leaked-env-vars.

* tests/derivations.scm ("derivation #:leaked-env-vars"): New test.
This commit is contained in:
Ludovic Courtès 2016-01-18 15:13:30 +01:00
parent a887fd8d48
commit 44ad33843a

View file

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2012, 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2012, 2013, 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -472,6 +472,22 @@ (define (deps path . deps)
(build-derivations %store (list drv)) (build-derivations %store (list drv))
#f))) #f)))
;; Here we should get the value of $NIX_STATE_DIR that the daemon sees, which
;; is a unique value for each test process; this value is the same as the one
;; we see in the process executing this file since it is set by 'test-env'.
(test-equal "derivation #:leaked-env-vars"
(getenv "NIX_STATE_DIR")
(let* ((value (getenv "NIX_STATE_DIR"))
(drv (derivation %store "leaked-env-vars" %bash
'("-c" "echo -n $NIX_STATE_DIR > $out")
#:hash (sha256 (string->utf8 value))
#:hash-algo 'sha256
#:inputs `((,%bash))
#:leaked-env-vars '("NIX_STATE_DIR"))))
(and (build-derivations %store (list drv))
(call-with-input-file (derivation->output-path drv)
get-string-all))))
(define %coreutils (define %coreutils
(false-if-exception (false-if-exception