merge with 0.30.213
[util-vserver.git] / src / testsuite / vwait-test.sh
1 #! /bin/bash
2
3 : ${srcdir:=.}
4 : ${builddir:=.}
5 : ${XID:=1234}
6
7 test "$(id -u)" -eq 0 || {
8     echo "Skipping vwait-test; it requires root rights" >&2
9     exit 0
10 }
11
12
13 ! $builddir/src/vserver-info $XID RUNNING || {
14     echo "Skipping vwait-test because context '$XID' is already used" >&2
15     exit 0
16 }
17
18 tmpdir=$(mktemp -d /tmp/vwaittest.XXXXXX)
19 trap "rm -rf $tmpdir" EXIT
20
21 : ${VWAIT:=$builddir/src/vwait}
22 : ${CHCONTEXT:=$builddir/src/chcontext-compat}
23
24
25
26 ############
27 $CHCONTEXT  --disconnect --silent --xid $XID /bin/bash -c "sleep 2"
28 status=$($VWAIT --status-fd 1 -- $XID)
29 rc=$?
30
31 case $status  in
32     (FINISHED\ *)       ;;
33     (*)         echo "vwait exited with bad status '$status'/$rc" >&2
34                 exit 1
35 esac
36
37 wait
38
39
40 ############
41 $CHCONTEXT  --disconnect --silent --xid $XID /bin/bash -c "sleep 5"
42 status=$($VWAIT --status-fd 1 --timeout 1 -- $XID)
43 rc=$?
44
45 case $status  in
46     (TIMEOUT)   ;;
47     (*)         echo "vwait exited with bad status '$status'/$rc" >&2
48                 exit 1
49 esac
50
51
52
53 ############
54 $CHCONTEXT --disconnect --silent --xid $XID /bin/bash -c "sleep 5"
55 status=$($VWAIT --terminate --status-fd 1 --timeout 1 -- $XID)
56 rc=$?
57
58 case $status  in
59     (KILLED)    ;;
60     (*)         echo "vwait exited with bad status '$status'/$rc" >&2
61                 exit 1
62 esac