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)
|