Support VNC=1 to automatically start up a vnc viewer.
[grml-unittests.git] / framework.sh
index 67dceb9..52bddd2 100644 (file)
@@ -1,9 +1,10 @@
-#!/bin/sh
+#!/bin/zsh
 
 TIMEOUT_TIME=60
 export URL_PREFIX=http://10.0.2.2
 BAILOUT_CMD=""
 
+
 timeout_handler() {
     wget -q --post-data="Timeout" -O /dev/null http://localhost:$STATUS_PORT//FAIL
     bailout
@@ -16,13 +17,24 @@ bailout() {
 
 run_test()
 {
-    gatling -n -p $COMMON_PORT >/dev/null 2>&1 &
+    python -m SimpleHTTPServer $COMMON_PORT >/dev/null 2>&1 &
     GATLING_PID=$!
     kvm -kernel "$KERNEL" -initrd "$INITRD" -append "$CMDLINE"  -vnc :0 -cdrom "$CDROM" -boot d $KVM_PARAMS &
     KVM_PID=$!
     $SERVER_STATUS -p $STATUS_PORT -t "$TEST_NAME" &
     SERVER_PID=$!
+    if [ -n "$VNC" -a -n "$VNCVIEWER" ] ; then
+        while $VNCSTATUS; do
+         VNCSTATUS=true
+         sleep 1
+          if lsof -i -n | grep ':5900' ; then
+           $VNCVIEWER localhost &
+           VNCSTATUS=false
+          fi
+        done
+    fi
 }
+
 timeout()
 {
     ( sleep $TIMEOUT_TIME ; kill -16 $$; )2>/dev/null &
@@ -35,6 +47,14 @@ trap bailout QUIT INT EXIT
 COMMON_PORT=0
 STATUS_PORT=0
 
+# $RANDOM is not set in dash, make sure a user who doesn't use
+# something like /bin/zsh in his test scripts doesn't get obscure
+# shell error messages
+if [ -z "$RANDOM" ] ; then
+    echo "Variable \$RANDOM not set, can not choose random port. Exiting.">&2
+    bailout
+fi
+
 while [ $COMMON_PORT -lt 1024 ] || [  $STATUS_PORT -lt 1024 ] ; do
     COMMON_PORT=$RANDOM
     STATUS_PORT=$RANDOM