shell: sync redir/* tests
authorDenys Vlasenko <vda.linux@googlemail.com>
Thu, 6 Jul 2017 19:01:50 +0000 (21:01 +0200)
committerDenys Vlasenko <vda.linux@googlemail.com>
Thu, 6 Jul 2017 19:01:50 +0000 (21:01 +0200)
Note: hush-redir/redir_to_bad_fd.tests currently fails

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
shell/ash_test/ash-redir/redir5.right [new file with mode: 0644]
shell/ash_test/ash-redir/redir5.tests [new file with mode: 0755]
shell/hush_test/hush-redir/redir_to_bad_fd.right [new file with mode: 0644]
shell/hush_test/hush-redir/redir_to_bad_fd.tests [new file with mode: 0755]

diff --git a/shell/ash_test/ash-redir/redir5.right b/shell/ash_test/ash-redir/redir5.right
new file mode 100644 (file)
index 0000000..52cce4f
--- /dev/null
@@ -0,0 +1,4 @@
+Backgrounded pipes shall have their stdin redirected to /dev/null
+Zero:0
+Zero:0
+Done
diff --git a/shell/ash_test/ash-redir/redir5.tests b/shell/ash_test/ash-redir/redir5.tests
new file mode 100755 (executable)
index 0000000..957f9c8
--- /dev/null
@@ -0,0 +1,13 @@
+echo "Backgrounded pipes shall have their stdin redirected to /dev/null"
+
+# 1. bash does not redirect stdin to /dev/null if it is interactive.
+# hush does it always (this is allowed by standards).
+
+# 2. Failure will result in this script hanging
+
+cat & wait; echo Zero:$?
+
+# This does not work for bash! bash bug?
+cat | cat & wait; echo Zero:$?
+
+echo Done
diff --git a/shell/hush_test/hush-redir/redir_to_bad_fd.right b/shell/hush_test/hush-redir/redir_to_bad_fd.right
new file mode 100644 (file)
index 0000000..43b8af2
--- /dev/null
@@ -0,0 +1,2 @@
+./redir_to_bad_fd.tests: line 2: 10: Bad file descriptor
+OK
diff --git a/shell/hush_test/hush-redir/redir_to_bad_fd.tests b/shell/hush_test/hush-redir/redir_to_bad_fd.tests
new file mode 100755 (executable)
index 0000000..91b0c1f
--- /dev/null
@@ -0,0 +1,3 @@
+# ash uses fd 10 (usually) for reading the script
+echo LOST >&10
+echo OK