diff options
| author | Peter Bex <peter@more-magic.net> | 2012-10-01 17:30:42 +0100 | 
|---|---|---|
| committer | Peter Bex <peter@more-magic.net> | 2012-10-01 17:30:42 +0100 | 
| commit | 8b6689df84f21ce709249c5c2ca8dbdfb87282eb (patch) | |
| tree | 07575ab5d91556aabce945c1ab5558aeb1af07bd /tests | |
| parent | 11db27b4994ddcc1073ceb2b69b73601e29ed164 (diff) | |
| download | scsh-process-8b6689df84f21ce709249c5c2ca8dbdfb87282eb.tar.gz | |
Rename test directory to tests (thanks Moritz!)
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/run.scm | 56 | 
1 files changed, 56 insertions, 0 deletions
| diff --git a/tests/run.scm b/tests/run.scm new file mode 100644 index 0000000..c0a2a7e --- /dev/null +++ b/tests/run.scm @@ -0,0 +1,56 @@ +(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 "Simple run/sexp" +       '("hi, there") +       (run/sexp (echo "(\"hi, there\")"))) + + (test "Simple run/sexps" +       '(("hi, there") (a b c)) +       (run/sexps (echo "(\"hi, there\") (a b c)"))) + + (test "Simple run/port" +       '(a b c) +       (read (run/port (echo "(a b c)")))) + + (test "Nested output redirection with pipe+" +       "foo\n" +       (run/string (pipe+ ((1 0)) +                          (pipe+ ((2 0)) (sh -c "echo foo >&2") (cat)) +                          (cat))))) + +(test-exit)
\ No newline at end of file | 
