This is the mail archive of the glibc-cvs@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

GNU C Library master sources branch master updated. glibc-2.17-675-g7abeee1


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".

The branch, master has been updated
       via  7abeee129ef9872abd8e2fe0f94b1ad31f4ac591 (commit)
      from  cbe8c4d3337fe97ea516e41759608b7c5661eefb (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=7abeee129ef9872abd8e2fe0f94b1ad31f4ac591

commit 7abeee129ef9872abd8e2fe0f94b1ad31f4ac591
Author: Joseph Myers <joseph@codesourcery.com>
Date:   Wed May 15 12:04:07 2013 +0000

    Convert TEST_f_b tests from code to data.

diff --git a/ChangeLog b/ChangeLog
index e2a16c7..c238afd 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,23 @@
 2013-05-15  Joseph Myers  <joseph@codesourcery.com>
 
+	* math/libm-test.inc (struct test_f_i_data): Add comment.
+	(RUN_TEST_LOOP_f_b): New macro.
+	(RUN_TEST_LOOP_f_b_tg): Likewise.
+	(finite_test_data): New variable.
+	(finite_test): Run tests with RUN_TEST_LOOP_f_b.
+	(isfinite_test_data): New variable.
+	(isfinite_test): Run tests with RUN_TEST_LOOP_f_b_tg.
+	(isinf_test_data): New variable.
+	(isinf_test): Run tests with RUN_TEST_LOOP_f_b_tg.
+	(isnan_test_data): New variable.
+	(isnan_test): Run tests with RUN_TEST_LOOP_f_b_tg.
+	(isnormal_test_data): New variable.
+	(isnormal_test): Run tests with RUN_TEST_LOOP_f_b_tg.
+	(issignaling_test_data): New variable.
+	(issignaling_test): Run tests with RUN_TEST_LOOP_f_b_tg.
+	(signbit_test_data): New variable.
+	(signbit_test): Run tests with RUN_TEST_LOOP_f_b_tg.
+
 	* math/libm-test.inc (acos_test_data): Use ERRNO_EDOM together
 	with INVALID_EXCEPTION.
 	(acosh_test_data): Likewise.
diff --git a/math/libm-test.inc b/math/libm-test.inc
index acd6374..f1e122d 100644
--- a/math/libm-test.inc
+++ b/math/libm-test.inc
@@ -983,6 +983,8 @@ struct test_c_c_data
   __complex__ FLOAT max_ulp;
   int exceptions;
 };
+/* Used for all of RUN_TEST_LOOP_f_i, RUN_TEST_LOOP_f_i_tg,
+   RUN_TEST_LOOP_f_b and RUN_TEST_LOOP_f_b_tg.  */
 struct test_f_i_data
 {
   const char *test_name;
@@ -1238,10 +1240,24 @@ struct test_ff_i_data
 		     MAX_ULP, EXCEPTIONS)			\
   check_bool (TEST_NAME, FUNC (FUNC_NAME) (ARG), EXPECTED,	\
 	      MAX_ULP, EXCEPTIONS)
+#define RUN_TEST_LOOP_f_b(FUNC_NAME, ARRAY, ROUNDING_MODE)		\
+  IF_ROUND_INIT_ ## ROUNDING_MODE					\
+    for (size_t i = 0; i < sizeof (ARRAY) / sizeof (ARRAY)[0]; i++)	\
+      RUN_TEST_f_b ((ARRAY)[i].test_name, FUNC_NAME, (ARRAY)[i].arg,	\
+		    (ARRAY)[i].expected, (ARRAY)[i].max_ulp,		\
+		    (ARRAY)[i].exceptions);				\
+  ROUND_RESTORE_ ## ROUNDING_MODE
 #define RUN_TEST_f_b_tg(TEST_NAME, FUNC_NAME, ARG, EXPECTED,	\
 			MAX_ULP, EXCEPTIONS)			\
   check_bool (TEST_NAME, FUNC_NAME (ARG), EXPECTED,		\
 	      MAX_ULP, EXCEPTIONS)
+#define RUN_TEST_LOOP_f_b_tg(FUNC_NAME, ARRAY, ROUNDING_MODE)		\
+  IF_ROUND_INIT_ ## ROUNDING_MODE					\
+    for (size_t i = 0; i < sizeof (ARRAY) / sizeof (ARRAY)[0]; i++)	\
+      RUN_TEST_f_b_tg ((ARRAY)[i].test_name, FUNC_NAME, (ARRAY)[i].arg,	\
+		       (ARRAY)[i].expected, (ARRAY)[i].max_ulp,		\
+		       (ARRAY)[i].exceptions);				\
+  ROUND_RESTORE_ ## ROUNDING_MODE
 #define RUN_TEST_f_l(TEST_NAME, FUNC_NAME, ARG, EXPECTED,	\
 		     MAX_ULP, EXCEPTIONS)			\
   check_long (TEST_NAME, FUNC (FUNC_NAME) (ARG), EXPECTED,	\
@@ -8396,19 +8412,24 @@ fdim_test (void)
 }
 
 
