From bc703eef01c912962a502fa676560b2c200d90ca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hugo=20H=C3=B6rnquist?= Date: Mon, 20 Dec 2021 23:06:02 +0100 Subject: let-env now handles non-local exits correctly. --- tests/let-env.scm | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 tests/let-env.scm (limited to 'tests/let-env.scm') diff --git a/tests/let-env.scm b/tests/let-env.scm new file mode 100644 index 00000000..0fe77539 --- /dev/null +++ b/tests/let-env.scm @@ -0,0 +1,22 @@ +(((guile) setenv getenv) + ((calp util) let-env)) + +(setenv "CALP_TEST_ENV" "1") +(test-equal "Ensure we have set value beforehand" + "1" (getenv "CALP_TEST_ENV")) +(let-env ((CALP_TEST_ENV "2")) + (test-equal "Test our local override" + "2" (getenv "CALP_TEST_ENV"))) +(test-equal "Test that we have returned" + "1" (getenv "CALP_TEST_ENV")) + +(catch 'test-error + (lambda () + (let-env ((CALP_TEST_ENV "2")) + (test-equal "Test our local override again" + "2" (getenv "CALP_TEST_ENV")) + (throw 'test-error))) + list) + +(test-equal "Test restoration after non-local exit" + "1" (getenv "CALP_TEST_ENV")) -- cgit v1.2.3