shithub: sox

Download patch

ref: 65c7a43ff357d20a375cbc0f2bbbb9184b1da10e
parent: ab21e50c5ab36e94974cf9f55db891487c3e8f81
author: Mans Rullgard <mans@mansr.com>
date: Mon Aug 3 07:04:30 EDT 2020

sox_sample_test: clean up nonsense

Move code from pointless .h file to .c file.
Remove warning suppression pragmas.
Fix causes of warnings.

See also bug #326.

--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -50,7 +50,7 @@
 example4_SOURCES = example4.c
 example5_SOURCES = example5.c
 example6_SOURCES = example6.c
-sox_sample_test_SOURCES = sox_sample_test.c sox_sample_test.h
+sox_sample_test_SOURCES = sox_sample_test.c
 
 
 
--- a/src/sox_sample_test.c
+++ b/src/sox_sample_test.c
@@ -15,4 +15,176 @@
  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
  */
 
-#include "sox_sample_test.h"
+#ifdef NDEBUG /* Enable assert always. */
+#undef NDEBUG /* Must undef above assert.h or other that might include it. */
+#endif
+#include <assert.h>
+#include <math.h>
+#include "sox.h"
+
+#define TEST_UINT(bits) \
+  uint##bits = 0; \
+  sample = SOX_UNSIGNED_TO_SAMPLE(bits,uint##bits); \
+  assert(sample == SOX_SAMPLE_MIN); \
+  uint##bits = SOX_SAMPLE_TO_UNSIGNED(bits,sample, clips); \
+  assert(uint##bits == 0 && clips == 0); \
+ \
+  uint##bits = 1; \
+  sample = SOX_UNSIGNED_TO_SAMPLE(bits,uint##bits); \
+  assert(sample > SOX_SAMPLE_MIN && sample < 0); \
+  uint##bits = SOX_SAMPLE_TO_UNSIGNED(bits,sample, clips); \
+  assert(uint##bits == 1 && clips == 0); \
+ \
+  uint##bits = SOX_INT_MAX(bits); \
+  sample = SOX_UNSIGNED_TO_SAMPLE(bits,uint##bits); \
+  assert(sample * SOX_INT_MAX(bits) == SOX_UNSIGNED_TO_SAMPLE(bits,1)); \
+  uint##bits = SOX_SAMPLE_TO_UNSIGNED(bits,sample, clips); \
+  assert(uint##bits == SOX_INT_MAX(bits) && clips == 0); \
+ \
+  sample =SOX_UNSIGNED_TO_SAMPLE(bits,1)+SOX_UNSIGNED_TO_SAMPLE(bits,SOX_INT_MAX(bits))/2; \
+  uint##bits = SOX_SAMPLE_TO_UNSIGNED(bits,sample, clips); \
+  assert(uint##bits == 1 && clips == 0); \
+ \
+  sample = SOX_UNSIGNED_TO_SAMPLE(bits,1)+SOX_UNSIGNED_TO_SAMPLE(bits,SOX_INT_MAX(bits))/2-1; \
+  uint##bits = SOX_SAMPLE_TO_UNSIGNED(bits,sample, clips); \
+  assert(uint##bits == 0 && clips == 0); \
+ \
+  uint##bits = (0^SOX_INT_MIN(bits)); \
+  sample = SOX_UNSIGNED_TO_SAMPLE(bits,uint##bits); \
+  assert(sample == 0); \
+  uint##bits = SOX_SAMPLE_TO_UNSIGNED(bits,sample, clips); \
+  assert(uint##bits == (0^SOX_INT_MIN(bits)) && clips == 0); \
+ \
+  uint##bits = ((0^SOX_INT_MIN(bits))+1); \
+  sample = SOX_UNSIGNED_TO_SAMPLE(bits,uint##bits); \
+  assert(sample > 0 && sample < SOX_SAMPLE_MAX); \
+  uint##bits = SOX_SAMPLE_TO_UNSIGNED(bits,sample, clips); \
+  assert(uint##bits == ((0^SOX_INT_MIN(bits))+1) && clips == 0); \
+ \
+  uint##bits = SOX_UINT_MAX(bits); \
+  sample = SOX_UNSIGNED_TO_SAMPLE(bits,uint##bits); \
+  assert(sample == SOX_INT_MAX(bits) * SOX_UNSIGNED_TO_SAMPLE(bits,((0^SOX_INT_MIN(bits))+1))); \
+  uint##bits = SOX_SAMPLE_TO_UNSIGNED(bits,sample, clips); \
+  assert(uint##bits == SOX_UINT_MAX(bits) && clips == 0); \
+ \
+  sample =SOX_UNSIGNED_TO_SAMPLE(bits,SOX_UINT_MAX(bits))+SOX_UNSIGNED_TO_SAMPLE(bits,((0^SOX_INT_MIN(bits))+1))/2-1; \
+  uint##bits = SOX_SAMPLE_TO_UNSIGNED(bits,sample, clips); \
+  assert(uint##bits == SOX_UINT_MAX(bits) && clips == 0); \
+ \
+  sample = SOX_UNSIGNED_TO_SAMPLE(bits,SOX_UINT_MAX(bits))+SOX_UNSIGNED_TO_SAMPLE(bits,((0^SOX_INT_MIN(bits))+1))/2; \
+  uint##bits = SOX_SAMPLE_TO_UNSIGNED(bits,sample, clips); \
+  assert(uint##bits == SOX_UINT_MAX(bits) && --clips == 0); \
+ \
+  sample = SOX_SAMPLE_MAX; \
+  uint##bits = SOX_SAMPLE_TO_UNSIGNED(bits,sample, clips); \
+  assert(uint##bits == SOX_UINT_MAX(bits) && --clips == 0); \
+
+#define TEST_SINT(bits) \
+  int##bits = SOX_INT_MIN(bits); \
+  sample = SOX_SIGNED_TO_SAMPLE(bits,int##bits); \
+  assert(sample == SOX_SAMPLE_MIN); \
+  int##bits##_2 = SOX_SAMPLE_TO_SIGNED(bits,sample, clips); \
+  assert(int##bits##_2 == int##bits && clips == 0); \
+ \
+  int##bits = SOX_INT_MIN(bits)+1; \
+  sample = SOX_SIGNED_TO_SAMPLE(bits,int##bits); \
+  assert(sample > SOX_SAMPLE_MIN && sample < 0); \
+  int##bits##_2 = SOX_SAMPLE_TO_SIGNED(bits,sample, clips); \
+  assert(int##bits##_2 == int##bits && clips == 0); \
+ \
+  int##bits = SOX_UINT_MAX(bits) /* i.e. -1 */; \
+  sample = SOX_SIGNED_TO_SAMPLE(bits,int##bits); \
+  assert(sample * SOX_INT_MAX(bits) == SOX_SIGNED_TO_SAMPLE(bits,SOX_INT_MIN(bits)+1)); \
+  int##bits##_2 = SOX_SAMPLE_TO_SIGNED(bits,sample, clips); \
+  assert(int##bits##_2 == int##bits && clips == 0); \
+ \
+  int##bits = SOX_INT_MIN(bits)+1; \
+  sample =SOX_UNSIGNED_TO_SAMPLE(bits,1)+SOX_UNSIGNED_TO_SAMPLE(bits,SOX_INT_MAX(bits))/2; \
+  int##bits##_2 = SOX_SAMPLE_TO_SIGNED(bits,sample, clips); \
+  assert(int##bits##_2 == int##bits && clips == 0); \
+ \
+  int##bits = SOX_INT_MIN(bits); \
+  sample = SOX_UNSIGNED_TO_SAMPLE(bits,1)+SOX_UNSIGNED_TO_SAMPLE(bits,SOX_INT_MAX(bits))/2-1; \
+  int##bits##_2 = SOX_SAMPLE_TO_SIGNED(bits,sample, clips); \
+  assert(int##bits##_2 == int##bits && clips == 0); \
+ \
+  int##bits = 0; \
+  sample = SOX_SIGNED_TO_SAMPLE(bits,int##bits); \
+  assert(sample == 0); \
+  int##bits##_2 = SOX_SAMPLE_TO_SIGNED(bits,sample, clips); \
+  assert(int##bits##_2 == int##bits && clips == 0); \
+ \
+  int##bits = 1; \
+  sample = SOX_SIGNED_TO_SAMPLE(bits,int##bits); \
+  assert(sample > 0 && sample < SOX_SAMPLE_MAX); \
+  int##bits##_2 = SOX_SAMPLE_TO_SIGNED(bits,sample, clips); \
+  assert(int##bits##_2 == int##bits && clips == 0); \
+ \
+  int##bits = SOX_INT_MAX(bits); \
+  sample = SOX_SIGNED_TO_SAMPLE(bits,int##bits); \
+  assert(sample == SOX_INT_MAX(bits) * SOX_SIGNED_TO_SAMPLE(bits,1)); \
+  int##bits##_2 = SOX_SAMPLE_TO_SIGNED(bits,sample, clips); \
+  assert(int##bits##_2 == int##bits && clips == 0); \
+ \
+  sample =SOX_UNSIGNED_TO_SAMPLE(bits,SOX_UINT_MAX(bits))+SOX_UNSIGNED_TO_SAMPLE(bits,((0^SOX_INT_MIN(bits))+1))/2-1; \
+  int##bits##_2 = SOX_SAMPLE_TO_SIGNED(bits,sample, clips); \
+  assert(int##bits##_2 == int##bits && clips == 0); \
+ \
+  sample =SOX_UNSIGNED_TO_SAMPLE(bits,SOX_UINT_MAX(bits))+SOX_UNSIGNED_TO_SAMPLE(bits,((0^SOX_INT_MIN(bits))+1))/2; \
+  int##bits##_2 = SOX_SAMPLE_TO_SIGNED(bits,sample, clips); \
+  assert(int##bits##_2 == int##bits && --clips == 0); \
+ \
+  sample = SOX_SAMPLE_MAX; \
+  int##bits##_2 = SOX_SAMPLE_TO_SIGNED(bits,sample, clips); \
+  assert(int##bits##_2 == int##bits && --clips == 0);
+
+int main(void)
+{
+  sox_int8_t int8;
+  sox_int16_t int16;
+  sox_int24_t int24;
+
+  sox_uint8_t uint8;
+  sox_uint16_t uint16;
+  sox_uint24_t uint24;
+
+  sox_int8_t int8_2;
+  sox_int16_t int16_2;
+  sox_int24_t int24_2;
+
+  sox_sample_t sample;
+  size_t clips = 0;
+
+  double d;
+  SOX_SAMPLE_LOCALS;
+
+  TEST_UINT(8)
+  TEST_UINT(16)
+  TEST_UINT(24)
+
+  TEST_SINT(8)
+  TEST_SINT(16)
+  TEST_SINT(24)
+
+  d = -1.000000001;
+  sample = SOX_FLOAT_64BIT_TO_SAMPLE(d, clips);
+  assert(sample == SOX_SAMPLE_MIN && --clips == 0);
+
+  d = -1;
+  sample = SOX_FLOAT_64BIT_TO_SAMPLE(d, clips);
+  assert(sample == SOX_SAMPLE_MIN && clips == 0);
+  d = SOX_SAMPLE_TO_FLOAT_64BIT(sample,clips);
+  assert(d == -1 && clips == 0);
+
+  d = 1;
+  sample = SOX_FLOAT_64BIT_TO_SAMPLE(d, clips);
+  assert(sample == SOX_SAMPLE_MAX && clips == 0);
+  d = SOX_SAMPLE_TO_FLOAT_64BIT(sample,clips);
+  assert(fabs(d - 1) < 1e-9 && clips == 0);
+
+  d = 1.0000000001;
+  sample = SOX_FLOAT_64BIT_TO_SAMPLE(d, clips);
+  assert(sample == SOX_SAMPLE_MAX && --clips == 0);
+
+  return 0;
+}
--- a/src/sox_sample_test.h
+++ /dev/null
@@ -1,203 +1,0 @@
-/* libSoX test code    copyright (c) 2006 robs@users.sourceforge.net
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the
- * Free Software Foundation; either version 2 of the License, or (at your
- * option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General
- * Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
- */
-
-#ifdef NDEBUG /* Enable assert always. */
-#undef NDEBUG /* Must undef above assert.h or other that might include it. */
-#endif
-#include <assert.h>
-#include "sox.h"
-
-#define TEST_UINT(bits) \
-  uint##bits = 0; \
-  sample = SOX_UNSIGNED_TO_SAMPLE(bits,uint##bits); \
-  assert(sample == SOX_SAMPLE_MIN); \
-  uint##bits = SOX_SAMPLE_TO_UNSIGNED(bits,sample, clips); \
-  assert(uint##bits == 0 && clips == 0); \
- \
-  uint##bits = 1; \
-  sample = SOX_UNSIGNED_TO_SAMPLE(bits,uint##bits); \
-  assert(sample > SOX_SAMPLE_MIN && sample < 0); \
-  uint##bits = SOX_SAMPLE_TO_UNSIGNED(bits,sample, clips); \
-  assert(uint##bits == 1 && clips == 0); \
- \
-  uint##bits = SOX_INT_MAX(bits); \
-  sample = SOX_UNSIGNED_TO_SAMPLE(bits,uint##bits); \
-  assert(sample * SOX_INT_MAX(bits) == SOX_UNSIGNED_TO_SAMPLE(bits,1)); \
-  uint##bits = SOX_SAMPLE_TO_UNSIGNED(bits,sample, clips); \
-  assert(uint##bits == SOX_INT_MAX(bits) && clips == 0); \
- \
-  sample =SOX_UNSIGNED_TO_SAMPLE(bits,1)+SOX_UNSIGNED_TO_SAMPLE(bits,SOX_INT_MAX(bits))/2; \
-  uint##bits = SOX_SAMPLE_TO_UNSIGNED(bits,sample, clips); \
-  assert(uint##bits == 1 && clips == 0); \
- \
-  sample = SOX_UNSIGNED_TO_SAMPLE(bits,1)+SOX_UNSIGNED_TO_SAMPLE(bits,SOX_INT_MAX(bits))/2-1; \
-  uint##bits = SOX_SAMPLE_TO_UNSIGNED(bits,sample, clips); \
-  assert(uint##bits == 0 && clips == 0); \
- \
-  uint##bits = (0^SOX_INT_MIN(bits)); \
-  sample = SOX_UNSIGNED_TO_SAMPLE(bits,uint##bits); \
-  assert(sample == 0); \
-  uint##bits = SOX_SAMPLE_TO_UNSIGNED(bits,sample, clips); \
-  assert(uint##bits == (0^SOX_INT_MIN(bits)) && clips == 0); \
- \
-  uint##bits = ((0^SOX_INT_MIN(bits))+1); \
-  sample = SOX_UNSIGNED_TO_SAMPLE(bits,uint##bits); \
-  assert(sample > 0 && sample < SOX_SAMPLE_MAX); \
-  uint##bits = SOX_SAMPLE_TO_UNSIGNED(bits,sample, clips); \
-  assert(uint##bits == ((0^SOX_INT_MIN(bits))+1) && clips == 0); \
- \
-  uint##bits = SOX_UINT_MAX(bits); \
-  sample = SOX_UNSIGNED_TO_SAMPLE(bits,uint##bits); \
-  assert(sample == SOX_INT_MAX(bits) * SOX_UNSIGNED_TO_SAMPLE(bits,((0^SOX_INT_MIN(bits))+1))); \
-  uint##bits = SOX_SAMPLE_TO_UNSIGNED(bits,sample, clips); \
-  assert(uint##bits == SOX_UINT_MAX(bits) && clips == 0); \
- \
-  sample =SOX_UNSIGNED_TO_SAMPLE(bits,SOX_UINT_MAX(bits))+SOX_UNSIGNED_TO_SAMPLE(bits,((0^SOX_INT_MIN(bits))+1))/2-1; \
-  uint##bits = SOX_SAMPLE_TO_UNSIGNED(bits,sample, clips); \
-  assert(uint##bits == SOX_UINT_MAX(bits) && clips == 0); \
- \
-  sample = SOX_UNSIGNED_TO_SAMPLE(bits,SOX_UINT_MAX(bits))+SOX_UNSIGNED_TO_SAMPLE(bits,((0^SOX_INT_MIN(bits))+1))/2; \
-  uint##bits = SOX_SAMPLE_TO_UNSIGNED(bits,sample, clips); \
-  assert(uint##bits == SOX_UINT_MAX(bits) && --clips == 0); \
- \
-  sample = SOX_SAMPLE_MAX; \
-  uint##bits = SOX_SAMPLE_TO_UNSIGNED(bits,sample, clips); \
-  assert(uint##bits == SOX_UINT_MAX(bits) && --clips == 0); \
-
-#define TEST_SINT(bits) \
-  int##bits = SOX_INT_MIN(bits); \
-  sample = SOX_SIGNED_TO_SAMPLE(bits,int##bits); \
-  assert(sample == SOX_SAMPLE_MIN); \
-  int##bits##_2 = SOX_SAMPLE_TO_SIGNED(bits,sample, clips); \
-  assert(int##bits##_2 == int##bits && clips == 0); \
- \
-  int##bits = SOX_INT_MIN(bits)+1; \
-  sample = SOX_SIGNED_TO_SAMPLE(bits,int##bits); \
-  assert(sample > SOX_SAMPLE_MIN && sample < 0); \
-  int##bits##_2 = SOX_SAMPLE_TO_SIGNED(bits,sample, clips); \
-  assert(int##bits##_2 == int##bits && clips == 0); \
- \
-  int##bits = SOX_UINT_MAX(bits) /* i.e. -1 */; \
-  sample = SOX_SIGNED_TO_SAMPLE(bits,int##bits); \
-  assert(sample * SOX_INT_MAX(bits) == SOX_SIGNED_TO_SAMPLE(bits,SOX_INT_MIN(bits)+1)); \
-  int##bits##_2 = SOX_SAMPLE_TO_SIGNED(bits,sample, clips); \
-  assert(int##bits##_2 == int##bits && clips == 0); \
- \
-  int##bits = SOX_INT_MIN(bits)+1; \
-  sample =SOX_UNSIGNED_TO_SAMPLE(bits,1)+SOX_UNSIGNED_TO_SAMPLE(bits,SOX_INT_MAX(bits))/2; \
-  int##bits##_2 = SOX_SAMPLE_TO_SIGNED(bits,sample, clips); \
-  assert(int##bits##_2 == int##bits && clips == 0); \
- \
-  int##bits = SOX_INT_MIN(bits); \
-  sample = SOX_UNSIGNED_TO_SAMPLE(bits,1)+SOX_UNSIGNED_TO_SAMPLE(bits,SOX_INT_MAX(bits))/2-1; \
-  int##bits##_2 = SOX_SAMPLE_TO_SIGNED(bits,sample, clips); \
-  assert(int##bits##_2 == int##bits && clips == 0); \
- \
-  int##bits = 0; \
-  sample = SOX_SIGNED_TO_SAMPLE(bits,int##bits); \
-  assert(sample == 0); \
-  int##bits##_2 = SOX_SAMPLE_TO_SIGNED(bits,sample, clips); \
-  assert(int##bits##_2 == int##bits && clips == 0); \
- \
-  int##bits = 1; \
-  sample = SOX_SIGNED_TO_SAMPLE(bits,int##bits); \
-  assert(sample > 0 && sample < SOX_SAMPLE_MAX); \
-  int##bits##_2 = SOX_SAMPLE_TO_SIGNED(bits,sample, clips); \
-  assert(int##bits##_2 == int##bits && clips == 0); \
- \
-  int##bits = SOX_INT_MAX(bits); \
-  sample = SOX_SIGNED_TO_SAMPLE(bits,int##bits); \
-  assert(sample == SOX_INT_MAX(bits) * SOX_SIGNED_TO_SAMPLE(bits,1)); \
-  int##bits##_2 = SOX_SAMPLE_TO_SIGNED(bits,sample, clips); \
-  assert(int##bits##_2 == int##bits && clips == 0); \
- \
-  sample =SOX_UNSIGNED_TO_SAMPLE(bits,SOX_UINT_MAX(bits))+SOX_UNSIGNED_TO_SAMPLE(bits,((0^SOX_INT_MIN(bits))+1))/2-1; \
-  int##bits##_2 = SOX_SAMPLE_TO_SIGNED(bits,sample, clips); \
-  assert(int##bits##_2 == int##bits && clips == 0); \
- \
-  sample =SOX_UNSIGNED_TO_SAMPLE(bits,SOX_UINT_MAX(bits))+SOX_UNSIGNED_TO_SAMPLE(bits,((0^SOX_INT_MIN(bits))+1))/2; \
-  int##bits##_2 = SOX_SAMPLE_TO_SIGNED(bits,sample, clips); \
-  assert(int##bits##_2 == int##bits && --clips == 0); \
- \
-  sample = SOX_SAMPLE_MAX; \
-  int##bits##_2 = SOX_SAMPLE_TO_SIGNED(bits,sample, clips); \
-  assert(int##bits##_2 == int##bits && --clips == 0);
-
-#if defined __GNUC__
-  #pragma GCC system_header
-#elif defined __SUNPRO_CC
-  #pragma disable_warn
-#elif defined _MSC_VER
-  #pragma warning(push, 1)
-#endif
-
-int main()
-{
-  sox_int8_t int8;
-  sox_int16_t int16;
-  sox_int24_t int24;
-
-  sox_uint8_t uint8;
-  sox_uint16_t uint16;
-  sox_uint24_t uint24;
-
-  sox_int8_t int8_2;
-  sox_int16_t int16_2;
-  sox_int24_t int24_2;
-
-  sox_sample_t sample;
-  size_t clips = 0;
-
-  double d;
-  SOX_SAMPLE_LOCALS;
-
-  TEST_UINT(8)
-  TEST_UINT(16)
-  TEST_UINT(24)
-
-  TEST_SINT(8)
-  TEST_SINT(16)
-  TEST_SINT(24)
-
-  d = -1.000000001;
-  sample = SOX_FLOAT_64BIT_TO_SAMPLE(d, clips);
-  assert(sample == SOX_SAMPLE_MIN && --clips == 0);
-
-  d = -1;
-  sample = SOX_FLOAT_64BIT_TO_SAMPLE(d, clips);
-  assert(sample == SOX_SAMPLE_MIN && clips == 0);
-  d = SOX_SAMPLE_TO_FLOAT_64BIT(sample,clips);
-  assert(d == -1 && clips == 0);
-
-  d = 1;
-  sample = SOX_FLOAT_64BIT_TO_SAMPLE(d, clips);
-  assert(sample == SOX_SAMPLE_MAX && clips == 0);
-  d = SOX_SAMPLE_TO_FLOAT_64BIT(sample,clips);
-  assert(fabs(d - 1) < 1e-9 && clips == 0);
-
-  d = 1.0000000001;
-  sample = SOX_FLOAT_64BIT_TO_SAMPLE(d, clips);
-  assert(sample == SOX_SAMPLE_MAX && --clips == 0);
-
-  return 0;
-}
-
-#if defined __SUNPRO_CC
-  #pragma enable_warn
-#elif defined _MSC_VER
-  #pragma warning(pop)
-#endif