Files
secondo/bin/TotalTest
2026-01-23 17:03:45 +08:00

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