msvcrt: Do not treat %ll as an IntegerDouble in printf.
[wine/testsucceed.git] / dlls / urlmon / tests / generated.c
blob5bd1947098e31f861d4bb7337ed9b71c59b48634
1 /* File generated automatically from tools/winapi/test.dat; do not edit! */
2 /* This file can be copied, modified and distributed without restriction. */
4 /*
5 * Unit tests for data structure packing
6 */
8 #define WINVER 0x0501
9 #define _WIN32_IE 0x0501
10 #define _WIN32_WINNT 0x0501
12 #define WINE_NOWINSOCK
14 #include <stdarg.h>
15 #include "windef.h"
16 #include "winbase.h"
17 #include "urlmon.h"
19 #include "wine/test.h"
21 /***********************************************************************
22 * Compability macros
25 #define DWORD_PTR UINT_PTR
26 #define LONG_PTR INT_PTR
27 #define ULONG_PTR UINT_PTR
29 /***********************************************************************
30 * Windows API extension
33 #if defined(_MSC_VER) && (_MSC_VER >= 1300) && defined(__cplusplus)
34 # define FIELD_ALIGNMENT(type, field) __alignof(((type*)0)->field)
35 #elif defined(__GNUC__)
36 # define FIELD_ALIGNMENT(type, field) __alignof__(((type*)0)->field)
37 #else
38 /* FIXME: Not sure if is possible to do without compiler extension */
39 #endif
41 #if defined(_MSC_VER) && (_MSC_VER >= 1300) && defined(__cplusplus)
42 # define _TYPE_ALIGNMENT(type) __alignof(type)
43 #elif defined(__GNUC__)
44 # define _TYPE_ALIGNMENT(type) __alignof__(type)
45 #else
47 * FIXME: Not sure if is possible to do without compiler extension
48 * (if type is not just a name that is, if so the normal)
49 * TYPE_ALIGNMENT can be used)
51 #endif
53 #if defined(TYPE_ALIGNMENT) && defined(_MSC_VER) && _MSC_VER >= 800 && !defined(__cplusplus)
54 #pragma warning(disable:4116)
55 #endif
57 #if !defined(TYPE_ALIGNMENT) && defined(_TYPE_ALIGNMENT)
58 # define TYPE_ALIGNMENT _TYPE_ALIGNMENT
59 #endif
61 /***********************************************************************
62 * Test helper macros
65 #ifdef FIELD_ALIGNMENT
66 # define TEST_FIELD_ALIGNMENT(type, field, align) \
67 ok(FIELD_ALIGNMENT(type, field) == align, \
68 "FIELD_ALIGNMENT(" #type ", " #field ") == %d (expected " #align ")\n", \
69 (int)FIELD_ALIGNMENT(type, field))
70 #else
71 # define TEST_FIELD_ALIGNMENT(type, field, align) do { } while (0)
72 #endif
74 #define TEST_FIELD_OFFSET(type, field, offset) \
75 ok(FIELD_OFFSET(type, field) == offset, \
76 "FIELD_OFFSET(" #type ", " #field ") == %ld (expected " #offset ")\n", \
77 (long int)FIELD_OFFSET(type, field))
79 #ifdef _TYPE_ALIGNMENT
80 #define TEST__TYPE_ALIGNMENT(type, align) \
81 ok(_TYPE_ALIGNMENT(type) == align, "TYPE_ALIGNMENT(" #type ") == %d (expected " #align ")\n", (int)_TYPE_ALIGNMENT(type))
82 #else
83 # define TEST__TYPE_ALIGNMENT(type, align) do { } while (0)
84 #endif
86 #ifdef TYPE_ALIGNMENT
87 #define TEST_TYPE_ALIGNMENT(type, align) \
88 ok(TYPE_ALIGNMENT(type) == align, "TYPE_ALIGNMENT(" #type ") == %d (expected " #align ")\n", (int)TYPE_ALIGNMENT(type))
89 #else
90 # define TEST_TYPE_ALIGNMENT(type, align) do { } while (0)
91 #endif
93 #define TEST_TYPE_SIZE(type, size) \
94 ok(sizeof(type) == size, "sizeof(" #type ") == %d (expected " #size ")\n", ((int) sizeof(type)))
96 /***********************************************************************
97 * Test macros
100 #define TEST_FIELD(type, field_type, field_name, field_offset, field_size, field_align) \
101 TEST_TYPE_SIZE(field_type, field_size); \
102 TEST_FIELD_ALIGNMENT(type, field_name, field_align); \
103 TEST_FIELD_OFFSET(type, field_name, field_offset); \
105 #define TEST_TYPE(type, size, align) \
106 TEST_TYPE_ALIGNMENT(type, align); \
107 TEST_TYPE_SIZE(type, size)
109 #define TEST_TYPE_POINTER(type, size, align) \
110 TEST__TYPE_ALIGNMENT(*(type)0, align); \
111 TEST_TYPE_SIZE(*(type)0, size)
113 #define TEST_TYPE_SIGNED(type) \
114 ok((type) -1 < 0, "(" #type ") -1 < 0\n");
116 #define TEST_TYPE_UNSIGNED(type) \
117 ok((type) -1 > 0, "(" #type ") -1 > 0\n");
119 static void test_pack_BINDINFO(void)
121 /* BINDINFO (pack 4) */
122 TEST_FIELD(BINDINFO, ULONG, cbSize, 0, 4, 4);
123 TEST_FIELD(BINDINFO, LPWSTR, szExtraInfo, 4, 4, 4);
126 static void test_pack_IBindHost(void)
128 /* IBindHost */
131 static void test_pack_IBindHostVtbl(void)
133 /* IBindHostVtbl */
136 static void test_pack_IBindStatusCallback(void)
138 /* IBindStatusCallback */
141 static void test_pack_IBindStatusCallbackVtbl(void)
143 /* IBindStatusCallbackVtbl */
146 static void test_pack_IBinding(void)
148 /* IBinding */
151 static void test_pack_IBindingVtbl(void)
153 /* IBindingVtbl */
156 static void test_pack_IInternetProtocolInfo(void)
158 /* IInternetProtocolInfo */
161 static void test_pack_IInternetProtocolInfoVtbl(void)
163 /* IInternetProtocolInfoVtbl */
166 static void test_pack_IInternetSession(void)
168 /* IInternetSession */
171 static void test_pack_IInternetSessionVtbl(void)
173 /* IInternetSessionVtbl */
176 static void test_pack_IPersistMoniker(void)
178 /* IPersistMoniker */
181 static void test_pack_IPersistMonikerVtbl(void)
183 /* IPersistMonikerVtbl */
186 static void test_pack_IWinInetHttpInfo(void)
188 /* IWinInetHttpInfo */
191 static void test_pack_IWinInetHttpInfoVtbl(void)
193 /* IWinInetHttpInfoVtbl */
196 static void test_pack_IWinInetInfo(void)
198 /* IWinInetInfo */
201 static void test_pack_IWinInetInfoVtbl(void)
203 /* IWinInetInfoVtbl */
206 static void test_pack_LPBINDHOST(void)
208 /* LPBINDHOST */
209 TEST_TYPE(LPBINDHOST, 4, 4);
212 static void test_pack_LPBINDING(void)
214 /* LPBINDING */
215 TEST_TYPE(LPBINDING, 4, 4);
218 static void test_pack_LPBINDSTATUSCALLBACK(void)
220 /* LPBINDSTATUSCALLBACK */
221 TEST_TYPE(LPBINDSTATUSCALLBACK, 4, 4);
224 static void test_pack_LPIINTERNETPROTOCOLINFO(void)
226 /* LPIINTERNETPROTOCOLINFO */
227 TEST_TYPE(LPIINTERNETPROTOCOLINFO, 4, 4);
230 static void test_pack_LPIINTERNETSESSION(void)
232 /* LPIINTERNETSESSION */
233 TEST_TYPE(LPIINTERNETSESSION, 4, 4);
236 static void test_pack_LPPERSISTMONIKER(void)
238 /* LPPERSISTMONIKER */
239 TEST_TYPE(LPPERSISTMONIKER, 4, 4);
242 static void test_pack_LPREMFORMATETC(void)
244 /* LPREMFORMATETC */
245 TEST_TYPE(LPREMFORMATETC, 4, 4);
246 TEST_TYPE_POINTER(LPREMFORMATETC, 20, 4);
249 static void test_pack_LPREMSECURITY_ATTRIBUTES(void)
251 /* LPREMSECURITY_ATTRIBUTES */
252 TEST_TYPE(LPREMSECURITY_ATTRIBUTES, 4, 4);
253 TEST_TYPE_POINTER(LPREMSECURITY_ATTRIBUTES, 12, 4);
256 static void test_pack_LPWININETHTTPINFO(void)
258 /* LPWININETHTTPINFO */
259 TEST_TYPE(LPWININETHTTPINFO, 4, 4);
262 static void test_pack_LPWININETINFO(void)
264 /* LPWININETINFO */
265 TEST_TYPE(LPWININETINFO, 4, 4);
268 static void test_pack_PREMSECURITY_ATTRIBUTES(void)
270 /* PREMSECURITY_ATTRIBUTES */
271 TEST_TYPE(PREMSECURITY_ATTRIBUTES, 4, 4);
272 TEST_TYPE_POINTER(PREMSECURITY_ATTRIBUTES, 12, 4);
275 static void test_pack_REMSECURITY_ATTRIBUTES(void)
277 /* REMSECURITY_ATTRIBUTES (pack 4) */
278 TEST_TYPE(REMSECURITY_ATTRIBUTES, 12, 4);
279 TEST_FIELD(REMSECURITY_ATTRIBUTES, DWORD, nLength, 0, 4, 4);
280 TEST_FIELD(REMSECURITY_ATTRIBUTES, DWORD, lpSecurityDescriptor, 4, 4, 4);
281 TEST_FIELD(REMSECURITY_ATTRIBUTES, BOOL, bInheritHandle, 8, 4, 4);
284 static void test_pack_RemBINDINFO(void)
286 /* RemBINDINFO (pack 4) */
287 TEST_TYPE(RemBINDINFO, 72, 4);
288 TEST_FIELD(RemBINDINFO, ULONG, cbSize, 0, 4, 4);
289 TEST_FIELD(RemBINDINFO, LPWSTR, szExtraInfo, 4, 4, 4);
290 TEST_FIELD(RemBINDINFO, DWORD, grfBindInfoF, 8, 4, 4);
291 TEST_FIELD(RemBINDINFO, DWORD, dwBindVerb, 12, 4, 4);
292 TEST_FIELD(RemBINDINFO, LPWSTR, szCustomVerb, 16, 4, 4);
293 TEST_FIELD(RemBINDINFO, DWORD, cbstgmedData, 20, 4, 4);
294 TEST_FIELD(RemBINDINFO, DWORD, dwOptions, 24, 4, 4);
295 TEST_FIELD(RemBINDINFO, DWORD, dwOptionsFlags, 28, 4, 4);
296 TEST_FIELD(RemBINDINFO, DWORD, dwCodePage, 32, 4, 4);
297 TEST_FIELD(RemBINDINFO, REMSECURITY_ATTRIBUTES, securityAttributes, 36, 12, 4);
298 TEST_FIELD(RemBINDINFO, IID, iid, 48, 16, 4);
299 TEST_FIELD(RemBINDINFO, IUnknown *, pUnk, 64, 4, 4);
300 TEST_FIELD(RemBINDINFO, DWORD, dwReserved, 68, 4, 4);
303 static void test_pack_RemFORMATETC(void)
305 /* RemFORMATETC (pack 4) */
306 TEST_TYPE(RemFORMATETC, 20, 4);
307 TEST_FIELD(RemFORMATETC, DWORD, cfFormat, 0, 4, 4);
308 TEST_FIELD(RemFORMATETC, DWORD, ptd, 4, 4, 4);
309 TEST_FIELD(RemFORMATETC, DWORD, dwAspect, 8, 4, 4);
310 TEST_FIELD(RemFORMATETC, LONG, lindex, 12, 4, 4);
311 TEST_FIELD(RemFORMATETC, DWORD, tymed, 16, 4, 4);
314 static void test_pack(void)
316 test_pack_BINDINFO();
317 test_pack_IBindHost();
318 test_pack_IBindHostVtbl();
319 test_pack_IBindStatusCallback();
320 test_pack_IBindStatusCallbackVtbl();
321 test_pack_IBinding();
322 test_pack_IBindingVtbl();
323 test_pack_IInternetProtocolInfo();
324 test_pack_IInternetProtocolInfoVtbl();
325 test_pack_IInternetSession();
326 test_pack_IInternetSessionVtbl();
327 test_pack_IPersistMoniker();
328 test_pack_IPersistMonikerVtbl();
329 test_pack_IWinInetHttpInfo();
330 test_pack_IWinInetHttpInfoVtbl();
331 test_pack_IWinInetInfo();
332 test_pack_IWinInetInfoVtbl();
333 test_pack_LPBINDHOST();
334 test_pack_LPBINDING();
335 test_pack_LPBINDSTATUSCALLBACK();
336 test_pack_LPIINTERNETPROTOCOLINFO();
337 test_pack_LPIINTERNETSESSION();
338 test_pack_LPPERSISTMONIKER();
339 test_pack_LPREMFORMATETC();
340 test_pack_LPREMSECURITY_ATTRIBUTES();
341 test_pack_LPWININETHTTPINFO();
342 test_pack_LPWININETINFO();
343 test_pack_PREMSECURITY_ATTRIBUTES();
344 test_pack_REMSECURITY_ATTRIBUTES();
345 test_pack_RemBINDINFO();
346 test_pack_RemFORMATETC();
349 START_TEST(generated)
351 test_pack();