1 /* File generated automatically from tools/winapi/test.dat; do not edit! */
2 /* This file can be copied, modified and distributed without restriction. */
5 * Unit tests for data structure packing
9 #define _WIN32_IE 0x0501
10 #define _WIN32_WINNT 0x0501
12 #define WINE_NOWINSOCK
16 #include "wine/test.h"
18 /***********************************************************************
22 #define DWORD_PTR UINT_PTR
23 #define LONG_PTR INT_PTR
24 #define ULONG_PTR UINT_PTR
26 /***********************************************************************
27 * Windows API extension
30 #if defined(_MSC_VER) && (_MSC_VER >= 1300) && defined(__cplusplus)
31 # define FIELD_ALIGNMENT(type, field) __alignof(((type*)0)->field)
32 #elif defined(__GNUC__)
33 # define FIELD_ALIGNMENT(type, field) __alignof__(((type*)0)->field)
35 /* FIXME: Not sure if is possible to do without compiler extension */
38 #if defined(_MSC_VER) && (_MSC_VER >= 1300) && defined(__cplusplus)
39 # define _TYPE_ALIGNMENT(type) __alignof(type)
40 #elif defined(__GNUC__)
41 # define _TYPE_ALIGNMENT(type) __alignof__(type)
44 * FIXME: Not sure if is possible to do without compiler extension
45 * (if type is not just a name that is, if so the normal)
46 * TYPE_ALIGNMENT can be used)
50 #if !defined(TYPE_ALIGNMENT) && defined(_TYPE_ALIGNMENT)
51 # define TYPE_ALIGNMENT _TYPE_ALIGNMENT
54 /***********************************************************************
58 #ifdef FIELD_ALIGNMENT
59 # define TEST_FIELD_ALIGNMENT(type, field, align) \
60 ok(FIELD_ALIGNMENT(type, field) == align, \
61 "FIELD_ALIGNMENT(" #type ", " #field ") == %d (expected " #align ")\n", \
62 FIELD_ALIGNMENT(type, field))
64 # define TEST_FIELD_ALIGNMENT(type, field, align) do { } while (0)
67 #define TEST_FIELD_OFFSET(type, field, offset) \
68 ok(FIELD_OFFSET(type, field) == offset, \
69 "FIELD_OFFSET(" #type ", " #field ") == %ld (expected " #offset ")\n", \
70 FIELD_OFFSET(type, field))
72 #ifdef _TYPE_ALIGNMENT
73 #define TEST__TYPE_ALIGNMENT(type, align) \
74 ok(_TYPE_ALIGNMENT(type) == align, "TYPE_ALIGNMENT(" #type ") == %d (expected " #align ")\n", _TYPE_ALIGNMENT(type))
76 # define TEST__TYPE_ALIGNMENT(type, align) do { } while (0)
80 #define TEST_TYPE_ALIGNMENT(type, align) \
81 ok(TYPE_ALIGNMENT(type) == align, "TYPE_ALIGNMENT(" #type ") == %d (expected " #align ")\n", TYPE_ALIGNMENT(type))
83 # define TEST_TYPE_ALIGNMENT(type, align) do { } while (0)
86 #define TEST_TYPE_SIZE(type, size) \
87 ok(sizeof(type) == size, "sizeof(" #type ") == %d (expected " #size ")\n", sizeof(type))
89 /***********************************************************************
93 #define TEST_FIELD(type, field_type, field_name, field_offset, field_size, field_align) \
94 TEST_TYPE_SIZE(field_type, field_size); \
95 TEST_FIELD_ALIGNMENT(type, field_name, field_align); \
96 TEST_FIELD_OFFSET(type, field_name, field_offset); \
98 #define TEST_TYPE(type, size, align) \
99 TEST_TYPE_ALIGNMENT(type, align); \
100 TEST_TYPE_SIZE(type, size)
102 #define TEST_TYPE_POINTER(type, size, align) \
103 TEST__TYPE_ALIGNMENT(*(type)0, align); \
104 TEST_TYPE_SIZE(*(type)0, size)
106 #define TEST_TYPE_SIGNED(type) \
107 ok((type) -1 < 0, "(" #type ") -1 < 0\n");
109 #define TEST_TYPE_UNSIGNED(type) \
110 ok((type) -1 > 0, "(" #type ") -1 > 0\n");
112 static void test_pack_LPOSVERSIONINFOA(void)
114 /* LPOSVERSIONINFOA */
115 TEST_TYPE(LPOSVERSIONINFOA, 4, 4);
116 TEST_TYPE_POINTER(LPOSVERSIONINFOA, 148, 4);
119 static void test_pack_LPOSVERSIONINFOEXA(void)
121 /* LPOSVERSIONINFOEXA */
122 TEST_TYPE(LPOSVERSIONINFOEXA, 4, 4);
123 TEST_TYPE_POINTER(LPOSVERSIONINFOEXA, 156, 4);
126 static void test_pack_LPOSVERSIONINFOEXW(void)
128 /* LPOSVERSIONINFOEXW */
129 TEST_TYPE(LPOSVERSIONINFOEXW, 4, 4);
130 TEST_TYPE_POINTER(LPOSVERSIONINFOEXW, 284, 4);
133 static void test_pack_LPOSVERSIONINFOW(void)
135 /* LPOSVERSIONINFOW */
136 TEST_TYPE(LPOSVERSIONINFOW, 4, 4);
137 TEST_TYPE_POINTER(LPOSVERSIONINFOW, 276, 4);
140 static void test_pack_OSVERSIONINFOA(void)
142 /* OSVERSIONINFOA (pack 4) */
143 TEST_TYPE(OSVERSIONINFOA, 148, 4);
144 TEST_FIELD(OSVERSIONINFOA, DWORD, dwOSVersionInfoSize, 0, 4, 4);
145 TEST_FIELD(OSVERSIONINFOA, DWORD, dwMajorVersion, 4, 4, 4);
146 TEST_FIELD(OSVERSIONINFOA, DWORD, dwMinorVersion, 8, 4, 4);
147 TEST_FIELD(OSVERSIONINFOA, DWORD, dwBuildNumber, 12, 4, 4);
148 TEST_FIELD(OSVERSIONINFOA, DWORD, dwPlatformId, 16, 4, 4);
149 TEST_FIELD(OSVERSIONINFOA, CHAR[128], szCSDVersion, 20, 128, 1);
152 static void test_pack_OSVERSIONINFOEXA(void)
154 /* OSVERSIONINFOEXA (pack 4) */
155 TEST_TYPE(OSVERSIONINFOEXA, 156, 4);
156 TEST_FIELD(OSVERSIONINFOEXA, DWORD, dwOSVersionInfoSize, 0, 4, 4);
157 TEST_FIELD(OSVERSIONINFOEXA, DWORD, dwMajorVersion, 4, 4, 4);
158 TEST_FIELD(OSVERSIONINFOEXA, DWORD, dwMinorVersion, 8, 4, 4);
159 TEST_FIELD(OSVERSIONINFOEXA, DWORD, dwBuildNumber, 12, 4, 4);
160 TEST_FIELD(OSVERSIONINFOEXA, DWORD, dwPlatformId, 16, 4, 4);
161 TEST_FIELD(OSVERSIONINFOEXA, CHAR[128], szCSDVersion, 20, 128, 1);
162 TEST_FIELD(OSVERSIONINFOEXA, WORD, wServicePackMajor, 148, 2, 2);
163 TEST_FIELD(OSVERSIONINFOEXA, WORD, wServicePackMinor, 150, 2, 2);
164 TEST_FIELD(OSVERSIONINFOEXA, WORD, wSuiteMask, 152, 2, 2);
165 TEST_FIELD(OSVERSIONINFOEXA, BYTE, wProductType, 154, 1, 1);
166 TEST_FIELD(OSVERSIONINFOEXA, BYTE, wReserved, 155, 1, 1);
169 static void test_pack_OSVERSIONINFOEXW(void)
171 /* OSVERSIONINFOEXW (pack 4) */
172 TEST_TYPE(OSVERSIONINFOEXW, 284, 4);
173 TEST_FIELD(OSVERSIONINFOEXW, DWORD, dwOSVersionInfoSize, 0, 4, 4);
174 TEST_FIELD(OSVERSIONINFOEXW, DWORD, dwMajorVersion, 4, 4, 4);
175 TEST_FIELD(OSVERSIONINFOEXW, DWORD, dwMinorVersion, 8, 4, 4);
176 TEST_FIELD(OSVERSIONINFOEXW, DWORD, dwBuildNumber, 12, 4, 4);
177 TEST_FIELD(OSVERSIONINFOEXW, DWORD, dwPlatformId, 16, 4, 4);
178 TEST_FIELD(OSVERSIONINFOEXW, WCHAR[128], szCSDVersion, 20, 256, 2);
179 TEST_FIELD(OSVERSIONINFOEXW, WORD, wServicePackMajor, 276, 2, 2);
180 TEST_FIELD(OSVERSIONINFOEXW, WORD, wServicePackMinor, 278, 2, 2);
181 TEST_FIELD(OSVERSIONINFOEXW, WORD, wSuiteMask, 280, 2, 2);
182 TEST_FIELD(OSVERSIONINFOEXW, BYTE, wProductType, 282, 1, 1);
183 TEST_FIELD(OSVERSIONINFOEXW, BYTE, wReserved, 283, 1, 1);
186 static void test_pack_OSVERSIONINFOW(void)
188 /* OSVERSIONINFOW (pack 4) */
189 TEST_TYPE(OSVERSIONINFOW, 276, 4);
190 TEST_FIELD(OSVERSIONINFOW, DWORD, dwOSVersionInfoSize, 0, 4, 4);
191 TEST_FIELD(OSVERSIONINFOW, DWORD, dwMajorVersion, 4, 4, 4);
192 TEST_FIELD(OSVERSIONINFOW, DWORD, dwMinorVersion, 8, 4, 4);
193 TEST_FIELD(OSVERSIONINFOW, DWORD, dwBuildNumber, 12, 4, 4);
194 TEST_FIELD(OSVERSIONINFOW, DWORD, dwPlatformId, 16, 4, 4);
195 TEST_FIELD(OSVERSIONINFOW, WCHAR[128], szCSDVersion, 20, 256, 2);
198 static void test_pack_POSVERSIONINFOA(void)
200 /* POSVERSIONINFOA */
201 TEST_TYPE(POSVERSIONINFOA, 4, 4);
202 TEST_TYPE_POINTER(POSVERSIONINFOA, 148, 4);
205 static void test_pack_POSVERSIONINFOEXA(void)
207 /* POSVERSIONINFOEXA */
208 TEST_TYPE(POSVERSIONINFOEXA, 4, 4);
209 TEST_TYPE_POINTER(POSVERSIONINFOEXA, 156, 4);
212 static void test_pack_POSVERSIONINFOEXW(void)
214 /* POSVERSIONINFOEXW */
215 TEST_TYPE(POSVERSIONINFOEXW, 4, 4);
216 TEST_TYPE_POINTER(POSVERSIONINFOEXW, 284, 4);
219 static void test_pack_POSVERSIONINFOW(void)
221 /* POSVERSIONINFOW */
222 TEST_TYPE(POSVERSIONINFOW, 4, 4);
223 TEST_TYPE_POINTER(POSVERSIONINFOW, 276, 4);
226 static void test_pack_LPLONG(void)
229 TEST_TYPE(LPLONG, 4, 4);
232 static void test_pack_LPVOID(void)
235 TEST_TYPE(LPVOID, 4, 4);
238 static void test_pack_PHKEY(void)
241 TEST_TYPE(PHKEY, 4, 4);
244 static void test_pack_ACTCTXA(void)
246 /* ACTCTXA (pack 4) */
247 TEST_TYPE(ACTCTXA, 32, 4);
248 TEST_FIELD(ACTCTXA, ULONG, cbSize, 0, 4, 4);
249 TEST_FIELD(ACTCTXA, DWORD, dwFlags, 4, 4, 4);
250 TEST_FIELD(ACTCTXA, LPCSTR, lpSource, 8, 4, 4);
251 TEST_FIELD(ACTCTXA, USHORT, wProcessorArchitecture, 12, 2, 2);
252 TEST_FIELD(ACTCTXA, LANGID, wLangId, 14, 2, 2);
253 TEST_FIELD(ACTCTXA, LPCSTR, lpAssemblyDirectory, 16, 4, 4);
254 TEST_FIELD(ACTCTXA, LPCSTR, lpResourceName, 20, 4, 4);
255 TEST_FIELD(ACTCTXA, LPCSTR, lpApplicationName, 24, 4, 4);
256 TEST_FIELD(ACTCTXA, HMODULE, hModule, 28, 4, 4);
259 static void test_pack_ACTCTXW(void)
261 /* ACTCTXW (pack 4) */
262 TEST_TYPE(ACTCTXW, 32, 4);
263 TEST_FIELD(ACTCTXW, ULONG, cbSize, 0, 4, 4);
264 TEST_FIELD(ACTCTXW, DWORD, dwFlags, 4, 4, 4);
265 TEST_FIELD(ACTCTXW, LPCWSTR, lpSource, 8, 4, 4);
266 TEST_FIELD(ACTCTXW, USHORT, wProcessorArchitecture, 12, 2, 2);
267 TEST_FIELD(ACTCTXW, LANGID, wLangId, 14, 2, 2);
268 TEST_FIELD(ACTCTXW, LPCWSTR, lpAssemblyDirectory, 16, 4, 4);
269 TEST_FIELD(ACTCTXW, LPCWSTR, lpResourceName, 20, 4, 4);
270 TEST_FIELD(ACTCTXW, LPCWSTR, lpApplicationName, 24, 4, 4);
271 TEST_FIELD(ACTCTXW, HMODULE, hModule, 28, 4, 4);
274 static void test_pack_ACTCTX_SECTION_KEYED_DATA(void)
276 /* ACTCTX_SECTION_KEYED_DATA (pack 4) */
277 TEST_TYPE(ACTCTX_SECTION_KEYED_DATA, 64, 4);
278 TEST_FIELD(ACTCTX_SECTION_KEYED_DATA, ULONG, cbSize, 0, 4, 4);
279 TEST_FIELD(ACTCTX_SECTION_KEYED_DATA, ULONG, ulDataFormatVersion, 4, 4, 4);
280 TEST_FIELD(ACTCTX_SECTION_KEYED_DATA, PVOID, lpData, 8, 4, 4);
281 TEST_FIELD(ACTCTX_SECTION_KEYED_DATA, ULONG, ulLength, 12, 4, 4);
282 TEST_FIELD(ACTCTX_SECTION_KEYED_DATA, PVOID, lpSectionGlobalData, 16, 4, 4);
283 TEST_FIELD(ACTCTX_SECTION_KEYED_DATA, ULONG, ulSectionGlobalDataLength, 20, 4, 4);
284 TEST_FIELD(ACTCTX_SECTION_KEYED_DATA, PVOID, lpSectionBase, 24, 4, 4);
285 TEST_FIELD(ACTCTX_SECTION_KEYED_DATA, ULONG, ulSectionTotalLength, 28, 4, 4);
286 TEST_FIELD(ACTCTX_SECTION_KEYED_DATA, HANDLE, hActCtx, 32, 4, 4);
287 TEST_FIELD(ACTCTX_SECTION_KEYED_DATA, ULONG, ulAssemblyRosterIndex, 36, 4, 4);
288 TEST_FIELD(ACTCTX_SECTION_KEYED_DATA, ULONG, ulFlags, 40, 4, 4);
289 TEST_FIELD(ACTCTX_SECTION_KEYED_DATA, ACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA, AssemblyMetadata, 44, 20, 4);
292 static void test_pack_ACTCTX_SECTION_KEYED_DATA_2600(void)
294 /* ACTCTX_SECTION_KEYED_DATA_2600 (pack 4) */
295 TEST_TYPE(ACTCTX_SECTION_KEYED_DATA_2600, 40, 4);
296 TEST_FIELD(ACTCTX_SECTION_KEYED_DATA_2600, ULONG, cbSize, 0, 4, 4);
297 TEST_FIELD(ACTCTX_SECTION_KEYED_DATA_2600, ULONG, ulDataFormatVersion, 4, 4, 4);
298 TEST_FIELD(ACTCTX_SECTION_KEYED_DATA_2600, PVOID, lpData, 8, 4, 4);
299 TEST_FIELD(ACTCTX_SECTION_KEYED_DATA_2600, ULONG, ulLength, 12, 4, 4);
300 TEST_FIELD(ACTCTX_SECTION_KEYED_DATA_2600, PVOID, lpSectionGlobalData, 16, 4, 4);
301 TEST_FIELD(ACTCTX_SECTION_KEYED_DATA_2600, ULONG, ulSectionGlobalDataLength, 20, 4, 4);
302 TEST_FIELD(ACTCTX_SECTION_KEYED_DATA_2600, PVOID, lpSectionBase, 24, 4, 4);
303 TEST_FIELD(ACTCTX_SECTION_KEYED_DATA_2600, ULONG, ulSectionTotalLength, 28, 4, 4);
304 TEST_FIELD(ACTCTX_SECTION_KEYED_DATA_2600, HANDLE, hActCtx, 32, 4, 4);
305 TEST_FIELD(ACTCTX_SECTION_KEYED_DATA_2600, ULONG, ulAssemblyRosterIndex, 36, 4, 4);
308 static void test_pack_ACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA(void)
310 /* ACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA (pack 4) */
311 TEST_TYPE(ACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA, 20, 4);
312 TEST_FIELD(ACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA, PVOID, lpInformation, 0, 4, 4);
313 TEST_FIELD(ACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA, PVOID, lpSectionBase, 4, 4, 4);
314 TEST_FIELD(ACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA, ULONG, ulSectionLength, 8, 4, 4);
315 TEST_FIELD(ACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA, PVOID, lpSectionGlobalDataBase, 12, 4, 4);
316 TEST_FIELD(ACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA, ULONG, ulSectionGlobalDataLength, 16, 4, 4);
319 static void test_pack_ACTIVATION_CONTEXT_BASIC_INFORMATION(void)
321 /* ACTIVATION_CONTEXT_BASIC_INFORMATION (pack 4) */
322 TEST_TYPE(ACTIVATION_CONTEXT_BASIC_INFORMATION, 8, 4);
323 TEST_FIELD(ACTIVATION_CONTEXT_BASIC_INFORMATION, HANDLE, hActCtx, 0, 4, 4);
324 TEST_FIELD(ACTIVATION_CONTEXT_BASIC_INFORMATION, DWORD, dwFlags, 4, 4, 4);
327 static void test_pack_BY_HANDLE_FILE_INFORMATION(void)
329 /* BY_HANDLE_FILE_INFORMATION (pack 4) */
330 TEST_TYPE(BY_HANDLE_FILE_INFORMATION, 52, 4);
331 TEST_FIELD(BY_HANDLE_FILE_INFORMATION, DWORD, dwFileAttributes, 0, 4, 4);
332 TEST_FIELD(BY_HANDLE_FILE_INFORMATION, FILETIME, ftCreationTime, 4, 8, 4);
333 TEST_FIELD(BY_HANDLE_FILE_INFORMATION, FILETIME, ftLastAccessTime, 12, 8, 4);
334 TEST_FIELD(BY_HANDLE_FILE_INFORMATION, FILETIME, ftLastWriteTime, 20, 8, 4);
335 TEST_FIELD(BY_HANDLE_FILE_INFORMATION, DWORD, dwVolumeSerialNumber, 28, 4, 4);
336 TEST_FIELD(BY_HANDLE_FILE_INFORMATION, DWORD, nFileSizeHigh, 32, 4, 4);
337 TEST_FIELD(BY_HANDLE_FILE_INFORMATION, DWORD, nFileSizeLow, 36, 4, 4);
338 TEST_FIELD(BY_HANDLE_FILE_INFORMATION, DWORD, nNumberOfLinks, 40, 4, 4);
339 TEST_FIELD(BY_HANDLE_FILE_INFORMATION, DWORD, nFileIndexHigh, 44, 4, 4);
340 TEST_FIELD(BY_HANDLE_FILE_INFORMATION, DWORD, nFileIndexLow, 48, 4, 4);
343 static void test_pack_COMMPROP(void)
345 /* COMMPROP (pack 4) */
346 TEST_TYPE(COMMPROP, 64, 4);
347 TEST_FIELD(COMMPROP, WORD, wPacketLength, 0, 2, 2);
348 TEST_FIELD(COMMPROP, WORD, wPacketVersion, 2, 2, 2);
349 TEST_FIELD(COMMPROP, DWORD, dwServiceMask, 4, 4, 4);
350 TEST_FIELD(COMMPROP, DWORD, dwReserved1, 8, 4, 4);
351 TEST_FIELD(COMMPROP, DWORD, dwMaxTxQueue, 12, 4, 4);
352 TEST_FIELD(COMMPROP, DWORD, dwMaxRxQueue, 16, 4, 4);
353 TEST_FIELD(COMMPROP, DWORD, dwMaxBaud, 20, 4, 4);
354 TEST_FIELD(COMMPROP, DWORD, dwProvSubType, 24, 4, 4);
355 TEST_FIELD(COMMPROP, DWORD, dwProvCapabilities, 28, 4, 4);
356 TEST_FIELD(COMMPROP, DWORD, dwSettableParams, 32, 4, 4);
357 TEST_FIELD(COMMPROP, DWORD, dwSettableBaud, 36, 4, 4);
358 TEST_FIELD(COMMPROP, WORD, wSettableData, 40, 2, 2);
359 TEST_FIELD(COMMPROP, WORD, wSettableStopParity, 42, 2, 2);
360 TEST_FIELD(COMMPROP, DWORD, dwCurrentTxQueue, 44, 4, 4);
361 TEST_FIELD(COMMPROP, DWORD, dwCurrentRxQueue, 48, 4, 4);
362 TEST_FIELD(COMMPROP, DWORD, dwProvSpec1, 52, 4, 4);
363 TEST_FIELD(COMMPROP, DWORD, dwProvSpec2, 56, 4, 4);
364 TEST_FIELD(COMMPROP, WCHAR[1], wcProvChar, 60, 2, 2);
367 static void test_pack_COMMTIMEOUTS(void)
369 /* COMMTIMEOUTS (pack 4) */
370 TEST_TYPE(COMMTIMEOUTS, 20, 4);
371 TEST_FIELD(COMMTIMEOUTS, DWORD, ReadIntervalTimeout, 0, 4, 4);
372 TEST_FIELD(COMMTIMEOUTS, DWORD, ReadTotalTimeoutMultiplier, 4, 4, 4);
373 TEST_FIELD(COMMTIMEOUTS, DWORD, ReadTotalTimeoutConstant, 8, 4, 4);
374 TEST_FIELD(COMMTIMEOUTS, DWORD, WriteTotalTimeoutMultiplier, 12, 4, 4);
375 TEST_FIELD(COMMTIMEOUTS, DWORD, WriteTotalTimeoutConstant, 16, 4, 4);
378 static void test_pack_CREATE_PROCESS_DEBUG_INFO(void)
380 /* CREATE_PROCESS_DEBUG_INFO (pack 4) */
381 TEST_TYPE(CREATE_PROCESS_DEBUG_INFO, 40, 4);
382 TEST_FIELD(CREATE_PROCESS_DEBUG_INFO, HANDLE, hFile, 0, 4, 4);
383 TEST_FIELD(CREATE_PROCESS_DEBUG_INFO, HANDLE, hProcess, 4, 4, 4);
384 TEST_FIELD(CREATE_PROCESS_DEBUG_INFO, HANDLE, hThread, 8, 4, 4);
385 TEST_FIELD(CREATE_PROCESS_DEBUG_INFO, LPVOID, lpBaseOfImage, 12, 4, 4);
386 TEST_FIELD(CREATE_PROCESS_DEBUG_INFO, DWORD, dwDebugInfoFileOffset, 16, 4, 4);
387 TEST_FIELD(CREATE_PROCESS_DEBUG_INFO, DWORD, nDebugInfoSize, 20, 4, 4);
388 TEST_FIELD(CREATE_PROCESS_DEBUG_INFO, LPVOID, lpThreadLocalBase, 24, 4, 4);
389 TEST_FIELD(CREATE_PROCESS_DEBUG_INFO, LPTHREAD_START_ROUTINE, lpStartAddress, 28, 4, 4);
390 TEST_FIELD(CREATE_PROCESS_DEBUG_INFO, LPVOID, lpImageName, 32, 4, 4);
391 TEST_FIELD(CREATE_PROCESS_DEBUG_INFO, WORD, fUnicode, 36, 2, 2);
394 static void test_pack_CREATE_THREAD_DEBUG_INFO(void)
396 /* CREATE_THREAD_DEBUG_INFO (pack 4) */
397 TEST_TYPE(CREATE_THREAD_DEBUG_INFO, 12, 4);
398 TEST_FIELD(CREATE_THREAD_DEBUG_INFO, HANDLE, hThread, 0, 4, 4);
399 TEST_FIELD(CREATE_THREAD_DEBUG_INFO, LPVOID, lpThreadLocalBase, 4, 4, 4);
400 TEST_FIELD(CREATE_THREAD_DEBUG_INFO, LPTHREAD_START_ROUTINE, lpStartAddress, 8, 4, 4);
403 static void test_pack_CRITICAL_SECTION(void)
405 /* CRITICAL_SECTION */
406 TEST_TYPE(CRITICAL_SECTION, 24, 4);
409 static void test_pack_CRITICAL_SECTION_DEBUG(void)
411 /* CRITICAL_SECTION_DEBUG */
412 TEST_TYPE(CRITICAL_SECTION_DEBUG, 32, 4);
415 static void test_pack_ENUMRESLANGPROCA(void)
417 /* ENUMRESLANGPROCA */
418 TEST_TYPE(ENUMRESLANGPROCA, 4, 4);
421 static void test_pack_ENUMRESLANGPROCW(void)
423 /* ENUMRESLANGPROCW */
424 TEST_TYPE(ENUMRESLANGPROCW, 4, 4);
427 static void test_pack_ENUMRESNAMEPROCA(void)
429 /* ENUMRESNAMEPROCA */
430 TEST_TYPE(ENUMRESNAMEPROCA, 4, 4);
433 static void test_pack_ENUMRESNAMEPROCW(void)
435 /* ENUMRESNAMEPROCW */
436 TEST_TYPE(ENUMRESNAMEPROCW, 4, 4);
439 static void test_pack_ENUMRESTYPEPROCA(void)
441 /* ENUMRESTYPEPROCA */
442 TEST_TYPE(ENUMRESTYPEPROCA, 4, 4);
445 static void test_pack_ENUMRESTYPEPROCW(void)
447 /* ENUMRESTYPEPROCW */
448 TEST_TYPE(ENUMRESTYPEPROCW, 4, 4);
451 static void test_pack_EXCEPTION_DEBUG_INFO(void)
453 /* EXCEPTION_DEBUG_INFO (pack 4) */
454 TEST_TYPE(EXCEPTION_DEBUG_INFO, 84, 4);
455 TEST_FIELD(EXCEPTION_DEBUG_INFO, EXCEPTION_RECORD, ExceptionRecord, 0, 80, 4);
456 TEST_FIELD(EXCEPTION_DEBUG_INFO, DWORD, dwFirstChance, 80, 4, 4);
459 static void test_pack_EXIT_PROCESS_DEBUG_INFO(void)
461 /* EXIT_PROCESS_DEBUG_INFO (pack 4) */
462 TEST_TYPE(EXIT_PROCESS_DEBUG_INFO, 4, 4);
463 TEST_FIELD(EXIT_PROCESS_DEBUG_INFO, DWORD, dwExitCode, 0, 4, 4);
466 static void test_pack_EXIT_THREAD_DEBUG_INFO(void)
468 /* EXIT_THREAD_DEBUG_INFO (pack 4) */
469 TEST_TYPE(EXIT_THREAD_DEBUG_INFO, 4, 4);
470 TEST_FIELD(EXIT_THREAD_DEBUG_INFO, DWORD, dwExitCode, 0, 4, 4);
473 static void test_pack_HW_PROFILE_INFOA(void)
475 /* HW_PROFILE_INFOA (pack 4) */
476 TEST_TYPE(HW_PROFILE_INFOA, 124, 4);
477 TEST_FIELD(HW_PROFILE_INFOA, DWORD, dwDockInfo, 0, 4, 4);
478 TEST_FIELD(HW_PROFILE_INFOA, CHAR[HW_PROFILE_GUIDLEN], szHwProfileGuid, 4, 39, 1);
479 TEST_FIELD(HW_PROFILE_INFOA, CHAR[MAX_PROFILE_LEN], szHwProfileName, 43, 80, 1);
482 static void test_pack_HW_PROFILE_INFOW(void)
484 /* HW_PROFILE_INFOW (pack 4) */
485 TEST_TYPE(HW_PROFILE_INFOW, 244, 4);
486 TEST_FIELD(HW_PROFILE_INFOW, DWORD, dwDockInfo, 0, 4, 4);
487 TEST_FIELD(HW_PROFILE_INFOW, WCHAR[HW_PROFILE_GUIDLEN], szHwProfileGuid, 4, 78, 2);
488 TEST_FIELD(HW_PROFILE_INFOW, WCHAR[MAX_PROFILE_LEN], szHwProfileName, 82, 160, 2);
491 static void test_pack_LOAD_DLL_DEBUG_INFO(void)
493 /* LOAD_DLL_DEBUG_INFO (pack 4) */
494 TEST_TYPE(LOAD_DLL_DEBUG_INFO, 24, 4);
495 TEST_FIELD(LOAD_DLL_DEBUG_INFO, HANDLE, hFile, 0, 4, 4);
496 TEST_FIELD(LOAD_DLL_DEBUG_INFO, LPVOID, lpBaseOfDll, 4, 4, 4);
497 TEST_FIELD(LOAD_DLL_DEBUG_INFO, DWORD, dwDebugInfoFileOffset, 8, 4, 4);
498 TEST_FIELD(LOAD_DLL_DEBUG_INFO, DWORD, nDebugInfoSize, 12, 4, 4);
499 TEST_FIELD(LOAD_DLL_DEBUG_INFO, LPVOID, lpImageName, 16, 4, 4);
500 TEST_FIELD(LOAD_DLL_DEBUG_INFO, WORD, fUnicode, 20, 2, 2);
503 static void test_pack_LPBY_HANDLE_FILE_INFORMATION(void)
505 /* LPBY_HANDLE_FILE_INFORMATION */
506 TEST_TYPE(LPBY_HANDLE_FILE_INFORMATION, 4, 4);
507 TEST_TYPE_POINTER(LPBY_HANDLE_FILE_INFORMATION, 52, 4);
510 static void test_pack_LPCOMMPROP(void)
513 TEST_TYPE(LPCOMMPROP, 4, 4);
514 TEST_TYPE_POINTER(LPCOMMPROP, 64, 4);
517 static void test_pack_LPCOMMTIMEOUTS(void)
520 TEST_TYPE(LPCOMMTIMEOUTS, 4, 4);
521 TEST_TYPE_POINTER(LPCOMMTIMEOUTS, 20, 4);
524 static void test_pack_LPCRITICAL_SECTION(void)
526 /* LPCRITICAL_SECTION */
527 TEST_TYPE(LPCRITICAL_SECTION, 4, 4);
530 static void test_pack_LPCRITICAL_SECTION_DEBUG(void)
532 /* LPCRITICAL_SECTION_DEBUG */
533 TEST_TYPE(LPCRITICAL_SECTION_DEBUG, 4, 4);
536 static void test_pack_LPEXCEPTION_POINTERS(void)
538 /* LPEXCEPTION_POINTERS */
539 TEST_TYPE(LPEXCEPTION_POINTERS, 4, 4);
542 static void test_pack_LPEXCEPTION_RECORD(void)
544 /* LPEXCEPTION_RECORD */
545 TEST_TYPE(LPEXCEPTION_RECORD, 4, 4);
548 static void test_pack_LPFIBER_START_ROUTINE(void)
550 /* LPFIBER_START_ROUTINE */
551 TEST_TYPE(LPFIBER_START_ROUTINE, 4, 4);
554 static void test_pack_LPHW_PROFILE_INFOA(void)
556 /* LPHW_PROFILE_INFOA */
557 TEST_TYPE(LPHW_PROFILE_INFOA, 4, 4);
558 TEST_TYPE_POINTER(LPHW_PROFILE_INFOA, 124, 4);
561 static void test_pack_LPHW_PROFILE_INFOW(void)
563 /* LPHW_PROFILE_INFOW */
564 TEST_TYPE(LPHW_PROFILE_INFOW, 4, 4);
565 TEST_TYPE_POINTER(LPHW_PROFILE_INFOW, 244, 4);
568 static void test_pack_LPMEMORYSTATUS(void)
571 TEST_TYPE(LPMEMORYSTATUS, 4, 4);
572 TEST_TYPE_POINTER(LPMEMORYSTATUS, 32, 4);
575 static void test_pack_LPOFSTRUCT(void)
578 TEST_TYPE(LPOFSTRUCT, 4, 4);
579 TEST_TYPE_POINTER(LPOFSTRUCT, 136, 2);
582 static void test_pack_LPOVERLAPPED(void)
585 TEST_TYPE(LPOVERLAPPED, 4, 4);
586 TEST_TYPE_POINTER(LPOVERLAPPED, 20, 4);
589 static void test_pack_LPOVERLAPPED_COMPLETION_ROUTINE(void)
591 /* LPOVERLAPPED_COMPLETION_ROUTINE */
592 TEST_TYPE(LPOVERLAPPED_COMPLETION_ROUTINE, 4, 4);
595 static void test_pack_LPPROCESS_INFORMATION(void)
597 /* LPPROCESS_INFORMATION */
598 TEST_TYPE(LPPROCESS_INFORMATION, 4, 4);
599 TEST_TYPE_POINTER(LPPROCESS_INFORMATION, 16, 4);
602 static void test_pack_LPPROGRESS_ROUTINE(void)
604 /* LPPROGRESS_ROUTINE */
605 TEST_TYPE(LPPROGRESS_ROUTINE, 4, 4);
608 static void test_pack_LPSECURITY_ATTRIBUTES(void)
610 /* LPSECURITY_ATTRIBUTES */
611 TEST_TYPE(LPSECURITY_ATTRIBUTES, 4, 4);
612 TEST_TYPE_POINTER(LPSECURITY_ATTRIBUTES, 12, 4);
615 static void test_pack_LPSTARTUPINFOA(void)
618 TEST_TYPE(LPSTARTUPINFOA, 4, 4);
619 TEST_TYPE_POINTER(LPSTARTUPINFOA, 68, 4);
622 static void test_pack_LPSTARTUPINFOW(void)
625 TEST_TYPE(LPSTARTUPINFOW, 4, 4);
626 TEST_TYPE_POINTER(LPSTARTUPINFOW, 68, 4);
629 static void test_pack_LPSYSTEMTIME(void)
632 TEST_TYPE(LPSYSTEMTIME, 4, 4);
633 TEST_TYPE_POINTER(LPSYSTEMTIME, 16, 2);
636 static void test_pack_LPSYSTEM_POWER_STATUS(void)
638 /* LPSYSTEM_POWER_STATUS */
639 TEST_TYPE(LPSYSTEM_POWER_STATUS, 4, 4);
640 TEST_TYPE_POINTER(LPSYSTEM_POWER_STATUS, 12, 4);
643 static void test_pack_LPTHREAD_START_ROUTINE(void)
645 /* LPTHREAD_START_ROUTINE */
646 TEST_TYPE(LPTHREAD_START_ROUTINE, 4, 4);
649 static void test_pack_LPTIME_ZONE_INFORMATION(void)
651 /* LPTIME_ZONE_INFORMATION */
652 TEST_TYPE(LPTIME_ZONE_INFORMATION, 4, 4);
653 TEST_TYPE_POINTER(LPTIME_ZONE_INFORMATION, 172, 4);
656 static void test_pack_LPWIN32_FILE_ATTRIBUTE_DATA(void)
658 /* LPWIN32_FILE_ATTRIBUTE_DATA */
659 TEST_TYPE(LPWIN32_FILE_ATTRIBUTE_DATA, 4, 4);
660 TEST_TYPE_POINTER(LPWIN32_FILE_ATTRIBUTE_DATA, 36, 4);
663 static void test_pack_LPWIN32_FIND_DATAA(void)
665 /* LPWIN32_FIND_DATAA */
666 TEST_TYPE(LPWIN32_FIND_DATAA, 4, 4);
667 TEST_TYPE_POINTER(LPWIN32_FIND_DATAA, 320, 4);
670 static void test_pack_LPWIN32_FIND_DATAW(void)
672 /* LPWIN32_FIND_DATAW */
673 TEST_TYPE(LPWIN32_FIND_DATAW, 4, 4);
674 TEST_TYPE_POINTER(LPWIN32_FIND_DATAW, 592, 4);
677 static void test_pack_MEMORYSTATUS(void)
679 /* MEMORYSTATUS (pack 4) */
680 TEST_TYPE(MEMORYSTATUS, 32, 4);
681 TEST_FIELD(MEMORYSTATUS, DWORD, dwLength, 0, 4, 4);
682 TEST_FIELD(MEMORYSTATUS, DWORD, dwMemoryLoad, 4, 4, 4);
683 TEST_FIELD(MEMORYSTATUS, SIZE_T, dwTotalPhys, 8, 4, 4);
684 TEST_FIELD(MEMORYSTATUS, SIZE_T, dwAvailPhys, 12, 4, 4);
685 TEST_FIELD(MEMORYSTATUS, SIZE_T, dwTotalPageFile, 16, 4, 4);
686 TEST_FIELD(MEMORYSTATUS, SIZE_T, dwAvailPageFile, 20, 4, 4);
687 TEST_FIELD(MEMORYSTATUS, SIZE_T, dwTotalVirtual, 24, 4, 4);
688 TEST_FIELD(MEMORYSTATUS, SIZE_T, dwAvailVirtual, 28, 4, 4);
691 static void test_pack_OFSTRUCT(void)
693 /* OFSTRUCT (pack 4) */
694 TEST_TYPE(OFSTRUCT, 136, 2);
695 TEST_FIELD(OFSTRUCT, BYTE, cBytes, 0, 1, 1);
696 TEST_FIELD(OFSTRUCT, BYTE, fFixedDisk, 1, 1, 1);
697 TEST_FIELD(OFSTRUCT, WORD, nErrCode, 2, 2, 2);
698 TEST_FIELD(OFSTRUCT, WORD, Reserved1, 4, 2, 2);
699 TEST_FIELD(OFSTRUCT, WORD, Reserved2, 6, 2, 2);
700 TEST_FIELD(OFSTRUCT, BYTE[OFS_MAXPATHNAME], szPathName, 8, 128, 1);
703 static void test_pack_OUTPUT_DEBUG_STRING_INFO(void)
705 /* OUTPUT_DEBUG_STRING_INFO (pack 4) */
706 TEST_TYPE(OUTPUT_DEBUG_STRING_INFO, 8, 4);
707 TEST_FIELD(OUTPUT_DEBUG_STRING_INFO, LPSTR, lpDebugStringData, 0, 4, 4);
708 TEST_FIELD(OUTPUT_DEBUG_STRING_INFO, WORD, fUnicode, 4, 2, 2);
709 TEST_FIELD(OUTPUT_DEBUG_STRING_INFO, WORD, nDebugStringLength, 6, 2, 2);
712 static void test_pack_OVERLAPPED(void)
714 /* OVERLAPPED (pack 4) */
715 TEST_TYPE(OVERLAPPED, 20, 4);
716 TEST_FIELD(OVERLAPPED, DWORD, Internal, 0, 4, 4);
717 TEST_FIELD(OVERLAPPED, DWORD, InternalHigh, 4, 4, 4);
718 TEST_FIELD(OVERLAPPED, DWORD, Offset, 8, 4, 4);
719 TEST_FIELD(OVERLAPPED, DWORD, OffsetHigh, 12, 4, 4);
720 TEST_FIELD(OVERLAPPED, HANDLE, hEvent, 16, 4, 4);
723 static void test_pack_PACTCTXA(void)
726 TEST_TYPE(PACTCTXA, 4, 4);
727 TEST_TYPE_POINTER(PACTCTXA, 32, 4);
730 static void test_pack_PACTCTXW(void)
733 TEST_TYPE(PACTCTXW, 4, 4);
734 TEST_TYPE_POINTER(PACTCTXW, 32, 4);
737 static void test_pack_PACTCTX_SECTION_KEYED_DATA(void)
739 /* PACTCTX_SECTION_KEYED_DATA */
740 TEST_TYPE(PACTCTX_SECTION_KEYED_DATA, 4, 4);
741 TEST_TYPE_POINTER(PACTCTX_SECTION_KEYED_DATA, 64, 4);
744 static void test_pack_PACTCTX_SECTION_KEYED_DATA_2600(void)
746 /* PACTCTX_SECTION_KEYED_DATA_2600 */
747 TEST_TYPE(PACTCTX_SECTION_KEYED_DATA_2600, 4, 4);
748 TEST_TYPE_POINTER(PACTCTX_SECTION_KEYED_DATA_2600, 40, 4);
751 static void test_pack_PACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA(void)
753 /* PACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA */
754 TEST_TYPE(PACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA, 4, 4);
755 TEST_TYPE_POINTER(PACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA, 20, 4);
758 static void test_pack_PACTIVATION_CONTEXT_BASIC_INFORMATION(void)
760 /* PACTIVATION_CONTEXT_BASIC_INFORMATION */
761 TEST_TYPE(PACTIVATION_CONTEXT_BASIC_INFORMATION, 4, 4);
762 TEST_TYPE_POINTER(PACTIVATION_CONTEXT_BASIC_INFORMATION, 8, 4);
765 static void test_pack_PAPCFUNC(void)
768 TEST_TYPE(PAPCFUNC, 4, 4);
771 static void test_pack_PBY_HANDLE_FILE_INFORMATION(void)
773 /* PBY_HANDLE_FILE_INFORMATION */
774 TEST_TYPE(PBY_HANDLE_FILE_INFORMATION, 4, 4);
775 TEST_TYPE_POINTER(PBY_HANDLE_FILE_INFORMATION, 52, 4);
778 static void test_pack_PCACTCTXA(void)
781 TEST_TYPE(PCACTCTXA, 4, 4);
782 TEST_TYPE_POINTER(PCACTCTXA, 32, 4);
785 static void test_pack_PCACTCTXW(void)
788 TEST_TYPE(PCACTCTXW, 4, 4);
789 TEST_TYPE_POINTER(PCACTCTXW, 32, 4);
792 static void test_pack_PCACTCTX_SECTION_KEYED_DATA(void)
794 /* PCACTCTX_SECTION_KEYED_DATA */
795 TEST_TYPE(PCACTCTX_SECTION_KEYED_DATA, 4, 4);
796 TEST_TYPE_POINTER(PCACTCTX_SECTION_KEYED_DATA, 64, 4);
799 static void test_pack_PCACTCTX_SECTION_KEYED_DATA_2600(void)
801 /* PCACTCTX_SECTION_KEYED_DATA_2600 */
802 TEST_TYPE(PCACTCTX_SECTION_KEYED_DATA_2600, 4, 4);
803 TEST_TYPE_POINTER(PCACTCTX_SECTION_KEYED_DATA_2600, 40, 4);
806 static void test_pack_PCACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA(void)
808 /* PCACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA */
809 TEST_TYPE(PCACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA, 4, 4);
810 TEST_TYPE_POINTER(PCACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA, 20, 4);
813 static void test_pack_PCRITICAL_SECTION(void)
815 /* PCRITICAL_SECTION */
816 TEST_TYPE(PCRITICAL_SECTION, 4, 4);
819 static void test_pack_PCRITICAL_SECTION_DEBUG(void)
821 /* PCRITICAL_SECTION_DEBUG */
822 TEST_TYPE(PCRITICAL_SECTION_DEBUG, 4, 4);
825 static void test_pack_PFIBER_START_ROUTINE(void)
827 /* PFIBER_START_ROUTINE */
828 TEST_TYPE(PFIBER_START_ROUTINE, 4, 4);
831 static void test_pack_POFSTRUCT(void)
834 TEST_TYPE(POFSTRUCT, 4, 4);
835 TEST_TYPE_POINTER(POFSTRUCT, 136, 2);
838 static void test_pack_PPROCESS_INFORMATION(void)
840 /* PPROCESS_INFORMATION */
841 TEST_TYPE(PPROCESS_INFORMATION, 4, 4);
842 TEST_TYPE_POINTER(PPROCESS_INFORMATION, 16, 4);
845 static void test_pack_PQUERYACTCTXW_FUNC(void)
847 /* PQUERYACTCTXW_FUNC */
848 TEST_TYPE(PQUERYACTCTXW_FUNC, 4, 4);
851 static void test_pack_PROCESS_INFORMATION(void)
853 /* PROCESS_INFORMATION (pack 4) */
854 TEST_TYPE(PROCESS_INFORMATION, 16, 4);
855 TEST_FIELD(PROCESS_INFORMATION, HANDLE, hProcess, 0, 4, 4);
856 TEST_FIELD(PROCESS_INFORMATION, HANDLE, hThread, 4, 4, 4);
857 TEST_FIELD(PROCESS_INFORMATION, DWORD, dwProcessId, 8, 4, 4);
858 TEST_FIELD(PROCESS_INFORMATION, DWORD, dwThreadId, 12, 4, 4);
861 static void test_pack_PSECURITY_ATTRIBUTES(void)
863 /* PSECURITY_ATTRIBUTES */
864 TEST_TYPE(PSECURITY_ATTRIBUTES, 4, 4);
865 TEST_TYPE_POINTER(PSECURITY_ATTRIBUTES, 12, 4);
868 static void test_pack_PSYSTEMTIME(void)
871 TEST_TYPE(PSYSTEMTIME, 4, 4);
872 TEST_TYPE_POINTER(PSYSTEMTIME, 16, 2);
875 static void test_pack_PTIMERAPCROUTINE(void)
877 /* PTIMERAPCROUTINE */
878 TEST_TYPE(PTIMERAPCROUTINE, 4, 4);
881 static void test_pack_PTIME_ZONE_INFORMATION(void)
883 /* PTIME_ZONE_INFORMATION */
884 TEST_TYPE(PTIME_ZONE_INFORMATION, 4, 4);
885 TEST_TYPE_POINTER(PTIME_ZONE_INFORMATION, 172, 4);
888 static void test_pack_PWIN32_FIND_DATAA(void)
890 /* PWIN32_FIND_DATAA */
891 TEST_TYPE(PWIN32_FIND_DATAA, 4, 4);
892 TEST_TYPE_POINTER(PWIN32_FIND_DATAA, 320, 4);
895 static void test_pack_PWIN32_FIND_DATAW(void)
897 /* PWIN32_FIND_DATAW */
898 TEST_TYPE(PWIN32_FIND_DATAW, 4, 4);
899 TEST_TYPE_POINTER(PWIN32_FIND_DATAW, 592, 4);
902 static void test_pack_RIP_INFO(void)
904 /* RIP_INFO (pack 4) */
905 TEST_TYPE(RIP_INFO, 8, 4);
906 TEST_FIELD(RIP_INFO, DWORD, dwError, 0, 4, 4);
907 TEST_FIELD(RIP_INFO, DWORD, dwType, 4, 4, 4);
910 static void test_pack_SECURITY_ATTRIBUTES(void)
912 /* SECURITY_ATTRIBUTES (pack 4) */
913 TEST_TYPE(SECURITY_ATTRIBUTES, 12, 4);
914 TEST_FIELD(SECURITY_ATTRIBUTES, DWORD, nLength, 0, 4, 4);
915 TEST_FIELD(SECURITY_ATTRIBUTES, LPVOID, lpSecurityDescriptor, 4, 4, 4);
916 TEST_FIELD(SECURITY_ATTRIBUTES, BOOL, bInheritHandle, 8, 4, 4);
919 static void test_pack_STARTUPINFOA(void)
921 /* STARTUPINFOA (pack 4) */
922 TEST_TYPE(STARTUPINFOA, 68, 4);
923 TEST_FIELD(STARTUPINFOA, DWORD, cb, 0, 4, 4);
924 TEST_FIELD(STARTUPINFOA, LPSTR, lpReserved, 4, 4, 4);
925 TEST_FIELD(STARTUPINFOA, LPSTR, lpDesktop, 8, 4, 4);
926 TEST_FIELD(STARTUPINFOA, LPSTR, lpTitle, 12, 4, 4);
927 TEST_FIELD(STARTUPINFOA, DWORD, dwX, 16, 4, 4);
928 TEST_FIELD(STARTUPINFOA, DWORD, dwY, 20, 4, 4);
929 TEST_FIELD(STARTUPINFOA, DWORD, dwXSize, 24, 4, 4);
930 TEST_FIELD(STARTUPINFOA, DWORD, dwYSize, 28, 4, 4);
931 TEST_FIELD(STARTUPINFOA, DWORD, dwXCountChars, 32, 4, 4);
932 TEST_FIELD(STARTUPINFOA, DWORD, dwYCountChars, 36, 4, 4);
933 TEST_FIELD(STARTUPINFOA, DWORD, dwFillAttribute, 40, 4, 4);
934 TEST_FIELD(STARTUPINFOA, DWORD, dwFlags, 44, 4, 4);
935 TEST_FIELD(STARTUPINFOA, WORD, wShowWindow, 48, 2, 2);
936 TEST_FIELD(STARTUPINFOA, WORD, cbReserved2, 50, 2, 2);
937 TEST_FIELD(STARTUPINFOA, BYTE *, lpReserved2, 52, 4, 4);
938 TEST_FIELD(STARTUPINFOA, HANDLE, hStdInput, 56, 4, 4);
939 TEST_FIELD(STARTUPINFOA, HANDLE, hStdOutput, 60, 4, 4);
940 TEST_FIELD(STARTUPINFOA, HANDLE, hStdError, 64, 4, 4);
943 static void test_pack_STARTUPINFOW(void)
945 /* STARTUPINFOW (pack 4) */
946 TEST_TYPE(STARTUPINFOW, 68, 4);
947 TEST_FIELD(STARTUPINFOW, DWORD, cb, 0, 4, 4);
948 TEST_FIELD(STARTUPINFOW, LPWSTR, lpReserved, 4, 4, 4);
949 TEST_FIELD(STARTUPINFOW, LPWSTR, lpDesktop, 8, 4, 4);
950 TEST_FIELD(STARTUPINFOW, LPWSTR, lpTitle, 12, 4, 4);
951 TEST_FIELD(STARTUPINFOW, DWORD, dwX, 16, 4, 4);
952 TEST_FIELD(STARTUPINFOW, DWORD, dwY, 20, 4, 4);
953 TEST_FIELD(STARTUPINFOW, DWORD, dwXSize, 24, 4, 4);
954 TEST_FIELD(STARTUPINFOW, DWORD, dwYSize, 28, 4, 4);
955 TEST_FIELD(STARTUPINFOW, DWORD, dwXCountChars, 32, 4, 4);
956 TEST_FIELD(STARTUPINFOW, DWORD, dwYCountChars, 36, 4, 4);
957 TEST_FIELD(STARTUPINFOW, DWORD, dwFillAttribute, 40, 4, 4);
958 TEST_FIELD(STARTUPINFOW, DWORD, dwFlags, 44, 4, 4);
959 TEST_FIELD(STARTUPINFOW, WORD, wShowWindow, 48, 2, 2);
960 TEST_FIELD(STARTUPINFOW, WORD, cbReserved2, 50, 2, 2);
961 TEST_FIELD(STARTUPINFOW, BYTE *, lpReserved2, 52, 4, 4);
962 TEST_FIELD(STARTUPINFOW, HANDLE, hStdInput, 56, 4, 4);
963 TEST_FIELD(STARTUPINFOW, HANDLE, hStdOutput, 60, 4, 4);
964 TEST_FIELD(STARTUPINFOW, HANDLE, hStdError, 64, 4, 4);
967 static void test_pack_SYSLEVEL(void)
969 /* SYSLEVEL (pack 4) */
970 TEST_TYPE(SYSLEVEL, 28, 4);
971 TEST_FIELD(SYSLEVEL, CRITICAL_SECTION, crst, 0, 24, 4);
972 TEST_FIELD(SYSLEVEL, INT, level, 24, 4, 4);
975 static void test_pack_SYSTEMTIME(void)
977 /* SYSTEMTIME (pack 4) */
978 TEST_TYPE(SYSTEMTIME, 16, 2);
979 TEST_FIELD(SYSTEMTIME, WORD, wYear, 0, 2, 2);
980 TEST_FIELD(SYSTEMTIME, WORD, wMonth, 2, 2, 2);
981 TEST_FIELD(SYSTEMTIME, WORD, wDayOfWeek, 4, 2, 2);
982 TEST_FIELD(SYSTEMTIME, WORD, wDay, 6, 2, 2);
983 TEST_FIELD(SYSTEMTIME, WORD, wHour, 8, 2, 2);
984 TEST_FIELD(SYSTEMTIME, WORD, wMinute, 10, 2, 2);
985 TEST_FIELD(SYSTEMTIME, WORD, wSecond, 12, 2, 2);
986 TEST_FIELD(SYSTEMTIME, WORD, wMilliseconds, 14, 2, 2);
989 static void test_pack_SYSTEM_POWER_STATUS(void)
991 /* SYSTEM_POWER_STATUS (pack 4) */
992 TEST_TYPE(SYSTEM_POWER_STATUS, 12, 4);
993 TEST_FIELD(SYSTEM_POWER_STATUS, BYTE, ACLineStatus, 0, 1, 1);
994 TEST_FIELD(SYSTEM_POWER_STATUS, BYTE, BatteryFlag, 1, 1, 1);
995 TEST_FIELD(SYSTEM_POWER_STATUS, BYTE, BatteryLifePercent, 2, 1, 1);
996 TEST_FIELD(SYSTEM_POWER_STATUS, BYTE, Reserved1, 3, 1, 1);
997 TEST_FIELD(SYSTEM_POWER_STATUS, DWORD, BatteryLifeTime, 4, 4, 4);
998 TEST_FIELD(SYSTEM_POWER_STATUS, DWORD, BatteryFullLifeTime, 8, 4, 4);
1001 static void test_pack_TIME_ZONE_INFORMATION(void)
1003 /* TIME_ZONE_INFORMATION (pack 4) */
1004 TEST_TYPE(TIME_ZONE_INFORMATION, 172, 4);
1005 TEST_FIELD(TIME_ZONE_INFORMATION, LONG, Bias, 0, 4, 4);
1006 TEST_FIELD(TIME_ZONE_INFORMATION, WCHAR[32], StandardName, 4, 64, 2);
1007 TEST_FIELD(TIME_ZONE_INFORMATION, SYSTEMTIME, StandardDate, 68, 16, 2);
1008 TEST_FIELD(TIME_ZONE_INFORMATION, LONG, StandardBias, 84, 4, 4);
1009 TEST_FIELD(TIME_ZONE_INFORMATION, WCHAR[32], DaylightName, 88, 64, 2);
1010 TEST_FIELD(TIME_ZONE_INFORMATION, SYSTEMTIME, DaylightDate, 152, 16, 2);
1011 TEST_FIELD(TIME_ZONE_INFORMATION, LONG, DaylightBias, 168, 4, 4);
1014 static void test_pack_UNLOAD_DLL_DEBUG_INFO(void)
1016 /* UNLOAD_DLL_DEBUG_INFO (pack 4) */
1017 TEST_TYPE(UNLOAD_DLL_DEBUG_INFO, 4, 4);
1018 TEST_FIELD(UNLOAD_DLL_DEBUG_INFO, LPVOID, lpBaseOfDll, 0, 4, 4);
1021 static void test_pack_WAITORTIMERCALLBACK(void)
1023 /* WAITORTIMERCALLBACK */
1024 TEST_TYPE(WAITORTIMERCALLBACK, 4, 4);
1027 static void test_pack_WIN32_FILE_ATTRIBUTE_DATA(void)
1029 /* WIN32_FILE_ATTRIBUTE_DATA (pack 4) */
1030 TEST_TYPE(WIN32_FILE_ATTRIBUTE_DATA, 36, 4);
1031 TEST_FIELD(WIN32_FILE_ATTRIBUTE_DATA, DWORD, dwFileAttributes, 0, 4, 4);
1032 TEST_FIELD(WIN32_FILE_ATTRIBUTE_DATA, FILETIME, ftCreationTime, 4, 8, 4);
1033 TEST_FIELD(WIN32_FILE_ATTRIBUTE_DATA, FILETIME, ftLastAccessTime, 12, 8, 4);
1034 TEST_FIELD(WIN32_FILE_ATTRIBUTE_DATA, FILETIME, ftLastWriteTime, 20, 8, 4);
1035 TEST_FIELD(WIN32_FILE_ATTRIBUTE_DATA, DWORD, nFileSizeHigh, 28, 4, 4);
1036 TEST_FIELD(WIN32_FILE_ATTRIBUTE_DATA, DWORD, nFileSizeLow, 32, 4, 4);
1039 static void test_pack_WIN32_FIND_DATAA(void)
1041 /* WIN32_FIND_DATAA (pack 4) */
1042 TEST_TYPE(WIN32_FIND_DATAA, 320, 4);
1043 TEST_FIELD(WIN32_FIND_DATAA, DWORD, dwFileAttributes, 0, 4, 4);
1044 TEST_FIELD(WIN32_FIND_DATAA, FILETIME, ftCreationTime, 4, 8, 4);
1045 TEST_FIELD(WIN32_FIND_DATAA, FILETIME, ftLastAccessTime, 12, 8, 4);
1046 TEST_FIELD(WIN32_FIND_DATAA, FILETIME, ftLastWriteTime, 20, 8, 4);
1047 TEST_FIELD(WIN32_FIND_DATAA, DWORD, nFileSizeHigh, 28, 4, 4);
1048 TEST_FIELD(WIN32_FIND_DATAA, DWORD, nFileSizeLow, 32, 4, 4);
1049 TEST_FIELD(WIN32_FIND_DATAA, DWORD, dwReserved0, 36, 4, 4);
1050 TEST_FIELD(WIN32_FIND_DATAA, DWORD, dwReserved1, 40, 4, 4);
1051 TEST_FIELD(WIN32_FIND_DATAA, CHAR[260], cFileName, 44, 260, 1);
1052 TEST_FIELD(WIN32_FIND_DATAA, CHAR[14], cAlternateFileName, 304, 14, 1);
1055 static void test_pack_WIN32_FIND_DATAW(void)
1057 /* WIN32_FIND_DATAW (pack 4) */
1058 TEST_TYPE(WIN32_FIND_DATAW, 592, 4);
1059 TEST_FIELD(WIN32_FIND_DATAW, DWORD, dwFileAttributes, 0, 4, 4);
1060 TEST_FIELD(WIN32_FIND_DATAW, FILETIME, ftCreationTime, 4, 8, 4);
1061 TEST_FIELD(WIN32_FIND_DATAW, FILETIME, ftLastAccessTime, 12, 8, 4);
1062 TEST_FIELD(WIN32_FIND_DATAW, FILETIME, ftLastWriteTime, 20, 8, 4);
1063 TEST_FIELD(WIN32_FIND_DATAW, DWORD, nFileSizeHigh, 28, 4, 4);
1064 TEST_FIELD(WIN32_FIND_DATAW, DWORD, nFileSizeLow, 32, 4, 4);
1065 TEST_FIELD(WIN32_FIND_DATAW, DWORD, dwReserved0, 36, 4, 4);
1066 TEST_FIELD(WIN32_FIND_DATAW, DWORD, dwReserved1, 40, 4, 4);
1067 TEST_FIELD(WIN32_FIND_DATAW, WCHAR[260], cFileName, 44, 520, 2);
1068 TEST_FIELD(WIN32_FIND_DATAW, WCHAR[14], cAlternateFileName, 564, 28, 2);
1071 static void test_pack(void)
1073 test_pack_ACTCTXA();
1074 test_pack_ACTCTXW();
1075 test_pack_ACTCTX_SECTION_KEYED_DATA();
1076 test_pack_ACTCTX_SECTION_KEYED_DATA_2600();
1077 test_pack_ACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA();
1078 test_pack_ACTIVATION_CONTEXT_BASIC_INFORMATION();
1079 test_pack_BY_HANDLE_FILE_INFORMATION();
1080 test_pack_COMMPROP();
1081 test_pack_COMMTIMEOUTS();
1082 test_pack_CREATE_PROCESS_DEBUG_INFO();
1083 test_pack_CREATE_THREAD_DEBUG_INFO();
1084 test_pack_CRITICAL_SECTION();
1085 test_pack_CRITICAL_SECTION_DEBUG();
1086 test_pack_ENUMRESLANGPROCA();
1087 test_pack_ENUMRESLANGPROCW();
1088 test_pack_ENUMRESNAMEPROCA();
1089 test_pack_ENUMRESNAMEPROCW();
1090 test_pack_ENUMRESTYPEPROCA();
1091 test_pack_ENUMRESTYPEPROCW();
1092 test_pack_EXCEPTION_DEBUG_INFO();
1093 test_pack_EXIT_PROCESS_DEBUG_INFO();
1094 test_pack_EXIT_THREAD_DEBUG_INFO();
1095 test_pack_HW_PROFILE_INFOA();
1096 test_pack_HW_PROFILE_INFOW();
1097 test_pack_LOAD_DLL_DEBUG_INFO();
1098 test_pack_LPBY_HANDLE_FILE_INFORMATION();
1099 test_pack_LPCOMMPROP();
1100 test_pack_LPCOMMTIMEOUTS();
1101 test_pack_LPCRITICAL_SECTION();
1102 test_pack_LPCRITICAL_SECTION_DEBUG();
1103 test_pack_LPEXCEPTION_POINTERS();
1104 test_pack_LPEXCEPTION_RECORD();
1105 test_pack_LPFIBER_START_ROUTINE();
1106 test_pack_LPHW_PROFILE_INFOA();
1107 test_pack_LPHW_PROFILE_INFOW();
1109 test_pack_LPMEMORYSTATUS();
1110 test_pack_LPOFSTRUCT();
1111 test_pack_LPOSVERSIONINFOA();
1112 test_pack_LPOSVERSIONINFOEXA();
1113 test_pack_LPOSVERSIONINFOEXW();
1114 test_pack_LPOSVERSIONINFOW();
1115 test_pack_LPOVERLAPPED();
1116 test_pack_LPOVERLAPPED_COMPLETION_ROUTINE();
1117 test_pack_LPPROCESS_INFORMATION();
1118 test_pack_LPPROGRESS_ROUTINE();
1119 test_pack_LPSECURITY_ATTRIBUTES();
1120 test_pack_LPSTARTUPINFOA();
1121 test_pack_LPSTARTUPINFOW();
1122 test_pack_LPSYSTEMTIME();
1123 test_pack_LPSYSTEM_POWER_STATUS();
1124 test_pack_LPTHREAD_START_ROUTINE();
1125 test_pack_LPTIME_ZONE_INFORMATION();
1127 test_pack_LPWIN32_FILE_ATTRIBUTE_DATA();
1128 test_pack_LPWIN32_FIND_DATAA();
1129 test_pack_LPWIN32_FIND_DATAW();
1130 test_pack_MEMORYSTATUS();
1131 test_pack_OFSTRUCT();
1132 test_pack_OSVERSIONINFOA();
1133 test_pack_OSVERSIONINFOEXA();
1134 test_pack_OSVERSIONINFOEXW();
1135 test_pack_OSVERSIONINFOW();
1136 test_pack_OUTPUT_DEBUG_STRING_INFO();
1137 test_pack_OVERLAPPED();
1138 test_pack_PACTCTXA();
1139 test_pack_PACTCTXW();
1140 test_pack_PACTCTX_SECTION_KEYED_DATA();
1141 test_pack_PACTCTX_SECTION_KEYED_DATA_2600();
1142 test_pack_PACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA();
1143 test_pack_PACTIVATION_CONTEXT_BASIC_INFORMATION();
1144 test_pack_PAPCFUNC();
1145 test_pack_PBY_HANDLE_FILE_INFORMATION();
1146 test_pack_PCACTCTXA();
1147 test_pack_PCACTCTXW();
1148 test_pack_PCACTCTX_SECTION_KEYED_DATA();
1149 test_pack_PCACTCTX_SECTION_KEYED_DATA_2600();
1150 test_pack_PCACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA();
1151 test_pack_PCRITICAL_SECTION();
1152 test_pack_PCRITICAL_SECTION_DEBUG();
1153 test_pack_PFIBER_START_ROUTINE();
1155 test_pack_POFSTRUCT();
1156 test_pack_POSVERSIONINFOA();
1157 test_pack_POSVERSIONINFOEXA();
1158 test_pack_POSVERSIONINFOEXW();
1159 test_pack_POSVERSIONINFOW();
1160 test_pack_PPROCESS_INFORMATION();
1161 test_pack_PQUERYACTCTXW_FUNC();
1162 test_pack_PROCESS_INFORMATION();
1163 test_pack_PSECURITY_ATTRIBUTES();
1164 test_pack_PSYSTEMTIME();
1165 test_pack_PTIMERAPCROUTINE();
1166 test_pack_PTIME_ZONE_INFORMATION();
1167 test_pack_PWIN32_FIND_DATAA();
1168 test_pack_PWIN32_FIND_DATAW();
1169 test_pack_RIP_INFO();
1170 test_pack_SECURITY_ATTRIBUTES();
1171 test_pack_STARTUPINFOA();
1172 test_pack_STARTUPINFOW();
1173 test_pack_SYSLEVEL();
1174 test_pack_SYSTEMTIME();
1175 test_pack_SYSTEM_POWER_STATUS();
1176 test_pack_TIME_ZONE_INFORMATION();
1177 test_pack_UNLOAD_DLL_DEBUG_INFO();
1178 test_pack_WAITORTIMERCALLBACK();
1179 test_pack_WIN32_FILE_ATTRIBUTE_DATA();
1180 test_pack_WIN32_FIND_DATAA();
1181 test_pack_WIN32_FIND_DATAW();
1184 START_TEST(generated)