src/flac/main.c : Fix an output line > 81 characters in length.
[flac.git] / test / test_flac.sh
index ae62908..4ea7235 100755 (executable)
@@ -1,10 +1,11 @@
-#!/bin/sh
+#!/bin/sh -e
 
 #  FLAC - Free Lossless Audio Codec
 
 #  FLAC - Free Lossless Audio Codec
-#  Copyright (C) 2001,2002,2003,2004,2005,2006  Josh Coalson
+#  Copyright (C) 2001-2009  Josh Coalson
+#  Copyright (C) 2011-2014  Xiph.Org Foundation
 #
 #  This file is part the FLAC project.  FLAC is comprised of several
 #
 #  This file is part the FLAC project.  FLAC is comprised of several
-#  components distributed under difference licenses.  The codec libraries
+#  components distributed under different 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
 #  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
 #  restrictive of those mentioned above.  See the file COPYING.Xiph in this
 #  distribution.
 
 #  restrictive of those mentioned above.  See the file COPYING.Xiph in this
 #  distribution.
 
-die ()
-{
-       echo $* 1>&2
-       exit 1
-}
+. ./common.sh
 
 
-dddie="die ERROR: creating files with dd"
+# we use '.' as decimal separator in --skip/--until tests
+export LANG=C LC_ALL=C
 
 
-if [ x = x"$1" ] ; then
-       BUILD=debug
-else
-       BUILD="$1"
-fi
-
-# change to 'false' to show flac output (useful for debugging)
-if true ; then
-       SILENT='--silent'
-       TOTALLY_SILENT='--totally-silent'
-else
-       SILENT=''
-       TOTALLY_SILENT=''
-fi
+dddie="die ERROR: creating files with dd"
 
 
-LD_LIBRARY_PATH=`pwd`/../src/libFLAC/.libs:$LD_LIBRARY_PATH
-LD_LIBRARY_PATH=`pwd`/../src/share/grabbag/.libs:$LD_LIBRARY_PATH
-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
-export LD_LIBRARY_PATH
 PATH=`pwd`/../src/flac:$PATH
 PATH=`pwd`/../src/metaflac:$PATH
 PATH=`pwd`/../src/test_streams:$PATH
 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"
+flac${EXE} --help 1>/dev/null 2>/dev/null || die "ERROR can't find flac executable"
 
 run_flac ()
 {
        if [ x"$FLAC__TEST_WITH_VALGRIND" = xyes ] ; then
 
 run_flac ()
 {
        if [ x"$FLAC__TEST_WITH_VALGRIND" = xyes ] ; then
-               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 --logfile-fd=4 flac $* 4>>test_flac.valgrind.log
+               echo "valgrind --leak-check=yes --show-reachable=yes --num-callers=50 flac $*" >>test_flac.valgrind.log
+               valgrind --leak-check=yes --show-reachable=yes --num-callers=50 --log-fd=4 flac${EXE} --no-error-on-compression-fail $* 4>>test_flac.valgrind.log
        else
        else
-               flac $*
+               flac${EXE} --no-error-on-compression-fail $*
        fi
 }
 
 run_metaflac ()
 {
        if [ x"$FLAC__TEST_WITH_VALGRIND" = xyes ] ; then
        fi
 }
 
 run_metaflac ()
 {
        if [ x"$FLAC__TEST_WITH_VALGRIND" = xyes ] ; then
-               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 --logfile-fd=4 metaflac $* 4>>test_flac.valgrind.log
+               echo "valgrind --leak-check=yes --show-reachable=yes --num-callers=50 metaflac $*" >>test_flac.valgrind.log
+               valgrind --leak-check=yes --show-reachable=yes --num-callers=50 --log-fd=4 metaflac${EXE} $* 4>>test_flac.valgrind.log
        else
        else
-               metaflac $*
+               metaflac${EXE} $*
        fi
 }
 
 md5cmp ()
 {
        fi
 }
 
 md5cmp ()
 {
-       #n=`( [ -f "$1" ] && [ -f "$2" ] && metaflac --show-md5sum --no-filename "$1" "$2" 2>/dev/null || die "ERROR: comparing FLAC files $1 and $2 by MD5 sum" ) | uniq | wc -l`
-       n=`( [ -f "$1" ] && [ -f "$2" ] && metaflac --show-md5sum --no-filename "$1" "$2" 2>/dev/null || exit 1 ) | uniq | wc -l`
+       n=`( [ -f "$1" ] && [ -f "$2" ] && metaflac${EXE} --show-md5sum --no-filename "$1" "$2" 2>/dev/null || exit 1 ) | uniq | wc -l`
        [ "$n" != "" ] && [ $n = 1 ]
 }
 
        [ "$n" != "" ] && [ $n = 1 ]
 }
 
