Support VNC=1 to automatically start up a vnc viewer.
authorMichael Prokop <mika@grml.org>
Mon, 17 May 2010 10:51:15 +0000 (12:51 +0200)
committerMichael Prokop <mika@grml.org>
Mon, 17 May 2010 10:51:15 +0000 (12:51 +0200)
framework.sh
run_tests.sh

index 292820b..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
@@ -22,7 +23,18 @@ run_test()
     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,7 +47,9 @@ trap bailout QUIT INT EXIT
 COMMON_PORT=0
 STATUS_PORT=0
 
-# $RANDOM is not set in dash
+# $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
index 4acef51..a1cad19 100755 (executable)
@@ -1,9 +1,17 @@
 #!/bin/zsh
 if [ $# -lt 2 ] ; then
-    echo "Usage: $0 cdrom mountpoint [tests]"
+    echo "Usage: $0 cdrom mountpoint [tests]">&2
     exit 1
 fi
 
+# support VNC=1 for automatically starting up vncviewer while running tests
+# if $VNCVIEWER isn't set try to figure out which one could be used
+if [ -z "$VNCVIEWER" ] ; then
+    for vncviewer in xvnc4viewer Xtightvnc x11vnc vncviewer; do
+        [[ -n ${commands[$vncviewer]} ]] && export VNCVIEWER=$vncviewer
+    done
+fi
+
 export CDROM="$1"
 export KERNEL=$(find "$2"/boot/ -name linux26)
 export INITRD=$(find "$2"/boot/ -name initrd.gz)
@@ -19,6 +27,7 @@ if [ -n "$1" ] ; then
 else
     TESTS=(*(/))
 fi
+
 for dir in $TESTS ; do
     [ ! -x $dir ] && continue
     cd $dir