done
file=$1
-expected_result=$2
+test_name=$2
+expected_result=$3
+if [ -z "$test_name" ]
+then
+ test_name=check
+fi
if [ -z "$expected_result" ]
then
expected_result=0
srcdir=.
options=$extra_options
else
- testfile=$srcdir/input/$file
+ case $file in
+ ./*) testfile=$file ;;
+ *) testfile=$srcdir/input/$file ;;
+ esac
options="$options $extra_options"
fi
+outfile=$test_name.out
+logfile=check.out
+reffile=$srcdir/output/$test_name.ref
+options="$options -o $outfile"
+
builddir=`pwd`
-ltcmd="$srcdir/../libtool --mode=execute -dlopen $builddir/../gedcom/libgedcom.la"
-export GCONV_PATH=.:$GCONV_PATH
+ltcmd="$builddir/../libtool --mode=execute -dlopen $builddir/../gedcom/libgedcom.la"
+GCONV_PATH=.:$GCONV_PATH
+export GCONV_PATH
+LANG=C
+export LANG
ln -s $srcdir/../data/gedcom.enc .
ln -s $builddir/../iconv/glibc/.libs/ANSI_Z39.47.so .
ln -s $srcdir/../iconv/glibc/gconv-modules .
rm -f core
+echo "======================================================">> $logfile
+echo "Performing test '$test_name'" >> $logfile
$ltcmd $GEDCOM_TESTENV $builddir/src/testgedcom $options $testfile
result=$?
rm gedcom.enc
rm ANSI_Z39.47.so
rm gconv-modules
-if [ "$result" -eq "$expected_result" -a ! -r core ]
+
+echo "Result is $result (expected: $expected_result)" >> $logfile
+if [ "$result" -ne "$expected_result" ]
then
- exit 0
-else
+ echo "Not the expected return value!" >> $logfile
exit 1
+else
+ if [ -r core ]
+ then
+ echo "Core file generated!" >> $logfile
+ exit 1
+ else
+ if diff $outfile $reffile >/dev/null 2>>$logfile
+ then
+ echo "Output agrees with reference output" >> $logfile
+ rm $outfile
+ exit 0
+ else
+ echo "Differences with reference output detected!" >> $logfile
+ exit 1
+ fi
+ fi
fi