1 /*****************************************************************************
3 * Project ___| | | | _ \| |
5 * | (__| |_| | _ <| |___
6 * \___|\___/|_| \_\_____|
8 * $Id: lib557.c,v 1.1.1.1 2008-09-23 16:32:06 hoffman Exp $
12 * The purpose of this test is to minimally exercise libcurl's internal
13 * curl_m*printf formatting capabilities and handling of some data types.
18 int curl_msprintf(char *buffer
, const char *format
, ...);
21 #if (CURL_SIZEOF_CURL_OFF_T > CURL_SIZEOF_LONG)
22 # define MPRNT_SUFFIX_CURL_OFF_T LL
24 # define MPRNT_SUFFIX_CURL_OFF_T L
29 # define MPRNT_OFF_T_C_HELPER2(Val,Suffix) Val ## Suffix
31 # define MPRNT_OFF_T_C_HELPER2(Val,Suffix) Val/**/Suffix
33 #define MPRNT_OFF_T_C_HELPER1(Val,Suffix) MPRNT_OFF_T_C_HELPER2(Val,Suffix)
34 #define MPRNT_OFF_T_C(Val) MPRNT_OFF_T_C_HELPER1(Val,MPRNT_SUFFIX_CURL_OFF_T)
38 #define UINT_TESTS_ARRSZ 1 + 100
39 #define SINT_TESTS_ARRSZ 1 + 100
40 #define ULONG_TESTS_ARRSZ 1 + 100
41 #define SLONG_TESTS_ARRSZ 1 + 100
42 #define COFFT_TESTS_ARRSZ 1 + 100
46 unsigned int num
; /* unsigned int */
47 const char *expected
; /* expected string */
48 char result
[BUFSZ
]; /* result string */
53 int num
; /* signed int */
54 const char *expected
; /* expected string */
55 char result
[BUFSZ
]; /* result string */
60 unsigned long num
; /* unsigned long */
61 const char *expected
; /* expected string */
62 char result
[BUFSZ
]; /* result string */
67 long num
; /* signed long */
68 const char *expected
; /* expected string */
69 char result
[BUFSZ
]; /* result string */
74 curl_off_t num
; /* curl_off_t */
75 const char *expected
; /* expected string */
76 char result
[BUFSZ
]; /* result string */
80 static struct unsint_st ui_test
[UINT_TESTS_ARRSZ
];
81 static struct sigint_st si_test
[SINT_TESTS_ARRSZ
];
82 static struct unslong_st ul_test
[ULONG_TESTS_ARRSZ
];
83 static struct siglong_st sl_test
[SLONG_TESTS_ARRSZ
];
84 static struct curloff_st co_test
[COFFT_TESTS_ARRSZ
];
87 static int test_unsigned_int_formatting(void)
95 i
=1; ui_test
[i
].num
= 0xFFFFU
; ui_test
[i
].expected
= "65535";
96 i
++; ui_test
[i
].num
= 0xFF00U
; ui_test
[i
].expected
= "65280";
97 i
++; ui_test
[i
].num
= 0x00FFU
; ui_test
[i
].expected
= "255";
99 i
++; ui_test
[i
].num
= 0xF000U
; ui_test
[i
].expected
= "61440";
100 i
++; ui_test
[i
].num
= 0x0F00U
; ui_test
[i
].expected
= "3840";
101 i
++; ui_test
[i
].num
= 0x00F0U
; ui_test
[i
].expected
= "240";
102 i
++; ui_test
[i
].num
= 0x000FU
; ui_test
[i
].expected
= "15";
104 i
++; ui_test
[i
].num
= 0xC000U
; ui_test
[i
].expected
= "49152";
105 i
++; ui_test
[i
].num
= 0x0C00U
; ui_test
[i
].expected
= "3072";
106 i
++; ui_test
[i
].num
= 0x00C0U
; ui_test
[i
].expected
= "192";
107 i
++; ui_test
[i
].num
= 0x000CU
; ui_test
[i
].expected
= "12";
109 i
++; ui_test
[i
].num
= 0x0001U
; ui_test
[i
].expected
= "1";
110 i
++; ui_test
[i
].num
= 0x0000U
; ui_test
[i
].expected
= "0";
114 #elif (SIZEOF_INT == 4)
116 i
=1; ui_test
[i
].num
= 0xFFFFFFFFU
; ui_test
[i
].expected
= "4294967295";
117 i
++; ui_test
[i
].num
= 0xFFFF0000U
; ui_test
[i
].expected
= "4294901760";
118 i
++; ui_test
[i
].num
= 0x0000FFFFU
; ui_test
[i
].expected
= "65535";
120 i
++; ui_test
[i
].num
= 0xFF000000U
; ui_test
[i
].expected
= "4278190080";
121 i
++; ui_test
[i
].num
= 0x00FF0000U
; ui_test
[i
].expected
= "16711680";
122 i
++; ui_test
[i
].num
= 0x0000FF00U
; ui_test
[i
].expected
= "65280";
123 i
++; ui_test
[i
].num
= 0x000000FFU
; ui_test
[i
].expected
= "255";
125 i
++; ui_test
[i
].num
= 0xF0000000U
; ui_test
[i
].expected
= "4026531840";
126 i
++; ui_test
[i
].num
= 0x0F000000U
; ui_test
[i
].expected
= "251658240";
127 i
++; ui_test
[i
].num
= 0x00F00000U
; ui_test
[i
].expected
= "15728640";
128 i
++; ui_test
[i
].num
= 0x000F0000U
; ui_test
[i
].expected
= "983040";
129 i
++; ui_test
[i
].num
= 0x0000F000U
; ui_test
[i
].expected
= "61440";
130 i
++; ui_test
[i
].num
= 0x00000F00U
; ui_test
[i
].expected
= "3840";
131 i
++; ui_test
[i
].num
= 0x000000F0U
; ui_test
[i
].expected
= "240";
132 i
++; ui_test
[i
].num
= 0x0000000FU
; ui_test
[i
].expected
= "15";
134 i
++; ui_test
[i
].num
= 0xC0000000U
; ui_test
[i
].expected
= "3221225472";
135 i
++; ui_test
[i
].num
= 0x0C000000U
; ui_test
[i
].expected
= "201326592";
136 i
++; ui_test
[i
].num
= 0x00C00000U
; ui_test
[i
].expected
= "12582912";
137 i
++; ui_test
[i
].num
= 0x000C0000U
; ui_test
[i
].expected
= "786432";
138 i
++; ui_test
[i
].num
= 0x0000C000U
; ui_test
[i
].expected
= "49152";
139 i
++; ui_test
[i
].num
= 0x00000C00U
; ui_test
[i
].expected
= "3072";
140 i
++; ui_test
[i
].num
= 0x000000C0U
; ui_test
[i
].expected
= "192";
141 i
++; ui_test
[i
].num
= 0x0000000CU
; ui_test
[i
].expected
= "12";
143 i
++; ui_test
[i
].num
= 0x00000001U
; ui_test
[i
].expected
= "1";
144 i
++; ui_test
[i
].num
= 0x00000000U
; ui_test
[i
].expected
= "0";
148 #elif (SIZEOF_INT == 8)
150 i
=1; ui_test
[i
].num
= 0xFFFFFFFFFFFFFFFFU
; ui_test
[i
].expected
= "18446744073709551615";
151 i
++; ui_test
[i
].num
= 0xFFFFFFFF00000000U
; ui_test
[i
].expected
= "18446744069414584320";
152 i
++; ui_test
[i
].num
= 0x00000000FFFFFFFFU
; ui_test
[i
].expected
= "4294967295";
154 i
++; ui_test
[i
].num
= 0xFFFF000000000000U
; ui_test
[i
].expected
= "18446462598732840960";
155 i
++; ui_test
[i
].num
= 0x0000FFFF00000000U
; ui_test
[i
].expected
= "281470681743360";
156 i
++; ui_test
[i
].num
= 0x00000000FFFF0000U
; ui_test
[i
].expected
= "4294901760";
157 i
++; ui_test
[i
].num
= 0x000000000000FFFFU
; ui_test
[i
].expected
= "65535";
159 i
++; ui_test
[i
].num
= 0xFF00000000000000U
; ui_test
[i
].expected
= "18374686479671623680";
160 i
++; ui_test
[i
].num
= 0x00FF000000000000U
; ui_test
[i
].expected
= "71776119061217280";
161 i
++; ui_test
[i
].num
= 0x0000FF0000000000U
; ui_test
[i
].expected
= "280375465082880";
162 i
++; ui_test
[i
].num
= 0x000000FF00000000U
; ui_test
[i
].expected
= "1095216660480";
163 i
++; ui_test
[i
].num
= 0x00000000FF000000U
; ui_test
[i
].expected
= "4278190080";
164 i
++; ui_test
[i
].num
= 0x0000000000FF0000U
; ui_test
[i
].expected
= "16711680";
165 i
++; ui_test
[i
].num
= 0x000000000000FF00U
; ui_test
[i
].expected
= "65280";
166 i
++; ui_test
[i
].num
= 0x00000000000000FFU
; ui_test
[i
].expected
= "255";
168 i
++; ui_test
[i
].num
= 0xF000000000000000U
; ui_test
[i
].expected
= "17293822569102704640";
169 i
++; ui_test
[i
].num
= 0x0F00000000000000U
; ui_test
[i
].expected
= "1080863910568919040";
170 i
++; ui_test
[i
].num
= 0x00F0000000000000U
; ui_test
[i
].expected
= "67553994410557440";
171 i
++; ui_test
[i
].num
= 0x000F000000000000U
; ui_test
[i
].expected
= "4222124650659840";
172 i
++; ui_test
[i
].num
= 0x0000F00000000000U
; ui_test
[i
].expected
= "263882790666240";
173 i
++; ui_test
[i
].num
= 0x00000F0000000000U
; ui_test
[i
].expected
= "16492674416640";
174 i
++; ui_test
[i
].num
= 0x000000F000000000U
; ui_test
[i
].expected
= "1030792151040";
175 i
++; ui_test
[i
].num
= 0x0000000F00000000U
; ui_test
[i
].expected
= "64424509440";
176 i
++; ui_test
[i
].num
= 0x00000000F0000000U
; ui_test
[i
].expected
= "4026531840";
177 i
++; ui_test
[i
].num
= 0x000000000F000000U
; ui_test
[i
].expected
= "251658240";
178 i
++; ui_test
[i
].num
= 0x0000000000F00000U
; ui_test
[i
].expected
= "15728640";
179 i
++; ui_test
[i
].num
= 0x00000000000F0000U
; ui_test
[i
].expected
= "983040";
180 i
++; ui_test
[i
].num
= 0x000000000000F000U
; ui_test
[i
].expected
= "61440";
181 i
++; ui_test
[i
].num
= 0x0000000000000F00U
; ui_test
[i
].expected
= "3840";
182 i
++; ui_test
[i
].num
= 0x00000000000000F0U
; ui_test
[i
].expected
= "240";
183 i
++; ui_test
[i
].num
= 0x000000000000000FU
; ui_test
[i
].expected
= "15";
185 i
++; ui_test
[i
].num
= 0xC000000000000000U
; ui_test
[i
].expected
= "13835058055282163712";
186 i
++; ui_test
[i
].num
= 0x0C00000000000000U
; ui_test
[i
].expected
= "864691128455135232";
187 i
++; ui_test
[i
].num
= 0x00C0000000000000U
; ui_test
[i
].expected
= "54043195528445952";
188 i
++; ui_test
[i
].num
= 0x000C000000000000U
; ui_test
[i
].expected
= "3377699720527872";
189 i
++; ui_test
[i
].num
= 0x0000C00000000000U
; ui_test
[i
].expected
= "211106232532992";
190 i
++; ui_test
[i
].num
= 0x00000C0000000000U
; ui_test
[i
].expected
= "13194139533312";
191 i
++; ui_test
[i
].num
= 0x000000C000000000U
; ui_test
[i
].expected
= "824633720832";
192 i
++; ui_test
[i
].num
= 0x0000000C00000000U
; ui_test
[i
].expected
= "51539607552";
193 i
++; ui_test
[i
].num
= 0x00000000C0000000U
; ui_test
[i
].expected
= "3221225472";
194 i
++; ui_test
[i
].num
= 0x000000000C000000U
; ui_test
[i
].expected
= "201326592";
195 i
++; ui_test
[i
].num
= 0x0000000000C00000U
; ui_test
[i
].expected
= "12582912";
196 i
++; ui_test
[i
].num
= 0x00000000000C0000U
; ui_test
[i
].expected
= "786432";
197 i
++; ui_test
[i
].num
= 0x000000000000C000U
; ui_test
[i
].expected
= "49152";
198 i
++; ui_test
[i
].num
= 0x0000000000000C00U
; ui_test
[i
].expected
= "3072";
199 i
++; ui_test
[i
].num
= 0x00000000000000C0U
; ui_test
[i
].expected
= "192";
200 i
++; ui_test
[i
].num
= 0x000000000000000CU
; ui_test
[i
].expected
= "12";
202 i
++; ui_test
[i
].num
= 0x00000001U
; ui_test
[i
].expected
= "1";
203 i
++; ui_test
[i
].num
= 0x00000000U
; ui_test
[i
].expected
= "0";
209 for(i
=1; i
<=num_uint_tests
; i
++) {
211 for(j
=0; j
<BUFSZ
; j
++)
212 ui_test
[i
].result
[j
] = 'X';
213 ui_test
[i
].result
[BUFSZ
-1] = '\0';
215 (void)curl_msprintf(ui_test
[i
].result
, "%u", ui_test
[i
].num
);
217 if(memcmp(ui_test
[i
].result
,
219 strlen(ui_test
[i
].expected
))) {
220 printf("unsigned int test #%.2d: Failed (Expected: %s Got: %s)\n",
221 i
, ui_test
[i
].expected
, ui_test
[i
].result
);
228 printf("All curl_mprintf() unsigned int tests OK!\n");
230 printf("Some curl_mprintf() unsigned int tests Failed!\n");
236 static int test_signed_int_formatting(void)
242 #if (SIZEOF_INT == 2)
244 i
=1; si_test
[i
].num
= 0x7FFF; si_test
[i
].expected
= "32767";
245 i
++; si_test
[i
].num
= 0x7FFE; si_test
[i
].expected
= "32766";
246 i
++; si_test
[i
].num
= 0x7FFD; si_test
[i
].expected
= "32765";
247 i
++; si_test
[i
].num
= 0x7F00; si_test
[i
].expected
= "32512";
248 i
++; si_test
[i
].num
= 0x07F0; si_test
[i
].expected
= "2032";
249 i
++; si_test
[i
].num
= 0x007F; si_test
[i
].expected
= "127";
251 i
++; si_test
[i
].num
= 0x7000; si_test
[i
].expected
= "28672";
252 i
++; si_test
[i
].num
= 0x0700; si_test
[i
].expected
= "1792";
253 i
++; si_test
[i
].num
= 0x0070; si_test
[i
].expected
= "112";
254 i
++; si_test
[i
].num
= 0x0007; si_test
[i
].expected
= "7";
256 i
++; si_test
[i
].num
= 0x5000; si_test
[i
].expected
= "20480";
257 i
++; si_test
[i
].num
= 0x0500; si_test
[i
].expected
= "1280";
258 i
++; si_test
[i
].num
= 0x0050; si_test
[i
].expected
= "80";
259 i
++; si_test
[i
].num
= 0x0005; si_test
[i
].expected
= "5";
261 i
++; si_test
[i
].num
= 0x0001; si_test
[i
].expected
= "1";
262 i
++; si_test
[i
].num
= 0x0000; si_test
[i
].expected
= "0";
264 i
++; si_test
[i
].num
= -0x7FFF -1; si_test
[i
].expected
= "-32768";
265 i
++; si_test
[i
].num
= -0x7FFE -1; si_test
[i
].expected
= "-32767";
266 i
++; si_test
[i
].num
= -0x7FFD -1; si_test
[i
].expected
= "-32766";
267 i
++; si_test
[i
].num
= -0x7F00 -1; si_test
[i
].expected
= "-32513";
268 i
++; si_test
[i
].num
= -0x07F0 -1; si_test
[i
].expected
= "-2033";
269 i
++; si_test
[i
].num
= -0x007F -1; si_test
[i
].expected
= "-128";
271 i
++; si_test
[i
].num
= -0x7000 -1; si_test
[i
].expected
= "-28673";
272 i
++; si_test
[i
].num
= -0x0700 -1; si_test
[i
].expected
= "-1793";
273 i
++; si_test
[i
].num
= -0x0070 -1; si_test
[i
].expected
= "-113";
274 i
++; si_test
[i
].num
= -0x0007 -1; si_test
[i
].expected
= "-8";
276 i
++; si_test
[i
].num
= -0x5000 -1; si_test
[i
].expected
= "-20481";
277 i
++; si_test
[i
].num
= -0x0500 -1; si_test
[i
].expected
= "-1281";
278 i
++; si_test
[i
].num
= -0x0050 -1; si_test
[i
].expected
= "-81";
279 i
++; si_test
[i
].num
= -0x0005 -1; si_test
[i
].expected
= "-6";
281 i
++; si_test
[i
].num
= 0x0000 -1; si_test
[i
].expected
= "-1";
285 #elif (SIZEOF_INT == 4)
287 i
=1; si_test
[i
].num
= 0x7FFFFFFF; si_test
[i
].expected
= "2147483647";
288 i
++; si_test
[i
].num
= 0x7FFFFFFE; si_test
[i
].expected
= "2147483646";
289 i
++; si_test
[i
].num
= 0x7FFFFFFD; si_test
[i
].expected
= "2147483645";
290 i
++; si_test
[i
].num
= 0x7FFF0000; si_test
[i
].expected
= "2147418112";
291 i
++; si_test
[i
].num
= 0x00007FFF; si_test
[i
].expected
= "32767";
293 i
++; si_test
[i
].num
= 0x7F000000; si_test
[i
].expected
= "2130706432";
294 i
++; si_test
[i
].num
= 0x007F0000; si_test
[i
].expected
= "8323072";
295 i
++; si_test
[i
].num
= 0x00007F00; si_test
[i
].expected
= "32512";
296 i
++; si_test
[i
].num
= 0x0000007F; si_test
[i
].expected
= "127";
298 i
++; si_test
[i
].num
= 0x70000000; si_test
[i
].expected
= "1879048192";
299 i
++; si_test
[i
].num
= 0x07000000; si_test
[i
].expected
= "117440512";
300 i
++; si_test
[i
].num
= 0x00700000; si_test
[i
].expected
= "7340032";
301 i
++; si_test
[i
].num
= 0x00070000; si_test
[i
].expected
= "458752";
302 i
++; si_test
[i
].num
= 0x00007000; si_test
[i
].expected
= "28672";
303 i
++; si_test
[i
].num
= 0x00000700; si_test
[i
].expected
= "1792";
304 i
++; si_test
[i
].num
= 0x00000070; si_test
[i
].expected
= "112";
305 i
++; si_test
[i
].num
= 0x00000007; si_test
[i
].expected
= "7";
307 i
++; si_test
[i
].num
= 0x50000000; si_test
[i
].expected
= "1342177280";
308 i
++; si_test
[i
].num
= 0x05000000; si_test
[i
].expected
= "83886080";
309 i
++; si_test
[i
].num
= 0x00500000; si_test
[i
].expected
= "5242880";
310 i
++; si_test
[i
].num
= 0x00050000; si_test
[i
].expected
= "327680";
311 i
++; si_test
[i
].num
= 0x00005000; si_test
[i
].expected
= "20480";
312 i
++; si_test
[i
].num
= 0x00000500; si_test
[i
].expected
= "1280";
313 i
++; si_test
[i
].num
= 0x00000050; si_test
[i
].expected
= "80";
314 i
++; si_test
[i
].num
= 0x00000005; si_test
[i
].expected
= "5";
316 i
++; si_test
[i
].num
= 0x00000001; si_test
[i
].expected
= "1";
317 i
++; si_test
[i
].num
= 0x00000000; si_test
[i
].expected
= "0";
319 i
++; si_test
[i
].num
= -0x7FFFFFFF -1; si_test
[i
].expected
= "-2147483648";
320 i
++; si_test
[i
].num
= -0x7FFFFFFE -1; si_test
[i
].expected
= "-2147483647";
321 i
++; si_test
[i
].num
= -0x7FFFFFFD -1; si_test
[i
].expected
= "-2147483646";
322 i
++; si_test
[i
].num
= -0x7FFF0000 -1; si_test
[i
].expected
= "-2147418113";
323 i
++; si_test
[i
].num
= -0x00007FFF -1; si_test
[i
].expected
= "-32768";
325 i
++; si_test
[i
].num
= -0x7F000000 -1; si_test
[i
].expected
= "-2130706433";
326 i
++; si_test
[i
].num
= -0x007F0000 -1; si_test
[i
].expected
= "-8323073";
327 i
++; si_test
[i
].num
= -0x00007F00 -1; si_test
[i
].expected
= "-32513";
328 i
++; si_test
[i
].num
= -0x0000007F -1; si_test
[i
].expected
= "-128";
330 i
++; si_test
[i
].num
= -0x70000000 -1; si_test
[i
].expected
= "-1879048193";
331 i
++; si_test
[i
].num
= -0x07000000 -1; si_test
[i
].expected
= "-117440513";
332 i
++; si_test
[i
].num
= -0x00700000 -1; si_test
[i
].expected
= "-7340033";
333 i
++; si_test
[i
].num
= -0x00070000 -1; si_test
[i
].expected
= "-458753";
334 i
++; si_test
[i
].num
= -0x00007000 -1; si_test
[i
].expected
= "-28673";
335 i
++; si_test
[i
].num
= -0x00000700 -1; si_test
[i
].expected
= "-1793";
336 i
++; si_test
[i
].num
= -0x00000070 -1; si_test
[i
].expected
= "-113";
337 i
++; si_test
[i
].num
= -0x00000007 -1; si_test
[i
].expected
= "-8";
339 i
++; si_test
[i
].num
= -0x50000000 -1; si_test
[i
].expected
= "-1342177281";
340 i
++; si_test
[i
].num
= -0x05000000 -1; si_test
[i
].expected
= "-83886081";
341 i
++; si_test
[i
].num
= -0x00500000 -1; si_test
[i
].expected
= "-5242881";
342 i
++; si_test
[i
].num
= -0x00050000 -1; si_test
[i
].expected
= "-327681";
343 i
++; si_test
[i
].num
= -0x00005000 -1; si_test
[i
].expected
= "-20481";
344 i
++; si_test
[i
].num
= -0x00000500 -1; si_test
[i
].expected
= "-1281";
345 i
++; si_test
[i
].num
= -0x00000050 -1; si_test
[i
].expected
= "-81";
346 i
++; si_test
[i
].num
= -0x00000005 -1; si_test
[i
].expected
= "-6";
348 i
++; si_test
[i
].num
= 0x00000000 -1; si_test
[i
].expected
= "-1";
352 #elif (SIZEOF_INT == 8)
354 i
=1; si_test
[i
].num
= 0x7FFFFFFFFFFFFFFF; si_test
[i
].expected
= "9223372036854775807";
355 i
++; si_test
[i
].num
= 0x7FFFFFFFFFFFFFFE; si_test
[i
].expected
= "9223372036854775806";
356 i
++; si_test
[i
].num
= 0x7FFFFFFFFFFFFFFD; si_test
[i
].expected
= "9223372036854775805";
357 i
++; si_test
[i
].num
= 0x7FFFFFFF00000000; si_test
[i
].expected
= "9223372032559808512";
358 i
++; si_test
[i
].num
= 0x000000007FFFFFFF; si_test
[i
].expected
= "2147483647";
360 i
++; si_test
[i
].num
= 0x7FFF000000000000; si_test
[i
].expected
= "9223090561878065152";
361 i
++; si_test
[i
].num
= 0x00007FFF00000000; si_test
[i
].expected
= "140733193388032";
362 i
++; si_test
[i
].num
= 0x000000007FFF0000; si_test
[i
].expected
= "2147418112";
363 i
++; si_test
[i
].num
= 0x0000000000007FFF; si_test
[i
].expected
= "32767";
365 i
++; si_test
[i
].num
= 0x7F00000000000000; si_test
[i
].expected
= "9151314442816847872";
366 i
++; si_test
[i
].num
= 0x007F000000000000; si_test
[i
].expected
= "35747322042253312";
367 i
++; si_test
[i
].num
= 0x00007F0000000000; si_test
[i
].expected
= "139637976727552";
368 i
++; si_test
[i
].num
= 0x0000007F00000000; si_test
[i
].expected
= "545460846592";
369 i
++; si_test
[i
].num
= 0x000000007F000000; si_test
[i
].expected
= "2130706432";
370 i
++; si_test
[i
].num
= 0x00000000007F0000; si_test
[i
].expected
= "8323072";
371 i
++; si_test
[i
].num
= 0x0000000000007F00; si_test
[i
].expected
= "32512";
372 i
++; si_test
[i
].num
= 0x000000000000007F; si_test
[i
].expected
= "127";
374 i
++; si_test
[i
].num
= 0x7000000000000000; si_test
[i
].expected
= "8070450532247928832";
375 i
++; si_test
[i
].num
= 0x0700000000000000; si_test
[i
].expected
= "504403158265495552";
376 i
++; si_test
[i
].num
= 0x0070000000000000; si_test
[i
].expected
= "31525197391593472";
377 i
++; si_test
[i
].num
= 0x0007000000000000; si_test
[i
].expected
= "1970324836974592";
378 i
++; si_test
[i
].num
= 0x0000700000000000; si_test
[i
].expected
= "123145302310912";
379 i
++; si_test
[i
].num
= 0x0000070000000000; si_test
[i
].expected
= "7696581394432";
380 i
++; si_test
[i
].num
= 0x0000007000000000; si_test
[i
].expected
= "481036337152";
381 i
++; si_test
[i
].num
= 0x0000000700000000; si_test
[i
].expected
= "30064771072";
382 i
++; si_test
[i
].num
= 0x0000000070000000; si_test
[i
].expected
= "1879048192";
383 i
++; si_test
[i
].num
= 0x0000000007000000; si_test
[i
].expected
= "117440512";
384 i
++; si_test
[i
].num
= 0x0000000000700000; si_test
[i
].expected
= "7340032";
385 i
++; si_test
[i
].num
= 0x0000000000070000; si_test
[i
].expected
= "458752";
386 i
++; si_test
[i
].num
= 0x0000000000007000; si_test
[i
].expected
= "28672";
387 i
++; si_test
[i
].num
= 0x0000000000000700; si_test
[i
].expected
= "1792";
388 i
++; si_test
[i
].num
= 0x0000000000000070; si_test
[i
].expected
= "112";
389 i
++; si_test
[i
].num
= 0x0000000000000007; si_test
[i
].expected
= "7";
391 i
++; si_test
[i
].num
= 0x0000000000000001; si_test
[i
].expected
= "1";
392 i
++; si_test
[i
].num
= 0x0000000000000000; si_test
[i
].expected
= "0";
394 i
++; si_test
[i
].num
= -0x7FFFFFFFFFFFFFFF -1; si_test
[i
].expected
= "-9223372036854775808";
395 i
++; si_test
[i
].num
= -0x7FFFFFFFFFFFFFFE -1; si_test
[i
].expected
= "-9223372036854775807";
396 i
++; si_test
[i
].num
= -0x7FFFFFFFFFFFFFFD -1; si_test
[i
].expected
= "-9223372036854775806";
397 i
++; si_test
[i
].num
= -0x7FFFFFFF00000000 -1; si_test
[i
].expected
= "-9223372032559808513";
398 i
++; si_test
[i
].num
= -0x000000007FFFFFFF -1; si_test
[i
].expected
= "-2147483648";
400 i
++; si_test
[i
].num
= -0x7FFF000000000000 -1; si_test
[i
].expected
= "-9223090561878065153";
401 i
++; si_test
[i
].num
= -0x00007FFF00000000 -1; si_test
[i
].expected
= "-140733193388033";
402 i
++; si_test
[i
].num
= -0x000000007FFF0000 -1; si_test
[i
].expected
= "-2147418113";
403 i
++; si_test
[i
].num
= -0x0000000000007FFF -1; si_test
[i
].expected
= "-32768";
405 i
++; si_test
[i
].num
= -0x7F00000000000000 -1; si_test
[i
].expected
= "-9151314442816847873";
406 i
++; si_test
[i
].num
= -0x007F000000000000 -1; si_test
[i
].expected
= "-35747322042253313";
407 i
++; si_test
[i
].num
= -0x00007F0000000000 -1; si_test
[i
].expected
= "-139637976727553";
408 i
++; si_test
[i
].num
= -0x0000007F00000000 -1; si_test
[i
].expected
= "-545460846593";
409 i
++; si_test
[i
].num
= -0x000000007F000000 -1; si_test
[i
].expected
= "-2130706433";
410 i
++; si_test
[i
].num
= -0x00000000007F0000 -1; si_test
[i
].expected
= "-8323073";
411 i
++; si_test
[i
].num
= -0x0000000000007F00 -1; si_test
[i
].expected
= "-32513";
412 i
++; si_test
[i
].num
= -0x000000000000007F -1; si_test
[i
].expected
= "-128";
414 i
++; si_test
[i
].num
= -0x7000000000000000 -1; si_test
[i
].expected
= "-8070450532247928833";
415 i
++; si_test
[i
].num
= -0x0700000000000000 -1; si_test
[i
].expected
= "-504403158265495553";
416 i
++; si_test
[i
].num
= -0x0070000000000000 -1; si_test
[i
].expected
= "-31525197391593473";
417 i
++; si_test
[i
].num
= -0x0007000000000000 -1; si_test
[i
].expected
= "-1970324836974593";
418 i
++; si_test
[i
].num
= -0x0000700000000000 -1; si_test
[i
].expected
= "-123145302310913";
419 i
++; si_test
[i
].num
= -0x0000070000000000 -1; si_test
[i
].expected
= "-7696581394433";
420 i
++; si_test
[i
].num
= -0x0000007000000000 -1; si_test
[i
].expected
= "-481036337153";
421 i
++; si_test
[i
].num
= -0x0000000700000000 -1; si_test
[i
].expected
= "-30064771073";
422 i
++; si_test
[i
].num
= -0x0000000070000000 -1; si_test
[i
].expected
= "-1879048193";
423 i
++; si_test
[i
].num
= -0x0000000007000000 -1; si_test
[i
].expected
= "-117440513";
424 i
++; si_test
[i
].num
= -0x0000000000700000 -1; si_test
[i
].expected
= "-7340033";
425 i
++; si_test
[i
].num
= -0x0000000000070000 -1; si_test
[i
].expected
= "-458753";
426 i
++; si_test
[i
].num
= -0x0000000000007000 -1; si_test
[i
].expected
= "-28673";
427 i
++; si_test
[i
].num
= -0x0000000000000700 -1; si_test
[i
].expected
= "-1793";
428 i
++; si_test
[i
].num
= -0x0000000000000070 -1; si_test
[i
].expected
= "-113";
429 i
++; si_test
[i
].num
= -0x0000000000000007 -1; si_test
[i
].expected
= "-8";
431 i
++; si_test
[i
].num
= 0x0000000000000000 -1; si_test
[i
].expected
= "-1";
437 for(i
=1; i
<=num_sint_tests
; i
++) {
439 for(j
=0; j
<BUFSZ
; j
++)
440 si_test
[i
].result
[j
] = 'X';
441 si_test
[i
].result
[BUFSZ
-1] = '\0';
443 (void)curl_msprintf(si_test
[i
].result
, "%d", si_test
[i
].num
);
445 if(memcmp(si_test
[i
].result
,
447 strlen(si_test
[i
].expected
))) {
448 printf("signed int test #%.2d: Failed (Expected: %s Got: %s)\n",
449 i
, si_test
[i
].expected
, si_test
[i
].result
);
456 printf("All curl_mprintf() signed int tests OK!\n");
458 printf("Some curl_mprintf() signed int tests Failed!\n");
464 static int test_unsigned_long_formatting(void)
470 #if (CURL_SIZEOF_LONG == 2)
472 i
=1; ul_test
[i
].num
= 0xFFFFUL
; ul_test
[i
].expected
= "65535";
473 i
++; ul_test
[i
].num
= 0xFF00UL
; ul_test
[i
].expected
= "65280";
474 i
++; ul_test
[i
].num
= 0x00FFUL
; ul_test
[i
].expected
= "255";
476 i
++; ul_test
[i
].num
= 0xF000UL
; ul_test
[i
].expected
= "61440";
477 i
++; ul_test
[i
].num
= 0x0F00UL
; ul_test
[i
].expected
= "3840";
478 i
++; ul_test
[i
].num
= 0x00F0UL
; ul_test
[i
].expected
= "240";
479 i
++; ul_test
[i
].num
= 0x000FUL
; ul_test
[i
].expected
= "15";
481 i
++; ul_test
[i
].num
= 0xC000UL
; ul_test
[i
].expected
= "49152";
482 i
++; ul_test
[i
].num
= 0x0C00UL
; ul_test
[i
].expected
= "3072";
483 i
++; ul_test
[i
].num
= 0x00C0UL
; ul_test
[i
].expected
= "192";
484 i
++; ul_test
[i
].num
= 0x000CUL
; ul_test
[i
].expected
= "12";
486 i
++; ul_test
[i
].num
= 0x0001UL
; ul_test
[i
].expected
= "1";
487 i
++; ul_test
[i
].num
= 0x0000UL
; ul_test
[i
].expected
= "0";
491 #elif (CURL_SIZEOF_LONG == 4)
493 i
=1; ul_test
[i
].num
= 0xFFFFFFFFUL
; ul_test
[i
].expected
= "4294967295";
494 i
++; ul_test
[i
].num
= 0xFFFF0000UL
; ul_test
[i
].expected
= "4294901760";
495 i
++; ul_test
[i
].num
= 0x0000FFFFUL
; ul_test
[i
].expected
= "65535";
497 i
++; ul_test
[i
].num
= 0xFF000000UL
; ul_test
[i
].expected
= "4278190080";
498 i
++; ul_test
[i
].num
= 0x00FF0000UL
; ul_test
[i
].expected
= "16711680";
499 i
++; ul_test
[i
].num
= 0x0000FF00UL
; ul_test
[i
].expected
= "65280";
500 i
++; ul_test
[i
].num
= 0x000000FFUL
; ul_test
[i
].expected
= "255";
502 i
++; ul_test
[i
].num
= 0xF0000000UL
; ul_test
[i
].expected
= "4026531840";
503 i
++; ul_test
[i
].num
= 0x0F000000UL
; ul_test
[i
].expected
= "251658240";
504 i
++; ul_test
[i
].num
= 0x00F00000UL
; ul_test
[i
].expected
= "15728640";
505 i
++; ul_test
[i
].num
= 0x000F0000UL
; ul_test
[i
].expected
= "983040";
506 i
++; ul_test
[i
].num
= 0x0000F000UL
; ul_test
[i
].expected
= "61440";
507 i
++; ul_test
[i
].num
= 0x00000F00UL
; ul_test
[i
].expected
= "3840";
508 i
++; ul_test
[i
].num
= 0x000000F0UL
; ul_test
[i
].expected
= "240";
509 i
++; ul_test
[i
].num
= 0x0000000FUL
; ul_test
[i
].expected
= "15";
511 i
++; ul_test
[i
].num
= 0xC0000000UL
; ul_test
[i
].expected
= "3221225472";
512 i
++; ul_test
[i
].num
= 0x0C000000UL
; ul_test
[i
].expected
= "201326592";
513 i
++; ul_test
[i
].num
= 0x00C00000UL
; ul_test
[i
].expected
= "12582912";
514 i
++; ul_test
[i
].num
= 0x000C0000UL
; ul_test
[i
].expected
= "786432";
515 i
++; ul_test
[i
].num
= 0x0000C000UL
; ul_test
[i
].expected
= "49152";
516 i
++; ul_test
[i
].num
= 0x00000C00UL
; ul_test
[i
].expected
= "3072";
517 i
++; ul_test
[i
].num
= 0x000000C0UL
; ul_test
[i
].expected
= "192";
518 i
++; ul_test
[i
].num
= 0x0000000CUL
; ul_test
[i
].expected
= "12";
520 i
++; ul_test
[i
].num
= 0x00000001UL
; ul_test
[i
].expected
= "1";
521 i
++; ul_test
[i
].num
= 0x00000000UL
; ul_test
[i
].expected
= "0";
525 #elif (CURL_SIZEOF_LONG == 8)
527 i
=1; ul_test
[i
].num
= 0xFFFFFFFFFFFFFFFFUL
; ul_test
[i
].expected
= "18446744073709551615";
528 i
++; ul_test
[i
].num
= 0xFFFFFFFF00000000UL
; ul_test
[i
].expected
= "18446744069414584320";
529 i
++; ul_test
[i
].num
= 0x00000000FFFFFFFFUL
; ul_test
[i
].expected
= "4294967295";
531 i
++; ul_test
[i
].num
= 0xFFFF000000000000UL
; ul_test
[i
].expected
= "18446462598732840960";
532 i
++; ul_test
[i
].num
= 0x0000FFFF00000000UL
; ul_test
[i
].expected
= "281470681743360";
533 i
++; ul_test
[i
].num
= 0x00000000FFFF0000UL
; ul_test
[i
].expected
= "4294901760";
534 i
++; ul_test
[i
].num
= 0x000000000000FFFFUL
; ul_test
[i
].expected
= "65535";
536 i
++; ul_test
[i
].num
= 0xFF00000000000000UL
; ul_test
[i
].expected
= "18374686479671623680";
537 i
++; ul_test
[i
].num
= 0x00FF000000000000UL
; ul_test
[i
].expected
= "71776119061217280";
538 i
++; ul_test
[i
].num
= 0x0000FF0000000000UL
; ul_test
[i
].expected
= "280375465082880";
539 i
++; ul_test
[i
].num
= 0x000000FF00000000UL
; ul_test
[i
].expected
= "1095216660480";
540 i
++; ul_test
[i
].num
= 0x00000000FF000000UL
; ul_test
[i
].expected
= "4278190080";
541 i
++; ul_test
[i
].num
= 0x0000000000FF0000UL
; ul_test
[i
].expected
= "16711680";
542 i
++; ul_test
[i
].num
= 0x000000000000FF00UL
; ul_test
[i
].expected
= "65280";
543 i
++; ul_test
[i
].num
= 0x00000000000000FFUL
; ul_test
[i
].expected
= "255";
545 i
++; ul_test
[i
].num
= 0xF000000000000000UL
; ul_test
[i
].expected
= "17293822569102704640";
546 i
++; ul_test
[i
].num
= 0x0F00000000000000UL
; ul_test
[i
].expected
= "1080863910568919040";
547 i
++; ul_test
[i
].num
= 0x00F0000000000000UL
; ul_test
[i
].expected
= "67553994410557440";
548 i
++; ul_test
[i
].num
= 0x000F000000000000UL
; ul_test
[i
].expected
= "4222124650659840";
549 i
++; ul_test
[i
].num
= 0x0000F00000000000UL
; ul_test
[i
].expected
= "263882790666240";
550 i
++; ul_test
[i
].num
= 0x00000F0000000000UL
; ul_test
[i
].expected
= "16492674416640";
551 i
++; ul_test
[i
].num
= 0x000000F000000000UL
; ul_test
[i
].expected
= "1030792151040";
552 i
++; ul_test
[i
].num
= 0x0000000F00000000UL
; ul_test
[i
].expected
= "64424509440";
553 i
++; ul_test
[i
].num
= 0x00000000F0000000UL
; ul_test
[i
].expected
= "4026531840";
554 i
++; ul_test
[i
].num
= 0x000000000F000000UL
; ul_test
[i
].expected
= "251658240";
555 i
++; ul_test
[i
].num
= 0x0000000000F00000UL
; ul_test
[i
].expected
= "15728640";
556 i
++; ul_test
[i
].num
= 0x00000000000F0000UL
; ul_test
[i
].expected
= "983040";
557 i
++; ul_test
[i
].num
= 0x000000000000F000UL
; ul_test
[i
].expected
= "61440";
558 i
++; ul_test
[i
].num
= 0x0000000000000F00UL
; ul_test
[i
].expected
= "3840";
559 i
++; ul_test
[i
].num
= 0x00000000000000F0UL
; ul_test
[i
].expected
= "240";
560 i
++; ul_test
[i
].num
= 0x000000000000000FUL
; ul_test
[i
].expected
= "15";
562 i
++; ul_test
[i
].num
= 0xC000000000000000UL
; ul_test
[i
].expected
= "13835058055282163712";
563 i
++; ul_test
[i
].num
= 0x0C00000000000000UL
; ul_test
[i
].expected
= "864691128455135232";
564 i
++; ul_test
[i
].num
= 0x00C0000000000000UL
; ul_test
[i
].expected
= "54043195528445952";
565 i
++; ul_test
[i
].num
= 0x000C000000000000UL
; ul_test
[i
].expected
= "3377699720527872";
566 i
++; ul_test
[i
].num
= 0x0000C00000000000UL
; ul_test
[i
].expected
= "211106232532992";
567 i
++; ul_test
[i
].num
= 0x00000C0000000000UL
; ul_test
[i
].expected
= "13194139533312";
568 i
++; ul_test
[i
].num
= 0x000000C000000000UL
; ul_test
[i
].expected
= "824633720832";
569 i
++; ul_test
[i
].num
= 0x0000000C00000000UL
; ul_test
[i
].expected
= "51539607552";
570 i
++; ul_test
[i
].num
= 0x00000000C0000000UL
; ul_test
[i
].expected
= "3221225472";
571 i
++; ul_test
[i
].num
= 0x000000000C000000UL
; ul_test
[i
].expected
= "201326592";
572 i
++; ul_test
[i
].num
= 0x0000000000C00000UL
; ul_test
[i
].expected
= "12582912";
573 i
++; ul_test
[i
].num
= 0x00000000000C0000UL
; ul_test
[i
].expected
= "786432";
574 i
++; ul_test
[i
].num
= 0x000000000000C000UL
; ul_test
[i
].expected
= "49152";
575 i
++; ul_test
[i
].num
= 0x0000000000000C00UL
; ul_test
[i
].expected
= "3072";
576 i
++; ul_test
[i
].num
= 0x00000000000000C0UL
; ul_test
[i
].expected
= "192";
577 i
++; ul_test
[i
].num
= 0x000000000000000CUL
; ul_test
[i
].expected
= "12";
579 i
++; ul_test
[i
].num
= 0x00000001UL
; ul_test
[i
].expected
= "1";
580 i
++; ul_test
[i
].num
= 0x00000000UL
; ul_test
[i
].expected
= "0";
586 for(i
=1; i
<=num_ulong_tests
; i
++) {
588 for(j
=0; j
<BUFSZ
; j
++)
589 ul_test
[i
].result
[j
] = 'X';
590 ul_test
[i
].result
[BUFSZ
-1] = '\0';
592 (void)curl_msprintf(ul_test
[i
].result
, "%lu", ul_test
[i
].num
);
594 if(memcmp(ul_test
[i
].result
,
596 strlen(ul_test
[i
].expected
))) {
597 printf("unsigned long test #%.2d: Failed (Expected: %s Got: %s)\n",
598 i
, ul_test
[i
].expected
, ul_test
[i
].result
);
605 printf("All curl_mprintf() unsigned long tests OK!\n");
607 printf("Some curl_mprintf() unsigned long tests Failed!\n");
613 static int test_signed_long_formatting(void)
619 #if (CURL_SIZEOF_LONG == 2)
621 i
=1; sl_test
[i
].num
= 0x7FFFL
; sl_test
[i
].expected
= "32767";
622 i
++; sl_test
[i
].num
= 0x7FFEL
; sl_test
[i
].expected
= "32766";
623 i
++; sl_test
[i
].num
= 0x7FFDL
; sl_test
[i
].expected
= "32765";
624 i
++; sl_test
[i
].num
= 0x7F00L
; sl_test
[i
].expected
= "32512";
625 i
++; sl_test
[i
].num
= 0x07F0L
; sl_test
[i
].expected
= "2032";
626 i
++; sl_test
[i
].num
= 0x007FL
; sl_test
[i
].expected
= "127";
628 i
++; sl_test
[i
].num
= 0x7000L
; sl_test
[i
].expected
= "28672";
629 i
++; sl_test
[i
].num
= 0x0700L
; sl_test
[i
].expected
= "1792";
630 i
++; sl_test
[i
].num
= 0x0070L
; sl_test
[i
].expected
= "112";
631 i
++; sl_test
[i
].num
= 0x0007L
; sl_test
[i
].expected
= "7";
633 i
++; sl_test
[i
].num
= 0x5000L
; sl_test
[i
].expected
= "20480";
634 i
++; sl_test
[i
].num
= 0x0500L
; sl_test
[i
].expected
= "1280";
635 i
++; sl_test
[i
].num
= 0x0050L
; sl_test
[i
].expected
= "80";
636 i
++; sl_test
[i
].num
= 0x0005L
; sl_test
[i
].expected
= "5";
638 i
++; sl_test
[i
].num
= 0x0001L
; sl_test
[i
].expected
= "1";
639 i
++; sl_test
[i
].num
= 0x0000L
; sl_test
[i
].expected
= "0";
641 i
++; sl_test
[i
].num
= -0x7FFFL
-1L; sl_test
[i
].expected
= "-32768";
642 i
++; sl_test
[i
].num
= -0x7FFEL
-1L; sl_test
[i
].expected
= "-32767";
643 i
++; sl_test
[i
].num
= -0x7FFDL
-1L; sl_test
[i
].expected
= "-32766";
644 i
++; sl_test
[i
].num
= -0x7F00L
-1L; sl_test
[i
].expected
= "-32513";
645 i
++; sl_test
[i
].num
= -0x07F0L
-1L; sl_test
[i
].expected
= "-2033";
646 i
++; sl_test
[i
].num
= -0x007FL
-1L; sl_test
[i
].expected
= "-128";
648 i
++; sl_test
[i
].num
= -0x7000L
-1L; sl_test
[i
].expected
= "-28673";
649 i
++; sl_test
[i
].num
= -0x0700L
-1L; sl_test
[i
].expected
= "-1793";
650 i
++; sl_test
[i
].num
= -0x0070L
-1L; sl_test
[i
].expected
= "-113";
651 i
++; sl_test
[i
].num
= -0x0007L
-1L; sl_test
[i
].expected
= "-8";
653 i
++; sl_test
[i
].num
= -0x5000L
-1L; sl_test
[i
].expected
= "-20481";
654 i
++; sl_test
[i
].num
= -0x0500L
-1L; sl_test
[i
].expected
= "-1281";
655 i
++; sl_test
[i
].num
= -0x0050L
-1L; sl_test
[i
].expected
= "-81";
656 i
++; sl_test
[i
].num
= -0x0005L
-1L; sl_test
[i
].expected
= "-6";
658 i
++; sl_test
[i
].num
= 0x0000L
-1L; sl_test
[i
].expected
= "-1";
662 #elif (CURL_SIZEOF_LONG == 4)
664 i
=1; sl_test
[i
].num
= 0x7FFFFFFFL
; sl_test
[i
].expected
= "2147483647";
665 i
++; sl_test
[i
].num
= 0x7FFFFFFEL
; sl_test
[i
].expected
= "2147483646";
666 i
++; sl_test
[i
].num
= 0x7FFFFFFDL
; sl_test
[i
].expected
= "2147483645";
667 i
++; sl_test
[i
].num
= 0x7FFF0000L
; sl_test
[i
].expected
= "2147418112";
668 i
++; sl_test
[i
].num
= 0x00007FFFL
; sl_test
[i
].expected
= "32767";
670 i
++; sl_test
[i
].num
= 0x7F000000L
; sl_test
[i
].expected
= "2130706432";
671 i
++; sl_test
[i
].num
= 0x007F0000L
; sl_test
[i
].expected
= "8323072";
672 i
++; sl_test
[i
].num
= 0x00007F00L
; sl_test
[i
].expected
= "32512";
673 i
++; sl_test
[i
].num
= 0x0000007FL
; sl_test
[i
].expected
= "127";
675 i
++; sl_test
[i
].num
= 0x70000000L
; sl_test
[i
].expected
= "1879048192";
676 i
++; sl_test
[i
].num
= 0x07000000L
; sl_test
[i
].expected
= "117440512";
677 i
++; sl_test
[i
].num
= 0x00700000L
; sl_test
[i
].expected
= "7340032";
678 i
++; sl_test
[i
].num
= 0x00070000L
; sl_test
[i
].expected
= "458752";
679 i
++; sl_test
[i
].num
= 0x00007000L
; sl_test
[i
].expected
= "28672";
680 i
++; sl_test
[i
].num
= 0x00000700L
; sl_test
[i
].expected
= "1792";
681 i
++; sl_test
[i
].num
= 0x00000070L
; sl_test
[i
].expected
= "112";
682 i
++; sl_test
[i
].num
= 0x00000007L
; sl_test
[i
].expected
= "7";
684 i
++; sl_test
[i
].num
= 0x50000000L
; sl_test
[i
].expected
= "1342177280";
685 i
++; sl_test
[i
].num
= 0x05000000L
; sl_test
[i
].expected
= "83886080";
686 i
++; sl_test
[i
].num
= 0x00500000L
; sl_test
[i
].expected
= "5242880";
687 i
++; sl_test
[i
].num
= 0x00050000L
; sl_test
[i
].expected
= "327680";
688 i
++; sl_test
[i
].num
= 0x00005000L
; sl_test
[i
].expected
= "20480";
689 i
++; sl_test
[i
].num
= 0x00000500L
; sl_test
[i
].expected
= "1280";
690 i
++; sl_test
[i
].num
= 0x00000050L
; sl_test
[i
].expected
= "80";
691 i
++; sl_test
[i
].num
= 0x00000005L
; sl_test
[i
].expected
= "5";
693 i
++; sl_test
[i
].num
= 0x00000001L
; sl_test
[i
].expected
= "1";
694 i
++; sl_test
[i
].num
= 0x00000000L
; sl_test
[i
].expected
= "0";
696 i
++; sl_test
[i
].num
= -0x7FFFFFFFL
-1L; sl_test
[i
].expected
= "-2147483648";
697 i
++; sl_test
[i
].num
= -0x7FFFFFFEL
-1L; sl_test
[i
].expected
= "-2147483647";
698 i
++; sl_test
[i
].num
= -0x7FFFFFFDL
-1L; sl_test
[i
].expected
= "-2147483646";
699 i
++; sl_test
[i
].num
= -0x7FFF0000L
-1L; sl_test
[i
].expected
= "-2147418113";
700 i
++; sl_test
[i
].num
= -0x00007FFFL
-1L; sl_test
[i
].expected
= "-32768";
702 i
++; sl_test
[i
].num
= -0x7F000000L
-1L; sl_test
[i
].expected
= "-2130706433";
703 i
++; sl_test
[i
].num
= -0x007F0000L
-1L; sl_test
[i
].expected
= "-8323073";
704 i
++; sl_test
[i
].num
= -0x00007F00L
-1L; sl_test
[i
].expected
= "-32513";
705 i
++; sl_test
[i
].num
= -0x0000007FL
-1L; sl_test
[i
].expected
= "-128";
707 i
++; sl_test
[i
].num
= -0x70000000L
-1L; sl_test
[i
].expected
= "-1879048193";
708 i
++; sl_test
[i
].num
= -0x07000000L
-1L; sl_test
[i
].expected
= "-117440513";
709 i
++; sl_test
[i
].num
= -0x00700000L
-1L; sl_test
[i
].expected
= "-7340033";
710 i
++; sl_test
[i
].num
= -0x00070000L
-1L; sl_test
[i
].expected
= "-458753";
711 i
++; sl_test
[i
].num
= -0x00007000L
-1L; sl_test
[i
].expected
= "-28673";
712 i
++; sl_test
[i
].num
= -0x00000700L
-1L; sl_test
[i
].expected
= "-1793";
713 i
++; sl_test
[i
].num
= -0x00000070L
-1L; sl_test
[i
].expected
= "-113";
714 i
++; sl_test
[i
].num
= -0x00000007L
-1L; sl_test
[i
].expected
= "-8";
716 i
++; sl_test
[i
].num
= -0x50000000L
-1L; sl_test
[i
].expected
= "-1342177281";
717 i
++; sl_test
[i
].num
= -0x05000000L
-1L; sl_test
[i
].expected
= "-83886081";
718 i
++; sl_test
[i
].num
= -0x00500000L
-1L; sl_test
[i
].expected
= "-5242881";
719 i
++; sl_test
[i
].num
= -0x00050000L
-1L; sl_test
[i
].expected
= "-327681";
720 i
++; sl_test
[i
].num
= -0x00005000L
-1L; sl_test
[i
].expected
= "-20481";
721 i
++; sl_test
[i
].num
= -0x00000500L
-1L; sl_test
[i
].expected
= "-1281";
722 i
++; sl_test
[i
].num
= -0x00000050L
-1L; sl_test
[i
].expected
= "-81";
723 i
++; sl_test
[i
].num
= -0x00000005L
-1L; sl_test
[i
].expected
= "-6";
725 i
++; sl_test
[i
].num
= 0x00000000L
-1L; sl_test
[i
].expected
= "-1";
729 #elif (CURL_SIZEOF_LONG == 8)
731 i
=1; sl_test
[i
].num
= 0x7FFFFFFFFFFFFFFFL
; sl_test
[i
].expected
= "9223372036854775807";
732 i
++; sl_test
[i
].num
= 0x7FFFFFFFFFFFFFFEL
; sl_test
[i
].expected
= "9223372036854775806";
733 i
++; sl_test
[i
].num
= 0x7FFFFFFFFFFFFFFDL
; sl_test
[i
].expected
= "9223372036854775805";
734 i
++; sl_test
[i
].num
= 0x7FFFFFFF00000000L
; sl_test
[i
].expected
= "9223372032559808512";
735 i
++; sl_test
[i
].num
= 0x000000007FFFFFFFL
; sl_test
[i
].expected
= "2147483647";
737 i
++; sl_test
[i
].num
= 0x7FFF000000000000L
; sl_test
[i
].expected
= "9223090561878065152";
738 i
++; sl_test
[i
].num
= 0x00007FFF00000000L
; sl_test
[i
].expected
= "140733193388032";
739 i
++; sl_test
[i
].num
= 0x000000007FFF0000L
; sl_test
[i
].expected
= "2147418112";
740 i
++; sl_test
[i
].num
= 0x0000000000007FFFL
; sl_test
[i
].expected
= "32767";
742 i
++; sl_test
[i
].num
= 0x7F00000000000000L
; sl_test
[i
].expected
= "9151314442816847872";
743 i
++; sl_test
[i
].num
= 0x007F000000000000L
; sl_test
[i
].expected
= "35747322042253312";
744 i
++; sl_test
[i
].num
= 0x00007F0000000000L
; sl_test
[i
].expected
= "139637976727552";
745 i
++; sl_test
[i
].num
= 0x0000007F00000000L
; sl_test
[i
].expected
= "545460846592";
746 i
++; sl_test
[i
].num
= 0x000000007F000000L
; sl_test
[i
].expected
= "2130706432";
747 i
++; sl_test
[i
].num
= 0x00000000007F0000L
; sl_test
[i
].expected
= "8323072";
748 i
++; sl_test
[i
].num
= 0x0000000000007F00L
; sl_test
[i
].expected
= "32512";
749 i
++; sl_test
[i
].num
= 0x000000000000007FL
; sl_test
[i
].expected
= "127";
751 i
++; sl_test
[i
].num
= 0x7000000000000000L
; sl_test
[i
].expected
= "8070450532247928832";
752 i
++; sl_test
[i
].num
= 0x0700000000000000L
; sl_test
[i
].expected
= "504403158265495552";
753 i
++; sl_test
[i
].num
= 0x0070000000000000L
; sl_test
[i
].expected
= "31525197391593472";
754 i
++; sl_test
[i
].num
= 0x0007000000000000L
; sl_test
[i
].expected
= "1970324836974592";
755 i
++; sl_test
[i
].num
= 0x0000700000000000L
; sl_test
[i
].expected
= "123145302310912";
756 i
++; sl_test
[i
].num
= 0x0000070000000000L
; sl_test
[i
].expected
= "7696581394432";
757 i
++; sl_test
[i
].num
= 0x0000007000000000L
; sl_test
[i
].expected
= "481036337152";
758 i
++; sl_test
[i
].num
= 0x0000000700000000L
; sl_test
[i
].expected
= "30064771072";
759 i
++; sl_test
[i
].num
= 0x0000000070000000L
; sl_test
[i
].expected
= "1879048192";
760 i
++; sl_test
[i
].num
= 0x0000000007000000L
; sl_test
[i
].expected
= "117440512";
761 i
++; sl_test
[i
].num
= 0x0000000000700000L
; sl_test
[i
].expected
= "7340032";
762 i
++; sl_test
[i
].num
= 0x0000000000070000L
; sl_test
[i
].expected
= "458752";
763 i
++; sl_test
[i
].num
= 0x0000000000007000L
; sl_test
[i
].expected
= "28672";
764 i
++; sl_test
[i
].num
= 0x0000000000000700L
; sl_test
[i
].expected
= "1792";
765 i
++; sl_test
[i
].num
= 0x0000000000000070L
; sl_test
[i
].expected
= "112";
766 i
++; sl_test
[i
].num
= 0x0000000000000007L
; sl_test
[i
].expected
= "7";
768 i
++; sl_test
[i
].num
= 0x0000000000000001L
; sl_test
[i
].expected
= "1";
769 i
++; sl_test
[i
].num
= 0x0000000000000000L
; sl_test
[i
].expected
= "0";
771 i
++; sl_test
[i
].num
= -0x7FFFFFFFFFFFFFFFL
-1L; sl_test
[i
].expected
= "-9223372036854775808";
772 i
++; sl_test
[i
].num
= -0x7FFFFFFFFFFFFFFEL
-1L; sl_test
[i
].expected
= "-9223372036854775807";
773 i
++; sl_test
[i
].num
= -0x7FFFFFFFFFFFFFFDL
-1L; sl_test
[i
].expected
= "-9223372036854775806";
774 i
++; sl_test
[i
].num
= -0x7FFFFFFF00000000L
-1L; sl_test
[i
].expected
= "-9223372032559808513";
775 i
++; sl_test
[i
].num
= -0x000000007FFFFFFFL
-1L; sl_test
[i
].expected
= "-2147483648";
777 i
++; sl_test
[i
].num
= -0x7FFF000000000000L
-1L; sl_test
[i
].expected
= "-9223090561878065153";
778 i
++; sl_test
[i
].num
= -0x00007FFF00000000L
-1L; sl_test
[i
].expected
= "-140733193388033";
779 i
++; sl_test
[i
].num
= -0x000000007FFF0000L
-1L; sl_test
[i
].expected
= "-2147418113";
780 i
++; sl_test
[i
].num
= -0x0000000000007FFFL
-1L; sl_test
[i
].expected
= "-32768";
782 i
++; sl_test
[i
].num
= -0x7F00000000000000L
-1L; sl_test
[i
].expected
= "-9151314442816847873";
783 i
++; sl_test
[i
].num
= -0x007F000000000000L
-1L; sl_test
[i
].expected
= "-35747322042253313";
784 i
++; sl_test
[i
].num
= -0x00007F0000000000L
-1L; sl_test
[i
].expected
= "-139637976727553";
785 i
++; sl_test
[i
].num
= -0x0000007F00000000L
-1L; sl_test
[i
].expected
= "-545460846593";
786 i
++; sl_test
[i
].num
= -0x000000007F000000L
-1L; sl_test
[i
].expected
= "-2130706433";
787 i
++; sl_test
[i
].num
= -0x00000000007F0000L
-1L; sl_test
[i
].expected
= "-8323073";
788 i
++; sl_test
[i
].num
= -0x0000000000007F00L
-1L; sl_test
[i
].expected
= "-32513";
789 i
++; sl_test
[i
].num
= -0x000000000000007FL
-1L; sl_test
[i
].expected
= "-128";
791 i
++; sl_test
[i
].num
= -0x7000000000000000L
-1L; sl_test
[i
].expected
= "-8070450532247928833";
792 i
++; sl_test
[i
].num
= -0x0700000000000000L
-1L; sl_test
[i
].expected
= "-504403158265495553";
793 i
++; sl_test
[i
].num
= -0x0070000000000000L
-1L; sl_test
[i
].expected
= "-31525197391593473";
794 i
++; sl_test
[i
].num
= -0x0007000000000000L
-1L; sl_test
[i
].expected
= "-1970324836974593";
795 i
++; sl_test
[i
].num
= -0x0000700000000000L
-1L; sl_test
[i
].expected
= "-123145302310913";
796 i
++; sl_test
[i
].num
= -0x0000070000000000L
-1L; sl_test
[i
].expected
= "-7696581394433";
797 i
++; sl_test
[i
].num
= -0x0000007000000000L
-1L; sl_test
[i
].expected
= "-481036337153";
798 i
++; sl_test
[i
].num
= -0x0000000700000000L
-1L; sl_test
[i
].expected
= "-30064771073";
799 i
++; sl_test
[i
].num
= -0x0000000070000000L
-1L; sl_test
[i
].expected
= "-1879048193";
800 i
++; sl_test
[i
].num
= -0x0000000007000000L
-1L; sl_test
[i
].expected
= "-117440513";
801 i
++; sl_test
[i
].num
= -0x0000000000700000L
-1L; sl_test
[i
].expected
= "-7340033";
802 i
++; sl_test
[i
].num
= -0x0000000000070000L
-1L; sl_test
[i
].expected
= "-458753";
803 i
++; sl_test
[i
].num
= -0x0000000000007000L
-1L; sl_test
[i
].expected
= "-28673";
804 i
++; sl_test
[i
].num
= -0x0000000000000700L
-1L; sl_test
[i
].expected
= "-1793";
805 i
++; sl_test
[i
].num
= -0x0000000000000070L
-1L; sl_test
[i
].expected
= "-113";
806 i
++; sl_test
[i
].num
= -0x0000000000000007L
-1L; sl_test
[i
].expected
= "-8";
808 i
++; sl_test
[i
].num
= 0x0000000000000000L
-1L; sl_test
[i
].expected
= "-1";
814 for(i
=1; i
<=num_slong_tests
; i
++) {
816 for(j
=0; j
<BUFSZ
; j
++)
817 sl_test
[i
].result
[j
] = 'X';
818 sl_test
[i
].result
[BUFSZ
-1] = '\0';
820 (void)curl_msprintf(sl_test
[i
].result
, "%ld", sl_test
[i
].num
);
822 if(memcmp(sl_test
[i
].result
,
824 strlen(sl_test
[i
].expected
))) {
825 printf("signed long test #%.2d: Failed (Expected: %s Got: %s)\n",
826 i
, sl_test
[i
].expected
, sl_test
[i
].result
);
833 printf("All curl_mprintf() signed long tests OK!\n");
835 printf("Some curl_mprintf() signed long tests Failed!\n");
841 static int test_curl_off_t_formatting(void)
847 #if (CURL_SIZEOF_CURL_OFF_T == 2)
849 i
=1; co_test
[i
].num
= MPRNT_OFF_T_C(0x7FFF); co_test
[i
].expected
= "32767";
850 i
++; co_test
[i
].num
= MPRNT_OFF_T_C(0x7FFE); co_test
[i
].expected
= "32766";
851 i
++; co_test
[i
].num
= MPRNT_OFF_T_C(0x7FFD); co_test
[i
].expected
= "32765";
852 i
++; co_test
[i
].num
= MPRNT_OFF_T_C(0x7F00); co_test
[i
].expected
= "32512";
853 i
++; co_test
[i
].num
= MPRNT_OFF_T_C(0x07F0); co_test
[i
].expected
= "2032";
854 i
++; co_test
[i
].num
= MPRNT_OFF_T_C(0x007F); co_test
[i
].expected
= "127";
856 i
++; co_test
[i
].num
= MPRNT_OFF_T_C(0x7000); co_test
[i
].expected
= "28672";
857 i
++; co_test
[i
].num
= MPRNT_OFF_T_C(0x0700); co_test
[i
].expected
= "1792";
858 i
++; co_test
[i
].num
= MPRNT_OFF_T_C(0x0070); co_test
[i
].expected
= "112";
859 i
++; co_test
[i
].num
= MPRNT_OFF_T_C(0x0007); co_test
[i
].expected
= "7";
861 i
++; co_test
[i
].num
= MPRNT_OFF_T_C(0x5000); co_test
[i
].expected
= "20480";
862 i
++; co_test
[i
].num
= MPRNT_OFF_T_C(0x0500); co_test
[i
].expected
= "1280";
863 i
++; co_test
[i
].num
= MPRNT_OFF_T_C(0x0050); co_test
[i
].expected
= "80";
864 i
++; co_test
[i
].num
= MPRNT_OFF_T_C(0x0005); co_test
[i
].expected
= "5";
866 i
++; co_test
[i
].num
= MPRNT_OFF_T_C(0x0001); co_test
[i
].expected
= "1";
867 i
++; co_test
[i
].num
= MPRNT_OFF_T_C(0x0000); co_test
[i
].expected
= "0";
869 i
++; co_test
[i
].num
= -MPRNT_OFF_T_C(0x7FFF) -MPRNT_OFF_T_C(1); co_test
[i
].expected
= "-32768";
870 i
++; co_test
[i
].num
= -MPRNT_OFF_T_C(0x7FFE) -MPRNT_OFF_T_C(1); co_test
[i
].expected
= "-32767";
871 i
++; co_test
[i
].num
= -MPRNT_OFF_T_C(0x7FFD) -MPRNT_OFF_T_C(1); co_test
[i
].expected
= "-32766";
872 i
++; co_test
[i
].num
= -MPRNT_OFF_T_C(0x7F00) -MPRNT_OFF_T_C(1); co_test
[i
].expected
= "-32513";
873 i
++; co_test
[i
].num
= -MPRNT_OFF_T_C(0x07F0) -MPRNT_OFF_T_C(1); co_test
[i
].expected
= "-2033";
874 i
++; co_test
[i
].num
= -MPRNT_OFF_T_C(0x007F) -MPRNT_OFF_T_C(1); co_test
[i
].expected
= "-128";
876 i
++; co_test
[i
].num
= -MPRNT_OFF_T_C(0x7000) -MPRNT_OFF_T_C(1); co_test
[i
].expected
= "-28673";
877 i
++; co_test
[i
].num
= -MPRNT_OFF_T_C(0x0700) -MPRNT_OFF_T_C(1); co_test
[i
].expected
= "-1793";
878 i
++; co_test
[i
].num
= -MPRNT_OFF_T_C(0x0070) -MPRNT_OFF_T_C(1); co_test
[i
].expected
= "-113";
879 i
++; co_test
[i
].num
= -MPRNT_OFF_T_C(0x0007) -MPRNT_OFF_T_C(1); co_test
[i
].expected
= "-8";
881 i
++; co_test
[i
].num
= -MPRNT_OFF_T_C(0x5000) -MPRNT_OFF_T_C(1); co_test
[i
].expected
= "-20481";
882 i
++; co_test
[i
].num
= -MPRNT_OFF_T_C(0x0500) -MPRNT_OFF_T_C(1); co_test
[i
].expected
= "-1281";
883 i
++; co_test
[i
].num
= -MPRNT_OFF_T_C(0x0050) -MPRNT_OFF_T_C(1); co_test
[i
].expected
= "-81";
884 i
++; co_test
[i
].num
= -MPRNT_OFF_T_C(0x0005) -MPRNT_OFF_T_C(1); co_test
[i
].expected
= "-6";
886 i
++; co_test
[i
].num
= MPRNT_OFF_T_C(0x0000) -MPRNT_OFF_T_C(1); co_test
[i
].expected
= "-1";
890 #elif (CURL_SIZEOF_CURL_OFF_T == 4)
892 i
=1; co_test
[i
].num
= MPRNT_OFF_T_C(0x7FFFFFFF); co_test
[i
].expected
= "2147483647";
893 i
++; co_test
[i
].num
= MPRNT_OFF_T_C(0x7FFFFFFE); co_test
[i
].expected
= "2147483646";
894 i
++; co_test
[i
].num
= MPRNT_OFF_T_C(0x7FFFFFFD); co_test
[i
].expected
= "2147483645";
895 i
++; co_test
[i
].num
= MPRNT_OFF_T_C(0x7FFF0000); co_test
[i
].expected
= "2147418112";
896 i
++; co_test
[i
].num
= MPRNT_OFF_T_C(0x00007FFF); co_test
[i
].expected
= "32767";
898 i
++; co_test
[i
].num
= MPRNT_OFF_T_C(0x7F000000); co_test
[i
].expected
= "2130706432";
899 i
++; co_test
[i
].num
= MPRNT_OFF_T_C(0x007F0000); co_test
[i
].expected
= "8323072";
900 i
++; co_test
[i
].num
= MPRNT_OFF_T_C(0x00007F00); co_test
[i
].expected
= "32512";
901 i
++; co_test
[i
].num
= MPRNT_OFF_T_C(0x0000007F); co_test
[i
].expected
= "127";
903 i
++; co_test
[i
].num
= MPRNT_OFF_T_C(0x70000000); co_test
[i
].expected
= "1879048192";
904 i
++; co_test
[i
].num
= MPRNT_OFF_T_C(0x07000000); co_test
[i
].expected
= "117440512";
905 i
++; co_test
[i
].num
= MPRNT_OFF_T_C(0x00700000); co_test
[i
].expected
= "7340032";
906 i
++; co_test
[i
].num
= MPRNT_OFF_T_C(0x00070000); co_test
[i
].expected
= "458752";
907 i
++; co_test
[i
].num
= MPRNT_OFF_T_C(0x00007000); co_test
[i
].expected
= "28672";
908 i
++; co_test
[i
].num
= MPRNT_OFF_T_C(0x00000700); co_test
[i
].expected
= "1792";
909 i
++; co_test
[i
].num
= MPRNT_OFF_T_C(0x00000070); co_test
[i
].expected
= "112";
910 i
++; co_test
[i
].num
= MPRNT_OFF_T_C(0x00000007); co_test
[i
].expected
= "7";
912 i
++; co_test
[i
].num
= MPRNT_OFF_T_C(0x50000000); co_test
[i
].expected
= "1342177280";
913 i
++; co_test
[i
].num
= MPRNT_OFF_T_C(0x05000000); co_test
[i
].expected
= "83886080";
914 i
++; co_test
[i
].num
= MPRNT_OFF_T_C(0x00500000); co_test
[i
].expected
= "5242880";
915 i
++; co_test
[i
].num
= MPRNT_OFF_T_C(0x00050000); co_test
[i
].expected
= "327680";
916 i
++; co_test
[i
].num
= MPRNT_OFF_T_C(0x00005000); co_test
[i
].expected
= "20480";
917 i
++; co_test
[i
].num
= MPRNT_OFF_T_C(0x00000500); co_test
[i
].expected
= "1280";
918 i
++; co_test
[i
].num
= MPRNT_OFF_T_C(0x00000050); co_test
[i
].expected
= "80";
919 i
++; co_test
[i
].num
= MPRNT_OFF_T_C(0x00000005); co_test
[i
].expected
= "5";
921 i
++; co_test
[i
].num
= MPRNT_OFF_T_C(0x00000001); co_test
[i
].expected
= "1";
922 i
++; co_test
[i
].num
= MPRNT_OFF_T_C(0x00000000); co_test
[i
].expected
= "0";
924 i
++; co_test
[i
].num
= -MPRNT_OFF_T_C(0x7FFFFFFF) -MPRNT_OFF_T_C(1); co_test
[i
].expected
= "-2147483648";
925 i
++; co_test
[i
].num
= -MPRNT_OFF_T_C(0x7FFFFFFE) -MPRNT_OFF_T_C(1); co_test
[i
].expected
= "-2147483647";
926 i
++; co_test
[i
].num
= -MPRNT_OFF_T_C(0x7FFFFFFD) -MPRNT_OFF_T_C(1); co_test
[i
].expected
= "-2147483646";
927 i
++; co_test
[i
].num
= -MPRNT_OFF_T_C(0x7FFF0000) -MPRNT_OFF_T_C(1); co_test
[i
].expected
= "-2147418113";
928 i
++; co_test
[i
].num
= -MPRNT_OFF_T_C(0x00007FFF) -MPRNT_OFF_T_C(1); co_test
[i
].expected
= "-32768";
930 i
++; co_test
[i
].num
= -MPRNT_OFF_T_C(0x7F000000) -MPRNT_OFF_T_C(1); co_test
[i
].expected
= "-2130706433";
931 i
++; co_test
[i
].num
= -MPRNT_OFF_T_C(0x007F0000) -MPRNT_OFF_T_C(1); co_test
[i
].expected
= "-8323073";
932 i
++; co_test
[i
].num
= -MPRNT_OFF_T_C(0x00007F00) -MPRNT_OFF_T_C(1); co_test
[i
].expected
= "-32513";
933 i
++; co_test
[i
].num
= -MPRNT_OFF_T_C(0x0000007F) -MPRNT_OFF_T_C(1); co_test
[i
].expected
= "-128";
935 i
++; co_test
[i
].num
= -MPRNT_OFF_T_C(0x70000000) -MPRNT_OFF_T_C(1); co_test
[i
].expected
= "-1879048193";
936 i
++; co_test
[i
].num
= -MPRNT_OFF_T_C(0x07000000) -MPRNT_OFF_T_C(1); co_test
[i
].expected
= "-117440513";
937 i
++; co_test
[i
].num
= -MPRNT_OFF_T_C(0x00700000) -MPRNT_OFF_T_C(1); co_test
[i
].expected
= "-7340033";
938 i
++; co_test
[i
].num
= -MPRNT_OFF_T_C(0x00070000) -MPRNT_OFF_T_C(1); co_test
[i
].expected
= "-458753";
939 i
++; co_test
[i
].num
= -MPRNT_OFF_T_C(0x00007000) -MPRNT_OFF_T_C(1); co_test
[i
].expected
= "-28673";
940 i
++; co_test
[i
].num
= -MPRNT_OFF_T_C(0x00000700) -MPRNT_OFF_T_C(1); co_test
[i
].expected
= "-1793";
941 i
++; co_test
[i
].num
= -MPRNT_OFF_T_C(0x00000070) -MPRNT_OFF_T_C(1); co_test
[i
].expected
= "-113";
942 i
++; co_test
[i
].num
= -MPRNT_OFF_T_C(0x00000007) -MPRNT_OFF_T_C(1); co_test
[i
].expected
= "-8";
944 i
++; co_test
[i
].num
= -MPRNT_OFF_T_C(0x50000000) -MPRNT_OFF_T_C(1); co_test
[i
].expected
= "-1342177281";
945 i
++; co_test
[i
].num
= -MPRNT_OFF_T_C(0x05000000) -MPRNT_OFF_T_C(1); co_test
[i
].expected
= "-83886081";
946 i
++; co_test
[i
].num
= -MPRNT_OFF_T_C(0x00500000) -MPRNT_OFF_T_C(1); co_test
[i
].expected
= "-5242881";
947 i
++; co_test
[i
].num
= -MPRNT_OFF_T_C(0x00050000) -MPRNT_OFF_T_C(1); co_test
[i
].expected
= "-327681";
948 i
++; co_test
[i
].num
= -MPRNT_OFF_T_C(0x00005000) -MPRNT_OFF_T_C(1); co_test
[i
].expected
= "-20481";
949 i
++; co_test
[i
].num
= -MPRNT_OFF_T_C(0x00000500) -MPRNT_OFF_T_C(1); co_test
[i
].expected
= "-1281";
950 i
++; co_test
[i
].num
= -MPRNT_OFF_T_C(0x00000050) -MPRNT_OFF_T_C(1); co_test
[i
].expected
= "-81";
951 i
++; co_test
[i
].num
= -MPRNT_OFF_T_C(0x00000005) -MPRNT_OFF_T_C(1); co_test
[i
].expected
= "-6";
953 i
++; co_test
[i
].num
= MPRNT_OFF_T_C(0x00000000) -MPRNT_OFF_T_C(1); co_test
[i
].expected
= "-1";
957 #elif (CURL_SIZEOF_CURL_OFF_T == 8)
959 i
=1; co_test
[i
].num
= MPRNT_OFF_T_C(0x7FFFFFFFFFFFFFFF); co_test
[i
].expected
= "9223372036854775807";
960 i
++; co_test
[i
].num
= MPRNT_OFF_T_C(0x7FFFFFFFFFFFFFFE); co_test
[i
].expected
= "9223372036854775806";
961 i
++; co_test
[i
].num
= MPRNT_OFF_T_C(0x7FFFFFFFFFFFFFFD); co_test
[i
].expected
= "9223372036854775805";
962 i
++; co_test
[i
].num
= MPRNT_OFF_T_C(0x7FFFFFFF00000000); co_test
[i
].expected
= "9223372032559808512";
963 i
++; co_test
[i
].num
= MPRNT_OFF_T_C(0x000000007FFFFFFF); co_test
[i
].expected
= "2147483647";
965 i
++; co_test
[i
].num
= MPRNT_OFF_T_C(0x7FFF000000000000); co_test
[i
].expected
= "9223090561878065152";
966 i
++; co_test
[i
].num
= MPRNT_OFF_T_C(0x00007FFF00000000); co_test
[i
].expected
= "140733193388032";
967 i
++; co_test
[i
].num
= MPRNT_OFF_T_C(0x000000007FFF0000); co_test
[i
].expected
= "2147418112";
968 i
++; co_test
[i
].num
= MPRNT_OFF_T_C(0x0000000000007FFF); co_test
[i
].expected
= "32767";
970 i
++; co_test
[i
].num
= MPRNT_OFF_T_C(0x7F00000000000000); co_test
[i
].expected
= "9151314442816847872";
971 i
++; co_test
[i
].num
= MPRNT_OFF_T_C(0x007F000000000000); co_test
[i
].expected
= "35747322042253312";
972 i
++; co_test
[i
].num
= MPRNT_OFF_T_C(0x00007F0000000000); co_test
[i
].expected
= "139637976727552";
973 i
++; co_test
[i
].num
= MPRNT_OFF_T_C(0x0000007F00000000); co_test
[i
].expected
= "545460846592";
974 i
++; co_test
[i
].num
= MPRNT_OFF_T_C(0x000000007F000000); co_test
[i
].expected
= "2130706432";
975 i
++; co_test
[i
].num
= MPRNT_OFF_T_C(0x00000000007F0000); co_test
[i
].expected
= "8323072";
976 i
++; co_test
[i
].num
= MPRNT_OFF_T_C(0x0000000000007F00); co_test
[i
].expected
= "32512";
977 i
++; co_test
[i
].num
= MPRNT_OFF_T_C(0x000000000000007F); co_test
[i
].expected
= "127";
979 i
++; co_test
[i
].num
= MPRNT_OFF_T_C(0x7000000000000000); co_test
[i
].expected
= "8070450532247928832";
980 i
++; co_test
[i
].num
= MPRNT_OFF_T_C(0x0700000000000000); co_test
[i
].expected
= "504403158265495552";
981 i
++; co_test
[i
].num
= MPRNT_OFF_T_C(0x0070000000000000); co_test
[i
].expected
= "31525197391593472";
982 i
++; co_test
[i
].num
= MPRNT_OFF_T_C(0x0007000000000000); co_test
[i
].expected
= "1970324836974592";
983 i
++; co_test
[i
].num
= MPRNT_OFF_T_C(0x0000700000000000); co_test
[i
].expected
= "123145302310912";
984 i
++; co_test
[i
].num
= MPRNT_OFF_T_C(0x0000070000000000); co_test
[i
].expected
= "7696581394432";
985 i
++; co_test
[i
].num
= MPRNT_OFF_T_C(0x0000007000000000); co_test
[i
].expected
= "481036337152";
986 i
++; co_test
[i
].num
= MPRNT_OFF_T_C(0x0000000700000000); co_test
[i
].expected
= "30064771072";
987 i
++; co_test
[i
].num
= MPRNT_OFF_T_C(0x0000000070000000); co_test
[i
].expected
= "1879048192";
988 i
++; co_test
[i
].num
= MPRNT_OFF_T_C(0x0000000007000000); co_test
[i
].expected
= "117440512";
989 i
++; co_test
[i
].num
= MPRNT_OFF_T_C(0x0000000000700000); co_test
[i
].expected
= "7340032";
990 i
++; co_test
[i
].num
= MPRNT_OFF_T_C(0x0000000000070000); co_test
[i
].expected
= "458752";
991 i
++; co_test
[i
].num
= MPRNT_OFF_T_C(0x0000000000007000); co_test
[i
].expected
= "28672";
992 i
++; co_test
[i
].num
= MPRNT_OFF_T_C(0x0000000000000700); co_test
[i
].expected
= "1792";
993 i
++; co_test
[i
].num
= MPRNT_OFF_T_C(0x0000000000000070); co_test
[i
].expected
= "112";
994 i
++; co_test
[i
].num
= MPRNT_OFF_T_C(0x0000000000000007); co_test
[i
].expected
= "7";
996 i
++; co_test
[i
].num
= MPRNT_OFF_T_C(0x0000000000000001); co_test
[i
].expected
= "1";
997 i
++; co_test
[i
].num
= MPRNT_OFF_T_C(0x0000000000000000); co_test
[i
].expected
= "0";
999 i
++; co_test
[i
].num
= -MPRNT_OFF_T_C(0x7FFFFFFFFFFFFFFF) -MPRNT_OFF_T_C(1); co_test
[i
].expected
= "-9223372036854775808";
1000 i
++; co_test
[i
].num
= -MPRNT_OFF_T_C(0x7FFFFFFFFFFFFFFE) -MPRNT_OFF_T_C(1); co_test
[i
].expected
= "-9223372036854775807";
1001 i
++; co_test
[i
].num
= -MPRNT_OFF_T_C(0x7FFFFFFFFFFFFFFD) -MPRNT_OFF_T_C(1); co_test
[i
].expected
= "-9223372036854775806";
1002 i
++; co_test
[i
].num
= -MPRNT_OFF_T_C(0x7FFFFFFF00000000) -MPRNT_OFF_T_C(1); co_test
[i
].expected
= "-9223372032559808513";
1003 i
++; co_test
[i
].num
= -MPRNT_OFF_T_C(0x000000007FFFFFFF) -MPRNT_OFF_T_C(1); co_test
[i
].expected
= "-2147483648";
1005 i
++; co_test
[i
].num
= -MPRNT_OFF_T_C(0x7FFF000000000000) -MPRNT_OFF_T_C(1); co_test
[i
].expected
= "-9223090561878065153";
1006 i
++; co_test
[i
].num
= -MPRNT_OFF_T_C(0x00007FFF00000000) -MPRNT_OFF_T_C(1); co_test
[i
].expected
= "-140733193388033";
1007 i
++; co_test
[i
].num
= -MPRNT_OFF_T_C(0x000000007FFF0000) -MPRNT_OFF_T_C(1); co_test
[i
].expected
= "-2147418113";
1008 i
++; co_test
[i
].num
= -MPRNT_OFF_T_C(0x0000000000007FFF) -MPRNT_OFF_T_C(1); co_test
[i
].expected
= "-32768";
1010 i
++; co_test
[i
].num
= -MPRNT_OFF_T_C(0x7F00000000000000) -MPRNT_OFF_T_C(1); co_test
[i
].expected
= "-9151314442816847873";
1011 i
++; co_test
[i
].num
= -MPRNT_OFF_T_C(0x007F000000000000) -MPRNT_OFF_T_C(1); co_test
[i
].expected
= "-35747322042253313";
1012 i
++; co_test
[i
].num
= -MPRNT_OFF_T_C(0x00007F0000000000) -MPRNT_OFF_T_C(1); co_test
[i
].expected
= "-139637976727553";
1013 i
++; co_test
[i
].num
= -MPRNT_OFF_T_C(0x0000007F00000000) -MPRNT_OFF_T_C(1); co_test
[i
].expected
= "-545460846593";
1014 i
++; co_test
[i
].num
= -MPRNT_OFF_T_C(0x000000007F000000) -MPRNT_OFF_T_C(1); co_test
[i
].expected
= "-2130706433";
1015 i
++; co_test
[i
].num
= -MPRNT_OFF_T_C(0x00000000007F0000) -MPRNT_OFF_T_C(1); co_test
[i
].expected
= "-8323073";
1016 i
++; co_test
[i
].num
= -MPRNT_OFF_T_C(0x0000000000007F00) -MPRNT_OFF_T_C(1); co_test
[i
].expected
= "-32513";
1017 i
++; co_test
[i
].num
= -MPRNT_OFF_T_C(0x000000000000007F) -MPRNT_OFF_T_C(1); co_test
[i
].expected
= "-128";
1019 i
++; co_test
[i
].num
= -MPRNT_OFF_T_C(0x7000000000000000) -MPRNT_OFF_T_C(1); co_test
[i
].expected
= "-8070450532247928833";
1020 i
++; co_test
[i
].num
= -MPRNT_OFF_T_C(0x0700000000000000) -MPRNT_OFF_T_C(1); co_test
[i
].expected
= "-504403158265495553";
1021 i
++; co_test
[i
].num
= -MPRNT_OFF_T_C(0x0070000000000000) -MPRNT_OFF_T_C(1); co_test
[i
].expected
= "-31525197391593473";
1022 i
++; co_test
[i
].num
= -MPRNT_OFF_T_C(0x0007000000000000) -MPRNT_OFF_T_C(1); co_test
[i
].expected
= "-1970324836974593";
1023 i
++; co_test
[i
].num
= -MPRNT_OFF_T_C(0x0000700000000000) -MPRNT_OFF_T_C(1); co_test
[i
].expected
= "-123145302310913";
1024 i
++; co_test
[i
].num
= -MPRNT_OFF_T_C(0x0000070000000000) -MPRNT_OFF_T_C(1); co_test
[i
].expected
= "-7696581394433";
1025 i
++; co_test
[i
].num
= -MPRNT_OFF_T_C(0x0000007000000000) -MPRNT_OFF_T_C(1); co_test
[i
].expected
= "-481036337153";
1026 i
++; co_test
[i
].num
= -MPRNT_OFF_T_C(0x0000000700000000) -MPRNT_OFF_T_C(1); co_test
[i
].expected
= "-30064771073";
1027 i
++; co_test
[i
].num
= -MPRNT_OFF_T_C(0x0000000070000000) -MPRNT_OFF_T_C(1); co_test
[i
].expected
= "-1879048193";
1028 i
++; co_test
[i
].num
= -MPRNT_OFF_T_C(0x0000000007000000) -MPRNT_OFF_T_C(1); co_test
[i
].expected
= "-117440513";
1029 i
++; co_test
[i
].num
= -MPRNT_OFF_T_C(0x0000000000700000) -MPRNT_OFF_T_C(1); co_test
[i
].expected
= "-7340033";
1030 i
++; co_test
[i
].num
= -MPRNT_OFF_T_C(0x0000000000070000) -MPRNT_OFF_T_C(1); co_test
[i
].expected
= "-458753";
1031 i
++; co_test
[i
].num
= -MPRNT_OFF_T_C(0x0000000000007000) -MPRNT_OFF_T_C(1); co_test
[i
].expected
= "-28673";
1032 i
++; co_test
[i
].num
= -MPRNT_OFF_T_C(0x0000000000000700) -MPRNT_OFF_T_C(1); co_test
[i
].expected
= "-1793";
1033 i
++; co_test
[i
].num
= -MPRNT_OFF_T_C(0x0000000000000070) -MPRNT_OFF_T_C(1); co_test
[i
].expected
= "-113";
1034 i
++; co_test
[i
].num
= -MPRNT_OFF_T_C(0x0000000000000007) -MPRNT_OFF_T_C(1); co_test
[i
].expected
= "-8";
1036 i
++; co_test
[i
].num
= MPRNT_OFF_T_C(0x0000000000000000) -MPRNT_OFF_T_C(1); co_test
[i
].expected
= "-1";
1038 num_cofft_tests
= i
;
1042 for(i
=1; i
<=num_cofft_tests
; i
++) {
1044 for(j
=0; j
<BUFSZ
; j
++)
1045 co_test
[i
].result
[j
] = 'X';
1046 co_test
[i
].result
[BUFSZ
-1] = '\0';
1048 (void)curl_msprintf(co_test
[i
].result
, "%" FORMAT_OFF_T
, co_test
[i
].num
);
1050 if(memcmp(co_test
[i
].result
,
1051 co_test
[i
].expected
,
1052 strlen(co_test
[i
].expected
))) {
1053 printf("curl_off_t test #%.2d: Failed (Expected: %s Got: %s)\n",
1054 i
, co_test
[i
].expected
, co_test
[i
].result
);
1061 printf("All curl_mprintf() curl_off_t tests OK!\n");
1063 printf("Some curl_mprintf() curl_off_t tests Failed!\n");
1072 (void)URL
; /* not used */
1074 errors
+= test_unsigned_int_formatting();
1076 errors
+= test_signed_int_formatting();
1078 errors
+= test_unsigned_long_formatting();
1080 errors
+= test_signed_long_formatting();
1082 errors
+= test_curl_off_t_formatting();
1085 return TEST_ERR_MAJOR_BAD
;