+static const struct test_f_i_data finite_test_data[] =
+  {
+    START_DATA (finite),
+    TEST_f_b (finite, 0, 1),
+    TEST_f_b (finite, minus_zero, 1),
+    TEST_f_b (finite, 10, 1),
+    TEST_f_b (finite, min_subnorm_value, 1),
+    TEST_f_b (finite, plus_infty, 0),
+    TEST_f_b (finite, minus_infty, 0),
+    TEST_f_b (finite, qnan_value, 0),
+    END_DATA (finite)
+  };
+
 static void
 finite_test (void)
 {
   START (finite);
-
-  TEST_f_b (finite, 0, 1);
-  TEST_f_b (finite, minus_zero, 1);
-  TEST_f_b (finite, 10, 1);
-  TEST_f_b (finite, min_subnorm_value, 1);
-  TEST_f_b (finite, plus_infty, 0);
-  TEST_f_b (finite, minus_infty, 0);
-  TEST_f_b (finite, qnan_value, 0);
-
+  RUN_TEST_LOOP_f_b (finite, finite_test_data, );
   END (finite);
 }
 
@@ -9780,19 +9801,24 @@ ilogb_test (void)
   END (ilogb);
 }
 
+static const struct test_f_i_data isfinite_test_data[] =
+  {
+    START_DATA (isfinite),
+    TEST_f_b (isfinite, 0, 1),
+    TEST_f_b (isfinite, minus_zero, 1),
+    TEST_f_b (isfinite, 10, 1),
+    TEST_f_b (isfinite, min_subnorm_value, 1),
+    TEST_f_b (isfinite, plus_infty, 0),
+    TEST_f_b (isfinite, minus_infty, 0),
+    TEST_f_b (isfinite, qnan_value, 0),
+    END_DATA (isfinite)
+  };
+
 static void
 isfinite_test (void)
 {
   START (isfinite);
-
-  TEST_f_b (isfinite, 0, 1);
-  TEST_f_b (isfinite, minus_zero, 1);
-  TEST_f_b (isfinite, 10, 1);
-  TEST_f_b (isfinite, min_subnorm_value, 1);
-  TEST_f_b (isfinite, plus_infty, 0);
-  TEST_f_b (isfinite, minus_infty, 0);
-  TEST_f_b (isfinite, qnan_value, 0);
-
+  RUN_TEST_LOOP_f_b_tg (isfinite, isfinite_test_data, );
   END (isfinite);
 }
 
@@ -9856,19 +9882,24 @@ isgreaterequal_test (void)
   END (isgreaterequal);
 }
 
+static const struct test_f_i_data isinf_test_data[] =
+  {
+    START_DATA (isinf),
+    TEST_f_b (isinf, 0, 0),
+    TEST_f_b (isinf, minus_zero, 0),
+    TEST_f_b (isinf, 10, 0),
+    TEST_f_b (isinf, min_subnorm_value, 0),
+    TEST_f_b (isinf, plus_infty, 1),
+    TEST_f_b (isinf, minus_infty, 1),
+    TEST_f_b (isinf, qnan_value, 0),
+    END_DATA (isinf)
+  };
+
 static void
 isinf_test (void)
 {
   START (isinf);
-
-  TEST_f_b (isinf, 0, 0);
-  TEST_f_b (isinf, minus_zero, 0);
-  TEST_f_b (isinf, 10, 0);
-  TEST_f_b (isinf, min_subnorm_value, 0);
-  TEST_f_b (isinf, plus_infty, 1);
-  TEST_f_b (isinf, minus_infty, 1);
-  TEST_f_b (isinf, qnan_value, 0);
-
+  RUN_TEST_LOOP_f_b_tg (isinf, isinf_test_data, );
   END (isinf);
 }
 
@@ -9962,51 +9993,66 @@ islessgreater_test (void)
   END (islessgreater);
 }
 
+static const struct test_f_i_data isnan_test_data[] =
+  {
+    START_DATA (isnan),
+    TEST_f_b (isnan, 0, 0),
+    TEST_f_b (isnan, minus_zero, 0),
+    TEST_f_b (isnan, 10, 0),
+    TEST_f_b (isnan, min_subnorm_value, 0),
+    TEST_f_b (isnan, plus_infty, 0),
+    TEST_f_b (isnan, minus_infty, 0),
+    TEST_f_b (isnan, qnan_value, 1),
+    END_DATA (isnan)
+  };
+
 static void
 isnan_test (void)
 {
   START (isnan);
-
-  TEST_f_b (isnan, 0, 0);
-  TEST_f_b (isnan, minus_zero, 0);
-  TEST_f_b (isnan, 10, 0);
-  TEST_f_b (isnan, min_subnorm_value, 0);
-  TEST_f_b (isnan, plus_infty, 0);
-  TEST_f_b (isnan, minus_infty, 0);
-  TEST_f_b (isnan, qnan_value, 1);
-
+  RUN_TEST_LOOP_f_b_tg (isnan, isnan_test_data, );
   END (isnan);
 }
 
