From df303ae11731b07f63b7034a7c141931d7a6fcbb Mon Sep 17 00:00:00 2001 From: Denys Vlasenko Date: Sun, 2 Oct 2016 18:32:52 +0200 Subject: [PATCH] sh testsuite: sync ash-redir/ and hush-redir/ Signed-off-by: Denys Vlasenko --- .../ash_test/ash-redir/redir_escapednum.right | 1 + .../ash_test/ash-redir/redir_escapednum.tests | 2 + shell/ash_test/ash-redir/redir_expand.right | 18 ++ shell/ash_test/ash-redir/redir_expand.tests | 85 ++++++++++ shell/ash_test/ash-redir/redir_multi.right | 4 + shell/ash_test/ash-redir/redir_multi.tests | 5 + shell/hush_test/hush-redir/redir2.right | 2 +- shell/hush_test/hush-redir/redir2.tests | 7 +- shell/hush_test/hush-redir/redir4.right | 19 +-- shell/hush_test/hush-redir/redir4.tests | 157 ++++++++---------- shell/hush_test/hush-redir/redir6.right | 4 +- shell/hush_test/hush-redir/redir6.tests | 8 +- .../hush-redir/redir_escapednum.right | 1 + .../hush-redir/redir_escapednum.tests | 2 + shell/hush_test/hush-redir/redir_expand.right | 18 ++ shell/hush_test/hush-redir/redir_expand.tests | 85 ++++++++++ shell/hush_test/hush-redir/redir_multi.right | 4 + shell/hush_test/hush-redir/redir_multi.tests | 5 + 18 files changed, 313 insertions(+), 114 deletions(-) create mode 100644 shell/ash_test/ash-redir/redir_escapednum.right create mode 100755 shell/ash_test/ash-redir/redir_escapednum.tests create mode 100644 shell/ash_test/ash-redir/redir_expand.right create mode 100755 shell/ash_test/ash-redir/redir_expand.tests create mode 100644 shell/ash_test/ash-redir/redir_multi.right create mode 100755 shell/ash_test/ash-redir/redir_multi.tests create mode 100644 shell/hush_test/hush-redir/redir_escapednum.right create mode 100755 shell/hush_test/hush-redir/redir_escapednum.tests create mode 100644 shell/hush_test/hush-redir/redir_expand.right create mode 100755 shell/hush_test/hush-redir/redir_expand.tests create mode 100644 shell/hush_test/hush-redir/redir_multi.right create mode 100755 shell/hush_test/hush-redir/redir_multi.tests diff --git a/shell/ash_test/ash-redir/redir_escapednum.right b/shell/ash_test/ash-redir/redir_escapednum.right new file mode 100644 index 000000000..7326d9603 --- /dev/null +++ b/shell/ash_test/ash-redir/redir_escapednum.right @@ -0,0 +1 @@ +Ok diff --git a/shell/ash_test/ash-redir/redir_escapednum.tests b/shell/ash_test/ash-redir/redir_escapednum.tests new file mode 100755 index 000000000..81983cae2 --- /dev/null +++ b/shell/ash_test/ash-redir/redir_escapednum.tests @@ -0,0 +1,2 @@ +echo NOT SHOWN \2>/dev/null +echo Ok diff --git a/shell/ash_test/ash-redir/redir_expand.right b/shell/ash_test/ash-redir/redir_expand.right new file mode 100644 index 000000000..ead25f603 --- /dev/null +++ b/shell/ash_test/ash-redir/redir_expand.right @@ -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 diff --git a/shell/ash_test/ash-redir/redir_expand.tests b/shell/ash_test/ash-redir/redir_expand.tests new file mode 100755 index 000000000..c50b8cedf --- /dev/null +++ b/shell/ash_test/ash-redir/redir_expand.tests @@ -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 diff --git a/shell/ash_test/ash-redir/redir_multi.right b/shell/ash_test/ash-redir/redir_multi.right new file mode 100644 index 000000000..a97c4bdf1 --- /dev/null +++ b/shell/ash_test/ash-redir/redir_multi.right @@ -0,0 +1,4 @@ +Testing multiple redirections to same fd +Hello +Done1 +Done2 diff --git a/shell/ash_test/ash-redir/redir_multi.tests b/shell/ash_test/ash-redir/redir_multi.tests new file mode 100755 index 000000000..c639ebb2d --- /dev/null +++ b/shell/ash_test/ash-redir/redir_multi.tests @@ -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 diff --git a/shell/hush_test/hush-redir/redir2.right b/shell/hush_test/hush-redir/redir2.right index 7326d9603..d86bac9de 100644 --- a/shell/hush_test/hush-redir/redir2.right +++ b/shell/hush_test/hush-redir/redir2.right @@ -1 +1 @@ -Ok +OK diff --git a/shell/hush_test/hush-redir/redir2.tests b/shell/hush_test/hush-redir/redir2.tests index 81983cae2..61ccea30c 100755 --- a/shell/hush_test/hush-redir/redir2.tests +++ b/shell/hush_test/hush-redir/redir2.tests @@ -1,2 +1,5 @@ -echo NOT SHOWN \2>/dev/null -echo Ok +# ash once couldn't redirect above fd#9 +exec 1>/dev/null +(echo LOST1 >&22) 22>&1 +(echo LOST2 >&22) 22>&1 +(echo OK >&22) 22>&2 diff --git a/shell/hush_test/hush-redir/redir4.right b/shell/hush_test/hush-redir/redir4.right index ead25f603..d86bac9de 100644 --- a/shell/hush_test/hush-redir/redir4.right +++ b/shell/hush_test/hush-redir/redir4.right @@ -1,18 +1 @@ -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 +OK diff --git a/shell/hush_test/hush-redir/redir4.tests b/shell/hush_test/hush-redir/redir4.tests index c50b8cedf..4bdf5ae27 100755 --- a/shell/hush_test/hush-redir/redir4.tests +++ b/shell/hush_test/hush-redir/redir4.tests @@ -1,85 +1,72 @@ -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 +# ash uses fd 10 (usually) for reading the script +exec 13>&- +exec 12>&- +exec 11>&- +exec 10>&- +# some amount of input is prefetched. +# make sure final echo is far enough to not be prefetched. +############################################################### +############################################################### +############################################################### +############################################################### +############################################################### +############################################################### +############################################################### +############################################################### +############################################################### +############################################################### +############################################################### +############################################################### +############################################################### +############################################################### +############################################################### +############################################################### +############################################################### +############################################################### +############################################################### +############################################################### +############################################################### +############################################################### +############################################################### +############################################################### +############################################################### +############################################################### +############################################################### +############################################################### +############################################################### +############################################################### +############################################################### +############################################################### +############################################################### +############################################################### +############################################################### +############################################################### +############################################################### +############################################################### +############################################################### +############################################################### +############################################################### +############################################################### +############################################################### +############################################################### +############################################################### +############################################################### +############################################################### +############################################################### +############################################################### +############################################################### +############################################################### +############################################################### +############################################################### +############################################################### +############################################################### +############################################################### +############################################################### +############################################################### +############################################################### +############################################################### +############################################################### +############################################################### +############################################################### +############################################################### +echo "OK" diff --git a/shell/hush_test/hush-redir/redir6.right b/shell/hush_test/hush-redir/redir6.right index a97c4bdf1..ed754df78 100644 --- a/shell/hush_test/hush-redir/redir6.right +++ b/shell/hush_test/hush-redir/redir6.right @@ -1,4 +1,2 @@ -Testing multiple redirections to same fd Hello -Done1 -Done2 +OK diff --git a/shell/hush_test/hush-redir/redir6.tests b/shell/hush_test/hush-redir/redir6.tests index c639ebb2d..33b6d4cd4 100755 --- a/shell/hush_test/hush-redir/redir6.tests +++ b/shell/hush_test/hush-redir/redir6.tests @@ -1,5 +1,3 @@ -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 +# we had a bug where this would hang +(head -n 1 /dev/null +echo Ok diff --git a/shell/hush_test/hush-redir/redir_expand.right b/shell/hush_test/hush-redir/redir_expand.right new file mode 100644 index 000000000..ead25f603 --- /dev/null +++ b/shell/hush_test/hush-redir/redir_expand.right @@ -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 diff --git a/shell/hush_test/hush-redir/redir_expand.tests b/shell/hush_test/hush-redir/redir_expand.tests new file mode 100755 index 000000000..c50b8cedf --- /dev/null +++ b/shell/hush_test/hush-redir/redir_expand.tests @@ -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 diff --git a/shell/hush_test/hush-redir/redir_multi.right b/shell/hush_test/hush-redir/redir_multi.right new file mode 100644 index 000000000..a97c4bdf1 --- /dev/null +++ b/shell/hush_test/hush-redir/redir_multi.right @@ -0,0 +1,4 @@ +Testing multiple redirections to same fd +Hello +Done1 +Done2 diff --git a/shell/hush_test/hush-redir/redir_multi.tests b/shell/hush_test/hush-redir/redir_multi.tests new file mode 100755 index 000000000..c639ebb2d --- /dev/null +++ b/shell/hush_test/hush-redir/redir_multi.tests @@ -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