From c10222bd07df5673683853f7058b72b97f6e2b96 Mon Sep 17 00:00:00 2001 From: Bruno Haible Date: Fri, 13 Oct 2023 13:54:58 +0200 Subject: [PATCH] tests: Make use of signed signalling NaNs. * tests/test-signbit.c: Include signed-snan.h instead of snan.h. (test_signbitf): Test positive_SNaNf, negative_SNaNf, instead of only SNaNf. (test_signbitd): Test positive_SNaNd, negative_SNaNd, instead of only SNaNd. (test_signbitl): Test positive_SNaNl, negative_SNaNl, instead of only SNaNl. * tests/test-stdio.c: Include signed-snan.h instead of snan.h. (main): Test positive_SNaNd, negative_SNaNd, instead of only SNaNd. Also, test positive_NaNd, negative_NaNd, instead of NaNd. * modules/signbit-tests (Depends-on): Add signed-snan. Remove snan. * modules/stdio-tests (Depends-on): Likewise. --- ChangeLog | 16 ++++++++++++++++ modules/signbit-tests | 2 +- modules/stdio-tests | 2 +- tests/test-signbit.c | 11 +++++++---- tests/test-stdio.c | 17 ++++++++++++++--- 5 files changed, 39 insertions(+), 9 deletions(-) diff --git a/ChangeLog b/ChangeLog index 710636aff6..db88ac9554 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,19 @@ +2023-10-13 Bruno Haible + + tests: Make use of signed signalling NaNs. + * tests/test-signbit.c: Include signed-snan.h instead of snan.h. + (test_signbitf): Test positive_SNaNf, negative_SNaNf, instead of only + SNaNf. + (test_signbitd): Test positive_SNaNd, negative_SNaNd, instead of only + SNaNd. + (test_signbitl): Test positive_SNaNl, negative_SNaNl, instead of only + SNaNl. + * tests/test-stdio.c: Include signed-snan.h instead of snan.h. + (main): Test positive_SNaNd, negative_SNaNd, instead of only SNaNd. + Also, test positive_NaNd, negative_NaNd, instead of NaNd. + * modules/signbit-tests (Depends-on): Add signed-snan. Remove snan. + * modules/stdio-tests (Depends-on): Likewise. + 2023-10-13 Bruno Haible signed-snan: New module. diff --git a/modules/signbit-tests b/modules/signbit-tests index 20b18efdf0..f540d949a5 100644 --- a/modules/signbit-tests +++ b/modules/signbit-tests @@ -7,7 +7,7 @@ tests/macros.h Depends-on: float signed-nan -snan +signed-snan configure.ac: diff --git a/modules/stdio-tests b/modules/stdio-tests index a24433f511..0e6d85593f 100644 --- a/modules/stdio-tests +++ b/modules/stdio-tests @@ -6,7 +6,7 @@ m4/exponentd.m4 Depends-on: assert-h signed-nan -snan +signed-snan stdio-c++-tests fgetc-tests fputc-tests diff --git a/tests/test-signbit.c b/tests/test-signbit.c index 35b845c6c3..b68bbfa890 100644 --- a/tests/test-signbit.c +++ b/tests/test-signbit.c @@ -31,7 +31,7 @@ #include "minus-zero.h" #include "infinity.h" #include "signed-nan.h" -#include "snan.h" +#include "signed-snan.h" #include "macros.h" float zerof = 0.0f; @@ -62,7 +62,8 @@ test_signbitf () ASSERT (signbit (negative_NaNf ())); #if HAVE_SNANF /* Signalling NaN. */ - (void) signbit (SNaNf ()); + ASSERT (!signbit (positive_SNaNf ())); + ASSERT (signbit (negative_SNaNf ())); #endif } @@ -90,7 +91,8 @@ test_signbitd () ASSERT (signbit (negative_NaNd ())); #if HAVE_SNAND /* Signalling NaN. */ - (void) signbit (SNaNd ()); + ASSERT (!signbit (positive_SNaNd ())); + ASSERT (signbit (negative_SNaNd ())); #endif } @@ -118,7 +120,8 @@ test_signbitl () ASSERT (signbit (negative_NaNl ())); #if HAVE_SNANL /* Signalling NaN. */ - (void) signbit (SNaNl ()); + ASSERT (!signbit (positive_SNaNl ())); + ASSERT (signbit (negative_SNaNl ())); #endif } diff --git a/tests/test-stdio.c b/tests/test-stdio.c index 6bd100edae..2836ed18a5 100644 --- a/tests/test-stdio.c +++ b/tests/test-stdio.c @@ -40,7 +40,7 @@ va_list t5; #include #include "signed-nan.h" -#include "snan.h" +#include "signed-snan.h" #include "macros.h" int @@ -69,11 +69,22 @@ main (void) memory_double value2; char buf[64]; - value1 = SNaNd(); + value1 = positive_SNaNd(); sprintf (buf, "%g", value1); ASSERT (strlen (buf) <= _PRINTF_NAN_LEN_MAX); - value2.value = NaNd (); + value1 = negative_SNaNd(); + sprintf (buf, "%g", value1); + ASSERT (strlen (buf) <= _PRINTF_NAN_LEN_MAX); + + value2.value = positive_NaNd (); + #if DBL_EXPBIT0_BIT == 20 + value2.word[DBL_EXPBIT0_WORD] ^= 0x54321; + #endif + sprintf (buf, "%g", value2.value); + ASSERT (strlen (buf) <= _PRINTF_NAN_LEN_MAX); + + value2.value = negative_NaNd (); #if DBL_EXPBIT0_BIT == 20 value2.word[DBL_EXPBIT0_WORD] ^= 0x54321; #endif -- 2.39.5