Browse Source

Fix an overzealous compiler warning in the tests

Nick Mathewson 8 years ago
parent
commit
05d52899cb
2 changed files with 15 additions and 6 deletions
  1. 9 0
      src/test/test.h
  2. 6 6
      src/test/test_containers.c

+ 9 - 0
src/test/test.h

@@ -40,6 +40,15 @@
   tt_assert_test_type(a,b,#a" "#op" "#b,double,(val1_ op val2_),"%g",   \
                       TT_EXIT_TEST_FUNCTION)
 
+/* Declare "double equal" in a sneaky way, so compiler won't complain about
+ * comparing floats with == or !=.  Of course, only do this if you know what
+ * you're doing. */
+#define tt_double_eq(a,b)     \
+  STMT_BEGIN                  \
+  tt_double_op((a), >=, (b)); \
+  tt_double_op((a), <=, (b)); \
+  STMT_END
+
 #ifdef _MSC_VER
 #define U64_PRINTF_TYPE uint64_t
 #define I64_PRINTF_TYPE int64_t

+ 6 - 6
src/test/test_containers.c

@@ -934,12 +934,12 @@ test_container_order_functions(void *arg)
 #undef third_quartile
 
   double dbls[] = { 1.0, 10.0, 100.0, 1e4, 1e5, 1e6 };
-  tt_assert(1.0 == median_double(dbls, 1));
-  tt_assert(1.0 == median_double(dbls, 2));
-  tt_assert(10.0 == median_double(dbls, 3));
-  tt_assert(10.0 == median_double(dbls, 4));
-  tt_assert(100.0 == median_double(dbls, 5));
-  tt_assert(100.0 == median_double(dbls, 6));
+  tt_double_eq(1.0, median_double(dbls, 1));
+  tt_double_eq(1.0, median_double(dbls, 2));
+  tt_double_eq(10.0, median_double(dbls, 3));
+  tt_double_eq(10.0, median_double(dbls, 4));
+  tt_double_eq(100.0, median_double(dbls, 5));
+  tt_double_eq(100.0, median_double(dbls, 6));
 
   time_t times[] = { 5, 10, 20, 25, 15 };