diff options
| author | Peter Bex <peter@more-magic.net> | 2012-10-01 18:25:05 +0100 | 
|---|---|---|
| committer | Peter Bex <peter@more-magic.net> | 2012-10-01 18:25:05 +0100 | 
| commit | ae6f4ea76524c69aa701999ab13278193695432a (patch) | |
| tree | 15d5453d93d25fd4a2a02563353695681ca7a9d4 /tests | |
| parent | d3cab9cb7d8f2066127db89bc50d38987e393340 (diff) | |
| download | scsh-process-ae6f4ea76524c69aa701999ab13278193695432a.tar.gz | |
Implement && and || (which is a bit of a hack in Chicken considering it's the empty symbol)
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/run.scm | 37 | 
1 files changed, 36 insertions, 1 deletions
| diff --git a/tests/run.scm b/tests/run.scm index c0a2a7e..23220e1 100644 --- a/tests/run.scm +++ b/tests/run.scm @@ -51,6 +51,41 @@         "foo\n"         (run/string (pipe+ ((1 0))                            (pipe+ ((2 0)) (sh -c "echo foo >&2") (cat)) -                          (cat))))) +                          (cat)))) + + (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)) +                 (true) +                 (epf (echo "bar") (> outfile))) +         (read-all "outfile"))) + (delete-file* "outfile") + + (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") + + (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 | 
