Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
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.
  • Loading branch information
Thomas Schwinge committed Aug 29, 2013
1 parent 6f65e66 commit f1cc4c8
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 7 deletions.
11 changes: 11 additions & 0 deletions 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.
Expand Down
20 changes: 13 additions & 7 deletions math/basic-test.c
Expand Up @@ -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) \
{ \
Expand Down Expand Up @@ -189,24 +189,30 @@ 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
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;
Expand Down

0 comments on commit f1cc4c8

Please sign in to comment.