diff options
author | Denis Vlasenko <vda.linux@googlemail.com> | 2009-04-07 02:29:51 +0000 |
---|---|---|
committer | Denis Vlasenko <vda.linux@googlemail.com> | 2009-04-07 02:29:51 +0000 |
commit | 6c9be7f4518bf5594f5b9aaf981ed5dcc4a6939c (patch) | |
tree | 67f6d56a1d7c7fe251bb2dd41cd5b0c0118a0a10 /shell/hush_test | |
parent | ab2b06434240bb11f5bef7201f9d01027df79896 (diff) | |
download | busybox-w32-6c9be7f4518bf5594f5b9aaf981ed5dcc4a6939c.tar.gz busybox-w32-6c9be7f4518bf5594f5b9aaf981ed5dcc4a6939c.tar.bz2 busybox-w32-6c9be7f4518bf5594f5b9aaf981ed5dcc4a6939c.zip |
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 01a7f591c..6de50fa7b 100755 --- a/shell/hush_test/hush-misc/exec.tests +++ b/shell/hush_test/hush-misc/exec.tests | |||
@@ -1,30 +1,30 @@ | |||
1 | # make sure we have a way of checking these things | 1 | # make sure we have a way of checking these things |
2 | [ ! -e /dev/fd ] && exit 1 | 2 | cd /proc/$$/fd || cd /dev/fd || exit 1 |
3 | 3 | ||
4 | [ -e /dev/fd/44 ] && exit 1 | 4 | [ -e 44 ] && exit 1 |
5 | exec 44>/dev/null | 5 | exec 44>/dev/null |
6 | [ -e /dev/fd/44 ] || exit 1 | 6 | [ -e 44 ] || exit 1 |
7 | echo pass fd out open | 7 | echo pass fd out open |
8 | 8 | ||
9 | [ -e /dev/fd/55 ] && exit 1 | 9 | [ -e 55 ] && exit 1 |
10 | exec 55>&44 | 10 | exec 55>&44 |
11 | [ -e /dev/fd/55 ] || exit 1 | 11 | [ -e 55 ] || exit 1 |
12 | echo pass fd out dup | 12 | echo pass fd out dup |
13 | 13 | ||
14 | exec 44>&- | 14 | exec 44>&- |
15 | [ -e /dev/fd/44 ] && exit 1 | 15 | [ -e 44 ] && exit 1 |
16 | echo pass fd out close | 16 | echo pass fd out close |
17 | 17 | ||
18 | [ -e /dev/fd/66 ] && exit 1 | 18 | [ -e 66 ] && exit 1 |
19 | exec 66</dev/null | 19 | exec 66</dev/null |
20 | [ -e /dev/fd/66 ] || exit 1 | 20 | [ -e 66 ] || exit 1 |
21 | echo pass fd in open | 21 | echo pass fd in open |
22 | 22 | ||
23 | [ -e /dev/fd/77 ] && exit 1 | 23 | [ -e 77 ] && exit 1 |
24 | exec 77<&66 | 24 | exec 77<&66 |
25 | [ -e /dev/fd/77 ] || exit 1 | 25 | [ -e 77 ] || exit 1 |
26 | echo pass fd in dup | 26 | echo pass fd in dup |
27 | 27 | ||
28 | exec 66<&- | 28 | exec 66<&- |
29 | [ -e /dev/fd/66 ] && exit 1 | 29 | [ -e 66 ] && exit 1 |
30 | echo pass fd in close | 30 | 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 000000000..7fc68f3e1 --- /dev/null +++ b/shell/hush_test/hush-misc/heredoc1.right | |||
@@ -0,0 +1,5 @@ | |||
1 | qwe | ||
2 | asd | ||
3 | 123 | ||
4 | 456 | ||
5 | Ok | ||
diff --git a/shell/hush_test/hush-misc/heredoc1.tests b/shell/hush_test/hush-misc/heredoc1.tests new file mode 100755 index 000000000..2eeb4726b --- /dev/null +++ b/shell/hush_test/hush-misc/heredoc1.tests | |||
@@ -0,0 +1,9 @@ | |||
1 | cat <<000; cat <<www; cat <<eee | ||
2 | 000 | ||
3 | qwe | ||
4 | asd | ||
5 | www | ||
6 | 123 | ||
7 | 456 | ||
8 | eee | ||
9 | echo Ok | ||