about summary refs log tree commit diff
diff options
context:
space:
mode:
authorThomas Schwinge <thomas@codesourcery.com>2013-05-23 17:31:42 +0200
committerThomas Schwinge <thomas@codesourcery.com>2013-08-29 12:21:07 +0200
commitf1cc4c8654b6bc431273286d3562942c50975caf (patch)
tree9009de23d64f1e1fdfccf4fbdd8824dfa865d385
parent6f65e668957a50e153cba6822f747d13ad1b40ad (diff)
downloadglibc-f1cc4c8654b6bc431273286d3562942c50975caf.tar.gz
glibc-f1cc4c8654b6bc431273286d3562942c50975caf.tar.xz
glibc-f1cc4c8654b6bc431273286d3562942c50975caf.zip
math: Additional type conversion tests
These have helped me find and fix type conversion issues in QEMU's MIPS
hardware emulation.  While certainly glibc is not the best place for such
tests, they're just an enhancement of tests already present.
-rw-r--r--ChangeLog11
-rw-r--r--math/basic-test.c20
2 files changed, 24 insertions, 7 deletions
diff --git a/ChangeLog b/ChangeLog
index 6659d96090..83b3956a43 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,14 @@
+2013-08-29  Thomas Schwinge  <thomas@codesourcery.com>
+
+	* math/basic-test.c (TEST_CONVERT): New macro, renamed from
+	TEST_TRUNC.
+	(convert_dfsf_test, convert_tfsf_test, convert_tfdf_test): New
+	functions, renamed from truncdfsf_test, trunctfsf_test,
+	trunctfdf_test.
+	(convert_sfdf_test, convert_sftf_test, convert_dftf_test): New
+	functions.
+	(do_test): Run all these.
+
 2013-08-29   Ondřej Bílka  <neleai@seznam.cz>
 
 	* argp/argp-help.c: Fix typos.
diff --git a/math/basic-test.c b/math/basic-test.c
index 9e9b848ee5..44145a75f6 100644
--- a/math/basic-test.c
+++ b/math/basic-test.c
@@ -148,7 +148,7 @@ NAME (void)								      \
   check (#FLOAT " isinf (-HUGE_VALx) == -1", isinf (x1) == -1);		      \
 }
 
-#define TEST_TRUNC(NAME, FLOAT, DOUBLE, SUFFIX)				      \
+#define TEST_CONVERT(NAME, FLOAT, DOUBLE, SUFFIX)			      \
 void									      \
 NAME (void)								      \
 {									      \
@@ -189,11 +189,14 @@ NAME (void)								      \
 
 TEST_FUNC (float_test, float, f, FLT_EPSILON, HUGE_VALF)
 TEST_FUNC (double_test, double, , DBL_EPSILON, HUGE_VAL)
-TEST_TRUNC (truncdfsf_test, float, double, )
+TEST_CONVERT (convert_dfsf_test, float, double, )
+TEST_CONVERT (convert_sfdf_test, double, float, f)
 #ifndef NO_LONG_DOUBLE
 TEST_FUNC (ldouble_test, long double, l, LDBL_EPSILON, HUGE_VALL)
-TEST_TRUNC (trunctfsf_test, float, long double, l)
-TEST_TRUNC (trunctfdf_test, double, long double, l)
+TEST_CONVERT (convert_tfsf_test, float, long double, l)
+TEST_CONVERT (convert_sftf_test, long double, float, f)
+TEST_CONVERT (convert_tfdf_test, double, long double, l)
+TEST_CONVERT (convert_dftf_test, long double, double, )
 #endif
 
 int
@@ -201,12 +204,15 @@ do_test (void)
 {
   float_test ();
   double_test ();
-  truncdfsf_test();
+  convert_dfsf_test();
+  convert_sfdf_test();
 
 #ifndef NO_LONG_DOUBLE
   ldouble_test ();
-  trunctfsf_test();
-  trunctfdf_test();
+  convert_tfsf_test();
+  convert_sftf_test();
+  convert_tfdf_test();
+  convert_dftf_test();
 #endif
 
   return errors != 0;