quotearg: don't attempt to store 1 << 31 into an "int"
[gnulib.git] / tests / unistdio / test-ulc-vasnprintf2.c
index 5d514c9..4509675 100644 (file)
@@ -1,10 +1,10 @@
 /* Test of ulc_vasnprintf() function in an ISO-8859-1 locale.
-   Copyright (C) 2007 Free Software Foundation, Inc.
+   Copyright (C) 2007-2013 Free Software Foundation, Inc.
 
-   This program is free software; you can redistribute it and/or modify
+   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
-   the Free Software Foundation; either version 2, or (at your option)
-   any later version.
+   the Free Software Foundation; either version 3 of the License, or
+   (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -12,8 +12,7 @@
    GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License
-   along with this program; if not, write to the Free Software Foundation,
-   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
 /* Written by Bruno Haible <bruno@clisp.org>, 2007.  */
 
 
 #include <locale.h>
 #include <stdarg.h>
-#include <stdio.h>
 #include <stdint.h>
 #include <stdlib.h>
 #include <string.h>
 
-#define SIZEOF(array) (sizeof (array) / sizeof (array[0]))
-#define ASSERT(expr) \
-  do                                                                        \
-    {                                                                       \
-      if (!(expr))                                                          \
-        {                                                                   \
-          fprintf (stderr, "%s:%d: assertion failed\n", __FILE__, __LINE__); \
-          abort ();                                                         \
-        }                                                                   \
-    }                                                                       \
-  while (0)
+#include "macros.h"
 
 static void
 test_function (char * (*my_asnprintf) (char *, size_t *, const char *, ...))
@@ -50,40 +38,40 @@ test_function (char * (*my_asnprintf) (char *, size_t *, const char *, ...))
     {
       size_t length;
       char *result =
-       my_asnprintf (NULL, &length, "%U %d", unicode_string, 33, 44, 55);
+        my_asnprintf (NULL, &length, "%U %d", unicode_string, 33, 44, 55);
       ASSERT (result != NULL);
       ASSERT (strcmp (result, "Rafa? Maszkowski 33") == 0
-             || strcmp (result, "Rafal Maszkowski 33") == 0);
+              || strcmp (result, "Rafal Maszkowski 33") == 0);
       ASSERT (length == strlen (result));
       free (result);
     }
     { /* Width.  */
       size_t length;
       char *result =
-       my_asnprintf (NULL, &length, "%20U %d", unicode_string, 33, 44, 55);
+        my_asnprintf (NULL, &length, "%20U %d", unicode_string, 33, 44, 55);
       ASSERT (result != NULL);
       ASSERT (strcmp (result, "    Rafa? Maszkowski 33") == 0
-             || strcmp (result, "    Rafal Maszkowski 33") == 0);
+              || strcmp (result, "    Rafal Maszkowski 33") == 0);
       ASSERT (length == strlen (result));
       free (result);
     }
     { /* FLAG_LEFT.  */
       size_t length;
       char *result =
-       my_asnprintf (NULL, &length, "%-20U %d", unicode_string, 33, 44, 55);
+        my_asnprintf (NULL, &length, "%-20U %d", unicode_string, 33, 44, 55);
       ASSERT (result != NULL);
       ASSERT (strcmp (result, "Rafa? Maszkowski     33") == 0
-             || strcmp (result, "Rafal Maszkowski     33") == 0);
+              || strcmp (result, "Rafal Maszkowski     33") == 0);
       ASSERT (length == strlen (result));
       free (result);
     }
     { /* FLAG_ZERO: no effect.  */
       size_t length;
       char *result =
-       my_asnprintf (NULL, &length, "%020U %d", unicode_string, 33, 44, 55);
+        my_asnprintf (NULL, &length, "%020U %d", unicode_string, 33, 44, 55);
       ASSERT (result != NULL);
       ASSERT (strcmp (result, "    Rafa? Maszkowski 33") == 0
-             || strcmp (result, "    Rafal Maszkowski 33") == 0);
+              || strcmp (result, "    Rafal Maszkowski 33") == 0);
       ASSERT (length == strlen (result));
       free (result);
     }
