blob: d190c9547e1444a57e6def016fe45a49dbccf14d (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
|
(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 "Nested output redirection with pipe+"
"foo\n"
(run/string (pipe+ ((1 0))
(pipe+ ((2 0)) (sh -c "echo foo >&2") (cat))
(cat)))))
(test-exit)
|