1#!/bin/sh
2
3if test x"$srcdir" != x""; then
4    builddir="."	# running from make check, but it does not define that
5else
6    srcdir=`echo "$0" | sed s,[^/]*$,,`
7    test "$srcdir" = "$0" && srcdir=.
8    test -z "$srcdir" && srcdir=.
9    builddir="$srcdir"	# running manually, have to assume
10fi
11
12srcdir=`cd $srcdir;pwd`
13builddir=`cd $builddir;pwd`
14
15testfile="$srcdir/tests"
16if [ $# -ge 1 ]; then testfile="$1"; fi
17
18dirs=`awk -F '#' '{print $1}' $testfile`
19
20basedir=`head -n 1 $testfile | awk '{print $2}'`
21cd $srcdir; if [ ! -d $basedir ]; then
22    cd ..; if [ ! -d $basedir ]; then exit 77; fi	# for make distcheck
23fi
24basedir=`cd $basedir;pwd`
25
26cd $builddir
27error=0
28
29a52dec="../src/a52dec"; if [ ! -x $a52dec ]; then
30    if [ -x ../vc++/Release/a52dec.exe ]; then
31	a52dec="../vc++/Release/a52dec.exe"
32	basedir=`echo "$basedir" | sed "s,/cygdrive/\(.\)/,\1:/,"`
33    elif [ -x ../vc++/Debug/a52dec.exe ]; then
34	a52dec="../vc++/Debug/a52dec.exe"
35	basedir=`echo "$basedir" | sed "s,/cygdrive/\(.\)/,\1:/,"`
36    else
37	echo "Can not find a52dec executable"; exit 1
38    fi
39fi
40
41for dir in $dirs; do
42    echo $dir
43    $a52dec -co float $basedir/$dir/stream >/dev/null 2>&1 >output.float
44    ./compare output.float $basedir/$dir/output.float || error=1
45    rm -f output.float
46done
47
48exit $error
49