instrument for valgrind

This commit is contained in:
Josh Coalson 2002-12-04 04:57:33 +00:00
parent 23fec2b7dc
commit 34c1ea8ca2
16 changed files with 218 additions and 114 deletions

View File

@ -22,6 +22,7 @@
# #
# all : build all libraries and programs in the default configuration (currently 'release') # all : build all libraries and programs in the default configuration (currently 'release')
# debug : build all libraries and programs in debug mode # debug : build all libraries and programs in debug mode
# valgrind: build all libraries and programs in debug mode, dynamically linked and ready for valgrind
# release : build all libraries and programs in release mode # release : build all libraries and programs in release mode
# test : run the unit and stream tests # test : run the unit and stream tests
# clean : remove all non-distro files # clean : remove all non-distro files
@ -37,9 +38,11 @@ DEFAULT_CONFIG = release
CONFIG = $(DEFAULT_CONFIG) CONFIG = $(DEFAULT_CONFIG)
debug : CONFIG = debug debug : CONFIG = debug
valgrind: CONFIG = valgrind
release : CONFIG = release release : CONFIG = release
debug : all debug : all
valgrind: all
release : all release : all
doc: doc:
@ -91,7 +94,13 @@ test_libOggFLAC++: libFLAC libOggFLAC libOggFLAC++
(cd src/$@ ; $(MAKE) -f Makefile.lite $(CONFIG)) (cd src/$@ ; $(MAKE) -f Makefile.lite $(CONFIG))
test: debug test: debug
(cd test ; $(MAKE) -f Makefile.lite) (cd test ; $(MAKE) -f Makefile.lite debug)
testv: valgrind
(cd test ; $(MAKE) -f Makefile.lite valgrind)
testr: release
(cd test ; $(MAKE) -f Makefile.lite release)
clean: clean:
-(cd doc ; $(MAKE) -f Makefile.lite clean) -(cd doc ; $(MAKE) -f Makefile.lite clean)

View File

@ -21,8 +21,13 @@
DEFAULT_BUILD = release DEFAULT_BUILD = release
debug : BUILD = debug debug : BUILD = debug
release : BUILD = release valgrind : BUILD = debug
release : BUILD = release
debug : LINKAGE = -static
valgrind : LINKAGE = -dynamic
release : LINKAGE = -static
all default: $(DEFAULT_BUILD) all default: $(DEFAULT_BUILD)

View File

