aboutsummaryrefslogtreecommitdiff
path: root/tests/test/hnh-util-env.scm
blob: 93f72bc9490dc963e2592008cef39f66ec8f0001 (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)))


(test-group "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 "with-working-directory"
  'TODO)