summaryrefslogtreecommitdiff
path: root/test/test_grabbag.sh
diff options
context:
space:
mode:
authorJosh Coalson <jcoalson@users.sourceforce.net>2002-11-23 02:21:48 +0000
committerJosh Coalson <jcoalson@users.sourceforce.net>2002-11-23 02:21:48 +0000
commitcb908a6d776780175da5a705b06805a3677f0cb0 (patch)
tree89b9dbd5b89b028b118c1392853d1b399440d80c /test/test_grabbag.sh
parentabfd3568ae1f2db89d00b0b4662aee2f5ee56d56 (diff)
downloadflac-cb908a6d776780175da5a705b06805a3677f0cb0.tar.gz
add cuesheet parser/validator tests
Diffstat (limited to 'test/test_grabbag.sh')
-rwxr-xr-xtest/test_grabbag.sh85
1 files changed, 85 insertions, 0 deletions
diff --git a/test/test_grabbag.sh b/test/test_grabbag.sh
new file mode 100755
index 00000000..bb1ea530
--- /dev/null
+++ b/test/test_grabbag.sh
@@ -0,0 +1,85 @@
+#!/bin/sh
+
+# FLAC - Free Lossless Audio Codec
+# Copyright (C) 2001,2002 Josh Coalson
+#
+# This program is part of FLAC; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+LD_LIBRARY_PATH=../src/libFLAC/.libs:../src/share/grabbag/.libs:../obj/release/lib:../obj/debug/lib:$LD_LIBRARY_PATH
+export LD_LIBRARY_PATH
+PATH=../src/test_cuesheet:../obj/release/b:../obj/debug/bin:$PATH
+
+test_cuesheet -h 1>/dev/null 2>/dev/null || (echo "ERROR can't find test_cuesheet executable" 1>&2 && exit 1)
+if [ $? != 0 ] ; then exit 1 ; fi
+
+########################################################################
+#
+# test_cuesheet
+#
+########################################################################
+
+log=cuesheet.log
+bad_cuesheets=cuesheets/bad.*.cue
+good_cuesheets=cuesheets/good.*.cue
+good_leadout=`expr 80 \* 60 \* 44100`
+bad_leadout=`expr $good_leadout + 1`
+
+rm -f $log
+
+#
+# negative tests
+#
+for cuesheet in $bad_cuesheets ; do
+ echo "NEGATIVE $cuesheet" >> $log 2>&1
+ test_cuesheet $cuesheet $good_leadout cdda >> $log 2>&1
+ exit_code=$?
+ if [ "$exit_code" = 255 ] ; then
+ echo "Error: test script is broken"
+ exit 1
+ fi
+ cuesheet_pass1=${cuesheet}.1
+ cuesheet_pass2=${cuesheet}.2
+ rm -f $cuesheet_pass1 $cuesheet_pass2
+done
+
+#
+# positve tests
+#
+for cuesheet in $good_cuesheets ; do
+ echo "POSITIVE $cuesheet" >> $log 2>&1
+ test_cuesheet $cuesheet $good_leadout cdda >> $log 2>&1
+ exit_code=$?
+ if [ "$exit_code" = 255 ] ; then
+ echo "Error: test script is broken"
+ exit 1
+ elif [ "$exit_code" != 0 ] ; then
+ echo "Error: good cuesheet is broken"
+ exit 1
+ fi
+ cuesheet_pass1=${cuesheet}.1
+ cuesheet_pass2=${cuesheet}.2
+ diff $cuesheet_pass1 $cuesheet_pass2 >> $log 2>&1
+ if [ $? != 0 ] ; then
+ echo "Error: pass1 and pass2 output differ"
+ exit 1
+ fi
+ rm -f $cuesheet_pass1 $cuesheet_pass2
+done
+
+diff cuesheet.ok $log > cuesheet.diff
+if [ $? != 0 ] ; then
+ echo "Error: .log file does not match .ok file, see cuesheet.diff"
+ exit 1
+fi