Annotation of embedaddon/curl/tests/libtest/lib557.c, revision 1.1.1.1

1.1       misho       1: /***************************************************************************
                      2:  *                                  _   _ ____  _
                      3:  *  Project                     ___| | | |  _ \| |
                      4:  *                             / __| | | | |_) | |
                      5:  *                            | (__| |_| |  _ <| |___
                      6:  *                             \___|\___/|_| \_\_____|
                      7:  *
                      8:  * Copyright (C) 1998 - 2019, Daniel Stenberg, <daniel@haxx.se>, et al.
                      9:  *
                     10:  * This software is licensed as described in the file COPYING, which
                     11:  * you should have received as part of this distribution. The terms
                     12:  * are also available at https://curl.haxx.se/docs/copyright.html.
                     13:  *
                     14:  * You may opt to use, copy, modify, merge, publish, distribute and/or sell
                     15:  * copies of the Software, and permit persons to whom the Software is
                     16:  * furnished to do so, under the terms of the COPYING file.
                     17:  *
                     18:  * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
                     19:  * KIND, either express or implied.
                     20:  *
                     21:  ***************************************************************************/
                     22: 
                     23: /*
                     24:  * The purpose of this test is to minimally exercise libcurl's internal
                     25:  * curl_m*printf formatting capabilities and handling of some data types.
                     26:  */
                     27: 
                     28: #include "test.h"
                     29: 
                     30: #include <limits.h>
                     31: 
                     32: #ifdef HAVE_LOCALE_H
                     33: #  include <locale.h> /* for setlocale() */
                     34: #endif
                     35: 
                     36: #include "memdebug.h"
                     37: 
                     38: #if (SIZEOF_CURL_OFF_T > SIZEOF_LONG)
                     39: #  define MPRNT_SUFFIX_CURL_OFF_T  LL
                     40: #else
                     41: #  define MPRNT_SUFFIX_CURL_OFF_T  L
                     42: #endif
                     43: 
                     44: 
                     45: #ifdef CURL_ISOCPP
                     46: #  define MPRNT_OFF_T_C_HELPER2(Val,Suffix) Val ## Suffix
                     47: #else
                     48: #  define MPRNT_OFF_T_C_HELPER2(Val,Suffix) Val/**/Suffix
                     49: #endif
                     50: #define MPRNT_OFF_T_C_HELPER1(Val,Suffix) MPRNT_OFF_T_C_HELPER2(Val,Suffix)
                     51: #define MPRNT_OFF_T_C(Val)  MPRNT_OFF_T_C_HELPER1(Val,MPRNT_SUFFIX_CURL_OFF_T)
                     52: 
                     53: 
                     54: #define BUFSZ    256
                     55: #define USHORT_TESTS_ARRSZ 1 + 100
                     56: #define SSHORT_TESTS_ARRSZ 1 + 100
                     57: #define UINT_TESTS_ARRSZ   1 + 100
                     58: #define SINT_TESTS_ARRSZ   1 + 100
                     59: #define ULONG_TESTS_ARRSZ  1 + 100
                     60: #define SLONG_TESTS_ARRSZ  1 + 100
                     61: #define COFFT_TESTS_ARRSZ  1 + 100
                     62: 
                     63: 
                     64: struct unsshort_st {
                     65:   unsigned short num;   /* unsigned short  */
                     66:   const char *expected; /* expected string */
                     67:   char result[BUFSZ];   /* result string   */
                     68: };
                     69: 
                     70: 
                     71: struct sigshort_st {
                     72:   short num;            /* signed short    */
                     73:   const char *expected; /* expected string */
                     74:   char result[BUFSZ];   /* result string   */
                     75: };
                     76: 
                     77: 
                     78: struct unsint_st {
                     79:   unsigned int num;     /* unsigned int    */
                     80:   const char *expected; /* expected string */
                     81:   char result[BUFSZ];   /* result string   */
                     82: };
                     83: 
                     84: 
                     85: struct sigint_st {
                     86:   int num;              /* signed int      */
                     87:   const char *expected; /* expected string */
                     88:   char result[BUFSZ];   /* result string   */
                     89: };
                     90: 
                     91: 
                     92: struct unslong_st {
                     93:   unsigned long num;    /* unsigned long   */
                     94:   const char *expected; /* expected string */
                     95:   char result[BUFSZ];   /* result string   */
                     96: };
                     97: 
                     98: 
                     99: struct siglong_st {
                    100:   long num;             /* signed long     */
                    101:   const char *expected; /* expected string */
                    102:   char result[BUFSZ];   /* result string   */
                    103: };
                    104: 
                    105: 
                    106: struct curloff_st {
                    107:   curl_off_t num;       /* curl_off_t      */
                    108:   const char *expected; /* expected string */
                    109:   char result[BUFSZ];   /* result string   */
                    110: };
                    111: 
                    112: 
                    113: static struct unsshort_st us_test[USHORT_TESTS_ARRSZ];
                    114: static struct sigshort_st ss_test[SSHORT_TESTS_ARRSZ];
                    115: static struct unsint_st   ui_test[UINT_TESTS_ARRSZ];
                    116: static struct sigint_st   si_test[SINT_TESTS_ARRSZ];
                    117: static struct unslong_st  ul_test[ULONG_TESTS_ARRSZ];
                    118: static struct siglong_st  sl_test[SLONG_TESTS_ARRSZ];
                    119: static struct curloff_st  co_test[COFFT_TESTS_ARRSZ];
                    120: 
                    121: 
                    122: static int test_unsigned_short_formatting(void)
                    123: {
                    124:   int i, j;
                    125:   int num_ushort_tests = 0;
                    126:   int failed = 0;
                    127: 
                    128: #if (SIZEOF_SHORT == 1)
                    129: 
                    130:   i = 1; us_test[i].num = 0xFFU; us_test[i].expected = "256";
                    131:   i++; us_test[i].num = 0xF0U; us_test[i].expected = "240";
                    132:   i++; us_test[i].num = 0x0FU; us_test[i].expected = "15";
                    133: 
                    134:   i++; us_test[i].num = 0xE0U; us_test[i].expected = "224";
                    135:   i++; us_test[i].num = 0x0EU; us_test[i].expected = "14";
                    136: 
                    137:   i++; us_test[i].num = 0xC0U; us_test[i].expected = "192";
                    138:   i++; us_test[i].num = 0x0CU; us_test[i].expected = "12";
                    139: 
                    140:   i++; us_test[i].num = 0x01U; us_test[i].expected = "1";
                    141:   i++; us_test[i].num = 0x00U; us_test[i].expected = "0";
                    142: 
                    143:   num_ushort_tests = i;
                    144: 
                    145: #elif (SIZEOF_SHORT == 2)
                    146: 
                    147:   i = 1; us_test[i].num = 0xFFFFU; us_test[i].expected = "65535";
                    148:   i++; us_test[i].num = 0xFF00U; us_test[i].expected = "65280";
                    149:   i++; us_test[i].num = 0x00FFU; us_test[i].expected = "255";
                    150: 
                    151:   i++; us_test[i].num = 0xF000U; us_test[i].expected = "61440";
                    152:   i++; us_test[i].num = 0x0F00U; us_test[i].expected = "3840";
                    153:   i++; us_test[i].num = 0x00F0U; us_test[i].expected = "240";
                    154:   i++; us_test[i].num = 0x000FU; us_test[i].expected = "15";
                    155: 
                    156:   i++; us_test[i].num = 0xC000U; us_test[i].expected = "49152";
                    157:   i++; us_test[i].num = 0x0C00U; us_test[i].expected = "3072";
                    158:   i++; us_test[i].num = 0x00C0U; us_test[i].expected = "192";
                    159:   i++; us_test[i].num = 0x000CU; us_test[i].expected = "12";
                    160: 
                    161:   i++; us_test[i].num = 0x0001U; us_test[i].expected = "1";
                    162:   i++; us_test[i].num = 0x0000U; us_test[i].expected = "0";
                    163: 
                    164:   num_ushort_tests = i;
                    165: 
                    166: #elif (SIZEOF_SHORT == 4)
                    167: 
                    168:   i = 1; us_test[i].num = 0xFFFFFFFFU; us_test[i].expected = "4294967295";
                    169:   i++; us_test[i].num = 0xFFFF0000U; us_test[i].expected = "4294901760";
                    170:   i++; us_test[i].num = 0x0000FFFFU; us_test[i].expected = "65535";
                    171: 
                    172:   i++; us_test[i].num = 0xFF000000U; us_test[i].expected = "4278190080";
                    173:   i++; us_test[i].num = 0x00FF0000U; us_test[i].expected = "16711680";
                    174:   i++; us_test[i].num = 0x0000FF00U; us_test[i].expected = "65280";
                    175:   i++; us_test[i].num = 0x000000FFU; us_test[i].expected = "255";
                    176: 
                    177:   i++; us_test[i].num = 0xF0000000U; us_test[i].expected = "4026531840";
                    178:   i++; us_test[i].num = 0x0F000000U; us_test[i].expected = "251658240";
                    179:   i++; us_test[i].num = 0x00F00000U; us_test[i].expected = "15728640";
                    180:   i++; us_test[i].num = 0x000F0000U; us_test[i].expected = "983040";
                    181:   i++; us_test[i].num = 0x0000F000U; us_test[i].expected = "61440";
                    182:   i++; us_test[i].num = 0x00000F00U; us_test[i].expected = "3840";
                    183:   i++; us_test[i].num = 0x000000F0U; us_test[i].expected = "240";
                    184:   i++; us_test[i].num = 0x0000000FU; us_test[i].expected = "15";
                    185: 
                    186:   i++; us_test[i].num = 0xC0000000U; us_test[i].expected = "3221225472";
                    187:   i++; us_test[i].num = 0x0C000000U; us_test[i].expected = "201326592";
                    188:   i++; us_test[i].num = 0x00C00000U; us_test[i].expected = "12582912";
                    189:   i++; us_test[i].num = 0x000C0000U; us_test[i].expected = "786432";
                    190:   i++; us_test[i].num = 0x0000C000U; us_test[i].expected = "49152";
                    191:   i++; us_test[i].num = 0x00000C00U; us_test[i].expected = "3072";
                    192:   i++; us_test[i].num = 0x000000C0U; us_test[i].expected = "192";
                    193:   i++; us_test[i].num = 0x0000000CU; us_test[i].expected = "12";
                    194: 
                    195:   i++; us_test[i].num = 0x00000001U; us_test[i].expected = "1";
                    196:   i++; us_test[i].num = 0x00000000U; us_test[i].expected = "0";
                    197: 
                    198:   num_ushort_tests = i;
                    199: 
                    200: #endif
                    201: 
                    202:   for(i = 1; i <= num_ushort_tests; i++) {
                    203: 
                    204:     for(j = 0; j<BUFSZ; j++)
                    205:       us_test[i].result[j] = 'X';
                    206:     us_test[i].result[BUFSZ-1] = '\0';
                    207: 
                    208:     (void)curl_msprintf(us_test[i].result, "%hu", us_test[i].num);
                    209: 
                    210:     if(memcmp(us_test[i].result,
                    211:                us_test[i].expected,
                    212:                strlen(us_test[i].expected))) {
                    213:       printf("unsigned short test #%.2d: Failed (Expected: %s Got: %s)\n",
                    214:              i, us_test[i].expected, us_test[i].result);
                    215:       failed++;
                    216:     }
                    217: 
                    218:   }
                    219: 
                    220:   if(!failed)
                    221:     printf("All curl_mprintf() unsigned short tests OK!\n");
                    222:   else
                    223:     printf("Some curl_mprintf() unsigned short tests Failed!\n");
                    224: 
                    225:   return failed;
                    226: }
                    227: 
                    228: 
                    229: static int test_signed_short_formatting(void)
                    230: {
                    231:   int i, j;
                    232:   int num_sshort_tests = 0;
                    233:   int failed = 0;
                    234: 
                    235: #if (SIZEOF_SHORT == 1)
                    236: 
                    237:   i = 1; ss_test[i].num = 0x7F; ss_test[i].expected = "127";
                    238: 
                    239:   i++; ss_test[i].num = 0x70; ss_test[i].expected = "112";
                    240:   i++; ss_test[i].num = 0x07; ss_test[i].expected = "7";
                    241: 
                    242:   i++; ss_test[i].num = 0x50; ss_test[i].expected = "80";
                    243:   i++; ss_test[i].num = 0x05; ss_test[i].expected = "5";
                    244: 
                    245:   i++; ss_test[i].num = 0x01; ss_test[i].expected = "1";
                    246:   i++; ss_test[i].num = 0x00; ss_test[i].expected = "0";
                    247: 
                    248:   i++; ss_test[i].num = -0x7F -1; ss_test[i].expected = "-128";
                    249: 
                    250:   i++; ss_test[i].num = -0x70 -1; ss_test[i].expected = "-113";
                    251:   i++; ss_test[i].num = -0x07 -1; ss_test[i].expected = "-8";
                    252: 
                    253:   i++; ss_test[i].num = -0x50 -1; ss_test[i].expected = "-81";
                    254:   i++; ss_test[i].num = -0x05 -1; ss_test[i].expected = "-6";
                    255: 
                    256:   i++; ss_test[i].num =  0x00 -1; ss_test[i].expected = "-1";
                    257: 
                    258:   num_sshort_tests = i;
                    259: 
                    260: #elif (SIZEOF_SHORT == 2)
                    261: 
                    262:   i = 1; ss_test[i].num = 0x7FFF; ss_test[i].expected = "32767";
                    263:   i++; ss_test[i].num = 0x7FFE; ss_test[i].expected = "32766";
                    264:   i++; ss_test[i].num = 0x7FFD; ss_test[i].expected = "32765";
                    265:   i++; ss_test[i].num = 0x7F00; ss_test[i].expected = "32512";
                    266:   i++; ss_test[i].num = 0x07F0; ss_test[i].expected = "2032";
                    267:   i++; ss_test[i].num = 0x007F; ss_test[i].expected = "127";
                    268: 
                    269:   i++; ss_test[i].num = 0x7000; ss_test[i].expected = "28672";
                    270:   i++; ss_test[i].num = 0x0700; ss_test[i].expected = "1792";
                    271:   i++; ss_test[i].num = 0x0070; ss_test[i].expected = "112";
                    272:   i++; ss_test[i].num = 0x0007; ss_test[i].expected = "7";
                    273: 
                    274:   i++; ss_test[i].num = 0x5000; ss_test[i].expected = "20480";
                    275:   i++; ss_test[i].num = 0x0500; ss_test[i].expected = "1280";
                    276:   i++; ss_test[i].num = 0x0050; ss_test[i].expected = "80";
                    277:   i++; ss_test[i].num = 0x0005; ss_test[i].expected = "5";
                    278: 
                    279:   i++; ss_test[i].num = 0x0001; ss_test[i].expected = "1";
                    280:   i++; ss_test[i].num = 0x0000; ss_test[i].expected = "0";
                    281: 
                    282:   i++; ss_test[i].num = -0x7FFF -1; ss_test[i].expected = "-32768";
                    283:   i++; ss_test[i].num = -0x7FFE -1; ss_test[i].expected = "-32767";
                    284:   i++; ss_test[i].num = -0x7FFD -1; ss_test[i].expected = "-32766";
                    285:   i++; ss_test[i].num = -0x7F00 -1; ss_test[i].expected = "-32513";
                    286:   i++; ss_test[i].num = -0x07F0 -1; ss_test[i].expected = "-2033";
                    287:   i++; ss_test[i].num = -0x007F -1; ss_test[i].expected = "-128";
                    288: 
                    289:   i++; ss_test[i].num = -0x7000 -1; ss_test[i].expected = "-28673";
                    290:   i++; ss_test[i].num = -0x0700 -1; ss_test[i].expected = "-1793";
                    291:   i++; ss_test[i].num = -0x0070 -1; ss_test[i].expected = "-113";
                    292:   i++; ss_test[i].num = -0x0007 -1; ss_test[i].expected = "-8";
                    293: 
                    294:   i++; ss_test[i].num = -0x5000 -1; ss_test[i].expected = "-20481";
                    295:   i++; ss_test[i].num = -0x0500 -1; ss_test[i].expected = "-1281";
                    296:   i++; ss_test[i].num = -0x0050 -1; ss_test[i].expected = "-81";
                    297:   i++; ss_test[i].num = -0x0005 -1; ss_test[i].expected = "-6";
                    298: 
                    299:   i++; ss_test[i].num =  0x0000 -1; ss_test[i].expected = "-1";
                    300: 
                    301:   num_sshort_tests = i;
                    302: 
                    303: #elif (SIZEOF_SHORT == 4)
                    304: 
                    305:   i = 1; ss_test[i].num = 0x7FFFFFFF; ss_test[i].expected = "2147483647";
                    306:   i++; ss_test[i].num = 0x7FFFFFFE; ss_test[i].expected = "2147483646";
                    307:   i++; ss_test[i].num = 0x7FFFFFFD; ss_test[i].expected = "2147483645";
                    308:   i++; ss_test[i].num = 0x7FFF0000; ss_test[i].expected = "2147418112";
                    309:   i++; ss_test[i].num = 0x00007FFF; ss_test[i].expected = "32767";
                    310: 
                    311:   i++; ss_test[i].num = 0x7F000000; ss_test[i].expected = "2130706432";
                    312:   i++; ss_test[i].num = 0x007F0000; ss_test[i].expected = "8323072";
                    313:   i++; ss_test[i].num = 0x00007F00; ss_test[i].expected = "32512";
                    314:   i++; ss_test[i].num = 0x0000007F; ss_test[i].expected = "127";
                    315: 
                    316:   i++; ss_test[i].num = 0x70000000; ss_test[i].expected = "1879048192";
                    317:   i++; ss_test[i].num = 0x07000000; ss_test[i].expected = "117440512";
                    318:   i++; ss_test[i].num = 0x00700000; ss_test[i].expected = "7340032";
                    319:   i++; ss_test[i].num = 0x00070000; ss_test[i].expected = "458752";
                    320:   i++; ss_test[i].num = 0x00007000; ss_test[i].expected = "28672";
                    321:   i++; ss_test[i].num = 0x00000700; ss_test[i].expected = "1792";
                    322:   i++; ss_test[i].num = 0x00000070; ss_test[i].expected = "112";
                    323:   i++; ss_test[i].num = 0x00000007; ss_test[i].expected = "7";
                    324: 
                    325:   i++; ss_test[i].num = 0x50000000; ss_test[i].expected = "1342177280";
                    326:   i++; ss_test[i].num = 0x05000000; ss_test[i].expected = "83886080";
                    327:   i++; ss_test[i].num = 0x00500000; ss_test[i].expected = "5242880";
                    328:   i++; ss_test[i].num = 0x00050000; ss_test[i].expected = "327680";
                    329:   i++; ss_test[i].num = 0x00005000; ss_test[i].expected = "20480";
                    330:   i++; ss_test[i].num = 0x00000500; ss_test[i].expected = "1280";
                    331:   i++; ss_test[i].num = 0x00000050; ss_test[i].expected = "80";
                    332:   i++; ss_test[i].num = 0x00000005; ss_test[i].expected = "5";
                    333: 
                    334:   i++; ss_test[i].num = 0x00000001; ss_test[i].expected = "1";
                    335:   i++; ss_test[i].num = 0x00000000; ss_test[i].expected = "0";
                    336: 
                    337:   i++; ss_test[i].num = -0x7FFFFFFF -1; ss_test[i].expected = "-2147483648";
                    338:   i++; ss_test[i].num = -0x7FFFFFFE -1; ss_test[i].expected = "-2147483647";
                    339:   i++; ss_test[i].num = -0x7FFFFFFD -1; ss_test[i].expected = "-2147483646";
                    340:   i++; ss_test[i].num = -0x7FFF0000 -1; ss_test[i].expected = "-2147418113";
                    341:   i++; ss_test[i].num = -0x00007FFF -1; ss_test[i].expected = "-32768";
                    342: 
                    343:   i++; ss_test[i].num = -0x7F000000 -1; ss_test[i].expected = "-2130706433";
                    344:   i++; ss_test[i].num = -0x007F0000 -1; ss_test[i].expected = "-8323073";
                    345:   i++; ss_test[i].num = -0x00007F00 -1; ss_test[i].expected = "-32513";
                    346:   i++; ss_test[i].num = -0x0000007F -1; ss_test[i].expected = "-128";
                    347: 
                    348:   i++; ss_test[i].num = -0x70000000 -1; ss_test[i].expected = "-1879048193";
                    349:   i++; ss_test[i].num = -0x07000000 -1; ss_test[i].expected = "-117440513";
                    350:   i++; ss_test[i].num = -0x00700000 -1; ss_test[i].expected = "-7340033";
                    351:   i++; ss_test[i].num = -0x00070000 -1; ss_test[i].expected = "-458753";
                    352:   i++; ss_test[i].num = -0x00007000 -1; ss_test[i].expected = "-28673";
                    353:   i++; ss_test[i].num = -0x00000700 -1; ss_test[i].expected = "-1793";
                    354:   i++; ss_test[i].num = -0x00000070 -1; ss_test[i].expected = "-113";
                    355:   i++; ss_test[i].num = -0x00000007 -1; ss_test[i].expected = "-8";
                    356: 
                    357:   i++; ss_test[i].num = -0x50000000 -1; ss_test[i].expected = "-1342177281";
                    358:   i++; ss_test[i].num = -0x05000000 -1; ss_test[i].expected = "-83886081";
                    359:   i++; ss_test[i].num = -0x00500000 -1; ss_test[i].expected = "-5242881";
                    360:   i++; ss_test[i].num = -0x00050000 -1; ss_test[i].expected = "-327681";
                    361:   i++; ss_test[i].num = -0x00005000 -1; ss_test[i].expected = "-20481";
                    362:   i++; ss_test[i].num = -0x00000500 -1; ss_test[i].expected = "-1281";
                    363:   i++; ss_test[i].num = -0x00000050 -1; ss_test[i].expected = "-81";
                    364:   i++; ss_test[i].num = -0x00000005 -1; ss_test[i].expected = "-6";
                    365: 
                    366:   i++; ss_test[i].num =  0x00000000 -1; ss_test[i].expected = "-1";
                    367: 
                    368:   num_sshort_tests = i;
                    369: 
                    370: #endif
                    371: 
                    372:   for(i = 1; i <= num_sshort_tests; i++) {
                    373: 
                    374:     for(j = 0; j<BUFSZ; j++)
                    375:       ss_test[i].result[j] = 'X';
                    376:     ss_test[i].result[BUFSZ-1] = '\0';
                    377: 
                    378:     (void)curl_msprintf(ss_test[i].result, "%hd", ss_test[i].num);
                    379: 
                    380:     if(memcmp(ss_test[i].result,
                    381:               ss_test[i].expected,
                    382:               strlen(ss_test[i].expected))) {
                    383:       printf("signed short test #%.2d: Failed (Expected: %s Got: %s)\n",
                    384:              i, ss_test[i].expected, ss_test[i].result);
                    385:       failed++;
                    386:     }
                    387: 
                    388:   }
                    389: 
                    390:   if(!failed)
                    391:     printf("All curl_mprintf() signed short tests OK!\n");
                    392:   else
                    393:     printf("Some curl_mprintf() signed short tests Failed!\n");
                    394: 
                    395:   return failed;
                    396: }
                    397: 
                    398: 
                    399: static int test_unsigned_int_formatting(void)
                    400: {
                    401:   int i, j;
                    402:   int num_uint_tests = 0;
                    403:   int failed = 0;
                    404: 
                    405: #if (SIZEOF_INT == 2)
                    406: 
                    407:   i = 1; ui_test[i].num = 0xFFFFU; ui_test[i].expected = "65535";
                    408:   i++; ui_test[i].num = 0xFF00U; ui_test[i].expected = "65280";
                    409:   i++; ui_test[i].num = 0x00FFU; ui_test[i].expected = "255";
                    410: 
                    411:   i++; ui_test[i].num = 0xF000U; ui_test[i].expected = "61440";
                    412:   i++; ui_test[i].num = 0x0F00U; ui_test[i].expected = "3840";
                    413:   i++; ui_test[i].num = 0x00F0U; ui_test[i].expected = "240";
                    414:   i++; ui_test[i].num = 0x000FU; ui_test[i].expected = "15";
                    415: 
                    416:   i++; ui_test[i].num = 0xC000U; ui_test[i].expected = "49152";
                    417:   i++; ui_test[i].num = 0x0C00U; ui_test[i].expected = "3072";
                    418:   i++; ui_test[i].num = 0x00C0U; ui_test[i].expected = "192";
                    419:   i++; ui_test[i].num = 0x000CU; ui_test[i].expected = "12";
                    420: 
                    421:   i++; ui_test[i].num = 0x0001U; ui_test[i].expected = "1";
                    422:   i++; ui_test[i].num = 0x0000U; ui_test[i].expected = "0";
                    423: 
                    424:   num_uint_tests = i;
                    425: 
                    426: #elif (SIZEOF_INT == 4)
                    427: 
                    428:   i = 1; ui_test[i].num = 0xFFFFFFFFU; ui_test[i].expected = "4294967295";
                    429:   i++; ui_test[i].num = 0xFFFF0000U; ui_test[i].expected = "4294901760";
                    430:   i++; ui_test[i].num = 0x0000FFFFU; ui_test[i].expected = "65535";
                    431: 
                    432:   i++; ui_test[i].num = 0xFF000000U; ui_test[i].expected = "4278190080";
                    433:   i++; ui_test[i].num = 0x00FF0000U; ui_test[i].expected = "16711680";
                    434:   i++; ui_test[i].num = 0x0000FF00U; ui_test[i].expected = "65280";
                    435:   i++; ui_test[i].num = 0x000000FFU; ui_test[i].expected = "255";
                    436: 
                    437:   i++; ui_test[i].num = 0xF0000000U; ui_test[i].expected = "4026531840";
                    438:   i++; ui_test[i].num = 0x0F000000U; ui_test[i].expected = "251658240";
                    439:   i++; ui_test[i].num = 0x00F00000U; ui_test[i].expected = "15728640";
                    440:   i++; ui_test[i].num = 0x000F0000U; ui_test[i].expected = "983040";
                    441:   i++; ui_test[i].num = 0x0000F000U; ui_test[i].expected = "61440";
                    442:   i++; ui_test[i].num = 0x00000F00U; ui_test[i].expected = "3840";
                    443:   i++; ui_test[i].num = 0x000000F0U; ui_test[i].expected = "240";
                    444:   i++; ui_test[i].num = 0x0000000FU; ui_test[i].expected = "15";
                    445: 
                    446:   i++; ui_test[i].num = 0xC0000000U; ui_test[i].expected = "3221225472";
                    447:   i++; ui_test[i].num = 0x0C000000U; ui_test[i].expected = "201326592";
                    448:   i++; ui_test[i].num = 0x00C00000U; ui_test[i].expected = "12582912";
                    449:   i++; ui_test[i].num = 0x000C0000U; ui_test[i].expected = "786432";
                    450:   i++; ui_test[i].num = 0x0000C000U; ui_test[i].expected = "49152";
                    451:   i++; ui_test[i].num = 0x00000C00U; ui_test[i].expected = "3072";
                    452:   i++; ui_test[i].num = 0x000000C0U; ui_test[i].expected = "192";
                    453:   i++; ui_test[i].num = 0x0000000CU; ui_test[i].expected = "12";
                    454: 
                    455:   i++; ui_test[i].num = 0x00000001U; ui_test[i].expected = "1";
                    456:   i++; ui_test[i].num = 0x00000000U; ui_test[i].expected = "0";
                    457: 
                    458:   num_uint_tests = i;
                    459: 
                    460: #elif (SIZEOF_INT == 8)
                    461: 
                    462:   /* !checksrc! disable LONGLINE all */
                    463:   i = 1; ui_test[i].num = 0xFFFFFFFFFFFFFFFFU; ui_test[i].expected = "18446744073709551615";
                    464:   i++; ui_test[i].num = 0xFFFFFFFF00000000U; ui_test[i].expected = "18446744069414584320";
                    465:   i++; ui_test[i].num = 0x00000000FFFFFFFFU; ui_test[i].expected = "4294967295";
                    466: 
                    467:   i++; ui_test[i].num = 0xFFFF000000000000U; ui_test[i].expected = "18446462598732840960";
                    468:   i++; ui_test[i].num = 0x0000FFFF00000000U; ui_test[i].expected = "281470681743360";
                    469:   i++; ui_test[i].num = 0x00000000FFFF0000U; ui_test[i].expected = "4294901760";
                    470:   i++; ui_test[i].num = 0x000000000000FFFFU; ui_test[i].expected = "65535";
                    471: 
                    472:   i++; ui_test[i].num = 0xFF00000000000000U; ui_test[i].expected = "18374686479671623680";
                    473:   i++; ui_test[i].num = 0x00FF000000000000U; ui_test[i].expected = "71776119061217280";
                    474:   i++; ui_test[i].num = 0x0000FF0000000000U; ui_test[i].expected = "280375465082880";
                    475:   i++; ui_test[i].num = 0x000000FF00000000U; ui_test[i].expected = "1095216660480";
                    476:   i++; ui_test[i].num = 0x00000000FF000000U; ui_test[i].expected = "4278190080";
                    477:   i++; ui_test[i].num = 0x0000000000FF0000U; ui_test[i].expected = "16711680";
                    478:   i++; ui_test[i].num = 0x000000000000FF00U; ui_test[i].expected = "65280";
                    479:   i++; ui_test[i].num = 0x00000000000000FFU; ui_test[i].expected = "255";
                    480: 
                    481:   i++; ui_test[i].num = 0xF000000000000000U; ui_test[i].expected = "17293822569102704640";
                    482:   i++; ui_test[i].num = 0x0F00000000000000U; ui_test[i].expected = "1080863910568919040";
                    483:   i++; ui_test[i].num = 0x00F0000000000000U; ui_test[i].expected = "67553994410557440";
                    484:   i++; ui_test[i].num = 0x000F000000000000U; ui_test[i].expected = "4222124650659840";
                    485:   i++; ui_test[i].num = 0x0000F00000000000U; ui_test[i].expected = "263882790666240";
                    486:   i++; ui_test[i].num = 0x00000F0000000000U; ui_test[i].expected = "16492674416640";
                    487:   i++; ui_test[i].num = 0x000000F000000000U; ui_test[i].expected = "1030792151040";
                    488:   i++; ui_test[i].num = 0x0000000F00000000U; ui_test[i].expected = "64424509440";
                    489:   i++; ui_test[i].num = 0x00000000F0000000U; ui_test[i].expected = "4026531840";
                    490:   i++; ui_test[i].num = 0x000000000F000000U; ui_test[i].expected = "251658240";
                    491:   i++; ui_test[i].num = 0x0000000000F00000U; ui_test[i].expected = "15728640";
                    492:   i++; ui_test[i].num = 0x00000000000F0000U; ui_test[i].expected = "983040";
                    493:   i++; ui_test[i].num = 0x000000000000F000U; ui_test[i].expected = "61440";
                    494:   i++; ui_test[i].num = 0x0000000000000F00U; ui_test[i].expected = "3840";
                    495:   i++; ui_test[i].num = 0x00000000000000F0U; ui_test[i].expected = "240";
                    496:   i++; ui_test[i].num = 0x000000000000000FU; ui_test[i].expected = "15";
                    497: 
                    498:   i++; ui_test[i].num = 0xC000000000000000U; ui_test[i].expected = "13835058055282163712";
                    499:   i++; ui_test[i].num = 0x0C00000000000000U; ui_test[i].expected = "864691128455135232";
                    500:   i++; ui_test[i].num = 0x00C0000000000000U; ui_test[i].expected = "54043195528445952";
                    501:   i++; ui_test[i].num = 0x000C000000000000U; ui_test[i].expected = "3377699720527872";
                    502:   i++; ui_test[i].num = 0x0000C00000000000U; ui_test[i].expected = "211106232532992";
                    503:   i++; ui_test[i].num = 0x00000C0000000000U; ui_test[i].expected = "13194139533312";
                    504:   i++; ui_test[i].num = 0x000000C000000000U; ui_test[i].expected = "824633720832";
                    505:   i++; ui_test[i].num = 0x0000000C00000000U; ui_test[i].expected = "51539607552";
                    506:   i++; ui_test[i].num = 0x00000000C0000000U; ui_test[i].expected = "3221225472";
                    507:   i++; ui_test[i].num = 0x000000000C000000U; ui_test[i].expected = "201326592";
                    508:   i++; ui_test[i].num = 0x0000000000C00000U; ui_test[i].expected = "12582912";
                    509:   i++; ui_test[i].num = 0x00000000000C0000U; ui_test[i].expected = "786432";
                    510:   i++; ui_test[i].num = 0x000000000000C000U; ui_test[i].expected = "49152";
                    511:   i++; ui_test[i].num = 0x0000000000000C00U; ui_test[i].expected = "3072";
                    512:   i++; ui_test[i].num = 0x00000000000000C0U; ui_test[i].expected = "192";
                    513:   i++; ui_test[i].num = 0x000000000000000CU; ui_test[i].expected = "12";
                    514: 
                    515:   i++; ui_test[i].num = 0x00000001U; ui_test[i].expected = "1";
                    516:   i++; ui_test[i].num = 0x00000000U; ui_test[i].expected = "0";
                    517: 
                    518:   num_uint_tests = i;
                    519: 
                    520: #endif
                    521: 
                    522:   for(i = 1; i <= num_uint_tests; i++) {
                    523: 
                    524:     for(j = 0; j<BUFSZ; j++)
                    525:       ui_test[i].result[j] = 'X';
                    526:     ui_test[i].result[BUFSZ-1] = '\0';
                    527: 
                    528:     (void)curl_msprintf(ui_test[i].result, "%u", ui_test[i].num);
                    529: 
                    530:     if(memcmp(ui_test[i].result,
                    531:                ui_test[i].expected,
                    532:                strlen(ui_test[i].expected))) {
                    533:       printf("unsigned int test #%.2d: Failed (Expected: %s Got: %s)\n",
                    534:              i, ui_test[i].expected, ui_test[i].result);
                    535:       failed++;
                    536:     }
                    537: 
                    538:   }
                    539: 
                    540:   if(!failed)
                    541:     printf("All curl_mprintf() unsigned int tests OK!\n");
                    542:   else
                    543:     printf("Some curl_mprintf() unsigned int tests Failed!\n");
                    544: 
                    545:   return failed;
                    546: }
                    547: 
                    548: 
                    549: static int test_signed_int_formatting(void)
                    550: {
                    551:   int i, j;
                    552:   int num_sint_tests = 0;
                    553:   int failed = 0;
                    554: 
                    555: #if (SIZEOF_INT == 2)
                    556: 
                    557:   i = 1; si_test[i].num = 0x7FFF; si_test[i].expected = "32767";
                    558:   i++; si_test[i].num = 0x7FFE; si_test[i].expected = "32766";
                    559:   i++; si_test[i].num = 0x7FFD; si_test[i].expected = "32765";
                    560:   i++; si_test[i].num = 0x7F00; si_test[i].expected = "32512";
                    561:   i++; si_test[i].num = 0x07F0; si_test[i].expected = "2032";
                    562:   i++; si_test[i].num = 0x007F; si_test[i].expected = "127";
                    563: 
                    564:   i++; si_test[i].num = 0x7000; si_test[i].expected = "28672";
                    565:   i++; si_test[i].num = 0x0700; si_test[i].expected = "1792";
                    566:   i++; si_test[i].num = 0x0070; si_test[i].expected = "112";
                    567:   i++; si_test[i].num = 0x0007; si_test[i].expected = "7";
                    568: 
                    569:   i++; si_test[i].num = 0x5000; si_test[i].expected = "20480";
                    570:   i++; si_test[i].num = 0x0500; si_test[i].expected = "1280";
                    571:   i++; si_test[i].num = 0x0050; si_test[i].expected = "80";
                    572:   i++; si_test[i].num = 0x0005; si_test[i].expected = "5";
                    573: 
                    574:   i++; si_test[i].num = 0x0001; si_test[i].expected = "1";
                    575:   i++; si_test[i].num = 0x0000; si_test[i].expected = "0";
                    576: 
                    577:   i++; si_test[i].num = -0x7FFF -1; si_test[i].expected = "-32768";
                    578:   i++; si_test[i].num = -0x7FFE -1; si_test[i].expected = "-32767";
                    579:   i++; si_test[i].num = -0x7FFD -1; si_test[i].expected = "-32766";
                    580:   i++; si_test[i].num = -0x7F00 -1; si_test[i].expected = "-32513";
                    581:   i++; si_test[i].num = -0x07F0 -1; si_test[i].expected = "-2033";
                    582:   i++; si_test[i].num = -0x007F -1; si_test[i].expected = "-128";
                    583: 
                    584:   i++; si_test[i].num = -0x7000 -1; si_test[i].expected = "-28673";
                    585:   i++; si_test[i].num = -0x0700 -1; si_test[i].expected = "-1793";
                    586:   i++; si_test[i].num = -0x0070 -1; si_test[i].expected = "-113";
                    587:   i++; si_test[i].num = -0x0007 -1; si_test[i].expected = "-8";
                    588: 
                    589:   i++; si_test[i].num = -0x5000 -1; si_test[i].expected = "-20481";
                    590:   i++; si_test[i].num = -0x0500 -1; si_test[i].expected = "-1281";
                    591:   i++; si_test[i].num = -0x0050 -1; si_test[i].expected = "-81";
                    592:   i++; si_test[i].num = -0x0005 -1; si_test[i].expected = "-6";
                    593: 
                    594:   i++; si_test[i].num =  0x0000 -1; si_test[i].expected = "-1";
                    595: 
                    596:   num_sint_tests = i;
                    597: 
                    598: #elif (SIZEOF_INT == 4)
                    599: 
                    600:   i = 1; si_test[i].num = 0x7FFFFFFF; si_test[i].expected = "2147483647";
                    601:   i++; si_test[i].num = 0x7FFFFFFE; si_test[i].expected = "2147483646";
                    602:   i++; si_test[i].num = 0x7FFFFFFD; si_test[i].expected = "2147483645";
                    603:   i++; si_test[i].num = 0x7FFF0000; si_test[i].expected = "2147418112";
                    604:   i++; si_test[i].num = 0x00007FFF; si_test[i].expected = "32767";
                    605: 
                    606:   i++; si_test[i].num = 0x7F000000; si_test[i].expected = "2130706432";
                    607:   i++; si_test[i].num = 0x007F0000; si_test[i].expected = "8323072";
                    608:   i++; si_test[i].num = 0x00007F00; si_test[i].expected = "32512";
                    609:   i++; si_test[i].num = 0x0000007F; si_test[i].expected = "127";
                    610: 
                    611:   i++; si_test[i].num = 0x70000000; si_test[i].expected = "1879048192";
                    612:   i++; si_test[i].num = 0x07000000; si_test[i].expected = "117440512";
                    613:   i++; si_test[i].num = 0x00700000; si_test[i].expected = "7340032";
                    614:   i++; si_test[i].num = 0x00070000; si_test[i].expected = "458752";
                    615:   i++; si_test[i].num = 0x00007000; si_test[i].expected = "28672";
                    616:   i++; si_test[i].num = 0x00000700; si_test[i].expected = "1792";
                    617:   i++; si_test[i].num = 0x00000070; si_test[i].expected = "112";
                    618:   i++; si_test[i].num = 0x00000007; si_test[i].expected = "7";
                    619: 
                    620:   i++; si_test[i].num = 0x50000000; si_test[i].expected = "1342177280";
                    621:   i++; si_test[i].num = 0x05000000; si_test[i].expected = "83886080";
                    622:   i++; si_test[i].num = 0x00500000; si_test[i].expected = "5242880";
                    623:   i++; si_test[i].num = 0x00050000; si_test[i].expected = "327680";
                    624:   i++; si_test[i].num = 0x00005000; si_test[i].expected = "20480";
                    625:   i++; si_test[i].num = 0x00000500; si_test[i].expected = "1280";
                    626:   i++; si_test[i].num = 0x00000050; si_test[i].expected = "80";
                    627:   i++; si_test[i].num = 0x00000005; si_test[i].expected = "5";
                    628: 
                    629:   i++; si_test[i].num = 0x00000001; si_test[i].expected = "1";
                    630:   i++; si_test[i].num = 0x00000000; si_test[i].expected = "0";
                    631: 
                    632:   i++; si_test[i].num = -0x7FFFFFFF -1; si_test[i].expected = "-2147483648";
                    633:   i++; si_test[i].num = -0x7FFFFFFE -1; si_test[i].expected = "-2147483647";
                    634:   i++; si_test[i].num = -0x7FFFFFFD -1; si_test[i].expected = "-2147483646";
                    635:   i++; si_test[i].num = -0x7FFF0000 -1; si_test[i].expected = "-2147418113";
                    636:   i++; si_test[i].num = -0x00007FFF -1; si_test[i].expected = "-32768";
                    637: 
                    638:   i++; si_test[i].num = -0x7F000000 -1; si_test[i].expected = "-2130706433";
                    639:   i++; si_test[i].num = -0x007F0000 -1; si_test[i].expected = "-8323073";
                    640:   i++; si_test[i].num = -0x00007F00 -1; si_test[i].expected = "-32513";
                    641:   i++; si_test[i].num = -0x0000007F -1; si_test[i].expected = "-128";
                    642: 
                    643:   i++; si_test[i].num = -0x70000000 -1; si_test[i].expected = "-1879048193";
                    644:   i++; si_test[i].num = -0x07000000 -1; si_test[i].expected = "-117440513";
                    645:   i++; si_test[i].num = -0x00700000 -1; si_test[i].expected = "-7340033";
                    646:   i++; si_test[i].num = -0x00070000 -1; si_test[i].expected = "-458753";
                    647:   i++; si_test[i].num = -0x00007000 -1; si_test[i].expected = "-28673";
                    648:   i++; si_test[i].num = -0x00000700 -1; si_test[i].expected = "-1793";
                    649:   i++; si_test[i].num = -0x00000070 -1; si_test[i].expected = "-113";
                    650:   i++; si_test[i].num = -0x00000007 -1; si_test[i].expected = "-8";
                    651: 
                    652:   i++; si_test[i].num = -0x50000000 -1; si_test[i].expected = "-1342177281";
                    653:   i++; si_test[i].num = -0x05000000 -1; si_test[i].expected = "-83886081";
                    654:   i++; si_test[i].num = -0x00500000 -1; si_test[i].expected = "-5242881";
                    655:   i++; si_test[i].num = -0x00050000 -1; si_test[i].expected = "-327681";
                    656:   i++; si_test[i].num = -0x00005000 -1; si_test[i].expected = "-20481";
                    657:   i++; si_test[i].num = -0x00000500 -1; si_test[i].expected = "-1281";
                    658:   i++; si_test[i].num = -0x00000050 -1; si_test[i].expected = "-81";
                    659:   i++; si_test[i].num = -0x00000005 -1; si_test[i].expected = "-6";
                    660: 
                    661:   i++; si_test[i].num =  0x00000000 -1; si_test[i].expected = "-1";
                    662: 
                    663:   num_sint_tests = i;
                    664: 
                    665: #elif (SIZEOF_INT == 8)
                    666: 
                    667:   i = 1; si_test[i].num = 0x7FFFFFFFFFFFFFFF; si_test[i].expected = "9223372036854775807";
                    668:   i++; si_test[i].num = 0x7FFFFFFFFFFFFFFE; si_test[i].expected = "9223372036854775806";
                    669:   i++; si_test[i].num = 0x7FFFFFFFFFFFFFFD; si_test[i].expected = "9223372036854775805";
                    670:   i++; si_test[i].num = 0x7FFFFFFF00000000; si_test[i].expected = "9223372032559808512";
                    671:   i++; si_test[i].num = 0x000000007FFFFFFF; si_test[i].expected = "2147483647";
                    672: 
                    673:   i++; si_test[i].num = 0x7FFF000000000000; si_test[i].expected = "9223090561878065152";
                    674:   i++; si_test[i].num = 0x00007FFF00000000; si_test[i].expected = "140733193388032";
                    675:   i++; si_test[i].num = 0x000000007FFF0000; si_test[i].expected = "2147418112";
                    676:   i++; si_test[i].num = 0x0000000000007FFF; si_test[i].expected = "32767";
                    677: 
                    678:   i++; si_test[i].num = 0x7F00000000000000; si_test[i].expected = "9151314442816847872";
                    679:   i++; si_test[i].num = 0x007F000000000000; si_test[i].expected = "35747322042253312";
                    680:   i++; si_test[i].num = 0x00007F0000000000; si_test[i].expected = "139637976727552";
                    681:   i++; si_test[i].num = 0x0000007F00000000; si_test[i].expected = "545460846592";
                    682:   i++; si_test[i].num = 0x000000007F000000; si_test[i].expected = "2130706432";
                    683:   i++; si_test[i].num = 0x00000000007F0000; si_test[i].expected = "8323072";
                    684:   i++; si_test[i].num = 0x0000000000007F00; si_test[i].expected = "32512";
                    685:   i++; si_test[i].num = 0x000000000000007F; si_test[i].expected = "127";
                    686: 
                    687:   i++; si_test[i].num = 0x7000000000000000; si_test[i].expected = "8070450532247928832";
                    688:   i++; si_test[i].num = 0x0700000000000000; si_test[i].expected = "504403158265495552";
                    689:   i++; si_test[i].num = 0x0070000000000000; si_test[i].expected = "31525197391593472";
                    690:   i++; si_test[i].num = 0x0007000000000000; si_test[i].expected = "1970324836974592";
                    691:   i++; si_test[i].num = 0x0000700000000000; si_test[i].expected = "123145302310912";
                    692:   i++; si_test[i].num = 0x0000070000000000; si_test[i].expected = "7696581394432";
                    693:   i++; si_test[i].num = 0x0000007000000000; si_test[i].expected = "481036337152";
                    694:   i++; si_test[i].num = 0x0000000700000000; si_test[i].expected = "30064771072";
                    695:   i++; si_test[i].num = 0x0000000070000000; si_test[i].expected = "1879048192";
                    696:   i++; si_test[i].num = 0x0000000007000000; si_test[i].expected = "117440512";
                    697:   i++; si_test[i].num = 0x0000000000700000; si_test[i].expected = "7340032";
                    698:   i++; si_test[i].num = 0x0000000000070000; si_test[i].expected = "458752";
                    699:   i++; si_test[i].num = 0x0000000000007000; si_test[i].expected = "28672";
                    700:   i++; si_test[i].num = 0x0000000000000700; si_test[i].expected = "1792";
                    701:   i++; si_test[i].num = 0x0000000000000070; si_test[i].expected = "112";
                    702:   i++; si_test[i].num = 0x0000000000000007; si_test[i].expected = "7";
                    703: 
                    704:   i++; si_test[i].num = 0x0000000000000001; si_test[i].expected = "1";
                    705:   i++; si_test[i].num = 0x0000000000000000; si_test[i].expected = "0";
                    706: 
                    707:   i++; si_test[i].num = -0x7FFFFFFFFFFFFFFF -1; si_test[i].expected = "-9223372036854775808";
                    708:   i++; si_test[i].num = -0x7FFFFFFFFFFFFFFE -1; si_test[i].expected = "-9223372036854775807";
                    709:   i++; si_test[i].num = -0x7FFFFFFFFFFFFFFD -1; si_test[i].expected = "-9223372036854775806";
                    710:   i++; si_test[i].num = -0x7FFFFFFF00000000 -1; si_test[i].expected = "-9223372032559808513";
                    711:   i++; si_test[i].num = -0x000000007FFFFFFF -1; si_test[i].expected = "-2147483648";
                    712: 
                    713:   i++; si_test[i].num = -0x7FFF000000000000 -1; si_test[i].expected = "-9223090561878065153";
                    714:   i++; si_test[i].num = -0x00007FFF00000000 -1; si_test[i].expected = "-140733193388033";
                    715:   i++; si_test[i].num = -0x000000007FFF0000 -1; si_test[i].expected = "-2147418113";
                    716:   i++; si_test[i].num = -0x0000000000007FFF -1; si_test[i].expected = "-32768";
                    717: 
                    718:   i++; si_test[i].num = -0x7F00000000000000 -1; si_test[i].expected = "-9151314442816847873";
                    719:   i++; si_test[i].num = -0x007F000000000000 -1; si_test[i].expected = "-35747322042253313";
                    720:   i++; si_test[i].num = -0x00007F0000000000 -1; si_test[i].expected = "-139637976727553";
                    721:   i++; si_test[i].num = -0x0000007F00000000 -1; si_test[i].expected = "-545460846593";
                    722:   i++; si_test[i].num = -0x000000007F000000 -1; si_test[i].expected = "-2130706433";
                    723:   i++; si_test[i].num = -0x00000000007F0000 -1; si_test[i].expected = "-8323073";
                    724:   i++; si_test[i].num = -0x0000000000007F00 -1; si_test[i].expected = "-32513";
                    725:   i++; si_test[i].num = -0x000000000000007F -1; si_test[i].expected = "-128";
                    726: 
                    727:   i++; si_test[i].num = -0x7000000000000000 -1; si_test[i].expected = "-8070450532247928833";
                    728:   i++; si_test[i].num = -0x0700000000000000 -1; si_test[i].expected = "-504403158265495553";
                    729:   i++; si_test[i].num = -0x0070000000000000 -1; si_test[i].expected = "-31525197391593473";
                    730:   i++; si_test[i].num = -0x0007000000000000 -1; si_test[i].expected = "-1970324836974593";
                    731:   i++; si_test[i].num = -0x0000700000000000 -1; si_test[i].expected = "-123145302310913";
                    732:   i++; si_test[i].num = -0x0000070000000000 -1; si_test[i].expected = "-7696581394433";
                    733:   i++; si_test[i].num = -0x0000007000000000 -1; si_test[i].expected = "-481036337153";
                    734:   i++; si_test[i].num = -0x0000000700000000 -1; si_test[i].expected = "-30064771073";
                    735:   i++; si_test[i].num = -0x0000000070000000 -1; si_test[i].expected = "-1879048193";
                    736:   i++; si_test[i].num = -0x0000000007000000 -1; si_test[i].expected = "-117440513";
                    737:   i++; si_test[i].num = -0x0000000000700000 -1; si_test[i].expected = "-7340033";
                    738:   i++; si_test[i].num = -0x0000000000070000 -1; si_test[i].expected = "-458753";
                    739:   i++; si_test[i].num = -0x0000000000007000 -1; si_test[i].expected = "-28673";
                    740:   i++; si_test[i].num = -0x0000000000000700 -1; si_test[i].expected = "-1793";
                    741:   i++; si_test[i].num = -0x0000000000000070 -1; si_test[i].expected = "-113";
                    742:   i++; si_test[i].num = -0x0000000000000007 -1; si_test[i].expected = "-8";
                    743: 
                    744:   i++; si_test[i].num =  0x0000000000000000 -1; si_test[i].expected = "-1";
                    745: 
                    746:   num_sint_tests = i;
                    747: 
                    748: #endif
                    749: 
                    750:   for(i = 1; i <= num_sint_tests; i++) {
                    751: 
                    752:     for(j = 0; j<BUFSZ; j++)
                    753:       si_test[i].result[j] = 'X';
                    754:     si_test[i].result[BUFSZ-1] = '\0';
                    755: 
                    756:     (void)curl_msprintf(si_test[i].result, "%d", si_test[i].num);
                    757: 
                    758:     if(memcmp(si_test[i].result,
                    759:               si_test[i].expected,
                    760:               strlen(si_test[i].expected))) {
                    761:       printf("signed int test #%.2d: Failed (Expected: %s Got: %s)\n",
                    762:              i, si_test[i].expected, si_test[i].result);
                    763:       failed++;
                    764:     }
                    765: 
                    766:   }
                    767: 
                    768:   if(!failed)
                    769:     printf("All curl_mprintf() signed int tests OK!\n");
                    770:   else
                    771:     printf("Some curl_mprintf() signed int tests Failed!\n");
                    772: 
                    773:   return failed;
                    774: }
                    775: 
                    776: 
                    777: static int test_unsigned_long_formatting(void)
                    778: {
                    779:   int i, j;
                    780:   int num_ulong_tests = 0;
                    781:   int failed = 0;
                    782: 
                    783: #if (SIZEOF_LONG == 2)
                    784: 
                    785:   i = 1; ul_test[i].num = 0xFFFFUL; ul_test[i].expected = "65535";
                    786:   i++; ul_test[i].num = 0xFF00UL; ul_test[i].expected = "65280";
                    787:   i++; ul_test[i].num = 0x00FFUL; ul_test[i].expected = "255";
                    788: 
                    789:   i++; ul_test[i].num = 0xF000UL; ul_test[i].expected = "61440";
                    790:   i++; ul_test[i].num = 0x0F00UL; ul_test[i].expected = "3840";
                    791:   i++; ul_test[i].num = 0x00F0UL; ul_test[i].expected = "240";
                    792:   i++; ul_test[i].num = 0x000FUL; ul_test[i].expected = "15";
                    793: 
                    794:   i++; ul_test[i].num = 0xC000UL; ul_test[i].expected = "49152";
                    795:   i++; ul_test[i].num = 0x0C00UL; ul_test[i].expected = "3072";
                    796:   i++; ul_test[i].num = 0x00C0UL; ul_test[i].expected = "192";
                    797:   i++; ul_test[i].num = 0x000CUL; ul_test[i].expected = "12";
                    798: 
                    799:   i++; ul_test[i].num = 0x0001UL; ul_test[i].expected = "1";
                    800:   i++; ul_test[i].num = 0x0000UL; ul_test[i].expected = "0";
                    801: 
                    802:   num_ulong_tests = i;
                    803: 
                    804: #elif (SIZEOF_LONG == 4)
                    805: 
                    806:   i = 1; ul_test[i].num = 0xFFFFFFFFUL; ul_test[i].expected = "4294967295";
                    807:   i++; ul_test[i].num = 0xFFFF0000UL; ul_test[i].expected = "4294901760";
                    808:   i++; ul_test[i].num = 0x0000FFFFUL; ul_test[i].expected = "65535";
                    809: 
                    810:   i++; ul_test[i].num = 0xFF000000UL; ul_test[i].expected = "4278190080";
                    811:   i++; ul_test[i].num = 0x00FF0000UL; ul_test[i].expected = "16711680";
                    812:   i++; ul_test[i].num = 0x0000FF00UL; ul_test[i].expected = "65280";
                    813:   i++; ul_test[i].num = 0x000000FFUL; ul_test[i].expected = "255";
                    814: 
                    815:   i++; ul_test[i].num = 0xF0000000UL; ul_test[i].expected = "4026531840";
                    816:   i++; ul_test[i].num = 0x0F000000UL; ul_test[i].expected = "251658240";
                    817:   i++; ul_test[i].num = 0x00F00000UL; ul_test[i].expected = "15728640";
                    818:   i++; ul_test[i].num = 0x000F0000UL; ul_test[i].expected = "983040";
                    819:   i++; ul_test[i].num = 0x0000F000UL; ul_test[i].expected = "61440";
                    820:   i++; ul_test[i].num = 0x00000F00UL; ul_test[i].expected = "3840";
                    821:   i++; ul_test[i].num = 0x000000F0UL; ul_test[i].expected = "240";
                    822:   i++; ul_test[i].num = 0x0000000FUL; ul_test[i].expected = "15";
                    823: 
                    824:   i++; ul_test[i].num = 0xC0000000UL; ul_test[i].expected = "3221225472";
                    825:   i++; ul_test[i].num = 0x0C000000UL; ul_test[i].expected = "201326592";
                    826:   i++; ul_test[i].num = 0x00C00000UL; ul_test[i].expected = "12582912";
                    827:   i++; ul_test[i].num = 0x000C0000UL; ul_test[i].expected = "786432";
                    828:   i++; ul_test[i].num = 0x0000C000UL; ul_test[i].expected = "49152";
                    829:   i++; ul_test[i].num = 0x00000C00UL; ul_test[i].expected = "3072";
                    830:   i++; ul_test[i].num = 0x000000C0UL; ul_test[i].expected = "192";
                    831:   i++; ul_test[i].num = 0x0000000CUL; ul_test[i].expected = "12";
                    832: 
                    833:   i++; ul_test[i].num = 0x00000001UL; ul_test[i].expected = "1";
                    834:   i++; ul_test[i].num = 0x00000000UL; ul_test[i].expected = "0";
                    835: 
                    836:   num_ulong_tests = i;
                    837: 
                    838: #elif (SIZEOF_LONG == 8)
                    839: 
                    840:   i = 1; ul_test[i].num = 0xFFFFFFFFFFFFFFFFUL; ul_test[i].expected = "18446744073709551615";
                    841:   i++; ul_test[i].num = 0xFFFFFFFF00000000UL; ul_test[i].expected = "18446744069414584320";
                    842:   i++; ul_test[i].num = 0x00000000FFFFFFFFUL; ul_test[i].expected = "4294967295";
                    843: 
                    844:   i++; ul_test[i].num = 0xFFFF000000000000UL; ul_test[i].expected = "18446462598732840960";
                    845:   i++; ul_test[i].num = 0x0000FFFF00000000UL; ul_test[i].expected = "281470681743360";
                    846:   i++; ul_test[i].num = 0x00000000FFFF0000UL; ul_test[i].expected = "4294901760";
                    847:   i++; ul_test[i].num = 0x000000000000FFFFUL; ul_test[i].expected = "65535";
                    848: 
                    849:   i++; ul_test[i].num = 0xFF00000000000000UL; ul_test[i].expected = "18374686479671623680";
                    850:   i++; ul_test[i].num = 0x00FF000000000000UL; ul_test[i].expected = "71776119061217280";
                    851:   i++; ul_test[i].num = 0x0000FF0000000000UL; ul_test[i].expected = "280375465082880";
                    852:   i++; ul_test[i].num = 0x000000FF00000000UL; ul_test[i].expected = "1095216660480";
                    853:   i++; ul_test[i].num = 0x00000000FF000000UL; ul_test[i].expected = "4278190080";
                    854:   i++; ul_test[i].num = 0x0000000000FF0000UL; ul_test[i].expected = "16711680";
                    855:   i++; ul_test[i].num = 0x000000000000FF00UL; ul_test[i].expected = "65280";
                    856:   i++; ul_test[i].num = 0x00000000000000FFUL; ul_test[i].expected = "255";
                    857: 
                    858:   i++; ul_test[i].num = 0xF000000000000000UL; ul_test[i].expected = "17293822569102704640";
                    859:   i++; ul_test[i].num = 0x0F00000000000000UL; ul_test[i].expected = "1080863910568919040";
                    860:   i++; ul_test[i].num = 0x00F0000000000000UL; ul_test[i].expected = "67553994410557440";
                    861:   i++; ul_test[i].num = 0x000F000000000000UL; ul_test[i].expected = "4222124650659840";
                    862:   i++; ul_test[i].num = 0x0000F00000000000UL; ul_test[i].expected = "263882790666240";
                    863:   i++; ul_test[i].num = 0x00000F0000000000UL; ul_test[i].expected = "16492674416640";
                    864:   i++; ul_test[i].num = 0x000000F000000000UL; ul_test[i].expected = "1030792151040";
                    865:   i++; ul_test[i].num = 0x0000000F00000000UL; ul_test[i].expected = "64424509440";
                    866:   i++; ul_test[i].num = 0x00000000F0000000UL; ul_test[i].expected = "4026531840";
                    867:   i++; ul_test[i].num = 0x000000000F000000UL; ul_test[i].expected = "251658240";
                    868:   i++; ul_test[i].num = 0x0000000000F00000UL; ul_test[i].expected = "15728640";
                    869:   i++; ul_test[i].num = 0x00000000000F0000UL; ul_test[i].expected = "983040";
                    870:   i++; ul_test[i].num = 0x000000000000F000UL; ul_test[i].expected = "61440";
                    871:   i++; ul_test[i].num = 0x0000000000000F00UL; ul_test[i].expected = "3840";
                    872:   i++; ul_test[i].num = 0x00000000000000F0UL; ul_test[i].expected = "240";
                    873:   i++; ul_test[i].num = 0x000000000000000FUL; ul_test[i].expected = "15";
                    874: 
                    875:   i++; ul_test[i].num = 0xC000000000000000UL; ul_test[i].expected = "13835058055282163712";
                    876:   i++; ul_test[i].num = 0x0C00000000000000UL; ul_test[i].expected = "864691128455135232";
                    877:   i++; ul_test[i].num = 0x00C0000000000000UL; ul_test[i].expected = "54043195528445952";
                    878:   i++; ul_test[i].num = 0x000C000000000000UL; ul_test[i].expected = "3377699720527872";
                    879:   i++; ul_test[i].num = 0x0000C00000000000UL; ul_test[i].expected = "211106232532992";
                    880:   i++; ul_test[i].num = 0x00000C0000000000UL; ul_test[i].expected = "13194139533312";
                    881:   i++; ul_test[i].num = 0x000000C000000000UL; ul_test[i].expected = "824633720832";
                    882:   i++; ul_test[i].num = 0x0000000C00000000UL; ul_test[i].expected = "51539607552";
                    883:   i++; ul_test[i].num = 0x00000000C0000000UL; ul_test[i].expected = "3221225472";
                    884:   i++; ul_test[i].num = 0x000000000C000000UL; ul_test[i].expected = "201326592";
                    885:   i++; ul_test[i].num = 0x0000000000C00000UL; ul_test[i].expected = "12582912";
                    886:   i++; ul_test[i].num = 0x00000000000C0000UL; ul_test[i].expected = "786432";
                    887:   i++; ul_test[i].num = 0x000000000000C000UL; ul_test[i].expected = "49152";
                    888:   i++; ul_test[i].num = 0x0000000000000C00UL; ul_test[i].expected = "3072";
                    889:   i++; ul_test[i].num = 0x00000000000000C0UL; ul_test[i].expected = "192";
                    890:   i++; ul_test[i].num = 0x000000000000000CUL; ul_test[i].expected = "12";
                    891: 
                    892:   i++; ul_test[i].num = 0x00000001UL; ul_test[i].expected = "1";
                    893:   i++; ul_test[i].num = 0x00000000UL; ul_test[i].expected = "0";
                    894: 
                    895:   num_ulong_tests = i;
                    896: 
                    897: #endif
                    898: 
                    899:   for(i = 1; i <= num_ulong_tests; i++) {
                    900: 
                    901:     for(j = 0; j<BUFSZ; j++)
                    902:       ul_test[i].result[j] = 'X';
                    903:     ul_test[i].result[BUFSZ-1] = '\0';
                    904: 
                    905:     (void)curl_msprintf(ul_test[i].result, "%lu", ul_test[i].num);
                    906: 
                    907:     if(memcmp(ul_test[i].result,
                    908:                ul_test[i].expected,
                    909:                strlen(ul_test[i].expected))) {
                    910:       printf("unsigned long test #%.2d: Failed (Expected: %s Got: %s)\n",
                    911:              i, ul_test[i].expected, ul_test[i].result);
                    912:       failed++;
                    913:     }
                    914: 
                    915:   }
                    916: 
                    917:   if(!failed)
                    918:     printf("All curl_mprintf() unsigned long tests OK!\n");
                    919:   else
                    920:     printf("Some curl_mprintf() unsigned long tests Failed!\n");
                    921: 
                    922:   return failed;
                    923: }
                    924: 
                    925: 
                    926: static int test_signed_long_formatting(void)
                    927: {
                    928:   int i, j;
                    929:   int num_slong_tests = 0;
                    930:   int failed = 0;
                    931: 
                    932: #if (SIZEOF_LONG == 2)
                    933: 
                    934:   i = 1; sl_test[i].num = 0x7FFFL; sl_test[i].expected = "32767";
                    935:   i++; sl_test[i].num = 0x7FFEL; sl_test[i].expected = "32766";
                    936:   i++; sl_test[i].num = 0x7FFDL; sl_test[i].expected = "32765";
                    937:   i++; sl_test[i].num = 0x7F00L; sl_test[i].expected = "32512";
                    938:   i++; sl_test[i].num = 0x07F0L; sl_test[i].expected = "2032";
                    939:   i++; sl_test[i].num = 0x007FL; sl_test[i].expected = "127";
                    940: 
                    941:   i++; sl_test[i].num = 0x7000L; sl_test[i].expected = "28672";
                    942:   i++; sl_test[i].num = 0x0700L; sl_test[i].expected = "1792";
                    943:   i++; sl_test[i].num = 0x0070L; sl_test[i].expected = "112";
                    944:   i++; sl_test[i].num = 0x0007L; sl_test[i].expected = "7";
                    945: 
                    946:   i++; sl_test[i].num = 0x5000L; sl_test[i].expected = "20480";
                    947:   i++; sl_test[i].num = 0x0500L; sl_test[i].expected = "1280";
                    948:   i++; sl_test[i].num = 0x0050L; sl_test[i].expected = "80";
                    949:   i++; sl_test[i].num = 0x0005L; sl_test[i].expected = "5";
                    950: 
                    951:   i++; sl_test[i].num = 0x0001L; sl_test[i].expected = "1";
                    952:   i++; sl_test[i].num = 0x0000L; sl_test[i].expected = "0";
                    953: 
                    954:   i++; sl_test[i].num = -0x7FFFL -1L; sl_test[i].expected = "-32768";
                    955:   i++; sl_test[i].num = -0x7FFEL -1L; sl_test[i].expected = "-32767";
                    956:   i++; sl_test[i].num = -0x7FFDL -1L; sl_test[i].expected = "-32766";
                    957:   i++; sl_test[i].num = -0x7F00L -1L; sl_test[i].expected = "-32513";
                    958:   i++; sl_test[i].num = -0x07F0L -1L; sl_test[i].expected = "-2033";
                    959:   i++; sl_test[i].num = -0x007FL -1L; sl_test[i].expected = "-128";
                    960: 
                    961:   i++; sl_test[i].num = -0x7000L -1L; sl_test[i].expected = "-28673";
                    962:   i++; sl_test[i].num = -0x0700L -1L; sl_test[i].expected = "-1793";
                    963:   i++; sl_test[i].num = -0x0070L -1L; sl_test[i].expected = "-113";
                    964:   i++; sl_test[i].num = -0x0007L -1L; sl_test[i].expected = "-8";
                    965: 
                    966:   i++; sl_test[i].num = -0x5000L -1L; sl_test[i].expected = "-20481";
                    967:   i++; sl_test[i].num = -0x0500L -1L; sl_test[i].expected = "-1281";
                    968:   i++; sl_test[i].num = -0x0050L -1L; sl_test[i].expected = "-81";
                    969:   i++; sl_test[i].num = -0x0005L -1L; sl_test[i].expected = "-6";
                    970: 
                    971:   i++; sl_test[i].num =  0x0000L -1L; sl_test[i].expected = "-1";
                    972: 
                    973:   num_slong_tests = i;
                    974: 
                    975: #elif (SIZEOF_LONG == 4)
                    976: 
                    977:   i = 1; sl_test[i].num = 0x7FFFFFFFL; sl_test[i].expected = "2147483647";
                    978:   i++; sl_test[i].num = 0x7FFFFFFEL; sl_test[i].expected = "2147483646";
                    979:   i++; sl_test[i].num = 0x7FFFFFFDL; sl_test[i].expected = "2147483645";
                    980:   i++; sl_test[i].num = 0x7FFF0000L; sl_test[i].expected = "2147418112";
                    981:   i++; sl_test[i].num = 0x00007FFFL; sl_test[i].expected = "32767";
                    982: 
                    983:   i++; sl_test[i].num = 0x7F000000L; sl_test[i].expected = "2130706432";
                    984:   i++; sl_test[i].num = 0x007F0000L; sl_test[i].expected = "8323072";
                    985:   i++; sl_test[i].num = 0x00007F00L; sl_test[i].expected = "32512";
                    986:   i++; sl_test[i].num = 0x0000007FL; sl_test[i].expected = "127";
                    987: 
                    988:   i++; sl_test[i].num = 0x70000000L; sl_test[i].expected = "1879048192";
                    989:   i++; sl_test[i].num = 0x07000000L; sl_test[i].expected = "117440512";
                    990:   i++; sl_test[i].num = 0x00700000L; sl_test[i].expected = "7340032";
                    991:   i++; sl_test[i].num = 0x00070000L; sl_test[i].expected = "458752";
                    992:   i++; sl_test[i].num = 0x00007000L; sl_test[i].expected = "28672";
                    993:   i++; sl_test[i].num = 0x00000700L; sl_test[i].expected = "1792";
                    994:   i++; sl_test[i].num = 0x00000070L; sl_test[i].expected = "112";
                    995:   i++; sl_test[i].num = 0x00000007L; sl_test[i].expected = "7";
                    996: 
                    997:   i++; sl_test[i].num = 0x50000000L; sl_test[i].expected = "1342177280";
                    998:   i++; sl_test[i].num = 0x05000000L; sl_test[i].expected = "83886080";
                    999:   i++; sl_test[i].num = 0x00500000L; sl_test[i].expected = "5242880";
                   1000:   i++; sl_test[i].num = 0x00050000L; sl_test[i].expected = "327680";
                   1001:   i++; sl_test[i].num = 0x00005000L; sl_test[i].expected = "20480";
                   1002:   i++; sl_test[i].num = 0x00000500L; sl_test[i].expected = "1280";
                   1003:   i++; sl_test[i].num = 0x00000050L; sl_test[i].expected = "80";
                   1004:   i++; sl_test[i].num = 0x00000005L; sl_test[i].expected = "5";
                   1005: 
                   1006:   i++; sl_test[i].num = 0x00000001L; sl_test[i].expected = "1";
                   1007:   i++; sl_test[i].num = 0x00000000L; sl_test[i].expected = "0";
                   1008: 
                   1009:   i++; sl_test[i].num = -0x7FFFFFFFL -1L; sl_test[i].expected = "-2147483648";
                   1010:   i++; sl_test[i].num = -0x7FFFFFFEL -1L; sl_test[i].expected = "-2147483647";
                   1011:   i++; sl_test[i].num = -0x7FFFFFFDL -1L; sl_test[i].expected = "-2147483646";
                   1012:   i++; sl_test[i].num = -0x7FFF0000L -1L; sl_test[i].expected = "-2147418113";
                   1013:   i++; sl_test[i].num = -0x00007FFFL -1L; sl_test[i].expected = "-32768";
                   1014: 
                   1015:   i++; sl_test[i].num = -0x7F000000L -1L; sl_test[i].expected = "-2130706433";
                   1016:   i++; sl_test[i].num = -0x007F0000L -1L; sl_test[i].expected = "-8323073";
                   1017:   i++; sl_test[i].num = -0x00007F00L -1L; sl_test[i].expected = "-32513";
                   1018:   i++; sl_test[i].num = -0x0000007FL -1L; sl_test[i].expected = "-128";
                   1019: 
                   1020:   i++; sl_test[i].num = -0x70000000L -1L; sl_test[i].expected = "-1879048193";
                   1021:   i++; sl_test[i].num = -0x07000000L -1L; sl_test[i].expected = "-117440513";
                   1022:   i++; sl_test[i].num = -0x00700000L -1L; sl_test[i].expected = "-7340033";
                   1023:   i++; sl_test[i].num = -0x00070000L -1L; sl_test[i].expected = "-458753";
                   1024:   i++; sl_test[i].num = -0x00007000L -1L; sl_test[i].expected = "-28673";
                   1025:   i++; sl_test[i].num = -0x00000700L -1L; sl_test[i].expected = "-1793";
                   1026:   i++; sl_test[i].num = -0x00000070L -1L; sl_test[i].expected = "-113";
                   1027:   i++; sl_test[i].num = -0x00000007L -1L; sl_test[i].expected = "-8";
                   1028: 
                   1029:   i++; sl_test[i].num = -0x50000000L -1L; sl_test[i].expected = "-1342177281";
                   1030:   i++; sl_test[i].num = -0x05000000L -1L; sl_test[i].expected = "-83886081";
                   1031:   i++; sl_test[i].num = -0x00500000L -1L; sl_test[i].expected = "-5242881";
                   1032:   i++; sl_test[i].num = -0x00050000L -1L; sl_test[i].expected = "-327681";
                   1033:   i++; sl_test[i].num = -0x00005000L -1L; sl_test[i].expected = "-20481";
                   1034:   i++; sl_test[i].num = -0x00000500L -1L; sl_test[i].expected = "-1281";
                   1035:   i++; sl_test[i].num = -0x00000050L -1L; sl_test[i].expected = "-81";
                   1036:   i++; sl_test[i].num = -0x00000005L -1L; sl_test[i].expected = "-6";
                   1037: 
                   1038:   i++; sl_test[i].num =  0x00000000L -1L; sl_test[i].expected = "-1";
                   1039: 
                   1040:   num_slong_tests = i;
                   1041: 
                   1042: #elif (SIZEOF_LONG == 8)
                   1043: 
                   1044:   i = 1; sl_test[i].num = 0x7FFFFFFFFFFFFFFFL; sl_test[i].expected = "9223372036854775807";
                   1045:   i++; sl_test[i].num = 0x7FFFFFFFFFFFFFFEL; sl_test[i].expected = "9223372036854775806";
                   1046:   i++; sl_test[i].num = 0x7FFFFFFFFFFFFFFDL; sl_test[i].expected = "9223372036854775805";
                   1047:   i++; sl_test[i].num = 0x7FFFFFFF00000000L; sl_test[i].expected = "9223372032559808512";
                   1048:   i++; sl_test[i].num = 0x000000007FFFFFFFL; sl_test[i].expected = "2147483647";
                   1049: 
                   1050:   i++; sl_test[i].num = 0x7FFF000000000000L; sl_test[i].expected = "9223090561878065152";
                   1051:   i++; sl_test[i].num = 0x00007FFF00000000L; sl_test[i].expected = "140733193388032";
                   1052:   i++; sl_test[i].num = 0x000000007FFF0000L; sl_test[i].expected = "2147418112";
                   1053:   i++; sl_test[i].num = 0x0000000000007FFFL; sl_test[i].expected = "32767";
                   1054: 
                   1055:   i++; sl_test[i].num = 0x7F00000000000000L; sl_test[i].expected = "9151314442816847872";
                   1056:   i++; sl_test[i].num = 0x007F000000000000L; sl_test[i].expected = "35747322042253312";
                   1057:   i++; sl_test[i].num = 0x00007F0000000000L; sl_test[i].expected = "139637976727552";
                   1058:   i++; sl_test[i].num = 0x0000007F00000000L; sl_test[i].expected = "545460846592";
                   1059:   i++; sl_test[i].num = 0x000000007F000000L; sl_test[i].expected = "2130706432";
                   1060:   i++; sl_test[i].num = 0x00000000007F0000L; sl_test[i].expected = "8323072";
                   1061:   i++; sl_test[i].num = 0x0000000000007F00L; sl_test[i].expected = "32512";
                   1062:   i++; sl_test[i].num = 0x000000000000007FL; sl_test[i].expected = "127";
                   1063: 
                   1064:   i++; sl_test[i].num = 0x7000000000000000L; sl_test[i].expected = "8070450532247928832";
                   1065:   i++; sl_test[i].num = 0x0700000000000000L; sl_test[i].expected = "504403158265495552";
                   1066:   i++; sl_test[i].num = 0x0070000000000000L; sl_test[i].expected = "31525197391593472";
                   1067:   i++; sl_test[i].num = 0x0007000000000000L; sl_test[i].expected = "1970324836974592";
                   1068:   i++; sl_test[i].num = 0x0000700000000000L; sl_test[i].expected = "123145302310912";
                   1069:   i++; sl_test[i].num = 0x0000070000000000L; sl_test[i].expected = "7696581394432";
                   1070:   i++; sl_test[i].num = 0x0000007000000000L; sl_test[i].expected = "481036337152";
                   1071:   i++; sl_test[i].num = 0x0000000700000000L; sl_test[i].expected = "30064771072";
                   1072:   i++; sl_test[i].num = 0x0000000070000000L; sl_test[i].expected = "1879048192";
                   1073:   i++; sl_test[i].num = 0x0000000007000000L; sl_test[i].expected = "117440512";
                   1074:   i++; sl_test[i].num = 0x0000000000700000L; sl_test[i].expected = "7340032";
                   1075:   i++; sl_test[i].num = 0x0000000000070000L; sl_test[i].expected = "458752";
                   1076:   i++; sl_test[i].num = 0x0000000000007000L; sl_test[i].expected = "28672";
                   1077:   i++; sl_test[i].num = 0x0000000000000700L; sl_test[i].expected = "1792";
                   1078:   i++; sl_test[i].num = 0x0000000000000070L; sl_test[i].expected = "112";
                   1079:   i++; sl_test[i].num = 0x0000000000000007L; sl_test[i].expected = "7";
                   1080: 
                   1081:   i++; sl_test[i].num = 0x0000000000000001L; sl_test[i].expected = "1";
                   1082:   i++; sl_test[i].num = 0x0000000000000000L; sl_test[i].expected = "0";
                   1083: 
                   1084:   i++; sl_test[i].num = -0x7FFFFFFFFFFFFFFFL -1L; sl_test[i].expected = "-9223372036854775808";
                   1085:   i++; sl_test[i].num = -0x7FFFFFFFFFFFFFFEL -1L; sl_test[i].expected = "-9223372036854775807";
                   1086:   i++; sl_test[i].num = -0x7FFFFFFFFFFFFFFDL -1L; sl_test[i].expected = "-9223372036854775806";
                   1087:   i++; sl_test[i].num = -0x7FFFFFFF00000000L -1L; sl_test[i].expected = "-9223372032559808513";
                   1088:   i++; sl_test[i].num = -0x000000007FFFFFFFL -1L; sl_test[i].expected = "-2147483648";
                   1089: 
                   1090:   i++; sl_test[i].num = -0x7FFF000000000000L -1L; sl_test[i].expected = "-9223090561878065153";
                   1091:   i++; sl_test[i].num = -0x00007FFF00000000L -1L; sl_test[i].expected = "-140733193388033";
                   1092:   i++; sl_test[i].num = -0x000000007FFF0000L -1L; sl_test[i].expected = "-2147418113";
                   1093:   i++; sl_test[i].num = -0x0000000000007FFFL -1L; sl_test[i].expected = "-32768";
                   1094: 
                   1095:   i++; sl_test[i].num = -0x7F00000000000000L -1L; sl_test[i].expected = "-9151314442816847873";
                   1096:   i++; sl_test[i].num = -0x007F000000000000L -1L; sl_test[i].expected = "-35747322042253313";
                   1097:   i++; sl_test[i].num = -0x00007F0000000000L -1L; sl_test[i].expected = "-139637976727553";
                   1098:   i++; sl_test[i].num = -0x0000007F00000000L -1L; sl_test[i].expected = "-545460846593";
                   1099:   i++; sl_test[i].num = -0x000000007F000000L -1L; sl_test[i].expected = "-2130706433";
                   1100:   i++; sl_test[i].num = -0x00000000007F0000L -1L; sl_test[i].expected = "-8323073";
                   1101:   i++; sl_test[i].num = -0x0000000000007F00L -1L; sl_test[i].expected = "-32513";
                   1102:   i++; sl_test[i].num = -0x000000000000007FL -1L; sl_test[i].expected = "-128";
                   1103: 
                   1104:   i++; sl_test[i].num = -0x7000000000000000L -1L; sl_test[i].expected = "-8070450532247928833";
                   1105:   i++; sl_test[i].num = -0x0700000000000000L -1L; sl_test[i].expected = "-504403158265495553";
                   1106:   i++; sl_test[i].num = -0x0070000000000000L -1L; sl_test[i].expected = "-31525197391593473";
                   1107:   i++; sl_test[i].num = -0x0007000000000000L -1L; sl_test[i].expected = "-1970324836974593";
                   1108:   i++; sl_test[i].num = -0x0000700000000000L -1L; sl_test[i].expected = "-123145302310913";
                   1109:   i++; sl_test[i].num = -0x0000070000000000L -1L; sl_test[i].expected = "-7696581394433";
                   1110:   i++; sl_test[i].num = -0x0000007000000000L -1L; sl_test[i].expected = "-481036337153";
                   1111:   i++; sl_test[i].num = -0x0000000700000000L -1L; sl_test[i].expected = "-30064771073";
                   1112:   i++; sl_test[i].num = -0x0000000070000000L -1L; sl_test[i].expected = "-1879048193";
                   1113:   i++; sl_test[i].num = -0x0000000007000000L -1L; sl_test[i].expected = "-117440513";
                   1114:   i++; sl_test[i].num = -0x0000000000700000L -1L; sl_test[i].expected = "-7340033";
                   1115:   i++; sl_test[i].num = -0x0000000000070000L -1L; sl_test[i].expected = "-458753";
                   1116:   i++; sl_test[i].num = -0x0000000000007000L -1L; sl_test[i].expected = "-28673";
                   1117:   i++; sl_test[i].num = -0x0000000000000700L -1L; sl_test[i].expected = "-1793";
                   1118:   i++; sl_test[i].num = -0x0000000000000070L -1L; sl_test[i].expected = "-113";
                   1119:   i++; sl_test[i].num = -0x0000000000000007L -1L; sl_test[i].expected = "-8";
                   1120: 
                   1121:   i++; sl_test[i].num =  0x0000000000000000L -1L; sl_test[i].expected = "-1";
                   1122: 
                   1123:   num_slong_tests = i;
                   1124: 
                   1125: #endif
                   1126: 
                   1127:   for(i = 1; i <= num_slong_tests; i++) {
                   1128: 
                   1129:     for(j = 0; j<BUFSZ; j++)
                   1130:       sl_test[i].result[j] = 'X';
                   1131:     sl_test[i].result[BUFSZ-1] = '\0';
                   1132: 
                   1133:     (void)curl_msprintf(sl_test[i].result, "%ld", sl_test[i].num);
                   1134: 
                   1135:     if(memcmp(sl_test[i].result,
                   1136:               sl_test[i].expected,
                   1137:               strlen(sl_test[i].expected))) {
                   1138:       printf("signed long test #%.2d: Failed (Expected: %s Got: %s)\n",
                   1139:              i, sl_test[i].expected, sl_test[i].result);
                   1140:       failed++;
                   1141:     }
                   1142: 
                   1143:   }
                   1144: 
                   1145:   if(!failed)
                   1146:     printf("All curl_mprintf() signed long tests OK!\n");
                   1147:   else
                   1148:     printf("Some curl_mprintf() signed long tests Failed!\n");
                   1149: 
                   1150:   return failed;
                   1151: }
                   1152: 
                   1153: 
                   1154: static int test_curl_off_t_formatting(void)
                   1155: {
                   1156:   int i, j;
                   1157:   int num_cofft_tests = 0;
                   1158:   int failed = 0;
                   1159: 
                   1160: #if (SIZEOF_CURL_OFF_T == 2)
                   1161: 
                   1162:   i = 1; co_test[i].num = MPRNT_OFF_T_C(0x7FFF); co_test[i].expected = "32767";
                   1163:   i++; co_test[i].num = MPRNT_OFF_T_C(0x7FFE); co_test[i].expected = "32766";
                   1164:   i++; co_test[i].num = MPRNT_OFF_T_C(0x7FFD); co_test[i].expected = "32765";
                   1165:   i++; co_test[i].num = MPRNT_OFF_T_C(0x7F00); co_test[i].expected = "32512";
                   1166:   i++; co_test[i].num = MPRNT_OFF_T_C(0x07F0); co_test[i].expected = "2032";
                   1167:   i++; co_test[i].num = MPRNT_OFF_T_C(0x007F); co_test[i].expected = "127";
                   1168: 
                   1169:   i++; co_test[i].num = MPRNT_OFF_T_C(0x7000); co_test[i].expected = "28672";
                   1170:   i++; co_test[i].num = MPRNT_OFF_T_C(0x0700); co_test[i].expected = "1792";
                   1171:   i++; co_test[i].num = MPRNT_OFF_T_C(0x0070); co_test[i].expected = "112";
                   1172:   i++; co_test[i].num = MPRNT_OFF_T_C(0x0007); co_test[i].expected = "7";
                   1173: 
                   1174:   i++; co_test[i].num = MPRNT_OFF_T_C(0x5000); co_test[i].expected = "20480";
                   1175:   i++; co_test[i].num = MPRNT_OFF_T_C(0x0500); co_test[i].expected = "1280";
                   1176:   i++; co_test[i].num = MPRNT_OFF_T_C(0x0050); co_test[i].expected = "80";
                   1177:   i++; co_test[i].num = MPRNT_OFF_T_C(0x0005); co_test[i].expected = "5";
                   1178: 
                   1179:   i++; co_test[i].num = MPRNT_OFF_T_C(0x0001); co_test[i].expected = "1";
                   1180:   i++; co_test[i].num = MPRNT_OFF_T_C(0x0000); co_test[i].expected = "0";
                   1181: 
                   1182:   i++; co_test[i].num = -MPRNT_OFF_T_C(0x7FFF) -MPRNT_OFF_T_C(1); co_test[i].expected = "-32768";
                   1183:   i++; co_test[i].num = -MPRNT_OFF_T_C(0x7FFE) -MPRNT_OFF_T_C(1); co_test[i].expected = "-32767";
                   1184:   i++; co_test[i].num = -MPRNT_OFF_T_C(0x7FFD) -MPRNT_OFF_T_C(1); co_test[i].expected = "-32766";
                   1185:   i++; co_test[i].num = -MPRNT_OFF_T_C(0x7F00) -MPRNT_OFF_T_C(1); co_test[i].expected = "-32513";
                   1186:   i++; co_test[i].num = -MPRNT_OFF_T_C(0x07F0) -MPRNT_OFF_T_C(1); co_test[i].expected = "-2033";
                   1187:   i++; co_test[i].num = -MPRNT_OFF_T_C(0x007F) -MPRNT_OFF_T_C(1); co_test[i].expected = "-128";
                   1188: 
                   1189:   i++; co_test[i].num = -MPRNT_OFF_T_C(0x7000) -MPRNT_OFF_T_C(1); co_test[i].expected = "-28673";
                   1190:   i++; co_test[i].num = -MPRNT_OFF_T_C(0x0700) -MPRNT_OFF_T_C(1); co_test[i].expected = "-1793";
                   1191:   i++; co_test[i].num = -MPRNT_OFF_T_C(0x0070) -MPRNT_OFF_T_C(1); co_test[i].expected = "-113";
                   1192:   i++; co_test[i].num = -MPRNT_OFF_T_C(0x0007) -MPRNT_OFF_T_C(1); co_test[i].expected = "-8";
                   1193: 
                   1194:   i++; co_test[i].num = -MPRNT_OFF_T_C(0x5000) -MPRNT_OFF_T_C(1); co_test[i].expected = "-20481";
                   1195:   i++; co_test[i].num = -MPRNT_OFF_T_C(0x0500) -MPRNT_OFF_T_C(1); co_test[i].expected = "-1281";
                   1196:   i++; co_test[i].num = -MPRNT_OFF_T_C(0x0050) -MPRNT_OFF_T_C(1); co_test[i].expected = "-81";
                   1197:   i++; co_test[i].num = -MPRNT_OFF_T_C(0x0005) -MPRNT_OFF_T_C(1); co_test[i].expected = "-6";
                   1198: 
                   1199:   i++; co_test[i].num =  MPRNT_OFF_T_C(0x0000) -MPRNT_OFF_T_C(1); co_test[i].expected = "-1";
                   1200: 
                   1201:   num_cofft_tests = i;
                   1202: 
                   1203: #elif (SIZEOF_CURL_OFF_T == 4)
                   1204: 
                   1205:   i = 1; co_test[i].num = MPRNT_OFF_T_C(0x7FFFFFFF); co_test[i].expected = "2147483647";
                   1206:   i++; co_test[i].num = MPRNT_OFF_T_C(0x7FFFFFFE); co_test[i].expected = "2147483646";
                   1207:   i++; co_test[i].num = MPRNT_OFF_T_C(0x7FFFFFFD); co_test[i].expected = "2147483645";
                   1208:   i++; co_test[i].num = MPRNT_OFF_T_C(0x7FFF0000); co_test[i].expected = "2147418112";
                   1209:   i++; co_test[i].num = MPRNT_OFF_T_C(0x00007FFF); co_test[i].expected = "32767";
                   1210: 
                   1211:   i++; co_test[i].num = MPRNT_OFF_T_C(0x7F000000); co_test[i].expected = "2130706432";
                   1212:   i++; co_test[i].num = MPRNT_OFF_T_C(0x007F0000); co_test[i].expected = "8323072";
                   1213:   i++; co_test[i].num = MPRNT_OFF_T_C(0x00007F00); co_test[i].expected = "32512";
                   1214:   i++; co_test[i].num = MPRNT_OFF_T_C(0x0000007F); co_test[i].expected = "127";
                   1215: 
                   1216:   i++; co_test[i].num = MPRNT_OFF_T_C(0x70000000); co_test[i].expected = "1879048192";
                   1217:   i++; co_test[i].num = MPRNT_OFF_T_C(0x07000000); co_test[i].expected = "117440512";
                   1218:   i++; co_test[i].num = MPRNT_OFF_T_C(0x00700000); co_test[i].expected = "7340032";
                   1219:   i++; co_test[i].num = MPRNT_OFF_T_C(0x00070000); co_test[i].expected = "458752";
                   1220:   i++; co_test[i].num = MPRNT_OFF_T_C(0x00007000); co_test[i].expected = "28672";
                   1221:   i++; co_test[i].num = MPRNT_OFF_T_C(0x00000700); co_test[i].expected = "1792";
                   1222:   i++; co_test[i].num = MPRNT_OFF_T_C(0x00000070); co_test[i].expected = "112";
                   1223:   i++; co_test[i].num = MPRNT_OFF_T_C(0x00000007); co_test[i].expected = "7";
                   1224: 
                   1225:   i++; co_test[i].num = MPRNT_OFF_T_C(0x50000000); co_test[i].expected = "1342177280";
                   1226:   i++; co_test[i].num = MPRNT_OFF_T_C(0x05000000); co_test[i].expected = "83886080";
                   1227:   i++; co_test[i].num = MPRNT_OFF_T_C(0x00500000); co_test[i].expected = "5242880";
                   1228:   i++; co_test[i].num = MPRNT_OFF_T_C(0x00050000); co_test[i].expected = "327680";
                   1229:   i++; co_test[i].num = MPRNT_OFF_T_C(0x00005000); co_test[i].expected = "20480";
                   1230:   i++; co_test[i].num = MPRNT_OFF_T_C(0x00000500); co_test[i].expected = "1280";
                   1231:   i++; co_test[i].num = MPRNT_OFF_T_C(0x00000050); co_test[i].expected = "80";
                   1232:   i++; co_test[i].num = MPRNT_OFF_T_C(0x00000005); co_test[i].expected = "5";
                   1233: 
                   1234:   i++; co_test[i].num = MPRNT_OFF_T_C(0x00000001); co_test[i].expected = "1";
                   1235:   i++; co_test[i].num = MPRNT_OFF_T_C(0x00000000); co_test[i].expected = "0";
                   1236: 
                   1237:   i++; co_test[i].num = -MPRNT_OFF_T_C(0x7FFFFFFF) -MPRNT_OFF_T_C(1); co_test[i].expected = "-2147483648";
                   1238:   i++; co_test[i].num = -MPRNT_OFF_T_C(0x7FFFFFFE) -MPRNT_OFF_T_C(1); co_test[i].expected = "-2147483647";
                   1239:   i++; co_test[i].num = -MPRNT_OFF_T_C(0x7FFFFFFD) -MPRNT_OFF_T_C(1); co_test[i].expected = "-2147483646";
                   1240:   i++; co_test[i].num = -MPRNT_OFF_T_C(0x7FFF0000) -MPRNT_OFF_T_C(1); co_test[i].expected = "-2147418113";
                   1241:   i++; co_test[i].num = -MPRNT_OFF_T_C(0x00007FFF) -MPRNT_OFF_T_C(1); co_test[i].expected = "-32768";
                   1242: 
                   1243:   i++; co_test[i].num = -MPRNT_OFF_T_C(0x7F000000) -MPRNT_OFF_T_C(1); co_test[i].expected = "-2130706433";
                   1244:   i++; co_test[i].num = -MPRNT_OFF_T_C(0x007F0000) -MPRNT_OFF_T_C(1); co_test[i].expected = "-8323073";
                   1245:   i++; co_test[i].num = -MPRNT_OFF_T_C(0x00007F00) -MPRNT_OFF_T_C(1); co_test[i].expected = "-32513";
                   1246:   i++; co_test[i].num = -MPRNT_OFF_T_C(0x0000007F) -MPRNT_OFF_T_C(1); co_test[i].expected = "-128";
                   1247: 
                   1248:   i++; co_test[i].num = -MPRNT_OFF_T_C(0x70000000) -MPRNT_OFF_T_C(1); co_test[i].expected = "-1879048193";
                   1249:   i++; co_test[i].num = -MPRNT_OFF_T_C(0x07000000) -MPRNT_OFF_T_C(1); co_test[i].expected = "-117440513";
                   1250:   i++; co_test[i].num = -MPRNT_OFF_T_C(0x00700000) -MPRNT_OFF_T_C(1); co_test[i].expected = "-7340033";
                   1251:   i++; co_test[i].num = -MPRNT_OFF_T_C(0x00070000) -MPRNT_OFF_T_C(1); co_test[i].expected = "-458753";
                   1252:   i++; co_test[i].num = -MPRNT_OFF_T_C(0x00007000) -MPRNT_OFF_T_C(1); co_test[i].expected = "-28673";
                   1253:   i++; co_test[i].num = -MPRNT_OFF_T_C(0x00000700) -MPRNT_OFF_T_C(1); co_test[i].expected = "-1793";
                   1254:   i++; co_test[i].num = -MPRNT_OFF_T_C(0x00000070) -MPRNT_OFF_T_C(1); co_test[i].expected = "-113";
                   1255:   i++; co_test[i].num = -MPRNT_OFF_T_C(0x00000007) -MPRNT_OFF_T_C(1); co_test[i].expected = "-8";
                   1256: 
                   1257:   i++; co_test[i].num = -MPRNT_OFF_T_C(0x50000000) -MPRNT_OFF_T_C(1); co_test[i].expected = "-1342177281";
                   1258:   i++; co_test[i].num = -MPRNT_OFF_T_C(0x05000000) -MPRNT_OFF_T_C(1); co_test[i].expected = "-83886081";
                   1259:   i++; co_test[i].num = -MPRNT_OFF_T_C(0x00500000) -MPRNT_OFF_T_C(1); co_test[i].expected = "-5242881";
                   1260:   i++; co_test[i].num = -MPRNT_OFF_T_C(0x00050000) -MPRNT_OFF_T_C(1); co_test[i].expected = "-327681";
                   1261:   i++; co_test[i].num = -MPRNT_OFF_T_C(0x00005000) -MPRNT_OFF_T_C(1); co_test[i].expected = "-20481";
                   1262:   i++; co_test[i].num = -MPRNT_OFF_T_C(0x00000500) -MPRNT_OFF_T_C(1); co_test[i].expected = "-1281";
                   1263:   i++; co_test[i].num = -MPRNT_OFF_T_C(0x00000050) -MPRNT_OFF_T_C(1); co_test[i].expected = "-81";
                   1264:   i++; co_test[i].num = -MPRNT_OFF_T_C(0x00000005) -MPRNT_OFF_T_C(1); co_test[i].expected = "-6";
                   1265: 
                   1266:   i++; co_test[i].num =  MPRNT_OFF_T_C(0x00000000) -MPRNT_OFF_T_C(1); co_test[i].expected = "-1";
                   1267: 
                   1268:   num_cofft_tests = i;
                   1269: 
                   1270: #elif (SIZEOF_CURL_OFF_T == 8)
                   1271: 
                   1272:   i = 1; co_test[i].num = MPRNT_OFF_T_C(0x7FFFFFFFFFFFFFFF); co_test[i].expected = "9223372036854775807";
                   1273:   i++; co_test[i].num = MPRNT_OFF_T_C(0x7FFFFFFFFFFFFFFE); co_test[i].expected = "9223372036854775806";
                   1274:   i++; co_test[i].num = MPRNT_OFF_T_C(0x7FFFFFFFFFFFFFFD); co_test[i].expected = "9223372036854775805";
                   1275:   i++; co_test[i].num = MPRNT_OFF_T_C(0x7FFFFFFF00000000); co_test[i].expected = "9223372032559808512";
                   1276:   i++; co_test[i].num = MPRNT_OFF_T_C(0x000000007FFFFFFF); co_test[i].expected = "2147483647";
                   1277: 
                   1278:   i++; co_test[i].num = MPRNT_OFF_T_C(0x7FFF000000000000); co_test[i].expected = "9223090561878065152";
                   1279:   i++; co_test[i].num = MPRNT_OFF_T_C(0x00007FFF00000000); co_test[i].expected = "140733193388032";
                   1280:   i++; co_test[i].num = MPRNT_OFF_T_C(0x000000007FFF0000); co_test[i].expected = "2147418112";
                   1281:   i++; co_test[i].num = MPRNT_OFF_T_C(0x0000000000007FFF); co_test[i].expected = "32767";
                   1282: 
                   1283:   i++; co_test[i].num = MPRNT_OFF_T_C(0x7F00000000000000); co_test[i].expected = "9151314442816847872";
                   1284:   i++; co_test[i].num = MPRNT_OFF_T_C(0x007F000000000000); co_test[i].expected = "35747322042253312";
                   1285:   i++; co_test[i].num = MPRNT_OFF_T_C(0x00007F0000000000); co_test[i].expected = "139637976727552";
                   1286:   i++; co_test[i].num = MPRNT_OFF_T_C(0x0000007F00000000); co_test[i].expected = "545460846592";
                   1287:   i++; co_test[i].num = MPRNT_OFF_T_C(0x000000007F000000); co_test[i].expected = "2130706432";
                   1288:   i++; co_test[i].num = MPRNT_OFF_T_C(0x00000000007F0000); co_test[i].expected = "8323072";
                   1289:   i++; co_test[i].num = MPRNT_OFF_T_C(0x0000000000007F00); co_test[i].expected = "32512";
                   1290:   i++; co_test[i].num = MPRNT_OFF_T_C(0x000000000000007F); co_test[i].expected = "127";
                   1291: 
                   1292:   i++; co_test[i].num = MPRNT_OFF_T_C(0x7000000000000000); co_test[i].expected = "8070450532247928832";
                   1293:   i++; co_test[i].num = MPRNT_OFF_T_C(0x0700000000000000); co_test[i].expected = "504403158265495552";
                   1294:   i++; co_test[i].num = MPRNT_OFF_T_C(0x0070000000000000); co_test[i].expected = "31525197391593472";
                   1295:   i++; co_test[i].num = MPRNT_OFF_T_C(0x0007000000000000); co_test[i].expected = "1970324836974592";
                   1296:   i++; co_test[i].num = MPRNT_OFF_T_C(0x0000700000000000); co_test[i].expected = "123145302310912";
                   1297:   i++; co_test[i].num = MPRNT_OFF_T_C(0x0000070000000000); co_test[i].expected = "7696581394432";
                   1298:   i++; co_test[i].num = MPRNT_OFF_T_C(0x0000007000000000); co_test[i].expected = "481036337152";
                   1299:   i++; co_test[i].num = MPRNT_OFF_T_C(0x0000000700000000); co_test[i].expected = "30064771072";
                   1300:   i++; co_test[i].num = MPRNT_OFF_T_C(0x0000000070000000); co_test[i].expected = "1879048192";
                   1301:   i++; co_test[i].num = MPRNT_OFF_T_C(0x0000000007000000); co_test[i].expected = "117440512";
                   1302:   i++; co_test[i].num = MPRNT_OFF_T_C(0x0000000000700000); co_test[i].expected = "7340032";
                   1303:   i++; co_test[i].num = MPRNT_OFF_T_C(0x0000000000070000); co_test[i].expected = "458752";
                   1304:   i++; co_test[i].num = MPRNT_OFF_T_C(0x0000000000007000); co_test[i].expected = "28672";
                   1305:   i++; co_test[i].num = MPRNT_OFF_T_C(0x0000000000000700); co_test[i].expected = "1792";
                   1306:   i++; co_test[i].num = MPRNT_OFF_T_C(0x0000000000000070); co_test[i].expected = "112";
                   1307:   i++; co_test[i].num = MPRNT_OFF_T_C(0x0000000000000007); co_test[i].expected = "7";
                   1308: 
                   1309:   i++; co_test[i].num = MPRNT_OFF_T_C(0x0000000000000001); co_test[i].expected = "1";
                   1310:   i++; co_test[i].num = MPRNT_OFF_T_C(0x0000000000000000); co_test[i].expected = "0";
                   1311: 
                   1312:   i++; co_test[i].num = -MPRNT_OFF_T_C(0x7FFFFFFFFFFFFFFF) -MPRNT_OFF_T_C(1); co_test[i].expected = "-9223372036854775808";
                   1313:   i++; co_test[i].num = -MPRNT_OFF_T_C(0x7FFFFFFFFFFFFFFE) -MPRNT_OFF_T_C(1); co_test[i].expected = "-9223372036854775807";
                   1314:   i++; co_test[i].num = -MPRNT_OFF_T_C(0x7FFFFFFFFFFFFFFD) -MPRNT_OFF_T_C(1); co_test[i].expected = "-9223372036854775806";
                   1315:   i++; co_test[i].num = -MPRNT_OFF_T_C(0x7FFFFFFF00000000) -MPRNT_OFF_T_C(1); co_test[i].expected = "-9223372032559808513";
                   1316:   i++; co_test[i].num = -MPRNT_OFF_T_C(0x000000007FFFFFFF) -MPRNT_OFF_T_C(1); co_test[i].expected = "-2147483648";
                   1317: 
                   1318:   i++; co_test[i].num = -MPRNT_OFF_T_C(0x7FFF000000000000) -MPRNT_OFF_T_C(1); co_test[i].expected = "-9223090561878065153";
                   1319:   i++; co_test[i].num = -MPRNT_OFF_T_C(0x00007FFF00000000) -MPRNT_OFF_T_C(1); co_test[i].expected = "-140733193388033";
                   1320:   i++; co_test[i].num = -MPRNT_OFF_T_C(0x000000007FFF0000) -MPRNT_OFF_T_C(1); co_test[i].expected = "-2147418113";
                   1321:   i++; co_test[i].num = -MPRNT_OFF_T_C(0x0000000000007FFF) -MPRNT_OFF_T_C(1); co_test[i].expected = "-32768";
                   1322: 
                   1323:   i++; co_test[i].num = -MPRNT_OFF_T_C(0x7F00000000000000) -MPRNT_OFF_T_C(1); co_test[i].expected = "-9151314442816847873";
                   1324:   i++; co_test[i].num = -MPRNT_OFF_T_C(0x007F000000000000) -MPRNT_OFF_T_C(1); co_test[i].expected = "-35747322042253313";
                   1325:   i++; co_test[i].num = -MPRNT_OFF_T_C(0x00007F0000000000) -MPRNT_OFF_T_C(1); co_test[i].expected = "-139637976727553";
                   1326:   i++; co_test[i].num = -MPRNT_OFF_T_C(0x0000007F00000000) -MPRNT_OFF_T_C(1); co_test[i].expected = "-545460846593";
                   1327:   i++; co_test[i].num = -MPRNT_OFF_T_C(0x000000007F000000) -MPRNT_OFF_T_C(1); co_test[i].expected = "-2130706433";
                   1328:   i++; co_test[i].num = -MPRNT_OFF_T_C(0x00000000007F0000) -MPRNT_OFF_T_C(1); co_test[i].expected = "-8323073";
                   1329:   i++; co_test[i].num = -MPRNT_OFF_T_C(0x0000000000007F00) -MPRNT_OFF_T_C(1); co_test[i].expected = "-32513";
                   1330:   i++; co_test[i].num = -MPRNT_OFF_T_C(0x000000000000007F) -MPRNT_OFF_T_C(1); co_test[i].expected = "-128";
                   1331: 
                   1332:   i++; co_test[i].num = -MPRNT_OFF_T_C(0x7000000000000000) -MPRNT_OFF_T_C(1); co_test[i].expected = "-8070450532247928833";
                   1333:   i++; co_test[i].num = -MPRNT_OFF_T_C(0x0700000000000000) -MPRNT_OFF_T_C(1); co_test[i].expected = "-504403158265495553";
                   1334:   i++; co_test[i].num = -MPRNT_OFF_T_C(0x0070000000000000) -MPRNT_OFF_T_C(1); co_test[i].expected = "-31525197391593473";
                   1335:   i++; co_test[i].num = -MPRNT_OFF_T_C(0x0007000000000000) -MPRNT_OFF_T_C(1); co_test[i].expected = "-1970324836974593";
                   1336:   i++; co_test[i].num = -MPRNT_OFF_T_C(0x0000700000000000) -MPRNT_OFF_T_C(1); co_test[i].expected = "-123145302310913";
                   1337:   i++; co_test[i].num = -MPRNT_OFF_T_C(0x0000070000000000) -MPRNT_OFF_T_C(1); co_test[i].expected = "-7696581394433";
                   1338:   i++; co_test[i].num = -MPRNT_OFF_T_C(0x0000007000000000) -MPRNT_OFF_T_C(1); co_test[i].expected = "-481036337153";
                   1339:   i++; co_test[i].num = -MPRNT_OFF_T_C(0x0000000700000000) -MPRNT_OFF_T_C(1); co_test[i].expected = "-30064771073";
                   1340:   i++; co_test[i].num = -MPRNT_OFF_T_C(0x0000000070000000) -MPRNT_OFF_T_C(1); co_test[i].expected = "-1879048193";
                   1341:   i++; co_test[i].num = -MPRNT_OFF_T_C(0x0000000007000000) -MPRNT_OFF_T_C(1); co_test[i].expected = "-117440513";
                   1342:   i++; co_test[i].num = -MPRNT_OFF_T_C(0x0000000000700000) -MPRNT_OFF_T_C(1); co_test[i].expected = "-7340033";
                   1343:   i++; co_test[i].num = -MPRNT_OFF_T_C(0x0000000000070000) -MPRNT_OFF_T_C(1); co_test[i].expected = "-458753";
                   1344:   i++; co_test[i].num = -MPRNT_OFF_T_C(0x0000000000007000) -MPRNT_OFF_T_C(1); co_test[i].expected = "-28673";
                   1345:   i++; co_test[i].num = -MPRNT_OFF_T_C(0x0000000000000700) -MPRNT_OFF_T_C(1); co_test[i].expected = "-1793";
                   1346:   i++; co_test[i].num = -MPRNT_OFF_T_C(0x0000000000000070) -MPRNT_OFF_T_C(1); co_test[i].expected = "-113";
                   1347:   i++; co_test[i].num = -MPRNT_OFF_T_C(0x0000000000000007) -MPRNT_OFF_T_C(1); co_test[i].expected = "-8";
                   1348: 
                   1349:   i++; co_test[i].num =  MPRNT_OFF_T_C(0x0000000000000000) -MPRNT_OFF_T_C(1); co_test[i].expected = "-1";
                   1350: 
                   1351:   num_cofft_tests = i;
                   1352: 
                   1353: #endif
                   1354: 
                   1355:   for(i = 1; i <= num_cofft_tests; i++) {
                   1356: 
                   1357:     for(j = 0; j<BUFSZ; j++)
                   1358:       co_test[i].result[j] = 'X';
                   1359:     co_test[i].result[BUFSZ-1] = '\0';
                   1360: 
                   1361:     (void)curl_msprintf(co_test[i].result, "%" CURL_FORMAT_CURL_OFF_T,
                   1362:                         co_test[i].num);
                   1363: 
                   1364:     if(memcmp(co_test[i].result,
                   1365:               co_test[i].expected,
                   1366:               strlen(co_test[i].expected))) {
                   1367:       printf("curl_off_t test #%.2d: Failed (Expected: %s Got: %s)\n",
                   1368:              i, co_test[i].expected, co_test[i].result);
                   1369:       failed++;
                   1370:     }
                   1371: 
                   1372:   }
                   1373: 
                   1374:   if(!failed)
                   1375:     printf("All curl_mprintf() curl_off_t tests OK!\n");
                   1376:   else
                   1377:     printf("Some curl_mprintf() curl_off_t tests Failed!\n");
                   1378: 
                   1379:   return failed;
                   1380: }
                   1381: 
                   1382: static int _string_check(int linenumber, char *buf, const char *buf2)
                   1383: {
                   1384:   if(strcmp(buf, buf2)) {
                   1385:     /* they shouldn't differ */
                   1386:     printf("sprintf line %d failed:\nwe      '%s'\nsystem: '%s'\n",
                   1387:            linenumber, buf, buf2);
                   1388:     return 1;
                   1389:   }
                   1390:   return 0;
                   1391: }
                   1392: #define string_check(x,y) _string_check(__LINE__, x, y)
                   1393: 
                   1394: static int _strlen_check(int linenumber, char *buf, size_t len)
                   1395: {
                   1396:   size_t buflen = strlen(buf);
                   1397:   if(len != buflen) {
                   1398:     /* they shouldn't differ */
                   1399:     printf("sprintf strlen:%d failed:\nwe '%zu'\nsystem: '%zu'\n",
                   1400:            linenumber, buflen, len);
                   1401:     return 1;
                   1402:   }
                   1403:   return 0;
                   1404: }
                   1405: 
                   1406: #define strlen_check(x,y) _strlen_check(__LINE__, x, y)
                   1407: 
                   1408: /*
                   1409:  * The output strings in this test need to have been verified with a system
                   1410:  * sprintf() before used here.
                   1411:  */
                   1412: static int test_string_formatting(void)
                   1413: {
                   1414:   int errors = 0;
                   1415:   char buf[256];
                   1416:   curl_msnprintf(buf, sizeof(buf), "%0*d%s", 2, 9, "foo");
                   1417:   errors += string_check(buf, "09foo");
                   1418: 
                   1419:   curl_msnprintf(buf, sizeof(buf), "%*.*s", 5, 2, "foo");
                   1420:   errors += string_check(buf, "   fo");
                   1421: 
                   1422:   curl_msnprintf(buf, sizeof(buf), "%*.*s", 2, 5, "foo");
                   1423:   errors += string_check(buf, "foo");
                   1424: 
                   1425:   curl_msnprintf(buf, sizeof(buf), "%*.*s", 0, 10, "foo");
                   1426:   errors += string_check(buf, "foo");
                   1427: 
                   1428:   curl_msnprintf(buf, sizeof(buf), "%-10s", "foo");
                   1429:   errors += string_check(buf, "foo       ");
                   1430: 
                   1431:   curl_msnprintf(buf, sizeof(buf), "%10s", "foo");
                   1432:   errors += string_check(buf, "       foo");
                   1433: 
                   1434:   curl_msnprintf(buf, sizeof(buf), "%*.*s", -10, -10, "foo");
                   1435:   errors += string_check(buf, "foo       ");
                   1436: 
                   1437:   if(!errors)
                   1438:     printf("All curl_mprintf() strings tests OK!\n");
                   1439:   else
                   1440:     printf("Some curl_mprintf() string tests Failed!\n");
                   1441: 
                   1442:   return errors;
                   1443: }
                   1444: 
                   1445: static int test_weird_arguments(void)
                   1446: {
                   1447:   int errors = 0;
                   1448:   char buf[256];
                   1449:   int rc;
                   1450: 
                   1451:   /* MAX_PARAMETERS is 128, try exact 128! */
                   1452:   rc = curl_msnprintf(buf, sizeof(buf),
                   1453:                       "%d%d%d%d%d%d%d%d%d%d" /* 10 */
                   1454:                       "%d%d%d%d%d%d%d%d%d%d" /* 10 1 */
                   1455:                       "%d%d%d%d%d%d%d%d%d%d" /* 10 2 */
                   1456:                       "%d%d%d%d%d%d%d%d%d%d" /* 10 3 */
                   1457:                       "%d%d%d%d%d%d%d%d%d%d" /* 10 4 */
                   1458:                       "%d%d%d%d%d%d%d%d%d%d" /* 10 5 */
                   1459:                       "%d%d%d%d%d%d%d%d%d%d" /* 10 6 */
                   1460:                       "%d%d%d%d%d%d%d%d%d%d" /* 10 7 */
                   1461:                       "%d%d%d%d%d%d%d%d%d%d" /* 10 8 */
                   1462:                       "%d%d%d%d%d%d%d%d%d%d" /* 10 9 */
                   1463:                       "%d%d%d%d%d%d%d%d%d%d" /* 10 10 */
                   1464:                       "%d%d%d%d%d%d%d%d%d%d" /* 10 11 */
                   1465:                       "%d%d%d%d%d%d%d%d"     /* 8 */
                   1466:                       ,
                   1467:                       0, 1, 2, 3, 4, 5, 6, 7, 8, 9, /* 10 */
                   1468:                       0, 1, 2, 3, 4, 5, 6, 7, 8, 9, /* 10 1 */
                   1469:                       0, 1, 2, 3, 4, 5, 6, 7, 8, 9, /* 10 2 */
                   1470:                       0, 1, 2, 3, 4, 5, 6, 7, 8, 9, /* 10 3 */
                   1471:                       0, 1, 2, 3, 4, 5, 6, 7, 8, 9, /* 10 4 */
                   1472:                       0, 1, 2, 3, 4, 5, 6, 7, 8, 9, /* 10 5 */
                   1473:                       0, 1, 2, 3, 4, 5, 6, 7, 8, 9, /* 10 6 */
                   1474:                       0, 1, 2, 3, 4, 5, 6, 7, 8, 9, /* 10 7 */
                   1475:                       0, 1, 2, 3, 4, 5, 6, 7, 8, 9, /* 10 8 */
                   1476:                       0, 1, 2, 3, 4, 5, 6, 7, 8, 9, /* 10 9 */
                   1477:                       0, 1, 2, 3, 4, 5, 6, 7, 8, 9, /* 10 10 */
                   1478:                       0, 1, 2, 3, 4, 5, 6, 7, 8, 9, /* 10 11 */
                   1479:                       0, 1, 2, 3, 4, 5, 6, 7); /* 8 */
                   1480: 
                   1481:   if(rc != 128) {
                   1482:     printf("curl_mprintf() returned %d and not 128!\n", rc);
                   1483:     errors++;
                   1484:   }
                   1485: 
                   1486:   errors += string_check(buf,
                   1487:                          "0123456789" /* 10 */
                   1488:                          "0123456789" /* 10 1 */
                   1489:                          "0123456789" /* 10 2 */
                   1490:                          "0123456789" /* 10 3 */
                   1491:                          "0123456789" /* 10 4 */
                   1492:                          "0123456789" /* 10 5 */
                   1493:                          "0123456789" /* 10 6 */
                   1494:                          "0123456789" /* 10 7 */
                   1495:                          "0123456789" /* 10 8 */
                   1496:                          "0123456789" /* 10 9 */
                   1497:                          "0123456789" /* 10 10*/
                   1498:                          "0123456789" /* 10 11 */
                   1499:                          "01234567"   /* 8 */
                   1500:     );
                   1501: 
                   1502:   /* MAX_PARAMETERS is 128, try more! */
                   1503:   buf[0] = 0;
                   1504:   rc = curl_msnprintf(buf, sizeof(buf),
                   1505:                       "%d%d%d%d%d%d%d%d%d%d" /* 10 */
                   1506:                       "%d%d%d%d%d%d%d%d%d%d" /* 10 1 */
                   1507:                       "%d%d%d%d%d%d%d%d%d%d" /* 10 2 */
                   1508:                       "%d%d%d%d%d%d%d%d%d%d" /* 10 3 */
                   1509:                       "%d%d%d%d%d%d%d%d%d%d" /* 10 4 */
                   1510:                       "%d%d%d%d%d%d%d%d%d%d" /* 10 5 */
                   1511:                       "%d%d%d%d%d%d%d%d%d%d" /* 10 6 */
                   1512:                       "%d%d%d%d%d%d%d%d%d%d" /* 10 7 */
                   1513:                       "%d%d%d%d%d%d%d%d%d%d" /* 10 8 */
                   1514:                       "%d%d%d%d%d%d%d%d%d%d" /* 10 9 */
                   1515:                       "%d%d%d%d%d%d%d%d%d%d" /* 10 10 */
                   1516:                       "%d%d%d%d%d%d%d%d%d%d" /* 10 11 */
                   1517:                       "%d%d%d%d%d%d%d%d%d"   /* 9 */
                   1518:                       ,
                   1519:                       0, 1, 2, 3, 4, 5, 6, 7, 8, 9, /* 10 */
                   1520:                       0, 1, 2, 3, 4, 5, 6, 7, 8, 9, /* 10 1 */
                   1521:                       0, 1, 2, 3, 4, 5, 6, 7, 8, 9, /* 10 2 */
                   1522:                       0, 1, 2, 3, 4, 5, 6, 7, 8, 9, /* 10 3 */
                   1523:                       0, 1, 2, 3, 4, 5, 6, 7, 8, 9, /* 10 4 */
                   1524:                       0, 1, 2, 3, 4, 5, 6, 7, 8, 9, /* 10 5 */
                   1525:                       0, 1, 2, 3, 4, 5, 6, 7, 8, 9, /* 10 6 */
                   1526:                       0, 1, 2, 3, 4, 5, 6, 7, 8, 9, /* 10 7 */
                   1527:                       0, 1, 2, 3, 4, 5, 6, 7, 8, 9, /* 10 8 */
                   1528:                       0, 1, 2, 3, 4, 5, 6, 7, 8, 9, /* 10 9 */
                   1529:                       0, 1, 2, 3, 4, 5, 6, 7, 8, 9, /* 10 10 */
                   1530:                       0, 1, 2, 3, 4, 5, 6, 7, 8, 9, /* 10 11 */
                   1531:                       0, 1, 2, 3, 4, 5, 6, 7, 8);   /* 9 */
                   1532: 
                   1533:   if(rc != -1) {
                   1534:     printf("curl_mprintf() returned %d and not -1!\n", rc);
                   1535:     errors++;
                   1536:   }
                   1537: 
                   1538:   errors += string_check(buf, "");
                   1539: 
                   1540:   if(errors)
                   1541:     printf("Some curl_mprintf() weird arguments tests failed!\n");
                   1542: 
                   1543:   return errors;
                   1544: }
                   1545: 
                   1546: /* DBL_MAX value from Linux */
                   1547: /* !checksrc! disable PLUSNOSPACE 1 */
                   1548: #define MAXIMIZE -1.7976931348623157081452E+308
                   1549: 
                   1550: static int test_float_formatting(void)
                   1551: {
                   1552:   int errors = 0;
                   1553:   char buf[512]; /* larger than max float size */
                   1554:   curl_msnprintf(buf, sizeof(buf), "%f", 9.0);
                   1555:   errors += string_check(buf, "9.000000");
                   1556: 
                   1557:   curl_msnprintf(buf, sizeof(buf), "%.1f", 9.1);
                   1558:   errors += string_check(buf, "9.1");
                   1559: 
                   1560:   curl_msnprintf(buf, sizeof(buf), "%.2f", 9.1);
                   1561:   errors += string_check(buf, "9.10");
                   1562: 
                   1563:   curl_msnprintf(buf, sizeof(buf), "%.0f", 9.1);
                   1564:   errors += string_check(buf, "9");
                   1565: 
                   1566:   curl_msnprintf(buf, sizeof(buf), "%0f", 9.1);
                   1567:   errors += string_check(buf, "9.100000");
                   1568: 
                   1569:   curl_msnprintf(buf, sizeof(buf), "%10f", 9.1);
                   1570:   errors += string_check(buf, "  9.100000");
                   1571: 
                   1572:   curl_msnprintf(buf, sizeof(buf), "%10.3f", 9.1);
                   1573:   errors += string_check(buf, "     9.100");
                   1574: 
                   1575:   curl_msnprintf(buf, sizeof(buf), "%-10.3f", 9.1);
                   1576:   errors += string_check(buf, "9.100     ");
                   1577: 
                   1578:   curl_msnprintf(buf, sizeof(buf), "%-10.3f", 9.123456);
                   1579:   errors += string_check(buf, "9.123     ");
                   1580: 
                   1581:   curl_msnprintf(buf, sizeof(buf), "%.-2f", 9.1);
                   1582:   errors += string_check(buf, "9.100000");
                   1583: 
                   1584:   curl_msnprintf(buf, sizeof(buf), "%*f", 10, 9.1);
                   1585:   errors += string_check(buf, "  9.100000");
                   1586: 
                   1587:   curl_msnprintf(buf, sizeof(buf), "%*f", 3, 9.1);
                   1588:   errors += string_check(buf, "9.100000");
                   1589: 
                   1590:   curl_msnprintf(buf, sizeof(buf), "%*f", 6, 9.2987654);
                   1591:   errors += string_check(buf, "9.298765");
                   1592: 
                   1593:   curl_msnprintf(buf, sizeof(buf), "%*f", 6, 9.298765);
                   1594:   errors += string_check(buf, "9.298765");
                   1595: 
                   1596:   curl_msnprintf(buf, sizeof(buf), "%*f", 6, 9.29876);
                   1597:   errors += string_check(buf, "9.298760");
                   1598: 
                   1599:   curl_msnprintf(buf, sizeof(buf), "%.*f", 6, 9.2987654);
                   1600:   errors += string_check(buf, "9.298765");
                   1601:   curl_msnprintf(buf, sizeof(buf), "%.*f", 5, 9.2987654);
                   1602:   errors += string_check(buf, "9.29877");
                   1603:   curl_msnprintf(buf, sizeof(buf), "%.*f", 4, 9.2987654);
                   1604:   errors += string_check(buf, "9.2988");
                   1605:   curl_msnprintf(buf, sizeof(buf), "%.*f", 3, 9.2987654);
                   1606:   errors += string_check(buf, "9.299");
                   1607:   curl_msnprintf(buf, sizeof(buf), "%.*f", 2, 9.2987654);
                   1608:   errors += string_check(buf, "9.30");
                   1609:   curl_msnprintf(buf, sizeof(buf), "%.*f", 1, 9.2987654);
                   1610:   errors += string_check(buf, "9.3");
                   1611:   curl_msnprintf(buf, sizeof(buf), "%.*f", 0, 9.2987654);
                   1612:   errors += string_check(buf, "9");
                   1613: 
                   1614:   /* very large precisions easily turn into system specific outputs so we only
                   1615:      check the output buffer length here as we know the internal limit */
                   1616: 
                   1617:   curl_msnprintf(buf, sizeof(buf), "%.*f", (1<<30), 9.2987654);
                   1618:   errors += strlen_check(buf, 325);
                   1619: 
                   1620:   curl_msnprintf(buf, sizeof(buf), "%10000.10000f", 9.2987654);
                   1621:   errors += strlen_check(buf, 325);
                   1622: 
                   1623:   curl_msnprintf(buf, sizeof(buf), "%240.10000f",
                   1624:                  123456789123456789123456789.2987654);
                   1625:   errors += strlen_check(buf, 325);
                   1626: 
                   1627:   /* check negative when used signed */
                   1628:   curl_msnprintf(buf, sizeof(buf), "%*f", INT_MIN, 9.1);
                   1629:   errors += string_check(buf, "9.100000");
                   1630: 
                   1631:   /* curl_msnprintf() limits a single float output to 325 bytes maximum
                   1632:      width */
                   1633:   curl_msnprintf(buf, sizeof(buf), "%*f", (1<<30), 9.1);
                   1634:   errors += string_check(buf, "                                                                                                                                                                                                                                                                                                                             9.100000");
                   1635:   curl_msnprintf(buf, sizeof(buf), "%100000f", 9.1);
                   1636:   errors += string_check(buf, "                                                                                                                                                                                                                                                                                                                             9.100000");
                   1637: 
                   1638:   curl_msnprintf(buf, sizeof(buf), "%f", MAXIMIZE);
                   1639:   errors += strlen_check(buf, 317);
                   1640: 
                   1641:   curl_msnprintf(buf, 2, "%f", MAXIMIZE);
                   1642:   errors += strlen_check(buf, 1);
                   1643:   curl_msnprintf(buf, 3, "%f", MAXIMIZE);
                   1644:   errors += strlen_check(buf, 2);
                   1645:   curl_msnprintf(buf, 4, "%f", MAXIMIZE);
                   1646:   errors += strlen_check(buf, 3);
                   1647:   curl_msnprintf(buf, 5, "%f", MAXIMIZE);
                   1648:   errors += strlen_check(buf, 4);
                   1649:   curl_msnprintf(buf, 6, "%f", MAXIMIZE);
                   1650:   errors += strlen_check(buf, 5);
                   1651: 
                   1652:   if(!errors)
                   1653:     printf("All float strings tests OK!\n");
                   1654:   else
                   1655:     printf("test_float_formatting Failed!\n");
                   1656: 
                   1657:   return errors;
                   1658: }
                   1659: /* !checksrc! enable LONGLINE */
                   1660: 
                   1661: int test(char *URL)
                   1662: {
                   1663:   int errors = 0;
                   1664:   (void)URL; /* not used */
                   1665: 
                   1666: #ifdef HAVE_SETLOCALE
                   1667:   /*
                   1668:    * The test makes assumptions about the numeric locale (specifically,
                   1669:    * RADIXCHAR) so set it to a known working (and portable) one.
                   1670:    */
                   1671:   setlocale(LC_NUMERIC, "C");
                   1672: #endif
                   1673: 
                   1674:   errors += test_weird_arguments();
                   1675: 
                   1676:   errors += test_unsigned_short_formatting();
                   1677: 
                   1678:   errors += test_signed_short_formatting();
                   1679: 
                   1680:   errors += test_unsigned_int_formatting();
                   1681: 
                   1682:   errors += test_signed_int_formatting();
                   1683: 
                   1684:   errors += test_unsigned_long_formatting();
                   1685: 
                   1686:   errors += test_signed_long_formatting();
                   1687: 
                   1688:   errors += test_curl_off_t_formatting();
                   1689: 
                   1690:   errors += test_string_formatting();
                   1691: 
                   1692:   errors += test_float_formatting();
                   1693: 
                   1694:   if(errors)
                   1695:     return TEST_ERR_MAJOR_BAD;
                   1696:   else
                   1697:     return 0;
                   1698: }

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>