aboutsummaryrefslogtreecommitdiff
path: root/tests/unit/util/hnh-util-env.scm
blob: 74ab3b791031186d2365e48ae3193994606a548d (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
48
49
(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")))

'((hnh util env))