File: config.zuo

package info (click to toggle)
zuo 1.12-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 1,352 kB
  • sloc: ansic: 6,374; makefile: 39
file content (45 lines) | stat: -rw-r--r-- 1,751 bytes parent folder | download | duplicates (6)
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
#lang zuo

(require "harness.zuo")

(alert "config")

(define Mf-config (build-path tmp-dir "Mf-config"))

(define (config->hash content [overrides (hash)])
  (display-to-file content Mf-config :truncate)
  (config-file->hash Mf-config overrides))

(check (config->hash "") (hash))
(check (config->hash "" (hash 'X "x")) (hash 'X "x"))
(check (config->hash "This is not a confg line" (hash 'X "x")) (hash 'X "x"))
(check (config->hash "Comment # no=6" (hash 'X "x")) (hash 'X "x"))

(check (config->hash "X=5") (hash 'X "5"))
(check (config->hash "X =5") (hash 'X "5"))
(check (config->hash "X= 5   ") (hash 'X "5"))
(check (config->hash "  X = 5   ") (hash 'X "5"))
(check (config->hash "\n\n  X = 5   \n\n") (hash 'X "5"))
(check (config->hash "X = 5\\\n1") (hash 'X "51"))

(check (config->hash "X_1=5") (hash 'X_1 "5"))
(check (config->hash "abcdefg_ZXSGFH_=5") (hash 'abcdefg_ZXSGFH_ "5"))
(check (config->hash "123=5") (hash (string->symbol "123") "5"))
(check (config->hash "1%23=5") (hash))
(check (config->hash "x%23=5") (hash))

(check (config->hash "X=5\nY=8") (hash 'X "5" 'Y "8"))
(check (config->hash "X=5\nX=8") (hash 'X "8"))
(check (config->hash "X=5\nX=8" (hash 'X "0")) (hash 'X "0"))
(check (config->hash "X=5\nY=8" (hash 'X "0")) (hash 'X "0" 'Y "8"))

(check (config->hash "X=5 # Comment after") (hash 'X "5"))
(check (config->hash "X=5 # Comment after\nY=8") (hash 'X "5" 'Y "8"))
(check (config->hash "X=5 \\# 7") (hash 'X "5 # 7"))
(check (config->hash "X=5 \\\\# 7") (hash 'X "5 \\# 7"))
(check (config->hash "X=5# \\\\# 7") (hash 'X "5"))
(check (config->hash "X=# # #") (hash 'X ""))
(check (config->hash "X = 5\\\n# 1 \\\n 2") (hash 'X "5"))
(check (config->hash "X = 5\\\n 1 \\\n 2") (hash 'X "5 1  2"))

(rm* Mf-config)