diff options
author | Peter Bex <peter@more-magic.net> | 2021-09-14 13:54:29 +0200 |
---|---|---|
committer | Peter Bex <peter@more-magic.net> | 2021-09-14 13:54:29 +0200 |
commit | eb97f7d4f6a6428b52f6cd24e54d3e4650f631a0 (patch) | |
tree | affe5d0d1c793110c17f68025279f829be130901 /tests | |
parent | 87ce3a51ae76208ccd888c1ef18673b52e6b9d6c (diff) | |
download | scsh-process-eb97f7d4f6a6428b52f6cd24e54d3e4650f631a0.tar.gz |
Fix issue with redirection in run/port (and, by extension, run/string)
We would initially create a pipe, dup(2) that onto fd 1 in the forked
process and open an output port on the original fd. This resulted in
a pretty nasty bug: if the fd would be redirected (by number) later,
it would not affect the output port because that was set up to point
to the original fd.
Instead, open an output port to the newly set up stdout and close the
direct pipe port.
Diffstat (limited to 'tests')
-rw-r--r-- | tests/run.scm | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/tests/run.scm b/tests/run.scm index c4ab584..b5fa419 100644 --- a/tests/run.scm +++ b/tests/run.scm @@ -107,6 +107,11 @@ "hi, there\n" (run/string (sh -c "echo 'hi, there' >&2") (= 2 1))) + ;; Also reported by Diego "dieggsy" + (test "run/string where (begin) is piped to a program" + "1\n" + (run/string (pipe (begin (print "hey")) (wc -l)))) + (test "Unquote-splicing run/string" "hi, there\n" (run/string (echo ,@(list "hi," "there")))) |