#!/bin/sh

if [ -z $DISPLAY ] ; then
    exec xvfb-run --server-args "-extension RANDR" $0
fi

TEST_SOURCES=`pwd`/testsuite
export GDL_PATH=+/usr/share/gnudatalanguage:$TEST_SOURCES
XFAIL_TESTS=`pwd`/debian/tests/test-gdl.xfail
IGNORE_TESTS=`pwd`/debian/tests/test-gdl.ignore

cd "$TEST_SOURCES"
TESTS=''
for f in *.pro ; do
    if fgrep -q $f Makefile.am ; then
	t=`echo $f | sed s/.pro//`
	if ! grep -q ^$t\$ $IGNORE_TESTS ; then
	    TESTS="$TESTS $t"
	fi
    fi
done

cd ..

if [ "$ADTTMP" ] ; then
    cd "$ADTTMP"
fi

err=0
err_tests=''

xfail=0
xfail_tests=''

for t in $TESTS ; do
    echo "exit,status=1" | gdl -quiet -e $t
    if [ $? -ne 0 -a $? -ne 77 ] ; then
	if grep -q ^$t\$ $XFAIL_TESTS ; then
	    xfail=`expr $xfail + 1`
	    xfail_tests="$xfail_tests $t"
	else
	    err=`expr $err + 1`
	    err_tests="$err_tests $t"
	fi
    fi
done

if [ $xfail -ne 0 ] ; then
    echo =================================================
    echo "$xfail Expected failure(s)"
    echo =================================================
    echo $xfail_tests | tr " " \\n
fi
if [ $err -ne 0 ] ; then
    echo =================================================
    echo "$err Error(s) found"
    echo =================================================
    echo $err_tests | tr " " \\n
    exit 1
fi
