Avoid test failures on IRIX 6.5.
[gnulib.git] / tests / test-sprintf-posix.h
index 855f7ae..53065c7 100644 (file)
@@ -151,7 +151,9 @@ test_function (int (*my_sprintf) (char *, const char *, ...))
     char result[1000];
     int retval =
       my_sprintf (result, "%a %d", NaN (), 33, 44, 55);
-    ASSERT (strcmp (result, "nan 33") == 0);
+    ASSERT (strlen (result) >= 3 + 3
+           && memcmp (result, "nan", 3) == 0
+           && strcmp (result + strlen (result) - 3, " 33") == 0);
     ASSERT (retval == strlen (result));
   }
 
@@ -345,10 +347,12 @@ test_function (int (*my_sprintf) (char *, const char *, ...))
   { /* FLAG_ZERO with NaN.  */
     char result[1000];
     int retval =
-      my_sprintf (result, "%010a %d", NaN (), 33, 44, 55);
+      my_sprintf (result, "%020a %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 (strcmp (result, "       nan 33") == 0);
+    ASSERT (strlen (result) == 20 + 3
+           && memcmp (result + strspn (result, " "), "nan", 3) == 0
+           && strcmp (result + strlen (result) - 3, " 33") == 0);
     ASSERT (retval == strlen (result));
   }
 
@@ -410,7 +414,9 @@ test_function (int (*my_sprintf) (char *, const char *, ...))
     char result[1000];
     int retval =
       my_sprintf (result, "%La %d", 0.0L / 0.0L, 33, 44, 55);
-    ASSERT (strcmp (result, "nan 33") == 0);
+    ASSERT (strlen (result) >= 3 + 3
+           && memcmp (result, "nan", 3) == 0
+           && strcmp (result + strlen (result) - 3, " 33") == 0);
     ASSERT (retval == strlen (result));
   }
 
@@ -605,10 +611,12 @@ test_function (int (*my_sprintf) (char *, const char *, ...))
   { /* FLAG_ZERO with NaN.  */
     char result[1000];
     int retval =
-      my_sprintf (result, "%010La %d", 0.0L / 0.0L, 33, 44, 55);
+      my_sprintf (result, "%020La %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 (strcmp (result, "       nan 33") == 0);
+    ASSERT (strlen (result) == 20 + 3
+           && memcmp (result + strspn (result, " "), "nan", 3) == 0
+           && strcmp (result + strlen (result) - 3, " 33") == 0);
     ASSERT (retval == strlen (result));
   }
 
@@ -765,7 +773,9 @@ test_function (int (*my_sprintf) (char *, const char *, ...))
     char result[1000];
     int retval =
       my_sprintf (result, "%f %d", NaN (), 33, 44, 55);
-    ASSERT (strcmp (result, "nan 33") == 0);
+    ASSERT (strlen (result) >= 3 + 3
+           && memcmp (result, "nan", 3) == 0
+           && strcmp (result + strlen (result) - 3, " 33") == 0);
     ASSERT (retval == strlen (result));
   }
 
@@ -837,8 +847,10 @@ test_function (int (*my_sprintf) (char *, const char *, ...))
   { /* FLAG_ZERO with NaN.  */
     char result[1000];
     int retval =
-      my_sprintf (result, "%015f %d", NaN (), 33, 44, 55);
-    ASSERT (strcmp (result, "            nan 33") == 0);
+      my_sprintf (result, "%020f %d", NaN (), 33, 44, 55);
+    ASSERT (strlen (result) == 20 + 3
+           && memcmp (result + strspn (result, " "), "nan", 3) == 0
+           && strcmp (result + strlen (result) - 3, " 33") == 0);
     ASSERT (retval == strlen (result));
   }
 
@@ -1002,7 +1014,9 @@ test_function (int (*my_sprintf) (char *, const char *, ...))
     char result[1000];
     int retval =
       my_sprintf (result, "%Lf %d", zero / zero, 33, 44, 55);
-    ASSERT (strcmp (result, "nan 33") == 0);
+    ASSERT (strlen (result) >= 3 + 3
+           && memcmp (result, "nan", 3) == 0
+           && strcmp (result + strlen (result) - 3, " 33") == 0);
     ASSERT (retval == strlen (result));
   }
 
@@ -1075,8 +1089,10 @@ test_function (int (*my_sprintf) (char *, const char *, ...))
     static long double zero = 0.0L;
     char result[1000];
     int retval =
-      my_sprintf (result, "%015Lf %d", zero / zero, 33, 44, 55);
-    ASSERT (strcmp (result, "            nan 33") == 0);
+      my_sprintf (result, "%020Lf %d", zero / zero, 33, 44, 55);
+    ASSERT (strlen (result) == 20 + 3
+           && memcmp (result + strspn (result, " "), "nan", 3) == 0
+           && strcmp (result + strlen (result) - 3, " 33") == 0);
     ASSERT (retval == strlen (result));
   }
 
@@ -1152,7 +1168,9 @@ test_function (int (*my_sprintf) (char *, const char *, ...))
     char result[1000];
     int retval =
       my_sprintf (result, "%F %d", NaN (), 33, 44, 55);
-    ASSERT (strcmp (result, "NAN 33") == 0);
+    ASSERT (strlen (result) >= 3 + 3
+           && memcmp (result, "NAN", 3) == 0
+           && strcmp (result + strlen (result) - 3, " 33") == 0);
     ASSERT (retval == strlen (result));
   }
 
