+2007-05-19 Bruno Haible <bruno@clisp.org>
+
+ * tests/test-vasnprintf-posix.c (test_function): Allow NaN to be
+ printed as "nan0x7fffffff" instead of "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.
+ Needed for IRIX 6.5.
+
2007-05-19 Bruno Haible <bruno@clisp.org>
* m4/frexp.m4 (gl_FUNC_FREXP_WORKS): Fix C89 syntax error in test code.
char result[100];
int retval =
my_snprintf (result, sizeof (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));
}
{ /* FLAG_ZERO with NaN. */
char result[100];
int retval =
- my_snprintf (result, sizeof (result), "%010a %d", NaN (), 33, 44, 55);
+ my_snprintf (result, sizeof (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));
}
char result[100];
int retval =
my_snprintf (result, sizeof (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));
}
{ /* FLAG_ZERO with NaN. */
char result[100];
int retval =
- my_snprintf (result, sizeof (result), "%010La %d", 0.0L / 0.0L, 33, 44, 55);
+ my_snprintf (result, sizeof (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));
}
char result[100];
int retval =
my_snprintf (result, sizeof (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));
}
{ /* FLAG_ZERO with NaN. */
char result[100];
int retval =
- my_snprintf (result, sizeof (result), "%015f %d", NaN (), 33, 44, 55);
- ASSERT (strcmp (result, " nan 33") == 0);
+ my_snprintf (result, sizeof (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));
}
char result[100];
int retval =
my_snprintf (result, sizeof (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));
}
static long double zero = 0.0L;
char result[100];
int retval =
- my_snprintf (result, sizeof (result), "%015Lf %d", zero / zero, 33, 44, 55);
- ASSERT (strcmp (result, " nan 33") == 0);
+ my_snprintf (result, sizeof (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));
}
char result[100];
int retval =
my_snprintf (result, sizeof (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));
}
char result[100];
int retval =
my_snprintf (result, sizeof (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));
}
char result[100];
int retval =
my_snprintf (result, sizeof (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));
}
{ /* FLAG_ZERO with NaN. */
char result[100];
int retval =
- my_snprintf (result, sizeof (result), "%015e %d", NaN (), 33, 44, 55);
- ASSERT (strcmp (result, " nan 33") == 0);
+ my_snprintf (result, sizeof (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));
}
char result[100];
int retval =
my_snprintf (result, sizeof (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));
}
static long double zero = 0.0L;
char result[100];
int retval =
- my_snprintf (result, sizeof (result), "%015Le %d", zero / zero, 33, 44, 55);
- ASSERT (strcmp (result, " nan 33") == 0);
+ my_snprintf (result, sizeof (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));
}
char result[100];
int retval =
my_snprintf (result, sizeof (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));
}
{ /* FLAG_ZERO with NaN. */
char result[100];
int retval =
- my_snprintf (result, sizeof (result), "%015g %d", NaN (), 33, 44, 55);
- ASSERT (strcmp (result, " nan 33") == 0);
+ my_snprintf (result, sizeof (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));
}
char result[100];
int retval =
my_snprintf (result, sizeof (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));
}
static long double zero = 0.0L;
char result[100];
int retval =
- my_snprintf (result, sizeof (result), "%015Lg %d", zero / zero, 33, 44, 55);
- ASSERT (strcmp (result, " nan 33") == 0);
+ my_snprintf (result, sizeof (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));
}
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));
}
{ /* 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));
}
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));
}
{ /* 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));
}
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));
}
{ /* 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));
}
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));
}
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));
}
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));
}
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));
}
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));
}
{ /* 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));
}
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));
}
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));
}
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));
}
{ /* 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));
}
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));
}
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));
}
char *result =
my_asnprintf (NULL, &length, "%a %d", NaN (), 33, 44, 55);
ASSERT (result != NULL);
- ASSERT (strcmp (result, "nan 33") == 0);
+ ASSERT (strlen (result) >= 3 + 3
+ && memcmp (result, "nan", 3) == 0
+ && strcmp (result + strlen (result) - 3, " 33") == 0);
ASSERT (length == strlen (result));
free (result);
}
{ /* FLAG_ZERO with NaN. */
size_t length;
char *result =
- my_asnprintf (NULL, &length, "%010a %d", NaN (), 33, 44, 55);
+ my_asnprintf (NULL, &length, "%020a %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 (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 (length == strlen (result));
free (result);
}
char *result =
my_asnprintf (NULL, &length, "%La %d", 0.0L / 0.0L, 33, 44, 55);
ASSERT (result != NULL);
- ASSERT (strcmp (result, "nan 33") == 0);
+ ASSERT (strlen (result) >= 3 + 3
+ && memcmp (result, "nan", 3) == 0
+ && strcmp (result + strlen (result) - 3, " 33") == 0);
ASSERT (length == strlen (result));
free (result);
}
{ /* FLAG_ZERO with NaN. */
size_t length;
char *result =
- my_asnprintf (NULL, &length, "%010La %d", 0.0L / 0.0L, 33, 44, 55);
+ my_asnprintf (NULL, &length, "%020La %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 (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 (length == strlen (result));
free (result);
}
char *result =
my_asnprintf (NULL, &length, "%f %d", NaN (), 33, 44, 55);
ASSERT (result != NULL);
- ASSERT (strcmp (result, "nan 33") == 0);
+ ASSERT (strlen (result) >= 3 + 3
+ && memcmp (result, "nan", 3) == 0
+ && strcmp (result + strlen (result) - 3, " 33") == 0);
ASSERT (length == strlen (result));
free (result);
}
{ /* FLAG_ZERO with NaN. */
size_t length;
char *result =
- my_asnprintf (NULL, &length, "%015f %d", NaN (), 33, 44, 55);
+ my_asnprintf (NULL, &length, "%020f %d", NaN (), 33, 44, 55);
ASSERT (result != NULL);
- 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 (length == strlen (result));
free (result);
}
char *result =
my_asnprintf (NULL, &length, "%Lf %d", zero / zero, 33, 44, 55);
ASSERT (result != NULL);
- ASSERT (strcmp (result, "nan 33") == 0);
+ ASSERT (strlen (result) >= 3 + 3
+ && memcmp (result, "nan", 3) == 0
+ && strcmp (result + strlen (result) - 3, " 33") == 0);
ASSERT (length == strlen (result));
free (result);
}
static long double zero = 0.0L;
size_t length;
char *result =
- my_asnprintf (NULL, &length, "%015Lf %d", zero / zero, 33, 44, 55);
+ my_asnprintf (NULL, &length, "%020Lf %d", zero / zero, 33, 44, 55);
ASSERT (result != NULL);
- 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 (length == strlen (result));
free (result);
}
char *result =
my_asnprintf (NULL, &length, "%F %d", NaN (), 33, 44, 55);
ASSERT (result != NULL);
- ASSERT (strcmp (result, "NAN 33") == 0);
+ ASSERT (strlen (result) >= 3 + 3
+ && memcmp (result, "NAN", 3) == 0
+ && strcmp (result + strlen (result) - 3, " 33") == 0);
ASSERT (length == strlen (result));
free (result);
}
char *result =
my_asnprintf (NULL, &length, "%LF %d", zero / zero, 33, 44, 55);
ASSERT (result != NULL);
- ASSERT (strcmp (result, "NAN 33") == 0);
+ ASSERT (strlen (result) >= 3 + 3
+ && memcmp (result, "NAN", 3) == 0
+ && strcmp (result + strlen (result) - 3, " 33") == 0);
ASSERT (length == strlen (result));
free (result);
}
char *result =
my_asnprintf (NULL, &length, "%e %d", NaN (), 33, 44, 55);
ASSERT (result != NULL);
- ASSERT (strcmp (result, "nan 33") == 0);
+ ASSERT (strlen (result) >= 3 + 3
+ && memcmp (result, "nan", 3) == 0
+ && strcmp (result + strlen (result) - 3, " 33") == 0);
ASSERT (length == strlen (result));
free (result);
}
{ /* FLAG_ZERO with NaN. */
size_t length;
char *result =
- my_asnprintf (NULL, &length, "%015e %d", NaN (), 33, 44, 55);
+ my_asnprintf (NULL, &length, "%020e %d", NaN (), 33, 44, 55);
ASSERT (result != NULL);
- 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 (length == strlen (result));
free (result);
}
char *result =
my_asnprintf (NULL, &length, "%Le %d", zero / zero, 33, 44, 55);
ASSERT (result != NULL);
- ASSERT (strcmp (result, "nan 33") == 0);
+ ASSERT (strlen (result) >= 3 + 3
+ && memcmp (result, "nan", 3) == 0
+ && strcmp (result + strlen (result) - 3, " 33") == 0);
ASSERT (length == strlen (result));
free (result);
}
static long double zero = 0.0L;
size_t length;
char *result =
- my_asnprintf (NULL, &length, "%015Le %d", zero / zero, 33, 44, 55);
+ my_asnprintf (NULL, &length, "%020Le %d", zero / zero, 33, 44, 55);
ASSERT (result != NULL);
- 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 (length == strlen (result));
free (result);
}
char *result =
my_asnprintf (NULL, &length, "%g %d", NaN (), 33, 44, 55);
ASSERT (result != NULL);
- ASSERT (strcmp (result, "nan 33") == 0);
+ ASSERT (strlen (result) >= 3 + 3
+ && memcmp (result, "nan", 3) == 0
+ && strcmp (result + strlen (result) - 3, " 33") == 0);
ASSERT (length == strlen (result));
free (result);
}
{ /* FLAG_ZERO with NaN. */
size_t length;
char *result =
- my_asnprintf (NULL, &length, "%015g %d", NaN (), 33, 44, 55);
+ my_asnprintf (NULL, &length, "%020g %d", NaN (), 33, 44, 55);
ASSERT (result != NULL);
- 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 (length == strlen (result));
free (result);
}
char *result =
my_asnprintf (NULL, &length, "%Lg %d", zero / zero, 33, 44, 55);
ASSERT (result != NULL);
- ASSERT (strcmp (result, "nan 33") == 0);
+ ASSERT (strlen (result) >= 3 + 3
+ && memcmp (result, "nan", 3) == 0
+ && strcmp (result + strlen (result) - 3, " 33") == 0);
ASSERT (length == strlen (result));
free (result);
}
static long double zero = 0.0L;
size_t length;
char *result =
- my_asnprintf (NULL, &length, "%015Lg %d", zero / zero, 33, 44, 55);
+ my_asnprintf (NULL, &length, "%020Lg %d", zero / zero, 33, 44, 55);
ASSERT (result != NULL);
- 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 (length == strlen (result));
free (result);
}
int retval =
my_asprintf (&result, "%a %d", NaN (), 33, 44, 55);
ASSERT (result != NULL);
- 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));
free (result);
}
{ /* FLAG_ZERO with NaN. */
char *result;
int retval =
- my_asprintf (&result, "%010a %d", NaN (), 33, 44, 55);
+ my_asprintf (&result, "%020a %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 (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));
free (result);
}
int retval =
my_asprintf (&result, "%La %d", 0.0L / 0.0L, 33, 44, 55);
ASSERT (result != NULL);
- 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));
free (result);
}
{ /* FLAG_ZERO with NaN. */
char *result;
int retval =
- my_asprintf (&result, "%010La %d", 0.0L / 0.0L, 33, 44, 55);
+ my_asprintf (&result, "%020La %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 (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));
free (result);
}
int retval =
my_asprintf (&result, "%f %d", NaN (), 33, 44, 55);
ASSERT (result != NULL);
- 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));
free (result);
}
{ /* FLAG_ZERO with NaN. */
char *result;
int retval =
- my_asprintf (&result, "%015f %d", NaN (), 33, 44, 55);
+ my_asprintf (&result, "%020f %d", NaN (), 33, 44, 55);
ASSERT (result != NULL);
- 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));
free (result);
}
int retval =
my_asprintf (&result, "%Lf %d", zero / zero, 33, 44, 55);
ASSERT (result != NULL);
- 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));
free (result);
}
static long double zero = 0.0L;
char *result;
int retval =
- my_asprintf (&result, "%015Lf %d", zero / zero, 33, 44, 55);
+ my_asprintf (&result, "%020Lf %d", zero / zero, 33, 44, 55);
ASSERT (result != NULL);
- 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));
free (result);
}
int retval =
my_asprintf (&result, "%F %d", NaN (), 33, 44, 55);
ASSERT (result != NULL);
- 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));
free (result);
}
int retval =
my_asprintf (&result, "%LF %d", zero / zero, 33, 44, 55);
ASSERT (result != NULL);
- 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));
free (result);
}
int retval =
my_asprintf (&result, "%e %d", NaN (), 33, 44, 55);
ASSERT (result != NULL);
- 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));
free (result);
}
{ /* FLAG_ZERO with NaN. */
char *result;
int retval =
- my_asprintf (&result, "%015e %d", NaN (), 33, 44, 55);
+ my_asprintf (&result, "%020e %d", NaN (), 33, 44, 55);
ASSERT (result != NULL);
- 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));
free (result);
}
int retval =
my_asprintf (&result, "%Le %d", zero / zero, 33, 44, 55);
ASSERT (result != NULL);
- 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));
free (result);
}
static long double zero = 0.0L;
char *result;
int retval =
- my_asprintf (&result, "%015Le %d", zero / zero, 33, 44, 55);
+ my_asprintf (&result, "%020Le %d", zero / zero, 33, 44, 55);
ASSERT (result != NULL);
- 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));
free (result);
}
int retval =
my_asprintf (&result, "%g %d", NaN (), 33, 44, 55);
ASSERT (result != NULL);
- 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));
free (result);
}
{ /* FLAG_ZERO with NaN. */
char *result;
int retval =
- my_asprintf (&result, "%015g %d", NaN (), 33, 44, 55);
+ my_asprintf (&result, "%020g %d", NaN (), 33, 44, 55);
ASSERT (result != NULL);
- 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));
free (result);
}
int retval =
my_asprintf (&result, "%Lg %d", zero / zero, 33, 44, 55);
ASSERT (result != NULL);
- 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));
free (result);
}
static long double zero = 0.0L;
char *result;
int retval =
- my_asprintf (&result, "%015Lg %d", zero / zero, 33, 44, 55);
+ my_asprintf (&result, "%020Lg %d", zero / zero, 33, 44, 55);
ASSERT (result != NULL);
- 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));
free (result);
}