annotate src/flac-1.2.1/test/test_seeking.sh @ 94:d278df1123f9

Add liblo
author Chris Cannam <cannam@all-day-breakfast.com>
date Wed, 20 Mar 2013 15:25:02 +0000
parents 98c1576536ae
children
rev   line source
cannam@86 1 #!/bin/sh
cannam@86 2
cannam@86 3 # FLAC - Free Lossless Audio Codec
cannam@86 4 # Copyright (C) 2004,2005,2006,2007 Josh Coalson
cannam@86 5 #
cannam@86 6 # This file is part the FLAC project. FLAC is comprised of several
cannam@86 7 # components distributed under difference licenses. The codec libraries
cannam@86 8 # are distributed under Xiph.Org's BSD-like license (see the file
cannam@86 9 # COPYING.Xiph in this distribution). All other programs, libraries, and
cannam@86 10 # plugins are distributed under the GPL (see COPYING.GPL). The documentation
cannam@86 11 # is distributed under the Gnu FDL (see COPYING.FDL). Each file in the
cannam@86 12 # FLAC distribution contains at the top the terms under which it may be
cannam@86 13 # distributed.
cannam@86 14 #
cannam@86 15 # Since this particular file is relevant to all components of FLAC,
cannam@86 16 # it may be distributed under the Xiph.Org license, which is the least
cannam@86 17 # restrictive of those mentioned above. See the file COPYING.Xiph in this
cannam@86 18 # distribution.
cannam@86 19
cannam@86 20 die ()
cannam@86 21 {
cannam@86 22 echo $* 1>&2
cannam@86 23 exit 1
cannam@86 24 }
cannam@86 25
cannam@86 26 if [ x = x"$1" ] ; then
cannam@86 27 BUILD=debug
cannam@86 28 else
cannam@86 29 BUILD="$1"
cannam@86 30 fi
cannam@86 31
cannam@86 32 LD_LIBRARY_PATH=../src/libFLAC/.libs:$LD_LIBRARY_PATH
cannam@86 33 LD_LIBRARY_PATH=../obj/$BUILD/lib:$LD_LIBRARY_PATH
cannam@86 34 export LD_LIBRARY_PATH
cannam@86 35 PATH=../src/flac:$PATH
cannam@86 36 PATH=../src/metaflac:$PATH
cannam@86 37 PATH=../src/test_seeking:$PATH
cannam@86 38 PATH=../src/test_streams:$PATH
cannam@86 39 PATH=../obj/$BUILD/bin:$PATH
cannam@86 40
cannam@86 41 if [ x"$FLAC__TEST_LEVEL" = x ] ; then
cannam@86 42 FLAC__TEST_LEVEL=1
cannam@86 43 fi
cannam@86 44
cannam@86 45 flac --help 1>/dev/null 2>/dev/null || die "ERROR can't find flac executable"
cannam@86 46 metaflac --help 1>/dev/null 2>/dev/null || die "ERROR can't find metaflac executable"
cannam@86 47
cannam@86 48 run_flac ()
cannam@86 49 {
cannam@86 50 if [ x"$FLAC__TEST_WITH_VALGRIND" = xyes ] ; then
cannam@86 51 echo "valgrind --leak-check=yes --show-reachable=yes --num-callers=100 flac $*" >>test_seeking.valgrind.log
cannam@86 52 valgrind --leak-check=yes --show-reachable=yes --num-callers=100 --log-fd=4 flac $* 4>>test_seeking.valgrind.log
cannam@86 53 else
cannam@86 54 flac $*
cannam@86 55 fi
cannam@86 56 }
cannam@86 57
cannam@86 58 run_metaflac ()
cannam@86 59 {
cannam@86 60 if [ x"$FLAC__TEST_WITH_VALGRIND" = xyes ] ; then
cannam@86 61 echo "valgrind --leak-check=yes --show-reachable=yes --num-callers=100 metaflac $*" >>test_seeking.valgrind.log
cannam@86 62 valgrind --leak-check=yes --show-reachable=yes --num-callers=100 --log-fd=4 metaflac $* 4>>test_seeking.valgrind.log
cannam@86 63 else
cannam@86 64 metaflac $*
cannam@86 65 fi
cannam@86 66 }
cannam@86 67
cannam@86 68 run_test_seeking ()
cannam@86 69 {
cannam@86 70 if [ x"$FLAC__TEST_WITH_VALGRIND" = xyes ] ; then
cannam@86 71 echo "valgrind --leak-check=yes --show-reachable=yes --num-callers=100 test_seeking $*" >>test_seeking.valgrind.log
cannam@86 72 valgrind --leak-check=yes --show-reachable=yes --num-callers=100 --log-fd=4 test_seeking $* 4>>test_seeking.valgrind.log
cannam@86 73 else
cannam@86 74 test_seeking $*
cannam@86 75 fi
cannam@86 76 }
cannam@86 77
cannam@86 78 echo "Checking for --ogg support in flac..."
cannam@86 79 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
cannam@86 80 has_ogg=yes;
cannam@86 81 echo "flac --ogg works"
cannam@86 82 else
cannam@86 83 has_ogg=no;
cannam@86 84 echo "flac --ogg doesn't work"
cannam@86 85 fi
cannam@86 86
cannam@86 87
cannam@86 88 echo "Generating streams..."
cannam@86 89 if [ ! -f noise.raw ] ; then
cannam@86 90 test_streams || die "ERROR during test_streams"
cannam@86 91 fi
cannam@86 92
cannam@86 93 echo "generating FLAC files for seeking:"
cannam@86 94 run_flac --verify --force --silent --force-raw-format --endian=big --sign=signed --sample-rate=44100 --bps=8 --channels=1 --blocksize=576 -S- --output-name=tiny.flac noise8m32.raw || die "ERROR generating FLAC file"
cannam@86 95 run_flac --verify --force --silent --force-raw-format --endian=big --sign=signed --sample-rate=44100 --bps=16 --channels=2 --blocksize=576 -S- --output-name=small.flac noise.raw || die "ERROR generating FLAC file"
cannam@86 96 run_flac --verify --force --silent --force-raw-format --endian=big --sign=signed --sample-rate=44100 --bps=8 --channels=1 --blocksize=576 -S10x --output-name=tiny-s.flac noise8m32.raw || die "ERROR generating FLAC file"
cannam@86 97 run_flac --verify --force --silent --force-raw-format --endian=big --sign=signed --sample-rate=44100 --bps=16 --channels=2 --blocksize=576 -S10x --output-name=small-s.flac noise.raw || die "ERROR generating FLAC file"
cannam@86 98
cannam@86 99 tiny_samples=`metaflac --show-total-samples tiny.flac`
cannam@86 100 small_samples=`metaflac --show-total-samples small.flac`
cannam@86 101
cannam@86 102 tiny_seek_count=100
cannam@86 103 if [ "$FLAC__TEST_LEVEL" -gt 1 ] ; then
cannam@86 104 small_seek_count=10000
cannam@86 105 else
cannam@86 106 small_seek_count=100000
cannam@86 107 fi
cannam@86 108
cannam@86 109 for suffix in '' '-s' ; do
cannam@86 110 echo "testing tiny$suffix.flac:"
cannam@86 111 if run_test_seeking tiny$suffix.flac $tiny_seek_count $tiny_samples noise8m32.raw ; then : ; else
cannam@86 112 die "ERROR: during test_seeking"
cannam@86 113 fi
cannam@86 114
cannam@86 115 echo "testing small$suffix.flac:"
cannam@86 116 if run_test_seeking small$suffix.flac $small_seek_count $small_samples noise.raw ; then : ; else
cannam@86 117 die "ERROR: during test_seeking"
cannam@86 118 fi
cannam@86 119
cannam@86 120 echo "removing sample count from tiny$suffix.flac and small$suffix.flac:"
cannam@86 121 if run_metaflac --no-filename --set-total-samples=0 tiny$suffix.flac small$suffix.flac ; then : ; else
cannam@86 122 die "ERROR: during metaflac"
cannam@86 123 fi
cannam@86 124
cannam@86 125 echo "testing tiny$suffix.flac with total_samples=0:"
cannam@86 126 if run_test_seeking tiny$suffix.flac $tiny_seek_count $tiny_samples noise8m32.raw ; then : ; else
cannam@86 127 die "ERROR: during test_seeking"
cannam@86 128 fi
cannam@86 129
cannam@86 130 echo "testing small$suffix.flac with total_samples=0:"
cannam@86 131 if run_test_seeking small$suffix.flac $small_seek_count $small_samples noise.raw ; then : ; else
cannam@86 132 die "ERROR: during test_seeking"
cannam@86 133 fi
cannam@86 134 done
cannam@86 135
cannam@86 136 if [ $has_ogg = "yes" ] ; then
cannam@86 137
cannam@86 138 echo "generating Ogg FLAC files for seeking:"
cannam@86 139 run_flac --verify --force --silent --force-raw-format --endian=big --sign=signed --sample-rate=44100 --bps=8 --channels=1 --blocksize=576 --output-name=tiny.oga --ogg noise8m32.raw || die "ERROR generating Ogg FLAC file"
cannam@86 140 run_flac --verify --force --silent --force-raw-format --endian=big --sign=signed --sample-rate=44100 --bps=16 --channels=2 --blocksize=576 --output-name=small.oga --ogg noise.raw || die "ERROR generating Ogg FLAC file"
cannam@86 141 # seek tables are not used in Ogg FLAC
cannam@86 142
cannam@86 143 echo "testing tiny.oga:"
cannam@86 144 if run_test_seeking tiny.oga $tiny_seek_count $tiny_samples noise8m32.raw ; then : ; else
cannam@86 145 die "ERROR: during test_seeking"
cannam@86 146 fi
cannam@86 147
cannam@86 148 echo "testing small.oga:"
cannam@86 149 if run_test_seeking small.oga $small_seek_count $small_samples noise.raw ; then : ; else
cannam@86 150 die "ERROR: during test_seeking"
cannam@86 151 fi
cannam@86 152
cannam@86 153 fi
cannam@86 154
cannam@86 155 rm -f tiny.flac tiny.oga small.flac small.oga tiny-s.flac small-s.flac