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