@@ -92,46 +80,46 @@ test_function (char * (*my_asnprintf) (char *, size_t *, const char *, ...))
   {
     static const uint16_t unicode_string[] = /* Rafał Maszkowski */
       {
-       'R', 'a', 'f', 'a', 0x0142, ' ', 'M', 'a', 's', 'z', 'k', 'o', 'w',
-       's', 'k', 'i', 0
+        'R', 'a', 'f', 'a', 0x0142, ' ', 'M', 'a', 's', 'z', 'k', 'o', 'w',
+        's', 'k', 'i', 0
       };
     {
       size_t length;
       char *result =
-       my_asnprintf (NULL, &length, "%lU %d", unicode_string, 33, 44, 55);
+        my_asnprintf (NULL, &length, "%lU %d", unicode_string, 33, 44, 55);
       ASSERT (result != NULL);
       ASSERT (strcmp (result, "Rafa? Maszkowski 33") == 0
-             || strcmp (result, "Rafal Maszkowski 33") == 0);
+              || strcmp (result, "Rafal Maszkowski 33") == 0);
       ASSERT (length == strlen (result));
       free (result);
     }
     { /* Width.  */
       size_t length;
       char *result =
-       my_asnprintf (NULL, &length, "%20lU %d", unicode_string, 33, 44, 55);
+        my_asnprintf (NULL, &length, "%20lU %d", unicode_string, 33, 44, 55);
       ASSERT (result != NULL);
       ASSERT (strcmp (result, "    Rafa? Maszkowski 33") == 0
-             || strcmp (result, "    Rafal Maszkowski 33") == 0);
+              || strcmp (result, "    Rafal Maszkowski 33") == 0);
       ASSERT (length == strlen (result));
       free (result);
     }
     { /* FLAG_LEFT.  */
       size_t length;
       char *result =
-       my_asnprintf (NULL, &length, "%-20lU %d", unicode_string, 33, 44, 55);
+        my_asnprintf (NULL, &length, "%-20lU %d", unicode_string, 33, 44, 55);
       ASSERT (result != NULL);
       ASSERT (strcmp (result, "Rafa? Maszkowski     33") == 0
-             || strcmp (result, "Rafal Maszkowski     33") == 0);
+              || strcmp (result, "Rafal Maszkowski     33") == 0);
       ASSERT (length == strlen (result));
       free (result);
     }
     { /* FLAG_ZERO: no effect.  */
       size_t length;
       char *result =
-       my_asnprintf (NULL, &length, "%020lU %d", unicode_string, 33, 44, 55);
+        my_asnprintf (NULL, &length, "%020lU %d", unicode_string, 33, 44, 55);
       ASSERT (result != NULL);
       ASSERT (strcmp (result, "    Rafa? Maszkowski 33") == 0
-             || strcmp (result, "    Rafal Maszkowski 33") == 0);
+              || strcmp (result, "    Rafal Maszkowski 33") == 0);
       ASSERT (length == strlen (result));
       free (result);
     }
