changeset 8870:4e1f2ea486b4

Allow for a longer printed representation of NaN.
author Bruno Haible <bruno@clisp.org>
date Thu, 24 May 2007 10:10:51 +0000
parents b3ce973773f3
children 8015a071250c
files ChangeLog tests/test-snprintf-posix.h tests/test-sprintf-posix.h tests/test-vasnprintf-posix.c tests/test-vasprintf-posix.c
diffstat 5 files changed, 73 insertions(+), 64 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2007-05-24  Bruno Haible  <bruno@clisp.org>
+
+	* tests/test-vasnprintf-posix.c (test_function): Allow up to 50 bytes
+	in the printed representation of a NaN.
+	* tests/test-vasprintf-posix.c (test_function): Likewise.
+	* tests/test-snprintf-posix.h (test_function): Likewise.
+	* tests/test-sprintf-posix.h (test_function): Likewise.
+	Reported by Eric Blake.
+
 2007-05-23  Eric Blake  <ebb9@byu.net>
 
 	Fix fseeko/ftello on cygwin 1.5.24.
--- a/tests/test-snprintf-posix.h
+++ b/tests/test-snprintf-posix.h
@@ -392,10 +392,10 @@
   { /* FLAG_ZERO with NaN.  */
     char result[100];
     int retval =
-      my_snprintf (result, sizeof (result), "%020a %d", NaN (), 33, 44, 55);
+      my_snprintf (result, sizeof (result), "%050a %d", NaN (), 33, 44, 55);
     /* "0000000nan 33" is not a valid result; see
        <http://lists.gnu.org/archive/html/bug-gnulib/2007-04/msg00107.html> */
-    ASSERT (strlen (result) == 20 + 3
+    ASSERT (strlen (result) == 50 + 3
 	    && strisnan (result, strspn (result, " "), strlen (result) - 3, 0)
 	    && strcmp (result + strlen (result) - 3, " 33") == 0);
     ASSERT (retval == strlen (result));
@@ -657,10 +657,10 @@
   { /* FLAG_ZERO with NaN.  */
     char result[100];
     int retval =
-      my_snprintf (result, sizeof (result), "%020La %d", 0.0L / 0.0L, 33, 44, 55);
+      my_snprintf (result, sizeof (result), "%050La %d", 0.0L / 0.0L, 33, 44, 55);
     /* "0000000nan 33" is not a valid result; see
        <http://lists.gnu.org/archive/html/bug-gnulib/2007-04/msg00107.html> */
-    ASSERT (strlen (result) == 20 + 3
+    ASSERT (strlen (result) == 50 + 3
 	    && strisnan (result, strspn (result, " "), strlen (result) - 3, 0)
 	    && strcmp (result + strlen (result) - 3, " 33") == 0);
     ASSERT (retval == strlen (result));
@@ -900,8 +900,8 @@
   { /* FLAG_ZERO with NaN.  */
     char result[100];
     int retval =
-      my_snprintf (result, sizeof (result), "%020f %d", NaN (), 33, 44, 55);
-    ASSERT (strlen (result) == 20 + 3
+      my_snprintf (result, sizeof (result), "%050f %d", NaN (), 33, 44, 55);
+    ASSERT (strlen (result) == 50 + 3
 	    && strisnan (result, strspn (result, " "), strlen (result) - 3, 0)
 	    && strcmp (result + strlen (result) - 3, " 33") == 0);
     ASSERT (retval == strlen (result));
@@ -1149,8 +1149,8 @@
     static long double zero = 0.0L;
     char result[100];
     int retval =
-      my_snprintf (result, sizeof (result), "%020Lf %d", zero / zero, 33, 44, 55);
-    ASSERT (strlen (result) == 20 + 3
+      my_snprintf (result, sizeof (result), "%050Lf %d", zero / zero, 33, 44, 55);
+    ASSERT (strlen (result) == 50 + 3
 	    && strisnan (result, strspn (result, " "), strlen (result) - 3, 0)
 	    && strcmp (result + strlen (result) - 3, " 33") == 0);
     ASSERT (retval == strlen (result));
@@ -1613,8 +1613,8 @@
   { /* FLAG_ZERO with NaN.  */
     char result[100];
     int retval =
-      my_snprintf (result, sizeof (result), "%020e %d", NaN (), 33, 44, 55);
-    ASSERT (strlen (result) == 20 + 3
+      my_snprintf (result, sizeof (result), "%050e %d", NaN (), 33, 44, 55);
+    ASSERT (strlen (result) == 50 + 3
 	    && strisnan (result, strspn (result, " "), strlen (result) - 3, 0)
 	    && strcmp (result + strlen (result) - 3, " 33") == 0);
     ASSERT (retval == strlen (result));
@@ -1865,8 +1865,8 @@
     static long double zero = 0.0L;
     char result[100];
     int retval =
-      my_snprintf (result, sizeof (result), "%020Le %d", zero / zero, 33, 44, 55);
-    ASSERT (strlen (result) == 20 + 3
+      my_snprintf (result, sizeof (result), "%050Le %d", zero / zero, 33, 44, 55);
+    ASSERT (strlen (result) == 50 + 3
 	    && strisnan (result, strspn (result, " "), strlen (result) - 3, 0)
 	    && strcmp (result + strlen (result) - 3, " 33") == 0);
     ASSERT (retval == strlen (result));
@@ -2127,8 +2127,8 @@
   { /* FLAG_ZERO with NaN.  */
     char result[100];
     int retval =
-      my_snprintf (result, sizeof (result), "%020g %d", NaN (), 33, 44, 55);
-    ASSERT (strlen (result) == 20 + 3
+      my_snprintf (result, sizeof (result), "%050g %d", NaN (), 33, 44, 55);
+    ASSERT (strlen (result) == 50 + 3
 	    && strisnan (result, strspn (result, " "), strlen (result) - 3, 0)
 	    && strcmp (result + strlen (result) - 3, " 33") == 0);
     ASSERT (retval == strlen (result));
@@ -2379,8 +2379,8 @@
     static long double zero = 0.0L;
     char result[100];
     int retval =
-      my_snprintf (result, sizeof (result), "%020Lg %d", zero / zero, 33, 44, 55);
-    ASSERT (strlen (result) == 20 + 3
+      my_snprintf (result, sizeof (result), "%050Lg %d", zero / zero, 33, 44, 55);
+    ASSERT (strlen (result) == 50 + 3
 	    && strisnan (result, strspn (result, " "), strlen (result) - 3, 0)
 	    && strcmp (result + strlen (result) - 3, " 33") == 0);
     ASSERT (retval == strlen (result));
--- a/tests/test-sprintf-posix.h
+++ b/tests/test-sprintf-posix.h
@@ -378,10 +378,10 @@
   { /* FLAG_ZERO with NaN.  */
     char result[1000];
     int retval =
-      my_sprintf (result, "%020a %d", NaN (), 33, 44, 55);
+      my_sprintf (result, "%050a %d", NaN (), 33, 44, 55);
     /* "0000000nan 33" is not a valid result; see
        <http://lists.gnu.org/archive/html/bug-gnulib/2007-04/msg00107.html> */
-    ASSERT (strlen (result) == 20 + 3
+    ASSERT (strlen (result) == 50 + 3
 	    && strisnan (result, strspn (result, " "), strlen (result) - 3, 0)
 	    && strcmp (result + strlen (result) - 3, " 33") == 0);
     ASSERT (retval == strlen (result));
@@ -643,10 +643,10 @@
   { /* FLAG_ZERO with NaN.  */
     char result[1000];
     int retval =
-      my_sprintf (result, "%020La %d", 0.0L / 0.0L, 33, 44, 55);
+      my_sprintf (result, "%050La %d", 0.0L / 0.0L, 33, 44, 55);
     /* "0000000nan 33" is not a valid result; see
        <http://lists.gnu.org/archive/html/bug-gnulib/2007-04/msg00107.html> */
-    ASSERT (strlen (result) == 20 + 3
+    ASSERT (strlen (result) == 50 + 3
 	    && strisnan (result, strspn (result, " "), strlen (result) - 3, 0)
 	    && strcmp (result + strlen (result) - 3, " 33") == 0);
     ASSERT (retval == strlen (result));
@@ -880,8 +880,8 @@
   { /* FLAG_ZERO with NaN.  */
     char result[1000];
     int retval =
-      my_sprintf (result, "%020f %d", NaN (), 33, 44, 55);
-    ASSERT (strlen (result) == 20 + 3
+      my_sprintf (result, "%050f %d", NaN (), 33, 44, 55);
+    ASSERT (strlen (result) == 50 + 3
 	    && strisnan (result, strspn (result, " "), strlen (result) - 3, 0)
 	    && strcmp (result + strlen (result) - 3, " 33") == 0);
     ASSERT (retval == strlen (result));
@@ -1123,8 +1123,8 @@
     static long double zero = 0.0L;
     char result[1000];
     int retval =
-      my_sprintf (result, "%020Lf %d", zero / zero, 33, 44, 55);
-    ASSERT (strlen (result) == 20 + 3
+      my_sprintf (result, "%050Lf %d", zero / zero, 33, 44, 55);
+    ASSERT (strlen (result) == 50 + 3
 	    && strisnan (result, strspn (result, " "), strlen (result) - 3, 0)
 	    && strcmp (result + strlen (result) - 3, " 33") == 0);
     ASSERT (retval == strlen (result));
@@ -1587,8 +1587,8 @@
   { /* FLAG_ZERO with NaN.  */
     char result[1000];
     int retval =
-      my_sprintf (result, "%020e %d", NaN (), 33, 44, 55);
-    ASSERT (strlen (result) == 20 + 3
+      my_sprintf (result, "%050e %d", NaN (), 33, 44, 55);
+    ASSERT (strlen (result) == 50 + 3
 	    && strisnan (result, strspn (result, " "), strlen (result) - 3, 0)
 	    && strcmp (result + strlen (result) - 3, " 33") == 0);
     ASSERT (retval == strlen (result));
@@ -1839,8 +1839,8 @@
     static long double zero = 0.0L;
     char result[1000];
     int retval =
-      my_sprintf (result, "%020Le %d", zero / zero, 33, 44, 55);
-    ASSERT (strlen (result) == 20 + 3
+      my_sprintf (result, "%050Le %d", zero / zero, 33, 44, 55);
+    ASSERT (strlen (result) == 50 + 3
 	    && strisnan (result, strspn (result, " "), strlen (result) - 3, 0)
 	    && strcmp (result + strlen (result) - 3, " 33") == 0);
     ASSERT (retval == strlen (result));
@@ -2101,8 +2101,8 @@
   { /* FLAG_ZERO with NaN.  */
     char result[1000];
     int retval =
-      my_sprintf (result, "%020g %d", NaN (), 33, 44, 55);
-    ASSERT (strlen (result) == 20 + 3
+      my_sprintf (result, "%050g %d", NaN (), 33, 44, 55);
+    ASSERT (strlen (result) == 50 + 3
 	    && strisnan (result, strspn (result, " "), strlen (result) - 3, 0)
 	    && strcmp (result + strlen (result) - 3, " 33") == 0);
     ASSERT (retval == strlen (result));
@@ -2353,8 +2353,8 @@
     static long double zero = 0.0L;
     char result[1000];
     int retval =
-      my_sprintf (result, "%020Lg %d", zero / zero, 33, 44, 55);
-    ASSERT (strlen (result) == 20 + 3
+      my_sprintf (result, "%050Lg %d", zero / zero, 33, 44, 55);
+    ASSERT (strlen (result) == 50 + 3
 	    && strisnan (result, strspn (result, " "), strlen (result) - 3, 0)
 	    && strcmp (result + strlen (result) - 3, " 33") == 0);
     ASSERT (retval == strlen (result));
--- a/tests/test-vasnprintf-posix.c
+++ b/tests/test-vasnprintf-posix.c
@@ -479,11 +479,11 @@
   { /* FLAG_ZERO with NaN.  */
     size_t length;
     char *result =
-      my_asnprintf (NULL, &length, "%020a %d", NaN (), 33, 44, 55);
+      my_asnprintf (NULL, &length, "%050a %d", NaN (), 33, 44, 55);
     ASSERT (result != NULL);
     /* "0000000nan 33" is not a valid result; see
        <http://lists.gnu.org/archive/html/bug-gnulib/2007-04/msg00107.html> */
-    ASSERT (strlen (result) == 20 + 3
+    ASSERT (strlen (result) == 50 + 3
 	    && strisnan (result, strspn (result, " "), strlen (result) - 3, 0)
 	    && strcmp (result + strlen (result) - 3, " 33") == 0);
     ASSERT (length == strlen (result));
@@ -794,11 +794,11 @@
   { /* FLAG_ZERO with NaN.  */
     size_t length;
     char *result =
-      my_asnprintf (NULL, &length, "%020La %d", 0.0L / 0.0L, 33, 44, 55);
+      my_asnprintf (NULL, &length, "%050La %d", 0.0L / 0.0L, 33, 44, 55);
     ASSERT (result != NULL);
     /* "0000000nan 33" is not a valid result; see
        <http://lists.gnu.org/archive/html/bug-gnulib/2007-04/msg00107.html> */
-    ASSERT (strlen (result) == 20 + 3
+    ASSERT (strlen (result) == 50 + 3
 	    && strisnan (result, strspn (result, " "), strlen (result) - 3, 0)
 	    && strcmp (result + strlen (result) - 3, " 33") == 0);
     ASSERT (length == strlen (result));
@@ -1067,9 +1067,9 @@
   { /* FLAG_ZERO with NaN.  */
     size_t length;
     char *result =
-      my_asnprintf (NULL, &length, "%020f %d", NaN (), 33, 44, 55);
+      my_asnprintf (NULL, &length, "%050f %d", NaN (), 33, 44, 55);
     ASSERT (result != NULL);
-    ASSERT (strlen (result) == 20 + 3
+    ASSERT (strlen (result) == 50 + 3
 	    && strisnan (result, strspn (result, " "), strlen (result) - 3, 0)
 	    && strcmp (result + strlen (result) - 3, " 33") == 0);
     ASSERT (length == strlen (result));
@@ -1348,9 +1348,9 @@
     static long double zero = 0.0L;
     size_t length;
     char *result =
-      my_asnprintf (NULL, &length, "%020Lf %d", zero / zero, 33, 44, 55);
+      my_asnprintf (NULL, &length, "%050Lf %d", zero / zero, 33, 44, 55);
     ASSERT (result != NULL);
-    ASSERT (strlen (result) == 20 + 3
+    ASSERT (strlen (result) == 50 + 3
 	    && strisnan (result, strspn (result, " "), strlen (result) - 3, 0)
 	    && strcmp (result + strlen (result) - 3, " 33") == 0);
     ASSERT (length == strlen (result));
@@ -1895,9 +1895,9 @@
   { /* FLAG_ZERO with NaN.  */
     size_t length;
     char *result =
-      my_asnprintf (NULL, &length, "%020e %d", NaN (), 33, 44, 55);
+      my_asnprintf (NULL, &length, "%050e %d", NaN (), 33, 44, 55);
     ASSERT (result != NULL);
-    ASSERT (strlen (result) == 20 + 3
+    ASSERT (strlen (result) == 50 + 3
 	    && strisnan (result, strspn (result, " "), strlen (result) - 3, 0)
 	    && strcmp (result + strlen (result) - 3, " 33") == 0);
     ASSERT (length == strlen (result));
@@ -2187,9 +2187,9 @@
     static long double zero = 0.0L;
     size_t length;
     char *result =
-      my_asnprintf (NULL, &length, "%020Le %d", zero / zero, 33, 44, 55);
+      my_asnprintf (NULL, &length, "%050Le %d", zero / zero, 33, 44, 55);
     ASSERT (result != NULL);
-    ASSERT (strlen (result) == 20 + 3
+    ASSERT (strlen (result) == 50 + 3
 	    && strisnan (result, strspn (result, " "), strlen (result) - 3, 0)
 	    && strcmp (result + strlen (result) - 3, " 33") == 0);
     ASSERT (length == strlen (result));
@@ -2489,9 +2489,9 @@
   { /* FLAG_ZERO with NaN.  */
     size_t length;
     char *result =
-      my_asnprintf (NULL, &length, "%020g %d", NaN (), 33, 44, 55);
+      my_asnprintf (NULL, &length, "%050g %d", NaN (), 33, 44, 55);
     ASSERT (result != NULL);
-    ASSERT (strlen (result) == 20 + 3
+    ASSERT (strlen (result) == 50 + 3
 	    && strisnan (result, strspn (result, " "), strlen (result) - 3, 0)
 	    && strcmp (result + strlen (result) - 3, " 33") == 0);
     ASSERT (length == strlen (result));
@@ -2781,9 +2781,9 @@
     static long double zero = 0.0L;
     size_t length;
     char *result =
-      my_asnprintf (NULL, &length, "%020Lg %d", zero / zero, 33, 44, 55);
+      my_asnprintf (NULL, &length, "%050Lg %d", zero / zero, 33, 44, 55);
     ASSERT (result != NULL);
-    ASSERT (strlen (result) == 20 + 3
+    ASSERT (strlen (result) == 50 + 3
 	    && strisnan (result, strspn (result, " "), strlen (result) - 3, 0)
 	    && strcmp (result + strlen (result) - 3, " 33") == 0);
     ASSERT (length == strlen (result));
--- a/tests/test-vasprintf-posix.c
+++ b/tests/test-vasprintf-posix.c
@@ -460,11 +460,11 @@
   { /* FLAG_ZERO with NaN.  */
     char *result;
     int retval =
-      my_asprintf (&result, "%020a %d", NaN (), 33, 44, 55);
+      my_asprintf (&result, "%050a %d", NaN (), 33, 44, 55);
     ASSERT (result != NULL);
     /* "0000000nan 33" is not a valid result; see
        <http://lists.gnu.org/archive/html/bug-gnulib/2007-04/msg00107.html> */
-    ASSERT (strlen (result) == 20 + 3
+    ASSERT (strlen (result) == 50 + 3
 	    && strisnan (result, strspn (result, " "), strlen (result) - 3, 0)
 	    && strcmp (result + strlen (result) - 3, " 33") == 0);
     ASSERT (retval == strlen (result));
@@ -775,11 +775,11 @@
   { /* FLAG_ZERO with NaN.  */
     char *result;
     int retval =
-      my_asprintf (&result, "%020La %d", 0.0L / 0.0L, 33, 44, 55);
+      my_asprintf (&result, "%050La %d", 0.0L / 0.0L, 33, 44, 55);
     ASSERT (result != NULL);
     /* "0000000nan 33" is not a valid result; see
        <http://lists.gnu.org/archive/html/bug-gnulib/2007-04/msg00107.html> */
-    ASSERT (strlen (result) == 20 + 3
+    ASSERT (strlen (result) == 50 + 3
 	    && strisnan (result, strspn (result, " "), strlen (result) - 3, 0)
 	    && strcmp (result + strlen (result) - 3, " 33") == 0);
     ASSERT (retval == strlen (result));
@@ -1048,9 +1048,9 @@
   { /* FLAG_ZERO with NaN.  */
     char *result;
     int retval =
-      my_asprintf (&result, "%020f %d", NaN (), 33, 44, 55);
+      my_asprintf (&result, "%050f %d", NaN (), 33, 44, 55);
     ASSERT (result != NULL);
-    ASSERT (strlen (result) == 20 + 3
+    ASSERT (strlen (result) == 50 + 3
 	    && strisnan (result, strspn (result, " "), strlen (result) - 3, 0)
 	    && strcmp (result + strlen (result) - 3, " 33") == 0);
     ASSERT (retval == strlen (result));
@@ -1329,9 +1329,9 @@
     static long double zero = 0.0L;
     char *result;
     int retval =
-      my_asprintf (&result, "%020Lf %d", zero / zero, 33, 44, 55);
+      my_asprintf (&result, "%050Lf %d", zero / zero, 33, 44, 55);
     ASSERT (result != NULL);
-    ASSERT (strlen (result) == 20 + 3
+    ASSERT (strlen (result) == 50 + 3
 	    && strisnan (result, strspn (result, " "), strlen (result) - 3, 0)
 	    && strcmp (result + strlen (result) - 3, " 33") == 0);
     ASSERT (retval == strlen (result));
@@ -1876,9 +1876,9 @@
   { /* FLAG_ZERO with NaN.  */
     char *result;
     int retval =
-      my_asprintf (&result, "%020e %d", NaN (), 33, 44, 55);
+      my_asprintf (&result, "%050e %d", NaN (), 33, 44, 55);
     ASSERT (result != NULL);
-    ASSERT (strlen (result) == 20 + 3
+    ASSERT (strlen (result) == 50 + 3
 	    && strisnan (result, strspn (result, " "), strlen (result) - 3, 0)
 	    && strcmp (result + strlen (result) - 3, " 33") == 0);
     ASSERT (retval == strlen (result));
@@ -2168,9 +2168,9 @@
     static long double zero = 0.0L;
     char *result;
     int retval =
-      my_asprintf (&result, "%020Le %d", zero / zero, 33, 44, 55);
+      my_asprintf (&result, "%050Le %d", zero / zero, 33, 44, 55);
     ASSERT (result != NULL);
-    ASSERT (strlen (result) == 20 + 3
+    ASSERT (strlen (result) == 50 + 3
 	    && strisnan (result, strspn (result, " "), strlen (result) - 3, 0)
 	    && strcmp (result + strlen (result) - 3, " 33") == 0);
     ASSERT (retval == strlen (result));
@@ -2470,9 +2470,9 @@
   { /* FLAG_ZERO with NaN.  */
     char *result;
     int retval =
-      my_asprintf (&result, "%020g %d", NaN (), 33, 44, 55);
+      my_asprintf (&result, "%050g %d", NaN (), 33, 44, 55);
     ASSERT (result != NULL);
-    ASSERT (strlen (result) == 20 + 3
+    ASSERT (strlen (result) == 50 + 3
 	    && strisnan (result, strspn (result, " "), strlen (result) - 3, 0)
 	    && strcmp (result + strlen (result) - 3, " 33") == 0);
     ASSERT (retval == strlen (result));
@@ -2762,9 +2762,9 @@
     static long double zero = 0.0L;
     char *result;
     int retval =
-      my_asprintf (&result, "%020Lg %d", zero / zero, 33, 44, 55);
+      my_asprintf (&result, "%050Lg %d", zero / zero, 33, 44, 55);
     ASSERT (result != NULL);
-    ASSERT (strlen (result) == 20 + 3
+    ASSERT (strlen (result) == 50 + 3
 	    && strisnan (result, strspn (result, " "), strlen (result) - 3, 0)
 	    && strcmp (result + strlen (result) - 3, " 33") == 0);
     ASSERT (retval == strlen (result));