summaryrefslogtreecommitdiff
path: root/gnulib-tests/test-vasprintf-posix.c
diff options
context:
space:
mode:
Diffstat (limited to 'gnulib-tests/test-vasprintf-posix.c')
-rw-r--r--gnulib-tests/test-vasprintf-posix.c116
1 files changed, 26 insertions, 90 deletions
diff --git a/gnulib-tests/test-vasprintf-posix.c b/gnulib-tests/test-vasprintf-posix.c
index 6a28cffb..585d3a3f 100644
--- a/gnulib-tests/test-vasprintf-posix.c
+++ b/gnulib-tests/test-vasprintf-posix.c
@@ -1,5 +1,5 @@
/* Test of POSIX compatible vasprintf() and asprintf() functions.
- Copyright (C) 2007-2014 Free Software Foundation, Inc.
+ Copyright (C) 2007-2015 Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -46,7 +46,7 @@ have_minus_zero ()
#ifdef WORDS_BIGENDIAN
# define LDBL80_WORDS(exponent,manthi,mantlo) \
{ ((unsigned int) (exponent) << 16) | ((unsigned int) (manthi) >> 16), \
- ((unsigned int) (manthi) << 16) | (unsigned int) (mantlo) >> 16), \
+ ((unsigned int) (manthi) << 16) | ((unsigned int) (mantlo) >> 16), \
(unsigned int) (mantlo) << 16 \
}
#else
@@ -570,13 +570,7 @@ test_function (int (*my_asprintf) (char **, const char *, ...))
ASSERT (retval == strlen (result));
free (result);
}
- /* The isnanl function should recognize Pseudo-NaNs, Pseudo-Infinities,
- Pseudo-Zeroes, Unnormalized Numbers, and Pseudo-Denormals, as defined in
- Intel IA-64 Architecture Software Developer's Manual, Volume 1:
- Application Architecture.
- Table 5-2 "Floating-Point Register Encodings"
- Figure 5-6 "Memory to Floating-Point Register Data Translation"
- */
+ /* asprintf should print something for noncanonical values. */
{ /* Pseudo-NaN. */
static union { unsigned int word[4]; long double value; } x =
{ LDBL80_WORDS (0xFFFF, 0x40000001, 0x00000000) };
@@ -584,10 +578,8 @@ test_function (int (*my_asprintf) (char **, const char *, ...))
int retval =
my_asprintf (&result, "%La %d", x.value, 33, 44, 55);
ASSERT (result != NULL);
- ASSERT (strlen (result) >= 3 + 3
- && strisnan (result, 0, strlen (result) - 3, 0)
- && strcmp (result + strlen (result) - 3, " 33") == 0);
ASSERT (retval == strlen (result));
+ ASSERT (3 < retval && strcmp (result + retval - 3, " 33") == 0);
free (result);
}
{ /* Pseudo-Infinity. */
@@ -597,10 +589,8 @@ test_function (int (*my_asprintf) (char **, const char *, ...))
int retval =
my_asprintf (&result, "%La %d", x.value, 33, 44, 55);
ASSERT (result != NULL);
- ASSERT (strlen (result) >= 3 + 3
- && strisnan (result, 0, strlen (result) - 3, 0)
- && strcmp (result + strlen (result) - 3, " 33") == 0);
ASSERT (retval == strlen (result));
+ ASSERT (3 < retval && strcmp (result + retval - 3, " 33") == 0);
free (result);
}
{ /* Pseudo-Zero. */
@@ -610,10 +600,8 @@ test_function (int (*my_asprintf) (char **, const char *, ...))
int retval =
my_asprintf (&result, "%La %d", x.value, 33, 44, 55);
ASSERT (result != NULL);
- ASSERT (strlen (result) >= 3 + 3
- && strisnan (result, 0, strlen (result) - 3, 0)
- && strcmp (result + strlen (result) - 3, " 33") == 0);
ASSERT (retval == strlen (result));
+ ASSERT (3 < retval && strcmp (result + retval - 3, " 33") == 0);
free (result);
}
{ /* Unnormalized number. */
@@ -623,10 +611,8 @@ test_function (int (*my_asprintf) (char **, const char *, ...))
int retval =
my_asprintf (&result, "%La %d", x.value, 33, 44, 55);
ASSERT (result != NULL);
- ASSERT (strlen (result) >= 3 + 3
- && strisnan (result, 0, strlen (result) - 3, 0)
- && strcmp (result + strlen (result) - 3, " 33") == 0);
ASSERT (retval == strlen (result));
+ ASSERT (3 < retval && strcmp (result + retval - 3, " 33") == 0);
free (result);
}
{ /* Pseudo-Denormal. */
@@ -636,10 +622,8 @@ test_function (int (*my_asprintf) (char **, const char *, ...))
int retval =
my_asprintf (&result, "%La %d", x.value, 33, 44, 55);
ASSERT (result != NULL);
- ASSERT (strlen (result) >= 3 + 3
- && strisnan (result, 0, strlen (result) - 3, 0)
- && strcmp (result + strlen (result) - 3, " 33") == 0);
ASSERT (retval == strlen (result));
+ ASSERT (3 < retval && strcmp (result + retval - 3, " 33") == 0);
free (result);
}
#endif
@@ -1384,13 +1368,7 @@ test_function (int (*my_asprintf) (char **, const char *, ...))
ASSERT (retval == strlen (result));
free (result);
}
- /* The isnanl function should recognize Pseudo-NaNs, Pseudo-Infinities,
- Pseudo-Zeroes, Unnormalized Numbers, and Pseudo-Denormals, as defined in
- Intel IA-64 Architecture Software Developer's Manual, Volume 1:
- Application Architecture.
- Table 5-2 "Floating-Point Register Encodings"
- Figure 5-6 "Memory to Floating-Point Register Data Translation"
- */
+ /* asprintf should print something for noncanonical values. */
{ /* Pseudo-NaN. */
static union { unsigned int word[4]; long double value; } x =
{ LDBL80_WORDS (0xFFFF, 0x40000001, 0x00000000) };
@@ -1398,10 +1376,8 @@ test_function (int (*my_asprintf) (char **, const char *, ...))
int retval =
my_asprintf (&result, "%Lf %d", x.value, 33, 44, 55);
ASSERT (result != NULL);
- ASSERT (strlen (result) >= 3 + 3
- && strisnan (result, 0, strlen (result) - 3, 0)
- && strcmp (result + strlen (result) - 3, " 33") == 0);
ASSERT (retval == strlen (result));
+ ASSERT (3 < retval && strcmp (result + retval - 3, " 33") == 0);
free (result);
}
{ /* Pseudo-Infinity. */
@@ -1411,10 +1387,8 @@ test_function (int (*my_asprintf) (char **, const char *, ...))
int retval =
my_asprintf (&result, "%Lf %d", x.value, 33, 44, 55);
ASSERT (result != NULL);
- ASSERT (strlen (result) >= 3 + 3
- && strisnan (result, 0, strlen (result) - 3, 0)
- && strcmp (result + strlen (result) - 3, " 33") == 0);
ASSERT (retval == strlen (result));
+ ASSERT (3 < retval && strcmp (result + retval - 3, " 33") == 0);
free (result);
}
{ /* Pseudo-Zero. */
@@ -1424,10 +1398,8 @@ test_function (int (*my_asprintf) (char **, const char *, ...))
int retval =
my_asprintf (&result, "%Lf %d", x.value, 33, 44, 55);
ASSERT (result != NULL);
- ASSERT (strlen (result) >= 3 + 3
- && strisnan (result, 0, strlen (result) - 3, 0)
- && strcmp (result + strlen (result) - 3, " 33") == 0);
ASSERT (retval == strlen (result));
+ ASSERT (3 < retval && strcmp (result + retval - 3, " 33") == 0);
free (result);
}
{ /* Unnormalized number. */
@@ -1437,10 +1409,8 @@ test_function (int (*my_asprintf) (char **, const char *, ...))
int retval =
my_asprintf (&result, "%Lf %d", x.value, 33, 44, 55);
ASSERT (result != NULL);
- ASSERT (strlen (result) >= 3 + 3
- && strisnan (result, 0, strlen (result) - 3, 0)
- && strcmp (result + strlen (result) - 3, " 33") == 0);
ASSERT (retval == strlen (result));
+ ASSERT (3 < retval && strcmp (result + retval - 3, " 33") == 0);
free (result);
}
{ /* Pseudo-Denormal. */
@@ -1450,10 +1420,8 @@ test_function (int (*my_asprintf) (char **, const char *, ...))
int retval =
my_asprintf (&result, "%Lf %d", x.value, 33, 44, 55);
ASSERT (result != NULL);
- ASSERT (strlen (result) >= 3 + 3
- && strisnan (result, 0, strlen (result) - 3, 0)
- && strcmp (result + strlen (result) - 3, " 33") == 0);
ASSERT (retval == strlen (result));
+ ASSERT (3 < retval && strcmp (result + retval - 3, " 33") == 0);
free (result);
}
#endif
@@ -2406,13 +2374,7 @@ test_function (int (*my_asprintf) (char **, const char *, ...))
ASSERT (retval == strlen (result));
free (result);
}
- /* The isnanl function should recognize Pseudo-NaNs, Pseudo-Infinities,
- Pseudo-Zeroes, Unnormalized Numbers, and Pseudo-Denormals, as defined in
- Intel IA-64 Architecture Software Developer's Manual, Volume 1:
- Application Architecture.
- Table 5-2 "Floating-Point Register Encodings"
- Figure 5-6 "Memory to Floating-Point Register Data Translation"
- */
+ /* asprintf should print something for noncanonical values. */
{ /* Pseudo-NaN. */
static union { unsigned int word[4]; long double value; } x =
{ LDBL80_WORDS (0xFFFF, 0x40000001, 0x00000000) };
@@ -2420,10 +2382,8 @@ test_function (int (*my_asprintf) (char **, const char *, ...))
int retval =
my_asprintf (&result, "%Le %d", x.value, 33, 44, 55);
ASSERT (result != NULL);
- ASSERT (strlen (result) >= 3 + 3
- && strisnan (result, 0, strlen (result) - 3, 0)
- && strcmp (result + strlen (result) - 3, " 33") == 0);
ASSERT (retval == strlen (result));
+ ASSERT (3 < retval && strcmp (result + retval - 3, " 33") == 0);
free (result);
}
{ /* Pseudo-Infinity. */
@@ -2433,10 +2393,8 @@ test_function (int (*my_asprintf) (char **, const char *, ...))
int retval =
my_asprintf (&result, "%Le %d", x.value, 33, 44, 55);
ASSERT (result != NULL);
- ASSERT (strlen (result) >= 3 + 3
- && strisnan (result, 0, strlen (result) - 3, 0)
- && strcmp (result + strlen (result) - 3, " 33") == 0);
ASSERT (retval == strlen (result));
+ ASSERT (3 < retval && strcmp (result + retval - 3, " 33") == 0);
free (result);
}
{ /* Pseudo-Zero. */
@@ -2446,10 +2404,8 @@ test_function (int (*my_asprintf) (char **, const char *, ...))
int retval =
my_asprintf (&result, "%Le %d", x.value, 33, 44, 55);
ASSERT (result != NULL);
- ASSERT (strlen (result) >= 3 + 3
- && strisnan (result, 0, strlen (result) - 3, 0)
- && strcmp (result + strlen (result) - 3, " 33") == 0);
ASSERT (retval == strlen (result));
+ ASSERT (3 < retval && strcmp (result + retval - 3, " 33") == 0);
free (result);
}
{ /* Unnormalized number. */
@@ -2459,10 +2415,8 @@ test_function (int (*my_asprintf) (char **, const char *, ...))
int retval =
my_asprintf (&result, "%Le %d", x.value, 33, 44, 55);
ASSERT (result != NULL);
- ASSERT (strlen (result) >= 3 + 3
- && strisnan (result, 0, strlen (result) - 3, 0)
- && strcmp (result + strlen (result) - 3, " 33") == 0);
ASSERT (retval == strlen (result));
+ ASSERT (3 < retval && strcmp (result + retval - 3, " 33") == 0);
free (result);
}
{ /* Pseudo-Denormal. */
@@ -2472,10 +2426,8 @@ test_function (int (*my_asprintf) (char **, const char *, ...))
int retval =
my_asprintf (&result, "%Le %d", x.value, 33, 44, 55);
ASSERT (result != NULL);
- ASSERT (strlen (result) >= 3 + 3
- && strisnan (result, 0, strlen (result) - 3, 0)
- && strcmp (result + strlen (result) - 3, " 33") == 0);
ASSERT (retval == strlen (result));
+ ASSERT (3 < retval && strcmp (result + retval - 3, " 33") == 0);
free (result);
}
#endif
@@ -3160,13 +3112,7 @@ test_function (int (*my_asprintf) (char **, const char *, ...))
ASSERT (retval == strlen (result));
free (result);
}
- /* The isnanl function should recognize Pseudo-NaNs, Pseudo-Infinities,
- Pseudo-Zeroes, Unnormalized Numbers, and Pseudo-Denormals, as defined in
- Intel IA-64 Architecture Software Developer's Manual, Volume 1:
- Application Architecture.
- Table 5-2 "Floating-Point Register Encodings"
- Figure 5-6 "Memory to Floating-Point Register Data Translation"
- */
+ /* asprintf should print something for noncanonical values. */
{ /* Pseudo-NaN. */
static union { unsigned int word[4]; long double value; } x =
{ LDBL80_WORDS (0xFFFF, 0x40000001, 0x00000000) };
@@ -3174,10 +3120,8 @@ test_function (int (*my_asprintf) (char **, const char *, ...))
int retval =
my_asprintf (&result, "%Lg %d", x.value, 33, 44, 55);
ASSERT (result != NULL);
- ASSERT (strlen (result) >= 3 + 3
- && strisnan (result, 0, strlen (result) - 3, 0)
- && strcmp (result + strlen (result) - 3, " 33") == 0);
ASSERT (retval == strlen (result));
+ ASSERT (3 < retval && strcmp (result + retval - 3, " 33") == 0);
free (result);
}
{ /* Pseudo-Infinity. */
@@ -3187,10 +3131,8 @@ test_function (int (*my_asprintf) (char **, const char *, ...))
int retval =
my_asprintf (&result, "%Lg %d", x.value, 33, 44, 55);
ASSERT (result != NULL);
- ASSERT (strlen (result) >= 3 + 3
- && strisnan (result, 0, strlen (result) - 3, 0)
- && strcmp (result + strlen (result) - 3, " 33") == 0);
ASSERT (retval == strlen (result));
+ ASSERT (3 < retval && strcmp (result + retval - 3, " 33") == 0);
free (result);
}
{ /* Pseudo-Zero. */
@@ -3200,10 +3142,8 @@ test_function (int (*my_asprintf) (char **, const char *, ...))
int retval =
my_asprintf (&result, "%Lg %d", x.value, 33, 44, 55);
ASSERT (result != NULL);
- ASSERT (strlen (result) >= 3 + 3
- && strisnan (result, 0, strlen (result) - 3, 0)
- && strcmp (result + strlen (result) - 3, " 33") == 0);
ASSERT (retval == strlen (result));
+ ASSERT (3 < retval && strcmp (result + retval - 3, " 33") == 0);
free (result);
}
{ /* Unnormalized number. */
@@ -3213,10 +3153,8 @@ test_function (int (*my_asprintf) (char **, const char *, ...))
int retval =
my_asprintf (&result, "%Lg %d", x.value, 33, 44, 55);
ASSERT (result != NULL);
- ASSERT (strlen (result) >= 3 + 3
- && strisnan (result, 0, strlen (result) - 3, 0)
- && strcmp (result + strlen (result) - 3, " 33") == 0);
ASSERT (retval == strlen (result));
+ ASSERT (3 < retval && strcmp (result + retval - 3, " 33") == 0);
free (result);
}
{ /* Pseudo-Denormal. */
@@ -3226,10 +3164,8 @@ test_function (int (*my_asprintf) (char **, const char *, ...))
int retval =
my_asprintf (&result, "%Lg %d", x.value, 33, 44, 55);
ASSERT (result != NULL);
- ASSERT (strlen (result) >= 3 + 3
- && strisnan (result, 0, strlen (result) - 3, 0)
- && strcmp (result + strlen (result) - 3, " 33") == 0);
ASSERT (retval == strlen (result));
+ ASSERT (3 < retval && strcmp (result + retval - 3, " 33") == 0);
free (result);
}
#endif