1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73
|
#!/bin/sh
if test x"$srcdir" != x""; then
builddir="." # running from make check, but it does not define that
else
srcdir=`echo "$0" | sed 's,[^/]*$,,'`
test "$srcdir" = "$0" && srcdir=.
test -z "$srcdir" && srcdir=.
builddir="$srcdir" # running manually, have to assume
fi
srcdir=`cd $srcdir;pwd`
builddir=`cd $builddir;pwd`
testfile="$srcdir/tests"
if [ $# -ge 1 ]; then testfile="$1"; fi
dirs=`cut -d '#' -f 1 $testfile`
basedir=`head -n 1 $testfile | awk '{print $2}'`
cd $srcdir; if [ ! -d $basedir ]; then
cd ..; if [ ! -d $basedir ]; then exit 77; fi # for make distcheck
fi
basedir=`cd $basedir;pwd`
# choose between c_md5 and mmx_md5 (based on the idct you use)
md5=c.md5
accel="-c"
if [ $# -ge 2 -a x"$2" != x"c" ]; then md5="$2.md5"; accel=""; fi
cd $builddir
error=0
rm -fr data
mkdir data
cd data
mpeg2dec="../../src/mpeg2dec"; if [ ! -x $mpeg2dec ]; then
if [ -x ../../vc++/Release/mpeg2dec.exe ]; then
mpeg2dec="../../vc++/Release/mpeg2dec.exe"
basedir=`echo "$basedir" | sed "s,/cygdrive/\(.\)/,\1:/,"`
elif [ -x ../../vc++/Debug/mpeg2dec.exe ]; then
mpeg2dec="../../vc++/Debug/mpeg2dec.exe"
basedir=`echo "$basedir" | sed "s,/cygdrive/\(.\)/,\1:/,"`
else
echo "Can not find mpeg2dec executable"; exit 1
fi
fi
for dir in $dirs; do
if [ -f $basedir/$dir/stream ]; then
echo $dir
$mpeg2dec -vvvv $accel -o md5 $basedir/$dir/stream >dump 2>&1 >md5
if [ ! -f $basedir/$dir/$md5 ]; then
echo MISSING FILE $dir/$md5
elif [ ! -f $basedir/$dir/IGNORE-MD5 ]; then
diff -wu md5 $basedir/$dir/$md5 || error=1
fi
if [ ! -f $basedir/$dir/dump ]; then
echo MISSING FILE $dir/dump
else
sed '1d' dump | diff -wu - $basedir/$dir/dump || error=1
fi
rm -f md5 dump core
else
echo missing file $dir/stream
fi
done
cd ..
rmdir data
exit $error
|