support of gnome-terminal in UML testing
authorAndreas Steffen <andreas.steffen@strongswan.org>
Fri, 29 Feb 2008 20:17:28 +0000 (20:17 -0000)
committerAndreas Steffen <andreas.steffen@strongswan.org>
Fri, 29 Feb 2008 20:17:28 +0000 (20:17 -0000)
testing/scripts/gstart-umls [new file with mode: 0755]
testing/testing.conf

diff --git a/testing/scripts/gstart-umls b/testing/scripts/gstart-umls
new file mode 100755 (executable)
index 0000000..90d2e21
--- /dev/null
@@ -0,0 +1,127 @@
+#!/bin/bash
+# starts the UML instances in an xterm (requires X11R6)
+#
+# Copyright (C) 2004  Eric Marchionni, Patrik Rayo
+# Zuercher Hochschule Winterthur
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by the
+# Free Software Foundation; either version 2 of the License, or (at your
+# option) any later version.  See <http://www.fsf.org/copyleft/gpl.txt>.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+# for more details.
+#
+# RCSID $Id: xstart-umls 3273 2007-10-08 20:18:34Z andreas $
+
+DIR=`dirname $0`
+
+source $DIR/function.sh
+
+[ -f $DIR/../testing.conf ] || die "Configuration file 'testing.conf' not found"
+
+source $DIR/../testing.conf
+
+if [ "$#" -eq 0 ]
+then
+    HOSTS=$STRONGSWANHOSTS
+else
+    HOSTS=$*
+fi
+
+BOOTING_HOSTS=""
+count_max=12
+count=0
+
+#position of xterm window on the desktop
+x0=8
+y0=52
+dx=12
+dy=24
+
+for host in $HOSTS
+do
+    up=0
+
+    if [ -d ~/.uml/${host} ]
+    then
+       pid=`cat ~/.uml/${host}/pid`
+       up=`ps up $pid | wc -l`
+    fi
+    
+    if [ $up -eq 2 ]
+    then
+       cecho " * Great, ${host} is already running!"
+    else
+       rm -rf ~/.uml/${host}
+       BOOTING_HOSTS="$BOOTING_HOSTS ${host}"
+       let "count_max += 12"
+
+       UMLHOSTFS=$BUILDDIR/root-fs/gentoo-fs-${host}
+       [ -f  $UMLHOSTFS ] || die "!! uml root file system '$UMLHOSTFS' not found"
+
+       cecho-n " * Starting ${host}.."
+       eval gnome-terminal --title=${host} --geometry="+${x0}+${y0}" -show-menubar --execute "$UMLKERNEL \
+            umid=${host} \
+           ubda=$UMLHOSTFS \
+           \$SWITCH_${host} \
+           mem=${MEM}M con=pty con0=fd:0,fd:1" &
+        cgecho "done"
+    fi
+    let "x0+=dx"
+    let "y0+=dy"
+    sleep 15
+done
+
+if [ -z "$BOOTING_HOSTS" ]
+then
+    exit 0
+fi
+
+cecho " * Waiting for the uml instances to finish booting"
+
+for host in $BOOTING_HOSTS
+do
+    cecho-n " * Checking on $host.."
+
+    while [ $count -lt $count_max ] && [ ! -d ~/.uml/$host ]
+    do
+       cecho-n "."
+       sleep 5
+       let "count+=1"
+    done
+
+    if [ $count -ge $count_max ]
+    then
+       cecho "exit"
+       exit 1
+    fi
+
+    up=`uml_mconsole $host proc net/route 2> /dev/null | grep eth0 | wc -l`
+
+    while [ $count -lt $count_max ] && [ $up -eq 0 ]
+    do
+       cecho-n "."
+       sleep 5
+       up=`uml_mconsole $host proc net/route 2> /dev/null | grep eth0 | wc -l`
+       let "count+=1"
+    done
+
+    if [ $count -ge $count_max ]
+    then
+       cecho "exit"
+       exit 1
+    else
+       cgecho "up"
+    fi
+
+    if [ "$host" = "alice" ]
+    then
+       eval ipv4_${host}="`echo $HOSTNAMEIPV4 | sed -n -e "s/^.*${host},//gp" | awk -F, '{ print $1 }' | awk '{ print $1 }'`"
+       ssh root@$ipv4_alice /etc/init.d/net.eth1 stop
+    fi
+done
+
+cecho " * All uml instances are up now"
index 01480f9..6dbc306 100755 (executable)
@@ -87,8 +87,10 @@ ENABLE_STOP_TESTING="no"
 ##############################################################
 # How to start the UMLs?
 #
-# Start the UML instance in KDE konsole (requires KDE)
-UMLSTARTMODE="konsole"
+# Start the UML instance in a KDE konsole (requires KDE)
+# UMLSTARTMODE="konsole"
+# Start the UML instance in a gnome-terminal (requires gnome)
+UMLSTARTMODE="gnome-terminal"
 # Start the UML instance in an xterm (requires X11R6)
 # UMLSTARTMODE="xterm"
 # Start the UML instance without a terminal window