summaryrefslogtreecommitdiff
path: root/testautomation/tools/run_tests/run_tests.sh
diff options
context:
space:
mode:
Diffstat (limited to 'testautomation/tools/run_tests/run_tests.sh')
-rwxr-xr-xtestautomation/tools/run_tests/run_tests.sh196
1 files changed, 196 insertions, 0 deletions
diff --git a/testautomation/tools/run_tests/run_tests.sh b/testautomation/tools/run_tests/run_tests.sh
new file mode 100755
index 000000000000..0c4dc85bcc1f
--- /dev/null
+++ b/testautomation/tools/run_tests/run_tests.sh
@@ -0,0 +1,196 @@
+#!/bin/bash
+#*************************************************************************
+#*
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2010 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org 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 Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#########################################################################
+#
+# Owner : andreschnabel@openoffice.org
+#
+# short description : run several testscripts on unix
+# list of scripts to run is read from stdin
+# this script has been derived from former ooo_releasetests.sh
+#
+#########################################################################
+
+
+# set location of testscripts (the 'qatesttool' directory)
+# if this is empty, we try to parse $HOME/.testtoolrc
+sLocation=""
+
+# set location of TestTool
+# (full path including executable 'testtool')
+# if this is empty, we try to parse $HOME/.testtoolrc and use OOoProgramdir
+# on Mac this is VCLTestTool.app/Contents/MacOS/testtool.bin
+#sTestTool="/Users/sca/qa/testtool/VCLTestTool.app/Contents/MacOS/testtool.bin"
+sTestTool=""
+
+#------------------------------------------------------------------------
+#--- internally used functions ---
+#------------------------------------------------------------------------
+function GetValueFromSection ()
+# call with NameOfValue Section file
+{
+ $AWK -v sVarName="$1" -v sSectionName="$2" \
+ 'BEGIN { bInSection = 0}
+ { if ( index ($0 ,"[" sSectionName "]") > 0 )
+ bInSection = 1
+ else if ( (bInSection == 1) && (substr ($0,1,1) == "[") )
+ bInSection = 0
+ if ( (bInSection == 1) && (index ($0 , sVarName "=") == 1)) {
+ sub(/\r$/,"")
+ print substr ($0,index ($0 ,"=") + 1)
+ }
+ }' < "$3"
+}
+
+#------------------------------------------------------------------------
+#--- the main script starts here ---
+#------------------------------------------------------------------------
+
+#platform specific settings
+case `uname -s` in
+ Darwin)
+ testtoolrc="$HOME/Library/Application Support/.testtoolrc"
+ KILLOFFICEALL="/usr/bin/killall -9 soffice.bin"
+ AWK=awk
+ ;;
+ SunOS)
+ testtoolrc="$HOME/.testtoolrc"
+ KILLOFFICEALL="pkill -9 soffice.bin"
+ AWK=nawk
+ ;;
+ *)
+ testtoolrc="$HOME/.testtoolrc"
+ KILLOFFICEALL="pkill -9 soffice.bin"
+ AWK=awk
+ ;;
+esac
+
+# if sLocation is not set manuall try to get the location form testtoolrc
+if [ -z "$sLocation" ]
+then
+ # first read the profile
+ sProfile=`GetValueFromSection CurrentProfile Misc "$testtoolrc"`
+ # then read the BaseDir for the profile
+ sLocation=`GetValueFromSection BaseDir "$sProfile" "$testtoolrc"`
+ sLocation="$sLocation/"
+fi
+
+# set location of close-office file
+# (see cvs)
+sExitOfficeBas="${sLocation}global/tools/closeoffice.bas"
+sResetOfficeBas="${sLocation}global/tools/resetoffice.bas"
+
+# if sTestTool is not set manuall try to get the location form testtoolrc
+if [ -z "$sTestTool" ]
+then
+ sTestTool=`GetValueFromSection Current OOoProgramDir "$testtoolrc"`
+ sTestTool="$sTestTool/basis-link/program/testtool.bin"
+fi
+
+
+
+echo "****************************************************"
+echo "************ STARTING ************"
+echo "****************************************************"
+
+# check if there is a virtual display available
+
+echo "DISPLAY is set to: " $DISPLAY
+echo "My name is: " $USER
+
+# test if location exists
+if [ -d "$sLocation" ]
+then
+ echo "using scripts from $sLocation"
+else
+ echo "test scripts not found at $sLocation"
+ echo "Please set sLocation in this script"
+ exit 1
+fi
+
+# test if testtool.bin exists
+if [ -f "$sTestTool" ]
+then
+ echo "using testtool from $sTestTool"
+else
+ echo "testtool not found at $sTestTool"
+ echo "Please set sTestTool in this script"
+ exit 1
+fi
+
+i=0
+
+while read x ;
+do
+ echo "Running soffices' processes: "
+ # kill office, if exists
+ `$KILLOFFICEALL`
+
+ echo "****************************************************"
+ x=`echo "$x"|sed s/[[:blank:]]*$//` #cut all trailing blanks
+ sTest="$sLocation$x"
+ if [ -f "$sTest" ]; then
+
+ # two pass logic - first pass is the real test, second pass is reset office, third is closeoffice
+ for z in "1" "2";
+ do
+ echo "running <$sTest>"
+ "$sTestTool" -run "$sTest" &
+ sleep 5
+ echo " "
+
+ ######### save the PID from the last Background job
+ testtoolpid=$!
+ echo "PID of Testtool: " $testtoolpid
+
+ if [ `ps -A | grep -v "grep" | grep $testtoolpid | wc -l` -gt 0 ] ; then
+ echo " Successfully started"
+ else
+ echo " There might be something wrong with starting the Testtool!"
+ fi
+
+ ######### wait until Testtool has finished & closed
+ while [ `ps -A | grep -v "grep" | grep $testtoolpid | wc -l` -gt 0 ] ;
+ do
+ sleep 5
+ i=$((i+5))
+ done
+
+ ####### for the second run use the office reset script!
+ case $z in
+ "1") sTest="$sResetOfficeBas";;
+ esac
+ done
+ else
+ echo "Error: file <$sTest> not found"
+ fi
+done
+
+echo "Duration:" $((i/60)) "min" $((i%60)) "sec "
+
+echo "****************************************************"
+echo "************ FINISHED ************"
+echo "****************************************************"