From a3b60438fb3a15add88aeceb85b1e4c8e98c7385 Mon Sep 17 00:00:00 2001 From: Bruno Haible Date: Tue, 23 Jul 2024 12:41:12 +0200 Subject: [PATCH] strtof, strtod, strtold tests: Strengthen tests. * tests/test-strtof.h (test_function): Add another overflow test. * tests/test-strtod.h (test_function): Likewise. * tests/test-strtold.h (test_function): Likewise. --- ChangeLog | 7 +++++++ tests/test-strtod.h | 10 ++++++++++ tests/test-strtof.h | 10 ++++++++++ tests/test-strtold.h | 10 ++++++++++ 4 files changed, 37 insertions(+) diff --git a/ChangeLog b/ChangeLog index b4d5b8f9f8..309f1d8ac0 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2024-07-23 Bruno Haible + + strtof, strtod, strtold tests: Strengthen tests. + * tests/test-strtof.h (test_function): Add another overflow test. + * tests/test-strtod.h (test_function): Likewise. + * tests/test-strtold.h (test_function): Likewise. + 2024-07-23 Bruno Haible strtold: Revisit underflow behaviour. diff --git a/tests/test-strtod.h b/tests/test-strtod.h index c806953e84..211d9230c7 100644 --- a/tests/test-strtod.h +++ b/tests/test-strtod.h @@ -482,6 +482,16 @@ test_function (double (*my_strtod) (const char *, char **)) } /* Overflow. */ + { + const char input[] = "1e500"; + char *ptr; + double result; + errno = 0; + result = my_strtod (input, &ptr); + ASSERT (result == HUGE_VAL); + ASSERT (ptr == input + 5); /* OSF/1 5.1 */ + ASSERT (errno == ERANGE); + } { const char input[] = "1E1000000"; char *ptr; diff --git a/tests/test-strtof.h b/tests/test-strtof.h index 2ac6b898da..fd04f07873 100644 --- a/tests/test-strtof.h +++ b/tests/test-strtof.h @@ -482,6 +482,16 @@ test_function (float (*my_strtof) (const char *, char **)) } /* Overflow. */ + { + const char input[] = "1e50"; + char *ptr; + float result; + errno = 0; + result = my_strtof (input, &ptr); + ASSERT (result == HUGE_VAL); + ASSERT (ptr == input + 4); /* OSF/1 5.1 */ + ASSERT (errno == ERANGE); + } { const char input[] = "1E1000000"; char *ptr; diff --git a/tests/test-strtold.h b/tests/test-strtold.h index bd12988c4c..a872f8a882 100644 --- a/tests/test-strtold.h +++ b/tests/test-strtold.h @@ -482,6 +482,16 @@ test_function (long double (*my_strtold) (const char *, char **)) } /* Overflow. */ + { + const char input[] = "1e6000"; + char *ptr; + long double result; + errno = 0; + result = my_strtold (input, &ptr); + ASSERT (result == HUGE_VALL); + ASSERT (ptr == input + 6); + ASSERT (errno == ERANGE); + } { const char input[] = "1E1000000"; char *ptr; -- 2.39.5