vwait-test.sh (1214B)
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