aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--shell/ash_test/ash-redir/redir_escapednum.right1
-rwxr-xr-xshell/ash_test/ash-redir/redir_escapednum.tests2
-rw-r--r--shell/ash_test/ash-redir/redir_expand.right18
-rwxr-xr-xshell/ash_test/ash-redir/redir_expand.tests85
-rw-r--r--shell/ash_test/ash-redir/redir_multi.right4
-rwxr-xr-xshell/ash_test/ash-redir/redir_multi.tests5
-rw-r--r--shell/hush_test/hush-redir/redir2.right2
-rwxr-xr-xshell/hush_test/hush-redir/redir2.tests7
-rw-r--r--shell/hush_test/hush-redir/redir4.right19
-rwxr-xr-xshell/hush_test/hush-redir/redir4.tests157
-rw-r--r--shell/hush_test/hush-redir/redir6.right4
-rwxr-xr-xshell/hush_test/hush-redir/redir6.tests8
-rw-r--r--shell/hush_test/hush-redir/redir_escapednum.right1
-rwxr-xr-xshell/hush_test/hush-redir/redir_escapednum.tests2
-rw-r--r--shell/hush_test/hush-redir/redir_expand.right18
-rwxr-xr-xshell/hush_test/hush-redir/redir_expand.tests85
-rw-r--r--shell/hush_test/hush-redir/redir_multi.right4
-rwxr-xr-xshell/hush_test/hush-redir/redir_multi.tests5
18 files changed, 313 insertions, 114 deletions
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 <redir6.right)
+echo OK
diff --git a/shell/hush_test/hush-redir/redir_escapednum.right b/shell/hush_test/hush-redir/redir_escapednum.right
new file mode 100644
index 000000000..7326d9603
--- /dev/null
+++ b/shell/hush_test/hush-redir/redir_escapednum.right
@@ -0,0 +1 @@
+Ok
diff --git a/shell/hush_test/hush-redir/redir_escapednum.tests b/shell/hush_test/hush-redir/redir_escapednum.tests
new file mode 100755
index 000000000..81983cae2
--- /dev/null
+++ b/shell/hush_test/hush-redir/redir_escapednum.tests
@@ -0,0 +1,2 @@
+echo NOT SHOWN \2>/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