xref: /freebsd/bin/sh/tests/execution/redir2.0 (revision d0b2dbfa0ecf2bbc9709efc5e20baf8e4b44bbbf)
1*13de33a5SJulio Merinotrap ': $((brokenpipe+=1))' PIPE
2*13de33a5SJulio Merino
3*13de33a5SJulio MerinoP=${TMPDIR:-/tmp}
4*13de33a5SJulio Merinocd $P
5*13de33a5SJulio MerinoT=$(mktemp -d sh-test.XXXXXX)
6*13de33a5SJulio Merinocd $T
7*13de33a5SJulio Merino
8*13de33a5SJulio Merinobrokenpipe=0
9*13de33a5SJulio Merinomkfifo fifo1 fifo2
10*13de33a5SJulio Merino{
11*13de33a5SJulio Merino	{
12*13de33a5SJulio Merino		exec ${SH} -c 'exec <fifo1; read dummy'
13*13de33a5SJulio Merino	} 7<&- # fifo2 should be kept open, but not passed to programs
14*13de33a5SJulio Merino	true
15*13de33a5SJulio Merino} 7<fifo2 &
16*13de33a5SJulio Merino
17*13de33a5SJulio Merinoexec 4>fifo2
18*13de33a5SJulio Merinoexec 3>fifo1
19*13de33a5SJulio Merinoecho dummy >&4 2>/dev/null
20*13de33a5SJulio Merinoif [ $brokenpipe -eq 1 ]; then
21*13de33a5SJulio Merino	: ${rc:=0}
22*13de33a5SJulio Merinofi
23*13de33a5SJulio Merinoecho dummy >&3
24*13de33a5SJulio Merinowait
25*13de33a5SJulio Merino
26*13de33a5SJulio Merinorm fifo1 fifo2
27*13de33a5SJulio Merinormdir ${P}/${T}
28*13de33a5SJulio Merinoexit ${rc:-3}
29