@@ -30,12 +30,13 @@ do_test_call_varg (FILE *stream, const char *format, ...)
char *buffer = NULL;
char string[128];
va_list args;
+ int ret;
printf ("%15s", "vasprintf: ");
va_start (args, format);
- vasprintf (&buffer, format, args);
+ ret = vasprintf (&buffer, format, args);
va_end (args);
- if (buffer == NULL)
+ if (ret == -1 || buffer == NULL)
printf ("Error using vasprintf\n");
else
{
@@ -82,10 +83,11 @@ do_test_call_rarg (FILE *stream, const char *format, long double ld, double d)
{
char *buffer = NULL;
char string[128];
+ int ret;
printf ("%15s", "asprintf: ");
- asprintf (&buffer, format, ld, d);
- if (buffer == NULL)
+ ret = asprintf (&buffer, format, ld, d);
+ if (ret == -1 || buffer == NULL)
printf ("Error using asprintf\n");
else
{
@@ -37,10 +37,10 @@
ldptr = va_arg (args, long double *); \
fptr = va_arg (args, float *); \
va_end (args); \
- if (*ldptr == -1 && *fptr == -2) \
+ if (*ldptr == -1 && *fptr == -2 && ret == 2) \
printf ("OK"); \
else \
- printf ("ERROR (%Lf %f)", *ldptr, *fptr); \
+ printf ("ERROR (%Lf %f %d)", *ldptr, *fptr, ret); \
printf ("\n");
#define CLEAR_VALUE \
@@ -48,10 +48,10 @@
f = 0;
#define CHECK_VALUE \
- if (ld == -1 && f == -2) \
+ if (ld == -1 && f == -2 && ret == 2) \
printf ("OK"); \
else \
- printf ("ERROR (%Lf %f)", ld, f); \
+ printf ("ERROR (%Lf %f %d)", ld, f, ret); \
printf ("\n");
static void
@@ -62,40 +62,41 @@ do_test_call (FILE *stream, CHAR *string, const CHAR *format, ...)
float *fptr;
long double *ldptr;
va_list args;
+ int ret;
CLEAR_VALUE
printf ("fscanf: ");
- FSCANF (stream, format, &ld, &f);
+ ret = FSCANF (stream, format, &ld, &f);
CHECK_VALUE
CLEAR_VALUE
printf ("scanf: ");
- SCANF (format, &ld, &f);
+ ret = SCANF (format, &ld, &f);
CHECK_VALUE
CLEAR_VALUE
printf ("sscanf: ");
- SSCANF (string, format, &ld, &f);
+ ret = SSCANF (string, format, &ld, &f);
CHECK_VALUE
CLEAR_VARGS
printf ("vfscanf: ");
va_start (args, format);
- VFSCANF (stream, format, args);
+ ret = VFSCANF (stream, format, args);
va_end (args);
CHECK_VARGS
CLEAR_VARGS
printf ("vscanf: ");
va_start (args, format);
- VSCANF (format, args);
+ ret = VSCANF (format, args);
va_end (args);
CHECK_VARGS
CLEAR_VARGS
printf ("vsscanf: ");
va_start (args, format);
- VSSCANF (string, format, args);
+ ret = VSSCANF (string, format, args);
va_end (args);
CHECK_VARGS
}
Return value from *scanf and *asprintf routines are now properly checked in test-scanf-ldbl-compat-template.c and test-printf-ldbl-compat.c. Reviewed-by: Siddhesh Poyarekar <siddhesh@sourceware.org> --- .../test-printf-ldbl-compat.c | 10 +++++---- .../test-scanf-ldbl-compat-template.c | 21 ++++++++++--------- 2 files changed, 17 insertions(+), 14 deletions(-)