+2023-01-28 Bruno Haible <bruno@clisp.org>
+
+ vasnprintf-posix: Add more unit tests.
+ * tests/test-vasnprintf-posix.c (test_function): Add tests for width
+ given as argument for the directives %a, %f, %e, %g.
+ * tests/test-vasprintf-posix.c (test_function): Likewise.
+ * tests/test-snprintf-posix.h (test_function): Likewise.
+ * tests/test-sprintf-posix.h (test_function): Likewise.
+
2023-01-28 Bruno Haible <bruno@clisp.org>
Avoid clang warnings regarding [[__nodiscard__]].
ASSERT (retval == strlen (result));
}
+ { /* Width given as argument. */
+ int retval =
+ my_snprintf (result, sizeof (result), "%*a %d", 10, 1.75, 33, 44, 55);
+ ASSERT (strcmp (result, " 0x1.cp+0 33") == 0
+ || strcmp (result, " 0x3.8p-1 33") == 0
+ || strcmp (result, " 0x7p-2 33") == 0
+ || strcmp (result, " 0xep-3 33") == 0);
+ ASSERT (retval == strlen (result));
+ }
+
+ { /* Negative width given as argument (cf. FLAG_LEFT below). */
+ int retval =
+ my_snprintf (result, sizeof (result), "%*a %d", -10, 1.75, 33, 44, 55);
+ ASSERT (strcmp (result, "0x1.cp+0 33") == 0
+ || strcmp (result, "0x3.8p-1 33") == 0
+ || strcmp (result, "0x7p-2 33") == 0
+ || strcmp (result, "0xep-3 33") == 0);
+ ASSERT (retval == strlen (result));
+ }
+
{ /* Small precision. */
int retval =
my_snprintf (result, sizeof (result), "%.10a %d", 1.75, 33, 44, 55);
ASSERT (retval == strlen (result));
}
+ { /* Width given as argument. */
+ int retval =
+ my_snprintf (result, sizeof (result), "%*La %d", 10, 1.75L, 33, 44, 55);
+ ASSERT (strcmp (result, " 0x1.cp+0 33") == 0
+ || strcmp (result, " 0x3.8p-1 33") == 0
+ || strcmp (result, " 0x7p-2 33") == 0
+ || strcmp (result, " 0xep-3 33") == 0);
+ ASSERT (retval == strlen (result));
+ }
+
+ { /* Negative width given as argument (cf. FLAG_LEFT below). */
+ int retval =
+ my_snprintf (result, sizeof (result), "%*La %d", -10, 1.75L, 33, 44, 55);
+ ASSERT (strcmp (result, "0x1.cp+0 33") == 0
+ || strcmp (result, "0x3.8p-1 33") == 0
+ || strcmp (result, "0x7p-2 33") == 0
+ || strcmp (result, "0xep-3 33") == 0);
+ ASSERT (retval == strlen (result));
+ }
+
{ /* Small precision. */
int retval =
my_snprintf (result, sizeof (result), "%.10La %d", 1.75L, 33, 44, 55);
ASSERT (retval == strlen (result));
}
+ { /* Width given as argument. */
+ int retval =
+ my_snprintf (result, sizeof (result), "%*f %d", 10, 1.75, 33, 44, 55);
+ ASSERT (strcmp (result, " 1.750000 33") == 0);
+ ASSERT (retval == strlen (result));
+ }
+
+ { /* Negative width given as argument (cf. FLAG_LEFT below). */
+ int retval =
+ my_snprintf (result, sizeof (result), "%*f %d", -10, 1.75, 33, 44, 55);
+ ASSERT (strcmp (result, "1.750000 33") == 0);
+ ASSERT (retval == strlen (result));
+ }
+
{ /* FLAG_LEFT. */
int retval =
my_snprintf (result, sizeof (result), "%-10f %d", 1.75, 33, 44, 55);
ASSERT (retval == strlen (result));
}
+ { /* Width given as argument. */
+ int retval =
+ my_snprintf (result, sizeof (result), "%*Lf %d", 10, 1.75L, 33, 44, 55);
+ ASSERT (strcmp (result, " 1.750000 33") == 0);
+ ASSERT (retval == strlen (result));
+ }
+
+ { /* Negative width given as argument (cf. FLAG_LEFT below). */
+ int retval =
+ my_snprintf (result, sizeof (result), "%*Lf %d", -10, 1.75L, 33, 44, 55);
+ ASSERT (strcmp (result, "1.750000 33") == 0);
+ ASSERT (retval == strlen (result));
+ }
+
{ /* FLAG_LEFT. */
int retval =
my_snprintf (result, sizeof (result), "%-10Lf %d", 1.75L, 33, 44, 55);
ASSERT (retval == strlen (result));
}
+ { /* Width given as argument. */
+ int retval =
+ my_snprintf (result, sizeof (result), "%*e %d", 15, 1.75, 33, 44, 55);
+ ASSERT (strcmp (result, " 1.750000e+00 33") == 0
+ || strcmp (result, " 1.750000e+000 33") == 0);
+ ASSERT (retval == strlen (result));
+ }
+
+ { /* Negative width given as argument (cf. FLAG_LEFT below). */
+ int retval =
+ my_snprintf (result, sizeof (result), "%*e %d", -15, 1.75, 33, 44, 55);
+ ASSERT (strcmp (result, "1.750000e+00 33") == 0
+ || strcmp (result, "1.750000e+000 33") == 0);
+ ASSERT (retval == strlen (result));
+ }
+
{ /* FLAG_LEFT. */
int retval =
my_snprintf (result, sizeof (result), "%-15e %d", 1.75, 33, 44, 55);
ASSERT (retval == strlen (result));
}
+ { /* Width given as argument. */
+ int retval =
+ my_snprintf (result, sizeof (result), "%*Le %d", 15, 1.75L, 33, 44, 55);
+ ASSERT (strcmp (result, " 1.750000e+00 33") == 0
+ || strcmp (result, " 1.750000e+000 33") == 0);
+ ASSERT (retval == strlen (result));
+ }
+
+ { /* Negative width given as argument (cf. FLAG_LEFT below). */
+ int retval =
+ my_snprintf (result, sizeof (result), "%*Le %d", -15, 1.75L, 33, 44, 55);
+ ASSERT (strcmp (result, "1.750000e+00 33") == 0
+ || strcmp (result, "1.750000e+000 33") == 0);
+ ASSERT (retval == strlen (result));
+ }
+
{ /* FLAG_LEFT. */
int retval =
my_snprintf (result, sizeof (result), "%-15Le %d", 1.75L, 33, 44, 55);
ASSERT (retval == strlen (result));
}
+ { /* Width given as argument. */
+ int retval =
+ my_snprintf (result, sizeof (result), "%*g %d", 10, 1.75, 33, 44, 55);
+ ASSERT (strcmp (result, " 1.75 33") == 0);
+ ASSERT (retval == strlen (result));
+ }
+
+ { /* Negative width given as argument (cf. FLAG_LEFT below). */
+ int retval =
+ my_snprintf (result, sizeof (result), "%*g %d", -10, 1.75, 33, 44, 55);
+ ASSERT (strcmp (result, "1.75 33") == 0);
+ ASSERT (retval == strlen (result));
+ }
+
{ /* FLAG_LEFT. */
int retval =
my_snprintf (result, sizeof (result), "%-10g %d", 1.75, 33, 44, 55);
ASSERT (retval == strlen (result));
}
+ { /* Width given as argument. */
+ int retval =
+ my_snprintf (result, sizeof (result), "%*Lg %d", 10, 1.75L, 33, 44, 55);
+ ASSERT (strcmp (result, " 1.75 33") == 0);
+ ASSERT (retval == strlen (result));
+ }
+
+ { /* Negative width given as argument (cf. FLAG_LEFT below). */
+ int retval =
+ my_snprintf (result, sizeof (result), "%*Lg %d", -10, 1.75L, 33, 44, 55);
+ ASSERT (strcmp (result, "1.75 33") == 0);
+ ASSERT (retval == strlen (result));
+ }
+
{ /* FLAG_LEFT. */
int retval =
my_snprintf (result, sizeof (result), "%-10Lg %d", 1.75L, 33, 44, 55);
ASSERT (retval == strlen (result));
}
+ { /* Width given as argument. */
+ int retval =
+ my_sprintf (result, "%*a %d", 10, 1.75, 33, 44, 55);
+ ASSERT (strcmp (result, " 0x1.cp+0 33") == 0
+ || strcmp (result, " 0x3.8p-1 33") == 0
+ || strcmp (result, " 0x7p-2 33") == 0
+ || strcmp (result, " 0xep-3 33") == 0);
+ ASSERT (retval == strlen (result));
+ }
+
+ { /* Negative width given as argument (cf. FLAG_LEFT below). */
+ int retval =
+ my_sprintf (result, "%*a %d", -10, 1.75, 33, 44, 55);
+ ASSERT (strcmp (result, "0x1.cp+0 33") == 0
+ || strcmp (result, "0x3.8p-1 33") == 0
+ || strcmp (result, "0x7p-2 33") == 0
+ || strcmp (result, "0xep-3 33") == 0);
+ ASSERT (retval == strlen (result));
+ }
+
{ /* Small precision. */
int retval =
my_sprintf (result, "%.10a %d", 1.75, 33, 44, 55);
ASSERT (retval == strlen (result));
}
+ { /* Width given as argument. */
+ int retval =
+ my_sprintf (result, "%*La %d", 10, 1.75L, 33, 44, 55);
+ ASSERT (strcmp (result, " 0x1.cp+0 33") == 0
+ || strcmp (result, " 0x3.8p-1 33") == 0
+ || strcmp (result, " 0x7p-2 33") == 0
+ || strcmp (result, " 0xep-3 33") == 0);
+ ASSERT (retval == strlen (result));
+ }
+
+ { /* Negative width given as argument (cf. FLAG_LEFT below). */
+ int retval =
+ my_sprintf (result, "%*La %d", -10, 1.75L, 33, 44, 55);
+ ASSERT (strcmp (result, "0x1.cp+0 33") == 0
+ || strcmp (result, "0x3.8p-1 33") == 0
+ || strcmp (result, "0x7p-2 33") == 0
+ || strcmp (result, "0xep-3 33") == 0);
+ ASSERT (retval == strlen (result));
+ }
+
{ /* Small precision. */
int retval =
my_sprintf (result, "%.10La %d", 1.75L, 33, 44, 55);
ASSERT (retval == strlen (result));
}
+ { /* Width given as argument. */
+ int retval =
+ my_sprintf (result, "%*f %d", 10, 1.75, 33, 44, 55);
+ ASSERT (strcmp (result, " 1.750000 33") == 0);
+ ASSERT (retval == strlen (result));
+ }
+
+ { /* Negative width given as argument (cf. FLAG_LEFT below). */
+ int retval =
+ my_sprintf (result, "%*f %d", -10, 1.75, 33, 44, 55);
+ ASSERT (strcmp (result, "1.750000 33") == 0);
+ ASSERT (retval == strlen (result));
+ }
+
{ /* FLAG_LEFT. */
int retval =
my_sprintf (result, "%-10f %d", 1.75, 33, 44, 55);
ASSERT (retval == strlen (result));
}
+ { /* Width given as argument. */
+ int retval =
+ my_sprintf (result, "%*Lf %d", 10, 1.75L, 33, 44, 55);
+ ASSERT (strcmp (result, " 1.750000 33") == 0);
+ ASSERT (retval == strlen (result));
+ }
+
+ { /* Negative width given as argument (cf. FLAG_LEFT below). */
+ int retval =
+ my_sprintf (result, "%*Lf %d", -10, 1.75L, 33, 44, 55);
+ ASSERT (strcmp (result, "1.750000 33") == 0);
+ ASSERT (retval == strlen (result));
+ }
+
{ /* FLAG_LEFT. */
int retval =
my_sprintf (result, "%-10Lf %d", 1.75L, 33, 44, 55);
ASSERT (retval == strlen (result));
}
+ { /* Width given as argument. */
+ int retval =
+ my_sprintf (result, "%*e %d", 15, 1.75, 33, 44, 55);
+ ASSERT (strcmp (result, " 1.750000e+00 33") == 0
+ || strcmp (result, " 1.750000e+000 33") == 0);
+ ASSERT (retval == strlen (result));
+ }
+
+ { /* Negative width given as argument (cf. FLAG_LEFT below). */
+ int retval =
+ my_sprintf (result, "%*e %d", -15, 1.75, 33, 44, 55);
+ ASSERT (strcmp (result, "1.750000e+00 33") == 0
+ || strcmp (result, "1.750000e+000 33") == 0);
+ ASSERT (retval == strlen (result));
+ }
+
{ /* FLAG_LEFT. */
int retval =
my_sprintf (result, "%-15e %d", 1.75, 33, 44, 55);
ASSERT (retval == strlen (result));
}
+ { /* Width given as argument. */
+ int retval =
+ my_sprintf (result, "%*Le %d", 15, 1.75L, 33, 44, 55);
+ ASSERT (strcmp (result, " 1.750000e+00 33") == 0
+ || strcmp (result, " 1.750000e+000 33") == 0);
+ ASSERT (retval == strlen (result));
+ }
+
+ { /* Negative width given as argument (cf. FLAG_LEFT below). */
+ int retval =
+ my_sprintf (result, "%*Le %d", -15, 1.75L, 33, 44, 55);
+ ASSERT (strcmp (result, "1.750000e+00 33") == 0
+ || strcmp (result, "1.750000e+000 33") == 0);
+ ASSERT (retval == strlen (result));
+ }
+
{ /* FLAG_LEFT. */
int retval =
my_sprintf (result, "%-15Le %d", 1.75L, 33, 44, 55);
ASSERT (retval == strlen (result));
}
+ { /* Width given as argument. */
+ int retval =
+ my_sprintf (result, "%*g %d", 10, 1.75, 33, 44, 55);
+ ASSERT (strcmp (result, " 1.75 33") == 0);
+ ASSERT (retval == strlen (result));
+ }
+
+ { /* Negative width given as argument (cf. FLAG_LEFT below). */
+ int retval =
+ my_sprintf (result, "%*g %d", -10, 1.75, 33, 44, 55);
+ ASSERT (strcmp (result, "1.75 33") == 0);
+ ASSERT (retval == strlen (result));
+ }
+
{ /* FLAG_LEFT. */
int retval =
my_sprintf (result, "%-10g %d", 1.75, 33, 44, 55);
ASSERT (retval == strlen (result));
}
+ { /* Width given as argument. */
+ int retval =
+ my_sprintf (result, "%*Lg %d", 10, 1.75L, 33, 44, 55);
+ ASSERT (strcmp (result, " 1.75 33") == 0);
+ ASSERT (retval == strlen (result));
+ }
+
+ { /* Negative width given as argument (cf. FLAG_LEFT below). */
+ int retval =
+ my_sprintf (result, "%*Lg %d", -10, 1.75L, 33, 44, 55);
+ ASSERT (strcmp (result, "1.75 33") == 0);
+ ASSERT (retval == strlen (result));
+ }
+
{ /* FLAG_LEFT. */
int retval =
my_sprintf (result, "%-10Lg %d", 1.75L, 33, 44, 55);
free (result);
}
+ { /* Width given as argument. */
+ size_t length;
+ char *result =
+ my_asnprintf (NULL, &length, "%*a %d", 10, 1.75, 33, 44, 55);
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, " 0x1.cp+0 33") == 0
+ || strcmp (result, " 0x3.8p-1 33") == 0
+ || strcmp (result, " 0x7p-2 33") == 0
+ || strcmp (result, " 0xep-3 33") == 0);
+ ASSERT (length == strlen (result));
+ free (result);
+ }
+
+ { /* Negative width given as argument (cf. FLAG_LEFT below). */
+ size_t length;
+ char *result =
+ my_asnprintf (NULL, &length, "%*a %d", -10, 1.75, 33, 44, 55);
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, "0x1.cp+0 33") == 0
+ || strcmp (result, "0x3.8p-1 33") == 0
+ || strcmp (result, "0x7p-2 33") == 0
+ || strcmp (result, "0xep-3 33") == 0);
+ ASSERT (length == strlen (result));
+ free (result);
+ }
+
{ /* Small precision. */
size_t length;
char *result =
free (result);
}
+ { /* Width given as argument. */
+ size_t length;
+ char *result =
+ my_asnprintf (NULL, &length, "%*La %d", 10, 1.75L, 33, 44, 55);
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, " 0x1.cp+0 33") == 0
+ || strcmp (result, " 0x3.8p-1 33") == 0
+ || strcmp (result, " 0x7p-2 33") == 0
+ || strcmp (result, " 0xep-3 33") == 0);
+ ASSERT (length == strlen (result));
+ free (result);
+ }
+
+ { /* Negative width given as argument (cf. FLAG_LEFT below). */
+ size_t length;
+ char *result =
+ my_asnprintf (NULL, &length, "%*La %d", -10, 1.75L, 33, 44, 55);
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, "0x1.cp+0 33") == 0
+ || strcmp (result, "0x3.8p-1 33") == 0
+ || strcmp (result, "0x7p-2 33") == 0
+ || strcmp (result, "0xep-3 33") == 0);
+ ASSERT (length == strlen (result));
+ free (result);
+ }
+
{ /* Small precision. */
size_t length;
char *result =
free (result);
}
+ { /* Width given as argument. */
+ size_t length;
+ char *result =
+ my_asnprintf (NULL, &length, "%*f %d", 10, 1.75, 33, 44, 55);
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, " 1.750000 33") == 0);
+ ASSERT (length == strlen (result));
+ free (result);
+ }
+
+ { /* Negative width given as argument (cf. FLAG_LEFT below). */
+ size_t length;
+ char *result =
+ my_asnprintf (NULL, &length, "%*f %d", -10, 1.75, 33, 44, 55);
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, "1.750000 33") == 0);
+ ASSERT (length == strlen (result));
+ free (result);
+ }
+
{ /* FLAG_LEFT. */
size_t length;
char *result =
free (result);
}
+ { /* Width given as argument. */
+ size_t length;
+ char *result =
+ my_asnprintf (NULL, &length, "%*Lf %d", 10, 1.75L, 33, 44, 55);
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, " 1.750000 33") == 0);
+ ASSERT (length == strlen (result));
+ free (result);
+ }
+
+ { /* Negative width given as argument (cf. FLAG_LEFT below). */
+ size_t length;
+ char *result =
+ my_asnprintf (NULL, &length, "%*Lf %d", -10, 1.75L, 33, 44, 55);
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, "1.750000 33") == 0);
+ ASSERT (length == strlen (result));
+ free (result);
+ }
+
{ /* FLAG_LEFT. */
size_t length;
char *result =
free (result);
}
+ { /* Width given as argument. */
+ size_t length;
+ char *result =
+ my_asnprintf (NULL, &length, "%*e %d", 15, 1.75, 33, 44, 55);
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, " 1.750000e+00 33") == 0
+ || strcmp (result, " 1.750000e+000 33") == 0);
+ ASSERT (length == strlen (result));
+ free (result);
+ }
+
+ { /* Negative width given as argument (cf. FLAG_LEFT below). */
+ size_t length;
+ char *result =
+ my_asnprintf (NULL, &length, "%*e %d", -15, 1.75, 33, 44, 55);
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, "1.750000e+00 33") == 0
+ || strcmp (result, "1.750000e+000 33") == 0);
+ ASSERT (length == strlen (result));
+ free (result);
+ }
+
{ /* FLAG_LEFT. */
size_t length;
char *result =
free (result);
}
+ { /* Width given as argument. */
+ size_t length;
+ char *result =
+ my_asnprintf (NULL, &length, "%*Le %d", 15, 1.75L, 33, 44, 55);
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, " 1.750000e+00 33") == 0
+ || strcmp (result, " 1.750000e+000 33") == 0);
+ ASSERT (length == strlen (result));
+ free (result);
+ }
+
+ { /* Negative width given as argument (cf. FLAG_LEFT below). */
+ size_t length;
+ char *result =
+ my_asnprintf (NULL, &length, "%*Le %d", -15, 1.75L, 33, 44, 55);
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, "1.750000e+00 33") == 0
+ || strcmp (result, "1.750000e+000 33") == 0);
+ ASSERT (length == strlen (result));
+ free (result);
+ }
+
{ /* FLAG_LEFT. */
size_t length;
char *result =
free (result);
}
+ { /* Width given as argument. */
+ size_t length;
+ char *result =
+ my_asnprintf (NULL, &length, "%*g %d", 10, 1.75, 33, 44, 55);
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, " 1.75 33") == 0);
+ ASSERT (length == strlen (result));
+ free (result);
+ }
+
+ { /* Negative width given as argument (cf. FLAG_LEFT below). */
+ size_t length;
+ char *result =
+ my_asnprintf (NULL, &length, "%*g %d", -10, 1.75, 33, 44, 55);
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, "1.75 33") == 0);
+ ASSERT (length == strlen (result));
+ free (result);
+ }
+
{ /* FLAG_LEFT. */
size_t length;
char *result =
free (result);
}
+ { /* Width given as argument. */
+ size_t length;
+ char *result =
+ my_asnprintf (NULL, &length, "%*Lg %d", 10, 1.75L, 33, 44, 55);
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, " 1.75 33") == 0);
+ ASSERT (length == strlen (result));
+ free (result);
+ }
+
+ { /* Negative width given as argument (cf. FLAG_LEFT below). */
+ size_t length;
+ char *result =
+ my_asnprintf (NULL, &length, "%*Lg %d", -10, 1.75L, 33, 44, 55);
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, "1.75 33") == 0);
+ ASSERT (length == strlen (result));
+ free (result);
+ }
+
{ /* FLAG_LEFT. */
size_t length;
char *result =
free (result);
}
+ { /* Width given as argument. */
+ char *result;
+ int retval =
+ my_asprintf (&result, "%*a %d", 10, 1.75, 33, 44, 55);
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, " 0x1.cp+0 33") == 0
+ || strcmp (result, " 0x3.8p-1 33") == 0
+ || strcmp (result, " 0x7p-2 33") == 0
+ || strcmp (result, " 0xep-3 33") == 0);
+ ASSERT (retval == strlen (result));
+ free (result);
+ }
+
+ { /* Negative width given as argument (cf. FLAG_LEFT below). */
+ char *result;
+ int retval =
+ my_asprintf (&result, "%*a %d", -10, 1.75, 33, 44, 55);
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, "0x1.cp+0 33") == 0
+ || strcmp (result, "0x3.8p-1 33") == 0
+ || strcmp (result, "0x7p-2 33") == 0
+ || strcmp (result, "0xep-3 33") == 0);
+ ASSERT (retval == strlen (result));
+ free (result);
+ }
+
{ /* Small precision. */
char *result;
int retval =
free (result);
}
+ { /* Width given as argument. */
+ char *result;
+ int retval =
+ my_asprintf (&result, "%*La %d", 10, 1.75L, 33, 44, 55);
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, " 0x1.cp+0 33") == 0
+ || strcmp (result, " 0x3.8p-1 33") == 0
+ || strcmp (result, " 0x7p-2 33") == 0
+ || strcmp (result, " 0xep-3 33") == 0);
+ ASSERT (retval == strlen (result));
+ free (result);
+ }
+
+ { /* Negative width given as argument (cf. FLAG_LEFT below). */
+ char *result;
+ int retval =
+ my_asprintf (&result, "%*La %d", -10, 1.75L, 33, 44, 55);
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, "0x1.cp+0 33") == 0
+ || strcmp (result, "0x3.8p-1 33") == 0
+ || strcmp (result, "0x7p-2 33") == 0
+ || strcmp (result, "0xep-3 33") == 0);
+ ASSERT (retval == strlen (result));
+ free (result);
+ }
+
{ /* Small precision. */
char *result;
int retval =
free (result);
}
+ { /* Width given as argument. */
+ char *result;
+ int retval =
+ my_asprintf (&result, "%*f %d", 10, 1.75, 33, 44, 55);
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, " 1.750000 33") == 0);
+ ASSERT (retval == strlen (result));
+ free (result);
+ }
+
+ { /* Negative width given as argument (cf. FLAG_LEFT below). */
+ char *result;
+ int retval =
+ my_asprintf (&result, "%*f %d", -10, 1.75, 33, 44, 55);
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, "1.750000 33") == 0);
+ ASSERT (retval == strlen (result));
+ free (result);
+ }
+
{ /* FLAG_LEFT. */
char *result;
int retval =
free (result);
}
+ { /* Width given as argument. */
+ char *result;
+ int retval =
+ my_asprintf (&result, "%*Lf %d", 10, 1.75L, 33, 44, 55);
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, " 1.750000 33") == 0);
+ ASSERT (retval == strlen (result));
+ free (result);
+ }
+
+ { /* Negative width given as argument (cf. FLAG_LEFT below). */
+ char *result;
+ int retval =
+ my_asprintf (&result, "%*Lf %d", -10, 1.75L, 33, 44, 55);
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, "1.750000 33") == 0);
+ ASSERT (retval == strlen (result));
+ free (result);
+ }
+
{ /* FLAG_LEFT. */
char *result;
int retval =
free (result);
}
+ { /* Width given as argument. */
+ char *result;
+ int retval =
+ my_asprintf (&result, "%*e %d", 15, 1.75, 33, 44, 55);
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, " 1.750000e+00 33") == 0
+ || strcmp (result, " 1.750000e+000 33") == 0);
+ ASSERT (retval == strlen (result));
+ free (result);
+ }
+
+ { /* Negative width given as argument (cf. FLAG_LEFT below). */
+ char *result;
+ int retval =
+ my_asprintf (&result, "%*e %d", -15, 1.75, 33, 44, 55);
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, "1.750000e+00 33") == 0
+ || strcmp (result, "1.750000e+000 33") == 0);
+ ASSERT (retval == strlen (result));
+ free (result);
+ }
+
{ /* FLAG_LEFT. */
char *result;
int retval =
free (result);
}
+ { /* Width given as argument. */
+ char *result;
+ int retval =
+ my_asprintf (&result, "%*Le %d", 15, 1.75L, 33, 44, 55);
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, " 1.750000e+00 33") == 0
+ || strcmp (result, " 1.750000e+000 33") == 0);
+ ASSERT (retval == strlen (result));
+ free (result);
+ }
+
+ { /* Negative width given as argument (cf. FLAG_LEFT below). */
+ char *result;
+ int retval =
+ my_asprintf (&result, "%*Le %d", -15, 1.75L, 33, 44, 55);
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, "1.750000e+00 33") == 0
+ || strcmp (result, "1.750000e+000 33") == 0);
+ ASSERT (retval == strlen (result));
+ free (result);
+ }
+
{ /* FLAG_LEFT. */
char *result;
int retval =
free (result);
}
+ { /* Width given as argument. */
+ char *result;
+ int retval =
+ my_asprintf (&result, "%*g %d", 10, 1.75, 33, 44, 55);
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, " 1.75 33") == 0);
+ ASSERT (retval == strlen (result));
+ free (result);
+ }
+
+ { /* Negative width given as argument (cf. FLAG_LEFT below). */
+ char *result;
+ int retval =
+ my_asprintf (&result, "%*g %d", -10, 1.75, 33, 44, 55);
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, "1.75 33") == 0);
+ ASSERT (retval == strlen (result));
+ free (result);
+ }
+
{ /* FLAG_LEFT. */
char *result;
int retval =
free (result);
}
+ { /* Width given as argument. */
+ char *result;
+ int retval =
+ my_asprintf (&result, "%*Lg %d", 10, 1.75L, 33, 44, 55);
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, " 1.75 33") == 0);
+ ASSERT (retval == strlen (result));
+ free (result);
+ }
+
+ { /* Negative width given as argument (cf. FLAG_LEFT below). */
+ char *result;
+ int retval =
+ my_asprintf (&result, "%*Lg %d", -10, 1.75L, 33, 44, 55);
+ ASSERT (result != NULL);
+ ASSERT (strcmp (result, "1.75 33") == 0);
+ ASSERT (retval == strlen (result));
+ free (result);
+ }
+
{ /* FLAG_LEFT. */
char *result;
int retval =