diff options
author | Denis Vlasenko | 2009-04-07 02:29:51 +0000 |
---|---|---|
committer | Denis Vlasenko | 2009-04-07 02:29:51 +0000 |
commit | 6c9be7f4518bf5594f5b9aaf981ed5dcc4a6939c (patch) | |
tree | 67f6d56a1d7c7fe251bb2dd41cd5b0c0118a0a10 /shell/hush_test | |
parent | ab2b06434240bb11f5bef7201f9d01027df79896 (diff) | |
download | busybox-6c9be7f4518bf5594f5b9aaf981ed5dcc4a6939c.zip busybox-6c9be7f4518bf5594f5b9aaf981ed5dcc4a6939c.tar.gz |
hush: heredoc support, based on patch by Mike Frysinger (vapier AT gentoo.org)
some TODOs are to be attacked later
function old new delta
parse_stream 1461 1866 +405
parse_redirect - 265 +265
setup_heredoc - 116 +116
setup_redirects 151 196 +45
builtin_exit 49 47 -2
redirect_opt_num 61 55 -6
setup_redirect 212 - -212
------------------------------------------------------------------------------
(add/remove: 2/1 grow/shrink: 2/2 up/down: 831/-220) Total: 611 bytes
Diffstat (limited to 'shell/hush_test')
-rwxr-xr-x | shell/hush_test/hush-misc/exec.tests | 22 | ||||
-rw-r--r-- | shell/hush_test/hush-misc/heredoc1.right | 5 | ||||
-rwxr-xr-x | shell/hush_test/hush-misc/heredoc1.tests | 9 |
3 files changed, 25 insertions, 11 deletions
diff --git a/shell/hush_test/hush-misc/exec.tests b/shell/hush_test/hush-misc/exec.tests index 01a7f59..6de50fa 100755 --- a/shell/hush_test/hush-misc/exec.tests +++ b/shell/hush_test/hush-misc/exec.tests @@ -1,30 +1,30 @@ # make sure we have a way of checking these things -[ ! -e /dev/fd ] && exit 1 +cd /proc/$$/fd || cd /dev/fd || exit 1 -[ -e /dev/fd/44 ] && exit 1 +[ -e 44 ] && exit 1 exec 44>/dev/null -[ -e /dev/fd/44 ] || exit 1 +[ -e 44 ] || exit 1 echo pass fd out open -[ -e /dev/fd/55 ] && exit 1 +[ -e 55 ] && exit 1 exec 55>&44 -[ -e /dev/fd/55 ] || exit 1 +[ -e 55 ] || exit 1 echo pass fd out dup exec 44>&- -[ -e /dev/fd/44 ] && exit 1 +[ -e 44 ] && exit 1 echo pass fd out close -[ -e /dev/fd/66 ] && exit 1 +[ -e 66 ] && exit 1 exec 66</dev/null -[ -e /dev/fd/66 ] || exit 1 +[ -e 66 ] || exit 1 echo pass fd in open -[ -e /dev/fd/77 ] && exit 1 +[ -e 77 ] && exit 1 exec 77<&66 -[ -e /dev/fd/77 ] || exit 1 +[ -e 77 ] || exit 1 echo pass fd in dup exec 66<&- -[ -e /dev/fd/66 ] && exit 1 +[ -e 66 ] && exit 1 echo pass fd in close diff --git a/shell/hush_test/hush-misc/heredoc1.right b/shell/hush_test/hush-misc/heredoc1.right new file mode 100644 index 0000000..7fc68f3 --- /dev/null +++ b/shell/hush_test/hush-misc/heredoc1.right @@ -0,0 +1,5 @@ +qwe +asd +123 +456 +Ok diff --git a/shell/hush_test/hush-misc/heredoc1.tests b/shell/hush_test/hush-misc/heredoc1.tests new file mode 100755 index 0000000..2eeb472 --- /dev/null +++ b/shell/hush_test/hush-misc/heredoc1.tests @@ -0,0 +1,9 @@ +cat <<000; cat <<www; cat <<eee +000 +qwe +asd +www +123 +456 +eee +echo Ok |