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