diff options
| -rw-r--r-- | tests/run.scm | 120 | 
1 files changed, 62 insertions, 58 deletions
| diff --git a/tests/run.scm b/tests/run.scm index 207d705..c0cb01f 100644 --- a/tests/run.scm +++ b/tests/run.scm @@ -16,76 +16,80 @@          (run/string* (lambda () (display "This is a test")))))  (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") +  (delete-file* "outfile")              ; Leftovers from last run - (test "Simple run/string" -       "hi, there\n" -       (run/string (echo "hi, there"))) +  (test-group "Various run/... forms" +    (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/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/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 "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-group "Subprocesses" +    (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 "&& runs for all true values" -       (list #t "bar\n") -       (list (&& (epf (echo "foo") (> outfile)) -                 (true) -                 (epf (echo "bar") (> outfile))) -             (read-all "outfile"))) - (delete-file* "outfile") +    (test "Nested output redirection with pipe+" +          "foo\n" +          (run/string (pipe+ ((1 0)) +                             (pipe+ ((2 0)) (sh -c "echo foo >&2") (cat)) +                             (cat))))) - (test "&& stops at first false value and returns false" -       (list #f "foo\n") -       (list (&& (epf (echo "foo") (> outfile)) -                 (false) -                 (epf (echo "bar") (> outfile))) -             (read-all "outfile"))) - (delete-file* "outfile") +  (test-group "Conditional process sequencing forms" +    (test "&& runs for all true values" +          (list #t "bar\n") +          (list (&& (epf (echo "foo") (> outfile)) +                    (true) +                    (epf (echo "bar") (> outfile))) +                (read-all "outfile"))) +    (delete-file* "outfile") + +    (test "&& stops at first false value and returns false" +          (list #f "foo\n") +          (list (&& (epf (echo "foo") (> outfile)) +                    (false) +                    (epf (echo "bar") (> outfile))) +                (read-all "outfile"))) +    (delete-file* "outfile") - (test "|| stops at first true value and returns true" -       (list #t "foo\n") -       (list (|| (epf (echo "foo") (> outfile)) +    (test "|| stops at first true value and returns true" +          (list #t "foo\n") +          (list (|| (epf (echo "foo") (> outfile))                   (true)                   (epf (echo "bar") (> outfile))) -         (read-all "outfile"))) - (delete-file* "outfile") +                (read-all "outfile"))) +    (delete-file* "outfile") - (test "|| continues after first false value and returns true" -       (list #t "bar\n") -       (list (|| (false) +    (test "|| continues after first false value and returns true" +          (list #t "bar\n") +          (list (|| (false)                   (epf (echo "bar") (> outfile))) -             (read-all "outfile"))) - (delete-file* "outfile") +                (read-all "outfile"))) +    (delete-file* "outfile") - (test "|| continues beyond all false values and returns false" -       #f -       (|| (false) (epf (sh -c "echo hi && false") (- 1))))) +    (test "|| continues beyond all false values and returns false" +          #f +          (|| (false) (epf (sh -c "echo hi && false") (- 1))))))  (test-exit)
\ No newline at end of file | 
