From c9041329e9b0df1cc3eec057f8adc4c1a8dcc78b Mon Sep 17 00:00:00 2001 From: Bruno Haible Date: Fri, 19 Apr 2024 17:23:23 +0200 Subject: [PATCH] getpayload* tests: Don't assume that '-' works as expected on NaN. * tests/test-getpayload.c: Include signed-nan.h. (main): Use minus_NaNd. * tests/test-getpayloadf.c: Include signed-nan.h. (main): Use minus_NaNf. * tests/test-getpayloadl.c: Include signed-nan.h. (main): Use minus_NaNl. * modules/getpayload-tests (Depends-on): Add signed-nan. * modules/getpayloadf-tests (Depends-on): Likewise. * modules/getpayloadl-tests (Depends-on): Likewise. --- ChangeLog | 11 +++++++++++ modules/getpayload-tests | 1 + modules/getpayloadf-tests | 1 + modules/getpayloadl-tests | 1 + tests/test-getpayload.c | 3 ++- tests/test-getpayloadf.c | 3 ++- tests/test-getpayloadl.c | 3 ++- 7 files changed, 20 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index fc32137e74..0c2a95e10e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,16 @@ 2024-04-19 Bruno Haible + getpayload* tests: Don't assume that '-' works as expected on NaN. + * tests/test-getpayload.c: Include signed-nan.h. + (main): Use minus_NaNd. + * tests/test-getpayloadf.c: Include signed-nan.h. + (main): Use minus_NaNf. + * tests/test-getpayloadl.c: Include signed-nan.h. + (main): Use minus_NaNl. + * modules/getpayload-tests (Depends-on): Add signed-nan. + * modules/getpayloadf-tests (Depends-on): Likewise. + * modules/getpayloadl-tests (Depends-on): Likewise. + signed-nan: Don't assume that '-' works as expected on NaN values. * lib/signed-nan.h (minus_NaNf): New function. (positive_NaNf, negative_NaNf): Use it. diff --git a/modules/getpayload-tests b/modules/getpayload-tests index d56192d63b..dcc27371fb 100644 --- a/modules/getpayload-tests +++ b/modules/getpayload-tests @@ -8,6 +8,7 @@ tests/macros.h Depends-on: setpayload setpayloadsig +signed-nan signed-snan configure.ac: diff --git a/modules/getpayloadf-tests b/modules/getpayloadf-tests index 1901fc43f9..f1b0217600 100644 --- a/modules/getpayloadf-tests +++ b/modules/getpayloadf-tests @@ -8,6 +8,7 @@ tests/macros.h Depends-on: setpayloadf setpayloadsigf +signed-nan signed-snan configure.ac: diff --git a/modules/getpayloadl-tests b/modules/getpayloadl-tests index 02433a206d..fc508e797b 100644 --- a/modules/getpayloadl-tests +++ b/modules/getpayloadl-tests @@ -8,6 +8,7 @@ tests/macros.h Depends-on: setpayloadl setpayloadsigl +signed-nan signed-snan configure.ac: diff --git a/tests/test-getpayload.c b/tests/test-getpayload.c index a6d9d940bd..54d4e77612 100644 --- a/tests/test-getpayload.c +++ b/tests/test-getpayload.c @@ -24,6 +24,7 @@ SIGNATURE_CHECK (getpayload, double, (const double *)); #include "minus-zero.h" #include "infinity.h" +#include "signed-nan.h" #include "signed-snan.h" #include "macros.h" @@ -72,7 +73,7 @@ main () ret = getpayload (&arg); ASSERT (ret == p); /* Test quiet NaNs with sign bit == 1. */ - arg = - arg; + arg = minus_NaNd (arg); ret = getpayload (&arg); ASSERT (ret == p); } diff --git a/tests/test-getpayloadf.c b/tests/test-getpayloadf.c index f0ec047235..48832763e3 100644 --- a/tests/test-getpayloadf.c +++ b/tests/test-getpayloadf.c @@ -24,6 +24,7 @@ SIGNATURE_CHECK (getpayloadf, float, (const float *)); #include "minus-zero.h" #include "infinity.h" +#include "signed-nan.h" #include "signed-snan.h" #include "macros.h" @@ -72,7 +73,7 @@ main () ret = getpayloadf (&arg); ASSERT (ret == p); /* Test quiet NaNs with sign bit == 1. */ - arg = - arg; + arg = minus_NaNf (arg); ret = getpayloadf (&arg); ASSERT (ret == p); } diff --git a/tests/test-getpayloadl.c b/tests/test-getpayloadl.c index 4aaa7c5c0c..12ff6dea8f 100644 --- a/tests/test-getpayloadl.c +++ b/tests/test-getpayloadl.c @@ -24,6 +24,7 @@ SIGNATURE_CHECK (getpayloadl, long double, (const long double *)); #include "minus-zero.h" #include "infinity.h" +#include "signed-nan.h" #include "signed-snan.h" #include "macros.h" @@ -79,7 +80,7 @@ main () ret = getpayloadl (&arg); ASSERT (ret == p); /* Test quiet NaNs with sign bit == 1. */ - arg = - arg; + arg = minus_NaNl (arg); ret = getpayloadl (&arg); ASSERT (ret == p); } -- 2.39.5