From f1cc4c8654b6bc431273286d3562942c50975caf Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Thu, 23 May 2013 17:31:42 +0200 Subject: [PATCH] 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. --- ChangeLog | 11 +++++++++++ math/basic-test.c | 20 +++++++++++++------- 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 + + * 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 * 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;