Updated the generated tests.
[wine.git] / dlls / kernel / tests / generated.c
bloba8bc0c53443dbcea7a986f629107f600301510da
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_WINNT 0x0501
11 #define WINE_NOWINSOCK
13 #include "windows.h"
15 #include "wine/test.h"
17 /***********************************************************************
18 * Compability macros
21 #define DWORD_PTR UINT_PTR
22 #define LONG_PTR INT_PTR
23 #define ULONG_PTR UINT_PTR
25 /***********************************************************************
26 * Windows API extension
29 #if (_MSC_VER >= 1300) && defined(__cplusplus)
30 # define FIELD_ALIGNMENT(type, field) __alignof(((type*)0)->field)
31 #elif defined(__GNUC__)
32 # define FIELD_ALIGNMENT(type, field) __alignof__(((type*)0)->field)
33 #else
34 /* FIXME: Not sure if is possible to do without compiler extension */
35 #endif
37 #if (_MSC_VER >= 1300) && defined(__cplusplus)
38 # define _TYPE_ALIGNMENT(type) __alignof(type)
39 #elif defined(__GNUC__)
40 # define _TYPE_ALIGNMENT(type) __alignof__(type)
41 #else
43 * FIXME: Not sure if is possible to do without compiler extension
44 * (if type is not just a name that is, if so the normal)
45 * TYPE_ALIGNMENT can be used)
47 #endif
49 #if !defined(TYPE_ALIGNMENT) && defined(_TYPE_ALIGNMENT)
50 # define TYPE_ALIGNMENT _TYPE_ALIGNMENT
51 #endif
53 /***********************************************************************
54 * Test helper macros
57 #ifdef FIELD_ALIGNMENT
58 # define TEST_FIELD_ALIGNMENT(type, field, align) \
59 ok(FIELD_ALIGNMENT(type, field) == align, \
60 "FIELD_ALIGNMENT(" #type ", " #field ") == %d (expected " #align ")", \
61 FIELD_ALIGNMENT(type, field))
62 #else
63 # define TEST_FIELD_ALIGNMENT(type, field, align) do { } while (0)
64 #endif
66 #define TEST_FIELD_OFFSET(type, field, offset) \
67 ok(FIELD_OFFSET(type, field) == offset, \
68 "FIELD_OFFSET(" #type ", " #field ") == %ld (expected " #offset ")", \
69 FIELD_OFFSET(type, field))
71 #ifdef _TYPE_ALIGNMENT
72 #define TEST__TYPE_ALIGNMENT(type, align) \
73 ok(_TYPE_ALIGNMENT(type) == align, "TYPE_ALIGNMENT(" #type ") == %d (expected " #align ")", _TYPE_ALIGNMENT(type))
74 #else
75 # define TEST__TYPE_ALIGNMENT(type, align) do { } while (0)
76 #endif
78 #ifdef TYPE_ALIGNMENT
79 #define TEST_TYPE_ALIGNMENT(type, align) \
80 ok(TYPE_ALIGNMENT(type) == align, "TYPE_ALIGNMENT(" #type ") == %d (expected " #align ")", TYPE_ALIGNMENT(type))
81 #else
82 # define TEST_TYPE_ALIGNMENT(type, align) do { } while (0)
83 #endif
85 #define TEST_TYPE_SIZE(type, size) \
86 ok(sizeof(type) == size, "sizeof(" #type ") == %d (expected " #size ")", sizeof(type))
88 /***********************************************************************
89 * Test macros
92 #define TEST_FIELD(type, field_type, field_name, field_offset, field_size, field_align) \
93 TEST_TYPE_SIZE(field_type, field_size); \
94 TEST_FIELD_ALIGNMENT(type, field_name, field_align); \
95 TEST_FIELD_OFFSET(type, field_name, field_offset); \
97 #define TEST_TYPE(type, size, align) \
98 TEST_TYPE_ALIGNMENT(type, align); \
99 TEST_TYPE_SIZE(type, size)
101 #define TEST_TYPE_POINTER(type, size, align) \
102 TEST__TYPE_ALIGNMENT(*(type)0, align); \
103 TEST_TYPE_SIZE(*(type)0, size)
105 #define TEST_TYPE_SIGNED(type) \
106 ok((type) -1 < 0, "(" #type ") -1 < 0");
108 #define TEST_TYPE_UNSIGNED(type) \
109 ok((type) -1 > 0, "(" #type ") -1 > 0");
111 void test_pack(void)
113 /* BY_HANDLE_FILE_INFORMATION (pack 4) */
114 TEST_TYPE(BY_HANDLE_FILE_INFORMATION, 52, 4);
115 TEST_FIELD(BY_HANDLE_FILE_INFORMATION, DWORD, dwFileAttributes, 0, 4, 4);
116 TEST_FIELD(BY_HANDLE_FILE_INFORMATION, FILETIME, ftCreationTime, 4, 8, 4);
117 TEST_FIELD(BY_HANDLE_FILE_INFORMATION, FILETIME, ftLastAccessTime, 12, 8, 4);
118 TEST_FIELD(BY_HANDLE_FILE_INFORMATION, FILETIME, ftLastWriteTime, 20, 8, 4);
119 TEST_FIELD(BY_HANDLE_FILE_INFORMATION, DWORD, dwVolumeSerialNumber, 28, 4, 4);
120 TEST_FIELD(BY_HANDLE_FILE_INFORMATION, DWORD, nFileSizeHigh, 32, 4, 4);
121 TEST_FIELD(BY_HANDLE_FILE_INFORMATION, DWORD, nFileSizeLow, 36, 4, 4);
122 TEST_FIELD(BY_HANDLE_FILE_INFORMATION, DWORD, nNumberOfLinks, 40, 4, 4);
123 TEST_FIELD(BY_HANDLE_FILE_INFORMATION, DWORD, nFileIndexHigh, 44, 4, 4);
124 TEST_FIELD(BY_HANDLE_FILE_INFORMATION, DWORD, nFileIndexLow, 48, 4, 4);
126 /* COMMCONFIG (pack 4) */
127 TEST_FIELD(COMMCONFIG, DWORD, dwSize, 0, 4, 4);
128 TEST_FIELD(COMMCONFIG, WORD, wVersion, 4, 2, 2);
129 TEST_FIELD(COMMCONFIG, WORD, wReserved, 6, 2, 2);
131 /* COMMPROP (pack 4) */
132 TEST_TYPE(COMMPROP, 64, 4);
133 TEST_FIELD(COMMPROP, WORD, wPacketLength, 0, 2, 2);
134 TEST_FIELD(COMMPROP, WORD, wPacketVersion, 2, 2, 2);
135 TEST_FIELD(COMMPROP, DWORD, dwServiceMask, 4, 4, 4);
136 TEST_FIELD(COMMPROP, DWORD, dwReserved1, 8, 4, 4);
137 TEST_FIELD(COMMPROP, DWORD, dwMaxTxQueue, 12, 4, 4);
138 TEST_FIELD(COMMPROP, DWORD, dwMaxRxQueue, 16, 4, 4);
139 TEST_FIELD(COMMPROP, DWORD, dwMaxBaud, 20, 4, 4);
140 TEST_FIELD(COMMPROP, DWORD, dwProvSubType, 24, 4, 4);
141 TEST_FIELD(COMMPROP, DWORD, dwProvCapabilities, 28, 4, 4);
142 TEST_FIELD(COMMPROP, DWORD, dwSettableParams, 32, 4, 4);
143 TEST_FIELD(COMMPROP, DWORD, dwSettableBaud, 36, 4, 4);
144 TEST_FIELD(COMMPROP, WORD, wSettableData, 40, 2, 2);
145 TEST_FIELD(COMMPROP, WORD, wSettableStopParity, 42, 2, 2);
146 TEST_FIELD(COMMPROP, DWORD, dwCurrentTxQueue, 44, 4, 4);
147 TEST_FIELD(COMMPROP, DWORD, dwCurrentRxQueue, 48, 4, 4);
148 TEST_FIELD(COMMPROP, DWORD, dwProvSpec1, 52, 4, 4);
149 TEST_FIELD(COMMPROP, DWORD, dwProvSpec2, 56, 4, 4);
150 TEST_FIELD(COMMPROP, WCHAR[1], wcProvChar, 60, 2, 2);
152 /* COMMTIMEOUTS (pack 4) */
153 TEST_TYPE(COMMTIMEOUTS, 20, 4);
154 TEST_FIELD(COMMTIMEOUTS, DWORD, ReadIntervalTimeout, 0, 4, 4);
155 TEST_FIELD(COMMTIMEOUTS, DWORD, ReadTotalTimeoutMultiplier, 4, 4, 4);
156 TEST_FIELD(COMMTIMEOUTS, DWORD, ReadTotalTimeoutConstant, 8, 4, 4);
157 TEST_FIELD(COMMTIMEOUTS, DWORD, WriteTotalTimeoutMultiplier, 12, 4, 4);
158 TEST_FIELD(COMMTIMEOUTS, DWORD, WriteTotalTimeoutConstant, 16, 4, 4);
160 /* COMSTAT (pack 4) */
161 TEST_TYPE(COMSTAT, 12, 4);
162 TEST_FIELD(COMSTAT, DWORD, cbInQue, 4, 4, 4);
163 TEST_FIELD(COMSTAT, DWORD, cbOutQue, 8, 4, 4);
165 /* CREATE_PROCESS_DEBUG_INFO (pack 4) */
166 TEST_TYPE(CREATE_PROCESS_DEBUG_INFO, 40, 4);
167 TEST_FIELD(CREATE_PROCESS_DEBUG_INFO, HANDLE, hFile, 0, 4, 4);
168 TEST_FIELD(CREATE_PROCESS_DEBUG_INFO, HANDLE, hProcess, 4, 4, 4);
169 TEST_FIELD(CREATE_PROCESS_DEBUG_INFO, HANDLE, hThread, 8, 4, 4);
170 TEST_FIELD(CREATE_PROCESS_DEBUG_INFO, LPVOID, lpBaseOfImage, 12, 4, 4);
171 TEST_FIELD(CREATE_PROCESS_DEBUG_INFO, DWORD, dwDebugInfoFileOffset, 16, 4, 4);
172 TEST_FIELD(CREATE_PROCESS_DEBUG_INFO, DWORD, nDebugInfoSize, 20, 4, 4);
173 TEST_FIELD(CREATE_PROCESS_DEBUG_INFO, LPVOID, lpThreadLocalBase, 24, 4, 4);
174 TEST_FIELD(CREATE_PROCESS_DEBUG_INFO, LPTHREAD_START_ROUTINE, lpStartAddress, 28, 4, 4);
175 TEST_FIELD(CREATE_PROCESS_DEBUG_INFO, LPVOID, lpImageName, 32, 4, 4);
176 TEST_FIELD(CREATE_PROCESS_DEBUG_INFO, WORD, fUnicode, 36, 2, 2);
178 /* CREATE_THREAD_DEBUG_INFO (pack 4) */
179 TEST_TYPE(CREATE_THREAD_DEBUG_INFO, 12, 4);
180 TEST_FIELD(CREATE_THREAD_DEBUG_INFO, HANDLE, hThread, 0, 4, 4);
181 TEST_FIELD(CREATE_THREAD_DEBUG_INFO, LPVOID, lpThreadLocalBase, 4, 4, 4);
182 TEST_FIELD(CREATE_THREAD_DEBUG_INFO, LPTHREAD_START_ROUTINE, lpStartAddress, 8, 4, 4);
184 /* CRITICAL_SECTION */
185 TEST_TYPE(CRITICAL_SECTION, 24, 4);
187 /* CRITICAL_SECTION_DEBUG */
188 TEST_TYPE(CRITICAL_SECTION_DEBUG, 32, 4);
190 /* DCB (pack 4) */
191 TEST_FIELD(DCB, DWORD, DCBlength, 0, 4, 4);
192 TEST_FIELD(DCB, DWORD, BaudRate, 4, 4, 4);
194 /* DEBUG_EVENT (pack 4) */
195 TEST_FIELD(DEBUG_EVENT, DWORD, dwDebugEventCode, 0, 4, 4);
196 TEST_FIELD(DEBUG_EVENT, DWORD, dwProcessId, 4, 4, 4);
197 TEST_FIELD(DEBUG_EVENT, DWORD, dwThreadId, 8, 4, 4);
199 /* ENUMRESLANGPROCA */
201 /* ENUMRESLANGPROCW */
203 /* ENUMRESNAMEPROCA */
205 /* ENUMRESNAMEPROCW */
207 /* ENUMRESTYPEPROCA */
209 /* ENUMRESTYPEPROCW */
211 /* EXCEPTION_DEBUG_INFO (pack 4) */
212 TEST_TYPE(EXCEPTION_DEBUG_INFO, 84, 4);
213 TEST_FIELD(EXCEPTION_DEBUG_INFO, EXCEPTION_RECORD, ExceptionRecord, 0, 80, 4);
214 TEST_FIELD(EXCEPTION_DEBUG_INFO, DWORD, dwFirstChance, 80, 4, 4);
216 /* EXIT_PROCESS_DEBUG_INFO (pack 4) */
217 TEST_TYPE(EXIT_PROCESS_DEBUG_INFO, 4, 4);
218 TEST_FIELD(EXIT_PROCESS_DEBUG_INFO, DWORD, dwExitCode, 0, 4, 4);
220 /* EXIT_THREAD_DEBUG_INFO (pack 4) */
221 TEST_TYPE(EXIT_THREAD_DEBUG_INFO, 4, 4);
222 TEST_FIELD(EXIT_THREAD_DEBUG_INFO, DWORD, dwExitCode, 0, 4, 4);
224 /* HW_PROFILE_INFOA (pack 4) */
225 TEST_TYPE(HW_PROFILE_INFOA, 124, 4);
226 TEST_FIELD(HW_PROFILE_INFOA, DWORD, dwDockInfo, 0, 4, 4);
227 TEST_FIELD(HW_PROFILE_INFOA, CHAR[HW_PROFILE_GUIDLEN], szHwProfileGuid, 4, 39, 1);
228 TEST_FIELD(HW_PROFILE_INFOA, CHAR[MAX_PROFILE_LEN], szHwProfileName, 43, 80, 1);
230 /* LDT_ENTRY (pack 4) */
231 TEST_FIELD(LDT_ENTRY, WORD, LimitLow, 0, 2, 2);
232 TEST_FIELD(LDT_ENTRY, WORD, BaseLow, 2, 2, 2);
234 /* LOAD_DLL_DEBUG_INFO (pack 4) */
235 TEST_TYPE(LOAD_DLL_DEBUG_INFO, 24, 4);
236 TEST_FIELD(LOAD_DLL_DEBUG_INFO, HANDLE, hFile, 0, 4, 4);
237 TEST_FIELD(LOAD_DLL_DEBUG_INFO, LPVOID, lpBaseOfDll, 4, 4, 4);
238 TEST_FIELD(LOAD_DLL_DEBUG_INFO, DWORD, dwDebugInfoFileOffset, 8, 4, 4);
239 TEST_FIELD(LOAD_DLL_DEBUG_INFO, DWORD, nDebugInfoSize, 12, 4, 4);
240 TEST_FIELD(LOAD_DLL_DEBUG_INFO, LPVOID, lpImageName, 16, 4, 4);
241 TEST_FIELD(LOAD_DLL_DEBUG_INFO, WORD, fUnicode, 20, 2, 2);
243 /* LPBY_HANDLE_FILE_INFORMATION */
244 TEST_TYPE(LPBY_HANDLE_FILE_INFORMATION, 4, 4);
245 TEST_TYPE_POINTER(LPBY_HANDLE_FILE_INFORMATION, 52, 4);
247 /* LPCOMMCONFIG */
248 TEST_TYPE(LPCOMMCONFIG, 4, 4);
250 /* LPCOMMPROP */
251 TEST_TYPE(LPCOMMPROP, 4, 4);
252 TEST_TYPE_POINTER(LPCOMMPROP, 64, 4);
254 /* LPCOMMTIMEOUTS */
255 TEST_TYPE(LPCOMMTIMEOUTS, 4, 4);
256 TEST_TYPE_POINTER(LPCOMMTIMEOUTS, 20, 4);
258 /* LPCOMSTAT */
259 TEST_TYPE(LPCOMSTAT, 4, 4);
260 TEST_TYPE_POINTER(LPCOMSTAT, 12, 4);
262 /* LPCONTEXT */
263 TEST_TYPE(LPCONTEXT, 4, 4);
265 /* LPCRITICAL_SECTION */
266 TEST_TYPE(LPCRITICAL_SECTION, 4, 4);
268 /* LPCRITICAL_SECTION_DEBUG */
269 TEST_TYPE(LPCRITICAL_SECTION_DEBUG, 4, 4);
271 /* LPDCB */
272 TEST_TYPE(LPDCB, 4, 4);
274 /* LPDEBUG_EVENT */
275 TEST_TYPE(LPDEBUG_EVENT, 4, 4);
277 /* LPEXCEPTION_POINTERS */
278 TEST_TYPE(LPEXCEPTION_POINTERS, 4, 4);
280 /* LPEXCEPTION_RECORD */
281 TEST_TYPE(LPEXCEPTION_RECORD, 4, 4);
283 /* LPFIBER_START_ROUTINE */
285 /* LPHW_PROFILE_INFOA */
286 TEST_TYPE(LPHW_PROFILE_INFOA, 4, 4);
287 TEST_TYPE_POINTER(LPHW_PROFILE_INFOA, 124, 4);
289 /* LPHW_PROFILE_INFOW */
290 TEST_TYPE(LPHW_PROFILE_INFOW, 4, 4);
291 TEST_TYPE_POINTER(LPHW_PROFILE_INFOW, 244, 4);
293 /* LPLDT_ENTRY */
294 TEST_TYPE(LPLDT_ENTRY, 4, 4);
296 /* LPMEMORYSTATUS */
297 TEST_TYPE(LPMEMORYSTATUS, 4, 4);
298 TEST_TYPE_POINTER(LPMEMORYSTATUS, 32, 4);
300 /* LPOFSTRUCT */
301 TEST_TYPE(LPOFSTRUCT, 4, 4);
302 TEST_TYPE_POINTER(LPOFSTRUCT, 136, 2);
304 /* LPOSVERSIONINFOA */
305 TEST_TYPE(LPOSVERSIONINFOA, 4, 4);
306 TEST_TYPE_POINTER(LPOSVERSIONINFOA, 148, 4);
308 /* LPOSVERSIONINFOEXA */
309 TEST_TYPE(LPOSVERSIONINFOEXA, 4, 4);
311 /* LPOSVERSIONINFOEXW */
312 TEST_TYPE(LPOSVERSIONINFOEXW, 4, 4);
314 /* LPOSVERSIONINFOW */
315 TEST_TYPE(LPOSVERSIONINFOW, 4, 4);
316 TEST_TYPE_POINTER(LPOSVERSIONINFOW, 276, 4);
318 /* LPOVERLAPPED */
319 TEST_TYPE(LPOVERLAPPED, 4, 4);
320 TEST_TYPE_POINTER(LPOVERLAPPED, 20, 4);
322 /* LPOVERLAPPED_COMPLETION_ROUTINE */
324 /* LPPROCESS_HEAP_ENTRY */
325 TEST_TYPE(LPPROCESS_HEAP_ENTRY, 4, 4);
327 /* LPPROCESS_INFORMATION */
328 TEST_TYPE(LPPROCESS_INFORMATION, 4, 4);
329 TEST_TYPE_POINTER(LPPROCESS_INFORMATION, 16, 4);
331 /* LPPROGRESS_ROUTINE */
333 /* LPSECURITY_ATTRIBUTES */
334 TEST_TYPE(LPSECURITY_ATTRIBUTES, 4, 4);
335 TEST_TYPE_POINTER(LPSECURITY_ATTRIBUTES, 12, 4);
337 /* LPSTARTUPINFOA */
338 TEST_TYPE(LPSTARTUPINFOA, 4, 4);
339 TEST_TYPE_POINTER(LPSTARTUPINFOA, 68, 4);
341 /* LPSTARTUPINFOW */
342 TEST_TYPE(LPSTARTUPINFOW, 4, 4);
343 TEST_TYPE_POINTER(LPSTARTUPINFOW, 68, 4);
345 /* LPSYSTEMTIME */
346 TEST_TYPE(LPSYSTEMTIME, 4, 4);
347 TEST_TYPE_POINTER(LPSYSTEMTIME, 16, 2);
349 /* LPSYSTEM_INFO */
350 TEST_TYPE(LPSYSTEM_INFO, 4, 4);
352 /* LPSYSTEM_POWER_STATUS */
353 TEST_TYPE(LPSYSTEM_POWER_STATUS, 4, 4);
354 TEST_TYPE_POINTER(LPSYSTEM_POWER_STATUS, 12, 4);
356 /* LPTHREAD_START_ROUTINE */
358 /* LPTIME_ZONE_INFORMATION */
359 TEST_TYPE(LPTIME_ZONE_INFORMATION, 4, 4);
360 TEST_TYPE_POINTER(LPTIME_ZONE_INFORMATION, 172, 4);
362 /* LPWIN32_FILE_ATTRIBUTE_DATA */
363 TEST_TYPE(LPWIN32_FILE_ATTRIBUTE_DATA, 4, 4);
364 TEST_TYPE_POINTER(LPWIN32_FILE_ATTRIBUTE_DATA, 36, 4);
366 /* LPWIN32_FIND_DATAA */
367 TEST_TYPE(LPWIN32_FIND_DATAA, 4, 4);
368 TEST_TYPE_POINTER(LPWIN32_FIND_DATAA, 320, 4);
370 /* LPWIN32_FIND_DATAW */
371 TEST_TYPE(LPWIN32_FIND_DATAW, 4, 4);
372 TEST_TYPE_POINTER(LPWIN32_FIND_DATAW, 592, 4);
374 /* LPWIN32_STREAM_ID */
375 TEST_TYPE(LPWIN32_STREAM_ID, 4, 4);
376 TEST_TYPE_POINTER(LPWIN32_STREAM_ID, 24, 4);
378 /* MEMORYSTATUS (pack 4) */
379 TEST_TYPE(MEMORYSTATUS, 32, 4);
380 TEST_FIELD(MEMORYSTATUS, DWORD, dwLength, 0, 4, 4);
381 TEST_FIELD(MEMORYSTATUS, DWORD, dwMemoryLoad, 4, 4, 4);
382 TEST_FIELD(MEMORYSTATUS, SIZE_T, dwTotalPhys, 8, 4, 4);
383 TEST_FIELD(MEMORYSTATUS, SIZE_T, dwAvailPhys, 12, 4, 4);
384 TEST_FIELD(MEMORYSTATUS, SIZE_T, dwTotalPageFile, 16, 4, 4);
385 TEST_FIELD(MEMORYSTATUS, SIZE_T, dwAvailPageFile, 20, 4, 4);
386 TEST_FIELD(MEMORYSTATUS, SIZE_T, dwTotalVirtual, 24, 4, 4);
387 TEST_FIELD(MEMORYSTATUS, SIZE_T, dwAvailVirtual, 28, 4, 4);
389 /* OFSTRUCT (pack 4) */
390 TEST_TYPE(OFSTRUCT, 136, 2);
391 TEST_FIELD(OFSTRUCT, BYTE, cBytes, 0, 1, 1);
392 TEST_FIELD(OFSTRUCT, BYTE, fFixedDisk, 1, 1, 1);
393 TEST_FIELD(OFSTRUCT, WORD, nErrCode, 2, 2, 2);
394 TEST_FIELD(OFSTRUCT, WORD, Reserved1, 4, 2, 2);
395 TEST_FIELD(OFSTRUCT, WORD, Reserved2, 6, 2, 2);
396 TEST_FIELD(OFSTRUCT, BYTE[OFS_MAXPATHNAME], szPathName, 8, 128, 1);
398 /* OSVERSIONINFOA (pack 4) */
399 TEST_TYPE(OSVERSIONINFOA, 148, 4);
400 TEST_FIELD(OSVERSIONINFOA, DWORD, dwOSVersionInfoSize, 0, 4, 4);
401 TEST_FIELD(OSVERSIONINFOA, DWORD, dwMajorVersion, 4, 4, 4);
402 TEST_FIELD(OSVERSIONINFOA, DWORD, dwMinorVersion, 8, 4, 4);
403 TEST_FIELD(OSVERSIONINFOA, DWORD, dwBuildNumber, 12, 4, 4);
404 TEST_FIELD(OSVERSIONINFOA, DWORD, dwPlatformId, 16, 4, 4);
405 TEST_FIELD(OSVERSIONINFOA, CHAR[128], szCSDVersion, 20, 128, 1);
407 /* OSVERSIONINFOEXA (pack 4) */
408 TEST_FIELD(OSVERSIONINFOEXA, DWORD, dwOSVersionInfoSize, 0, 4, 4);
409 TEST_FIELD(OSVERSIONINFOEXA, DWORD, dwMajorVersion, 4, 4, 4);
410 TEST_FIELD(OSVERSIONINFOEXA, DWORD, dwMinorVersion, 8, 4, 4);
411 TEST_FIELD(OSVERSIONINFOEXA, DWORD, dwBuildNumber, 12, 4, 4);
412 TEST_FIELD(OSVERSIONINFOEXA, DWORD, dwPlatformId, 16, 4, 4);
413 TEST_FIELD(OSVERSIONINFOEXA, CHAR[128], szCSDVersion, 20, 128, 1);
414 TEST_FIELD(OSVERSIONINFOEXA, WORD, wServicePackMajor, 148, 2, 2);
415 TEST_FIELD(OSVERSIONINFOEXA, WORD, wServicePackMinor, 150, 2, 2);
417 /* OSVERSIONINFOEXW (pack 4) */
418 TEST_FIELD(OSVERSIONINFOEXW, DWORD, dwOSVersionInfoSize, 0, 4, 4);
419 TEST_FIELD(OSVERSIONINFOEXW, DWORD, dwMajorVersion, 4, 4, 4);
420 TEST_FIELD(OSVERSIONINFOEXW, DWORD, dwMinorVersion, 8, 4, 4);
421 TEST_FIELD(OSVERSIONINFOEXW, DWORD, dwBuildNumber, 12, 4, 4);
422 TEST_FIELD(OSVERSIONINFOEXW, DWORD, dwPlatformId, 16, 4, 4);
423 TEST_FIELD(OSVERSIONINFOEXW, WCHAR[128], szCSDVersion, 20, 256, 2);
424 TEST_FIELD(OSVERSIONINFOEXW, WORD, wServicePackMajor, 276, 2, 2);
425 TEST_FIELD(OSVERSIONINFOEXW, WORD, wServicePackMinor, 278, 2, 2);
427 /* OSVERSIONINFOW (pack 4) */
428 TEST_TYPE(OSVERSIONINFOW, 276, 4);
429 TEST_FIELD(OSVERSIONINFOW, DWORD, dwOSVersionInfoSize, 0, 4, 4);
430 TEST_FIELD(OSVERSIONINFOW, DWORD, dwMajorVersion, 4, 4, 4);
431 TEST_FIELD(OSVERSIONINFOW, DWORD, dwMinorVersion, 8, 4, 4);
432 TEST_FIELD(OSVERSIONINFOW, DWORD, dwBuildNumber, 12, 4, 4);
433 TEST_FIELD(OSVERSIONINFOW, DWORD, dwPlatformId, 16, 4, 4);
434 TEST_FIELD(OSVERSIONINFOW, WCHAR[128], szCSDVersion, 20, 256, 2);
436 /* OUTPUT_DEBUG_STRING_INFO (pack 4) */
437 TEST_TYPE(OUTPUT_DEBUG_STRING_INFO, 8, 4);
438 TEST_FIELD(OUTPUT_DEBUG_STRING_INFO, LPSTR, lpDebugStringData, 0, 4, 4);
439 TEST_FIELD(OUTPUT_DEBUG_STRING_INFO, WORD, fUnicode, 4, 2, 2);
440 TEST_FIELD(OUTPUT_DEBUG_STRING_INFO, WORD, nDebugStringLength, 6, 2, 2);
442 /* OVERLAPPED (pack 4) */
443 TEST_TYPE(OVERLAPPED, 20, 4);
444 TEST_FIELD(OVERLAPPED, DWORD, Internal, 0, 4, 4);
445 TEST_FIELD(OVERLAPPED, DWORD, InternalHigh, 4, 4, 4);
446 TEST_FIELD(OVERLAPPED, DWORD, Offset, 8, 4, 4);
447 TEST_FIELD(OVERLAPPED, DWORD, OffsetHigh, 12, 4, 4);
448 TEST_FIELD(OVERLAPPED, HANDLE, hEvent, 16, 4, 4);
450 /* PAPCFUNC */
452 /* PBY_HANDLE_FILE_INFORMATION */
453 TEST_TYPE(PBY_HANDLE_FILE_INFORMATION, 4, 4);
454 TEST_TYPE_POINTER(PBY_HANDLE_FILE_INFORMATION, 52, 4);
456 /* PCRITICAL_SECTION */
457 TEST_TYPE(PCRITICAL_SECTION, 4, 4);
459 /* PCRITICAL_SECTION_DEBUG */
460 TEST_TYPE(PCRITICAL_SECTION_DEBUG, 4, 4);
462 /* PFIBER_START_ROUTINE */
464 /* POFSTRUCT */
465 TEST_TYPE(POFSTRUCT, 4, 4);
466 TEST_TYPE_POINTER(POFSTRUCT, 136, 2);
468 /* POSVERSIONINFOA */
469 TEST_TYPE(POSVERSIONINFOA, 4, 4);
470 TEST_TYPE_POINTER(POSVERSIONINFOA, 148, 4);
472 /* POSVERSIONINFOEXA */
473 TEST_TYPE(POSVERSIONINFOEXA, 4, 4);
475 /* POSVERSIONINFOEXW */
476 TEST_TYPE(POSVERSIONINFOEXW, 4, 4);
478 /* POSVERSIONINFOW */
479 TEST_TYPE(POSVERSIONINFOW, 4, 4);
480 TEST_TYPE_POINTER(POSVERSIONINFOW, 276, 4);
482 /* PPROCESS_HEAP_ENTRY */
483 TEST_TYPE(PPROCESS_HEAP_ENTRY, 4, 4);
485 /* PPROCESS_INFORMATION */
486 TEST_TYPE(PPROCESS_INFORMATION, 4, 4);
487 TEST_TYPE_POINTER(PPROCESS_INFORMATION, 16, 4);
489 /* PROCESS_HEAP_ENTRY (pack 4) */
490 TEST_FIELD(PROCESS_HEAP_ENTRY, LPVOID, lpData, 0, 4, 4);
491 TEST_FIELD(PROCESS_HEAP_ENTRY, DWORD, cbData, 4, 4, 4);
492 TEST_FIELD(PROCESS_HEAP_ENTRY, BYTE, cbOverhead, 8, 1, 1);
493 TEST_FIELD(PROCESS_HEAP_ENTRY, BYTE, iRegionIndex, 9, 1, 1);
494 TEST_FIELD(PROCESS_HEAP_ENTRY, WORD, wFlags, 10, 2, 2);
496 /* PROCESS_INFORMATION (pack 4) */
497 TEST_TYPE(PROCESS_INFORMATION, 16, 4);
498 TEST_FIELD(PROCESS_INFORMATION, HANDLE, hProcess, 0, 4, 4);
499 TEST_FIELD(PROCESS_INFORMATION, HANDLE, hThread, 4, 4, 4);
500 TEST_FIELD(PROCESS_INFORMATION, DWORD, dwProcessId, 8, 4, 4);
501 TEST_FIELD(PROCESS_INFORMATION, DWORD, dwThreadId, 12, 4, 4);
503 /* PSECURITY_ATTRIBUTES */
504 TEST_TYPE(PSECURITY_ATTRIBUTES, 4, 4);
505 TEST_TYPE_POINTER(PSECURITY_ATTRIBUTES, 12, 4);
507 /* PSYSTEMTIME */
508 TEST_TYPE(PSYSTEMTIME, 4, 4);
509 TEST_TYPE_POINTER(PSYSTEMTIME, 16, 2);
511 /* PTIMERAPCROUTINE */
513 /* PTIME_ZONE_INFORMATION */
514 TEST_TYPE(PTIME_ZONE_INFORMATION, 4, 4);
515 TEST_TYPE_POINTER(PTIME_ZONE_INFORMATION, 172, 4);
517 /* PWIN32_FIND_DATAA */
518 TEST_TYPE(PWIN32_FIND_DATAA, 4, 4);
519 TEST_TYPE_POINTER(PWIN32_FIND_DATAA, 320, 4);
521 /* PWIN32_FIND_DATAW */
522 TEST_TYPE(PWIN32_FIND_DATAW, 4, 4);
523 TEST_TYPE_POINTER(PWIN32_FIND_DATAW, 592, 4);
525 /* RIP_INFO (pack 4) */
526 TEST_TYPE(RIP_INFO, 8, 4);
527 TEST_FIELD(RIP_INFO, DWORD, dwError, 0, 4, 4);
528 TEST_FIELD(RIP_INFO, DWORD, dwType, 4, 4, 4);
530 /* SECURITY_ATTRIBUTES (pack 4) */
531 TEST_TYPE(SECURITY_ATTRIBUTES, 12, 4);
532 TEST_FIELD(SECURITY_ATTRIBUTES, DWORD, nLength, 0, 4, 4);
533 TEST_FIELD(SECURITY_ATTRIBUTES, LPVOID, lpSecurityDescriptor, 4, 4, 4);
534 TEST_FIELD(SECURITY_ATTRIBUTES, BOOL, bInheritHandle, 8, 4, 4);
536 /* STARTUPINFOA (pack 4) */
537 TEST_TYPE(STARTUPINFOA, 68, 4);
538 TEST_FIELD(STARTUPINFOA, DWORD, cb, 0, 4, 4);
539 TEST_FIELD(STARTUPINFOA, LPSTR, lpReserved, 4, 4, 4);
540 TEST_FIELD(STARTUPINFOA, LPSTR, lpDesktop, 8, 4, 4);
541 TEST_FIELD(STARTUPINFOA, LPSTR, lpTitle, 12, 4, 4);
542 TEST_FIELD(STARTUPINFOA, DWORD, dwX, 16, 4, 4);
543 TEST_FIELD(STARTUPINFOA, DWORD, dwY, 20, 4, 4);
544 TEST_FIELD(STARTUPINFOA, DWORD, dwXSize, 24, 4, 4);
545 TEST_FIELD(STARTUPINFOA, DWORD, dwYSize, 28, 4, 4);
546 TEST_FIELD(STARTUPINFOA, DWORD, dwXCountChars, 32, 4, 4);
547 TEST_FIELD(STARTUPINFOA, DWORD, dwYCountChars, 36, 4, 4);
548 TEST_FIELD(STARTUPINFOA, DWORD, dwFillAttribute, 40, 4, 4);
549 TEST_FIELD(STARTUPINFOA, DWORD, dwFlags, 44, 4, 4);
550 TEST_FIELD(STARTUPINFOA, WORD, wShowWindow, 48, 2, 2);
551 TEST_FIELD(STARTUPINFOA, WORD, cbReserved2, 50, 2, 2);
552 TEST_FIELD(STARTUPINFOA, BYTE *, lpReserved2, 52, 4, 4);
553 TEST_FIELD(STARTUPINFOA, HANDLE, hStdInput, 56, 4, 4);
554 TEST_FIELD(STARTUPINFOA, HANDLE, hStdOutput, 60, 4, 4);
555 TEST_FIELD(STARTUPINFOA, HANDLE, hStdError, 64, 4, 4);
557 /* STARTUPINFOW (pack 4) */
558 TEST_TYPE(STARTUPINFOW, 68, 4);
559 TEST_FIELD(STARTUPINFOW, DWORD, cb, 0, 4, 4);
560 TEST_FIELD(STARTUPINFOW, LPWSTR, lpReserved, 4, 4, 4);
561 TEST_FIELD(STARTUPINFOW, LPWSTR, lpDesktop, 8, 4, 4);
562 TEST_FIELD(STARTUPINFOW, LPWSTR, lpTitle, 12, 4, 4);
563 TEST_FIELD(STARTUPINFOW, DWORD, dwX, 16, 4, 4);
564 TEST_FIELD(STARTUPINFOW, DWORD, dwY, 20, 4, 4);
565 TEST_FIELD(STARTUPINFOW, DWORD, dwXSize, 24, 4, 4);
566 TEST_FIELD(STARTUPINFOW, DWORD, dwYSize, 28, 4, 4);
567 TEST_FIELD(STARTUPINFOW, DWORD, dwXCountChars, 32, 4, 4);
568 TEST_FIELD(STARTUPINFOW, DWORD, dwYCountChars, 36, 4, 4);
569 TEST_FIELD(STARTUPINFOW, DWORD, dwFillAttribute, 40, 4, 4);
570 TEST_FIELD(STARTUPINFOW, DWORD, dwFlags, 44, 4, 4);
571 TEST_FIELD(STARTUPINFOW, WORD, wShowWindow, 48, 2, 2);
572 TEST_FIELD(STARTUPINFOW, WORD, cbReserved2, 50, 2, 2);
573 TEST_FIELD(STARTUPINFOW, BYTE *, lpReserved2, 52, 4, 4);
574 TEST_FIELD(STARTUPINFOW, HANDLE, hStdInput, 56, 4, 4);
575 TEST_FIELD(STARTUPINFOW, HANDLE, hStdOutput, 60, 4, 4);
576 TEST_FIELD(STARTUPINFOW, HANDLE, hStdError, 64, 4, 4);
578 /* SYSTEMTIME (pack 4) */
579 TEST_TYPE(SYSTEMTIME, 16, 2);
580 TEST_FIELD(SYSTEMTIME, WORD, wYear, 0, 2, 2);
581 TEST_FIELD(SYSTEMTIME, WORD, wMonth, 2, 2, 2);
582 TEST_FIELD(SYSTEMTIME, WORD, wDayOfWeek, 4, 2, 2);
583 TEST_FIELD(SYSTEMTIME, WORD, wDay, 6, 2, 2);
584 TEST_FIELD(SYSTEMTIME, WORD, wHour, 8, 2, 2);
585 TEST_FIELD(SYSTEMTIME, WORD, wMinute, 10, 2, 2);
586 TEST_FIELD(SYSTEMTIME, WORD, wSecond, 12, 2, 2);
587 TEST_FIELD(SYSTEMTIME, WORD, wMilliseconds, 14, 2, 2);
589 /* SYSTEM_POWER_STATUS (pack 4) */
590 TEST_TYPE(SYSTEM_POWER_STATUS, 12, 4);
591 TEST_FIELD(SYSTEM_POWER_STATUS, BYTE, ACLineStatus, 0, 1, 1);
592 TEST_FIELD(SYSTEM_POWER_STATUS, BYTE, BatteryFlag, 1, 1, 1);
593 TEST_FIELD(SYSTEM_POWER_STATUS, BYTE, BatteryLifePercent, 2, 1, 1);
594 TEST_FIELD(SYSTEM_POWER_STATUS, BYTE, Reserved1, 3, 1, 1);
595 TEST_FIELD(SYSTEM_POWER_STATUS, DWORD, BatteryLifeTime, 4, 4, 4);
596 TEST_FIELD(SYSTEM_POWER_STATUS, DWORD, BatteryFullLifeTime, 8, 4, 4);
598 /* TIME_ZONE_INFORMATION (pack 4) */
599 TEST_TYPE(TIME_ZONE_INFORMATION, 172, 4);
600 TEST_FIELD(TIME_ZONE_INFORMATION, LONG, Bias, 0, 4, 4);
601 TEST_FIELD(TIME_ZONE_INFORMATION, WCHAR[32], StandardName, 4, 64, 2);
602 TEST_FIELD(TIME_ZONE_INFORMATION, SYSTEMTIME, StandardDate, 68, 16, 2);
603 TEST_FIELD(TIME_ZONE_INFORMATION, LONG, StandardBias, 84, 4, 4);
604 TEST_FIELD(TIME_ZONE_INFORMATION, WCHAR[32], DaylightName, 88, 64, 2);
605 TEST_FIELD(TIME_ZONE_INFORMATION, SYSTEMTIME, DaylightDate, 152, 16, 2);
606 TEST_FIELD(TIME_ZONE_INFORMATION, LONG, DaylightBias, 168, 4, 4);
608 /* UNLOAD_DLL_DEBUG_INFO (pack 4) */
609 TEST_TYPE(UNLOAD_DLL_DEBUG_INFO, 4, 4);
610 TEST_FIELD(UNLOAD_DLL_DEBUG_INFO, LPVOID, lpBaseOfDll, 0, 4, 4);
612 /* WAITORTIMERCALLBACK */
614 /* WIN32_FILE_ATTRIBUTE_DATA (pack 4) */
615 TEST_TYPE(WIN32_FILE_ATTRIBUTE_DATA, 36, 4);
616 TEST_FIELD(WIN32_FILE_ATTRIBUTE_DATA, DWORD, dwFileAttributes, 0, 4, 4);
617 TEST_FIELD(WIN32_FILE_ATTRIBUTE_DATA, FILETIME, ftCreationTime, 4, 8, 4);
618 TEST_FIELD(WIN32_FILE_ATTRIBUTE_DATA, FILETIME, ftLastAccessTime, 12, 8, 4);
619 TEST_FIELD(WIN32_FILE_ATTRIBUTE_DATA, FILETIME, ftLastWriteTime, 20, 8, 4);
620 TEST_FIELD(WIN32_FILE_ATTRIBUTE_DATA, DWORD, nFileSizeHigh, 28, 4, 4);
621 TEST_FIELD(WIN32_FILE_ATTRIBUTE_DATA, DWORD, nFileSizeLow, 32, 4, 4);
623 /* WIN32_FIND_DATAA (pack 4) */
624 TEST_TYPE(WIN32_FIND_DATAA, 320, 4);
625 TEST_FIELD(WIN32_FIND_DATAA, DWORD, dwFileAttributes, 0, 4, 4);
626 TEST_FIELD(WIN32_FIND_DATAA, FILETIME, ftCreationTime, 4, 8, 4);
627 TEST_FIELD(WIN32_FIND_DATAA, FILETIME, ftLastAccessTime, 12, 8, 4);
628 TEST_FIELD(WIN32_FIND_DATAA, FILETIME, ftLastWriteTime, 20, 8, 4);
629 TEST_FIELD(WIN32_FIND_DATAA, DWORD, nFileSizeHigh, 28, 4, 4);
630 TEST_FIELD(WIN32_FIND_DATAA, DWORD, nFileSizeLow, 32, 4, 4);
631 TEST_FIELD(WIN32_FIND_DATAA, DWORD, dwReserved0, 36, 4, 4);
632 TEST_FIELD(WIN32_FIND_DATAA, DWORD, dwReserved1, 40, 4, 4);
633 TEST_FIELD(WIN32_FIND_DATAA, CHAR[260], cFileName, 44, 260, 1);
634 TEST_FIELD(WIN32_FIND_DATAA, CHAR[14], cAlternateFileName, 304, 14, 1);
636 /* WIN32_FIND_DATAW (pack 4) */
637 TEST_TYPE(WIN32_FIND_DATAW, 592, 4);
638 TEST_FIELD(WIN32_FIND_DATAW, DWORD, dwFileAttributes, 0, 4, 4);
639 TEST_FIELD(WIN32_FIND_DATAW, FILETIME, ftCreationTime, 4, 8, 4);
640 TEST_FIELD(WIN32_FIND_DATAW, FILETIME, ftLastAccessTime, 12, 8, 4);
641 TEST_FIELD(WIN32_FIND_DATAW, FILETIME, ftLastWriteTime, 20, 8, 4);
642 TEST_FIELD(WIN32_FIND_DATAW, DWORD, nFileSizeHigh, 28, 4, 4);
643 TEST_FIELD(WIN32_FIND_DATAW, DWORD, nFileSizeLow, 32, 4, 4);
644 TEST_FIELD(WIN32_FIND_DATAW, DWORD, dwReserved0, 36, 4, 4);
645 TEST_FIELD(WIN32_FIND_DATAW, DWORD, dwReserved1, 40, 4, 4);
646 TEST_FIELD(WIN32_FIND_DATAW, WCHAR[260], cFileName, 44, 520, 2);
647 TEST_FIELD(WIN32_FIND_DATAW, WCHAR[14], cAlternateFileName, 564, 28, 2);
651 START_TEST(generated)
653 test_pack();