#!/bin/bash

TEST_PRO_IN=test.pro.in
TEST_PRO=test.pro
MAKEFILE=Makefile.test
TEST_APP=test_app

if [ -z $1 ]
then
		TESTFILES=test/test*.cc
else
		TESTFILES=$1
fi

rm -f test.log

for TEST in $TESTFILES
do
    OUTPUT=$TEST.log

    echo -e "\033[0;2mTesting $TEST:"
    echo Testing $TEST: > $OUTPUT

    echo -n "* Compiling $TEST test"
    echo Compiling $TEST test: >> $OUTPUT
    echo ${COMPILE} >> $OUTPUT
    cpp -P -E -DTESTFILE=\"$TEST\" $TEST_PRO_IN -o $TEST_PRO
		qmake -makefile $TEST_PRO -o $MAKEFILE
    if make -f $MAKEFILE 2>&1 >> ${OUTPUT}; then
				echo -e "\r\t\t\t\t\t\t[\033[1;32mSuccess\033[0;2m]"
				echo "[Success]" >> $OUTPUT
				
				echo -n "* Running   $TEST test"
				echo Running $TEST test: >> $OUTPUT
				if ./$TEST_APP 2>&1 >> $OUTPUT ; then
						echo -e "\r\t\t\t\t\t\t[\033[1;32mSuccess\033[0;2m]"
						echo "[Success]" >> $OUTPUT
				else
						echo -e "\r\t\t\t\t\t\t[\033[1;31mFailure\033[0;2m]"
						echo "[Failure]" >> $OUTPUT
				fi
    else
				echo -e "\r\t\t\t\t\t\t[\033[1;31mFailure\033[0;2m]"
				echo "[Failure]" >> $OUTPUT
    fi
		
		rm -f $MAKEFILE $TEST_PRO $TEST_APP
done