nes-proj/regression-tests/simexec.sh
Moritz 'Morty' Strübe dcbd7936ad Move simulation execution from Makefile to Bash script; show Progress
Additional code is needed to show the progress. Otherwise Travis is
likely to become unhappy and terminates the job. This was no fun within
the Makefile. Moving the execution to a Bash script allows better
maintainability.
In case of an error the error all logs will be printed when using a CI.
2013-11-11 08:18:35 +01:00

69 lines
1.1 KiB
Bash
Executable File

#!/bin/bash
RUNALL=$1
CSC=$2
CONTIKI=$3
BASENAME=$4
RANDOMSEED=$5
#set -x
echo -n "Running test $BASENAME "
java -Xshare:on -jar $CONTIKI/tools/cooja/dist/cooja.jar -nogui=$CSC -contiki=$CONTIKI -random-seed=$RANDOMSEED > $BASENAME.log &
JPID=$!
# Copy the log and only print "." if it changed
touch $BASENAME.log.prog
while kill -0 $JPID 2> /dev/null
do
sleep 1
diff $BASENAME.log $BASENAME.log.prog > /dev/null
if [ $? -ne 0 ]
then
echo -n "."
cp $BASENAME.log $BASENAME.log.prog
fi
done
rm $BASENAME.log.prog
wait $JPID
JRV=$?
if [ $JRV -eq 0 ] ; then
touch COOJA.testlog;
mv COOJA.testlog $BASENAME.testlog
echo " OK"
exit 0
fi
# In case of failure
echo " FAIL ಠ_ಠ" | tee -a COOJA.testlog;
#Verbose output when using CI
if [ "$CI" = "true" ]; then
echo "==== COOJA.log ====" ; cat COOJA.log;
echo "==== COOJA.testlog ====" ; cat COOJA.testlog;
else
tail -50 COOJA.log ;
fi;
mv COOJA.testlog $BASENAME.faillog
# We do not want Make to stop -> Return 0
if [ "$RUNALL" = "true" ] ; then
touch COOJA.testlog;
mv COOJA.testlog $BASENAME.testlog;
exit 0
fi
#This is a failure
exit 1