(include "../scsh-process.scm") (import scsh-process) (use test posix) (test-group "Procedural interface" (test "Fork/pipe \"hello world\" example from SCSH reference manual" "Hello, world." (begin (fork/pipe (lambda () (with-output-to-port (open-output-file* 1) (lambda () (display "Hello, world.\n") (exit 0))))) (read-line (open-input-file* 0)))) (test "run/string* returns a string output in a subprocess" "This is a test" (run/string* (lambda () (display "This is a test") (exit 0))))) (test-group "Macro (EPF) interface" (delete-file* "outfile") ; Leftovers (let ((outfile "outfile")) (test "Subprocess writing to a file" "hi, there\n" (begin (run (echo "hi, there") (> ,outfile)) (read-all "outfile")))) (delete-file* "outfile") (let ((echo-command 'echo)) (test "Subprocess piped to another process, writing to a file" "1235\n" (begin (run (pipe (,echo-command "1234" + 1) ("bc")) (> outfile)) (read-all "outfile")))) (delete-file* "outfile") (test "Simple run/string" "hi, there\n" (run/string (echo "hi, there")))) (test-exit)