X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=tests%2Ftest-vasnprintf-posix.c;h=791d6c72c59c8b09d6f88207de11d9a6d0edae92;hb=b0d9d3aa695aebab5ebc0fb02ebeac9e59f57242;hp=47af6e037dc4522115ba3fb5ddf09ed935071f8a;hpb=6fb8ffda3e174cd01655f87065f8ade6f536014d;p=gnulib.git diff --git a/tests/test-vasnprintf-posix.c b/tests/test-vasnprintf-posix.c index 47af6e037..791d6c72c 100644 --- a/tests/test-vasnprintf-posix.c +++ b/tests/test-vasnprintf-posix.c @@ -24,6 +24,7 @@ #include "vasnprintf.h" #include +#include #include #include #include @@ -267,6 +268,20 @@ test_function (char * (*my_asnprintf) (char *, size_t *, const char *, ...)) free (result); } + { /* Rounding can turn a ...FFF into a ...000. + This shows a MacOS X 10.3.9 (Darwin 7.9) bug. */ + size_t length; + char *result = + my_asnprintf (NULL, &length, "%.1a %d", 1.999, 33, 44, 55); + ASSERT (result != NULL); + ASSERT (strcmp (result, "0x1.0p+1 33") == 0 + || strcmp (result, "0x2.0p+0 33") == 0 + || strcmp (result, "0x4.0p-1 33") == 0 + || strcmp (result, "0x8.0p-2 33") == 0); + ASSERT (length == strlen (result)); + free (result); + } + { /* Width. */ size_t length; char *result = @@ -560,6 +575,21 @@ test_function (char * (*my_asnprintf) (char *, size_t *, const char *, ...)) free (result); } + { /* Rounding can turn a ...FFF into a ...000. + This shows a MacOS X 10.3.9 (Darwin 7.9) bug and a + glibc 2.4 bug . */ + size_t length; + char *result = + my_asnprintf (NULL, &length, "%.1La %d", 1.999L, 33, 44, 55); + ASSERT (result != NULL); + ASSERT (strcmp (result, "0x1.0p+1 33") == 0 + || strcmp (result, "0x2.0p+0 33") == 0 + || strcmp (result, "0x4.0p-1 33") == 0 + || strcmp (result, "0x8.0p-2 33") == 0); + ASSERT (length == strlen (result)); + free (result); + } + { /* Width. */ size_t length; char *result =