@@ -1244,7 +1262,9 @@ test_function (int (*my_sprintf) (char *, const char *, ...))
     char result[1000];
     int retval =
       my_sprintf (result, "%LF %d", zero / zero, 33, 44, 55);
-    ASSERT (strcmp (result, "NAN 33") == 0);
+    ASSERT (strlen (result) >= 3 + 3
+           && memcmp (result, "NAN", 3) == 0
+           && strcmp (result + strlen (result) - 3, " 33") == 0);
     ASSERT (retval == strlen (result));
   }
 
@@ -1440,7 +1460,9 @@ test_function (int (*my_sprintf) (char *, const char *, ...))
     char result[1000];
     int retval =
       my_sprintf (result, "%e %d", NaN (), 33, 44, 55);
-    ASSERT (strcmp (result, "nan 33") == 0);
+    ASSERT (strlen (result) >= 3 + 3
+           && memcmp (result, "nan", 3) == 0
+           && strcmp (result + strlen (result) - 3, " 33") == 0);
     ASSERT (retval == strlen (result));
   }
 
@@ -1528,8 +1550,10 @@ test_function (int (*my_sprintf) (char *, const char *, ...))
   { /* FLAG_ZERO with NaN.  */
     char result[1000];
     int retval =
-      my_sprintf (result, "%015e %d", NaN (), 33, 44, 55);
-    ASSERT (strcmp (result, "            nan 33") == 0);
+      my_sprintf (result, "%020e %d", NaN (), 33, 44, 55);
+    ASSERT (strlen (result) == 20 + 3
+           && memcmp (result + strspn (result, " "), "nan", 3) == 0
+           && strcmp (result + strlen (result) - 3, " 33") == 0);
     ASSERT (retval == strlen (result));
   }
 
@@ -1694,7 +1718,9 @@ test_function (int (*my_sprintf) (char *, const char *, ...))
     char result[1000];
     int retval =
       my_sprintf (result, "%Le %d", zero / zero, 33, 44, 55);
-    ASSERT (strcmp (result, "nan 33") == 0);
+    ASSERT (strlen (result) >= 3 + 3
+           && memcmp (result, "nan", 3) == 0
+           && strcmp (result + strlen (result) - 3, " 33") == 0);
     ASSERT (retval == strlen (result));
   }
 
@@ -1775,8 +1801,10 @@ test_function (int (*my_sprintf) (char *, const char *, ...))
     static long double zero = 0.0L;
     char result[1000];
     int retval =
-      my_sprintf (result, "%015Le %d", zero / zero, 33, 44, 55);
-    ASSERT (strcmp (result, "            nan 33") == 0);
+      my_sprintf (result, "%020Le %d", zero / zero, 33, 44, 55);
+    ASSERT (strlen (result) == 20 + 3
+           && memcmp (result + strspn (result, " "), "nan", 3) == 0
+           && strcmp (result + strlen (result) - 3, " 33") == 0);
     ASSERT (retval == strlen (result));
   }
 
@@ -1951,7 +1979,9 @@ test_function (int (*my_sprintf) (char *, const char *, ...))
     char result[1000];
     int retval =
       my_sprintf (result, "%g %d", NaN (), 33, 44, 55);
-    ASSERT (strcmp (result, "nan 33") == 0);
+    ASSERT (strlen (result) >= 3 + 3
+           && memcmp (result, "nan", 3) == 0
+           && strcmp (result + strlen (result) - 3, " 33") == 0);
     ASSERT (retval == strlen (result));
   }
 
@@ -2032,8 +2062,10 @@ test_function (int (*my_sprintf) (char *, const char *, ...))
   { /* FLAG_ZERO with NaN.  */
     char result[1000];
     int retval =
-      my_sprintf (result, "%015g %d", NaN (), 33, 44, 55);
-    ASSERT (strcmp (result, "            nan 33") == 0);
+      my_sprintf (result, "%020g %d", NaN (), 33, 44, 55);
+    ASSERT (strlen (result) == 20 + 3
+           && memcmp (result + strspn (result, " "), "nan", 3) == 0
+           && strcmp (result + strlen (result) - 3, " 33") == 0);
     ASSERT (retval == strlen (result));
   }
 
@@ -2198,7 +2230,9 @@ test_function (int (*my_sprintf) (char *, const char *, ...))
     char result[1000];
     int retval =
       my_sprintf (result, "%Lg %d", zero / zero, 33, 44, 55);
-    ASSERT (strcmp (result, "nan 33") == 0);
+    ASSERT (strlen (result) >= 3 + 3
+           && memcmp (result, "nan", 3) == 0
+           && strcmp (result + strlen (result) - 3, " 33") == 0);
     ASSERT (retval == strlen (result));
   }
 
@@ -2279,8 +2313,10 @@ test_function (int (*my_sprintf) (char *, const char *, ...))
     static long double zero = 0.0L;
     char result[1000];
     int retval =
-      my_sprintf (result, "%015Lg %d", zero / zero, 33, 44, 55);
-    ASSERT (strcmp (result, "            nan 33") == 0);
+      my_sprintf (result, "%020Lg %d", zero / zero, 33, 44, 55);
+    ASSERT (strlen (result) == 20 + 3
+           && memcmp (result + strspn (result, " "), "nan", 3) == 0
+           && strcmp (result + strlen (result) - 3, " 33") == 0);
     ASSERT (retval == strlen (result));
   }