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