sh testsuite: sync ash-redir/ and hush-redir/

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
Denys Vlasenko 2016-10-02 18:32:52 +02:00
parent c7a774dde4
commit df303ae117
18 changed files with 313 additions and 114 deletions

View File

@ -0,0 +1 @@
Ok

View File

@ -0,0 +1,2 @@
echo NOT SHOWN \2>/dev/null
echo Ok

View File

@ -0,0 +1,18 @@
shell_test
\shell_test
\shell_test
\shell_test
Here1
Ok1
Here2
Ok2
Here3
Ok3
Here4
Ok4
Now with variable refs
shell_test_1
\shell_test_1
\shell_test_1
\shell_test_1
Done

View File

@ -0,0 +1,85 @@
rm *shell_test* 2>/dev/null
>\shell_test
echo *shell_test*
rm *shell_test*
>\\shell_test
echo *shell_test*
rm *shell_test*
>"\shell_test"
echo *shell_test*
rm *shell_test*
>"\\shell_test"
echo *shell_test*
rm *shell_test*
cat <<\shell_test
Here1
shell_test
echo Ok1
cat <<\\shell_test
Here2
\shell_test
echo Ok2
cat <<"\shell_test"
Here3
\shell_test
echo Ok3
cat <<"\\shell_test"
Here4
\shell_test
echo Ok4
echo Now with variable refs
i=1
>\shell_test_$i
echo *shell_test*
rm *shell_test*
>\\shell_test_$i
echo *shell_test*
rm *shell_test*
>"\shell_test_$i"
echo *shell_test*
rm *shell_test*
>"\\shell_test_$i"
echo *shell_test*
rm *shell_test*
echo Done;exit
# UNFIXED BUG. bash apparently will expand $i even in terminating delimiter.
# http://www.opengroup.org/onlinepubs/009695399/utilities/xcu_chap02.html
# does not mandate this behavior.
# This is not likely to be used much in real-world.
cat <<\shell_test_$i
Here1
shell_test_$i
echo Ok1
cat <<\\shell_test_$i
Here2
\shell_test_$i
echo Ok2
cat <<"\shell_test_$i"
Here3
\shell_test_$i
echo Ok3
cat <<"\\shell_test_$i"
Here4
\shell_test_$i
echo Ok4

View File

@ -0,0 +1,4 @@
Testing multiple redirections to same fd
Hello
Done1
Done2

View File

@ -0,0 +1,5 @@
echo "Testing multiple redirections to same fd"
# bug was making us lose fd #1 after this:
echo Hello >/dev/null 1>&2
echo Done1
echo Done2 >&2

View File

@ -1 +1 @@
Ok OK

View File

@ -1,2 +1,5 @@
echo NOT SHOWN \2>/dev/null # ash once couldn't redirect above fd#9
echo Ok exec 1>/dev/null
(echo LOST1 >&22) 22>&1
(echo LOST2 >&22) 22>&1
(echo OK >&22) 22>&2

View File

@ -1,18 +1 @@
shell_test OK
\shell_test
\shell_test
\shell_test
Here1
Ok1
Here2
Ok2
Here3
Ok3
Here4
Ok4
Now with variable refs
shell_test_1
\shell_test_1
\shell_test_1
\shell_test_1
Done

View File

