diff options
author | Ludovic Courtès <ludo@gnu.org> | 2016-01-18 15:13:30 +0100 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2016-01-18 17:41:16 +0100 |
commit | 44ad33843a5653bf9e49b37d7fdd2903a9142ee0 (patch) | |
tree | a1912030cef00fa2c76fcd9038d3268bd75e0c81 | |
parent | a887fd8d48efd8cf229f9d0a4800b25066638018 (diff) | |
download | guix-44ad33843a5653bf9e49b37d7fdd2903a9142ee0.tar guix-44ad33843a5653bf9e49b37d7fdd2903a9142ee0.tar.gz |
derivations: Add test for #:leaked-env-vars.
* tests/derivations.scm ("derivation #:leaked-env-vars"): New test.
-rw-r--r-- | tests/derivations.scm | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/tests/derivations.scm b/tests/derivations.scm index 1bbc93fe5c..64cc8a94c9 100644 --- a/tests/derivations.scm +++ b/tests/derivations.scm @@ -1,5 +1,5 @@ ;;; 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. ;;; @@ -472,6 +472,22 @@ (build-derivations %store (list drv)) #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 (false-if-exception |