]> git.ipfire.org Git - thirdparty/bash.git/blame - tests/coproc.tests
Bash-4.4 patch 19
[thirdparty/bash.git] / tests / coproc.tests
CommitLineData
a0c0a00f
CR
1: ${TMPDIR:=/tmp}
2TMPOUT=${TMPDIR}/coproc-wait-$BASHPID
3
3185942a
JA
4coproc { echo a b c; sleep 2; }
5
a0c0a00f
CR
6case $COPROC_PID in
7[0-9]*) ;;
8*) echo COPROC_PID not integer ;;
9esac
10
3185942a
JA
11echo ${COPROC[@]}
12
13read LINE <&${COPROC[0]}
14echo $LINE
15
16wait $COPROC_PID
17
18coproc REFLECT { cat - ; }
19
a0c0a00f
CR
20case $REFLECT_PID in
21[0-9]*) ;;
22*) echo REFLECT_PID not integer ;;
23esac
24
3185942a
JA
25echo ${REFLECT[@]}
26
27echo flop >&${REFLECT[1]}
28read LINE <&${REFLECT[0]}
29
30echo $LINE
31
a0c0a00f
CR
32{ sleep 1; kill $REFLECT_PID; } &
33wait $REFLECT_PID >$TMPOUT 2>&1 || echo "coproc.tests: REFLECT: status $?"
34grep 'Terminated.*coproc.*REFLECT' < $TMPOUT >/dev/null 2>&1 || {
35 echo "coproc.tests: wait for REFLECT failed" >&2
36}
37rm -f $TMPOUT
38exec 2>&1
3185942a
JA
39
40coproc xcase -n -u
41
a0c0a00f
CR
42case $COPROC_PID in
43[0-9]*) ;;
44*) echo COPROC_PID not integer ;;
45esac
46
3185942a
JA
47echo ${COPROC[@]}
48
49echo foo >&${COPROC[1]}
50read <&${COPROC[0]}
51
52echo $REPLY
53echo ${COPROC[@]}
54
55cat /etc/passwd | grep root | awk -F: '{print $1;}' | sed 1q
56
57exec 4<&${COPROC[0]}-
58exec >&${COPROC[1]}-
59
60echo ${COPROC[@]}
61
62read foo <&4
63echo $foo >&2
64
65exit 0