summary refs log tree commit diff
path: root/bin/1sh/tests/execution/redir1.0
diff options
context:
space:
mode:
Diffstat (limited to 'bin/1sh/tests/execution/redir1.0')
-rw-r--r--bin/1sh/tests/execution/redir1.027
1 files changed, 27 insertions, 0 deletions
diff --git a/bin/1sh/tests/execution/redir1.0 b/bin/1sh/tests/execution/redir1.0
new file mode 100644
index 00000000..797e42b2
--- /dev/null
+++ b/bin/1sh/tests/execution/redir1.0
@@ -0,0 +1,27 @@
+# $FreeBSD: releng/12.1/bin/sh/tests/execution/redir1.0 211408 2010-08-16 22:23:19Z jilles $
+trap ': $((brokenpipe+=1))' PIPE
+
+P=${TMPDIR:-/tmp}
+cd $P
+T=$(mktemp -d sh-test.XXXXXX)
+cd $T
+
+brokenpipe=0
+mkfifo fifo1 fifo2
+read dummy >fifo2 <fifo1 &
+{
+	exec 4>fifo2
+} 3<fifo2 # Formerly, sh would keep fd 3 and a duplicate of it open.
+echo dummy >fifo1
+if [ $brokenpipe -ne 0 ]; then
+	rc=3
+fi
+wait
+echo dummy >&4 2>/dev/null
+if [ $brokenpipe -eq 1 ]; then
+	: ${rc:=0}
+fi
+
+rm fifo1 fifo2
+rmdir ${P}/${T}
+exit ${rc:-3}