@@ -89,7 +65,7 @@ else
 fi
 
 echo "Checking for --ogg support in flac..."
 fi
 
 echo "Checking for --ogg support in flac..."
-if flac --ogg $SILENT --force-raw-format --endian=little --sign=signed --channels=1 --bps=8 --sample-rate=44100 -c $0 1>/dev/null 2>&1 ; then
+if flac${EXE} --ogg $SILENT --force-raw-format --endian=little --sign=signed --channels=1 --bps=8 --sample-rate=44100 -c $0 1>/dev/null 2>&1 ; then
        has_ogg=yes;
        echo "flac --ogg works"
 else
        has_ogg=yes;
        echo "flac --ogg works"
 else
@@ -183,12 +159,13 @@ done
 rt_test_raw ()
 {
        f="$1"
 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... "
        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... "
        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"
        echo -n "compare... "
        cmp $f rt.raw || die "ERROR: file mismatch"
        echo "OK"
@@ -198,23 +175,53 @@ rt_test_raw ()
 rt_test_wav ()
 {
        f="$1"
 rt_test_wav ()
 {
        f="$1"
+       extra="$2"
        echo -n "round-trip test ($f) encode... "
        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... "
        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
 }
 
        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"
 rt_test_aiff ()
 {
        f="$1"
+       extra="$2"
        echo -n "round-trip test ($f) encode... "
        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... "
        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"
        echo -n "compare... "
        cmp $f rt.aiff || die "ERROR: file mismatch"
        echo "OK"
@@ -225,12 +232,13 @@ rt_test_aiff ()
 rt_test_flac ()
 {
        f="$1"
 rt_test_flac ()
 {
        f="$1"
+       extra="$2"
        echo -n "round-trip test ($f->flac->flac->wav) encode... "
        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... "
        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"
        echo -n "compare... "
        cmp $f rt.wav || die "ERROR: file mismatch"
        echo "OK"
@@ -241,16 +249,17 @@ rt_test_flac ()
 rt_test_ogg_flac ()
 {
        f="$1"
 rt_test_ogg_flac ()
 {
        f="$1"
+       extra="$2"
        echo -n "round-trip test ($f->oggflac->oggflac->wav) encode... "
        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... "
        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... "
        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"
        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
 }
 
 for f in rt-*.raw ; do
@@ -259,6 +268,12 @@ done
 for f in rt-*.wav ; do
        rt_test_wav $f
 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
 for f in rt-*.aiff ; do
        rt_test_aiff $f
 done
@@ -413,17 +428,17 @@ test_skip_until ()
        echo OK
 
        echo -n "testing --skip=mm:ss (encode) $desc... "
        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... "
        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
 
        #
        echo OK
 
        #
@@ -439,15 +454,15 @@ test_skip_until ()
        echo OK
 
        echo -n "testing --skip=mm:ss (decode) $desc... "
        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... "
        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
        echo OK
 
        rm -f z50c.$out_fmt
@@ -464,17 +479,17 @@ test_skip_until ()
        echo OK
 
        echo -n "testing --until=mm:ss (encode) $desc... "
        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... "
        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... "
        echo OK
 
        echo -n "testing --until=-# (encode) $desc... "
@@ -485,17 +500,17 @@ test_skip_until ()
        echo OK
 
        echo -n "testing --until=-mm:ss (encode) $desc... "
        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... "
        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
 
        #
        echo OK
 
        #
@@ -511,15 +526,15 @@ test_skip_until ()
        echo OK
 
        echo -n "testing --until=mm:ss (decode) $desc... "
        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... "
        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... "
        echo OK
 
        echo -n "testing --until=-# (decode) $desc... "
@@ -529,15 +544,15 @@ test_skip_until ()
        echo OK
 
        echo -n "testing --until=-mm:ss (decode) $desc... "
        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... "
        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
        echo OK
 
        rm -f z50c.$out_fmt
@@ -554,17 +569,17 @@ test_skip_until ()
        echo OK
 
        echo -n "testing --skip=10 --until=mm:ss (encode) $desc... "
        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... "
        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... "
        echo OK
 
        echo -n "testing --skip=10 --until=+# (encode) $desc... "
@@ -575,17 +590,17 @@ test_skip_until ()
        echo OK
 
        echo -n "testing --skip=10 --until=+mm:ss (encode) $desc... "
        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... "
        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... "
        echo OK
 
        echo -n "testing --skip=10 --until=-# (encode) $desc... "
@@ -596,17 +611,17 @@ test_skip_until ()
        echo OK
 
        echo -n "testing --skip=10 --until=-mm:ss (encode) $desc... "
        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... "
        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
 
        #
        echo OK
 
        #
@@ -623,15 +638,15 @@ test_skip_until ()
        echo OK
 
        echo -n "testing --skip=10 --until=mm:ss (decode) $desc... "
        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... "
        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... "
        echo OK
 
        echo -n "testing --skip=10 --until=-# (decode) $desc... "
@@ -641,15 +656,15 @@ test_skip_until ()
        echo OK
 
        echo -n "testing --skip=10 --until=-mm:ss (decode) $desc... "
        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... "
        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
        echo OK
 
        rm -f z50c.$out_fmt
@@ -1013,13 +1028,13 @@ dd if=/dev/zero ibs=4 count=$file2_remainder of=z.raw 2>/dev/null || $dddie
 cat z.raw >> file2s.raw || die "ERROR: cat-ing sector-aligned files"
 rm -f z.raw
 
 cat z.raw >> file2s.raw || die "ERROR: cat-ing sector-aligned files"
 rm -f z.raw
 
-convert_to_wav file0s "$multifile_format_encode --force" "$SILENT --force --decode" || die "ERROR creating authoritative sector-aligned WAVE"
-convert_to_wav file1s "$multifile_format_encode --force" "$SILENT --force --decode" || die "ERROR creating authoritative sector-aligned WAVE"
-convert_to_wav file2s "$multifile_format_encode --force" "$SILENT --force --decode" || die "ERROR creating authoritative sector-aligned WAVE"
+convert_to_wav file0s "$multifile_format_encode --force --force-raw-format" "$SILENT --force --decode" || die "ERROR creating authoritative sector-aligned WAVE"
+convert_to_wav file1s "$multifile_format_encode --force --force-raw-format" "$SILENT --force --decode" || die "ERROR creating authoritative sector-aligned WAVE"
+convert_to_wav file2s "$multifile_format_encode --force --force-raw-format" "$SILENT --force --decode" || die "ERROR creating authoritative sector-aligned WAVE"
 
 
-convert_to_aiff file0s "$multifile_format_encode --force" "$SILENT --force --decode" || die "ERROR creating authoritative sector-aligned AIFF"
-convert_to_aiff file1s "$multifile_format_encode --force" "$SILENT --force --decode" || die "ERROR creating authoritative sector-aligned AIFF"
-convert_to_aiff file2s "$multifile_format_encode --force" "$SILENT --force --decode" || die "ERROR creating authoritative sector-aligned AIFF"
+convert_to_aiff file0s "$multifile_format_encode --force --force-raw-format" "$SILENT --force --decode" || die "ERROR creating authoritative sector-aligned AIFF"
+convert_to_aiff file1s "$multifile_format_encode --force --force-raw-format" "$SILENT --force --decode" || die "ERROR creating authoritative sector-aligned AIFF"
+convert_to_aiff file2s "$multifile_format_encode --force --force-raw-format" "$SILENT --force --decode" || die "ERROR creating authoritative sector-aligned AIFF"
 
 test_multifile ()
 {
 
 test_multifile ()
 {
@@ -1040,7 +1055,7 @@ test_multifile ()
        fi
 
        if [ $streamtype = ogg ] ; then
        fi
 
        if [ $streamtype = ogg ] ; then
-               suffix=ogg
+               suffix=oga
                encode_options="$encode_options --ogg"
        else
                suffix=flac
                encode_options="$encode_options --ogg"
        else
                suffix=flac
@@ -1117,6 +1132,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
 ############################################################################
 
 # test the metadata-handling properties of flac-to-flac encoding
 ############################################################################
 
@@ -1125,7 +1154,7 @@ echo "Testing the metadata-handling properties of flac-to-flac encoding..."
 testdir="flac-to-flac-metadata-test-files"
 filter ()
 {
 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.*//'
        # 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.*//'