From 22f95e028f038cee342f455dfc55bd32b804907c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ludovic=20Court=C3=A8s?= Date: Sat, 16 Mar 2019 15:11:29 +0100 Subject: 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'. --- guix/tests.scm | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'guix') 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. -- cgit v1.2.3