From 2a5f50a64154c11215e075470862c68d0d273ef8 Mon Sep 17 00:00:00 2001 From: David Schultz Date: Sun, 7 Jan 2007 09:25:22 +0000 Subject: [PATCH] Fix a few of the tests so that correct implementations actually pass them. --- tools/regression/lib/msun/test-rem.c | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/tools/regression/lib/msun/test-rem.c b/tools/regression/lib/msun/test-rem.c index 1d7729a1313e..a4b09c98a751 100644 --- a/tools/regression/lib/msun/test-rem.c +++ b/tools/regression/lib/msun/test-rem.c @@ -100,11 +100,15 @@ test_invalid(double x, double y) assert(isnan(remainder(x, y))); assert(isnan(remquo(x, y, &q))); +#ifdef STRICT assert(q == 0xdeadbeef); +#endif assert(isnan(remainderf(x, y))); assert(isnan(remquof(x, y, &q))); +#ifdef STRICT assert(q == 0xdeadbeef); +#endif } /* 0x012345 ==> 0x01ffff */ @@ -123,9 +127,11 @@ testd(double x, double y, double expected_rem, int expected_quo) assert(remainder(x, y) == expected_rem); assert(remquo(x, y, &q) == expected_rem); assert((q & 0x7) == (expected_quo & 0x7)); - assert((q > 0) ^ !(expected_quo > 0)); - q = abs(q); - assert((q & mask(q)) == (abs(expected_quo) & mask(q))); + if (q != 0) { + assert((q > 0) ^ !(expected_quo > 0)); + q = abs(q); + assert(q == (abs(expected_quo) & mask(q))); + } } static void @@ -137,7 +143,9 @@ testf(float x, float y, float expected_rem, int expected_quo) assert(remainderf(x, y) == expected_rem); assert(remquof(x, y, &q) == expected_rem); assert((q & 0x7) == (expected_quo & 0x7)); - assert((q > 0) ^ !(expected_quo > 0)); - q = abs(q); - assert((q & mask(q)) == (abs(expected_quo) & mask(q))); + if (q != 0) { + assert((q > 0) ^ !(expected_quo > 0)); + q = abs(q); + assert((q & mask(q)) == (abs(expected_quo) & mask(q))); + } }