2001-05-27 18:32:15 +00:00
#!/bin/sh
2001-06-08 00:13:21 +00:00
# FLAC - Free Lossless Audio Codec
2004-01-17 04:14:43 +00:00
# Copyright (C) 2001,2002,2003,2004 Josh Coalson
2001-06-08 00:13:21 +00:00
#
2003-02-07 00:14:32 +00:00
# This file is part the FLAC project. FLAC is comprised of several
# components distributed under difference licenses. The codec libraries
# are distributed under Xiph.Org's BSD-like license (see the file
# COPYING.Xiph in this distribution). All other programs, libraries, and
# plugins are distributed under the GPL (see COPYING.GPL). The documentation
# is distributed under the Gnu FDL (see COPYING.FDL). Each file in the
# FLAC distribution contains at the top the terms under which it may be
# distributed.
2001-06-08 00:13:21 +00:00
#
2003-02-07 00:14:32 +00:00
# Since this particular file is relevant to all components of FLAC,
# it may be distributed under the Xiph.Org license, which is the least
# restrictive of those mentioned above. See the file COPYING.Xiph in this
# distribution.
2001-06-08 00:13:21 +00:00
2002-12-12 03:58:18 +00:00
die ( )
{
echo $* 1>& 2
exit 1
}
2002-11-21 08:58:52 +00:00
LD_LIBRARY_PATH = ../src/libFLAC/.libs:../obj/release/lib:../obj/debug/lib:$LD_LIBRARY_PATH
2001-05-27 18:32:15 +00:00
export LD_LIBRARY_PATH
2002-12-04 04:57:33 +00:00
PATH = ../src/flac:../obj/release/bin:../obj/debug/bin:$PATH
2001-05-27 18:32:15 +00:00
BINS_PATH = ../../test_files/bins
2002-12-12 03:58:18 +00:00
flac --help 1>/dev/null 2>/dev/null || die "ERROR can't find flac executable"
2002-10-11 06:22:30 +00:00
2002-12-04 04:57:33 +00:00
run_flac ( )
{
2003-01-14 09:00:25 +00:00
if [ x" $FLAC__VALGRIND " = xyes ] ; then
2002-12-30 23:31:47 +00:00
valgrind --leak-check= yes --show-reachable= yes --num-callers= 100 --logfile-fd= 4 flac $* 4>>test_bins.valgrind.log
2002-12-04 04:57:33 +00:00
else
flac $*
fi
}
2002-10-11 06:22:30 +00:00
2001-07-22 07:25:50 +00:00
test -d ${ BINS_PATH } || exit 77
2001-05-27 18:32:15 +00:00
test_file ( )
{
name = $1
channels = $2
bps = $3
encode_options = " $4 "
2002-08-30 05:39:36 +00:00
echo -n " $name (--channels= $channels --bps= $bps $encode_options ): encode... "
2004-07-17 00:22:39 +00:00
cmd = " run_flac --verify --silent --force --force-raw-format --endian=big --sign=signed --sample-rate=44100 --bps= $bps --channels= $channels $encode_options $name .bin "
2001-05-27 18:32:15 +00:00
echo " ### ENCODE $name ####################################################### " >> ./streams.log
echo " ### cmd= $cmd " >> ./streams.log
2002-12-12 03:58:18 +00:00
$cmd 2>>./streams.log || die " ERROR during encode of $name "
2001-05-27 18:32:15 +00:00
echo -n "decode..."
2004-07-17 00:22:39 +00:00
cmd = " run_flac --silent --force --endian=big --sign=signed --decode --force-raw-format $name .flac " ;
2001-05-27 18:32:15 +00:00
echo " ### DECODE $name ####################################################### " >> ./streams.log
echo " ### cmd= $cmd " >> ./streams.log
2002-12-12 03:58:18 +00:00
$cmd 2>>./streams.log || die " ERROR during decode of $name "
2001-05-27 18:32:15 +00:00
ls -1l $name .bin >> ./streams.log
ls -1l $name .flac >> ./streams.log
ls -1l $name .raw >> ./streams.log
2002-12-12 03:58:18 +00:00
2001-05-27 18:32:15 +00:00
echo -n "compare..."
2002-12-12 03:58:18 +00:00
cmp $name .bin $name .raw || die " ERROR during compare of $name "
2001-05-27 18:32:15 +00:00
echo OK
}
echo "Testing bins..."
2002-10-11 06:22:30 +00:00
for f in b00 b01 b02 b03 b04 ; do
binfile = $BINS_PATH /$f
if [ -f $binfile ] ; then
for disable in '' '--disable-verbatim-subframes --disable-constant-subframes' '--disable-verbatim-subframes --disable-constant-subframes --disable-fixed-subframes' ; do
for channels in 1 2 4 8 ; do
for bps in 8 16 24 ; do
for opt in 0 1 2 4 5 6 8 ; do
for extras in '' '-p' '-e' ; do
for blocksize in '' '--lax -b 32' '--lax -b 32768' '--lax -b 65535' ; do
test_file $binfile $channels $bps " - $opt $extras $blocksize $disable "
done
done
2001-05-27 18:32:15 +00:00
done
2002-10-11 06:22:30 +00:00
if [ " $FLAC__EXHAUSTIVE_TESTS " = yes ] ; then
test_file $binfile $channels $bps " -b 16384 -m -r 8 -l 32 -e -p $disable "
fi
2001-05-27 18:32:15 +00:00
done
done
done
2002-10-11 06:22:30 +00:00
else
echo " $binfile not found, skipping. "
fi
2001-05-27 18:32:15 +00:00
done