;;;; posix-utils-test.scm -*- Scheme -*- (import scheme (chicken base) (chicken process-context) test posix-utils) (test-group "eol" ; (define eol (cond-expand (windows "\r\n") (unix "\n") (else "\r") ) ) ; (test "foo" (string-trim-eol (string-append "foo" eol))) (test "" (string-trim-eol eol)) (test "foo" (string-trim-eol "foo")) ) (test-group "qs" (test "\"foo\"" (qs* "foo")) (test "'foo'" (qs* "foo" #\')) (test "\"$((1 + 2))\"" (qs-string "$((1 + 2))")) (test "'$((1 + 2))'" (qs-literal "$((1 + 2))")) (test "'$((1 + 2))'" (qs-argument '(quote "$((1 + 2))"))) ;(test "`\"$ ((1 + 2))\"`" (qs-argument '`,@($(( 1 + 2 ))))) (test "`\"\"`" (qs-argument '`,@())) (test "`\"result is 3\"`" (qs-argument '`,@("result is" (+ 1 2)))) (test "`\"3\"`" (qs-argument '`,(+ 1 2))) ) (test-group "environment variables" (set-environment-variable! "FOO" "yes") (set-environment-variable! "BAR" "") (set-environment-variable! "BAZ" "not on your life") (test-assert (environment-variable-bound? "FOO")) (test "yes" (environment-variable-bound? "FOO")) (test-assert (not (environment-variable-bound? "BAR"))) (test-assert (environment-variable-true? "FOO")) (test-assert (not (environment-variable-true? "BAR"))) (test-assert (not (environment-variable-true? "BAZ"))) ; (test '("A=a" "Z=0") (environment-variables->environment-list '(("A" . a) ("Z" . 0)))) ) (test-group "shell variables" (test-assert "OSTYPE" (get-shell-variable "OSTYPE")) (test-assert "OSTYPE (can fail)" (shell-variable-bound? "OSTYPE")) ) (test-exit)