@ -29,11 +29,9 @@ CC = gcc
CCC = g++ CCC = g++
endif endif
NASM = nasm NASM = nasm
# LINKAGE can be forced to -static or -dynamic from invocation if desired, but it defaults to -static except on OSX # override to -dynamic on OSX
ifeq ($(DARWIN_BUILD),yes) ifeq ($(DARWIN_BUILD),yes)
LINKAGE = -dynamic LINKAGE = -dynamic
else
LINKAGE = -static
endif endif
LINK = $(CC) $(LINKAGE) LINK = $(CC) $(LINKAGE)
OBJPATH = $(topdir)/obj OBJPATH = $(topdir)/obj
@ -48,6 +46,7 @@ DEBUG_PROGRAM = $(DEBUG_BINPATH)/$(PROGRAM_NAME)
RELEASE_PROGRAM = $(RELEASE_BINPATH)/$(PROGRAM_NAME) RELEASE_PROGRAM = $(RELEASE_BINPATH)/$(PROGRAM_NAME)
debug : CFLAGS = -g -O0 -DDEBUG $(DEBUG_CFLAGS) -Wall -W -DVERSION=$(VERSION) $(DEFINES) $(INCLUDES) debug : CFLAGS = -g -O0 -DDEBUG $(DEBUG_CFLAGS) -Wall -W -DVERSION=$(VERSION) $(DEFINES) $(INCLUDES)
valgrind: CFLAGS = -g -O0 -DDEBUG $(DEBUG_CFLAGS) -Wall -W -DVERSION=$(VERSION) $(DEFINES) $(INCLUDES)
release : CFLAGS = -O3 -fomit-frame-pointer -funroll-loops -finline-functions -DNDEBUG $(RELEASE_CFLAGS) -Wall -W -Winline -DFLaC__INLINE=__inline__ -DVERSION=$(VERSION) $(DEFINES) $(INCLUDES) release : CFLAGS = -O3 -fomit-frame-pointer -funroll-loops -finline-functions -DNDEBUG $(RELEASE_CFLAGS) -Wall -W -Winline -DFLaC__INLINE=__inline__ -DVERSION=$(VERSION) $(DEFINES) $(INCLUDES)
LFLAGS = -L$(LIBPATH) LFLAGS = -L$(LIBPATH)
@ -58,6 +57,7 @@ DEBUG_OBJS = $(SRCS_C:%.c=%.debug.o) $(SRCS_CC:%.cc=%.debug.o) $(SRCS_CPP:%.cpp=
RELEASE_OBJS = $(SRCS_C:%.c=%.release.o) $(SRCS_CC:%.cc=%.release.o) $(SRCS_CPP:%.cpp=%.release.o) $(SRCS_NASM:%.nasm=%.release.o) RELEASE_OBJS = $(SRCS_C:%.c=%.release.o) $(SRCS_CC:%.cc=%.release.o) $(SRCS_CPP:%.cpp=%.release.o) $(SRCS_NASM:%.nasm=%.release.o)
debug : $(ORDINALS_H) $(DEBUG_PROGRAM) debug : $(ORDINALS_H) $(DEBUG_PROGRAM)
valgrind: $(ORDINALS_H) $(DEBUG_PROGRAM)
release : $(ORDINALS_H) $(RELEASE_PROGRAM) release : $(ORDINALS_H) $(RELEASE_PROGRAM)
$(DEBUG_PROGRAM) : $(DEBUG_OBJS) $(DEBUG_PROGRAM) : $(DEBUG_OBJS)

View File

@ -56,6 +56,7 @@ LINKD = $(CC) -shared
endif endif
debug : CFLAGS = -g -O0 -DDEBUG $(DEBUG_CFLAGS) -Wall -W -DVERSION=$(VERSION) $(DEFINES) $(INCLUDES) debug : CFLAGS = -g -O0 -DDEBUG $(DEBUG_CFLAGS) -Wall -W -DVERSION=$(VERSION) $(DEFINES) $(INCLUDES)
valgrind: CFLAGS = -g -O0 -DDEBUG $(DEBUG_CFLAGS) -Wall -W -DVERSION=$(VERSION) $(DEFINES) $(INCLUDES)
release : CFLAGS = -O3 -fomit-frame-pointer -funroll-loops -finline-functions -DNDEBUG $(RELEASE_CFLAGS) -Wall -W -Winline -DFLaC__INLINE=__inline__ -DVERSION=$(VERSION) $(DEFINES) $(INCLUDES) release : CFLAGS = -O3 -fomit-frame-pointer -funroll-loops -finline-functions -DNDEBUG $(RELEASE_CFLAGS) -Wall -W -Winline -DFLaC__INLINE=__inline__ -DVERSION=$(VERSION) $(DEFINES) $(INCLUDES)
LFLAGS = -L$(LIBPATH) LFLAGS = -L$(LIBPATH)
@ -66,6 +67,7 @@ DEBUG_OBJS = $(SRCS_C:%.c=%.debug.o) $(SRCS_CC:%.cc=%.debug.o) $(SRCS_CPP:%.cpp=
RELEASE_OBJS = $(SRCS_C:%.c=%.release.o) $(SRCS_CC:%.cc=%.release.o) $(SRCS_CPP:%.cpp=%.release.o) $(SRCS_NASM:%.nasm=%.release.o) RELEASE_OBJS = $(SRCS_C:%.c=%.release.o) $(SRCS_CC:%.cc=%.release.o) $(SRCS_CPP:%.cpp=%.release.o) $(SRCS_NASM:%.nasm=%.release.o)
debug : $(ORDINALS_H) $(DEBUG_STATIC_LIB) $(DEBUG_DYNAMIC_LIB) debug : $(ORDINALS_H) $(DEBUG_STATIC_LIB) $(DEBUG_DYNAMIC_LIB)
valgrind: $(ORDINALS_H) $(DEBUG_STATIC_LIB) $(DEBUG_DYNAMIC_LIB)
release : $(ORDINALS_H) $(RELEASE_STATIC_LIB) $(RELEASE_DYNAMIC_LIB) release : $(ORDINALS_H) $(RELEASE_STATIC_LIB) $(RELEASE_DYNAMIC_LIB)
$(DEBUG_STATIC_LIB): $(DEBUG_OBJS) $(DEBUG_STATIC_LIB): $(DEBUG_OBJS)

View File

@ -23,9 +23,11 @@ DEFAULT_CONFIG = release
CONFIG = $(DEFAULT_CONFIG) CONFIG = $(DEFAULT_CONFIG)
debug : CONFIG = debug debug : CONFIG = debug
valgrind: CONFIG = valgrind
release : CONFIG = release release : CONFIG = release
debug : all debug : all
valgrind: all
release : all release : all
gain_analysis: gain_analysis:

View File

@ -23,9 +23,11 @@ DEFAULT_CONFIG = release
CONFIG = $(DEFAULT_CONFIG) CONFIG = $(DEFAULT_CONFIG)
debug : CONFIG = debug debug : CONFIG = debug
valgrind: CONFIG = valgrind
release : CONFIG = release release : CONFIG = release
debug : all debug : all
valgrind: all
release : all release : all
cuesheet: cuesheet:

View File

@ -21,6 +21,12 @@ else
TESTS_ENVIRONMENT = FLAC__EXHAUSTIVE_TESTS=no TESTS_ENVIRONMENT = FLAC__EXHAUSTIVE_TESTS=no
endif endif
if FLaC__VALGRIND_TESTING
TESTS_ENVIRONMENT = $(TESTS_ENVIRONMENT) FLAC__VALGRIND=yes
else
TESTS_ENVIRONMENT = $(TESTS_ENVIRONMENT) FLAC__VALGRIND=no
endif
SUBDIRS = cuesheets SUBDIRS = cuesheets
if FLaC__HAS_OGG if FLaC__HAS_OGG

View File

@ -22,18 +22,26 @@
topdir = .. topdir = ..
all: clean all: clean
FLAC__EXHAUSTIVE_TESTS=yes ./test_libFLAC.sh $(FLAC__EXHAUSTIVE_TESTS) $(FLAC__VALGRIND) ./test_libFLAC.sh
FLAC__EXHAUSTIVE_TESTS=yes ./test_libFLAC++.sh $(FLAC__EXHAUSTIVE_TESTS) $(FLAC__VALGRIND) ./test_libFLAC++.sh
FLAC__EXHAUSTIVE_TESTS=yes ./test_libOggFLAC.sh $(FLAC__EXHAUSTIVE_TESTS) $(FLAC__VALGRIND) ./test_libOggFLAC.sh
FLAC__EXHAUSTIVE_TESTS=yes ./test_libOggFLAC++.sh $(FLAC__EXHAUSTIVE_TESTS) $(FLAC__VALGRIND) ./test_libOggFLAC++.sh
FLAC__EXHAUSTIVE_TESTS=yes ./test_metaflac.sh $(FLAC__EXHAUSTIVE_TESTS) $(FLAC__VALGRIND) ./test_metaflac.sh
FLAC__EXHAUSTIVE_TESTS=yes ./test_grabbag.sh $(FLAC__EXHAUSTIVE_TESTS) $(FLAC__VALGRIND) ./test_grabbag.sh
FLAC__EXHAUSTIVE_TESTS=yes ./test_streams.sh $(FLAC__EXHAUSTIVE_TESTS) $(FLAC__VALGRIND) ./test_streams.sh
FLAC__EXHAUSTIVE_TESTS=yes ./test_bins.sh $(FLAC__EXHAUSTIVE_TESTS) $(FLAC__VALGRIND) ./test_bins.sh
debug: all debug : FLAC__EXHAUSTIVE_TESTS=FLAC__EXHAUSTIVE_TESTS=yes
valgrind: FLAC__EXHAUSTIVE_TESTS=FLAC__EXHAUSTIVE_TESTS=no
release : FLAC__EXHAUSTIVE_TESTS=FLAC__EXHAUSTIVE_TESTS=yes
release: all debug : FLAC__VALGRIND=FLAC__VALGRIND=no
valgrind: FLAC__VALGRIND=FLAC__VALGRIND=yes
release : FLAC__VALGRIND=FLAC__VALGRIND=no
debug : all
valgrind: all
release : all
clean: clean:
rm -f *.raw *.flac *.ogg *.cmp *.wav ../../test_files/bins/*.raw ../../test_files/bins/*.flac ../../test_files/bins/*.cmp *.diff *.log *.cue core rm -f *.raw *.flac *.ogg *.cmp *.wav ../../test_files/bins/*.raw ../../test_files/bins/*.flac ../../test_files/bins/*.cmp *.diff *.log *.cue core

View File

@ -19,14 +19,20 @@
LD_LIBRARY_PATH=../src/libFLAC/.libs:../obj/release/lib:../obj/debug/lib:$LD_LIBRARY_PATH LD_LIBRARY_PATH=../src/libFLAC/.libs:../obj/release/lib:../obj/debug/lib:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH export LD_LIBRARY_PATH
PATH=../src/flac:../obj/release/b:../obj/debug/bin:$PATH PATH=../src/flac:../obj/release/bin:../obj/debug/bin:$PATH
BINS_PATH=../../test_files/bins BINS_PATH=../../test_files/bins
flac --help 1>/dev/null 2>/dev/null || (echo "ERROR can't find flac executable" 1>&2 && exit 1) flac --help 1>/dev/null 2>/dev/null || (echo "ERROR can't find flac executable" 1>&2 && exit 1)
if [ $? != 0 ] ; then exit 1 ; fi if [ $? != 0 ] ; then exit 1 ; fi
#FLAC="valgrind --leak-check=yes --show-reachable=yes --logfile-fd=1 flac" run_flac ()
FLAC=flac {
if [ "$FLAC__VALGRIND" = yes ] ; then
valgrind --leak-check=yes --show-reachable=yes --num-callers=10 --logfile-fd=4 flac $* 4>>valgrind.log
else
flac $*
fi
}
test -d ${BINS_PATH} || exit 77 test -d ${BINS_PATH} || exit 77
@ -38,7 +44,7 @@ test_file ()
encode_options="$4" encode_options="$4"
echo -n "$name (--channels=$channels --bps=$bps $encode_options): encode..." echo -n "$name (--channels=$channels --bps=$bps $encode_options): encode..."
cmd="$FLAC --verify --silent --force-raw-format --endian=big --sign=signed --sample-rate=44100 --bps=$bps --channels=$channels $encode_options $name.bin" cmd="run_flac --verify --silent --force-raw-format --endian=big --sign=signed --sample-rate=44100 --bps=$bps --channels=$channels $encode_options $name.bin"
echo "### ENCODE $name #######################################################" >> ./streams.log echo "### ENCODE $name #######################################################" >> ./streams.log
echo "### cmd=$cmd" >> ./streams.log echo "### cmd=$cmd" >> ./streams.log
if $cmd 2>>./streams.log ; then : ; else if $cmd 2>>./streams.log ; then : ; else
@ -46,7 +52,7 @@ test_file ()
exit 1 exit 1
fi fi
echo -n "decode..." echo -n "decode..."
cmd="$FLAC --silent --endian=big --sign=signed --decode --force-raw-format $name.flac"; cmd="run_flac --silent --endian=big --sign=signed --decode --force-raw-format $name.flac";
echo "### DECODE $name #######################################################" >> ./streams.log echo "### DECODE $name #######################################################" >> ./streams.log
echo "### cmd=$cmd" >> ./streams.log echo "### cmd=$cmd" >> ./streams.log
if $cmd 2>>./streams.log ; then : ; else if $cmd 2>>./streams.log ; then : ; else

View File

@ -19,11 +19,20 @@
LD_LIBRARY_PATH=../src/libFLAC/.libs:../src/share/grabbag/.libs:../obj/release/lib:../obj/debug/lib:$LD_LIBRARY_PATH LD_LIBRARY_PATH=../src/libFLAC/.libs:../src/share/grabbag/.libs:../obj/release/lib:../obj/debug/lib:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH export LD_LIBRARY_PATH
PATH=../src/test_grabbag/cuesheet:../obj/release/b:../obj/debug/bin:$PATH PATH=../src/test_grabbag/cuesheet:../obj/release/bin:../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) 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 if [ $? != 0 ] ; then exit 1 ; fi
run_test_cuesheet ()
{
if [ "$FLAC__VALGRIND" = yes ] ; then
valgrind --leak-check=yes --show-reachable=yes --num-callers=10 --logfile-fd=4 test_cuesheet $* 4>>valgrind.log
else
test_cuesheet $*
fi
}
######################################################################## ########################################################################
# #
# test_cuesheet # test_cuesheet
@ -43,7 +52,7 @@ rm -f $log
# #
for cuesheet in $bad_cuesheets ; do for cuesheet in $bad_cuesheets ; do
echo "NEGATIVE $cuesheet" >> $log 2>&1 echo "NEGATIVE $cuesheet" >> $log 2>&1
test_cuesheet $cuesheet $good_leadout cdda >> $log 2>&1 run_test_cuesheet $cuesheet $good_leadout cdda >> $log 2>&1
exit_code=$? exit_code=$?
if [ "$exit_code" = 255 ] ; then if [ "$exit_code" = 255 ] ; then
echo "Error: test script is broken" echo "Error: test script is broken"
@ -59,7 +68,7 @@ done
# #
for cuesheet in $good_cuesheets ; do for cuesheet in $good_cuesheets ; do
echo "POSITIVE $cuesheet" >> $log 2>&1 echo "POSITIVE $cuesheet" >> $log 2>&1
test_cuesheet $cuesheet $good_leadout cdda >> $log 2>&1 run_test_cuesheet $cuesheet $good_leadout cdda >> $log 2>&1
exit_code=$? exit_code=$?
if [ "$exit_code" = 255 ] ; then if [ "$exit_code" = 255 ] ; then
echo "Error: test script is broken" echo "Error: test script is broken"

View File

@ -19,10 +19,19 @@
LD_LIBRARY_PATH=../src/libFLAC++/.libs:../src/libFLAC/.libs:../obj/release/lib:../obj/debug/lib:$LD_LIBRARY_PATH LD_LIBRARY_PATH=../src/libFLAC++/.libs:../src/libFLAC/.libs:../obj/release/lib:../obj/debug/lib:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH export LD_LIBRARY_PATH
PATH=../src/test_libFLAC++:../obj/release/b:../obj/debug/bin:$PATH PATH=../src/test_libFLAC++:../obj/release/bin:../obj/debug/bin:$PATH
export PATH export PATH
if test_libFLAC++ ; then : ; else run_test_libFLACpp ()
{
if [ "$FLAC__VALGRIND" = yes ] ; then
valgrind --leak-check=yes --show-reachable=yes --num-callers=10 --logfile-fd=4 test_libFLAC++ $* 4>>valgrind.log
else
test_libFLAC++ $*
fi
}
if run_test_libFLACpp ; then : ; else
echo "ERROR during test_libFLAC++" 1>&2 echo "ERROR during test_libFLAC++" 1>&2
exit 1 exit 1
fi fi

View File

@ -19,10 +19,19 @@
LD_LIBRARY_PATH=../src/libFLAC/.libs:../obj/release/lib:../obj/debug/lib:$LD_LIBRARY_PATH LD_LIBRARY_PATH=../src/libFLAC/.libs:../obj/release/lib:../obj/debug/lib:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH export LD_LIBRARY_PATH
PATH=../src/test_libFLAC:../obj/release/b:../obj/debug/bin:$PATH PATH=../src/test_libFLAC:../obj/release/bin:../obj/debug/bin:$PATH
export PATH export PATH
if test_libFLAC ; then : ; else run_test_libFLAC ()
{
if [ "$FLAC__VALGRIND" = yes ] ; then
valgrind --leak-check=yes --show-reachable=yes --num-callers=10 --logfile-fd=4 test_libFLAC $* 4>>valgrind.log
else
test_libFLAC $*
fi
}
if run_test_libFLAC ; then : ; else
echo "ERROR during test_libFLAC" 1>&2 echo "ERROR during test_libFLAC" 1>&2
exit 1 exit 1
fi fi

View File

@ -19,10 +19,19 @@
LD_LIBRARY_PATH=../src/libOggFLAC++/.libs:../src/libOggFLAC/.libs:../src/libFLAC/.libs:../obj/release/lib:../obj/debug/lib:$LD_LIBRARY_PATH LD_LIBRARY_PATH=../src/libOggFLAC++/.libs:../src/libOggFLAC/.libs:../src/libFLAC/.libs:../obj/release/lib:../obj/debug/lib:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH export LD_LIBRARY_PATH
PATH=../src/test_libOggFLAC++:../obj/release/b:../obj/debug/bin:$PATH PATH=../src/test_libOggFLAC++:../obj/release/bin:../obj/debug/bin:$PATH
export PATH export PATH
if test_libOggFLAC++ ; then : ; else run_test_libOggFLACpp ()
{
if [ "$FLAC__VALGRIND" = yes ] ; then
valgrind --leak-check=yes --show-reachable=yes --num-callers=10 --logfile-fd=4 test_libOggFLAC++ $* 4>>valgrind.log
else
test_libOggFLAC++ $*
fi
}
if run_test_libOggFLACpp ; then : ; else
echo "ERROR during test_libOggFLAC++" 1>&2 echo "ERROR during test_libOggFLAC++" 1>&2
exit 1 exit 1
fi fi

View File

@ -19,10 +19,19 @@
LD_LIBRARY_PATH=../src/libOggFLAC/.libs../src/libFLAC/.libs:../obj/release/lib:../obj/debug/lib:$LD_LIBRARY_PATH LD_LIBRARY_PATH=../src/libOggFLAC/.libs../src/libFLAC/.libs:../obj/release/lib:../obj/debug/lib:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH export LD_LIBRARY_PATH
PATH=../src/test_libOggFLAC:../obj/release/b:../obj/debug/bin:$PATH PATH=../src/test_libOggFLAC:../obj/release/bin:../obj/debug/bin:$PATH
export PATH export PATH
if test_libOggFLAC ; then : ; else run_test_libOggFLAC ()
{
if [ "$FLAC__VALGRIND" = yes ] ; then
valgrind --leak-check=yes --show-reachable=yes --num-callers=10 --logfile-fd=4 test_libOggFLAC $* 4>>valgrind.log
else
test_libOggFLAC $*
fi
}
if run_test_libOggFLAC ; then : ; else
echo "ERROR during test_libOggFLAC" 1>&2 echo "ERROR during test_libOggFLAC" 1>&2
exit 1 exit 1
fi fi

View File

@ -19,7 +19,7 @@
LD_LIBRARY_PATH=../src/libFLAC/.libs:../obj/release/lib:../obj/debug/lib:$LD_LIBRARY_PATH LD_LIBRARY_PATH=../src/libFLAC/.libs:../obj/release/lib:../obj/debug/lib:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH export LD_LIBRARY_PATH
PATH=../src/flac:../src/metaflac:../obj/release/b:../obj/debug/bin:$PATH PATH=../src/flac:../src/metaflac:../obj/release/bin:../obj/debug/bin:$PATH
flacfile=metaflac.flac flacfile=metaflac.flac
@ -29,10 +29,23 @@ if [ $? != 0 ] ; then exit 1 ; fi
metaflac --help 1>/dev/null 2>/dev/null || (echo "ERROR can't find metaflac executable" 1>&2 && exit 1) metaflac --help 1>/dev/null 2>/dev/null || (echo "ERROR can't find metaflac executable" 1>&2 && exit 1)
if [ $? != 0 ] ; then exit 1 ; fi if [ $? != 0 ] ; then exit 1 ; fi
#FLAC="valgrind --leak-check=yes --show-reachable=yes flac" run_flac ()
FLAC=flac {
#METAFLAC="valgrind --leak-check=yes --show-reachable=yes metaflac" if [ "$FLAC__VALGRIND" = yes ] ; then
METAFLAC=metaflac valgrind --leak-check=yes --show-reachable=yes --num-callers=10 --logfile-fd=4 flac $* 4>>valgrind.log
else
flac $*
fi
}
run_metaflac ()
{
if [ "$FLAC__VALGRIND" = yes ] ; then
valgrind --leak-check=yes --show-reachable=yes --num-callers=10 --logfile-fd=4 metaflac $* 4>>valgrind.log
else
metaflac $*
fi
}
echo "Generating stream..." echo "Generating stream..."
if [ -f /bin/sh.exe ] ; then if [ -f /bin/sh.exe ] ; then
@ -40,7 +53,7 @@ if [ -f /bin/sh.exe ] ; then
else else
inputfile=/bin/sh inputfile=/bin/sh
fi fi
if $FLAC --verify -0 --output-name=$flacfile --force-raw-format --endian=big --sign=signed --channels=1 --bps=8 --sample-rate=44100 $inputfile ; then if run_flac --verify -0 --output-name=$flacfile --force-raw-format --endian=big --sign=signed --channels=1 --bps=8 --sample-rate=44100 $inputfile ; then
chmod +w $flacfile chmod +w $flacfile
else else
echo "ERROR during generation" 1>&2 echo "ERROR during generation" 1>&2
@ -58,7 +71,7 @@ check_exit ()
check_flac () check_flac ()
{ {
if $FLAC --silent --test $flacfile ; then : ; else if run_flac --silent --test $flacfile ; then : ; else
echo "ERROR in $flacfile" 1>&2 echo "ERROR in $flacfile" 1>&2
exit 1 exit 1
fi fi
@ -66,11 +79,11 @@ check_flac ()
check_flac check_flac
(set -x && $METAFLAC --list $flacfile) (set -x && run_metaflac --list $flacfile)
check_exit check_exit
(set -x && (set -x &&
$METAFLAC \ run_metaflac \
--show-md5sum \ --show-md5sum \
--show-min-blocksize \ --show-min-blocksize \
--show-max-blocksize \ --show-max-blocksize \
@ -84,193 +97,193 @@ $METAFLAC \
) )
check_exit check_exit
(set -x && $METAFLAC --preserve-modtime --add-padding=12345 $flacfile) (set -x && run_metaflac --preserve-modtime --add-padding=12345 $flacfile)
check_exit check_exit
check_flac check_flac
# some flavors of /bin/sh (e.g. Darwin's) won't even handle quoted spaces, so we underscore: # some flavors of /bin/sh (e.g. Darwin's) won't even handle quoted spaces, so we underscore:
(set -x && $METAFLAC --set-vc-field="ARTIST=The_artist_formerly_known_as_the_artist..." $flacfile) (set -x && run_metaflac --set-vc-field="ARTIST=The_artist_formerly_known_as_the_artist..." $flacfile)
check_exit check_exit
check_flac check_flac
(set -x && $METAFLAC --list --block-type=VORBIS_COMMENT $flacfile) (set -x && run_metaflac --list --block-type=VORBIS_COMMENT $flacfile)
check_exit check_exit
(set -x && $METAFLAC --set-vc-field="ARTIST=Chuck_Woolery" $flacfile) (set -x && run_metaflac --set-vc-field="ARTIST=Chuck_Woolery" $flacfile)
check_exit check_exit
check_flac check_flac
(set -x && $METAFLAC --list --block-type=VORBIS_COMMENT $flacfile) (set -x && run_metaflac --list --block-type=VORBIS_COMMENT $flacfile)
check_exit check_exit
(set -x && $METAFLAC --list --block-type=VORBIS_COMMENT $flacfile) (set -x && run_metaflac --list --block-type=VORBIS_COMMENT $flacfile)
check_exit check_exit
(set -x && $METAFLAC --set-vc-field="ARTIST=Vern" $flacfile) (set -x && run_metaflac --set-vc-field="ARTIST=Vern" $flacfile)
check_exit check_exit
check_flac check_flac
(set -x && $METAFLAC --list --block-type=VORBIS_COMMENT $flacfile) (set -x && run_metaflac --list --block-type=VORBIS_COMMENT $flacfile)
check_exit check_exit
(set -x && $METAFLAC --set-vc-field="TITLE=He_who_smelt_it_dealt_it" $flacfile) (set -x && run_metaflac --set-vc-field="TITLE=He_who_smelt_it_dealt_it" $flacfile)
check_exit check_exit
check_flac check_flac
(set -x && $METAFLAC --list --block-type=VORBIS_COMMENT $flacfile) (set -x && run_metaflac --list --block-type=VORBIS_COMMENT $flacfile)
check_exit check_exit
(set -x && $METAFLAC --show-vc-vendor --show-vc-field=ARTIST $flacfile) (set -x && run_metaflac --show-vc-vendor --show-vc-field=ARTIST $flacfile)
check_exit check_exit
(set -x && $METAFLAC --remove-vc-firstfield=ARTIST $flacfile) (set -x && run_metaflac --remove-vc-firstfield=ARTIST $flacfile)
check_exit check_exit
check_flac check_flac
(set -x && $METAFLAC --list --block-type=VORBIS_COMMENT $flacfile) (set -x && run_metaflac --list --block-type=VORBIS_COMMENT $flacfile)
check_exit check_exit
(set -x && $METAFLAC --remove-vc-field=ARTIST $flacfile) (set -x && run_metaflac --remove-vc-field=ARTIST $flacfile)
check_exit check_exit
check_flac check_flac
(set -x && $METAFLAC --list --block-type=VORBIS_COMMENT $flacfile) (set -x && run_metaflac --list --block-type=VORBIS_COMMENT $flacfile)
check_exit check_exit
(set -x && $METAFLAC --list --block-number=0 $flacfile) (set -x && run_metaflac --list --block-number=0 $flacfile)
check_exit check_exit
(set -x && $METAFLAC --list --block-number=1,2,999 $flacfile) (set -x && run_metaflac --list --block-number=1,2,999 $flacfile)
check_exit check_exit
(set -x && $METAFLAC --list --block-type=VORBIS_COMMENT,PADDING $flacfile) (set -x && run_metaflac --list --block-type=VORBIS_COMMENT,PADDING $flacfile)
check_exit check_exit
(set -x && $METAFLAC --list --except-block-type=SEEKTABLE,VORBIS_COMMENT $flacfile) (set -x && run_metaflac --list --except-block-type=SEEKTABLE,VORBIS_COMMENT $flacfile)
check_exit check_exit
(set -x && $METAFLAC --add-padding=4321 $flacfile $flacfile) (set -x && run_metaflac --add-padding=4321 $flacfile $flacfile)
check_exit check_exit
check_flac check_flac
(set -x && $METAFLAC --merge-padding $flacfile) (set -x && run_metaflac --merge-padding $flacfile)
check_exit check_exit
check_flac check_flac
(set -x && $METAFLAC --add-padding=0 $flacfile) (set -x && run_metaflac --add-padding=0 $flacfile)
check_exit check_exit
check_flac check_flac
(set -x && $METAFLAC --sort-padding $flacfile) (set -x && run_metaflac --sort-padding $flacfile)
check_exit check_exit
check_flac check_flac
(set -x && $METAFLAC --add-padding=0 $flacfile) (set -x && run_metaflac --add-padding=0 $flacfile)
check_exit check_exit
check_flac check_flac
(set -x && $METAFLAC --remove-vc-all $flacfile) (set -x && run_metaflac --remove-vc-all $flacfile)
check_exit check_exit
check_flac check_flac
(set -x && $METAFLAC --remove --block-number=1,99 --dont-use-padding $flacfile) (set -x && run_metaflac --remove --block-number=1,99 --dont-use-padding $flacfile)
check_exit check_exit
check_flac check_flac
(set -x && $METAFLAC --remove --block-number=99 --dont-use-padding $flacfile) (set -x && run_metaflac --remove --block-number=99 --dont-use-padding $flacfile)
check_exit check_exit
check_flac check_flac
(set -x && $METAFLAC --remove --block-type=PADDING $flacfile) (set -x && run_metaflac --remove --block-type=PADDING $flacfile)
check_exit check_exit
check_flac check_flac
(set -x && $METAFLAC --remove --block-type=PADDING --dont-use-padding $flacfile) (set -x && run_metaflac --remove --block-type=PADDING --dont-use-padding $flacfile)
check_exit check_exit
check_flac check_flac
(set -x && $METAFLAC --add-padding=0 $flacfile $flacfile) (set -x && run_metaflac --add-padding=0 $flacfile $flacfile)
check_exit check_exit
check_flac check_flac
(set -x && $METAFLAC --remove --except-block-type=PADDING $flacfile) (set -x && run_metaflac --remove --except-block-type=PADDING $flacfile)
check_exit check_exit
check_flac check_flac
(set -x && $METAFLAC --remove-all $flacfile) (set -x && run_metaflac --remove-all $flacfile)
check_exit check_exit
check_flac check_flac
(set -x && $METAFLAC --remove-all --dont-use-padding $flacfile) (set -x && run_metaflac --remove-all --dont-use-padding $flacfile)
check_exit check_exit
check_flac check_flac
(set -x && $METAFLAC --remove-all --dont-use-padding $flacfile) (set -x && run_metaflac --remove-all --dont-use-padding $flacfile)
check_exit check_exit
check_flac check_flac
(set -x && $METAFLAC --set-vc-field="f=0123456789abcdefghij" $flacfile) (set -x && run_metaflac --set-vc-field="f=0123456789abcdefghij" $flacfile)
check_exit check_exit
check_flac check_flac
(set -x && $METAFLAC --list --except-block-type=STREAMINFO $flacfile) (set -x && run_metaflac --list --except-block-type=STREAMINFO $flacfile)
check_exit check_exit
(set -x && $METAFLAC --remove-vc-all --set-vc-field="f=0123456789abcdefghi" $flacfile) (set -x && run_metaflac --remove-vc-all --set-vc-field="f=0123456789abcdefghi" $flacfile)
check_exit check_exit
check_flac check_flac
(set -x && $METAFLAC --list --except-block-type=STREAMINFO $flacfile) (set -x && run_metaflac --list --except-block-type=STREAMINFO $flacfile)
check_exit check_exit
(set -x && $METAFLAC --remove-vc-all --set-vc-field="f=0123456789abcde" $flacfile) (set -x && run_metaflac --remove-vc-all --set-vc-field="f=0123456789abcde" $flacfile)
check_exit check_exit
check_flac check_flac
(set -x && $METAFLAC --list --except-block-type=STREAMINFO $flacfile) (set -x && run_metaflac --list --except-block-type=STREAMINFO $flacfile)
check_exit check_exit
(set -x && $METAFLAC --remove-vc-all --set-vc-field="f=0" $flacfile) (set -x && run_metaflac --remove-vc-all --set-vc-field="f=0" $flacfile)
check_exit check_exit
check_flac check_flac
(set -x && $METAFLAC --list --except-block-type=STREAMINFO $flacfile) (set -x && run_metaflac --list --except-block-type=STREAMINFO $flacfile)
check_exit check_exit
(set -x && $METAFLAC --remove-vc-all --set-vc-field="f=0123456789" $flacfile) (set -x && run_metaflac --remove-vc-all --set-vc-field="f=0123456789" $flacfile)
check_exit check_exit
check_flac check_flac
(set -x && $METAFLAC --list --except-block-type=STREAMINFO $flacfile) (set -x && run_metaflac --list --except-block-type=STREAMINFO $flacfile)
check_exit check_exit
(set -x && $METAFLAC --remove-vc-all --set-vc-field="f=0123456789abcdefghi" $flacfile) (set -x && run_metaflac --remove-vc-all --set-vc-field="f=0123456789abcdefghi" $flacfile)
check_exit check_exit
check_flac check_flac
(set -x && $METAFLAC --list --except-block-type=STREAMINFO $flacfile) (set -x && run_metaflac --list --except-block-type=STREAMINFO $flacfile)
check_exit check_exit
(set -x && $METAFLAC --remove-vc-all --set-vc-field="f=0123456789" $flacfile) (set -x && run_metaflac --remove-vc-all --set-vc-field="f=0123456789" $flacfile)
check_exit check_exit
check_flac check_flac
(set -x && $METAFLAC --list --except-block-type=STREAMINFO $flacfile) (set -x && run_metaflac --list --except-block-type=STREAMINFO $flacfile)
check_exit check_exit
(set -x && $METAFLAC --remove-vc-all --set-vc-field="f=0123456789abcdefghij" $flacfile) (set -x && run_metaflac --remove-vc-all --set-vc-field="f=0123456789abcdefghij" $flacfile)
check_exit check_exit
check_flac check_flac
(set -x && $METAFLAC --list --except-block-type=STREAMINFO $flacfile) (set -x && run_metaflac --list --except-block-type=STREAMINFO $flacfile)
check_exit check_exit
(set -x && echo "TITLE=Tittle" | $METAFLAC --import-vc-from=- $flacfile) (set -x && echo "TITLE=Tittle" | run_metaflac --import-vc-from=- $flacfile)
check_exit check_exit
check_flac check_flac
(set -x && $METAFLAC --list --block-type=VORBIS_COMMENT $flacfile) (set -x && run_metaflac --list --block-type=VORBIS_COMMENT $flacfile)
check_exit check_exit
cat > vc.txt << EOF cat > vc.txt << EOF
artist=Fartist artist=Fartist
artist=artits artist=artits
EOF EOF
(set -x && $METAFLAC --import-vc-from=vc.txt $flacfile) (set -x && run_metaflac --import-vc-from=vc.txt $flacfile)
check_exit check_exit
check_flac check_flac
(set -x && $METAFLAC --list --block-type=VORBIS_COMMENT $flacfile) (set -x && run_metaflac --list --block-type=VORBIS_COMMENT $flacfile)
check_exit check_exit
rm vc.txt rm vc.txt
@ -278,18 +291,18 @@ rm vc.txt
cs_in=cuesheets/good.000.cue cs_in=cuesheets/good.000.cue
cs_out=metaflac.cue cs_out=metaflac.cue
cs_out2=metaflac2.cue cs_out2=metaflac2.cue
(set -x && $METAFLAC --import-cuesheet-from="$cs_in" $flacfile) (set -x && run_metaflac --import-cuesheet-from="$cs_in" $flacfile)
check_exit check_exit
check_flac check_flac
(set -x && $METAFLAC --export-cuesheet-to=$cs_out $flacfile) (set -x && run_metaflac --export-cuesheet-to=$cs_out $flacfile)
check_exit check_exit
(set -x && $METAFLAC --remove --block-type=CUESHEET $flacfile) (set -x && run_metaflac --remove --block-type=CUESHEET $flacfile)
check_exit check_exit
check_flac check_flac
(set -x && $METAFLAC --import-cuesheet-from=$cs_out $flacfile) (set -x && run_metaflac --import-cuesheet-from=$cs_out $flacfile)
check_exit check_exit
check_flac check_flac
(set -x && $METAFLAC --export-cuesheet-to=$cs_out2 $flacfile) (set -x && run_metaflac --export-cuesheet-to=$cs_out2 $flacfile)
check_exit check_exit
echo "comparing cuesheets:" echo "comparing cuesheets:"
if diff $cs_out $cs_out2 ; then : ; else if diff $cs_out $cs_out2 ; then : ; else

View File

@ -19,11 +19,20 @@
LD_LIBRARY_PATH=../src/libFLAC/.libs:../obj/release/lib:../obj/debug/lib:$LD_LIBRARY_PATH LD_LIBRARY_PATH=../src/libFLAC/.libs:../obj/release/lib:../obj/debug/lib:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH export LD_LIBRARY_PATH
PATH=../src/flac:../src/test_streams:../obj/release/b:../obj/debug/bin:$PATH PATH=../src/flac:../src/test_streams:../obj/release/bin:../obj/debug/bin:$PATH
flac --help 1>/dev/null 2>/dev/null || (echo "ERROR can't find flac executable" 1>&2 && exit 1) flac --help 1>/dev/null 2>/dev/null || (echo "ERROR can't find flac executable" 1>&2 && exit 1)
if [ $? != 0 ] ; then exit 1 ; fi if [ $? != 0 ] ; then exit 1 ; fi
run_flac ()
{
if [ "$FLAC__VALGRIND" = yes ] ; then
valgrind --leak-check=yes --show-reachable=yes --num-callers=10 --logfile-fd=4 flac $* 4>>valgrind.log
else
flac $*
fi
}
echo "Generating streams..." echo "Generating streams..."
if test_streams ; then : ; else if test_streams ; then : ; else
echo "ERROR during test_streams" 1>&2 echo "ERROR during test_streams" 1>&2
@ -39,18 +48,15 @@ else
echo "flac --ogg doesn't work" echo "flac --ogg doesn't work"
fi fi
#FLAC="valgrind --leak-check=yes --show-reachable=yes --logfile-fd=1 flac"
FLAC=flac
# #
# multi-file tests # multi-file tests
# #
echo "Generating multiple input files from noise..." echo "Generating multiple input files from noise..."
if $FLAC --verify --silent --force-raw-format --endian=big --sign=signed --sample-rate=44100 --bps=16 --channels=2 noise.raw ; then : ; else if run_flac --verify --silent --force-raw-format --endian=big --sign=signed --sample-rate=44100 --bps=16 --channels=2 noise.raw ; then : ; else
echo "ERROR generating FLAC file" 1>&2 echo "ERROR generating FLAC file" 1>&2
exit 1 exit 1
fi fi
if $FLAC --decode --silent noise.flac ; then : ; else if run_flac --decode --silent noise.flac ; then : ; else
echo "ERROR generating WAVE file" 1>&2 echo "ERROR generating WAVE file" 1>&2
exit 1 exit 1
fi fi
@ -76,14 +82,14 @@ test_multifile ()
encode_options="$encode_options --sector-align" encode_options="$encode_options --sector-align"
fi fi
if $FLAC $encode_options file0.wav file1.wav file2.wav ; then : ; else if run_flac $encode_options file0.wav file1.wav file2.wav ; then : ; else
echo "ERROR" 1>&2 echo "ERROR" 1>&2
exit 1 exit 1
fi fi
for n in 0 1 2 ; do for n in 0 1 2 ; do
mv file$n.$suffix file${n}x.$suffix mv file$n.$suffix file${n}x.$suffix
done done
if $FLAC --decode file0x.$suffix file1x.$suffix file2x.$suffix ; then : ; else if run_flac --decode file0x.$suffix file1x.$suffix file2x.$suffix ; then : ; else
echo "ERROR" 1>&2 echo "ERROR" 1>&2
exit 1 exit 1
fi fi
@ -141,7 +147,7 @@ test_file ()
encode_options="$4" encode_options="$4"
echo -n "$name (--channels=$channels --bps=$bps $encode_options): encode..." echo -n "$name (--channels=$channels --bps=$bps $encode_options): encode..."
cmd="$FLAC --verify --silent --force-raw-format --endian=big --sign=signed --sample-rate=44100 --bps=$bps --channels=$channels $encode_options $name.raw" cmd="run_flac --verify --silent --force-raw-format --endian=big --sign=signed --sample-rate=44100 --bps=$bps --channels=$channels $encode_options $name.raw"
echo "### ENCODE $name #######################################################" >> ./streams.log echo "### ENCODE $name #######################################################" >> ./streams.log
echo "### cmd=$cmd" >> ./streams.log echo "### cmd=$cmd" >> ./streams.log
if $cmd 2>>./streams.log ; then : ; else if $cmd 2>>./streams.log ; then : ; else
@ -149,7 +155,7 @@ test_file ()
exit 1 exit 1
fi fi
echo -n "decode..." echo -n "decode..."
cmd="$FLAC --silent --endian=big --sign=signed --decode --force-raw-format --output-name=$name.cmp $name.flac" cmd="run_flac --silent --endian=big --sign=signed --decode --force-raw-format --output-name=$name.cmp $name.flac"
echo "### DECODE $name #######################################################" >> ./streams.log echo "### DECODE $name #######################################################" >> ./streams.log
echo "### cmd=$cmd" >> ./streams.log echo "### cmd=$cmd" >> ./streams.log
if $cmd 2>>./streams.log ; then : ; else if $cmd 2>>./streams.log ; then : ; else
@ -182,7 +188,7 @@ test_file_piped ()
echo -n "$name: encode via pipes..." echo -n "$name: encode via pipes..."
if [ $is_win = yes ] ; then if [ $is_win = yes ] ; then
cmd="$FLAC --verify --silent --force-raw-format --endian=big --sign=signed --sample-rate=44100 --bps=$bps --channels=$channels $encode_options --stdout $name.raw" cmd="run_flac --verify --silent --force-raw-format --endian=big --sign=signed --sample-rate=44100 --bps=$bps --channels=$channels $encode_options --stdout $name.raw"
echo "### ENCODE $name #######################################################" >> ./streams.log echo "### ENCODE $name #######################################################" >> ./streams.log
echo "### cmd=$cmd" >> ./streams.log echo "### cmd=$cmd" >> ./streams.log
if $cmd 1>$name.flac 2>>./streams.log ; then : ; else if $cmd 1>$name.flac 2>>./streams.log ; then : ; else
@ -190,7 +196,7 @@ test_file_piped ()
exit 1 exit 1
fi fi
else else
cmd="$FLAC --verify --silent --force-raw-format --endian=big --sign=signed --sample-rate=44100 --bps=$bps --channels=$channels $encode_options --stdout -" cmd="run_flac --verify --silent --force-raw-format --endian=big --sign=signed --sample-rate=44100 --bps=$bps --channels=$channels $encode_options --stdout -"
echo "### ENCODE $name #######################################################" >> ./streams.log echo "### ENCODE $name #######################################################" >> ./streams.log
echo "### cmd=$cmd" >> ./streams.log echo "### cmd=$cmd" >> ./streams.log
if cat $name.raw | $cmd 1>$name.flac 2>>./streams.log ; then : ; else if cat $name.raw | $cmd 1>$name.flac 2>>./streams.log ; then : ; else
@ -200,7 +206,7 @@ test_file_piped ()
fi fi
echo -n "decode via pipes..." echo -n "decode via pipes..."
if [ $is_win = yes ] ; then if [ $is_win = yes ] ; then
cmd="$FLAC --silent --endian=big --sign=signed --decode --force-raw-format --stdout $name.flac" cmd="run_flac --silent --endian=big --sign=signed --decode --force-raw-format --stdout $name.flac"
echo "### DECODE $name #######################################################" >> ./streams.log echo "### DECODE $name #######################################################" >> ./streams.log
echo "### cmd=$cmd" >> ./streams.log echo "### cmd=$cmd" >> ./streams.log
if $cmd 1>$name.cmp 2>>./streams.log ; then : ; else if $cmd 1>$name.cmp 2>>./streams.log ; then : ; else
@ -208,7 +214,7 @@ test_file_piped ()
exit 1 exit 1
fi fi
else else
cmd="$FLAC --silent --endian=big --sign=signed --decode --force-raw-format --stdout -" cmd="run_flac --silent --endian=big --sign=signed --decode --force-raw-format --stdout -"
echo "### DECODE $name #######################################################" >> ./streams.log echo "### DECODE $name #######################################################" >> ./streams.log
echo "### cmd=$cmd" >> ./streams.log echo "### cmd=$cmd" >> ./streams.log
if cat $name.flac | $cmd 1>$name.cmp 2>>./streams.log ; then : ; else if cat $name.flac | $cmd 1>$name.cmp 2>>./streams.log ; then : ; else