X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=test%2Ftest_flac.sh;h=10981c0b0057bb72c5fe01da1b3308e26c8d707d;hb=1e89230c3ea21568529bc006084ce25f3b82c516;hp=b38118439801b97430f06eadcf96a715fb356a5b;hpb=2b29546bb4343034fce262d7d5cbeae02ff1a60b;p=platform%2Fupstream%2Fflac.git diff --git a/test/test_flac.sh b/test/test_flac.sh index b381184..10981c0 100755 --- a/test/test_flac.sh +++ b/test/test_flac.sh @@ -1,7 +1,7 @@ #!/bin/sh # FLAC - Free Lossless Audio Codec -# Copyright (C) 2001,2002,2003,2004,2005,2006 Josh Coalson +# Copyright (C) 2001,2002,2003,2004,2005,2006,2007,2008,2009 Josh Coalson # # This file is part the FLAC project. FLAC is comprised of several # components distributed under difference licenses. The codec libraries @@ -17,6 +17,9 @@ # restrictive of those mentioned above. See the file COPYING.Xiph in this # distribution. +# we use '.' as decimal separator in --skip/--until tests +export LANG=C LC_ALL=C + die () { echo $* 1>&2 @@ -46,19 +49,22 @@ LD_LIBRARY_PATH=`pwd`/../src/share/getopt/.libs:$LD_LIBRARY_PATH LD_LIBRARY_PATH=`pwd`/../src/share/replaygain_analysis/.libs:$LD_LIBRARY_PATH LD_LIBRARY_PATH=`pwd`/../src/share/replaygain_synthesis/.libs:$LD_LIBRARY_PATH LD_LIBRARY_PATH=`pwd`/../src/share/utf8/.libs:$LD_LIBRARY_PATH -LD_LIBRARY_PATH=`pwd`/../obj/$BUILD/lib:$LD_LIBRARY_PATH +LD_LIBRARY_PATH=`pwd`/../objs/$BUILD/lib:$LD_LIBRARY_PATH export LD_LIBRARY_PATH +export MALLOC_CHECK_=3 +export MALLOC_PERTURB_=$(($RANDOM % 255 + 1)) PATH=`pwd`/../src/flac:$PATH PATH=`pwd`/../src/metaflac:$PATH PATH=`pwd`/../src/test_streams:$PATH -PATH=`pwd`/../obj/$BUILD/bin:$PATH +PATH=`pwd`/../objs/$BUILD/bin:$PATH flac --help 1>/dev/null 2>/dev/null || die "ERROR can't find flac executable" run_flac () { if [ x"$FLAC__TEST_WITH_VALGRIND" = xyes ] ; then - valgrind --leak-check=yes --show-reachable=yes --num-callers=100 --logfile-fd=4 flac $* 4>>test_flac.valgrind.log + echo "valgrind --leak-check=yes --show-reachable=yes --num-callers=100 flac $*" >>test_flac.valgrind.log + valgrind --leak-check=yes --show-reachable=yes --num-callers=100 --log-fd=4 flac $* 4>>test_flac.valgrind.log else flac $* fi @@ -67,7 +73,8 @@ run_flac () run_metaflac () { if [ x"$FLAC__TEST_WITH_VALGRIND" = xyes ] ; then - valgrind --leak-check=yes --show-reachable=yes --num-callers=100 --logfile-fd=4 metaflac $* 4>>test_flac.valgrind.log + echo "valgrind --leak-check=yes --show-reachable=yes --num-callers=100 metaflac $*" >>test_flac.valgrind.log + valgrind --leak-check=yes --show-reachable=yes --num-callers=100 --log-fd=4 metaflac $* 4>>test_flac.valgrind.log else metaflac $* fi @@ -181,12 +188,13 @@ done rt_test_raw () { f="$1" + extra="$2" channels=`echo $f | awk -F- '{print $2}'` bps=`echo $f | awk -F- '{print $3}'` echo -n "round-trip test ($f) encode... " - run_flac $SILENT --force --verify --force-raw-format --endian=little --sign=signed --sample-rate=44100 --bps=$bps --channels=$channels --no-padding --lax -o rt.flac $f || die "ERROR" + run_flac $SILENT --force --verify --force-raw-format --endian=little --sign=signed --sample-rate=44100 --bps=$bps --channels=$channels --no-padding --lax -o rt.flac $extra $f || die "ERROR" echo -n "decode... " - run_flac $SILENT --force --decode --force-raw-format --endian=little --sign=signed -o rt.raw rt.flac || die "ERROR" + run_flac $SILENT --force --decode --force-raw-format --endian=little --sign=signed -o rt.raw $extra rt.flac || die "ERROR" echo -n "compare... " cmp $f rt.raw || die "ERROR: file mismatch" echo "OK" @@ -196,23 +204,53 @@ rt_test_raw () rt_test_wav () { f="$1" + extra="$2" echo -n "round-trip test ($f) encode... " - run_flac $SILENT --force --verify --channel-map=none --no-padding --lax -o rt.flac $f || die "ERROR" + run_flac $SILENT --force --verify --channel-map=none --no-padding --lax -o rt.flac $extra $f || die "ERROR" echo -n "decode... " - run_flac $SILENT --force --decode --channel-map=none -o rt.wav rt.flac || die "ERROR" + run_flac $SILENT --force --decode --channel-map=none -o rt.wav $extra rt.flac || die "ERROR" echo -n "compare... " cmp $f rt.wav || die "ERROR: file mismatch" echo "OK" rm -f rt.flac rt.wav } +rt_test_w64 () +{ + f="$1" + extra="$2" + echo -n "round-trip test ($f) encode... " + run_flac $SILENT --force --verify --channel-map=none --no-padding --lax -o rt.flac $extra $f || die "ERROR" + echo -n "decode... " + run_flac $SILENT --force --decode --channel-map=none -o rt.w64 $extra rt.flac || die "ERROR" + echo -n "compare... " + cmp $f rt.w64 || die "ERROR: file mismatch" + echo "OK" + rm -f rt.flac rt.w64 +} + +rt_test_rf64 () +{ + f="$1" + extra="$2" + echo -n "round-trip test ($f) encode... " + run_flac $SILENT --force --verify --channel-map=none --no-padding --lax -o rt.flac $extra $f || die "ERROR" + echo -n "decode... " + run_flac $SILENT --force --decode --channel-map=none -o rt.rf64 $extra rt.flac || die "ERROR" + echo -n "compare... " + cmp $f rt.rf64 || die "ERROR: file mismatch" + echo "OK" + rm -f rt.flac rt.rf64 +} + rt_test_aiff () { f="$1" + extra="$2" echo -n "round-trip test ($f) encode... " - run_flac $SILENT --force --verify --channel-map=none --no-padding --lax -o rt.flac $f || die "ERROR" + run_flac $SILENT --force --verify --channel-map=none --no-padding --lax -o rt.flac $extra $f || die "ERROR" echo -n "decode... " - run_flac $SILENT --force --decode --channel-map=none -o rt.aiff rt.flac || die "ERROR" + run_flac $SILENT --force --decode --channel-map=none -o rt.aiff $extra rt.flac || die "ERROR" echo -n "compare... " cmp $f rt.aiff || die "ERROR: file mismatch" echo "OK" @@ -223,12 +261,13 @@ rt_test_aiff () rt_test_flac () { f="$1" + extra="$2" echo -n "round-trip test ($f->flac->flac->wav) encode... " - run_flac $SILENT --force --verify --channel-map=none --no-padding --lax -o rt.flac $f || die "ERROR" + run_flac $SILENT --force --verify --channel-map=none --no-padding --lax -o rt.flac $extra $f || die "ERROR" echo -n "re-encode... " run_flac $SILENT --force --verify --lax -o rt2.flac rt.flac || die "ERROR" echo -n "decode... " - run_flac $SILENT --force --decode --channel-map=none -o rt.wav rt2.flac || die "ERROR" + run_flac $SILENT --force --decode --channel-map=none -o rt.wav $extra rt2.flac || die "ERROR" echo -n "compare... " cmp $f rt.wav || die "ERROR: file mismatch" echo "OK" @@ -239,16 +278,17 @@ rt_test_flac () rt_test_ogg_flac () { f="$1" + extra="$2" echo -n "round-trip test ($f->oggflac->oggflac->wav) encode... " - run_flac $SILENT --force --verify --channel-map=none --no-padding --lax -o rt.ogg --ogg $f || die "ERROR" + run_flac $SILENT --force --verify --channel-map=none --no-padding --lax -o rt.oga --ogg $extra $f || die "ERROR" echo -n "re-encode... " - run_flac $SILENT --force --verify --lax -o rt2.ogg --ogg rt.ogg || die "ERROR" + run_flac $SILENT --force --verify --lax -o rt2.oga --ogg rt.oga || die "ERROR" echo -n "decode... " - run_flac $SILENT --force --decode --channel-map=none -o rt.wav rt2.ogg || die "ERROR" + run_flac $SILENT --force --decode --channel-map=none -o rt.wav $extra rt2.oga || die "ERROR" echo -n "compare... " cmp $f rt.wav || die "ERROR: file mismatch" echo "OK" - rm -f rt.wav rt.ogg rt2.ogg + rm -f rt.wav rt.oga rt2.oga } for f in rt-*.raw ; do @@ -257,6 +297,12 @@ done for f in rt-*.wav ; do rt_test_wav $f done +for f in rt-*.w64 ; do + rt_test_w64 $f +done +for f in rt-*.rf64 ; do + rt_test_rf64 $f +done for f in rt-*.aiff ; do rt_test_aiff $f done @@ -411,17 +457,17 @@ test_skip_until () echo OK echo -n "testing --skip=mm:ss (encode) $desc... " - run_flac $eopt --skip=0:01 -o z50c.skip0:01.$out_fmt 50c.$in_fmt || die "ERROR generating FLAC file $desc" - [ $in_fmt = $out_fmt ] || run_flac $dopt -o z50c.skip0:01.$in_fmt z50c.skip0:01.$out_fmt || die "ERROR decoding FLAC file $desc" - $CMP 50c.skip10.$in_fmt z50c.skip0:01.$in_fmt || die "ERROR: file mismatch for --skip=0:01 (encode) $desc" - rm -f z50c.skip0:01.$out_fmt z50c.skip0:01.$in_fmt + run_flac $eopt --skip=0:01 -o z50c.skip0_01.$out_fmt 50c.$in_fmt || die "ERROR generating FLAC file $desc" + [ $in_fmt = $out_fmt ] || run_flac $dopt -o z50c.skip0_01.$in_fmt z50c.skip0_01.$out_fmt || die "ERROR decoding FLAC file $desc" + $CMP 50c.skip10.$in_fmt z50c.skip0_01.$in_fmt || die "ERROR: file mismatch for --skip=0:01 (encode) $desc" + rm -f z50c.skip0_01.$out_fmt z50c.skip0_01.$in_fmt echo OK echo -n "testing --skip=mm:ss.sss (encode) $desc... " - run_flac $eopt --skip=0:01.1001 -o z50c.skip0:01.1001.$out_fmt 50c.$in_fmt || die "ERROR generating FLAC file $desc" - [ $in_fmt = $out_fmt ] || run_flac $dopt -o z50c.skip0:01.1001.$in_fmt z50c.skip0:01.1001.$out_fmt || die "ERROR decoding FLAC file $desc" - $CMP 50c.skip11.$in_fmt z50c.skip0:01.1001.$in_fmt || die "ERROR: file mismatch for --skip=0:01.1001 (encode) $desc" - rm -f z50c.skip0:01.1001.$out_fmt z50c.skip0:01.1001.$in_fmt + run_flac $eopt --skip=0:01.1001 -o z50c.skip0_01.1001.$out_fmt 50c.$in_fmt || die "ERROR generating FLAC file $desc" + [ $in_fmt = $out_fmt ] || run_flac $dopt -o z50c.skip0_01.1001.$in_fmt z50c.skip0_01.1001.$out_fmt || die "ERROR decoding FLAC file $desc" + $CMP 50c.skip11.$in_fmt z50c.skip0_01.1001.$in_fmt || die "ERROR: file mismatch for --skip=0:01.1001 (encode) $desc" + rm -f z50c.skip0_01.1001.$out_fmt z50c.skip0_01.1001.$in_fmt echo OK # @@ -437,15 +483,15 @@ test_skip_until () echo OK echo -n "testing --skip=mm:ss (decode) $desc... " - run_flac $dopt --skip=0:01 -o z50c.skip0:01.$in_fmt z50c.$out_fmt || die "ERROR decoding FLAC file $desc" - $CMP 50c.skip10.$in_fmt z50c.skip0:01.$in_fmt || die "ERROR: file mismatch for --skip=0:01 (decode) $desc" - rm -f z50c.skip0:01.$in_fmt + run_flac $dopt --skip=0:01 -o z50c.skip0_01.$in_fmt z50c.$out_fmt || die "ERROR decoding FLAC file $desc" + $CMP 50c.skip10.$in_fmt z50c.skip0_01.$in_fmt || die "ERROR: file mismatch for --skip=0:01 (decode) $desc" + rm -f z50c.skip0_01.$in_fmt echo OK echo -n "testing --skip=mm:ss.sss (decode) $desc... " - run_flac $dopt --skip=0:01.1001 -o z50c.skip0:01.1001.$in_fmt z50c.$out_fmt || die "ERROR decoding FLAC file $desc" - $CMP 50c.skip11.$in_fmt z50c.skip0:01.1001.$in_fmt || die "ERROR: file mismatch for --skip=0:01.1001 (decode) $desc" - rm -f z50c.skip0:01.1001.$in_fmt + run_flac $dopt --skip=0:01.1001 -o z50c.skip0_01.1001.$in_fmt z50c.$out_fmt || die "ERROR decoding FLAC file $desc" + $CMP 50c.skip11.$in_fmt z50c.skip0_01.1001.$in_fmt || die "ERROR: file mismatch for --skip=0:01.1001 (decode) $desc" + rm -f z50c.skip0_01.1001.$in_fmt echo OK rm -f z50c.$out_fmt @@ -462,17 +508,17 @@ test_skip_until () echo OK echo -n "testing --until=mm:ss (encode) $desc... " - run_flac $eopt --until=0:04 -o z50c.until0:04.$out_fmt 50c.$in_fmt || die "ERROR generating FLAC file $desc" - [ $in_fmt = $out_fmt ] || run_flac $dopt -o z50c.until0:04.$in_fmt z50c.until0:04.$out_fmt || die "ERROR decoding FLAC file $desc" - $CMP 50c.until40.$in_fmt z50c.until0:04.$in_fmt || die "ERROR: file mismatch for --until=0:04 (encode) $desc" - rm -f z50c.until0:04.$out_fmt z50c.until0:04.$in_fmt + run_flac $eopt --until=0:04 -o z50c.until0_04.$out_fmt 50c.$in_fmt || die "ERROR generating FLAC file $desc" + [ $in_fmt = $out_fmt ] || run_flac $dopt -o z50c.until0_04.$in_fmt z50c.until0_04.$out_fmt || die "ERROR decoding FLAC file $desc" + $CMP 50c.until40.$in_fmt z50c.until0_04.$in_fmt || die "ERROR: file mismatch for --until=0:04 (encode) $desc" + rm -f z50c.until0_04.$out_fmt z50c.until0_04.$in_fmt echo OK echo -n "testing --until=mm:ss.sss (encode) $desc... " - run_flac $eopt --until=0:03.9001 -o z50c.until0:03.9001.$out_fmt 50c.$in_fmt || die "ERROR generating FLAC file $desc" - [ $in_fmt = $out_fmt ] || run_flac $dopt -o z50c.until0:03.9001.$in_fmt z50c.until0:03.9001.$out_fmt || die "ERROR decoding FLAC file $desc" - $CMP 50c.until39.$in_fmt z50c.until0:03.9001.$in_fmt || die "ERROR: file mismatch for --until=0:03.9001 (encode) $desc" - rm -f z50c.until0:03.9001.$out_fmt z50c.until0:03.9001.$in_fmt + run_flac $eopt --until=0:03.9001 -o z50c.until0_03.9001.$out_fmt 50c.$in_fmt || die "ERROR generating FLAC file $desc" + [ $in_fmt = $out_fmt ] || run_flac $dopt -o z50c.until0_03.9001.$in_fmt z50c.until0_03.9001.$out_fmt || die "ERROR decoding FLAC file $desc" + $CMP 50c.until39.$in_fmt z50c.until0_03.9001.$in_fmt || die "ERROR: file mismatch for --until=0:03.9001 (encode) $desc" + rm -f z50c.until0_03.9001.$out_fmt z50c.until0_03.9001.$in_fmt echo OK echo -n "testing --until=-# (encode) $desc... " @@ -483,17 +529,17 @@ test_skip_until () echo OK echo -n "testing --until=-mm:ss (encode) $desc... " - run_flac $eopt --until=-0:01 -o z50c.until-0:01.$out_fmt 50c.$in_fmt || die "ERROR generating FLAC file $desc" - [ $in_fmt = $out_fmt ] || run_flac $dopt -o z50c.until-0:01.$in_fmt z50c.until-0:01.$out_fmt || die "ERROR decoding FLAC file $desc" - $CMP 50c.until40.$in_fmt z50c.until-0:01.$in_fmt || die "ERROR: file mismatch for --until=-0:01 (encode) $desc" - rm -f z50c.until-0:01.$out_fmt z50c.until-0:01.$in_fmt + run_flac $eopt --until=-0:01 -o z50c.until-0_01.$out_fmt 50c.$in_fmt || die "ERROR generating FLAC file $desc" + [ $in_fmt = $out_fmt ] || run_flac $dopt -o z50c.until-0_01.$in_fmt z50c.until-0_01.$out_fmt || die "ERROR decoding FLAC file $desc" + $CMP 50c.until40.$in_fmt z50c.until-0_01.$in_fmt || die "ERROR: file mismatch for --until=-0:01 (encode) $desc" + rm -f z50c.until-0_01.$out_fmt z50c.until-0_01.$in_fmt echo OK echo -n "testing --until=-mm:ss.sss (encode) $desc... " - run_flac $eopt --until=-0:01.1001 -o z50c.until-0:01.1001.$out_fmt 50c.$in_fmt || die "ERROR generating FLAC file $desc" - [ $in_fmt = $out_fmt ] || run_flac $dopt -o z50c.until-0:01.1001.$in_fmt z50c.until-0:01.1001.$out_fmt || die "ERROR decoding FLAC file $desc" - $CMP 50c.until39.$in_fmt z50c.until-0:01.1001.$in_fmt || die "ERROR: file mismatch for --until=-0:01.1001 (encode) $desc" - rm -f z50c.until-0:01.1001.$out_fmt z50c.until-0:01.1001.$in_fmt + run_flac $eopt --until=-0:01.1001 -o z50c.until-0_01.1001.$out_fmt 50c.$in_fmt || die "ERROR generating FLAC file $desc" + [ $in_fmt = $out_fmt ] || run_flac $dopt -o z50c.until-0_01.1001.$in_fmt z50c.until-0_01.1001.$out_fmt || die "ERROR decoding FLAC file $desc" + $CMP 50c.until39.$in_fmt z50c.until-0_01.1001.$in_fmt || die "ERROR: file mismatch for --until=-0:01.1001 (encode) $desc" + rm -f z50c.until-0_01.1001.$out_fmt z50c.until-0_01.1001.$in_fmt echo OK # @@ -509,15 +555,15 @@ test_skip_until () echo OK echo -n "testing --until=mm:ss (decode) $desc... " - run_flac $dopt --until=0:04 -o z50c.until0:04.$in_fmt z50c.$out_fmt || die "ERROR decoding FLAC file $desc" - $CMP 50c.until40.$in_fmt z50c.until0:04.$in_fmt || die "ERROR: file mismatch for --until=0:04 (decode) $desc" - rm -f z50c.until0:04.$in_fmt + run_flac $dopt --until=0:04 -o z50c.until0_04.$in_fmt z50c.$out_fmt || die "ERROR decoding FLAC file $desc" + $CMP 50c.until40.$in_fmt z50c.until0_04.$in_fmt || die "ERROR: file mismatch for --until=0:04 (decode) $desc" + rm -f z50c.until0_04.$in_fmt echo OK echo -n "testing --until=mm:ss.sss (decode) $desc... " - run_flac $dopt --until=0:03.9001 -o z50c.until0:03.9001.$in_fmt z50c.$out_fmt || die "ERROR decoding FLAC file $desc" - $CMP 50c.until39.$in_fmt z50c.until0:03.9001.$in_fmt || die "ERROR: file mismatch for --until=0:03.9001 (decode) $desc" - rm -f z50c.until0:03.9001.$in_fmt + run_flac $dopt --until=0:03.9001 -o z50c.until0_03.9001.$in_fmt z50c.$out_fmt || die "ERROR decoding FLAC file $desc" + $CMP 50c.until39.$in_fmt z50c.until0_03.9001.$in_fmt || die "ERROR: file mismatch for --until=0:03.9001 (decode) $desc" + rm -f z50c.until0_03.9001.$in_fmt echo OK echo -n "testing --until=-# (decode) $desc... " @@ -527,15 +573,15 @@ test_skip_until () echo OK echo -n "testing --until=-mm:ss (decode) $desc... " - run_flac $dopt --until=-0:01 -o z50c.until-0:01.$in_fmt z50c.$out_fmt || die "ERROR decoding FLAC file $desc" - $CMP 50c.until40.$in_fmt z50c.until-0:01.$in_fmt || die "ERROR: file mismatch for --until=-0:01 (decode) $desc" - rm -f z50c.until-0:01.$in_fmt + run_flac $dopt --until=-0:01 -o z50c.until-0_01.$in_fmt z50c.$out_fmt || die "ERROR decoding FLAC file $desc" + $CMP 50c.until40.$in_fmt z50c.until-0_01.$in_fmt || die "ERROR: file mismatch for --until=-0:01 (decode) $desc" + rm -f z50c.until-0_01.$in_fmt echo OK echo -n "testing --until=-mm:ss.sss (decode) $desc... " - run_flac $dopt --until=-0:01.1001 -o z50c.until-0:01.1001.$in_fmt z50c.$out_fmt || die "ERROR decoding FLAC file $desc" - $CMP 50c.until39.$in_fmt z50c.until-0:01.1001.$in_fmt || die "ERROR: file mismatch for --until=-0:01.1001 (decode) $desc" - rm -f z50c.until-0:01.1001.$in_fmt + run_flac $dopt --until=-0:01.1001 -o z50c.until-0_01.1001.$in_fmt z50c.$out_fmt || die "ERROR decoding FLAC file $desc" + $CMP 50c.until39.$in_fmt z50c.until-0_01.1001.$in_fmt || die "ERROR: file mismatch for --until=-0:01.1001 (decode) $desc" + rm -f z50c.until-0_01.1001.$in_fmt echo OK rm -f z50c.$out_fmt @@ -552,17 +598,17 @@ test_skip_until () echo OK echo -n "testing --skip=10 --until=mm:ss (encode) $desc... " - run_flac $eopt --skip=10 --until=0:04 -o z50c.skip10.until0:04.$out_fmt 50c.$in_fmt || die "ERROR generating FLAC file $desc" - [ $in_fmt = $out_fmt ] || run_flac $dopt -o z50c.skip10.until0:04.$in_fmt z50c.skip10.until0:04.$out_fmt || die "ERROR decoding FLAC file $desc" - $CMP 50c.skip10.until40.$in_fmt z50c.skip10.until0:04.$in_fmt || die "ERROR: file mismatch for --skip=10 --until=0:04 (encode) $desc" - rm -f z50c.skip10.until0:04.$out_fmt z50c.skip10.until0:04.$in_fmt + run_flac $eopt --skip=10 --until=0:04 -o z50c.skip10.until0_04.$out_fmt 50c.$in_fmt || die "ERROR generating FLAC file $desc" + [ $in_fmt = $out_fmt ] || run_flac $dopt -o z50c.skip10.until0_04.$in_fmt z50c.skip10.until0_04.$out_fmt || die "ERROR decoding FLAC file $desc" + $CMP 50c.skip10.until40.$in_fmt z50c.skip10.until0_04.$in_fmt || die "ERROR: file mismatch for --skip=10 --until=0:04 (encode) $desc" + rm -f z50c.skip10.until0_04.$out_fmt z50c.skip10.until0_04.$in_fmt echo OK echo -n "testing --skip=10 --until=mm:ss.sss (encode) $desc... " - run_flac $eopt --skip=10 --until=0:03.9001 -o z50c.skip10.until0:03.9001.$out_fmt 50c.$in_fmt || die "ERROR generating FLAC file $desc" - [ $in_fmt = $out_fmt ] || run_flac $dopt -o z50c.skip10.until0:03.9001.$in_fmt z50c.skip10.until0:03.9001.$out_fmt || die "ERROR decoding FLAC file $desc" - $CMP 50c.skip10.until39.$in_fmt z50c.skip10.until0:03.9001.$in_fmt || die "ERROR: file mismatch for --skip=10 --until=0:03.9001 (encode) $desc" - rm -f z50c.skip10.until0:03.9001.$out_fmt z50c.skip10.until0:03.9001.$in_fmt + run_flac $eopt --skip=10 --until=0:03.9001 -o z50c.skip10.until0_03.9001.$out_fmt 50c.$in_fmt || die "ERROR generating FLAC file $desc" + [ $in_fmt = $out_fmt ] || run_flac $dopt -o z50c.skip10.until0_03.9001.$in_fmt z50c.skip10.until0_03.9001.$out_fmt || die "ERROR decoding FLAC file $desc" + $CMP 50c.skip10.until39.$in_fmt z50c.skip10.until0_03.9001.$in_fmt || die "ERROR: file mismatch for --skip=10 --until=0:03.9001 (encode) $desc" + rm -f z50c.skip10.until0_03.9001.$out_fmt z50c.skip10.until0_03.9001.$in_fmt echo OK echo -n "testing --skip=10 --until=+# (encode) $desc... " @@ -573,17 +619,17 @@ test_skip_until () echo OK echo -n "testing --skip=10 --until=+mm:ss (encode) $desc... " - run_flac $eopt --skip=10 --until=+0:03 -o z50c.skip10.until+0:03.$out_fmt 50c.$in_fmt || die "ERROR generating FLAC file $desc" - [ $in_fmt = $out_fmt ] || run_flac $dopt -o z50c.skip10.until+0:03.$in_fmt z50c.skip10.until+0:03.$out_fmt || die "ERROR decoding FLAC file $desc" - $CMP 50c.skip10.until40.$in_fmt z50c.skip10.until+0:03.$in_fmt || die "ERROR: file mismatch for --skip=10 --until=+0:03 (encode) $desc" - rm -f z50c.skip10.until+0:03.$out_fmt z50c.skip10.until+0:03.$in_fmt + run_flac $eopt --skip=10 --until=+0:03 -o z50c.skip10.until+0_03.$out_fmt 50c.$in_fmt || die "ERROR generating FLAC file $desc" + [ $in_fmt = $out_fmt ] || run_flac $dopt -o z50c.skip10.until+0_03.$in_fmt z50c.skip10.until+0_03.$out_fmt || die "ERROR decoding FLAC file $desc" + $CMP 50c.skip10.until40.$in_fmt z50c.skip10.until+0_03.$in_fmt || die "ERROR: file mismatch for --skip=10 --until=+0:03 (encode) $desc" + rm -f z50c.skip10.until+0_03.$out_fmt z50c.skip10.until+0_03.$in_fmt echo OK echo -n "testing --skip=10 --until=+mm:ss.sss (encode) $desc... " - run_flac $eopt --skip=10 --until=+0:02.9001 -o z50c.skip10.until+0:02.9001.$out_fmt 50c.$in_fmt || die "ERROR generating FLAC file $desc" - [ $in_fmt = $out_fmt ] || run_flac $dopt -o z50c.skip10.until+0:02.9001.$in_fmt z50c.skip10.until+0:02.9001.$out_fmt || die "ERROR decoding FLAC file $desc" - $CMP 50c.skip10.until39.$in_fmt z50c.skip10.until+0:02.9001.$in_fmt || die "ERROR: file mismatch for --skip=10 --until=+0:02.9001 (encode) $desc" - rm -f z50c.skip10.until+0:02.9001.$out_fmt z50c.skip10.until+0:02.9001.$in_fmt + run_flac $eopt --skip=10 --until=+0:02.9001 -o z50c.skip10.until+0_02.9001.$out_fmt 50c.$in_fmt || die "ERROR generating FLAC file $desc" + [ $in_fmt = $out_fmt ] || run_flac $dopt -o z50c.skip10.until+0_02.9001.$in_fmt z50c.skip10.until+0_02.9001.$out_fmt || die "ERROR decoding FLAC file $desc" + $CMP 50c.skip10.until39.$in_fmt z50c.skip10.until+0_02.9001.$in_fmt || die "ERROR: file mismatch for --skip=10 --until=+0:02.9001 (encode) $desc" + rm -f z50c.skip10.until+0_02.9001.$out_fmt z50c.skip10.until+0_02.9001.$in_fmt echo OK echo -n "testing --skip=10 --until=-# (encode) $desc... " @@ -594,17 +640,17 @@ test_skip_until () echo OK echo -n "testing --skip=10 --until=-mm:ss (encode) $desc... " - run_flac $eopt --skip=10 --until=-0:01 -o z50c.skip10.until-0:01.$out_fmt 50c.$in_fmt || die "ERROR generating FLAC file $desc" - [ $in_fmt = $out_fmt ] || run_flac $dopt -o z50c.skip10.until-0:01.$in_fmt z50c.skip10.until-0:01.$out_fmt || die "ERROR decoding FLAC file $desc" - $CMP 50c.skip10.until40.$in_fmt z50c.skip10.until-0:01.$in_fmt || die "ERROR: file mismatch for --skip=10 --until=-0:01 (encode) $desc" - rm -f z50c.skip10.until-0:01.$out_fmt z50c.skip10.until-0:01.$in_fmt + run_flac $eopt --skip=10 --until=-0:01 -o z50c.skip10.until-0_01.$out_fmt 50c.$in_fmt || die "ERROR generating FLAC file $desc" + [ $in_fmt = $out_fmt ] || run_flac $dopt -o z50c.skip10.until-0_01.$in_fmt z50c.skip10.until-0_01.$out_fmt || die "ERROR decoding FLAC file $desc" + $CMP 50c.skip10.until40.$in_fmt z50c.skip10.until-0_01.$in_fmt || die "ERROR: file mismatch for --skip=10 --until=-0:01 (encode) $desc" + rm -f z50c.skip10.until-0_01.$out_fmt z50c.skip10.until-0_01.$in_fmt echo OK echo -n "testing --skip=10 --until=-mm:ss.sss (encode) $desc... " - run_flac $eopt --skip=10 --until=-0:01.1001 -o z50c.skip10.until-0:01.1001.$out_fmt 50c.$in_fmt || die "ERROR generating FLAC file $desc" - [ $in_fmt = $out_fmt ] || run_flac $dopt -o z50c.skip10.until-0:01.1001.$in_fmt z50c.skip10.until-0:01.1001.$out_fmt || die "ERROR decoding FLAC file $desc" - $CMP 50c.skip10.until39.$in_fmt z50c.skip10.until-0:01.1001.$in_fmt || die "ERROR: file mismatch for --skip=10 --until=-0:01.1001 (encode) $desc" - rm -f z50c.skip10.until-0:01.1001.$out_fmt z50c.skip10.until-0:01.1001.$in_fmt + run_flac $eopt --skip=10 --until=-0:01.1001 -o z50c.skip10.until-0_01.1001.$out_fmt 50c.$in_fmt || die "ERROR generating FLAC file $desc" + [ $in_fmt = $out_fmt ] || run_flac $dopt -o z50c.skip10.until-0_01.1001.$in_fmt z50c.skip10.until-0_01.1001.$out_fmt || die "ERROR decoding FLAC file $desc" + $CMP 50c.skip10.until39.$in_fmt z50c.skip10.until-0_01.1001.$in_fmt || die "ERROR: file mismatch for --skip=10 --until=-0:01.1001 (encode) $desc" + rm -f z50c.skip10.until-0_01.1001.$out_fmt z50c.skip10.until-0_01.1001.$in_fmt echo OK # @@ -621,15 +667,15 @@ test_skip_until () echo OK echo -n "testing --skip=10 --until=mm:ss (decode) $desc... " - run_flac $dopt --skip=10 --until=0:04 -o z50c.skip10.until0:04.$in_fmt z50c.$out_fmt || die "ERROR decoding FLAC file $desc" - $CMP 50c.skip10.until40.$in_fmt z50c.skip10.until0:04.$in_fmt || die "ERROR: file mismatch for --skip=10 --until=0:04 (decode) $desc" - rm -f z50c.skip10.until0:04.$in_fmt + run_flac $dopt --skip=10 --until=0:04 -o z50c.skip10.until0_04.$in_fmt z50c.$out_fmt || die "ERROR decoding FLAC file $desc" + $CMP 50c.skip10.until40.$in_fmt z50c.skip10.until0_04.$in_fmt || die "ERROR: file mismatch for --skip=10 --until=0:04 (decode) $desc" + rm -f z50c.skip10.until0_04.$in_fmt echo OK echo -n "testing --skip=10 --until=mm:ss.sss (decode) $desc... " - run_flac $dopt --skip=10 --until=0:03.9001 -o z50c.skip10.until0:03.9001.$in_fmt z50c.$out_fmt || die "ERROR decoding FLAC file $desc" - $CMP 50c.skip10.until39.$in_fmt z50c.skip10.until0:03.9001.$in_fmt || die "ERROR: file mismatch for --skip=10 --until=0:03.9001 (decode) $desc" - rm -f z50c.skip10.until0:03.9001.$in_fmt + run_flac $dopt --skip=10 --until=0:03.9001 -o z50c.skip10.until0_03.9001.$in_fmt z50c.$out_fmt || die "ERROR decoding FLAC file $desc" + $CMP 50c.skip10.until39.$in_fmt z50c.skip10.until0_03.9001.$in_fmt || die "ERROR: file mismatch for --skip=10 --until=0:03.9001 (decode) $desc" + rm -f z50c.skip10.until0_03.9001.$in_fmt echo OK echo -n "testing --skip=10 --until=-# (decode) $desc... " @@ -639,15 +685,15 @@ test_skip_until () echo OK echo -n "testing --skip=10 --until=-mm:ss (decode) $desc... " - run_flac $dopt --skip=10 --until=-0:01 -o z50c.skip10.until-0:01.$in_fmt z50c.$out_fmt || die "ERROR decoding FLAC file $desc" - $CMP 50c.skip10.until40.$in_fmt z50c.skip10.until-0:01.$in_fmt || die "ERROR: file mismatch for --skip=10 --until=-0:01 (decode) $desc" - rm -f z50c.skip10.until-0:01.$in_fmt + run_flac $dopt --skip=10 --until=-0:01 -o z50c.skip10.until-0_01.$in_fmt z50c.$out_fmt || die "ERROR decoding FLAC file $desc" + $CMP 50c.skip10.until40.$in_fmt z50c.skip10.until-0_01.$in_fmt || die "ERROR: file mismatch for --skip=10 --until=-0:01 (decode) $desc" + rm -f z50c.skip10.until-0_01.$in_fmt echo OK echo -n "testing --skip=10 --until=-mm:ss.sss (decode) $desc... " - run_flac $dopt --skip=10 --until=-0:01.1001 -o z50c.skip10.until-0:01.1001.$in_fmt z50c.$out_fmt || die "ERROR decoding FLAC file $desc" - $CMP 50c.skip10.until39.$in_fmt z50c.skip10.until-0:01.1001.$in_fmt || die "ERROR: file mismatch for --skip=10 --until=-0:01.1001 (decode) $desc" - rm -f z50c.skip10.until-0:01.1001.$in_fmt + run_flac $dopt --skip=10 --until=-0:01.1001 -o z50c.skip10.until-0_01.1001.$in_fmt z50c.$out_fmt || die "ERROR decoding FLAC file $desc" + $CMP 50c.skip10.until39.$in_fmt z50c.skip10.until-0_01.1001.$in_fmt || die "ERROR: file mismatch for --skip=10 --until=-0:01.1001 (decode) $desc" + rm -f z50c.skip10.until-0_01.1001.$in_fmt echo OK rm -f z50c.$out_fmt @@ -1038,7 +1084,7 @@ test_multifile () fi if [ $streamtype = ogg ] ; then - suffix=ogg + suffix=oga encode_options="$encode_options --ogg" else suffix=flac @@ -1115,6 +1161,20 @@ done ############################################################################ +# test --keep-foreign-metadata +############################################################################ + +echo "Testing --keep-foreign-metadata..." + +rt_test_wav wacky1.wav '--keep-foreign-metadata' +rt_test_wav wacky2.wav '--keep-foreign-metadata' +rt_test_w64 wacky1.w64 '--keep-foreign-metadata' +rt_test_w64 wacky2.w64 '--keep-foreign-metadata' +rt_test_rf64 wacky1.rf64 '--keep-foreign-metadata' +rt_test_rf64 wacky2.rf64 '--keep-foreign-metadata' + + +############################################################################ # test the metadata-handling properties of flac-to-flac encoding ############################################################################ @@ -1123,7 +1183,7 @@ echo "Testing the metadata-handling properties of flac-to-flac encoding..." testdir="flac-to-flac-metadata-test-files" filter () { - # minor danger, changing vendor strings will change the length of the + # minor danger, changing vendor strings might change the length of the # VORBIS_COMMENT block, but if we add "^ length: " to the patterns, # we lose info about PADDING size that we need grep -Ev '^ vendor string: |^ m..imum .....size: ' | sed -e 's/, stream_offset.*//'