Files
WFR-UnitTests/bin/unittests.sh
T
2017-07-24 16:37:13 +02:00

120 lines
3.5 KiB
Bash
Executable File

#!/bin/bash
if [ "$1" != "" ]; then
BIN_BASE=$1
else
BIN_BASE="."
fi
if [ "$2" != "" ]; then
LIBRARY_PATH=$2:$LD_LIBRARY_PATH
else
LIBRARY_PATH=../lib:$LD_LIBRARY_PATH
fi
SUCCESS_COUNT=0
FAILURE_COUNT=0
TOTAL_COUNT=0
exec_test() {
TIMELIMIT="$1"
BINARY="$2"
PROLOG="Running $BINARY"
echo ""
echo -n -e "$PROLOG"
let TOTAL_COUNT=$TOTAL_COUNT+1
#echo LD_LIBRARY_PATH=$LIBRARY_PATH timeout $TIMELIMIT ./$BINARY
OUTPUT=$(LD_LIBRARY_PATH=$LIBRARY_PATH timeout $TIMELIMIT ./$BINARY 1>/dev/null 2>&1)
CODE=$?
RESULT=""
REASON=""
if [ $CODE -eq 0 ]; then
RESULT="\e[1m\e[32mOk"
let SUCCESS_COUNT=$SUCCESS_COUNT+1
elif [ $CODE -eq 124 ]; then
RESULT="\e[1m\e[31mFailure"
REASON="Timeout"
let FAILURE_COUNT=$FAILURE_COUNT+1
elif [ $CODE -eq 134 ]; then
RESULT="\e[1m\e[31mFailure"
REASON="Exception"
let FAILURE_COUNT=$FAILURE_COUNT+1
else
RESULT="\e[1m\e[31mFailure"
REASON="Unknown"
let FAILURE_COUNT=$FAILURE_COUNT+1
fi
STATUSMSG=$RESULT
if [ -n "$REASON" ]; then
STATUSMSG="$STATUSMSG ($REASON)"
fi
STATUSMSG="$STATUSMSG\e[0m"
blanks=" "
echo -e "${blanks:0:${#width}-${#PROLOG}}$STATUSMSG"
if [ -n "$OUTPUT" ]; then
echo -e "$OUTPUT"
fi
}
# Run unit tests
exec_test 10 "$BIN_BASE/for1/for1.bin --early-evaluation"
exec_test 10 "$BIN_BASE/for1/for1.bin --late-evaluation"
exec_test 10 "$BIN_BASE/foreach1/foreach1.bin --early-evaluation"
exec_test 10 "$BIN_BASE/foreach1/foreach1.bin --late-evaluation"
exec_test 10 "$BIN_BASE/pfor1/pfor1.bin --early-evaluation"
exec_test 10 "$BIN_BASE/pfor1/pfor1.bin --late-evaluation"
exec_test 10 "$BIN_BASE/pforeach1/pforeach1.bin --early-evaluation"
exec_test 10 "$BIN_BASE/pforeach1/pforeach1.bin --late-evaluation"
exec_test 10 "$BIN_BASE/while1/while1.bin --early-evaluation"
exec_test 10 "$BIN_BASE/while1/while1.bin --late-evaluation"
exec_test 10 "$BIN_BASE/if1/if1.bin --early-evaluation"
exec_test 10 "$BIN_BASE/if1/if1.bin --late-evaluation"
exec_test 10 "$BIN_BASE/if1/if1.bin --early-evaluation --if1 false"
exec_test 10 "$BIN_BASE/if1/if1.bin --late-evaluation --if1 false"
exec_test 10 "$BIN_BASE/if1/if1.bin --early-evaluation --if2 false"
exec_test 10 "$BIN_BASE/if1/if1.bin --late-evaluation --if2 false"
exec_test 10 "$BIN_BASE/if1/if1.bin --early-evaluation --if3 false"
exec_test 10 "$BIN_BASE/if1/if1.bin --late-evaluation --if3 false"
exec_test 10 "$BIN_BASE/if1/if1.bin --early-evaluation --if4 false"
exec_test 10 "$BIN_BASE/if1/if1.bin --late-evaluation --if4 false"
exec_test 10 "$BIN_BASE/if1/if1.bin --early-evaluation --ifall false"
exec_test 10 "$BIN_BASE/if1/if1.bin --late-evaluation --ifall false"
exec_test 10 "$BIN_BASE/if2/if2.bin --early-evaluation"
exec_test 10 "$BIN_BASE/if2/if2.bin --late-evaluation"
#exec_test 30 "$BIN_BASE/wavefront/wavefront.bin --early-evaluation"
#exec_test 30 "$BIN_BASE/wavefront/wavefront.bin --late-evaluation"
#exec_test 260 "$BIN_BASE/sparselu/sparselu-wfr.bin -c --early-evaluation"
#exec_test 260 "$BIN_BASE/sparselu/sparselu-wfr.bin -c --late-evaluation"
#exec_test 260 "$BIN_BASE/sparselu-wfr/sparselu-wfr.bin --early-evaluation"
#exec_test 260 "$BIN_BASE/sparselu-wfr/sparselu-wfr.bin --late-evaluation"
# Clean up
rm -rf *.dot default.sqlite*
# Display summary
echo ""
echo -e "\e[1mTotal number of tests: $TOTAL_COUNT\e[0m"
echo -e "\e[1mNumber of successful tests: $SUCCESS_COUNT\e[0m"
echo -e "\e[1mNumber of failed tests: $FAILURE_COUNT\e[0m"
echo ""
# Return value
RETVAL=0
if [ $FAILURE_COUNT -ne 0 ]; then
RETVAL=1
fi
exit $RETVAL