#!/bin/bash
#
# Check that existing autotests for files that are being commited are not currently failing
#
QMAKE=qmake
$QMAKE --version 2>&1 | grep 4.3 > /dev/null
if [ $? == 0 ] ; then
    QMAKE=qmake-qt4
fi
dir=`dirname $0`
echo $dir
for file in `git-diff-index --name-only HEAD | grep .cpp` ; do
    file=`echo $file | sed -e s/.cpp//g -e 's/.*\///g'`
    if [ -d $dir/../autotests/$file ] ; then
        echo "--checking autotest: $file--"

        tempfoo=`basename $0`
        TMPFILE=`mktemp -t ${tempfoo}` || exit 1
        (cd "$dir/../../autotests/$file/"; QMAKE; make; ./$file >> $TMPFILE)
        output=`cat $TMPFILE | grep ' failed,' | sed -e 's/.*passed, //g' -e 's/ failed.*//g'`
        if [ "${output}" != "0" ] ; then
            echo "Autotests failed for $file, please fix before committing."
            cat $TMPFILE
            rm $TMPFILE
            exit 1
        fi
        rm $TMPFILE
        echo "--checking autotest: $file done--"
    else
        echo "--missing autotest: $file (1 second punishment)--"
        sleep 1
    fi
done

