1*3e3895bfSKrzysztof Piecuch# $FreeBSD: head/bin/sh/tests/execution/redir1.0 211408 2010-08-16 22:23:19Z jilles $
23df4d8b0SPeter Avalostrap ': $((brokenpipe+=1))' PIPE
33df4d8b0SPeter Avalos
43df4d8b0SPeter AvalosP=${TMPDIR:-/tmp}
53df4d8b0SPeter Avaloscd $P
63df4d8b0SPeter AvalosT=$(mktemp -d sh-test.XXXXXX)
73df4d8b0SPeter Avaloscd $T
83df4d8b0SPeter Avalos
93df4d8b0SPeter Avalosbrokenpipe=0
103df4d8b0SPeter Avalosmkfifo fifo1 fifo2
113df4d8b0SPeter Avalosread dummy >fifo2 <fifo1 &
123df4d8b0SPeter Avalos{
133df4d8b0SPeter Avalos	exec 4>fifo2
143df4d8b0SPeter Avalos} 3<fifo2 # Formerly, sh would keep fd 3 and a duplicate of it open.
153df4d8b0SPeter Avalosecho dummy >fifo1
163df4d8b0SPeter Avalosif [ $brokenpipe -ne 0 ]; then
173df4d8b0SPeter Avalos	rc=3
183df4d8b0SPeter Avalosfi
193df4d8b0SPeter Avaloswait
203df4d8b0SPeter Avalosecho dummy >&4 2>/dev/null
213df4d8b0SPeter Avalosif [ $brokenpipe -eq 1 ]; then
223df4d8b0SPeter Avalos	: ${rc:=0}
233df4d8b0SPeter Avalosfi
243df4d8b0SPeter Avalos
253df4d8b0SPeter Avalosrm fifo1 fifo2
263df4d8b0SPeter Avalosrmdir ${P}/${T}
273df4d8b0SPeter Avalosexit ${rc:-3}
28