#!/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