+static const struct test_f_i_data isnormal_test_data[] =
+  {
+    START_DATA (isnormal),
+    TEST_f_b (isnormal, 0, 0),
+    TEST_f_b (isnormal, minus_zero, 0),
+    TEST_f_b (isnormal, 10, 1),
+    TEST_f_b (isnormal, min_subnorm_value, 0),
+    TEST_f_b (isnormal, plus_infty, 0),
+    TEST_f_b (isnormal, minus_infty, 0),
+    TEST_f_b (isnormal, qnan_value, 0),
+    END_DATA (isnormal)
+  };
+
 static void
 isnormal_test (void)
 {
   START (isnormal);
-
-  TEST_f_b (isnormal, 0, 0);
-  TEST_f_b (isnormal, minus_zero, 0);
-  TEST_f_b (isnormal, 10, 1);
-  TEST_f_b (isnormal, min_subnorm_value, 0);
-  TEST_f_b (isnormal, plus_infty, 0);
-  TEST_f_b (isnormal, minus_infty, 0);
-  TEST_f_b (isnormal, qnan_value, 0);
-
+  RUN_TEST_LOOP_f_b_tg (isnormal, isnormal_test_data, );
   END (isnormal);
 }
 
+static const struct test_f_i_data issignaling_test_data[] =
+  {
+    START_DATA (issignaling),
+    TEST_f_b (issignaling, 0, 0),
+    TEST_f_b (issignaling, minus_zero, 0),
+    TEST_f_b (issignaling, 10, 0),
+    TEST_f_b (issignaling, min_subnorm_value, 0),
+    TEST_f_b (issignaling, plus_infty, 0),
+    TEST_f_b (issignaling, minus_infty, 0),
+    TEST_f_b (issignaling, qnan_value, 0),
+    END_DATA (issignaling)
+  };
+
 static void
 issignaling_test (void)
 {
   START (issignaling);
-
-  TEST_f_b (issignaling, 0, 0);
-  TEST_f_b (issignaling, minus_zero, 0);
-  TEST_f_b (issignaling, 10, 0);
-  TEST_f_b (issignaling, min_subnorm_value, 0);
-  TEST_f_b (issignaling, plus_infty, 0);
-  TEST_f_b (issignaling, minus_infty, 0);
-  TEST_f_b (issignaling, qnan_value, 0);
-
+  RUN_TEST_LOOP_f_b_tg (issignaling, issignaling_test_data, );
   END (issignaling);
 }
 
@@ -13448,23 +13494,27 @@ scalbln_test (void)
 }
 
 
+static const struct test_f_i_data signbit_test_data[] =
+  {
+    START_DATA (signbit),
+    /* TODO: missing qNaN tests.  */
+    TEST_f_b (signbit, 0, 0),
+    TEST_f_b (signbit, minus_zero, 1),
+    TEST_f_b (signbit, plus_infty, 0),
+    TEST_f_b (signbit, minus_infty, 1),
+
+    /* signbit (x) != 0 for x < 0.  */
+    TEST_f_b (signbit, -1, 1),
+    /* signbit (x) == 0 for x >= 0.  */
+    TEST_f_b (signbit, 1, 0),
+    END_DATA (signbit)
+  };
+
 static void
 signbit_test (void)
 {
-  /* TODO: missing qNaN tests.  */
-
   START (signbit);
-
-  TEST_f_b (signbit, 0, 0);
-  TEST_f_b (signbit, minus_zero, 1);
-  TEST_f_b (signbit, plus_infty, 0);
-  TEST_f_b (signbit, minus_infty, 1);
-
-  /* signbit (x) != 0 for x < 0.  */
-  TEST_f_b (signbit, -1, 1);
-  /* signbit (x) == 0 for x >= 0.  */
-  TEST_f_b (signbit, 1, 0);
-
+  RUN_TEST_LOOP_f_b_tg (signbit, signbit_test_data, );
   END (signbit);
 }
 

-----------------------------------------------------------------------

Summary of changes:
 ChangeLog          |   18 +++++
 math/libm-test.inc |  184 +++++++++++++++++++++++++++++++++-------------------
 2 files changed, 135 insertions(+), 67 deletions(-)


hooks/post-receive
-- 
GNU C Library master sources


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]