diff options
author | Ludovic Courtès <ludo@gnu.org> | 2019-03-16 15:11:29 +0100 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2019-03-16 18:15:09 +0100 |
commit | 22f95e028f038cee342f455dfc55bd32b804907c (patch) | |
tree | dade133425c4c41f26ffad0ecad315923db94dee /guix/tests.scm | |
parent | 0848615300ec0693b2849e80103a13063fa4b190 (diff) | |
download | gnu-guix-22f95e028f038cee342f455dfc55bd32b804907c.tar gnu-guix-22f95e028f038cee342f455dfc55bd32b804907c.tar.gz |
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'.
Diffstat (limited to 'guix/tests.scm')
-rw-r--r-- | guix/tests.scm | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/guix/tests.scm b/guix/tests.scm index 749a4edd7a..35ebf8464d 100644 --- a/guix/tests.scm +++ b/guix/tests.scm @@ -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. |