tests: Add 'with-environment-variable'.

* tests/scripts.scm (with-environment-variable): Move to...
* guix/tests.scm (with-environment-variable): ... here.
* tests/build-utils.scm ("wrap-program, one input, multiple calls"):
Use it instead of 'setenv'.
This commit is contained in:
Ludovic Courtès 2019-03-16 15:11:29 +01:00
parent 0848615300
commit 22f95e028f
No known key found for this signature in database
GPG key ID: 090B11993D9AEBB5
3 changed files with 30 additions and 26 deletions

View file

@ -39,6 +39,8 @@
canonical-file?
network-reachable?
shebang-too-long?
with-environment-variable
mock
%test-substitute-urls
test-assertm
@ -195,6 +197,19 @@ store is opened."
(run-with-store store exp
#:guile-for-build (%guile-for-build)))))
(define-syntax-rule (with-environment-variable variable value body ...)
"Run BODY with VARIABLE set to VALUE."
(let ((orig (getenv variable)))
(dynamic-wind
(lambda ()
(setenv variable value))
(lambda ()
body ...)
(lambda ()
(if orig
(setenv variable orig)
(unsetenv variable))))))
;;;
;;; Narinfo files, as used by the substituter.