aboutsummaryrefslogtreecommitdiff
path: root/tests/test/hnh-util-env.scm
blob: c1e0161f7ebd431e2df0249d4731fbd17e0497a4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
(define-module (test hnh-util-env)
  :use-module (srfi srfi-64)
  :use-module (srfi srfi-64 test-error)
  :use-module (srfi srfi-88)
  :use-module ((guile) :select (setenv getenv))
  :use-module ((hnh util env) :select (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"))


(test-group "Unsetting environment"
  (setenv "TEST" "A")
  (let-env ((TEST #f))
           (test-assert (not (getenv "TEST"))))
  (test-equal "A" (getenv "TEST")))