MFC r292491,r292493,r292496:
r292491: Disable test-ctrig.t testcases which fail assertions on i386 [*] Also, don't compile the exp2l(3) testcases on platforms that don't support the libcall (technically only x86 right now). This makes this test buildable on arm*/mips*/powerpc* Tested on: stable/10 (amd64/i386), head (amd64/i386) PR: 205446 [*] X-MFC to: stable/10 Sponsored by: EMC / Isilon Storage Division r292493: Don't run test-fma on i386 It completely fails all assertions on i386 on both stable/9 and stable/10 PR: 205448 X-MFC to: stable/10 Sponsored by: EMC / Isilon Storage Division r292496: Skip the testcases on i386 (all the assertions fail) [*] Also, don't compile the ldexpl(3) testcases on platforms that don't support the libcall (technically only x86 right now). This makes this test buildable on arm*/mips*/powerpc* PR: 205449 [*] Tested on: stable/10 (amd64/i386), head (amd64/i386) Sponsored by: EMC / Isilon Storage Division
This commit is contained in:
parent
1ef54c4f8c
commit
07fae805ed
@ -66,13 +66,22 @@ __FBSDID("$FreeBSD$");
|
||||
} while (0)
|
||||
|
||||
/* Test all the functions that compute b^x. */
|
||||
#define testall0(x, result, exceptmask, excepts) do { \
|
||||
#define _testall0(x, result, exceptmask, excepts) do { \
|
||||
test(exp, x, result, exceptmask, excepts); \
|
||||
test(expf, x, result, exceptmask, excepts); \
|
||||
test(exp2, x, result, exceptmask, excepts); \
|
||||
test(exp2f, x, result, exceptmask, excepts); \
|
||||
} while (0)
|
||||
|
||||
/* Skip over exp2l on platforms that don't support it. */
|
||||
#if LDBL_PREC == 53
|
||||
#define testall0 _testall0
|
||||
#else
|
||||
#define testall0(x, result, exceptmask, excepts) do { \
|
||||
_testall0(x, result, exceptmask, excepts); \
|
||||
test(exp2l, x, result, exceptmask, excepts); \
|
||||
} while (0)
|
||||
#endif
|
||||
|
||||
/* Test all the functions that compute b^x - 1. */
|
||||
#define testall1(x, result, exceptmask, excepts) do { \
|
||||
@ -102,12 +111,14 @@ run_generic_tests(void)
|
||||
testall0(-INFINITY, 0.0, ALL_STD_EXCEPT, 0);
|
||||
testall1(-INFINITY, -1.0, ALL_STD_EXCEPT, 0);
|
||||
|
||||
#if !defined(__i386__)
|
||||
/* exp(big) == Inf, overflow exception */
|
||||
testall0(50000.0, INFINITY, ALL_STD_EXCEPT & ~FE_INEXACT, FE_OVERFLOW);
|
||||
testall1(50000.0, INFINITY, ALL_STD_EXCEPT & ~FE_INEXACT, FE_OVERFLOW);
|
||||
|
||||
/* exp(small) == 0, underflow and inexact exceptions */
|
||||
testall0(-50000.0, 0.0, ALL_STD_EXCEPT, FE_UNDERFLOW | FE_INEXACT);
|
||||
#endif
|
||||
testall1(-50000.0, -1.0, ALL_STD_EXCEPT, FE_INEXACT);
|
||||
}
|
||||
|
||||
|
@ -63,14 +63,23 @@ __FBSDID("$FreeBSD$");
|
||||
#define test(func, x, result, excepts) \
|
||||
test_tol(func, (x), (result), 0, (excepts))
|
||||
|
||||
#define testall_tol(prefix, x, result, tol, excepts) do { \
|
||||
#define _testall_tol(prefix, x, result, tol, excepts) do { \
|
||||
test_tol(prefix, (double)(x), (double)(result), \
|
||||
(tol) * ldexp(1.0, 1 - DBL_MANT_DIG), (excepts)); \
|
||||
test_tol(prefix##f, (float)(x), (float)(result), \
|
||||
(tol) * ldexpf(1.0, 1 - FLT_MANT_DIG), (excepts)); \
|
||||
} while (0)
|
||||
|
||||
#if LDBL_PREC == 53
|
||||
#define testall_tol _testall_tol
|
||||
#else
|
||||
#define testall_tol(prefix, x, result, tol, excepts) do { \
|
||||
_testall_tol(prefix, x, result, tol, excepts); \
|
||||
test_tol(prefix##l, (x), (result), \
|
||||
(tol) * ldexpl(1.0, 1 - LDBL_MANT_DIG), (excepts)); \
|
||||
} while (0)
|
||||
#endif
|
||||
|
||||
#define testall(prefix, x, result, excepts) \
|
||||
testall_tol(prefix, (x), (result), 0, (excepts))
|
||||
|
||||
@ -83,14 +92,23 @@ __FBSDID("$FreeBSD$");
|
||||
#define test2(func, y, x, result, excepts) \
|
||||
test2_tol(func, (y), (x), (result), 0, (excepts))
|
||||
|
||||
#define testall2_tol(prefix, y, x, result, tol, excepts) do { \
|
||||
#define _testall2_tol(prefix, y, x, result, tol, excepts) do { \
|
||||
test2_tol(prefix, (double)(y), (double)(x), (double)(result), \
|
||||
(tol) * ldexp(1.0, 1 - DBL_MANT_DIG), (excepts)); \
|
||||
test2_tol(prefix##f, (float)(y), (float)(x), (float)(result), \
|
||||
(tol) * ldexpf(1.0, 1 - FLT_MANT_DIG), (excepts)); \
|
||||
} while (0)
|
||||
|
||||
#if LDBL_PREC == 53
|
||||
#define testall2_tol _testall2_tol
|
||||
#else
|
||||
#define testall2_tol(prefix, y, x, result, tol, excepts) do { \
|
||||
_testall2_tol(prefix, y, x, result, tol, excepts); \
|
||||
test2_tol(prefix##l, (y), (x), (result), \
|
||||
(tol) * ldexpl(1.0, 1 - LDBL_MANT_DIG), (excepts)); \
|
||||
} while (0)
|
||||
#endif
|
||||
|
||||
#define testall2(prefix, y, x, result, excepts) \
|
||||
testall2_tol(prefix, (y), (x), (result), 0, (excepts))
|
||||
|
||||
@ -431,6 +449,11 @@ int
|
||||
main(int argc, char *argv[])
|
||||
{
|
||||
|
||||
#if defined(__i386__)
|
||||
printf("1..0 # SKIP fails all assertions on i386\n");
|
||||
return (0);
|
||||
#endif
|
||||
|
||||
printf("1..7\n");
|
||||
|
||||
test_special();
|
||||
|
Loading…
Reference in New Issue
Block a user