Chris@0: #!/bin/sh Chris@0: Chris@0: # Copyright (C) 2008-2011 Erik de Castro Lopo Chris@0: # Chris@0: # All rights reserved. Chris@0: # Chris@0: # Redistribution and use in source and binary forms, with or without Chris@0: # modification, are permitted provided that the following conditions are Chris@0: # met: Chris@0: # Chris@0: # * Redistributions of source code must retain the above copyright Chris@0: # notice, this list of conditions and the following disclaimer. Chris@0: # * Redistributions in binary form must reproduce the above copyright Chris@0: # notice, this list of conditions and the following disclaimer in Chris@0: # the documentation and/or other materials provided with the Chris@0: # distribution. Chris@0: # * Neither the author nor the names of any contributors may be used Chris@0: # to endorse or promote products derived from this software without Chris@0: # specific prior written permission. Chris@0: # Chris@0: # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS Chris@0: # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED Chris@0: # TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR Chris@0: # PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR Chris@0: # CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, Chris@0: # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, Chris@0: # PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; Chris@0: # OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, Chris@0: # WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR Chris@0: # OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF Chris@0: # ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. Chris@0: Chris@0: Chris@0: HOST_TRIPLET=@HOST_TRIPLET@ Chris@0: PACKAGE_VERSION=@PACKAGE_VERSION@ Chris@0: LIB_VERSION=`echo $PACKAGE_VERSION | sed "s/[a-z].*//"` Chris@0: Chris@0: if test -f tests/sfversion@EXEEXT@ ; then Chris@0: cd tests Chris@0: fi Chris@0: Chris@0: if test ! -f sfversion@EXEEXT@ ; then Chris@0: echo "Not able to find test executables." Chris@0: exit 1 Chris@0: fi Chris@0: Chris@0: if test -f libsndfile.so.$LIB_VERSION ; then Chris@0: # This will work on Linux, but not on Mac. Chris@0: # Windows is already sorted out. Chris@0: export LD_LIBRARY_PATH=`pwd` Chris@0: if test ! -f libsndfile.so.1 ; then Chris@0: ln -s libsndfile.so.$LIB_VERSION libsndfile.so.1 Chris@0: fi Chris@0: fi Chris@0: Chris@0: sfversion=`./sfversion@EXEEXT@ | sed "s/-exp$//"` Chris@0: Chris@0: if test $sfversion != libsndfile-$PACKAGE_VERSION ; then Chris@0: echo "Error : sfversion ($sfversion) and PACKAGE_VERSION ($PACKAGE_VERSION) don't match." Chris@0: exit 1 Chris@0: fi Chris@0: Chris@0: # Force exit on errors. Chris@0: set -e Chris@0: Chris@0: # Generic-tests Chris@0: uname -a Chris@0: Chris@0: # Check the header file. Chris@0: sh pedantic-header-test.sh Chris@0: Chris@0: # Need this for when we're running from files collected into the Chris@0: # libsndfile-testsuite-@PACKAGE_VERSION@ tarball. Chris@0: if test -x test_main@EXEEXT@ ; then Chris@0: echo "Running unit tests from src/ directory of source code tree." Chris@0: ./test_main@EXEEXT@ Chris@0: echo Chris@0: echo "Running end-to-end tests from tests/ directory." Chris@0: fi Chris@0: Chris@0: ./error_test@EXEEXT@ Chris@0: ./pcm_test@EXEEXT@ Chris@0: ./ulaw_test@EXEEXT@ Chris@0: ./alaw_test@EXEEXT@ Chris@0: ./dwvw_test@EXEEXT@ Chris@0: ./command_test@EXEEXT@ ver Chris@0: ./command_test@EXEEXT@ norm Chris@0: ./command_test@EXEEXT@ format Chris@0: ./command_test@EXEEXT@ peak Chris@0: ./command_test@EXEEXT@ trunc Chris@0: ./command_test@EXEEXT@ inst Chris@0: ./command_test@EXEEXT@ current_sf_info Chris@0: ./command_test@EXEEXT@ bext Chris@0: ./command_test@EXEEXT@ bextch Chris@0: ./command_test@EXEEXT@ chanmap Chris@0: ./floating_point_test@EXEEXT@ Chris@0: ./checksum_test@EXEEXT@ Chris@0: ./scale_clip_test@EXEEXT@ Chris@0: ./headerless_test@EXEEXT@ Chris@0: ./rdwr_test@EXEEXT@ Chris@0: ./locale_test@EXEEXT@ Chris@0: ./win32_ordinal_test@EXEEXT@ Chris@0: ./external_libs_test@EXEEXT@ Chris@0: ./format_check_test@EXEEXT@ Chris@0: Chris@0: # The w64 G++ compiler requires an extra runtime DLL which we don't have, Chris@0: # so skip this test. Chris@0: case "$HOST_TRIPLET" in Chris@0: x86_64-w64-mingw32) Chris@0: ;; Chris@0: i686-w64-mingw32) Chris@0: ;; Chris@0: *) Chris@0: ./cpp_test@EXEEXT@ Chris@0: ;; Chris@0: esac Chris@0: Chris@0: echo "----------------------------------------------------------------------" Chris@0: echo " $sfversion passed common tests." Chris@0: echo "----------------------------------------------------------------------" Chris@0: Chris@0: # aiff-tests Chris@0: ./write_read_test@EXEEXT@ aiff Chris@0: ./lossy_comp_test@EXEEXT@ aiff_ulaw Chris@0: ./lossy_comp_test@EXEEXT@ aiff_alaw Chris@0: ./lossy_comp_test@EXEEXT@ aiff_gsm610 Chris@0: echo "==========================" Chris@0: echo "./lossy_comp_test@EXEEXT@ aiff_ima" Chris@0: echo "==========================" Chris@0: ./peak_chunk_test@EXEEXT@ aiff Chris@0: ./header_test@EXEEXT@ aiff Chris@0: ./misc_test@EXEEXT@ aiff Chris@0: ./string_test@EXEEXT@ aiff Chris@0: ./multi_file_test@EXEEXT@ aiff Chris@0: ./aiff_rw_test@EXEEXT@ Chris@0: echo "----------------------------------------------------------------------" Chris@0: echo " $sfversion passed tests on AIFF files." Chris@0: echo "----------------------------------------------------------------------" Chris@0: Chris@0: # au-tests Chris@0: ./write_read_test@EXEEXT@ au Chris@0: ./lossy_comp_test@EXEEXT@ au_ulaw Chris@0: ./lossy_comp_test@EXEEXT@ au_alaw Chris@0: ./lossy_comp_test@EXEEXT@ au_g721 Chris@0: ./lossy_comp_test@EXEEXT@ au_g723 Chris@0: ./header_test@EXEEXT@ au Chris@0: ./misc_test@EXEEXT@ au Chris@0: ./multi_file_test@EXEEXT@ au Chris@0: echo "----------------------------------------------------------------------" Chris@0: echo " $sfversion passed tests on AU files." Chris@0: echo "----------------------------------------------------------------------" Chris@0: Chris@0: # caf-tests Chris@0: ./write_read_test@EXEEXT@ caf Chris@0: ./lossy_comp_test@EXEEXT@ caf_ulaw Chris@0: ./lossy_comp_test@EXEEXT@ caf_alaw Chris@0: ./header_test@EXEEXT@ caf Chris@0: ./peak_chunk_test@EXEEXT@ caf Chris@0: ./misc_test@EXEEXT@ caf Chris@0: echo "----------------------------------------------------------------------" Chris@0: echo " $sfversion passed tests on CAF files." Chris@0: echo "----------------------------------------------------------------------" Chris@0: Chris@0: # wav-tests Chris@0: ./write_read_test@EXEEXT@ wav Chris@0: ./lossy_comp_test@EXEEXT@ wav_pcm Chris@0: ./lossy_comp_test@EXEEXT@ wav_ima Chris@0: ./lossy_comp_test@EXEEXT@ wav_msadpcm Chris@0: ./lossy_comp_test@EXEEXT@ wav_ulaw Chris@0: ./lossy_comp_test@EXEEXT@ wav_alaw Chris@0: ./lossy_comp_test@EXEEXT@ wav_gsm610 Chris@0: ./lossy_comp_test@EXEEXT@ wav_g721 Chris@0: ./peak_chunk_test@EXEEXT@ wav Chris@0: ./header_test@EXEEXT@ wav Chris@0: ./misc_test@EXEEXT@ wav Chris@0: ./string_test@EXEEXT@ wav Chris@0: ./multi_file_test@EXEEXT@ wav Chris@0: echo "----------------------------------------------------------------------" Chris@0: echo " $sfversion passed tests on WAV files." Chris@0: echo "----------------------------------------------------------------------" Chris@0: Chris@0: # w64-tests Chris@0: ./write_read_test@EXEEXT@ w64 Chris@0: ./lossy_comp_test@EXEEXT@ w64_ima Chris@0: ./lossy_comp_test@EXEEXT@ w64_msadpcm Chris@0: ./lossy_comp_test@EXEEXT@ w64_ulaw Chris@0: ./lossy_comp_test@EXEEXT@ w64_alaw Chris@0: ./lossy_comp_test@EXEEXT@ w64_gsm610 Chris@0: ./header_test@EXEEXT@ w64 Chris@0: ./misc_test@EXEEXT@ w64 Chris@0: echo "----------------------------------------------------------------------" Chris@0: echo " $sfversion passed tests on W64 files." Chris@0: echo "----------------------------------------------------------------------" Chris@0: Chris@0: # rf64-tests Chris@0: ./write_read_test@EXEEXT@ rf64 Chris@0: ./header_test@EXEEXT@ rf64 Chris@0: ./misc_test@EXEEXT@ rf64 Chris@0: echo "----------------------------------------------------------------------" Chris@0: echo " $sfversion passed tests on RF64 files." Chris@0: echo "----------------------------------------------------------------------" Chris@0: Chris@0: # raw-tests Chris@0: ./write_read_test@EXEEXT@ raw Chris@0: ./lossy_comp_test@EXEEXT@ raw_ulaw Chris@0: ./lossy_comp_test@EXEEXT@ raw_alaw Chris@0: ./lossy_comp_test@EXEEXT@ raw_gsm610 Chris@0: ./lossy_comp_test@EXEEXT@ vox_adpcm Chris@0: ./raw_test@EXEEXT@ Chris@0: echo "----------------------------------------------------------------------" Chris@0: echo " $sfversion passed tests on RAW (header-less) files." Chris@0: echo "----------------------------------------------------------------------" Chris@0: Chris@0: # paf-tests Chris@0: ./write_read_test@EXEEXT@ paf Chris@0: ./header_test@EXEEXT@ paf Chris@0: ./misc_test@EXEEXT@ paf Chris@0: echo "----------------------------------------------------------------------" Chris@0: echo " $sfversion passed tests on PAF files." Chris@0: echo "----------------------------------------------------------------------" Chris@0: Chris@0: # svx-tests Chris@0: ./write_read_test@EXEEXT@ svx Chris@0: ./header_test@EXEEXT@ svx Chris@0: ./misc_test@EXEEXT@ svx Chris@0: echo "----------------------------------------------------------------------" Chris@0: echo " $sfversion passed tests on SVX files." Chris@0: echo "----------------------------------------------------------------------" Chris@0: Chris@0: # nist-tests Chris@0: ./write_read_test@EXEEXT@ nist Chris@0: ./lossy_comp_test@EXEEXT@ nist_ulaw Chris@0: ./lossy_comp_test@EXEEXT@ nist_alaw Chris@0: ./header_test@EXEEXT@ nist Chris@0: ./misc_test@EXEEXT@ nist Chris@0: echo "----------------------------------------------------------------------" Chris@0: echo " $sfversion passed tests on NIST files." Chris@0: echo "----------------------------------------------------------------------" Chris@0: Chris@0: # ircam-tests Chris@0: ./write_read_test@EXEEXT@ ircam Chris@0: ./lossy_comp_test@EXEEXT@ ircam_ulaw Chris@0: ./lossy_comp_test@EXEEXT@ ircam_alaw Chris@0: ./header_test@EXEEXT@ ircam Chris@0: ./misc_test@EXEEXT@ ircam Chris@0: echo "----------------------------------------------------------------------" Chris@0: echo " $sfversion passed tests on IRCAM files." Chris@0: echo "----------------------------------------------------------------------" Chris@0: Chris@0: # voc-tests Chris@0: ./write_read_test@EXEEXT@ voc Chris@0: ./lossy_comp_test@EXEEXT@ voc_ulaw Chris@0: ./lossy_comp_test@EXEEXT@ voc_alaw Chris@0: ./header_test@EXEEXT@ voc Chris@0: ./misc_test@EXEEXT@ voc Chris@0: echo "----------------------------------------------------------------------" Chris@0: echo " $sfversion passed tests on VOC files." Chris@0: echo "----------------------------------------------------------------------" Chris@0: Chris@0: # mat4-tests Chris@0: ./write_read_test@EXEEXT@ mat4 Chris@0: ./header_test@EXEEXT@ mat4 Chris@0: ./misc_test@EXEEXT@ mat4 Chris@0: echo "----------------------------------------------------------------------" Chris@0: echo " $sfversion passed tests on MAT4 files." Chris@0: echo "----------------------------------------------------------------------" Chris@0: Chris@0: # mat5-tests Chris@0: ./write_read_test@EXEEXT@ mat5 Chris@0: ./header_test@EXEEXT@ mat5 Chris@0: ./misc_test@EXEEXT@ mat5 Chris@0: echo "----------------------------------------------------------------------" Chris@0: echo " $sfversion passed tests on MAT5 files." Chris@0: echo "----------------------------------------------------------------------" Chris@0: Chris@0: # pvf-tests Chris@0: ./write_read_test@EXEEXT@ pvf Chris@0: ./header_test@EXEEXT@ pvf Chris@0: ./misc_test@EXEEXT@ pvf Chris@0: echo "----------------------------------------------------------------------" Chris@0: echo " $sfversion passed tests on PVF files." Chris@0: echo "----------------------------------------------------------------------" Chris@0: Chris@0: # xi-tests Chris@0: ./lossy_comp_test@EXEEXT@ xi_dpcm Chris@0: echo "----------------------------------------------------------------------" Chris@0: echo " $sfversion passed tests on XI files." Chris@0: echo "----------------------------------------------------------------------" Chris@0: Chris@0: # htk-tests Chris@0: ./write_read_test@EXEEXT@ htk Chris@0: ./header_test@EXEEXT@ htk Chris@0: ./misc_test@EXEEXT@ htk Chris@0: echo "----------------------------------------------------------------------" Chris@0: echo " $sfversion passed tests on HTK files." Chris@0: echo "----------------------------------------------------------------------" Chris@0: Chris@0: # avr-tests Chris@0: ./write_read_test@EXEEXT@ avr Chris@0: ./header_test@EXEEXT@ avr Chris@0: ./misc_test@EXEEXT@ avr Chris@0: echo "----------------------------------------------------------------------" Chris@0: echo " $sfversion passed tests on AVR files." Chris@0: echo "----------------------------------------------------------------------" Chris@0: Chris@0: # sds-tests Chris@0: ./write_read_test@EXEEXT@ sds Chris@0: ./header_test@EXEEXT@ sds Chris@0: ./misc_test@EXEEXT@ sds Chris@0: echo "----------------------------------------------------------------------" Chris@0: echo " $sfversion passed tests on SDS files." Chris@0: echo "----------------------------------------------------------------------" Chris@0: Chris@0: # sd2-tests Chris@0: ./write_read_test@EXEEXT@ sd2 Chris@0: echo "----------------------------------------------------------------------" Chris@0: echo " $sfversion passed tests on SD2 files." Chris@0: echo "----------------------------------------------------------------------" Chris@0: Chris@0: # wve-tests Chris@0: ./lossy_comp_test@EXEEXT@ wve Chris@0: echo "----------------------------------------------------------------------" Chris@0: echo " $sfversion passed tests on WVE files." Chris@0: echo "----------------------------------------------------------------------" Chris@0: Chris@0: # mpc2k-tests Chris@0: ./write_read_test@EXEEXT@ mpc2k Chris@0: ./header_test@EXEEXT@ mpc2k Chris@0: ./misc_test@EXEEXT@ mpc2k Chris@0: echo "----------------------------------------------------------------------" Chris@0: echo " $sfversion passed tests on MPC 2000 files." Chris@0: echo "----------------------------------------------------------------------" Chris@0: Chris@0: # flac-tests Chris@0: ./write_read_test@EXEEXT@ flac Chris@0: ./string_test@EXEEXT@ flac Chris@0: echo "----------------------------------------------------------------------" Chris@0: echo " $sfversion passed tests on FLAC files." Chris@0: echo "----------------------------------------------------------------------" Chris@0: Chris@0: # vorbis-tests Chris@0: ./ogg_test@EXEEXT@ Chris@0: ./vorbis_test@EXEEXT@ Chris@0: ./lossy_comp_test@EXEEXT@ ogg_vorbis Chris@0: ./string_test@EXEEXT@ ogg Chris@0: ./misc_test@EXEEXT@ ogg Chris@0: echo "----------------------------------------------------------------------" Chris@0: echo " $sfversion passed tests on OGG/VORBIS files." Chris@0: echo "----------------------------------------------------------------------" Chris@0: Chris@0: # io-tests Chris@0: ./stdio_test@EXEEXT@ Chris@0: ./pipe_test@EXEEXT@ Chris@0: ./virtual_io_test@EXEEXT@ Chris@0: echo "----------------------------------------------------------------------" Chris@0: echo " $sfversion passed stdio/pipe/vio tests." Chris@0: echo "----------------------------------------------------------------------" Chris@0: Chris@0: