test_wrapper.sh.in 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380
  1. #!/usr/bin/env sh
  2. # Copyright (C) 2008-2017 Erik de Castro Lopo <[email protected]>
  3. #
  4. # All rights reserved.
  5. #
  6. # Redistribution and use in source and binary forms, with or without
  7. # modification, are permitted provided that the following conditions are
  8. # met:
  9. #
  10. # * Redistributions of source code must retain the above copyright
  11. # notice, this list of conditions and the following disclaimer.
  12. # * Redistributions in binary form must reproduce the above copyright
  13. # notice, this list of conditions and the following disclaimer in
  14. # the documentation and/or other materials provided with the
  15. # distribution.
  16. # * Neither the author nor the names of any contributors may be used
  17. # to endorse or promote products derived from this software without
  18. # specific prior written permission.
  19. #
  20. # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
  21. # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
  22. # TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
  23. # PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
  24. # CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
  25. # EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
  26. # PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
  27. # OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
  28. # WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
  29. # OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
  30. # ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  31. HOST_TRIPLET=@HOST_TRIPLET@
  32. PACKAGE_VERSION=@PACKAGE_VERSION@
  33. LIB_VERSION=$(echo $PACKAGE_VERSION | sed "s/[a-z].*//")
  34. ABS_TOP_SRCDIR=@abs_top_srcdir@
  35. PYTHON=@PYTHON@
  36. sfversion=$(./tests/sfversion@EXEEXT@ | grep libsndfile | sed "s/-exp$//")
  37. if test "$sfversion" != libsndfile-$PACKAGE_VERSION ; then
  38. echo "Error : sfversion ($sfversion) and PACKAGE_VERSION ($PACKAGE_VERSION) don't match."
  39. exit 1
  40. fi
  41. # Force exit on errors.
  42. set -e
  43. # Check the header file.
  44. /usr/bin/env sh tests/pedantic-header-test.sh
  45. # Need this for when we're running from files collected into the
  46. # libsndfile-testsuite-@PACKAGE_VERSION@ tarball.
  47. echo "Running unit tests from src/ directory of source code tree."
  48. ./src/test_main@EXEEXT@
  49. echo
  50. echo "Running end-to-end tests from tests/ directory."
  51. ./tests/error_test@EXEEXT@
  52. ./tests/pcm_test@EXEEXT@
  53. ./tests/ulaw_test@EXEEXT@
  54. ./tests/alaw_test@EXEEXT@
  55. ./tests/dwvw_test@EXEEXT@
  56. ./tests/command_test@EXEEXT@ ver
  57. ./tests/command_test@EXEEXT@ norm
  58. ./tests/command_test@EXEEXT@ format
  59. ./tests/command_test@EXEEXT@ peak
  60. ./tests/command_test@EXEEXT@ trunc
  61. ./tests/command_test@EXEEXT@ inst
  62. ./tests/command_test@EXEEXT@ cue
  63. ./tests/command_test@EXEEXT@ current_sf_info
  64. ./tests/command_test@EXEEXT@ bext
  65. ./tests/command_test@EXEEXT@ bextch
  66. ./tests/command_test@EXEEXT@ chanmap
  67. ./tests/command_test@EXEEXT@ cart
  68. ./tests/floating_point_test@EXEEXT@
  69. ./tests/checksum_test@EXEEXT@
  70. ./tests/scale_clip_test@EXEEXT@
  71. ./tests/headerless_test@EXEEXT@
  72. ./tests/rdwr_test@EXEEXT@
  73. ./tests/locale_test@EXEEXT@
  74. ./tests/win32_ordinal_test@EXEEXT@
  75. ./tests/external_libs_test@EXEEXT@
  76. ./tests/format_check_test@EXEEXT@
  77. ./tests/channel_test@EXEEXT@
  78. # The w64 G++ compiler requires an extra runtime DLL which we don't have,
  79. # so skip this test.
  80. case "$HOST_TRIPLET" in
  81. x86_64-w64-mingw32)
  82. ;;
  83. i686-w64-mingw32)
  84. ;;
  85. *)
  86. ./tests/cpp_test@EXEEXT@
  87. ;;
  88. esac
  89. echo "----------------------------------------------------------------------"
  90. echo " $sfversion passed common tests."
  91. echo "----------------------------------------------------------------------"
  92. # aiff-tests
  93. ./tests/write_read_test@EXEEXT@ aiff
  94. ./tests/lossy_comp_test@EXEEXT@ aiff_ulaw
  95. ./tests/lossy_comp_test@EXEEXT@ aiff_alaw
  96. ./tests/lossy_comp_test@EXEEXT@ aiff_gsm610
  97. echo "----------------------------------------------------------------------"
  98. echo " lossy_comp_test@EXEEXT@ aiff_ima"
  99. echo "----------------------------------------------------------------------"
  100. ./tests/peak_chunk_test@EXEEXT@ aiff
  101. ./tests/header_test@EXEEXT@ aiff
  102. ./tests/misc_test@EXEEXT@ aiff
  103. ./tests/string_test@EXEEXT@ aiff
  104. ./tests/multi_file_test@EXEEXT@ aiff
  105. ./tests/aiff_rw_test@EXEEXT@
  106. ./tests/chunk_test@EXEEXT@ aiff
  107. echo "----------------------------------------------------------------------"
  108. echo " $sfversion passed tests on AIFF files."
  109. echo "----------------------------------------------------------------------"
  110. # au-tests
  111. ./tests/write_read_test@EXEEXT@ au
  112. ./tests/lossy_comp_test@EXEEXT@ au_ulaw
  113. ./tests/lossy_comp_test@EXEEXT@ au_alaw
  114. ./tests/lossy_comp_test@EXEEXT@ au_g721
  115. ./tests/lossy_comp_test@EXEEXT@ au_g723
  116. ./tests/header_test@EXEEXT@ au
  117. ./tests/misc_test@EXEEXT@ au
  118. ./tests/multi_file_test@EXEEXT@ au
  119. echo "----------------------------------------------------------------------"
  120. echo " $sfversion passed tests on AU files."
  121. echo "----------------------------------------------------------------------"
  122. # caf-tests
  123. ./tests/write_read_test@EXEEXT@ caf
  124. ./tests/lossy_comp_test@EXEEXT@ caf_ulaw
  125. ./tests/lossy_comp_test@EXEEXT@ caf_alaw
  126. ./tests/header_test@EXEEXT@ caf
  127. ./tests/peak_chunk_test@EXEEXT@ caf
  128. ./tests/misc_test@EXEEXT@ caf
  129. ./tests/chunk_test@EXEEXT@ caf
  130. ./tests/string_test@EXEEXT@ caf
  131. ./tests/long_read_write_test@EXEEXT@ alac
  132. echo "----------------------------------------------------------------------"
  133. echo " $sfversion passed tests on CAF files."
  134. echo "----------------------------------------------------------------------"
  135. # wav-tests
  136. ./tests/write_read_test@EXEEXT@ wav
  137. ./tests/lossy_comp_test@EXEEXT@ wav_pcm
  138. ./tests/lossy_comp_test@EXEEXT@ wav_ima
  139. ./tests/lossy_comp_test@EXEEXT@ wav_msadpcm
  140. ./tests/lossy_comp_test@EXEEXT@ wav_ulaw
  141. ./tests/lossy_comp_test@EXEEXT@ wav_alaw
  142. ./tests/lossy_comp_test@EXEEXT@ wav_gsm610
  143. ./tests/lossy_comp_test@EXEEXT@ wav_g721
  144. ./tests/peak_chunk_test@EXEEXT@ wav
  145. ./tests/header_test@EXEEXT@ wav
  146. ./tests/misc_test@EXEEXT@ wav
  147. ./tests/string_test@EXEEXT@ wav
  148. ./tests/multi_file_test@EXEEXT@ wav
  149. ./tests/chunk_test@EXEEXT@ wav
  150. echo "----------------------------------------------------------------------"
  151. echo " $sfversion passed tests on WAV files."
  152. echo "----------------------------------------------------------------------"
  153. # w64-tests
  154. ./tests/write_read_test@EXEEXT@ w64
  155. ./tests/lossy_comp_test@EXEEXT@ w64_ima
  156. ./tests/lossy_comp_test@EXEEXT@ w64_msadpcm
  157. ./tests/lossy_comp_test@EXEEXT@ w64_ulaw
  158. ./tests/lossy_comp_test@EXEEXT@ w64_alaw
  159. ./tests/lossy_comp_test@EXEEXT@ w64_gsm610
  160. ./tests/header_test@EXEEXT@ w64
  161. ./tests/misc_test@EXEEXT@ w64
  162. echo "----------------------------------------------------------------------"
  163. echo " $sfversion passed tests on W64 files."
  164. echo "----------------------------------------------------------------------"
  165. # rf64-tests
  166. ./tests/write_read_test@EXEEXT@ rf64
  167. ./tests/header_test@EXEEXT@ rf64
  168. ./tests/misc_test@EXEEXT@ rf64
  169. ./tests/string_test@EXEEXT@ rf64
  170. ./tests/peak_chunk_test@EXEEXT@ rf64
  171. ./tests/chunk_test@EXEEXT@ rf64
  172. echo "----------------------------------------------------------------------"
  173. echo " $sfversion passed tests on RF64 files."
  174. echo "----------------------------------------------------------------------"
  175. # raw-tests
  176. ./tests/write_read_test@EXEEXT@ raw
  177. ./tests/lossy_comp_test@EXEEXT@ raw_ulaw
  178. ./tests/lossy_comp_test@EXEEXT@ raw_alaw
  179. ./tests/lossy_comp_test@EXEEXT@ raw_gsm610
  180. ./tests/lossy_comp_test@EXEEXT@ vox_adpcm
  181. ./tests/raw_test@EXEEXT@
  182. echo "----------------------------------------------------------------------"
  183. echo " $sfversion passed tests on RAW (header-less) files."
  184. echo "----------------------------------------------------------------------"
  185. # paf-tests
  186. ./tests/write_read_test@EXEEXT@ paf
  187. ./tests/header_test@EXEEXT@ paf
  188. ./tests/misc_test@EXEEXT@ paf
  189. echo "----------------------------------------------------------------------"
  190. echo " $sfversion passed tests on PAF files."
  191. echo "----------------------------------------------------------------------"
  192. # svx-tests
  193. ./tests/write_read_test@EXEEXT@ svx
  194. ./tests/header_test@EXEEXT@ svx
  195. ./tests/misc_test@EXEEXT@ svx
  196. echo "----------------------------------------------------------------------"
  197. echo " $sfversion passed tests on SVX files."
  198. echo "----------------------------------------------------------------------"
  199. # nist-tests
  200. ./tests/write_read_test@EXEEXT@ nist
  201. ./tests/lossy_comp_test@EXEEXT@ nist_ulaw
  202. ./tests/lossy_comp_test@EXEEXT@ nist_alaw
  203. ./tests/header_test@EXEEXT@ nist
  204. ./tests/misc_test@EXEEXT@ nist
  205. echo "----------------------------------------------------------------------"
  206. echo " $sfversion passed tests on NIST files."
  207. echo "----------------------------------------------------------------------"
  208. # ircam-tests
  209. ./tests/write_read_test@EXEEXT@ ircam
  210. ./tests/lossy_comp_test@EXEEXT@ ircam_ulaw
  211. ./tests/lossy_comp_test@EXEEXT@ ircam_alaw
  212. ./tests/header_test@EXEEXT@ ircam
  213. ./tests/misc_test@EXEEXT@ ircam
  214. echo "----------------------------------------------------------------------"
  215. echo " $sfversion passed tests on IRCAM files."
  216. echo "----------------------------------------------------------------------"
  217. # voc-tests
  218. ./tests/write_read_test@EXEEXT@ voc
  219. ./tests/lossy_comp_test@EXEEXT@ voc_ulaw
  220. ./tests/lossy_comp_test@EXEEXT@ voc_alaw
  221. ./tests/header_test@EXEEXT@ voc
  222. ./tests/misc_test@EXEEXT@ voc
  223. echo "----------------------------------------------------------------------"
  224. echo " $sfversion passed tests on VOC files."
  225. echo "----------------------------------------------------------------------"
  226. # mat4-tests
  227. ./tests/write_read_test@EXEEXT@ mat4
  228. ./tests/header_test@EXEEXT@ mat4
  229. ./tests/misc_test@EXEEXT@ mat4
  230. echo "----------------------------------------------------------------------"
  231. echo " $sfversion passed tests on MAT4 files."
  232. echo "----------------------------------------------------------------------"
  233. # mat5-tests
  234. ./tests/write_read_test@EXEEXT@ mat5
  235. ./tests/header_test@EXEEXT@ mat5
  236. ./tests/misc_test@EXEEXT@ mat5
  237. echo "----------------------------------------------------------------------"
  238. echo " $sfversion passed tests on MAT5 files."
  239. echo "----------------------------------------------------------------------"
  240. # pvf-tests
  241. ./tests/write_read_test@EXEEXT@ pvf
  242. ./tests/header_test@EXEEXT@ pvf
  243. ./tests/misc_test@EXEEXT@ pvf
  244. echo "----------------------------------------------------------------------"
  245. echo " $sfversion passed tests on PVF files."
  246. echo "----------------------------------------------------------------------"
  247. # xi-tests
  248. ./tests/lossy_comp_test@EXEEXT@ xi_dpcm
  249. echo "----------------------------------------------------------------------"
  250. echo " $sfversion passed tests on XI files."
  251. echo "----------------------------------------------------------------------"
  252. # htk-tests
  253. ./tests/write_read_test@EXEEXT@ htk
  254. ./tests/header_test@EXEEXT@ htk
  255. ./tests/misc_test@EXEEXT@ htk
  256. echo "----------------------------------------------------------------------"
  257. echo " $sfversion passed tests on HTK files."
  258. echo "----------------------------------------------------------------------"
  259. # avr-tests
  260. ./tests/write_read_test@EXEEXT@ avr
  261. ./tests/header_test@EXEEXT@ avr
  262. ./tests/misc_test@EXEEXT@ avr
  263. echo "----------------------------------------------------------------------"
  264. echo " $sfversion passed tests on AVR files."
  265. echo "----------------------------------------------------------------------"
  266. # sds-tests
  267. ./tests/write_read_test@EXEEXT@ sds
  268. ./tests/header_test@EXEEXT@ sds
  269. ./tests/misc_test@EXEEXT@ sds
  270. echo "----------------------------------------------------------------------"
  271. echo " $sfversion passed tests on SDS files."
  272. echo "----------------------------------------------------------------------"
  273. # sd2-tests
  274. ./tests/write_read_test@EXEEXT@ sd2
  275. echo "----------------------------------------------------------------------"
  276. echo " $sfversion passed tests on SD2 files."
  277. echo "----------------------------------------------------------------------"
  278. # wve-tests
  279. ./tests/lossy_comp_test@EXEEXT@ wve
  280. echo "----------------------------------------------------------------------"
  281. echo " $sfversion passed tests on WVE files."
  282. echo "----------------------------------------------------------------------"
  283. # mpc2k-tests
  284. ./tests/write_read_test@EXEEXT@ mpc2k
  285. ./tests/header_test@EXEEXT@ mpc2k
  286. ./tests/misc_test@EXEEXT@ mpc2k
  287. echo "----------------------------------------------------------------------"
  288. echo " $sfversion passed tests on MPC 2000 files."
  289. echo "----------------------------------------------------------------------"
  290. # flac-tests
  291. ./tests/write_read_test@EXEEXT@ flac
  292. ./tests/compression_size_test@EXEEXT@ flac
  293. ./tests/string_test@EXEEXT@ flac
  294. ./tests/header_test@EXEEXT@ flac
  295. echo "----------------------------------------------------------------------"
  296. echo " $sfversion passed tests on FLAC files."
  297. echo "----------------------------------------------------------------------"
  298. # vorbis-tests
  299. ./tests/ogg_test@EXEEXT@
  300. ./tests/compression_size_test@EXEEXT@ vorbis
  301. ./tests/lossy_comp_test@EXEEXT@ ogg_vorbis
  302. ./tests/string_test@EXEEXT@ ogg
  303. ./tests/misc_test@EXEEXT@ ogg
  304. echo "----------------------------------------------------------------------"
  305. echo " $sfversion passed tests on OGG/VORBIS files."
  306. echo "----------------------------------------------------------------------"
  307. # opus-tests
  308. ./tests/ogg_opus_test@EXEEXT@
  309. ./tests/compression_size_test@EXEEXT@ opus
  310. ./tests/lossy_comp_test@EXEEXT@ ogg_opus
  311. ./tests/string_test@EXEEXT@ opus
  312. echo "----------------------------------------------------------------------"
  313. echo " $sfversion passed tests on OPUS files."
  314. echo "----------------------------------------------------------------------"
  315. # mpeg-tests
  316. ./tests/mpeg_test@EXEEXT@
  317. ./tests/compression_size_test@EXEEXT@ mpeg
  318. ./tests/string_test@EXEEXT@ mpeg
  319. echo "----------------------------------------------------------------------"
  320. echo " $sfversion passed tests on MPEG files."
  321. echo "----------------------------------------------------------------------"
  322. # io-tests
  323. ./tests/stdio_test@EXEEXT@
  324. ./tests/pipe_test@EXEEXT@
  325. ./tests/virtual_io_test@EXEEXT@
  326. echo "----------------------------------------------------------------------"
  327. echo " $sfversion passed stdio/pipe/vio tests."
  328. echo "----------------------------------------------------------------------"
  329. "${PYTHON}" "${ABS_TOP_SRCDIR}/src/binheader_writef_check.py" "${ABS_TOP_SRCDIR}/src"/*.c
  330. echo "----------------------------------------------------------------------"
  331. echo " $sfversion passed binary header tests."
  332. echo "----------------------------------------------------------------------"
  333. "${PYTHON}" "${ABS_TOP_SRCDIR}/programs/test-sndfile-metadata-set.py" "${HOST_TRIPLET}"
  334. echo "----------------------------------------------------------------------"
  335. echo " $sfversion passed sndfile metadata tests."
  336. echo "----------------------------------------------------------------------"