~ruther/guix-local

44ad33843a5653bf9e49b37d7fdd2903a9142ee0 — Ludovic Courtès 10 years ago a887fd8
derivations: Add test for #:leaked-env-vars.

* tests/derivations.scm ("derivation #:leaked-env-vars"): New test.
1 files changed, 17 insertions(+), 1 deletions(-)

M tests/derivations.scm
M tests/derivations.scm => tests/derivations.scm +17 -1
@@ 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