151 lines
2.7 KiB
Bash
151 lines
2.7 KiB
Bash
#!/bin/bash
|
|
|
|
# this script starts a SecondoMonitor, an OptimizerServer and than
|
|
# it executes a set of scripts gives as arguments in GUI-testrunner style
|
|
# the return value is the amount of failed tests.
|
|
# The outputs of the tests are redirected to TotalTest.log
|
|
|
|
BIN=$SECONDO_BUILD_DIR/bin
|
|
LOGFILEMON=$BIN/TotalTest.monitor.log
|
|
LOGFILEOPT=$BIN/TotalTest.optserver.log
|
|
LOGFILE=$BIN/TotalTest.log
|
|
|
|
PID=$$
|
|
|
|
t=$TMPDIR
|
|
if [ -z "$t" ]; then
|
|
t=$TEMP
|
|
fi
|
|
|
|
if [ -z "$t" ]; then
|
|
t=$TMP
|
|
fi
|
|
if [ -z "$t" ]; then
|
|
if [ -d "/tmp" ]; then
|
|
t="/tmp"
|
|
else
|
|
if [ -d "/var/tmp" ]; then
|
|
t="/var/tmp"
|
|
else
|
|
if [ -d "/usr/tmp" ]; then
|
|
t="/usr/tmp"
|
|
fi
|
|
fi
|
|
fi
|
|
fi
|
|
|
|
if [ -z "$t" ]; then
|
|
echo "cannot find temporal directory"
|
|
exit 1
|
|
fi
|
|
|
|
|
|
|
|
|
|
dir=$t/SecTotal_$PID
|
|
|
|
|
|
mkdir -p $dir
|
|
|
|
if [ $? -ne 0 ]; then
|
|
echo "Directory $dir already exists or no permission to write into parent folder"
|
|
echo "Directory $dir already exists or no permission to write into parent folder" >$LOGFILE
|
|
exit 1
|
|
fi
|
|
|
|
|
|
echo "Use directory $dir as home of the databases"
|
|
echo "Current content "
|
|
ls -l $dir
|
|
|
|
|
|
#overwrite settings in SecondoConfig.ini
|
|
|
|
export SECONDO_PARAM_RTFlags="DEBUG:DemangleStackTrace,CMSG:Color,CTLG:SkipExamples,SI:PrintCounters,SMI:AutoRemoveLogs,Server:BinaryTransfer"
|
|
export SECONDO_PARAM_SecondoHome=$dir
|
|
|
|
|
|
# start the SecondoMonitor
|
|
|
|
if [ $SECONDO_BUILD_DIR = "" ]; then
|
|
echo "Variable SECONDO_BUILD_DIR not defined"
|
|
echo "Variable SECONDO_BUILD_DIR not defined" >$LOGFILE
|
|
rm -rf $dir
|
|
exit 1
|
|
fi
|
|
|
|
# start Monitor
|
|
echo "StartMonitor"
|
|
echo "StartMonitor" >$LOGFILE
|
|
|
|
cd $SECONDO_BUILD_DIR/bin
|
|
./SecondoMonitor -s >$LOGFILEMON 2>&1 </dev/null &
|
|
mon=$!
|
|
monrc=$?
|
|
|
|
|
|
if [ $monrc -ne 0 ]; then
|
|
echo "Problem in starting Monitor" >$LOGFILE 2>&1
|
|
rm -rf $dir
|
|
exit 1
|
|
fi
|
|
|
|
echo "Monitor is running"
|
|
sleep 5
|
|
|
|
echo "StartOptServer"
|
|
|
|
#start OptServer
|
|
cd $SECONDO_BUILD_DIR/Optimizer
|
|
StartOptServer -q -t >$LOGFILEOPT 2>&1 &
|
|
|
|
|
|
echo "Optimizer server is running"
|
|
|
|
sleep 3
|
|
|
|
echo "Start Tests"
|
|
|
|
|
|
declare -i err=0
|
|
cd $SECONDO_BUILD_DIR/Javagui
|
|
runCmd="sgui --testrunner "
|
|
errFiles=""
|
|
|
|
echo -e "Tests from $date \n" >$LOGFILE
|
|
declare -i errors=0
|
|
|
|
for f in $*; do
|
|
echo "run test " $f
|
|
|
|
$runCmd $f >>$LOGFILE 2>&1
|
|
rc=$?
|
|
if [ $rc -ne 0 ]; then
|
|
echo "Test $f failed with return code $rc"
|
|
errFiles=$errFiles"\n $f $errRC"
|
|
let errors++
|
|
else
|
|
echo "Test $f successful"
|
|
fi
|
|
done
|
|
|
|
if [ "$errFiles" != "" ]; then
|
|
echo "There are tests failed $errFiles"
|
|
echo "Failed test: $errFiles" >> $LOGFILE
|
|
else
|
|
echo "All Tests successful"
|
|
echo "All tests successful" >>$LOGFILE
|
|
fi
|
|
|
|
|
|
echo "Terminate OptServer"
|
|
echo "Terminate Monitor"
|
|
kill -SIGTERM $mon 2>/dev/null
|
|
|
|
sleep 5
|
|
|
|
rm -rf $dir
|
|
|
|
exit $errors
|
|
|