added 'vwait-test.sh'
authorEnrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
Sat, 29 Oct 2005 16:52:30 +0000 (16:52 +0000)
committerEnrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
Sat, 29 Oct 2005 16:52:30 +0000 (16:52 +0000)
git-svn-id: http://svn.linux-vserver.org/svn/util-vserver/trunk@2221 94cd875c-1c1d-0410-91d2-eb244daf1a30

util-vserver/src/testsuite/Makefile-files
util-vserver/src/testsuite/vwait-test.sh [new file with mode: 0755]

index 973809a..3edd389 100644 (file)
@@ -51,7 +51,8 @@ TESTS +=                              $(src_testsuite_check_active_PRGS) \
 
 EXTRA_DIST +=                          $(src_testsuite_check_src_SCRPTS) \
                                        src/testsuite/vunify-test.sh \
-                                       src/testsuite/hashcalc.sh
+                                       src/testsuite/hashcalc.sh \
+                                       src/testsuite/vwait-test.sh
 
 src_testsuite_rpm_fake_test_SOURCES =  src/testsuite/rpm-fake-test.c
 
diff --git a/util-vserver/src/testsuite/vwait-test.sh b/util-vserver/src/testsuite/vwait-test.sh
new file mode 100755 (executable)
index 0000000..3b8d041
--- /dev/null
@@ -0,0 +1,62 @@
+#! /bin/bash
+
+: ${srcdir:=.}
+: ${builddir:=.}
+: ${XID:=1234}
+
+test "$(id -u)" -eq 0 || {
+    echo "Skipping vwait-test; it requires root rights" >&2
+    exit 0
+}
+
+
+! $builddir/src/vserver-info $XID RUNNING || {
+    echo "Skipping vwait-test because context '$XID' is already used" >&2
+    exit 0
+}
+
+tmpdir=$(mktemp -d /tmp/vwaittest.XXXXXX)
+trap "rm -rf $tmpdir" EXIT
+
+: ${VWAIT:=$builddir/src/vwait}
+: ${CHCONTEXT:=$builddir/src/chcontext-compat}
+
+
+
+############
+$CHCONTEXT  --disconnect --silent --xid $XID /bin/bash -c "sleep 2"
+status=$($VWAIT --status-fd 1 -- $XID)
+rc=$?
+
+case $status  in
+    (FINISHED\ *)      ;;
+    (*)                echo "vwait exited with bad status '$status'/$rc" >&2
+               exit 1
+esac
+
+wait
+
+
+############
+$CHCONTEXT  --disconnect --silent --xid $XID /bin/bash -c "sleep 5"
+status=$($VWAIT --status-fd 1 --timeout 1 -- $XID)
+rc=$?
+
+case $status  in
+    (TIMEOUT)  ;;
+    (*)                echo "vwait exited with bad status '$status'/$rc" >&2
+               exit 1
+esac
+
+
+
+############
+$CHCONTEXT --disconnect --silent --xid $XID /bin/bash -c "sleep 5"
+status=$($VWAIT --terminate --status-fd 1 --timeout 1 -- $XID)
+rc=$?
+
+case $status  in
+    (KILLED)   ;;
+    (*)                echo "vwait exited with bad status '$status'/$rc" >&2
+               exit 1
+esac