@@ -140,46 +128,46 @@ test_function (char * (*my_asnprintf) (char *, size_t *, const char *, ...))
   {
     static const uint32_t unicode_string[] = /* Rafał Maszkowski */
       {
-       'R', 'a', 'f', 'a', 0x0142, ' ', 'M', 'a', 's', 'z', 'k', 'o', 'w',
-       's', 'k', 'i', 0
+        'R', 'a', 'f', 'a', 0x0142, ' ', 'M', 'a', 's', 'z', 'k', 'o', 'w',
+        's', 'k', 'i', 0
       };
     {
       size_t length;
       char *result =
-       my_asnprintf (NULL, &length, "%llU %d", unicode_string, 33, 44, 55);
+        my_asnprintf (NULL, &length, "%llU %d", unicode_string, 33, 44, 55);
       ASSERT (result != NULL);
       ASSERT (strcmp (result, "Rafa? Maszkowski 33") == 0
-             || strcmp (result, "Rafal Maszkowski 33") == 0);
+              || strcmp (result, "Rafal Maszkowski 33") == 0);
       ASSERT (length == strlen (result));
       free (result);
     }
     { /* Width.  */
       size_t length;
       char *result =
-       my_asnprintf (NULL, &length, "%20llU %d", unicode_string, 33, 44, 55);
+        my_asnprintf (NULL, &length, "%20llU %d", unicode_string, 33, 44, 55);
       ASSERT (result != NULL);
       ASSERT (strcmp (result, "    Rafa? Maszkowski 33") == 0
-             || strcmp (result, "    Rafal Maszkowski 33") == 0);
+              || strcmp (result, "    Rafal Maszkowski 33") == 0);
       ASSERT (length == strlen (result));
       free (result);
     }
     { /* FLAG_LEFT.  */
       size_t length;
       char *result =
-       my_asnprintf (NULL, &length, "%-20llU %d", unicode_string, 33, 44, 55);
+        my_asnprintf (NULL, &length, "%-20llU %d", unicode_string, 33, 44, 55);
       ASSERT (result != NULL);
       ASSERT (strcmp (result, "Rafa? Maszkowski     33") == 0
-             || strcmp (result, "Rafal Maszkowski     33") == 0);
+              || strcmp (result, "Rafal Maszkowski     33") == 0);
       ASSERT (length == strlen (result));
       free (result);
     }
     { /* FLAG_ZERO: no effect.  */
       size_t length;
       char *result =
-       my_asnprintf (NULL, &length, "%020llU %d", unicode_string, 33, 44, 55);
+        my_asnprintf (NULL, &length, "%020llU %d", unicode_string, 33, 44, 55);
       ASSERT (result != NULL);
       ASSERT (strcmp (result, "    Rafa? Maszkowski 33") == 0
-             || strcmp (result, "    Rafal Maszkowski 33") == 0);
+              || strcmp (result, "    Rafal Maszkowski 33") == 0);
       ASSERT (length == strlen (result));
       free (result);
     }
@@ -192,7 +180,7 @@ test_function (char * (*my_asnprintf) (char *, size_t *, const char *, ...))
     {
       size_t length;
       char *result =
-       my_asnprintf (NULL, &length, "%s %d", locale_string, 33, 44, 55);
+        my_asnprintf (NULL, &length, "%s %d", locale_string, 33, 44, 55);
       ASSERT (result != NULL);
       ASSERT (strcmp (result, "\304rger 33") == 0);
       ASSERT (length == strlen (result));
@@ -201,7 +189,7 @@ test_function (char * (*my_asnprintf) (char *, size_t *, const char *, ...))
     { /* Width.  */
       size_t length;
       char *result =
-       my_asnprintf (NULL, &length, "%10s %d", locale_string, 33, 44, 55);
+        my_asnprintf (NULL, &length, "%10s %d", locale_string, 33, 44, 55);
       ASSERT (result != NULL);
       ASSERT (strcmp (result, "     \304rger 33") == 0);
       ASSERT (length == strlen (result));
@@ -210,7 +198,7 @@ test_function (char * (*my_asnprintf) (char *, size_t *, const char *, ...))
     { /* FLAG_LEFT.  */
       size_t length;
       char *result =
-       my_asnprintf (NULL, &length, "%-10s %d", locale_string, 33, 44, 55);
+        my_asnprintf (NULL, &length, "%-10s %d", locale_string, 33, 44, 55);
       ASSERT (result != NULL);
       ASSERT (strcmp (result, "\304rger      33") == 0);
       ASSERT (length == strlen (result));
@@ -219,7 +207,7 @@ test_function (char * (*my_asnprintf) (char *, size_t *, const char *, ...))
     { /* FLAG_ZERO: no effect.  */
       size_t length;
       char *result =
-       my_asnprintf (NULL, &length, "%010s %d", locale_string, 33, 44, 55);
+        my_asnprintf (NULL, &length, "%010s %d", locale_string, 33, 44, 55);
       ASSERT (result != NULL);
       ASSERT (strcmp (result, "     \304rger 33") == 0);
       ASSERT (length == strlen (result));