Test output for ini-file [ok]
Testing time: 35s
/home/mario/local/chicken-4.8.0.3/bin/csi -script run.scm < /dev/null (input "") => () ; correct (input "; comment") => () ; correct (input "[section]") => ((section)) ; correct (input "[sec tion]") => ((|sec tion|)) ; correct (input "one") => ((default (one . #t))) ; correct (input "one= ") => ((default (one . ""))) ; correct (input "one=# two") => ((default (one . ""))) ; correct (input "one=2") => ((default (one . 2))) ; correct (input "one=-2") => ((default (one . -2))) ; correct (input "one=0.2") => ((default (one . 0.2))) ; correct (input "one=two") => ((default (one . "two"))) ; correct (input "one= two ") => ((default (one . "two"))) ; correct (input "one two = three ") => ((default (|one two| . "three"))) ; correct (input "one=\" two \"") => ((default (one . " two "))) ; correct (input "one=\"\"two\"\"") => ((default (one . "\"two\""))) ; correct (input "1 = two 3 ") => ((default (|1| . "two 3"))) ; correct (input "one = two\n [section]\n three = four") => ((section (three . "four")) (default (one . "two"))) ; correct (fails? (input "one")) => #t ; correct (fails? (input "one=")) => #t ; correct (fails? (input "one=#")) => #t ; correct (fails? (input "=two")) => #t ; correct (fails? (input "one=\ntwo")) => #t ; correct (fails? (input "one=\"two\nthree\"")) => #t ; correct (input "one = true") => ((ini (one . #t))) ; correct (input "one = false") => ((ini (one . #f))) ; correct (output (quote (one . #t))) => "one=true\n" ; correct (output (quote (one . #f))) => "one=false\n" ; correct (output (quote ())) => "" ; correct (output (quote (one . 2))) => "one=2\n" ; correct (output (quote (section))) => "[section]\n\n" ; correct (output (quote ((one . 2) (three . "four")))) => "three=four\none=2\n" ; correct (output (quote (section (one . 2) (three . 4)))) => "[section]\nthree=4\none=2\n\n" ; correct (output (quote ((section (one . "two"))))) => "[section]\none=two\n\n" ; correct (output (quote (((section (one . "two")))))) => "[section]\none=two\n\n" ; correct (read-ini "example.ini") => ((database (file . "payroll.dat") (port . 143) (server . "192.0.2.62")) (owner (organization . "Acme Widgets Inc.") (name . "John Doe"))) ; correct (input (output (read-ini "example.ini"))) => ((database (file . "payroll.dat") (port . 143) (server . "192.0.2.62")) (owner (organization . "Acme Widgets Inc.") (name . "John Doe"))) ; correct