@ -1,85 +1,72 @@
rm *shell_test* 2>/dev/null # ash uses fd 10 (usually) for reading the script
exec 13>&-
>\shell_test exec 12>&-
echo *shell_test* exec 11>&-
rm *shell_test* exec 10>&-
# some amount of input is prefetched.
>\\shell_test # make sure final echo is far enough to not be prefetched.
echo *shell_test* ###############################################################
rm *shell_test* ###############################################################
###############################################################
>"\shell_test" ###############################################################
echo *shell_test* ###############################################################
rm *shell_test* ###############################################################
###############################################################
>"\\shell_test" ###############################################################
echo *shell_test* ###############################################################
rm *shell_test* ###############################################################
###############################################################
###############################################################
cat <<\shell_test ###############################################################
Here1 ###############################################################
shell_test ###############################################################
echo Ok1 ###############################################################
###############################################################
cat <<\\shell_test ###############################################################
Here2 ###############################################################
\shell_test ###############################################################
echo Ok2 ###############################################################
###############################################################
cat <<"\shell_test" ###############################################################
Here3 ###############################################################
\shell_test ###############################################################
echo Ok3 ###############################################################
###############################################################
cat <<"\\shell_test" ###############################################################
Here4 ###############################################################
\shell_test ###############################################################
echo Ok4 ###############################################################
###############################################################
###############################################################
echo Now with variable refs ###############################################################
i=1 ###############################################################
###############################################################
###############################################################
>\shell_test_$i ###############################################################
echo *shell_test* ###############################################################
rm *shell_test* ###############################################################
###############################################################
>\\shell_test_$i ###############################################################
echo *shell_test* ###############################################################
rm *shell_test* ###############################################################
###############################################################
>"\shell_test_$i" ###############################################################
echo *shell_test* ###############################################################
rm *shell_test* ###############################################################
###############################################################
>"\\shell_test_$i" ###############################################################
echo *shell_test* ###############################################################
rm *shell_test* ###############################################################
###############################################################
echo Done;exit ###############################################################
# UNFIXED BUG. bash apparently will expand $i even in terminating delimiter. ###############################################################
# http://www.opengroup.org/onlinepubs/009695399/utilities/xcu_chap02.html ###############################################################
# does not mandate this behavior. ###############################################################
# This is not likely to be used much in real-world. ###############################################################
###############################################################
cat <<\shell_test_$i ###############################################################
Here1 ###############################################################
shell_test_$i ###############################################################
echo Ok1 ###############################################################
###############################################################
cat <<\\shell_test_$i echo "OK"
Here2
\shell_test_$i
echo Ok2
cat <<"\shell_test_$i"
Here3
\shell_test_$i
echo Ok3
cat <<"\\shell_test_$i"
Here4
\shell_test_$i
echo Ok4

View File

@ -1,4 +1,2 @@
Testing multiple redirections to same fd
Hello Hello
Done1 OK
Done2

View File

@ -1,5 +1,3 @@
echo "Testing multiple redirections to same fd" # we had a bug where this would hang
# bug was making us lose fd #1 after this: (head -n 1 <redir6.right)
echo Hello >/dev/null 1>&2 echo OK
echo Done1
echo Done2 >&2

View File

@ -0,0 +1 @@
Ok

View File

@ -0,0 +1,2 @@
echo NOT SHOWN \2>/dev/null
echo Ok

View File

@ -0,0 +1,18 @@
shell_test
\shell_test
\shell_test
\shell_test
Here1
Ok1
Here2
Ok2
Here3
Ok3
Here4
Ok4
Now with variable refs
shell_test_1
\shell_test_1
\shell_test_1
\shell_test_1
Done

View File

@ -0,0 +1,85 @@
rm *shell_test* 2>/dev/null
>\shell_test
echo *shell_test*
rm *shell_test*
>\\shell_test
echo *shell_test*
rm *shell_test*
>"\shell_test"
echo *shell_test*
rm *shell_test*
>"\\shell_test"
echo *shell_test*
rm *shell_test*
cat <<\shell_test
Here1
shell_test
echo Ok1
cat <<\\shell_test
Here2
\shell_test
echo Ok2
cat <<"\shell_test"
Here3
\shell_test
echo Ok3
cat <<"\\shell_test"
Here4
\shell_test
echo Ok4
echo Now with variable refs
i=1
>\shell_test_$i
echo *shell_test*
rm *shell_test*
>\\shell_test_$i
echo *shell_test*
rm *shell_test*
>"\shell_test_$i"
echo *shell_test*
rm *shell_test*
>"\\shell_test_$i"
echo *shell_test*
rm *shell_test*
echo Done;exit
# UNFIXED BUG. bash apparently will expand $i even in terminating delimiter.
# http://www.opengroup.org/onlinepubs/009695399/utilities/xcu_chap02.html
# does not mandate this behavior.
# This is not likely to be used much in real-world.
cat <<\shell_test_$i
Here1
shell_test_$i
echo Ok1
cat <<\\shell_test_$i
Here2
\shell_test_$i
echo Ok2
cat <<"\shell_test_$i"
Here3
\shell_test_$i
echo Ok3
cat <<"\\shell_test_$i"
Here4
\shell_test_$i
echo Ok4

View File

@ -0,0 +1,4 @@
Testing multiple redirections to same fd
Hello
Done1
Done2

View File

@ -0,0 +1,5 @@
echo "Testing multiple redirections to same fd"
# bug was making us lose fd #1 after this:
echo Hello >/dev/null 1>&2
echo Done1
echo Done2 >&2