windowscodecs: Handle TIFF's with RowsPerStrip greater than Height.
[wine] / dlls / ntdll / tests / generated.c
1 /* File generated automatically from tools/winapi/tests.dat; do not edit! */
2 /* This file can be copied, modified and distributed without restriction. */
3
4 /*
5  * Unit tests for data structure packing
6  */
7
8 #define WINVER 0x0501
9 #define _WIN32_IE 0x0501
10 #define _WIN32_WINNT 0x0501
11
12 #define WINE_NOWINSOCK
13
14 #include "ntdll_test.h"
15
16 #include "wine/test.h"
17
18 /***********************************************************************
19  * Compatibility macros
20  */
21
22 #define DWORD_PTR UINT_PTR
23 #define LONG_PTR INT_PTR
24 #define ULONG_PTR UINT_PTR
25
26 /***********************************************************************
27  * Windows API extension
28  */
29
30 #if defined(_MSC_VER) && (_MSC_VER >= 1300) && defined(__cplusplus)
31 # define _TYPE_ALIGNMENT(type) __alignof(type)
32 #elif defined(__GNUC__)
33 # define _TYPE_ALIGNMENT(type) __alignof__(type)
34 #else
35 /*
36  * FIXME: May not be possible without a compiler extension
37  *        (if type is not just a name that is, otherwise the normal
38  *         TYPE_ALIGNMENT can be used)
39  */
40 #endif
41
42 #if defined(TYPE_ALIGNMENT) && defined(_MSC_VER) && _MSC_VER >= 800 && !defined(__cplusplus)
43 #pragma warning(disable:4116)
44 #endif
45
46 #if !defined(TYPE_ALIGNMENT) && defined(_TYPE_ALIGNMENT)
47 # define TYPE_ALIGNMENT _TYPE_ALIGNMENT
48 #endif
49
50 /***********************************************************************
51  * Test helper macros
52  */
53
54 #define TEST_TYPE_SIZE(type, size)             C_ASSERT(sizeof(type) == size);
55
56 #ifdef TYPE_ALIGNMENT
57 # define TEST_TYPE_ALIGN(type, align)          C_ASSERT(TYPE_ALIGNMENT(type) == align);
58 #else
59 # define TEST_TYPE_ALIGN(type, align)
60 #endif
61
62 #ifdef _TYPE_ALIGNMENT
63 # define TEST_TARGET_ALIGN(type, align)        C_ASSERT(_TYPE_ALIGNMENT(*(type)0) == align);
64 # define TEST_FIELD_ALIGN(type, field, align)  C_ASSERT(_TYPE_ALIGNMENT(((type*)0)->field) == align);
65 #else
66 # define TEST_TARGET_ALIGN(type, align)
67 # define TEST_FIELD_ALIGN(type, field, align)
68 #endif
69
70 #define TEST_FIELD_OFFSET(type, field, offset) C_ASSERT(FIELD_OFFSET(type, field) == offset);
71
72 #define TEST_TARGET_SIZE(type, size)            TEST_TYPE_SIZE(*(type)0, size)
73 #define TEST_FIELD_SIZE(type, field, size)      TEST_TYPE_SIZE((((type*)0)->field), size)
74 #define TEST_TYPE_SIGNED(type)                  C_ASSERT((type) -1 < 0);
75 #define TEST_TYPE_UNSIGNED(type)                C_ASSERT((type) -1 > 0);
76
77
78 #ifdef _WIN64
79
80 static void test_pack_DWORD32(void)
81 {
82     /* DWORD32 */
83     TEST_TYPE_SIZE   (DWORD32, 4)
84     TEST_TYPE_ALIGN  (DWORD32, 4)
85     TEST_TYPE_UNSIGNED(DWORD32)
86 }
87
88 static void test_pack_DWORD64(void)
89 {
90     /* DWORD64 */
91     TEST_TYPE_SIZE   (DWORD64, 8)
92     TEST_TYPE_ALIGN  (DWORD64, 8)
93     TEST_TYPE_UNSIGNED(DWORD64)
94 }
95
96 static void test_pack_DWORD_PTR(void)
97 {
98     /* DWORD_PTR */
99     TEST_TYPE_SIZE   (DWORD_PTR, 8)
100     TEST_TYPE_ALIGN  (DWORD_PTR, 8)
101 }
102
103 static void test_pack_HALF_PTR(void)
104 {
105     /* HALF_PTR */
106     TEST_TYPE_SIZE   (HALF_PTR, 4)
107     TEST_TYPE_ALIGN  (HALF_PTR, 4)
108     TEST_TYPE_SIGNED(HALF_PTR)
109 }
110
111 static void test_pack_INT16(void)
112 {
113     /* INT16 */
114     TEST_TYPE_SIZE   (INT16, 2)
115     TEST_TYPE_ALIGN  (INT16, 2)
116     TEST_TYPE_SIGNED(INT16)
117 }
118
119 static void test_pack_INT32(void)
120 {
121     /* INT32 */
122     TEST_TYPE_SIZE   (INT32, 4)
123     TEST_TYPE_ALIGN  (INT32, 4)
124     TEST_TYPE_SIGNED(INT32)
125 }
126
127 static void test_pack_INT64(void)
128 {
129     /* INT64 */
130     TEST_TYPE_SIZE   (INT64, 8)
131     TEST_TYPE_ALIGN  (INT64, 8)
132     TEST_TYPE_SIGNED(INT64)
133 }
134
135 static void test_pack_INT8(void)
136 {
137     /* INT8 */
138     TEST_TYPE_SIZE   (INT8, 1)
139     TEST_TYPE_ALIGN  (INT8, 1)
140     TEST_TYPE_SIGNED(INT8)
141 }
142
143 static void test_pack_INT_PTR(void)
144 {
145     /* INT_PTR */
146     TEST_TYPE_SIZE   (INT_PTR, 8)
147     TEST_TYPE_ALIGN  (INT_PTR, 8)
148     TEST_TYPE_SIGNED(INT_PTR)
149 }
150
151 static void test_pack_LONG32(void)
152 {
153     /* LONG32 */
154     TEST_TYPE_SIZE   (LONG32, 4)
155     TEST_TYPE_ALIGN  (LONG32, 4)
156     TEST_TYPE_SIGNED(LONG32)
157 }
158
159 static void test_pack_LONG64(void)
160 {
161     /* LONG64 */
162     TEST_TYPE_SIZE   (LONG64, 8)
163     TEST_TYPE_ALIGN  (LONG64, 8)
164     TEST_TYPE_SIGNED(LONG64)
165 }
166
167 static void test_pack_LONG_PTR(void)
168 {
169     /* LONG_PTR */
170     TEST_TYPE_SIZE   (LONG_PTR, 8)
171     TEST_TYPE_ALIGN  (LONG_PTR, 8)
172     TEST_TYPE_SIGNED(LONG_PTR)
173 }
174
175 static void test_pack_SIZE_T(void)
176 {
177     /* SIZE_T */
178     TEST_TYPE_SIZE   (SIZE_T, 8)
179     TEST_TYPE_ALIGN  (SIZE_T, 8)
180 }
181
182 static void test_pack_SSIZE_T(void)
183 {
184     /* SSIZE_T */
185     TEST_TYPE_SIZE   (SSIZE_T, 8)
186     TEST_TYPE_ALIGN  (SSIZE_T, 8)
187 }
188
189 static void test_pack_UHALF_PTR(void)
190 {
191     /* UHALF_PTR */
192     TEST_TYPE_SIZE   (UHALF_PTR, 4)
193     TEST_TYPE_ALIGN  (UHALF_PTR, 4)
194     TEST_TYPE_UNSIGNED(UHALF_PTR)
195 }
196
197 static void test_pack_UINT16(void)
198 {
199     /* UINT16 */
200     TEST_TYPE_SIZE   (UINT16, 2)
201     TEST_TYPE_ALIGN  (UINT16, 2)
202     TEST_TYPE_UNSIGNED(UINT16)
203 }
204
205 static void test_pack_UINT32(void)
206 {
207     /* UINT32 */
208     TEST_TYPE_SIZE   (UINT32, 4)
209     TEST_TYPE_ALIGN  (UINT32, 4)
210     TEST_TYPE_UNSIGNED(UINT32)
211 }
212
213 static void test_pack_UINT64(void)
214 {
215     /* UINT64 */
216     TEST_TYPE_SIZE   (UINT64, 8)
217     TEST_TYPE_ALIGN  (UINT64, 8)
218     TEST_TYPE_UNSIGNED(UINT64)
219 }
220
221 static void test_pack_UINT8(void)
222 {
223     /* UINT8 */
224     TEST_TYPE_SIZE   (UINT8, 1)
225     TEST_TYPE_ALIGN  (UINT8, 1)
226     TEST_TYPE_UNSIGNED(UINT8)
227 }
228
229 static void test_pack_UINT_PTR(void)
230 {
231     /* UINT_PTR */
232     TEST_TYPE_SIZE   (UINT_PTR, 8)
233     TEST_TYPE_ALIGN  (UINT_PTR, 8)
234     TEST_TYPE_UNSIGNED(UINT_PTR)
235 }
236
237 static void test_pack_ULONG32(void)
238 {
239     /* ULONG32 */
240     TEST_TYPE_SIZE   (ULONG32, 4)
241     TEST_TYPE_ALIGN  (ULONG32, 4)
242     TEST_TYPE_UNSIGNED(ULONG32)
243 }
244
245 static void test_pack_ULONG64(void)
246 {
247     /* ULONG64 */
248     TEST_TYPE_SIZE   (ULONG64, 8)
249     TEST_TYPE_ALIGN  (ULONG64, 8)
250     TEST_TYPE_UNSIGNED(ULONG64)
251 }
252
253 static void test_pack_ULONG_PTR(void)
254 {
255     /* ULONG_PTR */
256     TEST_TYPE_SIZE   (ULONG_PTR, 8)
257     TEST_TYPE_ALIGN  (ULONG_PTR, 8)
258     TEST_TYPE_UNSIGNED(ULONG_PTR)
259 }
260
261 static void test_pack_ACCESS_ALLOWED_ACE(void)
262 {
263     /* ACCESS_ALLOWED_ACE */
264     TEST_TYPE_SIZE   (ACCESS_ALLOWED_ACE, 12)
265     TEST_TYPE_ALIGN  (ACCESS_ALLOWED_ACE, 4)
266     TEST_FIELD_SIZE  (ACCESS_ALLOWED_ACE, Header, 4)
267     TEST_FIELD_ALIGN (ACCESS_ALLOWED_ACE, Header, 2)
268     TEST_FIELD_OFFSET(ACCESS_ALLOWED_ACE, Header, 0)
269     TEST_FIELD_SIZE  (ACCESS_ALLOWED_ACE, Mask, 4)
270     TEST_FIELD_ALIGN (ACCESS_ALLOWED_ACE, Mask, 4)
271     TEST_FIELD_OFFSET(ACCESS_ALLOWED_ACE, Mask, 4)
272     TEST_FIELD_SIZE  (ACCESS_ALLOWED_ACE, SidStart, 4)
273     TEST_FIELD_ALIGN (ACCESS_ALLOWED_ACE, SidStart, 4)
274     TEST_FIELD_OFFSET(ACCESS_ALLOWED_ACE, SidStart, 8)
275 }
276
277 static void test_pack_ACCESS_DENIED_ACE(void)
278 {
279     /* ACCESS_DENIED_ACE */
280     TEST_TYPE_SIZE   (ACCESS_DENIED_ACE, 12)
281     TEST_TYPE_ALIGN  (ACCESS_DENIED_ACE, 4)
282     TEST_FIELD_SIZE  (ACCESS_DENIED_ACE, Header, 4)
283     TEST_FIELD_ALIGN (ACCESS_DENIED_ACE, Header, 2)
284     TEST_FIELD_OFFSET(ACCESS_DENIED_ACE, Header, 0)
285     TEST_FIELD_SIZE  (ACCESS_DENIED_ACE, Mask, 4)
286     TEST_FIELD_ALIGN (ACCESS_DENIED_ACE, Mask, 4)
287     TEST_FIELD_OFFSET(ACCESS_DENIED_ACE, Mask, 4)
288     TEST_FIELD_SIZE  (ACCESS_DENIED_ACE, SidStart, 4)
289     TEST_FIELD_ALIGN (ACCESS_DENIED_ACE, SidStart, 4)
290     TEST_FIELD_OFFSET(ACCESS_DENIED_ACE, SidStart, 8)
291 }
292
293 static void test_pack_ACCESS_MASK(void)
294 {
295     /* ACCESS_MASK */
296     TEST_TYPE_SIZE   (ACCESS_MASK, 4)
297     TEST_TYPE_ALIGN  (ACCESS_MASK, 4)
298     TEST_TYPE_UNSIGNED(ACCESS_MASK)
299 }
300
301 static void test_pack_ACE_HEADER(void)
302 {
303     /* ACE_HEADER */
304     TEST_TYPE_SIZE   (ACE_HEADER, 4)
305     TEST_TYPE_ALIGN  (ACE_HEADER, 2)
306     TEST_FIELD_SIZE  (ACE_HEADER, AceType, 1)
307     TEST_FIELD_ALIGN (ACE_HEADER, AceType, 1)
308     TEST_FIELD_OFFSET(ACE_HEADER, AceType, 0)
309     TEST_FIELD_SIZE  (ACE_HEADER, AceFlags, 1)
310     TEST_FIELD_ALIGN (ACE_HEADER, AceFlags, 1)
311     TEST_FIELD_OFFSET(ACE_HEADER, AceFlags, 1)
312     TEST_FIELD_SIZE  (ACE_HEADER, AceSize, 2)
313     TEST_FIELD_ALIGN (ACE_HEADER, AceSize, 2)
314     TEST_FIELD_OFFSET(ACE_HEADER, AceSize, 2)
315 }
316
317 static void test_pack_ACL(void)
318 {
319     /* ACL */
320     TEST_TYPE_SIZE   (ACL, 8)
321     TEST_TYPE_ALIGN  (ACL, 2)
322     TEST_FIELD_SIZE  (ACL, AclRevision, 1)
323     TEST_FIELD_ALIGN (ACL, AclRevision, 1)
324     TEST_FIELD_OFFSET(ACL, AclRevision, 0)
325     TEST_FIELD_SIZE  (ACL, Sbz1, 1)
326     TEST_FIELD_ALIGN (ACL, Sbz1, 1)
327     TEST_FIELD_OFFSET(ACL, Sbz1, 1)
328     TEST_FIELD_SIZE  (ACL, AclSize, 2)
329     TEST_FIELD_ALIGN (ACL, AclSize, 2)
330     TEST_FIELD_OFFSET(ACL, AclSize, 2)
331     TEST_FIELD_SIZE  (ACL, AceCount, 2)
332     TEST_FIELD_ALIGN (ACL, AceCount, 2)
333     TEST_FIELD_OFFSET(ACL, AceCount, 4)
334     TEST_FIELD_SIZE  (ACL, Sbz2, 2)
335     TEST_FIELD_ALIGN (ACL, Sbz2, 2)
336     TEST_FIELD_OFFSET(ACL, Sbz2, 6)
337 }
338
339 static void test_pack_ACL_REVISION_INFORMATION(void)
340 {
341     /* ACL_REVISION_INFORMATION */
342     TEST_TYPE_SIZE   (ACL_REVISION_INFORMATION, 4)
343     TEST_TYPE_ALIGN  (ACL_REVISION_INFORMATION, 4)
344     TEST_FIELD_SIZE  (ACL_REVISION_INFORMATION, AclRevision, 4)
345     TEST_FIELD_ALIGN (ACL_REVISION_INFORMATION, AclRevision, 4)
346     TEST_FIELD_OFFSET(ACL_REVISION_INFORMATION, AclRevision, 0)
347 }
348
349 static void test_pack_ACL_SIZE_INFORMATION(void)
350 {
351     /* ACL_SIZE_INFORMATION */
352     TEST_TYPE_SIZE   (ACL_SIZE_INFORMATION, 12)
353     TEST_TYPE_ALIGN  (ACL_SIZE_INFORMATION, 4)
354     TEST_FIELD_SIZE  (ACL_SIZE_INFORMATION, AceCount, 4)
355     TEST_FIELD_ALIGN (ACL_SIZE_INFORMATION, AceCount, 4)
356     TEST_FIELD_OFFSET(ACL_SIZE_INFORMATION, AceCount, 0)
357     TEST_FIELD_SIZE  (ACL_SIZE_INFORMATION, AclBytesInUse, 4)
358     TEST_FIELD_ALIGN (ACL_SIZE_INFORMATION, AclBytesInUse, 4)
359     TEST_FIELD_OFFSET(ACL_SIZE_INFORMATION, AclBytesInUse, 4)
360     TEST_FIELD_SIZE  (ACL_SIZE_INFORMATION, AclBytesFree, 4)
361     TEST_FIELD_ALIGN (ACL_SIZE_INFORMATION, AclBytesFree, 4)
362     TEST_FIELD_OFFSET(ACL_SIZE_INFORMATION, AclBytesFree, 8)
363 }
364
365 static void test_pack_BOOLEAN(void)
366 {
367     /* BOOLEAN */
368     TEST_TYPE_SIZE   (BOOLEAN, 1)
369     TEST_TYPE_ALIGN  (BOOLEAN, 1)
370     TEST_TYPE_UNSIGNED(BOOLEAN)
371 }
372
373 static void test_pack_CCHAR(void)
374 {
375     /* CCHAR */
376     TEST_TYPE_SIZE   (CCHAR, 1)
377     TEST_TYPE_ALIGN  (CCHAR, 1)
378 }
379
380 static void test_pack_CHAR(void)
381 {
382     /* CHAR */
383     TEST_TYPE_SIZE   (CHAR, 1)
384     TEST_TYPE_ALIGN  (CHAR, 1)
385 }
386
387 static void test_pack_DWORDLONG(void)
388 {
389     /* DWORDLONG */
390     TEST_TYPE_SIZE   (DWORDLONG, 8)
391     TEST_TYPE_ALIGN  (DWORDLONG, 8)
392     TEST_TYPE_UNSIGNED(DWORDLONG)
393 }
394
395 static void test_pack_EXCEPTION_POINTERS(void)
396 {
397     /* EXCEPTION_POINTERS */
398     TEST_TYPE_SIZE   (EXCEPTION_POINTERS, 16)
399     TEST_TYPE_ALIGN  (EXCEPTION_POINTERS, 8)
400     TEST_FIELD_SIZE  (EXCEPTION_POINTERS, ExceptionRecord, 8)
401     TEST_FIELD_ALIGN (EXCEPTION_POINTERS, ExceptionRecord, 8)
402     TEST_FIELD_OFFSET(EXCEPTION_POINTERS, ExceptionRecord, 0)
403     TEST_FIELD_SIZE  (EXCEPTION_POINTERS, ContextRecord, 8)
404     TEST_FIELD_ALIGN (EXCEPTION_POINTERS, ContextRecord, 8)
405     TEST_FIELD_OFFSET(EXCEPTION_POINTERS, ContextRecord, 8)
406 }
407
408 static void test_pack_EXCEPTION_RECORD(void)
409 {
410     /* EXCEPTION_RECORD */
411     TEST_TYPE_SIZE   (EXCEPTION_RECORD, 152)
412     TEST_TYPE_ALIGN  (EXCEPTION_RECORD, 8)
413     TEST_FIELD_SIZE  (EXCEPTION_RECORD, ExceptionCode, 4)
414     TEST_FIELD_ALIGN (EXCEPTION_RECORD, ExceptionCode, 4)
415     TEST_FIELD_OFFSET(EXCEPTION_RECORD, ExceptionCode, 0)
416     TEST_FIELD_SIZE  (EXCEPTION_RECORD, ExceptionFlags, 4)
417     TEST_FIELD_ALIGN (EXCEPTION_RECORD, ExceptionFlags, 4)
418     TEST_FIELD_OFFSET(EXCEPTION_RECORD, ExceptionFlags, 4)
419     TEST_FIELD_SIZE  (EXCEPTION_RECORD, ExceptionRecord, 8)
420     TEST_FIELD_ALIGN (EXCEPTION_RECORD, ExceptionRecord, 8)
421     TEST_FIELD_OFFSET(EXCEPTION_RECORD, ExceptionRecord, 8)
422     TEST_FIELD_SIZE  (EXCEPTION_RECORD, ExceptionAddress, 8)
423     TEST_FIELD_ALIGN (EXCEPTION_RECORD, ExceptionAddress, 8)
424     TEST_FIELD_OFFSET(EXCEPTION_RECORD, ExceptionAddress, 16)
425     TEST_FIELD_SIZE  (EXCEPTION_RECORD, NumberParameters, 4)
426     TEST_FIELD_ALIGN (EXCEPTION_RECORD, NumberParameters, 4)
427     TEST_FIELD_OFFSET(EXCEPTION_RECORD, NumberParameters, 24)
428     TEST_FIELD_SIZE  (EXCEPTION_RECORD, ExceptionInformation, 120)
429     TEST_FIELD_ALIGN (EXCEPTION_RECORD, ExceptionInformation, 8)
430     TEST_FIELD_OFFSET(EXCEPTION_RECORD, ExceptionInformation, 32)
431 }
432
433 static void test_pack_EXECUTION_STATE(void)
434 {
435     /* EXECUTION_STATE */
436     TEST_TYPE_SIZE   (EXECUTION_STATE, 4)
437     TEST_TYPE_ALIGN  (EXECUTION_STATE, 4)
438     TEST_TYPE_UNSIGNED(EXECUTION_STATE)
439 }
440
441 static void test_pack_FLOATING_SAVE_AREA(void)
442 {
443     /* FLOATING_SAVE_AREA */
444     TEST_TYPE_SIZE   (FLOATING_SAVE_AREA, 112)
445     TEST_TYPE_ALIGN  (FLOATING_SAVE_AREA, 4)
446     TEST_FIELD_SIZE  (FLOATING_SAVE_AREA, ControlWord, 4)
447     TEST_FIELD_ALIGN (FLOATING_SAVE_AREA, ControlWord, 4)
448     TEST_FIELD_OFFSET(FLOATING_SAVE_AREA, ControlWord, 0)
449     TEST_FIELD_SIZE  (FLOATING_SAVE_AREA, StatusWord, 4)
450     TEST_FIELD_ALIGN (FLOATING_SAVE_AREA, StatusWord, 4)
451     TEST_FIELD_OFFSET(FLOATING_SAVE_AREA, StatusWord, 4)
452     TEST_FIELD_SIZE  (FLOATING_SAVE_AREA, TagWord, 4)
453     TEST_FIELD_ALIGN (FLOATING_SAVE_AREA, TagWord, 4)
454     TEST_FIELD_OFFSET(FLOATING_SAVE_AREA, TagWord, 8)
455     TEST_FIELD_SIZE  (FLOATING_SAVE_AREA, ErrorOffset, 4)
456     TEST_FIELD_ALIGN (FLOATING_SAVE_AREA, ErrorOffset, 4)
457     TEST_FIELD_OFFSET(FLOATING_SAVE_AREA, ErrorOffset, 12)
458     TEST_FIELD_SIZE  (FLOATING_SAVE_AREA, ErrorSelector, 4)
459     TEST_FIELD_ALIGN (FLOATING_SAVE_AREA, ErrorSelector, 4)
460     TEST_FIELD_OFFSET(FLOATING_SAVE_AREA, ErrorSelector, 16)
461     TEST_FIELD_SIZE  (FLOATING_SAVE_AREA, DataOffset, 4)
462     TEST_FIELD_ALIGN (FLOATING_SAVE_AREA, DataOffset, 4)
463     TEST_FIELD_OFFSET(FLOATING_SAVE_AREA, DataOffset, 20)
464     TEST_FIELD_SIZE  (FLOATING_SAVE_AREA, DataSelector, 4)
465     TEST_FIELD_ALIGN (FLOATING_SAVE_AREA, DataSelector, 4)
466     TEST_FIELD_OFFSET(FLOATING_SAVE_AREA, DataSelector, 24)
467     TEST_FIELD_SIZE  (FLOATING_SAVE_AREA, RegisterArea, 80)
468     TEST_FIELD_ALIGN (FLOATING_SAVE_AREA, RegisterArea, 1)
469     TEST_FIELD_OFFSET(FLOATING_SAVE_AREA, RegisterArea, 28)
470     TEST_FIELD_SIZE  (FLOATING_SAVE_AREA, Cr0NpxState, 4)
471     TEST_FIELD_ALIGN (FLOATING_SAVE_AREA, Cr0NpxState, 4)
472     TEST_FIELD_OFFSET(FLOATING_SAVE_AREA, Cr0NpxState, 108)
473 }
474
475 static void test_pack_FPO_DATA(void)
476 {
477     /* FPO_DATA */
478     TEST_TYPE_SIZE   (FPO_DATA, 16)
479     TEST_TYPE_ALIGN  (FPO_DATA, 4)
480     TEST_FIELD_SIZE  (FPO_DATA, ulOffStart, 4)
481     TEST_FIELD_ALIGN (FPO_DATA, ulOffStart, 4)
482     TEST_FIELD_OFFSET(FPO_DATA, ulOffStart, 0)
483     TEST_FIELD_SIZE  (FPO_DATA, cbProcSize, 4)
484     TEST_FIELD_ALIGN (FPO_DATA, cbProcSize, 4)
485     TEST_FIELD_OFFSET(FPO_DATA, cbProcSize, 4)
486     TEST_FIELD_SIZE  (FPO_DATA, cdwLocals, 4)
487     TEST_FIELD_ALIGN (FPO_DATA, cdwLocals, 4)
488     TEST_FIELD_OFFSET(FPO_DATA, cdwLocals, 8)
489     TEST_FIELD_SIZE  (FPO_DATA, cdwParams, 2)
490     TEST_FIELD_ALIGN (FPO_DATA, cdwParams, 2)
491     TEST_FIELD_OFFSET(FPO_DATA, cdwParams, 12)
492 }
493
494 static void test_pack_GENERIC_MAPPING(void)
495 {
496     /* GENERIC_MAPPING */
497     TEST_TYPE_SIZE   (GENERIC_MAPPING, 16)
498     TEST_TYPE_ALIGN  (GENERIC_MAPPING, 4)
499     TEST_FIELD_SIZE  (GENERIC_MAPPING, GenericRead, 4)
500     TEST_FIELD_ALIGN (GENERIC_MAPPING, GenericRead, 4)
501     TEST_FIELD_OFFSET(GENERIC_MAPPING, GenericRead, 0)
502     TEST_FIELD_SIZE  (GENERIC_MAPPING, GenericWrite, 4)
503     TEST_FIELD_ALIGN (GENERIC_MAPPING, GenericWrite, 4)
504     TEST_FIELD_OFFSET(GENERIC_MAPPING, GenericWrite, 4)
505     TEST_FIELD_SIZE  (GENERIC_MAPPING, GenericExecute, 4)
506     TEST_FIELD_ALIGN (GENERIC_MAPPING, GenericExecute, 4)
507     TEST_FIELD_OFFSET(GENERIC_MAPPING, GenericExecute, 8)
508     TEST_FIELD_SIZE  (GENERIC_MAPPING, GenericAll, 4)
509     TEST_FIELD_ALIGN (GENERIC_MAPPING, GenericAll, 4)
510     TEST_FIELD_OFFSET(GENERIC_MAPPING, GenericAll, 12)
511 }
512
513 static void test_pack_HANDLE(void)
514 {
515     /* HANDLE */
516     TEST_TYPE_SIZE   (HANDLE, 8)
517     TEST_TYPE_ALIGN  (HANDLE, 8)
518 }
519
520 static void test_pack_HRESULT(void)
521 {
522     /* HRESULT */
523     TEST_TYPE_SIZE   (HRESULT, 4)
524     TEST_TYPE_ALIGN  (HRESULT, 4)
525 }
526
527 static void test_pack_IMAGE_ARCHIVE_MEMBER_HEADER(void)
528 {
529     /* IMAGE_ARCHIVE_MEMBER_HEADER */
530     TEST_TYPE_SIZE   (IMAGE_ARCHIVE_MEMBER_HEADER, 60)
531     TEST_TYPE_ALIGN  (IMAGE_ARCHIVE_MEMBER_HEADER, 1)
532     TEST_FIELD_SIZE  (IMAGE_ARCHIVE_MEMBER_HEADER, Name, 16)
533     TEST_FIELD_ALIGN (IMAGE_ARCHIVE_MEMBER_HEADER, Name, 1)
534     TEST_FIELD_OFFSET(IMAGE_ARCHIVE_MEMBER_HEADER, Name, 0)
535     TEST_FIELD_SIZE  (IMAGE_ARCHIVE_MEMBER_HEADER, Date, 12)
536     TEST_FIELD_ALIGN (IMAGE_ARCHIVE_MEMBER_HEADER, Date, 1)
537     TEST_FIELD_OFFSET(IMAGE_ARCHIVE_MEMBER_HEADER, Date, 16)
538     TEST_FIELD_SIZE  (IMAGE_ARCHIVE_MEMBER_HEADER, UserID, 6)
539     TEST_FIELD_ALIGN (IMAGE_ARCHIVE_MEMBER_HEADER, UserID, 1)
540     TEST_FIELD_OFFSET(IMAGE_ARCHIVE_MEMBER_HEADER, UserID, 28)
541     TEST_FIELD_SIZE  (IMAGE_ARCHIVE_MEMBER_HEADER, GroupID, 6)
542     TEST_FIELD_ALIGN (IMAGE_ARCHIVE_MEMBER_HEADER, GroupID, 1)
543     TEST_FIELD_OFFSET(IMAGE_ARCHIVE_MEMBER_HEADER, GroupID, 34)
544     TEST_FIELD_SIZE  (IMAGE_ARCHIVE_MEMBER_HEADER, Mode, 8)
545     TEST_FIELD_ALIGN (IMAGE_ARCHIVE_MEMBER_HEADER, Mode, 1)
546     TEST_FIELD_OFFSET(IMAGE_ARCHIVE_MEMBER_HEADER, Mode, 40)
547     TEST_FIELD_SIZE  (IMAGE_ARCHIVE_MEMBER_HEADER, Size, 10)
548     TEST_FIELD_ALIGN (IMAGE_ARCHIVE_MEMBER_HEADER, Size, 1)
549     TEST_FIELD_OFFSET(IMAGE_ARCHIVE_MEMBER_HEADER, Size, 48)
550     TEST_FIELD_SIZE  (IMAGE_ARCHIVE_MEMBER_HEADER, EndHeader, 2)
551     TEST_FIELD_ALIGN (IMAGE_ARCHIVE_MEMBER_HEADER, EndHeader, 1)
552     TEST_FIELD_OFFSET(IMAGE_ARCHIVE_MEMBER_HEADER, EndHeader, 58)
553 }
554
555 static void test_pack_IMAGE_AUX_SYMBOL(void)
556 {
557     /* IMAGE_AUX_SYMBOL (pack 2) */
558 }
559
560 static void test_pack_IMAGE_BASE_RELOCATION(void)
561 {
562     /* IMAGE_BASE_RELOCATION */
563     TEST_TYPE_SIZE   (IMAGE_BASE_RELOCATION, 8)
564     TEST_TYPE_ALIGN  (IMAGE_BASE_RELOCATION, 4)
565     TEST_FIELD_SIZE  (IMAGE_BASE_RELOCATION, VirtualAddress, 4)
566     TEST_FIELD_ALIGN (IMAGE_BASE_RELOCATION, VirtualAddress, 4)
567     TEST_FIELD_OFFSET(IMAGE_BASE_RELOCATION, VirtualAddress, 0)
568     TEST_FIELD_SIZE  (IMAGE_BASE_RELOCATION, SizeOfBlock, 4)
569     TEST_FIELD_ALIGN (IMAGE_BASE_RELOCATION, SizeOfBlock, 4)
570     TEST_FIELD_OFFSET(IMAGE_BASE_RELOCATION, SizeOfBlock, 4)
571 }
572
573 static void test_pack_IMAGE_BOUND_FORWARDER_REF(void)
574 {
575     /* IMAGE_BOUND_FORWARDER_REF */
576     TEST_TYPE_SIZE   (IMAGE_BOUND_FORWARDER_REF, 8)
577     TEST_TYPE_ALIGN  (IMAGE_BOUND_FORWARDER_REF, 4)
578     TEST_FIELD_SIZE  (IMAGE_BOUND_FORWARDER_REF, TimeDateStamp, 4)
579     TEST_FIELD_ALIGN (IMAGE_BOUND_FORWARDER_REF, TimeDateStamp, 4)
580     TEST_FIELD_OFFSET(IMAGE_BOUND_FORWARDER_REF, TimeDateStamp, 0)
581     TEST_FIELD_SIZE  (IMAGE_BOUND_FORWARDER_REF, OffsetModuleName, 2)
582     TEST_FIELD_ALIGN (IMAGE_BOUND_FORWARDER_REF, OffsetModuleName, 2)
583     TEST_FIELD_OFFSET(IMAGE_BOUND_FORWARDER_REF, OffsetModuleName, 4)
584     TEST_FIELD_SIZE  (IMAGE_BOUND_FORWARDER_REF, Reserved, 2)
585     TEST_FIELD_ALIGN (IMAGE_BOUND_FORWARDER_REF, Reserved, 2)
586     TEST_FIELD_OFFSET(IMAGE_BOUND_FORWARDER_REF, Reserved, 6)
587 }
588
589 static void test_pack_IMAGE_BOUND_IMPORT_DESCRIPTOR(void)
590 {
591     /* IMAGE_BOUND_IMPORT_DESCRIPTOR */
592     TEST_TYPE_SIZE   (IMAGE_BOUND_IMPORT_DESCRIPTOR, 8)
593     TEST_TYPE_ALIGN  (IMAGE_BOUND_IMPORT_DESCRIPTOR, 4)
594     TEST_FIELD_SIZE  (IMAGE_BOUND_IMPORT_DESCRIPTOR, TimeDateStamp, 4)
595     TEST_FIELD_ALIGN (IMAGE_BOUND_IMPORT_DESCRIPTOR, TimeDateStamp, 4)
596     TEST_FIELD_OFFSET(IMAGE_BOUND_IMPORT_DESCRIPTOR, TimeDateStamp, 0)
597     TEST_FIELD_SIZE  (IMAGE_BOUND_IMPORT_DESCRIPTOR, OffsetModuleName, 2)
598     TEST_FIELD_ALIGN (IMAGE_BOUND_IMPORT_DESCRIPTOR, OffsetModuleName, 2)
599     TEST_FIELD_OFFSET(IMAGE_BOUND_IMPORT_DESCRIPTOR, OffsetModuleName, 4)
600     TEST_FIELD_SIZE  (IMAGE_BOUND_IMPORT_DESCRIPTOR, NumberOfModuleForwarderRefs, 2)
601     TEST_FIELD_ALIGN (IMAGE_BOUND_IMPORT_DESCRIPTOR, NumberOfModuleForwarderRefs, 2)
602     TEST_FIELD_OFFSET(IMAGE_BOUND_IMPORT_DESCRIPTOR, NumberOfModuleForwarderRefs, 6)
603 }
604
605 static void test_pack_IMAGE_COFF_SYMBOLS_HEADER(void)
606 {
607     /* IMAGE_COFF_SYMBOLS_HEADER */
608     TEST_TYPE_SIZE   (IMAGE_COFF_SYMBOLS_HEADER, 32)
609     TEST_TYPE_ALIGN  (IMAGE_COFF_SYMBOLS_HEADER, 4)
610     TEST_FIELD_SIZE  (IMAGE_COFF_SYMBOLS_HEADER, NumberOfSymbols, 4)
611     TEST_FIELD_ALIGN (IMAGE_COFF_SYMBOLS_HEADER, NumberOfSymbols, 4)
612     TEST_FIELD_OFFSET(IMAGE_COFF_SYMBOLS_HEADER, NumberOfSymbols, 0)
613     TEST_FIELD_SIZE  (IMAGE_COFF_SYMBOLS_HEADER, LvaToFirstSymbol, 4)
614     TEST_FIELD_ALIGN (IMAGE_COFF_SYMBOLS_HEADER, LvaToFirstSymbol, 4)
615     TEST_FIELD_OFFSET(IMAGE_COFF_SYMBOLS_HEADER, LvaToFirstSymbol, 4)
616     TEST_FIELD_SIZE  (IMAGE_COFF_SYMBOLS_HEADER, NumberOfLinenumbers, 4)
617     TEST_FIELD_ALIGN (IMAGE_COFF_SYMBOLS_HEADER, NumberOfLinenumbers, 4)
618     TEST_FIELD_OFFSET(IMAGE_COFF_SYMBOLS_HEADER, NumberOfLinenumbers, 8)
619     TEST_FIELD_SIZE  (IMAGE_COFF_SYMBOLS_HEADER, LvaToFirstLinenumber, 4)
620     TEST_FIELD_ALIGN (IMAGE_COFF_SYMBOLS_HEADER, LvaToFirstLinenumber, 4)
621     TEST_FIELD_OFFSET(IMAGE_COFF_SYMBOLS_HEADER, LvaToFirstLinenumber, 12)
622     TEST_FIELD_SIZE  (IMAGE_COFF_SYMBOLS_HEADER, RvaToFirstByteOfCode, 4)
623     TEST_FIELD_ALIGN (IMAGE_COFF_SYMBOLS_HEADER, RvaToFirstByteOfCode, 4)
624     TEST_FIELD_OFFSET(IMAGE_COFF_SYMBOLS_HEADER, RvaToFirstByteOfCode, 16)
625     TEST_FIELD_SIZE  (IMAGE_COFF_SYMBOLS_HEADER, RvaToLastByteOfCode, 4)
626     TEST_FIELD_ALIGN (IMAGE_COFF_SYMBOLS_HEADER, RvaToLastByteOfCode, 4)
627     TEST_FIELD_OFFSET(IMAGE_COFF_SYMBOLS_HEADER, RvaToLastByteOfCode, 20)
628     TEST_FIELD_SIZE  (IMAGE_COFF_SYMBOLS_HEADER, RvaToFirstByteOfData, 4)
629     TEST_FIELD_ALIGN (IMAGE_COFF_SYMBOLS_HEADER, RvaToFirstByteOfData, 4)
630     TEST_FIELD_OFFSET(IMAGE_COFF_SYMBOLS_HEADER, RvaToFirstByteOfData, 24)
631     TEST_FIELD_SIZE  (IMAGE_COFF_SYMBOLS_HEADER, RvaToLastByteOfData, 4)
632     TEST_FIELD_ALIGN (IMAGE_COFF_SYMBOLS_HEADER, RvaToLastByteOfData, 4)
633     TEST_FIELD_OFFSET(IMAGE_COFF_SYMBOLS_HEADER, RvaToLastByteOfData, 28)
634 }
635
636 static void test_pack_IMAGE_DATA_DIRECTORY(void)
637 {
638     /* IMAGE_DATA_DIRECTORY */
639     TEST_TYPE_SIZE   (IMAGE_DATA_DIRECTORY, 8)
640     TEST_TYPE_ALIGN  (IMAGE_DATA_DIRECTORY, 4)
641     TEST_FIELD_SIZE  (IMAGE_DATA_DIRECTORY, VirtualAddress, 4)
642     TEST_FIELD_ALIGN (IMAGE_DATA_DIRECTORY, VirtualAddress, 4)
643     TEST_FIELD_OFFSET(IMAGE_DATA_DIRECTORY, VirtualAddress, 0)
644     TEST_FIELD_SIZE  (IMAGE_DATA_DIRECTORY, Size, 4)
645     TEST_FIELD_ALIGN (IMAGE_DATA_DIRECTORY, Size, 4)
646     TEST_FIELD_OFFSET(IMAGE_DATA_DIRECTORY, Size, 4)
647 }
648
649 static void test_pack_IMAGE_DEBUG_DIRECTORY(void)
650 {
651     /* IMAGE_DEBUG_DIRECTORY */
652     TEST_TYPE_SIZE   (IMAGE_DEBUG_DIRECTORY, 28)
653     TEST_TYPE_ALIGN  (IMAGE_DEBUG_DIRECTORY, 4)
654     TEST_FIELD_SIZE  (IMAGE_DEBUG_DIRECTORY, Characteristics, 4)
655     TEST_FIELD_ALIGN (IMAGE_DEBUG_DIRECTORY, Characteristics, 4)
656     TEST_FIELD_OFFSET(IMAGE_DEBUG_DIRECTORY, Characteristics, 0)
657     TEST_FIELD_SIZE  (IMAGE_DEBUG_DIRECTORY, TimeDateStamp, 4)
658     TEST_FIELD_ALIGN (IMAGE_DEBUG_DIRECTORY, TimeDateStamp, 4)
659     TEST_FIELD_OFFSET(IMAGE_DEBUG_DIRECTORY, TimeDateStamp, 4)
660     TEST_FIELD_SIZE  (IMAGE_DEBUG_DIRECTORY, MajorVersion, 2)
661     TEST_FIELD_ALIGN (IMAGE_DEBUG_DIRECTORY, MajorVersion, 2)
662     TEST_FIELD_OFFSET(IMAGE_DEBUG_DIRECTORY, MajorVersion, 8)
663     TEST_FIELD_SIZE  (IMAGE_DEBUG_DIRECTORY, MinorVersion, 2)
664     TEST_FIELD_ALIGN (IMAGE_DEBUG_DIRECTORY, MinorVersion, 2)
665     TEST_FIELD_OFFSET(IMAGE_DEBUG_DIRECTORY, MinorVersion, 10)
666     TEST_FIELD_SIZE  (IMAGE_DEBUG_DIRECTORY, Type, 4)
667     TEST_FIELD_ALIGN (IMAGE_DEBUG_DIRECTORY, Type, 4)
668     TEST_FIELD_OFFSET(IMAGE_DEBUG_DIRECTORY, Type, 12)
669     TEST_FIELD_SIZE  (IMAGE_DEBUG_DIRECTORY, SizeOfData, 4)
670     TEST_FIELD_ALIGN (IMAGE_DEBUG_DIRECTORY, SizeOfData, 4)
671     TEST_FIELD_OFFSET(IMAGE_DEBUG_DIRECTORY, SizeOfData, 16)
672     TEST_FIELD_SIZE  (IMAGE_DEBUG_DIRECTORY, AddressOfRawData, 4)
673     TEST_FIELD_ALIGN (IMAGE_DEBUG_DIRECTORY, AddressOfRawData, 4)
674     TEST_FIELD_OFFSET(IMAGE_DEBUG_DIRECTORY, AddressOfRawData, 20)
675     TEST_FIELD_SIZE  (IMAGE_DEBUG_DIRECTORY, PointerToRawData, 4)
676     TEST_FIELD_ALIGN (IMAGE_DEBUG_DIRECTORY, PointerToRawData, 4)
677     TEST_FIELD_OFFSET(IMAGE_DEBUG_DIRECTORY, PointerToRawData, 24)
678 }
679
680 static void test_pack_IMAGE_DEBUG_MISC(void)
681 {
682     /* IMAGE_DEBUG_MISC */
683     TEST_TYPE_SIZE   (IMAGE_DEBUG_MISC, 16)
684     TEST_TYPE_ALIGN  (IMAGE_DEBUG_MISC, 4)
685     TEST_FIELD_SIZE  (IMAGE_DEBUG_MISC, DataType, 4)
686     TEST_FIELD_ALIGN (IMAGE_DEBUG_MISC, DataType, 4)
687     TEST_FIELD_OFFSET(IMAGE_DEBUG_MISC, DataType, 0)
688     TEST_FIELD_SIZE  (IMAGE_DEBUG_MISC, Length, 4)
689     TEST_FIELD_ALIGN (IMAGE_DEBUG_MISC, Length, 4)
690     TEST_FIELD_OFFSET(IMAGE_DEBUG_MISC, Length, 4)
691     TEST_FIELD_SIZE  (IMAGE_DEBUG_MISC, Unicode, 1)
692     TEST_FIELD_ALIGN (IMAGE_DEBUG_MISC, Unicode, 1)
693     TEST_FIELD_OFFSET(IMAGE_DEBUG_MISC, Unicode, 8)
694     TEST_FIELD_SIZE  (IMAGE_DEBUG_MISC, Reserved, 3)
695     TEST_FIELD_ALIGN (IMAGE_DEBUG_MISC, Reserved, 1)
696     TEST_FIELD_OFFSET(IMAGE_DEBUG_MISC, Reserved, 9)
697     TEST_FIELD_SIZE  (IMAGE_DEBUG_MISC, Data, 1)
698     TEST_FIELD_ALIGN (IMAGE_DEBUG_MISC, Data, 1)
699     TEST_FIELD_OFFSET(IMAGE_DEBUG_MISC, Data, 12)
700 }
701
702 static void test_pack_IMAGE_DOS_HEADER(void)
703 {
704     /* IMAGE_DOS_HEADER (pack 2) */
705     TEST_TYPE_SIZE   (IMAGE_DOS_HEADER, 64)
706     TEST_TYPE_ALIGN  (IMAGE_DOS_HEADER, 2)
707     TEST_FIELD_SIZE  (IMAGE_DOS_HEADER, e_magic, 2)
708     TEST_FIELD_ALIGN (IMAGE_DOS_HEADER, e_magic, 2)
709     TEST_FIELD_OFFSET(IMAGE_DOS_HEADER, e_magic, 0)
710     TEST_FIELD_SIZE  (IMAGE_DOS_HEADER, e_cblp, 2)
711     TEST_FIELD_ALIGN (IMAGE_DOS_HEADER, e_cblp, 2)
712     TEST_FIELD_OFFSET(IMAGE_DOS_HEADER, e_cblp, 2)
713     TEST_FIELD_SIZE  (IMAGE_DOS_HEADER, e_cp, 2)
714     TEST_FIELD_ALIGN (IMAGE_DOS_HEADER, e_cp, 2)
715     TEST_FIELD_OFFSET(IMAGE_DOS_HEADER, e_cp, 4)
716     TEST_FIELD_SIZE  (IMAGE_DOS_HEADER, e_crlc, 2)
717     TEST_FIELD_ALIGN (IMAGE_DOS_HEADER, e_crlc, 2)
718     TEST_FIELD_OFFSET(IMAGE_DOS_HEADER, e_crlc, 6)
719     TEST_FIELD_SIZE  (IMAGE_DOS_HEADER, e_cparhdr, 2)
720     TEST_FIELD_ALIGN (IMAGE_DOS_HEADER, e_cparhdr, 2)
721     TEST_FIELD_OFFSET(IMAGE_DOS_HEADER, e_cparhdr, 8)
722     TEST_FIELD_SIZE  (IMAGE_DOS_HEADER, e_minalloc, 2)
723     TEST_FIELD_ALIGN (IMAGE_DOS_HEADER, e_minalloc, 2)
724     TEST_FIELD_OFFSET(IMAGE_DOS_HEADER, e_minalloc, 10)
725     TEST_FIELD_SIZE  (IMAGE_DOS_HEADER, e_maxalloc, 2)
726     TEST_FIELD_ALIGN (IMAGE_DOS_HEADER, e_maxalloc, 2)
727     TEST_FIELD_OFFSET(IMAGE_DOS_HEADER, e_maxalloc, 12)
728     TEST_FIELD_SIZE  (IMAGE_DOS_HEADER, e_ss, 2)
729     TEST_FIELD_ALIGN (IMAGE_DOS_HEADER, e_ss, 2)
730     TEST_FIELD_OFFSET(IMAGE_DOS_HEADER, e_ss, 14)
731     TEST_FIELD_SIZE  (IMAGE_DOS_HEADER, e_sp, 2)
732     TEST_FIELD_ALIGN (IMAGE_DOS_HEADER, e_sp, 2)
733     TEST_FIELD_OFFSET(IMAGE_DOS_HEADER, e_sp, 16)
734     TEST_FIELD_SIZE  (IMAGE_DOS_HEADER, e_csum, 2)
735     TEST_FIELD_ALIGN (IMAGE_DOS_HEADER, e_csum, 2)
736     TEST_FIELD_OFFSET(IMAGE_DOS_HEADER, e_csum, 18)
737     TEST_FIELD_SIZE  (IMAGE_DOS_HEADER, e_ip, 2)
738     TEST_FIELD_ALIGN (IMAGE_DOS_HEADER, e_ip, 2)
739     TEST_FIELD_OFFSET(IMAGE_DOS_HEADER, e_ip, 20)
740     TEST_FIELD_SIZE  (IMAGE_DOS_HEADER, e_cs, 2)
741     TEST_FIELD_ALIGN (IMAGE_DOS_HEADER, e_cs, 2)
742     TEST_FIELD_OFFSET(IMAGE_DOS_HEADER, e_cs, 22)
743     TEST_FIELD_SIZE  (IMAGE_DOS_HEADER, e_lfarlc, 2)
744     TEST_FIELD_ALIGN (IMAGE_DOS_HEADER, e_lfarlc, 2)
745     TEST_FIELD_OFFSET(IMAGE_DOS_HEADER, e_lfarlc, 24)
746     TEST_FIELD_SIZE  (IMAGE_DOS_HEADER, e_ovno, 2)
747     TEST_FIELD_ALIGN (IMAGE_DOS_HEADER, e_ovno, 2)
748     TEST_FIELD_OFFSET(IMAGE_DOS_HEADER, e_ovno, 26)
749     TEST_FIELD_SIZE  (IMAGE_DOS_HEADER, e_res, 8)
750     TEST_FIELD_ALIGN (IMAGE_DOS_HEADER, e_res, 2)
751     TEST_FIELD_OFFSET(IMAGE_DOS_HEADER, e_res, 28)
752     TEST_FIELD_SIZE  (IMAGE_DOS_HEADER, e_oemid, 2)
753     TEST_FIELD_ALIGN (IMAGE_DOS_HEADER, e_oemid, 2)
754     TEST_FIELD_OFFSET(IMAGE_DOS_HEADER, e_oemid, 36)
755     TEST_FIELD_SIZE  (IMAGE_DOS_HEADER, e_oeminfo, 2)
756     TEST_FIELD_ALIGN (IMAGE_DOS_HEADER, e_oeminfo, 2)
757     TEST_FIELD_OFFSET(IMAGE_DOS_HEADER, e_oeminfo, 38)
758     TEST_FIELD_SIZE  (IMAGE_DOS_HEADER, e_res2, 20)
759     TEST_FIELD_ALIGN (IMAGE_DOS_HEADER, e_res2, 2)
760     TEST_FIELD_OFFSET(IMAGE_DOS_HEADER, e_res2, 40)
761     TEST_FIELD_SIZE  (IMAGE_DOS_HEADER, e_lfanew, 4)
762     TEST_FIELD_ALIGN (IMAGE_DOS_HEADER, e_lfanew, 2)
763     TEST_FIELD_OFFSET(IMAGE_DOS_HEADER, e_lfanew, 60)
764 }
765
766 static void test_pack_IMAGE_EXPORT_DIRECTORY(void)
767 {
768     /* IMAGE_EXPORT_DIRECTORY */
769     TEST_TYPE_SIZE   (IMAGE_EXPORT_DIRECTORY, 40)
770     TEST_TYPE_ALIGN  (IMAGE_EXPORT_DIRECTORY, 4)
771     TEST_FIELD_SIZE  (IMAGE_EXPORT_DIRECTORY, Characteristics, 4)
772     TEST_FIELD_ALIGN (IMAGE_EXPORT_DIRECTORY, Characteristics, 4)
773     TEST_FIELD_OFFSET(IMAGE_EXPORT_DIRECTORY, Characteristics, 0)
774     TEST_FIELD_SIZE  (IMAGE_EXPORT_DIRECTORY, TimeDateStamp, 4)
775     TEST_FIELD_ALIGN (IMAGE_EXPORT_DIRECTORY, TimeDateStamp, 4)
776     TEST_FIELD_OFFSET(IMAGE_EXPORT_DIRECTORY, TimeDateStamp, 4)
777     TEST_FIELD_SIZE  (IMAGE_EXPORT_DIRECTORY, MajorVersion, 2)
778     TEST_FIELD_ALIGN (IMAGE_EXPORT_DIRECTORY, MajorVersion, 2)
779     TEST_FIELD_OFFSET(IMAGE_EXPORT_DIRECTORY, MajorVersion, 8)
780     TEST_FIELD_SIZE  (IMAGE_EXPORT_DIRECTORY, MinorVersion, 2)
781     TEST_FIELD_ALIGN (IMAGE_EXPORT_DIRECTORY, MinorVersion, 2)
782     TEST_FIELD_OFFSET(IMAGE_EXPORT_DIRECTORY, MinorVersion, 10)
783     TEST_FIELD_SIZE  (IMAGE_EXPORT_DIRECTORY, Name, 4)
784     TEST_FIELD_ALIGN (IMAGE_EXPORT_DIRECTORY, Name, 4)
785     TEST_FIELD_OFFSET(IMAGE_EXPORT_DIRECTORY, Name, 12)
786     TEST_FIELD_SIZE  (IMAGE_EXPORT_DIRECTORY, Base, 4)
787     TEST_FIELD_ALIGN (IMAGE_EXPORT_DIRECTORY, Base, 4)
788     TEST_FIELD_OFFSET(IMAGE_EXPORT_DIRECTORY, Base, 16)
789     TEST_FIELD_SIZE  (IMAGE_EXPORT_DIRECTORY, NumberOfFunctions, 4)
790     TEST_FIELD_ALIGN (IMAGE_EXPORT_DIRECTORY, NumberOfFunctions, 4)
791     TEST_FIELD_OFFSET(IMAGE_EXPORT_DIRECTORY, NumberOfFunctions, 20)
792     TEST_FIELD_SIZE  (IMAGE_EXPORT_DIRECTORY, NumberOfNames, 4)
793     TEST_FIELD_ALIGN (IMAGE_EXPORT_DIRECTORY, NumberOfNames, 4)
794     TEST_FIELD_OFFSET(IMAGE_EXPORT_DIRECTORY, NumberOfNames, 24)
795     TEST_FIELD_SIZE  (IMAGE_EXPORT_DIRECTORY, AddressOfFunctions, 4)
796     TEST_FIELD_ALIGN (IMAGE_EXPORT_DIRECTORY, AddressOfFunctions, 4)
797     TEST_FIELD_OFFSET(IMAGE_EXPORT_DIRECTORY, AddressOfFunctions, 28)
798     TEST_FIELD_SIZE  (IMAGE_EXPORT_DIRECTORY, AddressOfNames, 4)
799     TEST_FIELD_ALIGN (IMAGE_EXPORT_DIRECTORY, AddressOfNames, 4)
800     TEST_FIELD_OFFSET(IMAGE_EXPORT_DIRECTORY, AddressOfNames, 32)
801     TEST_FIELD_SIZE  (IMAGE_EXPORT_DIRECTORY, AddressOfNameOrdinals, 4)
802     TEST_FIELD_ALIGN (IMAGE_EXPORT_DIRECTORY, AddressOfNameOrdinals, 4)
803     TEST_FIELD_OFFSET(IMAGE_EXPORT_DIRECTORY, AddressOfNameOrdinals, 36)
804 }
805
806 static void test_pack_IMAGE_FILE_HEADER(void)
807 {
808     /* IMAGE_FILE_HEADER */
809     TEST_TYPE_SIZE   (IMAGE_FILE_HEADER, 20)
810     TEST_TYPE_ALIGN  (IMAGE_FILE_HEADER, 4)
811     TEST_FIELD_SIZE  (IMAGE_FILE_HEADER, Machine, 2)
812     TEST_FIELD_ALIGN (IMAGE_FILE_HEADER, Machine, 2)
813     TEST_FIELD_OFFSET(IMAGE_FILE_HEADER, Machine, 0)
814     TEST_FIELD_SIZE  (IMAGE_FILE_HEADER, NumberOfSections, 2)
815     TEST_FIELD_ALIGN (IMAGE_FILE_HEADER, NumberOfSections, 2)
816     TEST_FIELD_OFFSET(IMAGE_FILE_HEADER, NumberOfSections, 2)
817     TEST_FIELD_SIZE  (IMAGE_FILE_HEADER, TimeDateStamp, 4)
818     TEST_FIELD_ALIGN (IMAGE_FILE_HEADER, TimeDateStamp, 4)
819     TEST_FIELD_OFFSET(IMAGE_FILE_HEADER, TimeDateStamp, 4)
820     TEST_FIELD_SIZE  (IMAGE_FILE_HEADER, PointerToSymbolTable, 4)
821     TEST_FIELD_ALIGN (IMAGE_FILE_HEADER, PointerToSymbolTable, 4)
822     TEST_FIELD_OFFSET(IMAGE_FILE_HEADER, PointerToSymbolTable, 8)
823     TEST_FIELD_SIZE  (IMAGE_FILE_HEADER, NumberOfSymbols, 4)
824     TEST_FIELD_ALIGN (IMAGE_FILE_HEADER, NumberOfSymbols, 4)
825     TEST_FIELD_OFFSET(IMAGE_FILE_HEADER, NumberOfSymbols, 12)
826     TEST_FIELD_SIZE  (IMAGE_FILE_HEADER, SizeOfOptionalHeader, 2)
827     TEST_FIELD_ALIGN (IMAGE_FILE_HEADER, SizeOfOptionalHeader, 2)
828     TEST_FIELD_OFFSET(IMAGE_FILE_HEADER, SizeOfOptionalHeader, 16)
829     TEST_FIELD_SIZE  (IMAGE_FILE_HEADER, Characteristics, 2)
830     TEST_FIELD_ALIGN (IMAGE_FILE_HEADER, Characteristics, 2)
831     TEST_FIELD_OFFSET(IMAGE_FILE_HEADER, Characteristics, 18)
832 }
833
834 static void test_pack_IMAGE_FUNCTION_ENTRY(void)
835 {
836     /* IMAGE_FUNCTION_ENTRY */
837     TEST_TYPE_SIZE   (IMAGE_FUNCTION_ENTRY, 12)
838     TEST_TYPE_ALIGN  (IMAGE_FUNCTION_ENTRY, 4)
839     TEST_FIELD_SIZE  (IMAGE_FUNCTION_ENTRY, StartingAddress, 4)
840     TEST_FIELD_ALIGN (IMAGE_FUNCTION_ENTRY, StartingAddress, 4)
841     TEST_FIELD_OFFSET(IMAGE_FUNCTION_ENTRY, StartingAddress, 0)
842     TEST_FIELD_SIZE  (IMAGE_FUNCTION_ENTRY, EndingAddress, 4)
843     TEST_FIELD_ALIGN (IMAGE_FUNCTION_ENTRY, EndingAddress, 4)
844     TEST_FIELD_OFFSET(IMAGE_FUNCTION_ENTRY, EndingAddress, 4)
845     TEST_FIELD_SIZE  (IMAGE_FUNCTION_ENTRY, EndOfPrologue, 4)
846     TEST_FIELD_ALIGN (IMAGE_FUNCTION_ENTRY, EndOfPrologue, 4)
847     TEST_FIELD_OFFSET(IMAGE_FUNCTION_ENTRY, EndOfPrologue, 8)
848 }
849
850 static void test_pack_IMAGE_IMPORT_BY_NAME(void)
851 {
852     /* IMAGE_IMPORT_BY_NAME */
853     TEST_TYPE_SIZE   (IMAGE_IMPORT_BY_NAME, 4)
854     TEST_TYPE_ALIGN  (IMAGE_IMPORT_BY_NAME, 2)
855     TEST_FIELD_SIZE  (IMAGE_IMPORT_BY_NAME, Hint, 2)
856     TEST_FIELD_ALIGN (IMAGE_IMPORT_BY_NAME, Hint, 2)
857     TEST_FIELD_OFFSET(IMAGE_IMPORT_BY_NAME, Hint, 0)
858     TEST_FIELD_SIZE  (IMAGE_IMPORT_BY_NAME, Name, 1)
859     TEST_FIELD_ALIGN (IMAGE_IMPORT_BY_NAME, Name, 1)
860     TEST_FIELD_OFFSET(IMAGE_IMPORT_BY_NAME, Name, 2)
861 }
862
863 static void test_pack_IMAGE_IMPORT_DESCRIPTOR(void)
864 {
865     /* IMAGE_IMPORT_DESCRIPTOR */
866 }
867
868 static void test_pack_IMAGE_LINENUMBER(void)
869 {
870     /* IMAGE_LINENUMBER (pack 2) */
871 }
872
873 static void test_pack_IMAGE_LOAD_CONFIG_DIRECTORY(void)
874 {
875     /* IMAGE_LOAD_CONFIG_DIRECTORY */
876     TEST_TYPE_SIZE   (IMAGE_LOAD_CONFIG_DIRECTORY, 88)
877     TEST_TYPE_ALIGN  (IMAGE_LOAD_CONFIG_DIRECTORY, 8)
878     TEST_FIELD_SIZE  (IMAGE_LOAD_CONFIG_DIRECTORY, Size, 4)
879     TEST_FIELD_ALIGN (IMAGE_LOAD_CONFIG_DIRECTORY, Size, 4)
880     TEST_FIELD_OFFSET(IMAGE_LOAD_CONFIG_DIRECTORY, Size, 0)
881     TEST_FIELD_SIZE  (IMAGE_LOAD_CONFIG_DIRECTORY, TimeDateStamp, 4)
882     TEST_FIELD_ALIGN (IMAGE_LOAD_CONFIG_DIRECTORY, TimeDateStamp, 4)
883     TEST_FIELD_OFFSET(IMAGE_LOAD_CONFIG_DIRECTORY, TimeDateStamp, 4)
884     TEST_FIELD_SIZE  (IMAGE_LOAD_CONFIG_DIRECTORY, MajorVersion, 2)
885     TEST_FIELD_ALIGN (IMAGE_LOAD_CONFIG_DIRECTORY, MajorVersion, 2)
886     TEST_FIELD_OFFSET(IMAGE_LOAD_CONFIG_DIRECTORY, MajorVersion, 8)
887     TEST_FIELD_SIZE  (IMAGE_LOAD_CONFIG_DIRECTORY, MinorVersion, 2)
888     TEST_FIELD_ALIGN (IMAGE_LOAD_CONFIG_DIRECTORY, MinorVersion, 2)
889     TEST_FIELD_OFFSET(IMAGE_LOAD_CONFIG_DIRECTORY, MinorVersion, 10)
890     TEST_FIELD_SIZE  (IMAGE_LOAD_CONFIG_DIRECTORY, GlobalFlagsClear, 4)
891     TEST_FIELD_ALIGN (IMAGE_LOAD_CONFIG_DIRECTORY, GlobalFlagsClear, 4)
892     TEST_FIELD_OFFSET(IMAGE_LOAD_CONFIG_DIRECTORY, GlobalFlagsClear, 12)
893     TEST_FIELD_SIZE  (IMAGE_LOAD_CONFIG_DIRECTORY, GlobalFlagsSet, 4)
894     TEST_FIELD_ALIGN (IMAGE_LOAD_CONFIG_DIRECTORY, GlobalFlagsSet, 4)
895     TEST_FIELD_OFFSET(IMAGE_LOAD_CONFIG_DIRECTORY, GlobalFlagsSet, 16)
896     TEST_FIELD_SIZE  (IMAGE_LOAD_CONFIG_DIRECTORY, CriticalSectionDefaultTimeout, 4)
897     TEST_FIELD_ALIGN (IMAGE_LOAD_CONFIG_DIRECTORY, CriticalSectionDefaultTimeout, 4)
898     TEST_FIELD_OFFSET(IMAGE_LOAD_CONFIG_DIRECTORY, CriticalSectionDefaultTimeout, 20)
899     TEST_FIELD_SIZE  (IMAGE_LOAD_CONFIG_DIRECTORY, DeCommitFreeBlockThreshold, 4)
900     TEST_FIELD_ALIGN (IMAGE_LOAD_CONFIG_DIRECTORY, DeCommitFreeBlockThreshold, 4)
901     TEST_FIELD_OFFSET(IMAGE_LOAD_CONFIG_DIRECTORY, DeCommitFreeBlockThreshold, 24)
902     TEST_FIELD_SIZE  (IMAGE_LOAD_CONFIG_DIRECTORY, DeCommitTotalFreeThreshold, 4)
903     TEST_FIELD_ALIGN (IMAGE_LOAD_CONFIG_DIRECTORY, DeCommitTotalFreeThreshold, 4)
904     TEST_FIELD_OFFSET(IMAGE_LOAD_CONFIG_DIRECTORY, DeCommitTotalFreeThreshold, 28)
905     TEST_FIELD_SIZE  (IMAGE_LOAD_CONFIG_DIRECTORY, LockPrefixTable, 8)
906     TEST_FIELD_ALIGN (IMAGE_LOAD_CONFIG_DIRECTORY, LockPrefixTable, 8)
907     TEST_FIELD_OFFSET(IMAGE_LOAD_CONFIG_DIRECTORY, LockPrefixTable, 32)
908     TEST_FIELD_SIZE  (IMAGE_LOAD_CONFIG_DIRECTORY, MaximumAllocationSize, 4)
909     TEST_FIELD_ALIGN (IMAGE_LOAD_CONFIG_DIRECTORY, MaximumAllocationSize, 4)
910     TEST_FIELD_OFFSET(IMAGE_LOAD_CONFIG_DIRECTORY, MaximumAllocationSize, 40)
911     TEST_FIELD_SIZE  (IMAGE_LOAD_CONFIG_DIRECTORY, VirtualMemoryThreshold, 4)
912     TEST_FIELD_ALIGN (IMAGE_LOAD_CONFIG_DIRECTORY, VirtualMemoryThreshold, 4)
913     TEST_FIELD_OFFSET(IMAGE_LOAD_CONFIG_DIRECTORY, VirtualMemoryThreshold, 44)
914     TEST_FIELD_SIZE  (IMAGE_LOAD_CONFIG_DIRECTORY, ProcessHeapFlags, 4)
915     TEST_FIELD_ALIGN (IMAGE_LOAD_CONFIG_DIRECTORY, ProcessHeapFlags, 4)
916     TEST_FIELD_OFFSET(IMAGE_LOAD_CONFIG_DIRECTORY, ProcessHeapFlags, 48)
917     TEST_FIELD_SIZE  (IMAGE_LOAD_CONFIG_DIRECTORY, ProcessAffinityMask, 4)
918     TEST_FIELD_ALIGN (IMAGE_LOAD_CONFIG_DIRECTORY, ProcessAffinityMask, 4)
919     TEST_FIELD_OFFSET(IMAGE_LOAD_CONFIG_DIRECTORY, ProcessAffinityMask, 52)
920     TEST_FIELD_SIZE  (IMAGE_LOAD_CONFIG_DIRECTORY, CSDVersion, 2)
921     TEST_FIELD_ALIGN (IMAGE_LOAD_CONFIG_DIRECTORY, CSDVersion, 2)
922     TEST_FIELD_OFFSET(IMAGE_LOAD_CONFIG_DIRECTORY, CSDVersion, 56)
923     TEST_FIELD_SIZE  (IMAGE_LOAD_CONFIG_DIRECTORY, Reserved1, 2)
924     TEST_FIELD_ALIGN (IMAGE_LOAD_CONFIG_DIRECTORY, Reserved1, 2)
925     TEST_FIELD_OFFSET(IMAGE_LOAD_CONFIG_DIRECTORY, Reserved1, 58)
926     TEST_FIELD_SIZE  (IMAGE_LOAD_CONFIG_DIRECTORY, EditList, 8)
927     TEST_FIELD_ALIGN (IMAGE_LOAD_CONFIG_DIRECTORY, EditList, 8)
928     TEST_FIELD_OFFSET(IMAGE_LOAD_CONFIG_DIRECTORY, EditList, 64)
929     TEST_FIELD_SIZE  (IMAGE_LOAD_CONFIG_DIRECTORY, SecurityCookie, 4)
930     TEST_FIELD_ALIGN (IMAGE_LOAD_CONFIG_DIRECTORY, SecurityCookie, 4)
931     TEST_FIELD_OFFSET(IMAGE_LOAD_CONFIG_DIRECTORY, SecurityCookie, 72)
932     TEST_FIELD_SIZE  (IMAGE_LOAD_CONFIG_DIRECTORY, SEHandlerTable, 4)
933     TEST_FIELD_ALIGN (IMAGE_LOAD_CONFIG_DIRECTORY, SEHandlerTable, 4)
934     TEST_FIELD_OFFSET(IMAGE_LOAD_CONFIG_DIRECTORY, SEHandlerTable, 76)
935     TEST_FIELD_SIZE  (IMAGE_LOAD_CONFIG_DIRECTORY, SEHandlerCount, 4)
936     TEST_FIELD_ALIGN (IMAGE_LOAD_CONFIG_DIRECTORY, SEHandlerCount, 4)
937     TEST_FIELD_OFFSET(IMAGE_LOAD_CONFIG_DIRECTORY, SEHandlerCount, 80)
938 }
939
940 static void test_pack_IMAGE_NT_HEADERS(void)
941 {
942     /* IMAGE_NT_HEADERS */
943     TEST_TYPE_SIZE   (IMAGE_NT_HEADERS, 264)
944     TEST_TYPE_ALIGN  (IMAGE_NT_HEADERS, 8)
945 }
946
947 static void test_pack_IMAGE_NT_HEADERS32(void)
948 {
949     /* IMAGE_NT_HEADERS32 */
950     TEST_TYPE_SIZE   (IMAGE_NT_HEADERS32, 248)
951     TEST_TYPE_ALIGN  (IMAGE_NT_HEADERS32, 4)
952     TEST_FIELD_SIZE  (IMAGE_NT_HEADERS32, Signature, 4)
953     TEST_FIELD_ALIGN (IMAGE_NT_HEADERS32, Signature, 4)
954     TEST_FIELD_OFFSET(IMAGE_NT_HEADERS32, Signature, 0)
955     TEST_FIELD_SIZE  (IMAGE_NT_HEADERS32, FileHeader, 20)
956     TEST_FIELD_ALIGN (IMAGE_NT_HEADERS32, FileHeader, 4)
957     TEST_FIELD_OFFSET(IMAGE_NT_HEADERS32, FileHeader, 4)
958     TEST_FIELD_SIZE  (IMAGE_NT_HEADERS32, OptionalHeader, 224)
959     TEST_FIELD_ALIGN (IMAGE_NT_HEADERS32, OptionalHeader, 4)
960     TEST_FIELD_OFFSET(IMAGE_NT_HEADERS32, OptionalHeader, 24)
961 }
962
963 static void test_pack_IMAGE_NT_HEADERS64(void)
964 {
965     /* IMAGE_NT_HEADERS64 */
966     TEST_TYPE_SIZE   (IMAGE_NT_HEADERS64, 264)
967     TEST_TYPE_ALIGN  (IMAGE_NT_HEADERS64, 8)
968     TEST_FIELD_SIZE  (IMAGE_NT_HEADERS64, Signature, 4)
969     TEST_FIELD_ALIGN (IMAGE_NT_HEADERS64, Signature, 4)
970     TEST_FIELD_OFFSET(IMAGE_NT_HEADERS64, Signature, 0)
971     TEST_FIELD_SIZE  (IMAGE_NT_HEADERS64, FileHeader, 20)
972     TEST_FIELD_ALIGN (IMAGE_NT_HEADERS64, FileHeader, 4)
973     TEST_FIELD_OFFSET(IMAGE_NT_HEADERS64, FileHeader, 4)
974     TEST_FIELD_SIZE  (IMAGE_NT_HEADERS64, OptionalHeader, 240)
975     TEST_FIELD_ALIGN (IMAGE_NT_HEADERS64, OptionalHeader, 8)
976     TEST_FIELD_OFFSET(IMAGE_NT_HEADERS64, OptionalHeader, 24)
977 }
978
979 static void test_pack_IMAGE_OPTIONAL_HEADER(void)
980 {
981     /* IMAGE_OPTIONAL_HEADER */
982     TEST_TYPE_SIZE   (IMAGE_OPTIONAL_HEADER, 240)
983     TEST_TYPE_ALIGN  (IMAGE_OPTIONAL_HEADER, 8)
984 }
985
986 static void test_pack_IMAGE_OPTIONAL_HEADER32(void)
987 {
988     /* IMAGE_OPTIONAL_HEADER32 */
989     TEST_TYPE_SIZE   (IMAGE_OPTIONAL_HEADER32, 224)
990     TEST_TYPE_ALIGN  (IMAGE_OPTIONAL_HEADER32, 4)
991     TEST_FIELD_SIZE  (IMAGE_OPTIONAL_HEADER32, Magic, 2)
992     TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER32, Magic, 2)
993     TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER32, Magic, 0)
994     TEST_FIELD_SIZE  (IMAGE_OPTIONAL_HEADER32, MajorLinkerVersion, 1)
995     TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER32, MajorLinkerVersion, 1)
996     TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER32, MajorLinkerVersion, 2)
997     TEST_FIELD_SIZE  (IMAGE_OPTIONAL_HEADER32, MinorLinkerVersion, 1)
998     TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER32, MinorLinkerVersion, 1)
999     TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER32, MinorLinkerVersion, 3)
1000     TEST_FIELD_SIZE  (IMAGE_OPTIONAL_HEADER32, SizeOfCode, 4)
1001     TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER32, SizeOfCode, 4)
1002     TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER32, SizeOfCode, 4)
1003     TEST_FIELD_SIZE  (IMAGE_OPTIONAL_HEADER32, SizeOfInitializedData, 4)
1004     TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER32, SizeOfInitializedData, 4)
1005     TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER32, SizeOfInitializedData, 8)
1006     TEST_FIELD_SIZE  (IMAGE_OPTIONAL_HEADER32, SizeOfUninitializedData, 4)
1007     TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER32, SizeOfUninitializedData, 4)
1008     TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER32, SizeOfUninitializedData, 12)
1009     TEST_FIELD_SIZE  (IMAGE_OPTIONAL_HEADER32, AddressOfEntryPoint, 4)
1010     TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER32, AddressOfEntryPoint, 4)
1011     TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER32, AddressOfEntryPoint, 16)
1012     TEST_FIELD_SIZE  (IMAGE_OPTIONAL_HEADER32, BaseOfCode, 4)
1013     TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER32, BaseOfCode, 4)
1014     TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER32, BaseOfCode, 20)
1015     TEST_FIELD_SIZE  (IMAGE_OPTIONAL_HEADER32, BaseOfData, 4)
1016     TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER32, BaseOfData, 4)
1017     TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER32, BaseOfData, 24)
1018     TEST_FIELD_SIZE  (IMAGE_OPTIONAL_HEADER32, ImageBase, 4)
1019     TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER32, ImageBase, 4)
1020     TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER32, ImageBase, 28)
1021     TEST_FIELD_SIZE  (IMAGE_OPTIONAL_HEADER32, SectionAlignment, 4)
1022     TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER32, SectionAlignment, 4)
1023     TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER32, SectionAlignment, 32)
1024     TEST_FIELD_SIZE  (IMAGE_OPTIONAL_HEADER32, FileAlignment, 4)
1025     TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER32, FileAlignment, 4)
1026     TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER32, FileAlignment, 36)
1027     TEST_FIELD_SIZE  (IMAGE_OPTIONAL_HEADER32, MajorOperatingSystemVersion, 2)
1028     TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER32, MajorOperatingSystemVersion, 2)
1029     TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER32, MajorOperatingSystemVersion, 40)
1030     TEST_FIELD_SIZE  (IMAGE_OPTIONAL_HEADER32, MinorOperatingSystemVersion, 2)
1031     TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER32, MinorOperatingSystemVersion, 2)
1032     TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER32, MinorOperatingSystemVersion, 42)
1033     TEST_FIELD_SIZE  (IMAGE_OPTIONAL_HEADER32, MajorImageVersion, 2)
1034     TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER32, MajorImageVersion, 2)
1035     TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER32, MajorImageVersion, 44)
1036     TEST_FIELD_SIZE  (IMAGE_OPTIONAL_HEADER32, MinorImageVersion, 2)
1037     TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER32, MinorImageVersion, 2)
1038     TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER32, MinorImageVersion, 46)
1039     TEST_FIELD_SIZE  (IMAGE_OPTIONAL_HEADER32, MajorSubsystemVersion, 2)
1040     TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER32, MajorSubsystemVersion, 2)
1041     TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER32, MajorSubsystemVersion, 48)
1042     TEST_FIELD_SIZE  (IMAGE_OPTIONAL_HEADER32, MinorSubsystemVersion, 2)
1043     TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER32, MinorSubsystemVersion, 2)
1044     TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER32, MinorSubsystemVersion, 50)
1045     TEST_FIELD_SIZE  (IMAGE_OPTIONAL_HEADER32, Win32VersionValue, 4)
1046     TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER32, Win32VersionValue, 4)
1047     TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER32, Win32VersionValue, 52)
1048     TEST_FIELD_SIZE  (IMAGE_OPTIONAL_HEADER32, SizeOfImage, 4)
1049     TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER32, SizeOfImage, 4)
1050     TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER32, SizeOfImage, 56)
1051     TEST_FIELD_SIZE  (IMAGE_OPTIONAL_HEADER32, SizeOfHeaders, 4)
1052     TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER32, SizeOfHeaders, 4)
1053     TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER32, SizeOfHeaders, 60)
1054     TEST_FIELD_SIZE  (IMAGE_OPTIONAL_HEADER32, CheckSum, 4)
1055     TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER32, CheckSum, 4)
1056     TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER32, CheckSum, 64)
1057     TEST_FIELD_SIZE  (IMAGE_OPTIONAL_HEADER32, Subsystem, 2)
1058     TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER32, Subsystem, 2)
1059     TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER32, Subsystem, 68)
1060     TEST_FIELD_SIZE  (IMAGE_OPTIONAL_HEADER32, DllCharacteristics, 2)
1061     TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER32, DllCharacteristics, 2)
1062     TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER32, DllCharacteristics, 70)
1063     TEST_FIELD_SIZE  (IMAGE_OPTIONAL_HEADER32, SizeOfStackReserve, 4)
1064     TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER32, SizeOfStackReserve, 4)
1065     TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER32, SizeOfStackReserve, 72)
1066     TEST_FIELD_SIZE  (IMAGE_OPTIONAL_HEADER32, SizeOfStackCommit, 4)
1067     TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER32, SizeOfStackCommit, 4)
1068     TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER32, SizeOfStackCommit, 76)
1069     TEST_FIELD_SIZE  (IMAGE_OPTIONAL_HEADER32, SizeOfHeapReserve, 4)
1070     TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER32, SizeOfHeapReserve, 4)
1071     TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER32, SizeOfHeapReserve, 80)
1072     TEST_FIELD_SIZE  (IMAGE_OPTIONAL_HEADER32, SizeOfHeapCommit, 4)
1073     TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER32, SizeOfHeapCommit, 4)
1074     TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER32, SizeOfHeapCommit, 84)
1075     TEST_FIELD_SIZE  (IMAGE_OPTIONAL_HEADER32, LoaderFlags, 4)
1076     TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER32, LoaderFlags, 4)
1077     TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER32, LoaderFlags, 88)
1078     TEST_FIELD_SIZE  (IMAGE_OPTIONAL_HEADER32, NumberOfRvaAndSizes, 4)
1079     TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER32, NumberOfRvaAndSizes, 4)
1080     TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER32, NumberOfRvaAndSizes, 92)
1081     TEST_FIELD_SIZE  (IMAGE_OPTIONAL_HEADER32, DataDirectory, 128)
1082     TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER32, DataDirectory, 4)
1083     TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER32, DataDirectory, 96)
1084 }
1085
1086 static void test_pack_IMAGE_OPTIONAL_HEADER64(void)
1087 {
1088     /* IMAGE_OPTIONAL_HEADER64 */
1089     TEST_TYPE_SIZE   (IMAGE_OPTIONAL_HEADER64, 240)
1090     TEST_TYPE_ALIGN  (IMAGE_OPTIONAL_HEADER64, 8)
1091     TEST_FIELD_SIZE  (IMAGE_OPTIONAL_HEADER64, Magic, 2)
1092     TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER64, Magic, 2)
1093     TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER64, Magic, 0)
1094     TEST_FIELD_SIZE  (IMAGE_OPTIONAL_HEADER64, MajorLinkerVersion, 1)
1095     TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER64, MajorLinkerVersion, 1)
1096     TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER64, MajorLinkerVersion, 2)
1097     TEST_FIELD_SIZE  (IMAGE_OPTIONAL_HEADER64, MinorLinkerVersion, 1)
1098     TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER64, MinorLinkerVersion, 1)
1099     TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER64, MinorLinkerVersion, 3)
1100     TEST_FIELD_SIZE  (IMAGE_OPTIONAL_HEADER64, SizeOfCode, 4)
1101     TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER64, SizeOfCode, 4)
1102     TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER64, SizeOfCode, 4)
1103     TEST_FIELD_SIZE  (IMAGE_OPTIONAL_HEADER64, SizeOfInitializedData, 4)
1104     TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER64, SizeOfInitializedData, 4)
1105     TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER64, SizeOfInitializedData, 8)
1106     TEST_FIELD_SIZE  (IMAGE_OPTIONAL_HEADER64, SizeOfUninitializedData, 4)
1107     TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER64, SizeOfUninitializedData, 4)
1108     TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER64, SizeOfUninitializedData, 12)
1109     TEST_FIELD_SIZE  (IMAGE_OPTIONAL_HEADER64, AddressOfEntryPoint, 4)
1110     TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER64, AddressOfEntryPoint, 4)
1111     TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER64, AddressOfEntryPoint, 16)
1112     TEST_FIELD_SIZE  (IMAGE_OPTIONAL_HEADER64, BaseOfCode, 4)
1113     TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER64, BaseOfCode, 4)
1114     TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER64, BaseOfCode, 20)
1115     TEST_FIELD_SIZE  (IMAGE_OPTIONAL_HEADER64, ImageBase, 8)
1116     TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER64, ImageBase, 8)
1117     TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER64, ImageBase, 24)
1118     TEST_FIELD_SIZE  (IMAGE_OPTIONAL_HEADER64, SectionAlignment, 4)
1119     TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER64, SectionAlignment, 4)
1120     TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER64, SectionAlignment, 32)
1121     TEST_FIELD_SIZE  (IMAGE_OPTIONAL_HEADER64, FileAlignment, 4)
1122     TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER64, FileAlignment, 4)
1123     TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER64, FileAlignment, 36)
1124     TEST_FIELD_SIZE  (IMAGE_OPTIONAL_HEADER64, MajorOperatingSystemVersion, 2)
1125     TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER64, MajorOperatingSystemVersion, 2)
1126     TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER64, MajorOperatingSystemVersion, 40)
1127     TEST_FIELD_SIZE  (IMAGE_OPTIONAL_HEADER64, MinorOperatingSystemVersion, 2)
1128     TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER64, MinorOperatingSystemVersion, 2)
1129     TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER64, MinorOperatingSystemVersion, 42)
1130     TEST_FIELD_SIZE  (IMAGE_OPTIONAL_HEADER64, MajorImageVersion, 2)
1131     TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER64, MajorImageVersion, 2)
1132     TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER64, MajorImageVersion, 44)
1133     TEST_FIELD_SIZE  (IMAGE_OPTIONAL_HEADER64, MinorImageVersion, 2)
1134     TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER64, MinorImageVersion, 2)
1135     TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER64, MinorImageVersion, 46)
1136     TEST_FIELD_SIZE  (IMAGE_OPTIONAL_HEADER64, MajorSubsystemVersion, 2)
1137     TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER64, MajorSubsystemVersion, 2)
1138     TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER64, MajorSubsystemVersion, 48)
1139     TEST_FIELD_SIZE  (IMAGE_OPTIONAL_HEADER64, MinorSubsystemVersion, 2)
1140     TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER64, MinorSubsystemVersion, 2)
1141     TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER64, MinorSubsystemVersion, 50)
1142     TEST_FIELD_SIZE  (IMAGE_OPTIONAL_HEADER64, Win32VersionValue, 4)
1143     TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER64, Win32VersionValue, 4)
1144     TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER64, Win32VersionValue, 52)
1145     TEST_FIELD_SIZE  (IMAGE_OPTIONAL_HEADER64, SizeOfImage, 4)
1146     TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER64, SizeOfImage, 4)
1147     TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER64, SizeOfImage, 56)
1148     TEST_FIELD_SIZE  (IMAGE_OPTIONAL_HEADER64, SizeOfHeaders, 4)
1149     TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER64, SizeOfHeaders, 4)
1150     TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER64, SizeOfHeaders, 60)
1151     TEST_FIELD_SIZE  (IMAGE_OPTIONAL_HEADER64, CheckSum, 4)
1152     TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER64, CheckSum, 4)
1153     TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER64, CheckSum, 64)
1154     TEST_FIELD_SIZE  (IMAGE_OPTIONAL_HEADER64, Subsystem, 2)
1155     TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER64, Subsystem, 2)
1156     TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER64, Subsystem, 68)
1157     TEST_FIELD_SIZE  (IMAGE_OPTIONAL_HEADER64, DllCharacteristics, 2)
1158     TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER64, DllCharacteristics, 2)
1159     TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER64, DllCharacteristics, 70)
1160     TEST_FIELD_SIZE  (IMAGE_OPTIONAL_HEADER64, SizeOfStackReserve, 8)
1161     TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER64, SizeOfStackReserve, 8)
1162     TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER64, SizeOfStackReserve, 72)
1163     TEST_FIELD_SIZE  (IMAGE_OPTIONAL_HEADER64, SizeOfStackCommit, 8)
1164     TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER64, SizeOfStackCommit, 8)
1165     TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER64, SizeOfStackCommit, 80)
1166     TEST_FIELD_SIZE  (IMAGE_OPTIONAL_HEADER64, SizeOfHeapReserve, 8)
1167     TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER64, SizeOfHeapReserve, 8)
1168     TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER64, SizeOfHeapReserve, 88)
1169     TEST_FIELD_SIZE  (IMAGE_OPTIONAL_HEADER64, SizeOfHeapCommit, 8)
1170     TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER64, SizeOfHeapCommit, 8)
1171     TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER64, SizeOfHeapCommit, 96)
1172     TEST_FIELD_SIZE  (IMAGE_OPTIONAL_HEADER64, LoaderFlags, 4)
1173     TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER64, LoaderFlags, 4)
1174     TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER64, LoaderFlags, 104)
1175     TEST_FIELD_SIZE  (IMAGE_OPTIONAL_HEADER64, NumberOfRvaAndSizes, 4)
1176     TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER64, NumberOfRvaAndSizes, 4)
1177     TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER64, NumberOfRvaAndSizes, 108)
1178     TEST_FIELD_SIZE  (IMAGE_OPTIONAL_HEADER64, DataDirectory, 128)
1179     TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER64, DataDirectory, 4)
1180     TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER64, DataDirectory, 112)
1181 }
1182
1183 static void test_pack_IMAGE_OS2_HEADER(void)
1184 {
1185     /* IMAGE_OS2_HEADER (pack 2) */
1186     TEST_TYPE_SIZE   (IMAGE_OS2_HEADER, 64)
1187     TEST_TYPE_ALIGN  (IMAGE_OS2_HEADER, 2)
1188     TEST_FIELD_SIZE  (IMAGE_OS2_HEADER, ne_magic, 2)
1189     TEST_FIELD_ALIGN (IMAGE_OS2_HEADER, ne_magic, 2)
1190     TEST_FIELD_OFFSET(IMAGE_OS2_HEADER, ne_magic, 0)
1191     TEST_FIELD_SIZE  (IMAGE_OS2_HEADER, ne_ver, 1)
1192     TEST_FIELD_ALIGN (IMAGE_OS2_HEADER, ne_ver, 1)
1193     TEST_FIELD_OFFSET(IMAGE_OS2_HEADER, ne_ver, 2)
1194     TEST_FIELD_SIZE  (IMAGE_OS2_HEADER, ne_rev, 1)
1195     TEST_FIELD_ALIGN (IMAGE_OS2_HEADER, ne_rev, 1)
1196     TEST_FIELD_OFFSET(IMAGE_OS2_HEADER, ne_rev, 3)
1197     TEST_FIELD_SIZE  (IMAGE_OS2_HEADER, ne_enttab, 2)
1198     TEST_FIELD_ALIGN (IMAGE_OS2_HEADER, ne_enttab, 2)
1199     TEST_FIELD_OFFSET(IMAGE_OS2_HEADER, ne_enttab, 4)
1200     TEST_FIELD_SIZE  (IMAGE_OS2_HEADER, ne_cbenttab, 2)
1201     TEST_FIELD_ALIGN (IMAGE_OS2_HEADER, ne_cbenttab, 2)
1202     TEST_FIELD_OFFSET(IMAGE_OS2_HEADER, ne_cbenttab, 6)
1203     TEST_FIELD_SIZE  (IMAGE_OS2_HEADER, ne_crc, 4)
1204     TEST_FIELD_ALIGN (IMAGE_OS2_HEADER, ne_crc, 2)
1205     TEST_FIELD_OFFSET(IMAGE_OS2_HEADER, ne_crc, 8)
1206     TEST_FIELD_SIZE  (IMAGE_OS2_HEADER, ne_flags, 2)
1207     TEST_FIELD_ALIGN (IMAGE_OS2_HEADER, ne_flags, 2)
1208     TEST_FIELD_OFFSET(IMAGE_OS2_HEADER, ne_flags, 12)
1209     TEST_FIELD_SIZE  (IMAGE_OS2_HEADER, ne_autodata, 2)
1210     TEST_FIELD_ALIGN (IMAGE_OS2_HEADER, ne_autodata, 2)
1211     TEST_FIELD_OFFSET(IMAGE_OS2_HEADER, ne_autodata, 14)
1212     TEST_FIELD_SIZE  (IMAGE_OS2_HEADER, ne_heap, 2)
1213     TEST_FIELD_ALIGN (IMAGE_OS2_HEADER, ne_heap, 2)
1214     TEST_FIELD_OFFSET(IMAGE_OS2_HEADER, ne_heap, 16)
1215     TEST_FIELD_SIZE  (IMAGE_OS2_HEADER, ne_stack, 2)
1216     TEST_FIELD_ALIGN (IMAGE_OS2_HEADER, ne_stack, 2)
1217     TEST_FIELD_OFFSET(IMAGE_OS2_HEADER, ne_stack, 18)
1218     TEST_FIELD_SIZE  (IMAGE_OS2_HEADER, ne_csip, 4)
1219     TEST_FIELD_ALIGN (IMAGE_OS2_HEADER, ne_csip, 2)
1220     TEST_FIELD_OFFSET(IMAGE_OS2_HEADER, ne_csip, 20)
1221     TEST_FIELD_SIZE  (IMAGE_OS2_HEADER, ne_sssp, 4)
1222     TEST_FIELD_ALIGN (IMAGE_OS2_HEADER, ne_sssp, 2)
1223     TEST_FIELD_OFFSET(IMAGE_OS2_HEADER, ne_sssp, 24)
1224     TEST_FIELD_SIZE  (IMAGE_OS2_HEADER, ne_cseg, 2)
1225     TEST_FIELD_ALIGN (IMAGE_OS2_HEADER, ne_cseg, 2)
1226     TEST_FIELD_OFFSET(IMAGE_OS2_HEADER, ne_cseg, 28)
1227     TEST_FIELD_SIZE  (IMAGE_OS2_HEADER, ne_cmod, 2)
1228     TEST_FIELD_ALIGN (IMAGE_OS2_HEADER, ne_cmod, 2)
1229     TEST_FIELD_OFFSET(IMAGE_OS2_HEADER, ne_cmod, 30)
1230     TEST_FIELD_SIZE  (IMAGE_OS2_HEADER, ne_cbnrestab, 2)
1231     TEST_FIELD_ALIGN (IMAGE_OS2_HEADER, ne_cbnrestab, 2)
1232     TEST_FIELD_OFFSET(IMAGE_OS2_HEADER, ne_cbnrestab, 32)
1233     TEST_FIELD_SIZE  (IMAGE_OS2_HEADER, ne_segtab, 2)
1234     TEST_FIELD_ALIGN (IMAGE_OS2_HEADER, ne_segtab, 2)
1235     TEST_FIELD_OFFSET(IMAGE_OS2_HEADER, ne_segtab, 34)
1236     TEST_FIELD_SIZE  (IMAGE_OS2_HEADER, ne_rsrctab, 2)
1237     TEST_FIELD_ALIGN (IMAGE_OS2_HEADER, ne_rsrctab, 2)
1238     TEST_FIELD_OFFSET(IMAGE_OS2_HEADER, ne_rsrctab, 36)
1239     TEST_FIELD_SIZE  (IMAGE_OS2_HEADER, ne_restab, 2)
1240     TEST_FIELD_ALIGN (IMAGE_OS2_HEADER, ne_restab, 2)
1241     TEST_FIELD_OFFSET(IMAGE_OS2_HEADER, ne_restab, 38)
1242     TEST_FIELD_SIZE  (IMAGE_OS2_HEADER, ne_modtab, 2)
1243     TEST_FIELD_ALIGN (IMAGE_OS2_HEADER, ne_modtab, 2)
1244     TEST_FIELD_OFFSET(IMAGE_OS2_HEADER, ne_modtab, 40)
1245     TEST_FIELD_SIZE  (IMAGE_OS2_HEADER, ne_imptab, 2)
1246     TEST_FIELD_ALIGN (IMAGE_OS2_HEADER, ne_imptab, 2)
1247     TEST_FIELD_OFFSET(IMAGE_OS2_HEADER, ne_imptab, 42)
1248     TEST_FIELD_SIZE  (IMAGE_OS2_HEADER, ne_nrestab, 4)
1249     TEST_FIELD_ALIGN (IMAGE_OS2_HEADER, ne_nrestab, 2)
1250     TEST_FIELD_OFFSET(IMAGE_OS2_HEADER, ne_nrestab, 44)
1251     TEST_FIELD_SIZE  (IMAGE_OS2_HEADER, ne_cmovent, 2)
1252     TEST_FIELD_ALIGN (IMAGE_OS2_HEADER, ne_cmovent, 2)
1253     TEST_FIELD_OFFSET(IMAGE_OS2_HEADER, ne_cmovent, 48)
1254     TEST_FIELD_SIZE  (IMAGE_OS2_HEADER, ne_align, 2)
1255     TEST_FIELD_ALIGN (IMAGE_OS2_HEADER, ne_align, 2)
1256     TEST_FIELD_OFFSET(IMAGE_OS2_HEADER, ne_align, 50)
1257     TEST_FIELD_SIZE  (IMAGE_OS2_HEADER, ne_cres, 2)
1258     TEST_FIELD_ALIGN (IMAGE_OS2_HEADER, ne_cres, 2)
1259     TEST_FIELD_OFFSET(IMAGE_OS2_HEADER, ne_cres, 52)
1260     TEST_FIELD_SIZE  (IMAGE_OS2_HEADER, ne_exetyp, 1)
1261     TEST_FIELD_ALIGN (IMAGE_OS2_HEADER, ne_exetyp, 1)
1262     TEST_FIELD_OFFSET(IMAGE_OS2_HEADER, ne_exetyp, 54)
1263     TEST_FIELD_SIZE  (IMAGE_OS2_HEADER, ne_flagsothers, 1)
1264     TEST_FIELD_ALIGN (IMAGE_OS2_HEADER, ne_flagsothers, 1)
1265     TEST_FIELD_OFFSET(IMAGE_OS2_HEADER, ne_flagsothers, 55)
1266     TEST_FIELD_SIZE  (IMAGE_OS2_HEADER, ne_pretthunks, 2)
1267     TEST_FIELD_ALIGN (IMAGE_OS2_HEADER, ne_pretthunks, 2)
1268     TEST_FIELD_OFFSET(IMAGE_OS2_HEADER, ne_pretthunks, 56)
1269     TEST_FIELD_SIZE  (IMAGE_OS2_HEADER, ne_psegrefbytes, 2)
1270     TEST_FIELD_ALIGN (IMAGE_OS2_HEADER, ne_psegrefbytes, 2)
1271     TEST_FIELD_OFFSET(IMAGE_OS2_HEADER, ne_psegrefbytes, 58)
1272     TEST_FIELD_SIZE  (IMAGE_OS2_HEADER, ne_swaparea, 2)
1273     TEST_FIELD_ALIGN (IMAGE_OS2_HEADER, ne_swaparea, 2)
1274     TEST_FIELD_OFFSET(IMAGE_OS2_HEADER, ne_swaparea, 60)
1275     TEST_FIELD_SIZE  (IMAGE_OS2_HEADER, ne_expver, 2)
1276     TEST_FIELD_ALIGN (IMAGE_OS2_HEADER, ne_expver, 2)
1277     TEST_FIELD_OFFSET(IMAGE_OS2_HEADER, ne_expver, 62)
1278 }
1279
1280 static void test_pack_IMAGE_RELOCATION(void)
1281 {
1282     /* IMAGE_RELOCATION (pack 2) */
1283 }
1284
1285 static void test_pack_IMAGE_RESOURCE_DATA_ENTRY(void)
1286 {
1287     /* IMAGE_RESOURCE_DATA_ENTRY */
1288     TEST_TYPE_SIZE   (IMAGE_RESOURCE_DATA_ENTRY, 16)
1289     TEST_TYPE_ALIGN  (IMAGE_RESOURCE_DATA_ENTRY, 4)
1290     TEST_FIELD_SIZE  (IMAGE_RESOURCE_DATA_ENTRY, OffsetToData, 4)
1291     TEST_FIELD_ALIGN (IMAGE_RESOURCE_DATA_ENTRY, OffsetToData, 4)
1292     TEST_FIELD_OFFSET(IMAGE_RESOURCE_DATA_ENTRY, OffsetToData, 0)
1293     TEST_FIELD_SIZE  (IMAGE_RESOURCE_DATA_ENTRY, Size, 4)
1294     TEST_FIELD_ALIGN (IMAGE_RESOURCE_DATA_ENTRY, Size, 4)
1295     TEST_FIELD_OFFSET(IMAGE_RESOURCE_DATA_ENTRY, Size, 4)
1296     TEST_FIELD_SIZE  (IMAGE_RESOURCE_DATA_ENTRY, CodePage, 4)
1297     TEST_FIELD_ALIGN (IMAGE_RESOURCE_DATA_ENTRY, CodePage, 4)
1298     TEST_FIELD_OFFSET(IMAGE_RESOURCE_DATA_ENTRY, CodePage, 8)
1299     TEST_FIELD_SIZE  (IMAGE_RESOURCE_DATA_ENTRY, Reserved, 4)
1300     TEST_FIELD_ALIGN (IMAGE_RESOURCE_DATA_ENTRY, Reserved, 4)
1301     TEST_FIELD_OFFSET(IMAGE_RESOURCE_DATA_ENTRY, Reserved, 12)
1302 }
1303
1304 static void test_pack_IMAGE_RESOURCE_DIRECTORY(void)
1305 {
1306     /* IMAGE_RESOURCE_DIRECTORY */
1307     TEST_TYPE_SIZE   (IMAGE_RESOURCE_DIRECTORY, 16)
1308     TEST_TYPE_ALIGN  (IMAGE_RESOURCE_DIRECTORY, 4)
1309     TEST_FIELD_SIZE  (IMAGE_RESOURCE_DIRECTORY, Characteristics, 4)
1310     TEST_FIELD_ALIGN (IMAGE_RESOURCE_DIRECTORY, Characteristics, 4)
1311     TEST_FIELD_OFFSET(IMAGE_RESOURCE_DIRECTORY, Characteristics, 0)
1312     TEST_FIELD_SIZE  (IMAGE_RESOURCE_DIRECTORY, TimeDateStamp, 4)
1313     TEST_FIELD_ALIGN (IMAGE_RESOURCE_DIRECTORY, TimeDateStamp, 4)
1314     TEST_FIELD_OFFSET(IMAGE_RESOURCE_DIRECTORY, TimeDateStamp, 4)
1315     TEST_FIELD_SIZE  (IMAGE_RESOURCE_DIRECTORY, MajorVersion, 2)
1316     TEST_FIELD_ALIGN (IMAGE_RESOURCE_DIRECTORY, MajorVersion, 2)
1317     TEST_FIELD_OFFSET(IMAGE_RESOURCE_DIRECTORY, MajorVersion, 8)
1318     TEST_FIELD_SIZE  (IMAGE_RESOURCE_DIRECTORY, MinorVersion, 2)
1319     TEST_FIELD_ALIGN (IMAGE_RESOURCE_DIRECTORY, MinorVersion, 2)
1320     TEST_FIELD_OFFSET(IMAGE_RESOURCE_DIRECTORY, MinorVersion, 10)
1321     TEST_FIELD_SIZE  (IMAGE_RESOURCE_DIRECTORY, NumberOfNamedEntries, 2)
1322     TEST_FIELD_ALIGN (IMAGE_RESOURCE_DIRECTORY, NumberOfNamedEntries, 2)
1323     TEST_FIELD_OFFSET(IMAGE_RESOURCE_DIRECTORY, NumberOfNamedEntries, 12)
1324     TEST_FIELD_SIZE  (IMAGE_RESOURCE_DIRECTORY, NumberOfIdEntries, 2)
1325     TEST_FIELD_ALIGN (IMAGE_RESOURCE_DIRECTORY, NumberOfIdEntries, 2)
1326     TEST_FIELD_OFFSET(IMAGE_RESOURCE_DIRECTORY, NumberOfIdEntries, 14)
1327 }
1328
1329 static void test_pack_IMAGE_RESOURCE_DIRECTORY_ENTRY(void)
1330 {
1331     /* IMAGE_RESOURCE_DIRECTORY_ENTRY */
1332 }
1333
1334 static void test_pack_IMAGE_RESOURCE_DIRECTORY_STRING(void)
1335 {
1336     /* IMAGE_RESOURCE_DIRECTORY_STRING */
1337     TEST_TYPE_SIZE   (IMAGE_RESOURCE_DIRECTORY_STRING, 4)
1338     TEST_TYPE_ALIGN  (IMAGE_RESOURCE_DIRECTORY_STRING, 2)
1339     TEST_FIELD_SIZE  (IMAGE_RESOURCE_DIRECTORY_STRING, Length, 2)
1340     TEST_FIELD_ALIGN (IMAGE_RESOURCE_DIRECTORY_STRING, Length, 2)
1341     TEST_FIELD_OFFSET(IMAGE_RESOURCE_DIRECTORY_STRING, Length, 0)
1342     TEST_FIELD_SIZE  (IMAGE_RESOURCE_DIRECTORY_STRING, NameString, 1)
1343     TEST_FIELD_ALIGN (IMAGE_RESOURCE_DIRECTORY_STRING, NameString, 1)
1344     TEST_FIELD_OFFSET(IMAGE_RESOURCE_DIRECTORY_STRING, NameString, 2)
1345 }
1346
1347 static void test_pack_IMAGE_RESOURCE_DIR_STRING_U(void)
1348 {
1349     /* IMAGE_RESOURCE_DIR_STRING_U */
1350     TEST_TYPE_SIZE   (IMAGE_RESOURCE_DIR_STRING_U, 4)
1351     TEST_TYPE_ALIGN  (IMAGE_RESOURCE_DIR_STRING_U, 2)
1352     TEST_FIELD_SIZE  (IMAGE_RESOURCE_DIR_STRING_U, Length, 2)
1353     TEST_FIELD_ALIGN (IMAGE_RESOURCE_DIR_STRING_U, Length, 2)
1354     TEST_FIELD_OFFSET(IMAGE_RESOURCE_DIR_STRING_U, Length, 0)
1355     TEST_FIELD_SIZE  (IMAGE_RESOURCE_DIR_STRING_U, NameString, 2)
1356     TEST_FIELD_ALIGN (IMAGE_RESOURCE_DIR_STRING_U, NameString, 2)
1357     TEST_FIELD_OFFSET(IMAGE_RESOURCE_DIR_STRING_U, NameString, 2)
1358 }
1359
1360 static void test_pack_IMAGE_SECTION_HEADER(void)
1361 {
1362     /* IMAGE_SECTION_HEADER */
1363     TEST_FIELD_SIZE  (IMAGE_SECTION_HEADER, Name, 8)
1364     TEST_FIELD_ALIGN (IMAGE_SECTION_HEADER, Name, 1)
1365     TEST_FIELD_OFFSET(IMAGE_SECTION_HEADER, Name, 0)
1366 }
1367
1368 static void test_pack_IMAGE_SEPARATE_DEBUG_HEADER(void)
1369 {
1370     /* IMAGE_SEPARATE_DEBUG_HEADER */
1371     TEST_TYPE_SIZE   (IMAGE_SEPARATE_DEBUG_HEADER, 48)
1372     TEST_TYPE_ALIGN  (IMAGE_SEPARATE_DEBUG_HEADER, 4)
1373     TEST_FIELD_SIZE  (IMAGE_SEPARATE_DEBUG_HEADER, Signature, 2)
1374     TEST_FIELD_ALIGN (IMAGE_SEPARATE_DEBUG_HEADER, Signature, 2)
1375     TEST_FIELD_OFFSET(IMAGE_SEPARATE_DEBUG_HEADER, Signature, 0)
1376     TEST_FIELD_SIZE  (IMAGE_SEPARATE_DEBUG_HEADER, Flags, 2)
1377     TEST_FIELD_ALIGN (IMAGE_SEPARATE_DEBUG_HEADER, Flags, 2)
1378     TEST_FIELD_OFFSET(IMAGE_SEPARATE_DEBUG_HEADER, Flags, 2)
1379     TEST_FIELD_SIZE  (IMAGE_SEPARATE_DEBUG_HEADER, Machine, 2)
1380     TEST_FIELD_ALIGN (IMAGE_SEPARATE_DEBUG_HEADER, Machine, 2)
1381     TEST_FIELD_OFFSET(IMAGE_SEPARATE_DEBUG_HEADER, Machine, 4)
1382     TEST_FIELD_SIZE  (IMAGE_SEPARATE_DEBUG_HEADER, Characteristics, 2)
1383     TEST_FIELD_ALIGN (IMAGE_SEPARATE_DEBUG_HEADER, Characteristics, 2)
1384     TEST_FIELD_OFFSET(IMAGE_SEPARATE_DEBUG_HEADER, Characteristics, 6)
1385     TEST_FIELD_SIZE  (IMAGE_SEPARATE_DEBUG_HEADER, TimeDateStamp, 4)
1386     TEST_FIELD_ALIGN (IMAGE_SEPARATE_DEBUG_HEADER, TimeDateStamp, 4)
1387     TEST_FIELD_OFFSET(IMAGE_SEPARATE_DEBUG_HEADER, TimeDateStamp, 8)
1388     TEST_FIELD_SIZE  (IMAGE_SEPARATE_DEBUG_HEADER, CheckSum, 4)
1389     TEST_FIELD_ALIGN (IMAGE_SEPARATE_DEBUG_HEADER, CheckSum, 4)
1390     TEST_FIELD_OFFSET(IMAGE_SEPARATE_DEBUG_HEADER, CheckSum, 12)
1391     TEST_FIELD_SIZE  (IMAGE_SEPARATE_DEBUG_HEADER, ImageBase, 4)
1392     TEST_FIELD_ALIGN (IMAGE_SEPARATE_DEBUG_HEADER, ImageBase, 4)
1393     TEST_FIELD_OFFSET(IMAGE_SEPARATE_DEBUG_HEADER, ImageBase, 16)
1394     TEST_FIELD_SIZE  (IMAGE_SEPARATE_DEBUG_HEADER, SizeOfImage, 4)
1395     TEST_FIELD_ALIGN (IMAGE_SEPARATE_DEBUG_HEADER, SizeOfImage, 4)
1396     TEST_FIELD_OFFSET(IMAGE_SEPARATE_DEBUG_HEADER, SizeOfImage, 20)
1397     TEST_FIELD_SIZE  (IMAGE_SEPARATE_DEBUG_HEADER, NumberOfSections, 4)
1398     TEST_FIELD_ALIGN (IMAGE_SEPARATE_DEBUG_HEADER, NumberOfSections, 4)
1399     TEST_FIELD_OFFSET(IMAGE_SEPARATE_DEBUG_HEADER, NumberOfSections, 24)
1400     TEST_FIELD_SIZE  (IMAGE_SEPARATE_DEBUG_HEADER, ExportedNamesSize, 4)
1401     TEST_FIELD_ALIGN (IMAGE_SEPARATE_DEBUG_HEADER, ExportedNamesSize, 4)
1402     TEST_FIELD_OFFSET(IMAGE_SEPARATE_DEBUG_HEADER, ExportedNamesSize, 28)
1403     TEST_FIELD_SIZE  (IMAGE_SEPARATE_DEBUG_HEADER, DebugDirectorySize, 4)
1404     TEST_FIELD_ALIGN (IMAGE_SEPARATE_DEBUG_HEADER, DebugDirectorySize, 4)
1405     TEST_FIELD_OFFSET(IMAGE_SEPARATE_DEBUG_HEADER, DebugDirectorySize, 32)
1406     TEST_FIELD_SIZE  (IMAGE_SEPARATE_DEBUG_HEADER, SectionAlignment, 4)
1407     TEST_FIELD_ALIGN (IMAGE_SEPARATE_DEBUG_HEADER, SectionAlignment, 4)
1408     TEST_FIELD_OFFSET(IMAGE_SEPARATE_DEBUG_HEADER, SectionAlignment, 36)
1409     TEST_FIELD_SIZE  (IMAGE_SEPARATE_DEBUG_HEADER, Reserved, 8)
1410     TEST_FIELD_ALIGN (IMAGE_SEPARATE_DEBUG_HEADER, Reserved, 4)
1411     TEST_FIELD_OFFSET(IMAGE_SEPARATE_DEBUG_HEADER, Reserved, 40)
1412 }
1413
1414 static void test_pack_IMAGE_SYMBOL(void)
1415 {
1416     /* IMAGE_SYMBOL (pack 2) */
1417 }
1418
1419 static void test_pack_IMAGE_THUNK_DATA(void)
1420 {
1421     /* IMAGE_THUNK_DATA */
1422 }
1423
1424 static void test_pack_IMAGE_TLS_DIRECTORY(void)
1425 {
1426     /* IMAGE_TLS_DIRECTORY */
1427     TEST_TYPE_SIZE   (IMAGE_TLS_DIRECTORY, 40)
1428     TEST_TYPE_ALIGN  (IMAGE_TLS_DIRECTORY, 8)
1429 }
1430
1431 static void test_pack_IMAGE_TLS_DIRECTORY32(void)
1432 {
1433     /* IMAGE_TLS_DIRECTORY32 */
1434     TEST_TYPE_SIZE   (IMAGE_TLS_DIRECTORY32, 24)
1435     TEST_TYPE_ALIGN  (IMAGE_TLS_DIRECTORY32, 4)
1436     TEST_FIELD_SIZE  (IMAGE_TLS_DIRECTORY32, StartAddressOfRawData, 4)
1437     TEST_FIELD_ALIGN (IMAGE_TLS_DIRECTORY32, StartAddressOfRawData, 4)
1438     TEST_FIELD_OFFSET(IMAGE_TLS_DIRECTORY32, StartAddressOfRawData, 0)
1439     TEST_FIELD_SIZE  (IMAGE_TLS_DIRECTORY32, EndAddressOfRawData, 4)
1440     TEST_FIELD_ALIGN (IMAGE_TLS_DIRECTORY32, EndAddressOfRawData, 4)
1441     TEST_FIELD_OFFSET(IMAGE_TLS_DIRECTORY32, EndAddressOfRawData, 4)
1442     TEST_FIELD_SIZE  (IMAGE_TLS_DIRECTORY32, AddressOfIndex, 4)
1443     TEST_FIELD_ALIGN (IMAGE_TLS_DIRECTORY32, AddressOfIndex, 4)
1444     TEST_FIELD_OFFSET(IMAGE_TLS_DIRECTORY32, AddressOfIndex, 8)
1445     TEST_FIELD_SIZE  (IMAGE_TLS_DIRECTORY32, AddressOfCallBacks, 4)
1446     TEST_FIELD_ALIGN (IMAGE_TLS_DIRECTORY32, AddressOfCallBacks, 4)
1447     TEST_FIELD_OFFSET(IMAGE_TLS_DIRECTORY32, AddressOfCallBacks, 12)
1448     TEST_FIELD_SIZE  (IMAGE_TLS_DIRECTORY32, SizeOfZeroFill, 4)
1449     TEST_FIELD_ALIGN (IMAGE_TLS_DIRECTORY32, SizeOfZeroFill, 4)
1450     TEST_FIELD_OFFSET(IMAGE_TLS_DIRECTORY32, SizeOfZeroFill, 16)
1451     TEST_FIELD_SIZE  (IMAGE_TLS_DIRECTORY32, Characteristics, 4)
1452     TEST_FIELD_ALIGN (IMAGE_TLS_DIRECTORY32, Characteristics, 4)
1453     TEST_FIELD_OFFSET(IMAGE_TLS_DIRECTORY32, Characteristics, 20)
1454 }
1455
1456 static void test_pack_IMAGE_TLS_DIRECTORY64(void)
1457 {
1458     /* IMAGE_TLS_DIRECTORY64 */
1459     TEST_TYPE_SIZE   (IMAGE_TLS_DIRECTORY64, 40)
1460     TEST_TYPE_ALIGN  (IMAGE_TLS_DIRECTORY64, 8)
1461     TEST_FIELD_SIZE  (IMAGE_TLS_DIRECTORY64, StartAddressOfRawData, 8)
1462     TEST_FIELD_ALIGN (IMAGE_TLS_DIRECTORY64, StartAddressOfRawData, 8)
1463     TEST_FIELD_OFFSET(IMAGE_TLS_DIRECTORY64, StartAddressOfRawData, 0)
1464     TEST_FIELD_SIZE  (IMAGE_TLS_DIRECTORY64, EndAddressOfRawData, 8)
1465     TEST_FIELD_ALIGN (IMAGE_TLS_DIRECTORY64, EndAddressOfRawData, 8)
1466     TEST_FIELD_OFFSET(IMAGE_TLS_DIRECTORY64, EndAddressOfRawData, 8)
1467     TEST_FIELD_SIZE  (IMAGE_TLS_DIRECTORY64, AddressOfIndex, 8)
1468     TEST_FIELD_ALIGN (IMAGE_TLS_DIRECTORY64, AddressOfIndex, 8)
1469     TEST_FIELD_OFFSET(IMAGE_TLS_DIRECTORY64, AddressOfIndex, 16)
1470     TEST_FIELD_SIZE  (IMAGE_TLS_DIRECTORY64, AddressOfCallBacks, 8)
1471     TEST_FIELD_ALIGN (IMAGE_TLS_DIRECTORY64, AddressOfCallBacks, 8)
1472     TEST_FIELD_OFFSET(IMAGE_TLS_DIRECTORY64, AddressOfCallBacks, 24)
1473     TEST_FIELD_SIZE  (IMAGE_TLS_DIRECTORY64, SizeOfZeroFill, 4)
1474     TEST_FIELD_ALIGN (IMAGE_TLS_DIRECTORY64, SizeOfZeroFill, 4)
1475     TEST_FIELD_OFFSET(IMAGE_TLS_DIRECTORY64, SizeOfZeroFill, 32)
1476     TEST_FIELD_SIZE  (IMAGE_TLS_DIRECTORY64, Characteristics, 4)
1477     TEST_FIELD_ALIGN (IMAGE_TLS_DIRECTORY64, Characteristics, 4)
1478     TEST_FIELD_OFFSET(IMAGE_TLS_DIRECTORY64, Characteristics, 36)
1479 }
1480
1481 static void test_pack_IMAGE_VXD_HEADER(void)
1482 {
1483     /* IMAGE_VXD_HEADER (pack 2) */
1484     TEST_TYPE_SIZE   (IMAGE_VXD_HEADER, 196)
1485     TEST_TYPE_ALIGN  (IMAGE_VXD_HEADER, 2)
1486     TEST_FIELD_SIZE  (IMAGE_VXD_HEADER, e32_magic, 2)
1487     TEST_FIELD_ALIGN (IMAGE_VXD_HEADER, e32_magic, 2)
1488     TEST_FIELD_OFFSET(IMAGE_VXD_HEADER, e32_magic, 0)
1489     TEST_FIELD_SIZE  (IMAGE_VXD_HEADER, e32_border, 1)
1490     TEST_FIELD_ALIGN (IMAGE_VXD_HEADER, e32_border, 1)
1491     TEST_FIELD_OFFSET(IMAGE_VXD_HEADER, e32_border, 2)
1492     TEST_FIELD_SIZE  (IMAGE_VXD_HEADER, e32_worder, 1)
1493     TEST_FIELD_ALIGN (IMAGE_VXD_HEADER, e32_worder, 1)
1494     TEST_FIELD_OFFSET(IMAGE_VXD_HEADER, e32_worder, 3)
1495     TEST_FIELD_SIZE  (IMAGE_VXD_HEADER, e32_level, 4)
1496     TEST_FIELD_ALIGN (IMAGE_VXD_HEADER, e32_level, 2)
1497     TEST_FIELD_OFFSET(IMAGE_VXD_HEADER, e32_level, 4)
1498     TEST_FIELD_SIZE  (IMAGE_VXD_HEADER, e32_cpu, 2)
1499     TEST_FIELD_ALIGN (IMAGE_VXD_HEADER, e32_cpu, 2)
1500     TEST_FIELD_OFFSET(IMAGE_VXD_HEADER, e32_cpu, 8)
1501     TEST_FIELD_SIZE  (IMAGE_VXD_HEADER, e32_os, 2)
1502     TEST_FIELD_ALIGN (IMAGE_VXD_HEADER, e32_os, 2)
1503     TEST_FIELD_OFFSET(IMAGE_VXD_HEADER, e32_os, 10)
1504     TEST_FIELD_SIZE  (IMAGE_VXD_HEADER, e32_ver, 4)
1505     TEST_FIELD_ALIGN (IMAGE_VXD_HEADER, e32_ver, 2)
1506     TEST_FIELD_OFFSET(IMAGE_VXD_HEADER, e32_ver, 12)
1507     TEST_FIELD_SIZE  (IMAGE_VXD_HEADER, e32_mflags, 4)
1508     TEST_FIELD_ALIGN (IMAGE_VXD_HEADER, e32_mflags, 2)
1509     TEST_FIELD_OFFSET(IMAGE_VXD_HEADER, e32_mflags, 16)
1510     TEST_FIELD_SIZE  (IMAGE_VXD_HEADER, e32_mpages, 4)
1511     TEST_FIELD_ALIGN (IMAGE_VXD_HEADER, e32_mpages, 2)
1512     TEST_FIELD_OFFSET(IMAGE_VXD_HEADER, e32_mpages, 20)
1513     TEST_FIELD_SIZE  (IMAGE_VXD_HEADER, e32_startobj, 4)
1514     TEST_FIELD_ALIGN (IMAGE_VXD_HEADER, e32_startobj, 2)
1515     TEST_FIELD_OFFSET(IMAGE_VXD_HEADER, e32_startobj, 24)
1516     TEST_FIELD_SIZE  (IMAGE_VXD_HEADER, e32_eip, 4)
1517     TEST_FIELD_ALIGN (IMAGE_VXD_HEADER, e32_eip, 2)
1518     TEST_FIELD_OFFSET(IMAGE_VXD_HEADER, e32_eip, 28)
1519     TEST_FIELD_SIZE  (IMAGE_VXD_HEADER, e32_stackobj, 4)
1520     TEST_FIELD_ALIGN (IMAGE_VXD_HEADER, e32_stackobj, 2)
1521     TEST_FIELD_OFFSET(IMAGE_VXD_HEADER, e32_stackobj, 32)
1522     TEST_FIELD_SIZE  (IMAGE_VXD_HEADER, e32_esp, 4)
1523     TEST_FIELD_ALIGN (IMAGE_VXD_HEADER, e32_esp, 2)
1524     TEST_FIELD_OFFSET(IMAGE_VXD_HEADER, e32_esp, 36)
1525     TEST_FIELD_SIZE  (IMAGE_VXD_HEADER, e32_pagesize, 4)
1526     TEST_FIELD_ALIGN (IMAGE_VXD_HEADER, e32_pagesize, 2)
1527     TEST_FIELD_OFFSET(IMAGE_VXD_HEADER, e32_pagesize, 40)
1528     TEST_FIELD_SIZE  (IMAGE_VXD_HEADER, e32_lastpagesize, 4)
1529     TEST_FIELD_ALIGN (IMAGE_VXD_HEADER, e32_lastpagesize, 2)
1530     TEST_FIELD_OFFSET(IMAGE_VXD_HEADER, e32_lastpagesize, 44)
1531     TEST_FIELD_SIZE  (IMAGE_VXD_HEADER, e32_fixupsize, 4)
1532     TEST_FIELD_ALIGN (IMAGE_VXD_HEADER, e32_fixupsize, 2)
1533     TEST_FIELD_OFFSET(IMAGE_VXD_HEADER, e32_fixupsize, 48)
1534     TEST_FIELD_SIZE  (IMAGE_VXD_HEADER, e32_fixupsum, 4)
1535     TEST_FIELD_ALIGN (IMAGE_VXD_HEADER, e32_fixupsum, 2)
1536     TEST_FIELD_OFFSET(IMAGE_VXD_HEADER, e32_fixupsum, 52)
1537     TEST_FIELD_SIZE  (IMAGE_VXD_HEADER, e32_ldrsize, 4)
1538     TEST_FIELD_ALIGN (IMAGE_VXD_HEADER, e32_ldrsize, 2)
1539     TEST_FIELD_OFFSET(IMAGE_VXD_HEADER, e32_ldrsize, 56)
1540     TEST_FIELD_SIZE  (IMAGE_VXD_HEADER, e32_ldrsum, 4)
1541     TEST_FIELD_ALIGN (IMAGE_VXD_HEADER, e32_ldrsum, 2)
1542     TEST_FIELD_OFFSET(IMAGE_VXD_HEADER, e32_ldrsum, 60)
1543     TEST_FIELD_SIZE  (IMAGE_VXD_HEADER, e32_objtab, 4)
1544     TEST_FIELD_ALIGN (IMAGE_VXD_HEADER, e32_objtab, 2)
1545     TEST_FIELD_OFFSET(IMAGE_VXD_HEADER, e32_objtab, 64)
1546     TEST_FIELD_SIZE  (IMAGE_VXD_HEADER, e32_objcnt, 4)
1547     TEST_FIELD_ALIGN (IMAGE_VXD_HEADER, e32_objcnt, 2)
1548     TEST_FIELD_OFFSET(IMAGE_VXD_HEADER, e32_objcnt, 68)
1549     TEST_FIELD_SIZE  (IMAGE_VXD_HEADER, e32_objmap, 4)
1550     TEST_FIELD_ALIGN (IMAGE_VXD_HEADER, e32_objmap, 2)
1551     TEST_FIELD_OFFSET(IMAGE_VXD_HEADER, e32_objmap, 72)
1552     TEST_FIELD_SIZE  (IMAGE_VXD_HEADER, e32_itermap, 4)
1553     TEST_FIELD_ALIGN (IMAGE_VXD_HEADER, e32_itermap, 2)
1554     TEST_FIELD_OFFSET(IMAGE_VXD_HEADER, e32_itermap, 76)
1555     TEST_FIELD_SIZE  (IMAGE_VXD_HEADER, e32_rsrctab, 4)
1556     TEST_FIELD_ALIGN (IMAGE_VXD_HEADER, e32_rsrctab, 2)
1557     TEST_FIELD_OFFSET(IMAGE_VXD_HEADER, e32_rsrctab, 80)
1558     TEST_FIELD_SIZE  (IMAGE_VXD_HEADER, e32_rsrccnt, 4)
1559     TEST_FIELD_ALIGN (IMAGE_VXD_HEADER, e32_rsrccnt, 2)
1560     TEST_FIELD_OFFSET(IMAGE_VXD_HEADER, e32_rsrccnt, 84)
1561     TEST_FIELD_SIZE  (IMAGE_VXD_HEADER, e32_restab, 4)
1562     TEST_FIELD_ALIGN (IMAGE_VXD_HEADER, e32_restab, 2)
1563     TEST_FIELD_OFFSET(IMAGE_VXD_HEADER, e32_restab, 88)
1564     TEST_FIELD_SIZE  (IMAGE_VXD_HEADER, e32_enttab, 4)
1565     TEST_FIELD_ALIGN (IMAGE_VXD_HEADER, e32_enttab, 2)
1566     TEST_FIELD_OFFSET(IMAGE_VXD_HEADER, e32_enttab, 92)
1567     TEST_FIELD_SIZE  (IMAGE_VXD_HEADER, e32_dirtab, 4)
1568     TEST_FIELD_ALIGN (IMAGE_VXD_HEADER, e32_dirtab, 2)
1569     TEST_FIELD_OFFSET(IMAGE_VXD_HEADER, e32_dirtab, 96)
1570     TEST_FIELD_SIZE  (IMAGE_VXD_HEADER, e32_dircnt, 4)
1571     TEST_FIELD_ALIGN (IMAGE_VXD_HEADER, e32_dircnt, 2)
1572     TEST_FIELD_OFFSET(IMAGE_VXD_HEADER, e32_dircnt, 100)
1573     TEST_FIELD_SIZE  (IMAGE_VXD_HEADER, e32_fpagetab, 4)
1574     TEST_FIELD_ALIGN (IMAGE_VXD_HEADER, e32_fpagetab, 2)
1575     TEST_FIELD_OFFSET(IMAGE_VXD_HEADER, e32_fpagetab, 104)
1576     TEST_FIELD_SIZE  (IMAGE_VXD_HEADER, e32_frectab, 4)
1577     TEST_FIELD_ALIGN (IMAGE_VXD_HEADER, e32_frectab, 2)
1578     TEST_FIELD_OFFSET(IMAGE_VXD_HEADER, e32_frectab, 108)
1579     TEST_FIELD_SIZE  (IMAGE_VXD_HEADER, e32_impmod, 4)
1580     TEST_FIELD_ALIGN (IMAGE_VXD_HEADER, e32_impmod, 2)
1581     TEST_FIELD_OFFSET(IMAGE_VXD_HEADER, e32_impmod, 112)
1582     TEST_FIELD_SIZE  (IMAGE_VXD_HEADER, e32_impmodcnt, 4)
1583     TEST_FIELD_ALIGN (IMAGE_VXD_HEADER, e32_impmodcnt, 2)
1584     TEST_FIELD_OFFSET(IMAGE_VXD_HEADER, e32_impmodcnt, 116)
1585     TEST_FIELD_SIZE  (IMAGE_VXD_HEADER, e32_impproc, 4)
1586     TEST_FIELD_ALIGN (IMAGE_VXD_HEADER, e32_impproc, 2)
1587     TEST_FIELD_OFFSET(IMAGE_VXD_HEADER, e32_impproc, 120)
1588     TEST_FIELD_SIZE  (IMAGE_VXD_HEADER, e32_pagesum, 4)
1589     TEST_FIELD_ALIGN (IMAGE_VXD_HEADER, e32_pagesum, 2)
1590     TEST_FIELD_OFFSET(IMAGE_VXD_HEADER, e32_pagesum, 124)
1591     TEST_FIELD_SIZE  (IMAGE_VXD_HEADER, e32_datapage, 4)
1592     TEST_FIELD_ALIGN (IMAGE_VXD_HEADER, e32_datapage, 2)
1593     TEST_FIELD_OFFSET(IMAGE_VXD_HEADER, e32_datapage, 128)
1594     TEST_FIELD_SIZE  (IMAGE_VXD_HEADER, e32_preload, 4)
1595     TEST_FIELD_ALIGN (IMAGE_VXD_HEADER, e32_preload, 2)
1596     TEST_FIELD_OFFSET(IMAGE_VXD_HEADER, e32_preload, 132)
1597     TEST_FIELD_SIZE  (IMAGE_VXD_HEADER, e32_nrestab, 4)
1598     TEST_FIELD_ALIGN (IMAGE_VXD_HEADER, e32_nrestab, 2)
1599     TEST_FIELD_OFFSET(IMAGE_VXD_HEADER, e32_nrestab, 136)
1600     TEST_FIELD_SIZE  (IMAGE_VXD_HEADER, e32_cbnrestab, 4)
1601     TEST_FIELD_ALIGN (IMAGE_VXD_HEADER, e32_cbnrestab, 2)
1602     TEST_FIELD_OFFSET(IMAGE_VXD_HEADER, e32_cbnrestab, 140)
1603     TEST_FIELD_SIZE  (IMAGE_VXD_HEADER, e32_nressum, 4)
1604     TEST_FIELD_ALIGN (IMAGE_VXD_HEADER, e32_nressum, 2)
1605     TEST_FIELD_OFFSET(IMAGE_VXD_HEADER, e32_nressum, 144)
1606     TEST_FIELD_SIZE  (IMAGE_VXD_HEADER, e32_autodata, 4)
1607     TEST_FIELD_ALIGN (IMAGE_VXD_HEADER, e32_autodata, 2)
1608     TEST_FIELD_OFFSET(IMAGE_VXD_HEADER, e32_autodata, 148)
1609     TEST_FIELD_SIZE  (IMAGE_VXD_HEADER, e32_debuginfo, 4)
1610     TEST_FIELD_ALIGN (IMAGE_VXD_HEADER, e32_debuginfo, 2)
1611     TEST_FIELD_OFFSET(IMAGE_VXD_HEADER, e32_debuginfo, 152)
1612     TEST_FIELD_SIZE  (IMAGE_VXD_HEADER, e32_debuglen, 4)
1613     TEST_FIELD_ALIGN (IMAGE_VXD_HEADER, e32_debuglen, 2)
1614     TEST_FIELD_OFFSET(IMAGE_VXD_HEADER, e32_debuglen, 156)
1615     TEST_FIELD_SIZE  (IMAGE_VXD_HEADER, e32_instpreload, 4)
1616     TEST_FIELD_ALIGN (IMAGE_VXD_HEADER, e32_instpreload, 2)
1617     TEST_FIELD_OFFSET(IMAGE_VXD_HEADER, e32_instpreload, 160)
1618     TEST_FIELD_SIZE  (IMAGE_VXD_HEADER, e32_instdemand, 4)
1619     TEST_FIELD_ALIGN (IMAGE_VXD_HEADER, e32_instdemand, 2)
1620     TEST_FIELD_OFFSET(IMAGE_VXD_HEADER, e32_instdemand, 164)
1621     TEST_FIELD_SIZE  (IMAGE_VXD_HEADER, e32_heapsize, 4)
1622     TEST_FIELD_ALIGN (IMAGE_VXD_HEADER, e32_heapsize, 2)
1623     TEST_FIELD_OFFSET(IMAGE_VXD_HEADER, e32_heapsize, 168)
1624     TEST_FIELD_SIZE  (IMAGE_VXD_HEADER, e32_res3, 12)
1625     TEST_FIELD_ALIGN (IMAGE_VXD_HEADER, e32_res3, 1)
1626     TEST_FIELD_OFFSET(IMAGE_VXD_HEADER, e32_res3, 172)
1627     TEST_FIELD_SIZE  (IMAGE_VXD_HEADER, e32_winresoff, 4)
1628     TEST_FIELD_ALIGN (IMAGE_VXD_HEADER, e32_winresoff, 2)
1629     TEST_FIELD_OFFSET(IMAGE_VXD_HEADER, e32_winresoff, 184)
1630     TEST_FIELD_SIZE  (IMAGE_VXD_HEADER, e32_winreslen, 4)
1631     TEST_FIELD_ALIGN (IMAGE_VXD_HEADER, e32_winreslen, 2)
1632     TEST_FIELD_OFFSET(IMAGE_VXD_HEADER, e32_winreslen, 188)
1633     TEST_FIELD_SIZE  (IMAGE_VXD_HEADER, e32_devid, 2)
1634     TEST_FIELD_ALIGN (IMAGE_VXD_HEADER, e32_devid, 2)
1635     TEST_FIELD_OFFSET(IMAGE_VXD_HEADER, e32_devid, 192)
1636     TEST_FIELD_SIZE  (IMAGE_VXD_HEADER, e32_ddkver, 2)
1637     TEST_FIELD_ALIGN (IMAGE_VXD_HEADER, e32_ddkver, 2)
1638     TEST_FIELD_OFFSET(IMAGE_VXD_HEADER, e32_ddkver, 194)
1639 }
1640
1641 static void test_pack_IO_COUNTERS(void)
1642 {
1643     /* IO_COUNTERS (pack 8) */
1644     TEST_TYPE_SIZE   (IO_COUNTERS, 48)
1645     TEST_TYPE_ALIGN  (IO_COUNTERS, 8)
1646     TEST_FIELD_SIZE  (IO_COUNTERS, ReadOperationCount, 8)
1647     TEST_FIELD_ALIGN (IO_COUNTERS, ReadOperationCount, 8)
1648     TEST_FIELD_OFFSET(IO_COUNTERS, ReadOperationCount, 0)
1649     TEST_FIELD_SIZE  (IO_COUNTERS, WriteOperationCount, 8)
1650     TEST_FIELD_ALIGN (IO_COUNTERS, WriteOperationCount, 8)
1651     TEST_FIELD_OFFSET(IO_COUNTERS, WriteOperationCount, 8)
1652     TEST_FIELD_SIZE  (IO_COUNTERS, OtherOperationCount, 8)
1653     TEST_FIELD_ALIGN (IO_COUNTERS, OtherOperationCount, 8)
1654     TEST_FIELD_OFFSET(IO_COUNTERS, OtherOperationCount, 16)
1655     TEST_FIELD_SIZE  (IO_COUNTERS, ReadTransferCount, 8)
1656     TEST_FIELD_ALIGN (IO_COUNTERS, ReadTransferCount, 8)
1657     TEST_FIELD_OFFSET(IO_COUNTERS, ReadTransferCount, 24)
1658     TEST_FIELD_SIZE  (IO_COUNTERS, WriteTransferCount, 8)
1659     TEST_FIELD_ALIGN (IO_COUNTERS, WriteTransferCount, 8)
1660     TEST_FIELD_OFFSET(IO_COUNTERS, WriteTransferCount, 32)
1661     TEST_FIELD_SIZE  (IO_COUNTERS, OtherTransferCount, 8)
1662     TEST_FIELD_ALIGN (IO_COUNTERS, OtherTransferCount, 8)
1663     TEST_FIELD_OFFSET(IO_COUNTERS, OtherTransferCount, 40)
1664 }
1665
1666 static void test_pack_LANGID(void)
1667 {
1668     /* LANGID */
1669     TEST_TYPE_SIZE   (LANGID, 2)
1670     TEST_TYPE_ALIGN  (LANGID, 2)
1671     TEST_TYPE_UNSIGNED(LANGID)
1672 }
1673
1674 static void test_pack_LARGE_INTEGER(void)
1675 {
1676     /* LARGE_INTEGER */
1677 }
1678
1679 static void test_pack_LCID(void)
1680 {
1681     /* LCID */
1682     TEST_TYPE_SIZE   (LCID, 4)
1683     TEST_TYPE_ALIGN  (LCID, 4)
1684     TEST_TYPE_UNSIGNED(LCID)
1685 }
1686
1687 static void test_pack_LIST_ENTRY(void)
1688 {
1689     /* LIST_ENTRY */
1690     TEST_TYPE_SIZE   (LIST_ENTRY, 16)
1691     TEST_TYPE_ALIGN  (LIST_ENTRY, 8)
1692     TEST_FIELD_SIZE  (LIST_ENTRY, Flink, 8)
1693     TEST_FIELD_ALIGN (LIST_ENTRY, Flink, 8)
1694     TEST_FIELD_OFFSET(LIST_ENTRY, Flink, 0)
1695     TEST_FIELD_SIZE  (LIST_ENTRY, Blink, 8)
1696     TEST_FIELD_ALIGN (LIST_ENTRY, Blink, 8)
1697     TEST_FIELD_OFFSET(LIST_ENTRY, Blink, 8)
1698 }
1699
1700 static void test_pack_LONG(void)
1701 {
1702     /* LONG */
1703     TEST_TYPE_SIZE   (LONG, 4)
1704     TEST_TYPE_ALIGN  (LONG, 4)
1705     TEST_TYPE_SIGNED(LONG)
1706 }
1707
1708 static void test_pack_LONGLONG(void)
1709 {
1710     /* LONGLONG */
1711     TEST_TYPE_SIZE   (LONGLONG, 8)
1712     TEST_TYPE_ALIGN  (LONGLONG, 8)
1713     TEST_TYPE_SIGNED(LONGLONG)
1714 }
1715
1716 static void test_pack_LUID(void)
1717 {
1718     /* LUID */
1719     TEST_TYPE_SIZE   (LUID, 8)
1720     TEST_TYPE_ALIGN  (LUID, 4)
1721     TEST_FIELD_SIZE  (LUID, LowPart, 4)
1722     TEST_FIELD_ALIGN (LUID, LowPart, 4)
1723     TEST_FIELD_OFFSET(LUID, LowPart, 0)
1724     TEST_FIELD_SIZE  (LUID, HighPart, 4)
1725     TEST_FIELD_ALIGN (LUID, HighPart, 4)
1726     TEST_FIELD_OFFSET(LUID, HighPart, 4)
1727 }
1728
1729 static void test_pack_LUID_AND_ATTRIBUTES(void)
1730 {
1731     /* LUID_AND_ATTRIBUTES (pack 4) */
1732     TEST_TYPE_SIZE   (LUID_AND_ATTRIBUTES, 12)
1733     TEST_TYPE_ALIGN  (LUID_AND_ATTRIBUTES, 4)
1734     TEST_FIELD_SIZE  (LUID_AND_ATTRIBUTES, Luid, 8)
1735     TEST_FIELD_ALIGN (LUID_AND_ATTRIBUTES, Luid, 4)
1736     TEST_FIELD_OFFSET(LUID_AND_ATTRIBUTES, Luid, 0)
1737     TEST_FIELD_SIZE  (LUID_AND_ATTRIBUTES, Attributes, 4)
1738     TEST_FIELD_ALIGN (LUID_AND_ATTRIBUTES, Attributes, 4)
1739     TEST_FIELD_OFFSET(LUID_AND_ATTRIBUTES, Attributes, 8)
1740 }
1741
1742 static void test_pack_MEMORY_BASIC_INFORMATION(void)
1743 {
1744     /* MEMORY_BASIC_INFORMATION */
1745     TEST_TYPE_SIZE   (MEMORY_BASIC_INFORMATION, 48)
1746     TEST_TYPE_ALIGN  (MEMORY_BASIC_INFORMATION, 8)
1747     TEST_FIELD_SIZE  (MEMORY_BASIC_INFORMATION, BaseAddress, 8)
1748     TEST_FIELD_ALIGN (MEMORY_BASIC_INFORMATION, BaseAddress, 8)
1749     TEST_FIELD_OFFSET(MEMORY_BASIC_INFORMATION, BaseAddress, 0)
1750     TEST_FIELD_SIZE  (MEMORY_BASIC_INFORMATION, AllocationBase, 8)
1751     TEST_FIELD_ALIGN (MEMORY_BASIC_INFORMATION, AllocationBase, 8)
1752     TEST_FIELD_OFFSET(MEMORY_BASIC_INFORMATION, AllocationBase, 8)
1753     TEST_FIELD_SIZE  (MEMORY_BASIC_INFORMATION, AllocationProtect, 4)
1754     TEST_FIELD_ALIGN (MEMORY_BASIC_INFORMATION, AllocationProtect, 4)
1755     TEST_FIELD_OFFSET(MEMORY_BASIC_INFORMATION, AllocationProtect, 16)
1756     TEST_FIELD_SIZE  (MEMORY_BASIC_INFORMATION, RegionSize, 8)
1757     TEST_FIELD_ALIGN (MEMORY_BASIC_INFORMATION, RegionSize, 8)
1758     TEST_FIELD_OFFSET(MEMORY_BASIC_INFORMATION, RegionSize, 24)
1759     TEST_FIELD_SIZE  (MEMORY_BASIC_INFORMATION, State, 4)
1760     TEST_FIELD_ALIGN (MEMORY_BASIC_INFORMATION, State, 4)
1761     TEST_FIELD_OFFSET(MEMORY_BASIC_INFORMATION, State, 32)
1762     TEST_FIELD_SIZE  (MEMORY_BASIC_INFORMATION, Protect, 4)
1763     TEST_FIELD_ALIGN (MEMORY_BASIC_INFORMATION, Protect, 4)
1764     TEST_FIELD_OFFSET(MEMORY_BASIC_INFORMATION, Protect, 36)
1765     TEST_FIELD_SIZE  (MEMORY_BASIC_INFORMATION, Type, 4)
1766     TEST_FIELD_ALIGN (MEMORY_BASIC_INFORMATION, Type, 4)
1767     TEST_FIELD_OFFSET(MEMORY_BASIC_INFORMATION, Type, 40)
1768 }
1769
1770 static void test_pack_MESSAGE_RESOURCE_BLOCK(void)
1771 {
1772     /* MESSAGE_RESOURCE_BLOCK */
1773     TEST_TYPE_SIZE   (MESSAGE_RESOURCE_BLOCK, 12)
1774     TEST_TYPE_ALIGN  (MESSAGE_RESOURCE_BLOCK, 4)
1775     TEST_FIELD_SIZE  (MESSAGE_RESOURCE_BLOCK, LowId, 4)
1776     TEST_FIELD_ALIGN (MESSAGE_RESOURCE_BLOCK, LowId, 4)
1777     TEST_FIELD_OFFSET(MESSAGE_RESOURCE_BLOCK, LowId, 0)
1778     TEST_FIELD_SIZE  (MESSAGE_RESOURCE_BLOCK, HighId, 4)
1779     TEST_FIELD_ALIGN (MESSAGE_RESOURCE_BLOCK, HighId, 4)
1780     TEST_FIELD_OFFSET(MESSAGE_RESOURCE_BLOCK, HighId, 4)
1781     TEST_FIELD_SIZE  (MESSAGE_RESOURCE_BLOCK, OffsetToEntries, 4)
1782     TEST_FIELD_ALIGN (MESSAGE_RESOURCE_BLOCK, OffsetToEntries, 4)
1783     TEST_FIELD_OFFSET(MESSAGE_RESOURCE_BLOCK, OffsetToEntries, 8)
1784 }
1785
1786 static void test_pack_MESSAGE_RESOURCE_DATA(void)
1787 {
1788     /* MESSAGE_RESOURCE_DATA */
1789     TEST_TYPE_SIZE   (MESSAGE_RESOURCE_DATA, 16)
1790     TEST_TYPE_ALIGN  (MESSAGE_RESOURCE_DATA, 4)
1791     TEST_FIELD_SIZE  (MESSAGE_RESOURCE_DATA, NumberOfBlocks, 4)
1792     TEST_FIELD_ALIGN (MESSAGE_RESOURCE_DATA, NumberOfBlocks, 4)
1793     TEST_FIELD_OFFSET(MESSAGE_RESOURCE_DATA, NumberOfBlocks, 0)
1794     TEST_FIELD_SIZE  (MESSAGE_RESOURCE_DATA, Blocks, 12)
1795     TEST_FIELD_ALIGN (MESSAGE_RESOURCE_DATA, Blocks, 4)
1796     TEST_FIELD_OFFSET(MESSAGE_RESOURCE_DATA, Blocks, 4)
1797 }
1798
1799 static void test_pack_MESSAGE_RESOURCE_ENTRY(void)
1800 {
1801     /* MESSAGE_RESOURCE_ENTRY */
1802     TEST_TYPE_SIZE   (MESSAGE_RESOURCE_ENTRY, 6)
1803     TEST_TYPE_ALIGN  (MESSAGE_RESOURCE_ENTRY, 2)
1804     TEST_FIELD_SIZE  (MESSAGE_RESOURCE_ENTRY, Length, 2)
1805     TEST_FIELD_ALIGN (MESSAGE_RESOURCE_ENTRY, Length, 2)
1806     TEST_FIELD_OFFSET(MESSAGE_RESOURCE_ENTRY, Length, 0)
1807     TEST_FIELD_SIZE  (MESSAGE_RESOURCE_ENTRY, Flags, 2)
1808     TEST_FIELD_ALIGN (MESSAGE_RESOURCE_ENTRY, Flags, 2)
1809     TEST_FIELD_OFFSET(MESSAGE_RESOURCE_ENTRY, Flags, 2)
1810     TEST_FIELD_SIZE  (MESSAGE_RESOURCE_ENTRY, Text, 1)
1811     TEST_FIELD_ALIGN (MESSAGE_RESOURCE_ENTRY, Text, 1)
1812     TEST_FIELD_OFFSET(MESSAGE_RESOURCE_ENTRY, Text, 4)
1813 }
1814
1815 static void test_pack_NT_TIB(void)
1816 {
1817     /* NT_TIB */
1818     TEST_FIELD_SIZE  (NT_TIB, ExceptionList, 8)
1819     TEST_FIELD_ALIGN (NT_TIB, ExceptionList, 8)
1820     TEST_FIELD_OFFSET(NT_TIB, ExceptionList, 0)
1821     TEST_FIELD_SIZE  (NT_TIB, StackBase, 8)
1822     TEST_FIELD_ALIGN (NT_TIB, StackBase, 8)
1823     TEST_FIELD_OFFSET(NT_TIB, StackBase, 8)
1824     TEST_FIELD_SIZE  (NT_TIB, StackLimit, 8)
1825     TEST_FIELD_ALIGN (NT_TIB, StackLimit, 8)
1826     TEST_FIELD_OFFSET(NT_TIB, StackLimit, 16)
1827     TEST_FIELD_SIZE  (NT_TIB, SubSystemTib, 8)
1828     TEST_FIELD_ALIGN (NT_TIB, SubSystemTib, 8)
1829     TEST_FIELD_OFFSET(NT_TIB, SubSystemTib, 24)
1830 }
1831
1832 static void test_pack_OBJECT_TYPE_LIST(void)
1833 {
1834     /* OBJECT_TYPE_LIST */
1835     TEST_TYPE_SIZE   (OBJECT_TYPE_LIST, 16)
1836     TEST_TYPE_ALIGN  (OBJECT_TYPE_LIST, 8)
1837     TEST_FIELD_SIZE  (OBJECT_TYPE_LIST, Level, 2)
1838     TEST_FIELD_ALIGN (OBJECT_TYPE_LIST, Level, 2)
1839     TEST_FIELD_OFFSET(OBJECT_TYPE_LIST, Level, 0)
1840     TEST_FIELD_SIZE  (OBJECT_TYPE_LIST, Sbz, 2)
1841     TEST_FIELD_ALIGN (OBJECT_TYPE_LIST, Sbz, 2)
1842     TEST_FIELD_OFFSET(OBJECT_TYPE_LIST, Sbz, 2)
1843     TEST_FIELD_SIZE  (OBJECT_TYPE_LIST, ObjectType, 8)
1844     TEST_FIELD_ALIGN (OBJECT_TYPE_LIST, ObjectType, 8)
1845     TEST_FIELD_OFFSET(OBJECT_TYPE_LIST, ObjectType, 8)
1846 }
1847
1848 static void test_pack_PACCESS_ALLOWED_ACE(void)
1849 {
1850     /* PACCESS_ALLOWED_ACE */
1851     TEST_TYPE_SIZE   (PACCESS_ALLOWED_ACE, 8)
1852     TEST_TYPE_ALIGN  (PACCESS_ALLOWED_ACE, 8)
1853     TEST_TARGET_SIZE (PACCESS_ALLOWED_ACE, 12)
1854     TEST_TARGET_ALIGN(PACCESS_ALLOWED_ACE, 4)
1855 }
1856
1857 static void test_pack_PACCESS_DENIED_ACE(void)
1858 {
1859     /* PACCESS_DENIED_ACE */
1860     TEST_TYPE_SIZE   (PACCESS_DENIED_ACE, 8)
1861     TEST_TYPE_ALIGN  (PACCESS_DENIED_ACE, 8)
1862     TEST_TARGET_SIZE (PACCESS_DENIED_ACE, 12)
1863     TEST_TARGET_ALIGN(PACCESS_DENIED_ACE, 4)
1864 }
1865
1866 static void test_pack_PACCESS_TOKEN(void)
1867 {
1868     /* PACCESS_TOKEN */
1869     TEST_TYPE_SIZE   (PACCESS_TOKEN, 8)
1870     TEST_TYPE_ALIGN  (PACCESS_TOKEN, 8)
1871 }
1872
1873 static void test_pack_PACE_HEADER(void)
1874 {
1875     /* PACE_HEADER */
1876     TEST_TYPE_SIZE   (PACE_HEADER, 8)
1877     TEST_TYPE_ALIGN  (PACE_HEADER, 8)
1878     TEST_TARGET_SIZE (PACE_HEADER, 4)
1879     TEST_TARGET_ALIGN(PACE_HEADER, 2)
1880 }
1881
1882 static void test_pack_PACL(void)
1883 {
1884     /* PACL */
1885     TEST_TYPE_SIZE   (PACL, 8)
1886     TEST_TYPE_ALIGN  (PACL, 8)
1887     TEST_TARGET_SIZE (PACL, 8)
1888     TEST_TARGET_ALIGN(PACL, 2)
1889 }
1890
1891 static void test_pack_PACL_REVISION_INFORMATION(void)
1892 {
1893     /* PACL_REVISION_INFORMATION */
1894     TEST_TYPE_SIZE   (PACL_REVISION_INFORMATION, 8)
1895     TEST_TYPE_ALIGN  (PACL_REVISION_INFORMATION, 8)
1896     TEST_TARGET_SIZE (PACL_REVISION_INFORMATION, 4)
1897     TEST_TARGET_ALIGN(PACL_REVISION_INFORMATION, 4)
1898 }
1899
1900 static void test_pack_PACL_SIZE_INFORMATION(void)
1901 {
1902     /* PACL_SIZE_INFORMATION */
1903     TEST_TYPE_SIZE   (PACL_SIZE_INFORMATION, 8)
1904     TEST_TYPE_ALIGN  (PACL_SIZE_INFORMATION, 8)
1905     TEST_TARGET_SIZE (PACL_SIZE_INFORMATION, 12)
1906     TEST_TARGET_ALIGN(PACL_SIZE_INFORMATION, 4)
1907 }
1908
1909 static void test_pack_PCCH(void)
1910 {
1911     /* PCCH */
1912     TEST_TYPE_SIZE   (PCCH, 8)
1913     TEST_TYPE_ALIGN  (PCCH, 8)
1914     TEST_TARGET_SIZE (PCCH, 1)
1915     TEST_TARGET_ALIGN(PCCH, 1)
1916 }
1917
1918 static void test_pack_PCH(void)
1919 {
1920     /* PCH */
1921     TEST_TYPE_SIZE   (PCH, 8)
1922     TEST_TYPE_ALIGN  (PCH, 8)
1923     TEST_TARGET_SIZE (PCH, 1)
1924     TEST_TARGET_ALIGN(PCH, 1)
1925 }
1926
1927 static void test_pack_PCSTR(void)
1928 {
1929     /* PCSTR */
1930     TEST_TYPE_SIZE   (PCSTR, 8)
1931     TEST_TYPE_ALIGN  (PCSTR, 8)
1932     TEST_TARGET_SIZE (PCSTR, 1)
1933     TEST_TARGET_ALIGN(PCSTR, 1)
1934 }
1935
1936 static void test_pack_PCTSTR(void)
1937 {
1938     /* PCTSTR */
1939     TEST_TYPE_SIZE   (PCTSTR, 8)
1940     TEST_TYPE_ALIGN  (PCTSTR, 8)
1941 }
1942
1943 static void test_pack_PCWCH(void)
1944 {
1945     /* PCWCH */
1946     TEST_TYPE_SIZE   (PCWCH, 8)
1947     TEST_TYPE_ALIGN  (PCWCH, 8)
1948     TEST_TARGET_SIZE (PCWCH, 2)
1949     TEST_TARGET_ALIGN(PCWCH, 2)
1950 }
1951
1952 static void test_pack_PCWSTR(void)
1953 {
1954     /* PCWSTR */
1955     TEST_TYPE_SIZE   (PCWSTR, 8)
1956     TEST_TYPE_ALIGN  (PCWSTR, 8)
1957     TEST_TARGET_SIZE (PCWSTR, 2)
1958     TEST_TARGET_ALIGN(PCWSTR, 2)
1959 }
1960
1961 static void test_pack_PEXCEPTION_POINTERS(void)
1962 {
1963     /* PEXCEPTION_POINTERS */
1964     TEST_TYPE_SIZE   (PEXCEPTION_POINTERS, 8)
1965     TEST_TYPE_ALIGN  (PEXCEPTION_POINTERS, 8)
1966     TEST_TARGET_SIZE (PEXCEPTION_POINTERS, 16)
1967     TEST_TARGET_ALIGN(PEXCEPTION_POINTERS, 8)
1968 }
1969
1970 static void test_pack_PEXCEPTION_RECORD(void)
1971 {
1972     /* PEXCEPTION_RECORD */
1973     TEST_TYPE_SIZE   (PEXCEPTION_RECORD, 8)
1974     TEST_TYPE_ALIGN  (PEXCEPTION_RECORD, 8)
1975     TEST_TARGET_SIZE (PEXCEPTION_RECORD, 152)
1976     TEST_TARGET_ALIGN(PEXCEPTION_RECORD, 8)
1977 }
1978
1979 static void test_pack_PFLOATING_SAVE_AREA(void)
1980 {
1981     /* PFLOATING_SAVE_AREA */
1982     TEST_TYPE_SIZE   (PFLOATING_SAVE_AREA, 8)
1983     TEST_TYPE_ALIGN  (PFLOATING_SAVE_AREA, 8)
1984     TEST_TARGET_SIZE (PFLOATING_SAVE_AREA, 112)
1985     TEST_TARGET_ALIGN(PFLOATING_SAVE_AREA, 4)
1986 }
1987
1988 static void test_pack_PFPO_DATA(void)
1989 {
1990     /* PFPO_DATA */
1991     TEST_TYPE_SIZE   (PFPO_DATA, 8)
1992     TEST_TYPE_ALIGN  (PFPO_DATA, 8)
1993     TEST_TARGET_SIZE (PFPO_DATA, 16)
1994     TEST_TARGET_ALIGN(PFPO_DATA, 4)
1995 }
1996
1997 static void test_pack_PGENERIC_MAPPING(void)
1998 {
1999     /* PGENERIC_MAPPING */
2000     TEST_TYPE_SIZE   (PGENERIC_MAPPING, 8)
2001     TEST_TYPE_ALIGN  (PGENERIC_MAPPING, 8)
2002     TEST_TARGET_SIZE (PGENERIC_MAPPING, 16)
2003     TEST_TARGET_ALIGN(PGENERIC_MAPPING, 4)
2004 }
2005
2006 static void test_pack_PHANDLE(void)
2007 {
2008     /* PHANDLE */
2009     TEST_TYPE_SIZE   (PHANDLE, 8)
2010     TEST_TYPE_ALIGN  (PHANDLE, 8)
2011     TEST_TARGET_SIZE (PHANDLE, 8)
2012     TEST_TARGET_ALIGN(PHANDLE, 8)
2013 }
2014
2015 static void test_pack_PIMAGE_ARCHIVE_MEMBER_HEADER(void)
2016 {
2017     /* PIMAGE_ARCHIVE_MEMBER_HEADER */
2018     TEST_TYPE_SIZE   (PIMAGE_ARCHIVE_MEMBER_HEADER, 8)
2019     TEST_TYPE_ALIGN  (PIMAGE_ARCHIVE_MEMBER_HEADER, 8)
2020     TEST_TARGET_SIZE (PIMAGE_ARCHIVE_MEMBER_HEADER, 60)
2021     TEST_TARGET_ALIGN(PIMAGE_ARCHIVE_MEMBER_HEADER, 1)
2022 }
2023
2024 static void test_pack_PIMAGE_AUX_SYMBOL(void)
2025 {
2026     /* PIMAGE_AUX_SYMBOL */
2027     TEST_TYPE_SIZE   (PIMAGE_AUX_SYMBOL, 8)
2028     TEST_TYPE_ALIGN  (PIMAGE_AUX_SYMBOL, 8)
2029 }
2030
2031 static void test_pack_PIMAGE_BASE_RELOCATION(void)
2032 {
2033     /* PIMAGE_BASE_RELOCATION */
2034     TEST_TYPE_SIZE   (PIMAGE_BASE_RELOCATION, 8)
2035     TEST_TYPE_ALIGN  (PIMAGE_BASE_RELOCATION, 8)
2036     TEST_TARGET_SIZE (PIMAGE_BASE_RELOCATION, 8)
2037     TEST_TARGET_ALIGN(PIMAGE_BASE_RELOCATION, 4)
2038 }
2039
2040 static void test_pack_PIMAGE_BOUND_FORWARDER_REF(void)
2041 {
2042     /* PIMAGE_BOUND_FORWARDER_REF */
2043     TEST_TYPE_SIZE   (PIMAGE_BOUND_FORWARDER_REF, 8)
2044     TEST_TYPE_ALIGN  (PIMAGE_BOUND_FORWARDER_REF, 8)
2045     TEST_TARGET_SIZE (PIMAGE_BOUND_FORWARDER_REF, 8)
2046     TEST_TARGET_ALIGN(PIMAGE_BOUND_FORWARDER_REF, 4)
2047 }
2048
2049 static void test_pack_PIMAGE_BOUND_IMPORT_DESCRIPTOR(void)
2050 {
2051     /* PIMAGE_BOUND_IMPORT_DESCRIPTOR */
2052     TEST_TYPE_SIZE   (PIMAGE_BOUND_IMPORT_DESCRIPTOR, 8)
2053     TEST_TYPE_ALIGN  (PIMAGE_BOUND_IMPORT_DESCRIPTOR, 8)
2054     TEST_TARGET_SIZE (PIMAGE_BOUND_IMPORT_DESCRIPTOR, 8)
2055     TEST_TARGET_ALIGN(PIMAGE_BOUND_IMPORT_DESCRIPTOR, 4)
2056 }
2057
2058 static void test_pack_PIMAGE_COFF_SYMBOLS_HEADER(void)
2059 {
2060     /* PIMAGE_COFF_SYMBOLS_HEADER */
2061     TEST_TYPE_SIZE   (PIMAGE_COFF_SYMBOLS_HEADER, 8)
2062     TEST_TYPE_ALIGN  (PIMAGE_COFF_SYMBOLS_HEADER, 8)
2063     TEST_TARGET_SIZE (PIMAGE_COFF_SYMBOLS_HEADER, 32)
2064     TEST_TARGET_ALIGN(PIMAGE_COFF_SYMBOLS_HEADER, 4)
2065 }
2066
2067 static void test_pack_PIMAGE_DATA_DIRECTORY(void)
2068 {
2069     /* PIMAGE_DATA_DIRECTORY */
2070     TEST_TYPE_SIZE   (PIMAGE_DATA_DIRECTORY, 8)
2071     TEST_TYPE_ALIGN  (PIMAGE_DATA_DIRECTORY, 8)
2072     TEST_TARGET_SIZE (PIMAGE_DATA_DIRECTORY, 8)
2073     TEST_TARGET_ALIGN(PIMAGE_DATA_DIRECTORY, 4)
2074 }
2075
2076 static void test_pack_PIMAGE_DEBUG_DIRECTORY(void)
2077 {
2078     /* PIMAGE_DEBUG_DIRECTORY */
2079     TEST_TYPE_SIZE   (PIMAGE_DEBUG_DIRECTORY, 8)
2080     TEST_TYPE_ALIGN  (PIMAGE_DEBUG_DIRECTORY, 8)
2081     TEST_TARGET_SIZE (PIMAGE_DEBUG_DIRECTORY, 28)
2082     TEST_TARGET_ALIGN(PIMAGE_DEBUG_DIRECTORY, 4)
2083 }
2084
2085 static void test_pack_PIMAGE_DEBUG_MISC(void)
2086 {
2087     /* PIMAGE_DEBUG_MISC */
2088     TEST_TYPE_SIZE   (PIMAGE_DEBUG_MISC, 8)
2089     TEST_TYPE_ALIGN  (PIMAGE_DEBUG_MISC, 8)
2090     TEST_TARGET_SIZE (PIMAGE_DEBUG_MISC, 16)
2091     TEST_TARGET_ALIGN(PIMAGE_DEBUG_MISC, 4)
2092 }
2093
2094 static void test_pack_PIMAGE_DOS_HEADER(void)
2095 {
2096     /* PIMAGE_DOS_HEADER */
2097     TEST_TYPE_SIZE   (PIMAGE_DOS_HEADER, 8)
2098     TEST_TYPE_ALIGN  (PIMAGE_DOS_HEADER, 8)
2099     TEST_TARGET_SIZE (PIMAGE_DOS_HEADER, 64)
2100     TEST_TARGET_ALIGN(PIMAGE_DOS_HEADER, 2)
2101 }
2102
2103 static void test_pack_PIMAGE_EXPORT_DIRECTORY(void)
2104 {
2105     /* PIMAGE_EXPORT_DIRECTORY */
2106     TEST_TYPE_SIZE   (PIMAGE_EXPORT_DIRECTORY, 8)
2107     TEST_TYPE_ALIGN  (PIMAGE_EXPORT_DIRECTORY, 8)
2108     TEST_TARGET_SIZE (PIMAGE_EXPORT_DIRECTORY, 40)
2109     TEST_TARGET_ALIGN(PIMAGE_EXPORT_DIRECTORY, 4)
2110 }
2111
2112 static void test_pack_PIMAGE_FILE_HEADER(void)
2113 {
2114     /* PIMAGE_FILE_HEADER */
2115     TEST_TYPE_SIZE   (PIMAGE_FILE_HEADER, 8)
2116     TEST_TYPE_ALIGN  (PIMAGE_FILE_HEADER, 8)
2117     TEST_TARGET_SIZE (PIMAGE_FILE_HEADER, 20)
2118     TEST_TARGET_ALIGN(PIMAGE_FILE_HEADER, 4)
2119 }
2120
2121 static void test_pack_PIMAGE_FUNCTION_ENTRY(void)
2122 {
2123     /* PIMAGE_FUNCTION_ENTRY */
2124     TEST_TYPE_SIZE   (PIMAGE_FUNCTION_ENTRY, 8)
2125     TEST_TYPE_ALIGN  (PIMAGE_FUNCTION_ENTRY, 8)
2126     TEST_TARGET_SIZE (PIMAGE_FUNCTION_ENTRY, 12)
2127     TEST_TARGET_ALIGN(PIMAGE_FUNCTION_ENTRY, 4)
2128 }
2129
2130 static void test_pack_PIMAGE_IMPORT_BY_NAME(void)
2131 {
2132     /* PIMAGE_IMPORT_BY_NAME */
2133     TEST_TYPE_SIZE   (PIMAGE_IMPORT_BY_NAME, 8)
2134     TEST_TYPE_ALIGN  (PIMAGE_IMPORT_BY_NAME, 8)
2135     TEST_TARGET_SIZE (PIMAGE_IMPORT_BY_NAME, 4)
2136     TEST_TARGET_ALIGN(PIMAGE_IMPORT_BY_NAME, 2)
2137 }
2138
2139 static void test_pack_PIMAGE_IMPORT_DESCRIPTOR(void)
2140 {
2141     /* PIMAGE_IMPORT_DESCRIPTOR */
2142     TEST_TYPE_SIZE   (PIMAGE_IMPORT_DESCRIPTOR, 8)
2143     TEST_TYPE_ALIGN  (PIMAGE_IMPORT_DESCRIPTOR, 8)
2144 }
2145
2146 static void test_pack_PIMAGE_LINENUMBER(void)
2147 {
2148     /* PIMAGE_LINENUMBER */
2149     TEST_TYPE_SIZE   (PIMAGE_LINENUMBER, 8)
2150     TEST_TYPE_ALIGN  (PIMAGE_LINENUMBER, 8)
2151 }
2152
2153 static void test_pack_PIMAGE_LOAD_CONFIG_DIRECTORY(void)
2154 {
2155     /* PIMAGE_LOAD_CONFIG_DIRECTORY */
2156     TEST_TYPE_SIZE   (PIMAGE_LOAD_CONFIG_DIRECTORY, 8)
2157     TEST_TYPE_ALIGN  (PIMAGE_LOAD_CONFIG_DIRECTORY, 8)
2158     TEST_TARGET_SIZE (PIMAGE_LOAD_CONFIG_DIRECTORY, 88)
2159     TEST_TARGET_ALIGN(PIMAGE_LOAD_CONFIG_DIRECTORY, 8)
2160 }
2161
2162 static void test_pack_PIMAGE_NT_HEADERS(void)
2163 {
2164     /* PIMAGE_NT_HEADERS */
2165     TEST_TYPE_SIZE   (PIMAGE_NT_HEADERS, 8)
2166     TEST_TYPE_ALIGN  (PIMAGE_NT_HEADERS, 8)
2167 }
2168
2169 static void test_pack_PIMAGE_NT_HEADERS32(void)
2170 {
2171     /* PIMAGE_NT_HEADERS32 */
2172     TEST_TYPE_SIZE   (PIMAGE_NT_HEADERS32, 8)
2173     TEST_TYPE_ALIGN  (PIMAGE_NT_HEADERS32, 8)
2174     TEST_TARGET_SIZE (PIMAGE_NT_HEADERS32, 248)
2175     TEST_TARGET_ALIGN(PIMAGE_NT_HEADERS32, 4)
2176 }
2177
2178 static void test_pack_PIMAGE_NT_HEADERS64(void)
2179 {
2180     /* PIMAGE_NT_HEADERS64 */
2181     TEST_TYPE_SIZE   (PIMAGE_NT_HEADERS64, 8)
2182     TEST_TYPE_ALIGN  (PIMAGE_NT_HEADERS64, 8)
2183     TEST_TARGET_SIZE (PIMAGE_NT_HEADERS64, 264)
2184     TEST_TARGET_ALIGN(PIMAGE_NT_HEADERS64, 8)
2185 }
2186
2187 static void test_pack_PIMAGE_OPTIONAL_HEADER(void)
2188 {
2189     /* PIMAGE_OPTIONAL_HEADER */
2190     TEST_TYPE_SIZE   (PIMAGE_OPTIONAL_HEADER, 8)
2191     TEST_TYPE_ALIGN  (PIMAGE_OPTIONAL_HEADER, 8)
2192 }
2193
2194 static void test_pack_PIMAGE_OPTIONAL_HEADER32(void)
2195 {
2196     /* PIMAGE_OPTIONAL_HEADER32 */
2197     TEST_TYPE_SIZE   (PIMAGE_OPTIONAL_HEADER32, 8)
2198     TEST_TYPE_ALIGN  (PIMAGE_OPTIONAL_HEADER32, 8)
2199     TEST_TARGET_SIZE (PIMAGE_OPTIONAL_HEADER32, 224)
2200     TEST_TARGET_ALIGN(PIMAGE_OPTIONAL_HEADER32, 4)
2201 }
2202
2203 static void test_pack_PIMAGE_OPTIONAL_HEADER64(void)
2204 {
2205     /* PIMAGE_OPTIONAL_HEADER64 */
2206     TEST_TYPE_SIZE   (PIMAGE_OPTIONAL_HEADER64, 8)
2207     TEST_TYPE_ALIGN  (PIMAGE_OPTIONAL_HEADER64, 8)
2208     TEST_TARGET_SIZE (PIMAGE_OPTIONAL_HEADER64, 240)
2209     TEST_TARGET_ALIGN(PIMAGE_OPTIONAL_HEADER64, 8)
2210 }
2211
2212 static void test_pack_PIMAGE_OS2_HEADER(void)
2213 {
2214     /* PIMAGE_OS2_HEADER */
2215     TEST_TYPE_SIZE   (PIMAGE_OS2_HEADER, 8)
2216     TEST_TYPE_ALIGN  (PIMAGE_OS2_HEADER, 8)
2217     TEST_TARGET_SIZE (PIMAGE_OS2_HEADER, 64)
2218     TEST_TARGET_ALIGN(PIMAGE_OS2_HEADER, 2)
2219 }
2220
2221 static void test_pack_PIMAGE_RELOCATION(void)
2222 {
2223     /* PIMAGE_RELOCATION */
2224     TEST_TYPE_SIZE   (PIMAGE_RELOCATION, 8)
2225     TEST_TYPE_ALIGN  (PIMAGE_RELOCATION, 8)
2226 }
2227
2228 static void test_pack_PIMAGE_RESOURCE_DATA_ENTRY(void)
2229 {
2230     /* PIMAGE_RESOURCE_DATA_ENTRY */
2231     TEST_TYPE_SIZE   (PIMAGE_RESOURCE_DATA_ENTRY, 8)
2232     TEST_TYPE_ALIGN  (PIMAGE_RESOURCE_DATA_ENTRY, 8)
2233     TEST_TARGET_SIZE (PIMAGE_RESOURCE_DATA_ENTRY, 16)
2234     TEST_TARGET_ALIGN(PIMAGE_RESOURCE_DATA_ENTRY, 4)
2235 }
2236
2237 static void test_pack_PIMAGE_RESOURCE_DIRECTORY(void)
2238 {
2239     /* PIMAGE_RESOURCE_DIRECTORY */
2240     TEST_TYPE_SIZE   (PIMAGE_RESOURCE_DIRECTORY, 8)
2241     TEST_TYPE_ALIGN  (PIMAGE_RESOURCE_DIRECTORY, 8)
2242     TEST_TARGET_SIZE (PIMAGE_RESOURCE_DIRECTORY, 16)
2243     TEST_TARGET_ALIGN(PIMAGE_RESOURCE_DIRECTORY, 4)
2244 }
2245
2246 static void test_pack_PIMAGE_RESOURCE_DIRECTORY_ENTRY(void)
2247 {
2248     /* PIMAGE_RESOURCE_DIRECTORY_ENTRY */
2249     TEST_TYPE_SIZE   (PIMAGE_RESOURCE_DIRECTORY_ENTRY, 8)
2250     TEST_TYPE_ALIGN  (PIMAGE_RESOURCE_DIRECTORY_ENTRY, 8)
2251 }
2252
2253 static void test_pack_PIMAGE_RESOURCE_DIRECTORY_STRING(void)
2254 {
2255     /* PIMAGE_RESOURCE_DIRECTORY_STRING */
2256     TEST_TYPE_SIZE   (PIMAGE_RESOURCE_DIRECTORY_STRING, 8)
2257     TEST_TYPE_ALIGN  (PIMAGE_RESOURCE_DIRECTORY_STRING, 8)
2258     TEST_TARGET_SIZE (PIMAGE_RESOURCE_DIRECTORY_STRING, 4)
2259     TEST_TARGET_ALIGN(PIMAGE_RESOURCE_DIRECTORY_STRING, 2)
2260 }
2261
2262 static void test_pack_PIMAGE_RESOURCE_DIR_STRING_U(void)
2263 {
2264     /* PIMAGE_RESOURCE_DIR_STRING_U */
2265     TEST_TYPE_SIZE   (PIMAGE_RESOURCE_DIR_STRING_U, 8)
2266     TEST_TYPE_ALIGN  (PIMAGE_RESOURCE_DIR_STRING_U, 8)
2267     TEST_TARGET_SIZE (PIMAGE_RESOURCE_DIR_STRING_U, 4)
2268     TEST_TARGET_ALIGN(PIMAGE_RESOURCE_DIR_STRING_U, 2)
2269 }
2270
2271 static void test_pack_PIMAGE_SECTION_HEADER(void)
2272 {
2273     /* PIMAGE_SECTION_HEADER */
2274     TEST_TYPE_SIZE   (PIMAGE_SECTION_HEADER, 8)
2275     TEST_TYPE_ALIGN  (PIMAGE_SECTION_HEADER, 8)
2276 }
2277
2278 static void test_pack_PIMAGE_SEPARATE_DEBUG_HEADER(void)
2279 {
2280     /* PIMAGE_SEPARATE_DEBUG_HEADER */
2281     TEST_TYPE_SIZE   (PIMAGE_SEPARATE_DEBUG_HEADER, 8)
2282     TEST_TYPE_ALIGN  (PIMAGE_SEPARATE_DEBUG_HEADER, 8)
2283     TEST_TARGET_SIZE (PIMAGE_SEPARATE_DEBUG_HEADER, 48)
2284     TEST_TARGET_ALIGN(PIMAGE_SEPARATE_DEBUG_HEADER, 4)
2285 }
2286
2287 static void test_pack_PIMAGE_SYMBOL(void)
2288 {
2289     /* PIMAGE_SYMBOL */
2290     TEST_TYPE_SIZE   (PIMAGE_SYMBOL, 8)
2291     TEST_TYPE_ALIGN  (PIMAGE_SYMBOL, 8)
2292 }
2293
2294 static void test_pack_PIMAGE_THUNK_DATA(void)
2295 {
2296     /* PIMAGE_THUNK_DATA */
2297     TEST_TYPE_SIZE   (PIMAGE_THUNK_DATA, 8)
2298     TEST_TYPE_ALIGN  (PIMAGE_THUNK_DATA, 8)
2299 }
2300
2301 static void test_pack_PIMAGE_TLS_CALLBACK(void)
2302 {
2303     /* PIMAGE_TLS_CALLBACK */
2304     TEST_TYPE_SIZE   (PIMAGE_TLS_CALLBACK, 8)
2305     TEST_TYPE_ALIGN  (PIMAGE_TLS_CALLBACK, 8)
2306 }
2307
2308 static void test_pack_PIMAGE_TLS_DIRECTORY(void)
2309 {
2310     /* PIMAGE_TLS_DIRECTORY */
2311     TEST_TYPE_SIZE   (PIMAGE_TLS_DIRECTORY, 8)
2312     TEST_TYPE_ALIGN  (PIMAGE_TLS_DIRECTORY, 8)
2313 }
2314
2315 static void test_pack_PIMAGE_VXD_HEADER(void)
2316 {
2317     /* PIMAGE_VXD_HEADER */
2318     TEST_TYPE_SIZE   (PIMAGE_VXD_HEADER, 8)
2319     TEST_TYPE_ALIGN  (PIMAGE_VXD_HEADER, 8)
2320     TEST_TARGET_SIZE (PIMAGE_VXD_HEADER, 196)
2321     TEST_TARGET_ALIGN(PIMAGE_VXD_HEADER, 2)
2322 }
2323
2324 static void test_pack_PIO_COUNTERS(void)
2325 {
2326     /* PIO_COUNTERS */
2327     TEST_TYPE_SIZE   (PIO_COUNTERS, 8)
2328     TEST_TYPE_ALIGN  (PIO_COUNTERS, 8)
2329     TEST_TARGET_SIZE (PIO_COUNTERS, 48)
2330     TEST_TARGET_ALIGN(PIO_COUNTERS, 8)
2331 }
2332
2333 static void test_pack_PISECURITY_DESCRIPTOR(void)
2334 {
2335     /* PISECURITY_DESCRIPTOR */
2336     TEST_TYPE_SIZE   (PISECURITY_DESCRIPTOR, 8)
2337     TEST_TYPE_ALIGN  (PISECURITY_DESCRIPTOR, 8)
2338     TEST_TARGET_SIZE (PISECURITY_DESCRIPTOR, 40)
2339     TEST_TARGET_ALIGN(PISECURITY_DESCRIPTOR, 8)
2340 }
2341
2342 static void test_pack_PISECURITY_DESCRIPTOR_RELATIVE(void)
2343 {
2344     /* PISECURITY_DESCRIPTOR_RELATIVE */
2345     TEST_TYPE_SIZE   (PISECURITY_DESCRIPTOR_RELATIVE, 8)
2346     TEST_TYPE_ALIGN  (PISECURITY_DESCRIPTOR_RELATIVE, 8)
2347     TEST_TARGET_SIZE (PISECURITY_DESCRIPTOR_RELATIVE, 20)
2348     TEST_TARGET_ALIGN(PISECURITY_DESCRIPTOR_RELATIVE, 4)
2349 }
2350
2351 static void test_pack_PISID(void)
2352 {
2353     /* PISID */
2354     TEST_TYPE_SIZE   (PISID, 8)
2355     TEST_TYPE_ALIGN  (PISID, 8)
2356     TEST_TARGET_SIZE (PISID, 12)
2357     TEST_TARGET_ALIGN(PISID, 4)
2358 }
2359
2360 static void test_pack_PLARGE_INTEGER(void)
2361 {
2362     /* PLARGE_INTEGER */
2363     TEST_TYPE_SIZE   (PLARGE_INTEGER, 8)
2364     TEST_TYPE_ALIGN  (PLARGE_INTEGER, 8)
2365 }
2366
2367 static void test_pack_PLIST_ENTRY(void)
2368 {
2369     /* PLIST_ENTRY */
2370     TEST_TYPE_SIZE   (PLIST_ENTRY, 8)
2371     TEST_TYPE_ALIGN  (PLIST_ENTRY, 8)
2372     TEST_TARGET_SIZE (PLIST_ENTRY, 16)
2373     TEST_TARGET_ALIGN(PLIST_ENTRY, 8)
2374 }
2375
2376 static void test_pack_PLUID(void)
2377 {
2378     /* PLUID */
2379     TEST_TYPE_SIZE   (PLUID, 8)
2380     TEST_TYPE_ALIGN  (PLUID, 8)
2381     TEST_TARGET_SIZE (PLUID, 8)
2382     TEST_TARGET_ALIGN(PLUID, 4)
2383 }
2384
2385 static void test_pack_PLUID_AND_ATTRIBUTES(void)
2386 {
2387     /* PLUID_AND_ATTRIBUTES */
2388     TEST_TYPE_SIZE   (PLUID_AND_ATTRIBUTES, 8)
2389     TEST_TYPE_ALIGN  (PLUID_AND_ATTRIBUTES, 8)
2390     TEST_TARGET_SIZE (PLUID_AND_ATTRIBUTES, 12)
2391     TEST_TARGET_ALIGN(PLUID_AND_ATTRIBUTES, 4)
2392 }
2393
2394 static void test_pack_PMEMORY_BASIC_INFORMATION(void)
2395 {
2396     /* PMEMORY_BASIC_INFORMATION */
2397     TEST_TYPE_SIZE   (PMEMORY_BASIC_INFORMATION, 8)
2398     TEST_TYPE_ALIGN  (PMEMORY_BASIC_INFORMATION, 8)
2399     TEST_TARGET_SIZE (PMEMORY_BASIC_INFORMATION, 48)
2400     TEST_TARGET_ALIGN(PMEMORY_BASIC_INFORMATION, 8)
2401 }
2402
2403 static void test_pack_PMESSAGE_RESOURCE_BLOCK(void)
2404 {
2405     /* PMESSAGE_RESOURCE_BLOCK */
2406     TEST_TYPE_SIZE   (PMESSAGE_RESOURCE_BLOCK, 8)
2407     TEST_TYPE_ALIGN  (PMESSAGE_RESOURCE_BLOCK, 8)
2408     TEST_TARGET_SIZE (PMESSAGE_RESOURCE_BLOCK, 12)
2409     TEST_TARGET_ALIGN(PMESSAGE_RESOURCE_BLOCK, 4)
2410 }
2411
2412 static void test_pack_PMESSAGE_RESOURCE_DATA(void)
2413 {
2414     /* PMESSAGE_RESOURCE_DATA */
2415     TEST_TYPE_SIZE   (PMESSAGE_RESOURCE_DATA, 8)
2416     TEST_TYPE_ALIGN  (PMESSAGE_RESOURCE_DATA, 8)
2417     TEST_TARGET_SIZE (PMESSAGE_RESOURCE_DATA, 16)
2418     TEST_TARGET_ALIGN(PMESSAGE_RESOURCE_DATA, 4)
2419 }
2420
2421 static void test_pack_PMESSAGE_RESOURCE_ENTRY(void)
2422 {
2423     /* PMESSAGE_RESOURCE_ENTRY */
2424     TEST_TYPE_SIZE   (PMESSAGE_RESOURCE_ENTRY, 8)
2425     TEST_TYPE_ALIGN  (PMESSAGE_RESOURCE_ENTRY, 8)
2426     TEST_TARGET_SIZE (PMESSAGE_RESOURCE_ENTRY, 6)
2427     TEST_TARGET_ALIGN(PMESSAGE_RESOURCE_ENTRY, 2)
2428 }
2429
2430 static void test_pack_PNT_TIB(void)
2431 {
2432     /* PNT_TIB */
2433     TEST_TYPE_SIZE   (PNT_TIB, 8)
2434     TEST_TYPE_ALIGN  (PNT_TIB, 8)
2435 }
2436
2437 static void test_pack_POBJECT_TYPE_LIST(void)
2438 {
2439     /* POBJECT_TYPE_LIST */
2440     TEST_TYPE_SIZE   (POBJECT_TYPE_LIST, 8)
2441     TEST_TYPE_ALIGN  (POBJECT_TYPE_LIST, 8)
2442     TEST_TARGET_SIZE (POBJECT_TYPE_LIST, 16)
2443     TEST_TARGET_ALIGN(POBJECT_TYPE_LIST, 8)
2444 }
2445
2446 static void test_pack_PPRIVILEGE_SET(void)
2447 {
2448     /* PPRIVILEGE_SET */
2449     TEST_TYPE_SIZE   (PPRIVILEGE_SET, 8)
2450     TEST_TYPE_ALIGN  (PPRIVILEGE_SET, 8)
2451     TEST_TARGET_SIZE (PPRIVILEGE_SET, 20)
2452     TEST_TARGET_ALIGN(PPRIVILEGE_SET, 4)
2453 }
2454
2455 static void test_pack_PRIVILEGE_SET(void)
2456 {
2457     /* PRIVILEGE_SET */
2458     TEST_TYPE_SIZE   (PRIVILEGE_SET, 20)
2459     TEST_TYPE_ALIGN  (PRIVILEGE_SET, 4)
2460     TEST_FIELD_SIZE  (PRIVILEGE_SET, PrivilegeCount, 4)
2461     TEST_FIELD_ALIGN (PRIVILEGE_SET, PrivilegeCount, 4)
2462     TEST_FIELD_OFFSET(PRIVILEGE_SET, PrivilegeCount, 0)
2463     TEST_FIELD_SIZE  (PRIVILEGE_SET, Control, 4)
2464     TEST_FIELD_ALIGN (PRIVILEGE_SET, Control, 4)
2465     TEST_FIELD_OFFSET(PRIVILEGE_SET, Control, 4)
2466     TEST_FIELD_SIZE  (PRIVILEGE_SET, Privilege, 12)
2467     TEST_FIELD_ALIGN (PRIVILEGE_SET, Privilege, 4)
2468     TEST_FIELD_OFFSET(PRIVILEGE_SET, Privilege, 8)
2469 }
2470
2471 static void test_pack_PRLIST_ENTRY(void)
2472 {
2473     /* PRLIST_ENTRY */
2474     TEST_TYPE_SIZE   (PRLIST_ENTRY, 8)
2475     TEST_TYPE_ALIGN  (PRLIST_ENTRY, 8)
2476     TEST_TARGET_SIZE (PRLIST_ENTRY, 16)
2477     TEST_TARGET_ALIGN(PRLIST_ENTRY, 8)
2478 }
2479
2480 static void test_pack_PRTL_CRITICAL_SECTION(void)
2481 {
2482     /* PRTL_CRITICAL_SECTION */
2483     TEST_TYPE_SIZE   (PRTL_CRITICAL_SECTION, 8)
2484     TEST_TYPE_ALIGN  (PRTL_CRITICAL_SECTION, 8)
2485     TEST_TARGET_SIZE (PRTL_CRITICAL_SECTION, 40)
2486     TEST_TARGET_ALIGN(PRTL_CRITICAL_SECTION, 8)
2487 }
2488
2489 static void test_pack_PRTL_CRITICAL_SECTION_DEBUG(void)
2490 {
2491     /* PRTL_CRITICAL_SECTION_DEBUG */
2492     TEST_TYPE_SIZE   (PRTL_CRITICAL_SECTION_DEBUG, 8)
2493     TEST_TYPE_ALIGN  (PRTL_CRITICAL_SECTION_DEBUG, 8)
2494 }
2495
2496 static void test_pack_PRTL_OSVERSIONINFOEXW(void)
2497 {
2498     /* PRTL_OSVERSIONINFOEXW */
2499     TEST_TYPE_SIZE   (PRTL_OSVERSIONINFOEXW, 8)
2500     TEST_TYPE_ALIGN  (PRTL_OSVERSIONINFOEXW, 8)
2501     TEST_TARGET_SIZE (PRTL_OSVERSIONINFOEXW, 284)
2502     TEST_TARGET_ALIGN(PRTL_OSVERSIONINFOEXW, 4)
2503 }
2504
2505 static void test_pack_PRTL_OSVERSIONINFOW(void)
2506 {
2507     /* PRTL_OSVERSIONINFOW */
2508     TEST_TYPE_SIZE   (PRTL_OSVERSIONINFOW, 8)
2509     TEST_TYPE_ALIGN  (PRTL_OSVERSIONINFOW, 8)
2510     TEST_TARGET_SIZE (PRTL_OSVERSIONINFOW, 276)
2511     TEST_TARGET_ALIGN(PRTL_OSVERSIONINFOW, 4)
2512 }
2513
2514 static void test_pack_PRTL_RESOURCE_DEBUG(void)
2515 {
2516     /* PRTL_RESOURCE_DEBUG */
2517     TEST_TYPE_SIZE   (PRTL_RESOURCE_DEBUG, 8)
2518     TEST_TYPE_ALIGN  (PRTL_RESOURCE_DEBUG, 8)
2519 }
2520
2521 static void test_pack_PSECURITY_DESCRIPTOR(void)
2522 {
2523     /* PSECURITY_DESCRIPTOR */
2524     TEST_TYPE_SIZE   (PSECURITY_DESCRIPTOR, 8)
2525     TEST_TYPE_ALIGN  (PSECURITY_DESCRIPTOR, 8)
2526 }
2527
2528 static void test_pack_PSECURITY_QUALITY_OF_SERVICE(void)
2529 {
2530     /* PSECURITY_QUALITY_OF_SERVICE */
2531     TEST_TYPE_SIZE   (PSECURITY_QUALITY_OF_SERVICE, 8)
2532     TEST_TYPE_ALIGN  (PSECURITY_QUALITY_OF_SERVICE, 8)
2533 }
2534
2535 static void test_pack_PSID(void)
2536 {
2537     /* PSID */
2538     TEST_TYPE_SIZE   (PSID, 8)
2539     TEST_TYPE_ALIGN  (PSID, 8)
2540 }
2541
2542 static void test_pack_PSID_IDENTIFIER_AUTHORITY(void)
2543 {
2544     /* PSID_IDENTIFIER_AUTHORITY */
2545     TEST_TYPE_SIZE   (PSID_IDENTIFIER_AUTHORITY, 8)
2546     TEST_TYPE_ALIGN  (PSID_IDENTIFIER_AUTHORITY, 8)
2547     TEST_TARGET_SIZE (PSID_IDENTIFIER_AUTHORITY, 6)
2548     TEST_TARGET_ALIGN(PSID_IDENTIFIER_AUTHORITY, 1)
2549 }
2550
2551 static void test_pack_PSINGLE_LIST_ENTRY(void)
2552 {
2553     /* PSINGLE_LIST_ENTRY */
2554     TEST_TYPE_SIZE   (PSINGLE_LIST_ENTRY, 8)
2555     TEST_TYPE_ALIGN  (PSINGLE_LIST_ENTRY, 8)
2556     TEST_TARGET_SIZE (PSINGLE_LIST_ENTRY, 8)
2557     TEST_TARGET_ALIGN(PSINGLE_LIST_ENTRY, 8)
2558 }
2559
2560 static void test_pack_PSTR(void)
2561 {
2562     /* PSTR */
2563     TEST_TYPE_SIZE   (PSTR, 8)
2564     TEST_TYPE_ALIGN  (PSTR, 8)
2565     TEST_TARGET_SIZE (PSTR, 1)
2566     TEST_TARGET_ALIGN(PSTR, 1)
2567 }
2568
2569 static void test_pack_PSYSTEM_ALARM_ACE(void)
2570 {
2571     /* PSYSTEM_ALARM_ACE */
2572     TEST_TYPE_SIZE   (PSYSTEM_ALARM_ACE, 8)
2573     TEST_TYPE_ALIGN  (PSYSTEM_ALARM_ACE, 8)
2574     TEST_TARGET_SIZE (PSYSTEM_ALARM_ACE, 12)
2575     TEST_TARGET_ALIGN(PSYSTEM_ALARM_ACE, 4)
2576 }
2577
2578 static void test_pack_PSYSTEM_AUDIT_ACE(void)
2579 {
2580     /* PSYSTEM_AUDIT_ACE */
2581     TEST_TYPE_SIZE   (PSYSTEM_AUDIT_ACE, 8)
2582     TEST_TYPE_ALIGN  (PSYSTEM_AUDIT_ACE, 8)
2583     TEST_TARGET_SIZE (PSYSTEM_AUDIT_ACE, 12)
2584     TEST_TARGET_ALIGN(PSYSTEM_AUDIT_ACE, 4)
2585 }
2586
2587 static void test_pack_PTOKEN_GROUPS(void)
2588 {
2589     /* PTOKEN_GROUPS */
2590     TEST_TYPE_SIZE   (PTOKEN_GROUPS, 8)
2591     TEST_TYPE_ALIGN  (PTOKEN_GROUPS, 8)
2592     TEST_TARGET_SIZE (PTOKEN_GROUPS, 24)
2593     TEST_TARGET_ALIGN(PTOKEN_GROUPS, 8)
2594 }
2595
2596 static void test_pack_PTOKEN_PRIVILEGES(void)
2597 {
2598     /* PTOKEN_PRIVILEGES */
2599     TEST_TYPE_SIZE   (PTOKEN_PRIVILEGES, 8)
2600     TEST_TYPE_ALIGN  (PTOKEN_PRIVILEGES, 8)
2601     TEST_TARGET_SIZE (PTOKEN_PRIVILEGES, 16)
2602     TEST_TARGET_ALIGN(PTOKEN_PRIVILEGES, 4)
2603 }
2604
2605 static void test_pack_PTOKEN_USER(void)
2606 {
2607     /* PTOKEN_USER */
2608     TEST_TYPE_SIZE   (PTOKEN_USER, 8)
2609     TEST_TYPE_ALIGN  (PTOKEN_USER, 8)
2610     TEST_TARGET_SIZE (PTOKEN_USER, 16)
2611     TEST_TARGET_ALIGN(PTOKEN_USER, 8)
2612 }
2613
2614 static void test_pack_PTSTR(void)
2615 {
2616     /* PTSTR */
2617     TEST_TYPE_SIZE   (PTSTR, 8)
2618     TEST_TYPE_ALIGN  (PTSTR, 8)
2619 }
2620
2621 static void test_pack_PULARGE_INTEGER(void)
2622 {
2623     /* PULARGE_INTEGER */
2624     TEST_TYPE_SIZE   (PULARGE_INTEGER, 8)
2625     TEST_TYPE_ALIGN  (PULARGE_INTEGER, 8)
2626 }
2627
2628 static void test_pack_PVECTORED_EXCEPTION_HANDLER(void)
2629 {
2630     /* PVECTORED_EXCEPTION_HANDLER */
2631     TEST_TYPE_SIZE   (PVECTORED_EXCEPTION_HANDLER, 8)
2632     TEST_TYPE_ALIGN  (PVECTORED_EXCEPTION_HANDLER, 8)
2633 }
2634
2635 static void test_pack_PVOID(void)
2636 {
2637     /* PVOID */
2638     TEST_TYPE_SIZE   (PVOID, 8)
2639     TEST_TYPE_ALIGN  (PVOID, 8)
2640 }
2641
2642 static void test_pack_PWCH(void)
2643 {
2644     /* PWCH */
2645     TEST_TYPE_SIZE   (PWCH, 8)
2646     TEST_TYPE_ALIGN  (PWCH, 8)
2647     TEST_TARGET_SIZE (PWCH, 2)
2648     TEST_TARGET_ALIGN(PWCH, 2)
2649 }
2650
2651 static void test_pack_PWSTR(void)
2652 {
2653     /* PWSTR */
2654     TEST_TYPE_SIZE   (PWSTR, 8)
2655     TEST_TYPE_ALIGN  (PWSTR, 8)
2656     TEST_TARGET_SIZE (PWSTR, 2)
2657     TEST_TARGET_ALIGN(PWSTR, 2)
2658 }
2659
2660 static void test_pack_RTL_CRITICAL_SECTION(void)
2661 {
2662     /* RTL_CRITICAL_SECTION */
2663     TEST_TYPE_SIZE   (RTL_CRITICAL_SECTION, 40)
2664     TEST_TYPE_ALIGN  (RTL_CRITICAL_SECTION, 8)
2665     TEST_FIELD_SIZE  (RTL_CRITICAL_SECTION, DebugInfo, 8)
2666     TEST_FIELD_ALIGN (RTL_CRITICAL_SECTION, DebugInfo, 8)
2667     TEST_FIELD_OFFSET(RTL_CRITICAL_SECTION, DebugInfo, 0)
2668     TEST_FIELD_SIZE  (RTL_CRITICAL_SECTION, LockCount, 4)
2669     TEST_FIELD_ALIGN (RTL_CRITICAL_SECTION, LockCount, 4)
2670     TEST_FIELD_OFFSET(RTL_CRITICAL_SECTION, LockCount, 8)
2671     TEST_FIELD_SIZE  (RTL_CRITICAL_SECTION, RecursionCount, 4)
2672     TEST_FIELD_ALIGN (RTL_CRITICAL_SECTION, RecursionCount, 4)
2673     TEST_FIELD_OFFSET(RTL_CRITICAL_SECTION, RecursionCount, 12)
2674     TEST_FIELD_SIZE  (RTL_CRITICAL_SECTION, OwningThread, 8)
2675     TEST_FIELD_ALIGN (RTL_CRITICAL_SECTION, OwningThread, 8)
2676     TEST_FIELD_OFFSET(RTL_CRITICAL_SECTION, OwningThread, 16)
2677     TEST_FIELD_SIZE  (RTL_CRITICAL_SECTION, LockSemaphore, 8)
2678     TEST_FIELD_ALIGN (RTL_CRITICAL_SECTION, LockSemaphore, 8)
2679     TEST_FIELD_OFFSET(RTL_CRITICAL_SECTION, LockSemaphore, 24)
2680     TEST_FIELD_SIZE  (RTL_CRITICAL_SECTION, SpinCount, 8)
2681     TEST_FIELD_ALIGN (RTL_CRITICAL_SECTION, SpinCount, 8)
2682     TEST_FIELD_OFFSET(RTL_CRITICAL_SECTION, SpinCount, 32)
2683 }
2684
2685 static void test_pack_RTL_CRITICAL_SECTION_DEBUG(void)
2686 {
2687     /* RTL_CRITICAL_SECTION_DEBUG */
2688     TEST_FIELD_SIZE  (RTL_CRITICAL_SECTION_DEBUG, Type, 2)
2689     TEST_FIELD_ALIGN (RTL_CRITICAL_SECTION_DEBUG, Type, 2)
2690     TEST_FIELD_OFFSET(RTL_CRITICAL_SECTION_DEBUG, Type, 0)
2691     TEST_FIELD_SIZE  (RTL_CRITICAL_SECTION_DEBUG, CreatorBackTraceIndex, 2)
2692     TEST_FIELD_ALIGN (RTL_CRITICAL_SECTION_DEBUG, CreatorBackTraceIndex, 2)
2693     TEST_FIELD_OFFSET(RTL_CRITICAL_SECTION_DEBUG, CreatorBackTraceIndex, 2)
2694     TEST_FIELD_SIZE  (RTL_CRITICAL_SECTION_DEBUG, CriticalSection, 8)
2695     TEST_FIELD_ALIGN (RTL_CRITICAL_SECTION_DEBUG, CriticalSection, 8)
2696     TEST_FIELD_OFFSET(RTL_CRITICAL_SECTION_DEBUG, CriticalSection, 8)
2697     TEST_FIELD_SIZE  (RTL_CRITICAL_SECTION_DEBUG, ProcessLocksList, 16)
2698     TEST_FIELD_ALIGN (RTL_CRITICAL_SECTION_DEBUG, ProcessLocksList, 8)
2699     TEST_FIELD_OFFSET(RTL_CRITICAL_SECTION_DEBUG, ProcessLocksList, 16)
2700     TEST_FIELD_SIZE  (RTL_CRITICAL_SECTION_DEBUG, EntryCount, 4)
2701     TEST_FIELD_ALIGN (RTL_CRITICAL_SECTION_DEBUG, EntryCount, 4)
2702     TEST_FIELD_OFFSET(RTL_CRITICAL_SECTION_DEBUG, EntryCount, 32)
2703     TEST_FIELD_SIZE  (RTL_CRITICAL_SECTION_DEBUG, ContentionCount, 4)
2704     TEST_FIELD_ALIGN (RTL_CRITICAL_SECTION_DEBUG, ContentionCount, 4)
2705     TEST_FIELD_OFFSET(RTL_CRITICAL_SECTION_DEBUG, ContentionCount, 36)
2706 }
2707
2708 static void test_pack_RTL_OSVERSIONINFOEXW(void)
2709 {
2710     /* RTL_OSVERSIONINFOEXW */
2711     TEST_TYPE_SIZE   (RTL_OSVERSIONINFOEXW, 284)
2712     TEST_TYPE_ALIGN  (RTL_OSVERSIONINFOEXW, 4)
2713     TEST_FIELD_SIZE  (RTL_OSVERSIONINFOEXW, dwOSVersionInfoSize, 4)
2714     TEST_FIELD_ALIGN (RTL_OSVERSIONINFOEXW, dwOSVersionInfoSize, 4)
2715     TEST_FIELD_OFFSET(RTL_OSVERSIONINFOEXW, dwOSVersionInfoSize, 0)
2716     TEST_FIELD_SIZE  (RTL_OSVERSIONINFOEXW, dwMajorVersion, 4)
2717     TEST_FIELD_ALIGN (RTL_OSVERSIONINFOEXW, dwMajorVersion, 4)
2718     TEST_FIELD_OFFSET(RTL_OSVERSIONINFOEXW, dwMajorVersion, 4)
2719     TEST_FIELD_SIZE  (RTL_OSVERSIONINFOEXW, dwMinorVersion, 4)
2720     TEST_FIELD_ALIGN (RTL_OSVERSIONINFOEXW, dwMinorVersion, 4)
2721     TEST_FIELD_OFFSET(RTL_OSVERSIONINFOEXW, dwMinorVersion, 8)
2722     TEST_FIELD_SIZE  (RTL_OSVERSIONINFOEXW, dwBuildNumber, 4)
2723     TEST_FIELD_ALIGN (RTL_OSVERSIONINFOEXW, dwBuildNumber, 4)
2724     TEST_FIELD_OFFSET(RTL_OSVERSIONINFOEXW, dwBuildNumber, 12)
2725     TEST_FIELD_SIZE  (RTL_OSVERSIONINFOEXW, dwPlatformId, 4)
2726     TEST_FIELD_ALIGN (RTL_OSVERSIONINFOEXW, dwPlatformId, 4)
2727     TEST_FIELD_OFFSET(RTL_OSVERSIONINFOEXW, dwPlatformId, 16)
2728     TEST_FIELD_SIZE  (RTL_OSVERSIONINFOEXW, szCSDVersion, 256)
2729     TEST_FIELD_ALIGN (RTL_OSVERSIONINFOEXW, szCSDVersion, 2)
2730     TEST_FIELD_OFFSET(RTL_OSVERSIONINFOEXW, szCSDVersion, 20)
2731     TEST_FIELD_SIZE  (RTL_OSVERSIONINFOEXW, wServicePackMajor, 2)
2732     TEST_FIELD_ALIGN (RTL_OSVERSIONINFOEXW, wServicePackMajor, 2)
2733     TEST_FIELD_OFFSET(RTL_OSVERSIONINFOEXW, wServicePackMajor, 276)
2734     TEST_FIELD_SIZE  (RTL_OSVERSIONINFOEXW, wServicePackMinor, 2)
2735     TEST_FIELD_ALIGN (RTL_OSVERSIONINFOEXW, wServicePackMinor, 2)
2736     TEST_FIELD_OFFSET(RTL_OSVERSIONINFOEXW, wServicePackMinor, 278)
2737     TEST_FIELD_SIZE  (RTL_OSVERSIONINFOEXW, wSuiteMask, 2)
2738     TEST_FIELD_ALIGN (RTL_OSVERSIONINFOEXW, wSuiteMask, 2)
2739     TEST_FIELD_OFFSET(RTL_OSVERSIONINFOEXW, wSuiteMask, 280)
2740     TEST_FIELD_SIZE  (RTL_OSVERSIONINFOEXW, wProductType, 1)
2741     TEST_FIELD_ALIGN (RTL_OSVERSIONINFOEXW, wProductType, 1)
2742     TEST_FIELD_OFFSET(RTL_OSVERSIONINFOEXW, wProductType, 282)
2743     TEST_FIELD_SIZE  (RTL_OSVERSIONINFOEXW, wReserved, 1)
2744     TEST_FIELD_ALIGN (RTL_OSVERSIONINFOEXW, wReserved, 1)
2745     TEST_FIELD_OFFSET(RTL_OSVERSIONINFOEXW, wReserved, 283)
2746 }
2747
2748 static void test_pack_RTL_OSVERSIONINFOW(void)
2749 {
2750     /* RTL_OSVERSIONINFOW */
2751     TEST_TYPE_SIZE   (RTL_OSVERSIONINFOW, 276)
2752     TEST_TYPE_ALIGN  (RTL_OSVERSIONINFOW, 4)
2753     TEST_FIELD_SIZE  (RTL_OSVERSIONINFOW, dwOSVersionInfoSize, 4)
2754     TEST_FIELD_ALIGN (RTL_OSVERSIONINFOW, dwOSVersionInfoSize, 4)
2755     TEST_FIELD_OFFSET(RTL_OSVERSIONINFOW, dwOSVersionInfoSize, 0)
2756     TEST_FIELD_SIZE  (RTL_OSVERSIONINFOW, dwMajorVersion, 4)
2757     TEST_FIELD_ALIGN (RTL_OSVERSIONINFOW, dwMajorVersion, 4)
2758     TEST_FIELD_OFFSET(RTL_OSVERSIONINFOW, dwMajorVersion, 4)
2759     TEST_FIELD_SIZE  (RTL_OSVERSIONINFOW, dwMinorVersion, 4)
2760     TEST_FIELD_ALIGN (RTL_OSVERSIONINFOW, dwMinorVersion, 4)
2761     TEST_FIELD_OFFSET(RTL_OSVERSIONINFOW, dwMinorVersion, 8)
2762     TEST_FIELD_SIZE  (RTL_OSVERSIONINFOW, dwBuildNumber, 4)
2763     TEST_FIELD_ALIGN (RTL_OSVERSIONINFOW, dwBuildNumber, 4)
2764     TEST_FIELD_OFFSET(RTL_OSVERSIONINFOW, dwBuildNumber, 12)
2765     TEST_FIELD_SIZE  (RTL_OSVERSIONINFOW, dwPlatformId, 4)
2766     TEST_FIELD_ALIGN (RTL_OSVERSIONINFOW, dwPlatformId, 4)
2767     TEST_FIELD_OFFSET(RTL_OSVERSIONINFOW, dwPlatformId, 16)
2768     TEST_FIELD_SIZE  (RTL_OSVERSIONINFOW, szCSDVersion, 256)
2769     TEST_FIELD_ALIGN (RTL_OSVERSIONINFOW, szCSDVersion, 2)
2770     TEST_FIELD_OFFSET(RTL_OSVERSIONINFOW, szCSDVersion, 20)
2771 }
2772
2773 static void test_pack_RTL_RESOURCE_DEBUG(void)
2774 {
2775     /* RTL_RESOURCE_DEBUG */
2776     TEST_FIELD_SIZE  (RTL_RESOURCE_DEBUG, Type, 2)
2777     TEST_FIELD_ALIGN (RTL_RESOURCE_DEBUG, Type, 2)
2778     TEST_FIELD_OFFSET(RTL_RESOURCE_DEBUG, Type, 0)
2779     TEST_FIELD_SIZE  (RTL_RESOURCE_DEBUG, CreatorBackTraceIndex, 2)
2780     TEST_FIELD_ALIGN (RTL_RESOURCE_DEBUG, CreatorBackTraceIndex, 2)
2781     TEST_FIELD_OFFSET(RTL_RESOURCE_DEBUG, CreatorBackTraceIndex, 2)
2782     TEST_FIELD_SIZE  (RTL_RESOURCE_DEBUG, CriticalSection, 8)
2783     TEST_FIELD_ALIGN (RTL_RESOURCE_DEBUG, CriticalSection, 8)
2784     TEST_FIELD_OFFSET(RTL_RESOURCE_DEBUG, CriticalSection, 8)
2785     TEST_FIELD_SIZE  (RTL_RESOURCE_DEBUG, ProcessLocksList, 16)
2786     TEST_FIELD_ALIGN (RTL_RESOURCE_DEBUG, ProcessLocksList, 8)
2787     TEST_FIELD_OFFSET(RTL_RESOURCE_DEBUG, ProcessLocksList, 16)
2788     TEST_FIELD_SIZE  (RTL_RESOURCE_DEBUG, EntryCount, 4)
2789     TEST_FIELD_ALIGN (RTL_RESOURCE_DEBUG, EntryCount, 4)
2790     TEST_FIELD_OFFSET(RTL_RESOURCE_DEBUG, EntryCount, 32)
2791     TEST_FIELD_SIZE  (RTL_RESOURCE_DEBUG, ContentionCount, 4)
2792     TEST_FIELD_ALIGN (RTL_RESOURCE_DEBUG, ContentionCount, 4)
2793     TEST_FIELD_OFFSET(RTL_RESOURCE_DEBUG, ContentionCount, 36)
2794 }
2795
2796 static void test_pack_SECURITY_CONTEXT_TRACKING_MODE(void)
2797 {
2798     /* SECURITY_CONTEXT_TRACKING_MODE */
2799     TEST_TYPE_SIZE   (SECURITY_CONTEXT_TRACKING_MODE, 1)
2800     TEST_TYPE_ALIGN  (SECURITY_CONTEXT_TRACKING_MODE, 1)
2801 }
2802
2803 static void test_pack_SECURITY_DESCRIPTOR(void)
2804 {
2805     /* SECURITY_DESCRIPTOR */
2806     TEST_TYPE_SIZE   (SECURITY_DESCRIPTOR, 40)
2807     TEST_TYPE_ALIGN  (SECURITY_DESCRIPTOR, 8)
2808     TEST_FIELD_SIZE  (SECURITY_DESCRIPTOR, Revision, 1)
2809     TEST_FIELD_ALIGN (SECURITY_DESCRIPTOR, Revision, 1)
2810     TEST_FIELD_OFFSET(SECURITY_DESCRIPTOR, Revision, 0)
2811     TEST_FIELD_SIZE  (SECURITY_DESCRIPTOR, Sbz1, 1)
2812     TEST_FIELD_ALIGN (SECURITY_DESCRIPTOR, Sbz1, 1)
2813     TEST_FIELD_OFFSET(SECURITY_DESCRIPTOR, Sbz1, 1)
2814     TEST_FIELD_SIZE  (SECURITY_DESCRIPTOR, Control, 2)
2815     TEST_FIELD_ALIGN (SECURITY_DESCRIPTOR, Control, 2)
2816     TEST_FIELD_OFFSET(SECURITY_DESCRIPTOR, Control, 2)
2817     TEST_FIELD_SIZE  (SECURITY_DESCRIPTOR, Owner, 8)
2818     TEST_FIELD_ALIGN (SECURITY_DESCRIPTOR, Owner, 8)
2819     TEST_FIELD_OFFSET(SECURITY_DESCRIPTOR, Owner, 8)
2820     TEST_FIELD_SIZE  (SECURITY_DESCRIPTOR, Group, 8)
2821     TEST_FIELD_ALIGN (SECURITY_DESCRIPTOR, Group, 8)
2822     TEST_FIELD_OFFSET(SECURITY_DESCRIPTOR, Group, 16)
2823     TEST_FIELD_SIZE  (SECURITY_DESCRIPTOR, Sacl, 8)
2824     TEST_FIELD_ALIGN (SECURITY_DESCRIPTOR, Sacl, 8)
2825     TEST_FIELD_OFFSET(SECURITY_DESCRIPTOR, Sacl, 24)
2826     TEST_FIELD_SIZE  (SECURITY_DESCRIPTOR, Dacl, 8)
2827     TEST_FIELD_ALIGN (SECURITY_DESCRIPTOR, Dacl, 8)
2828     TEST_FIELD_OFFSET(SECURITY_DESCRIPTOR, Dacl, 32)
2829 }
2830
2831 static void test_pack_SECURITY_DESCRIPTOR_CONTROL(void)
2832 {
2833     /* SECURITY_DESCRIPTOR_CONTROL */
2834     TEST_TYPE_SIZE   (SECURITY_DESCRIPTOR_CONTROL, 2)
2835     TEST_TYPE_ALIGN  (SECURITY_DESCRIPTOR_CONTROL, 2)
2836     TEST_TYPE_UNSIGNED(SECURITY_DESCRIPTOR_CONTROL)
2837 }
2838
2839 static void test_pack_SECURITY_DESCRIPTOR_RELATIVE(void)
2840 {
2841     /* SECURITY_DESCRIPTOR_RELATIVE */
2842     TEST_TYPE_SIZE   (SECURITY_DESCRIPTOR_RELATIVE, 20)
2843     TEST_TYPE_ALIGN  (SECURITY_DESCRIPTOR_RELATIVE, 4)
2844     TEST_FIELD_SIZE  (SECURITY_DESCRIPTOR_RELATIVE, Revision, 1)
2845     TEST_FIELD_ALIGN (SECURITY_DESCRIPTOR_RELATIVE, Revision, 1)
2846     TEST_FIELD_OFFSET(SECURITY_DESCRIPTOR_RELATIVE, Revision, 0)
2847     TEST_FIELD_SIZE  (SECURITY_DESCRIPTOR_RELATIVE, Sbz1, 1)
2848     TEST_FIELD_ALIGN (SECURITY_DESCRIPTOR_RELATIVE, Sbz1, 1)
2849     TEST_FIELD_OFFSET(SECURITY_DESCRIPTOR_RELATIVE, Sbz1, 1)
2850     TEST_FIELD_SIZE  (SECURITY_DESCRIPTOR_RELATIVE, Control, 2)
2851     TEST_FIELD_ALIGN (SECURITY_DESCRIPTOR_RELATIVE, Control, 2)
2852     TEST_FIELD_OFFSET(SECURITY_DESCRIPTOR_RELATIVE, Control, 2)
2853     TEST_FIELD_SIZE  (SECURITY_DESCRIPTOR_RELATIVE, Owner, 4)
2854     TEST_FIELD_ALIGN (SECURITY_DESCRIPTOR_RELATIVE, Owner, 4)
2855     TEST_FIELD_OFFSET(SECURITY_DESCRIPTOR_RELATIVE, Owner, 4)
2856     TEST_FIELD_SIZE  (SECURITY_DESCRIPTOR_RELATIVE, Group, 4)
2857     TEST_FIELD_ALIGN (SECURITY_DESCRIPTOR_RELATIVE, Group, 4)
2858     TEST_FIELD_OFFSET(SECURITY_DESCRIPTOR_RELATIVE, Group, 8)
2859     TEST_FIELD_SIZE  (SECURITY_DESCRIPTOR_RELATIVE, Sacl, 4)
2860     TEST_FIELD_ALIGN (SECURITY_DESCRIPTOR_RELATIVE, Sacl, 4)
2861     TEST_FIELD_OFFSET(SECURITY_DESCRIPTOR_RELATIVE, Sacl, 12)
2862     TEST_FIELD_SIZE  (SECURITY_DESCRIPTOR_RELATIVE, Dacl, 4)
2863     TEST_FIELD_ALIGN (SECURITY_DESCRIPTOR_RELATIVE, Dacl, 4)
2864     TEST_FIELD_OFFSET(SECURITY_DESCRIPTOR_RELATIVE, Dacl, 16)
2865 }
2866
2867 static void test_pack_SECURITY_INFORMATION(void)
2868 {
2869     /* SECURITY_INFORMATION */
2870     TEST_TYPE_SIZE   (SECURITY_INFORMATION, 4)
2871     TEST_TYPE_ALIGN  (SECURITY_INFORMATION, 4)
2872     TEST_TYPE_UNSIGNED(SECURITY_INFORMATION)
2873 }
2874
2875 static void test_pack_SECURITY_QUALITY_OF_SERVICE(void)
2876 {
2877     /* SECURITY_QUALITY_OF_SERVICE */
2878     TEST_FIELD_SIZE  (SECURITY_QUALITY_OF_SERVICE, Length, 4)
2879     TEST_FIELD_ALIGN (SECURITY_QUALITY_OF_SERVICE, Length, 4)
2880     TEST_FIELD_OFFSET(SECURITY_QUALITY_OF_SERVICE, Length, 0)
2881 }
2882
2883 static void test_pack_SHORT(void)
2884 {
2885     /* SHORT */
2886     TEST_TYPE_SIZE   (SHORT, 2)
2887     TEST_TYPE_ALIGN  (SHORT, 2)
2888     TEST_TYPE_SIGNED(SHORT)
2889 }
2890
2891 static void test_pack_SID(void)
2892 {
2893     /* SID */
2894     TEST_TYPE_SIZE   (SID, 12)
2895     TEST_TYPE_ALIGN  (SID, 4)
2896     TEST_FIELD_SIZE  (SID, Revision, 1)
2897     TEST_FIELD_ALIGN (SID, Revision, 1)
2898     TEST_FIELD_OFFSET(SID, Revision, 0)
2899     TEST_FIELD_SIZE  (SID, SubAuthorityCount, 1)
2900     TEST_FIELD_ALIGN (SID, SubAuthorityCount, 1)
2901     TEST_FIELD_OFFSET(SID, SubAuthorityCount, 1)
2902     TEST_FIELD_SIZE  (SID, IdentifierAuthority, 6)
2903     TEST_FIELD_ALIGN (SID, IdentifierAuthority, 1)
2904     TEST_FIELD_OFFSET(SID, IdentifierAuthority, 2)
2905     TEST_FIELD_SIZE  (SID, SubAuthority, 4)
2906     TEST_FIELD_ALIGN (SID, SubAuthority, 4)
2907     TEST_FIELD_OFFSET(SID, SubAuthority, 8)
2908 }
2909
2910 static void test_pack_SID_AND_ATTRIBUTES(void)
2911 {
2912     /* SID_AND_ATTRIBUTES */
2913     TEST_TYPE_SIZE   (SID_AND_ATTRIBUTES, 16)
2914     TEST_TYPE_ALIGN  (SID_AND_ATTRIBUTES, 8)
2915     TEST_FIELD_SIZE  (SID_AND_ATTRIBUTES, Sid, 8)
2916     TEST_FIELD_ALIGN (SID_AND_ATTRIBUTES, Sid, 8)
2917     TEST_FIELD_OFFSET(SID_AND_ATTRIBUTES, Sid, 0)
2918     TEST_FIELD_SIZE  (SID_AND_ATTRIBUTES, Attributes, 4)
2919     TEST_FIELD_ALIGN (SID_AND_ATTRIBUTES, Attributes, 4)
2920     TEST_FIELD_OFFSET(SID_AND_ATTRIBUTES, Attributes, 8)
2921 }
2922
2923 static void test_pack_SID_IDENTIFIER_AUTHORITY(void)
2924 {
2925     /* SID_IDENTIFIER_AUTHORITY */
2926     TEST_TYPE_SIZE   (SID_IDENTIFIER_AUTHORITY, 6)
2927     TEST_TYPE_ALIGN  (SID_IDENTIFIER_AUTHORITY, 1)
2928     TEST_FIELD_SIZE  (SID_IDENTIFIER_AUTHORITY, Value, 6)
2929     TEST_FIELD_ALIGN (SID_IDENTIFIER_AUTHORITY, Value, 1)
2930     TEST_FIELD_OFFSET(SID_IDENTIFIER_AUTHORITY, Value, 0)
2931 }
2932
2933 static void test_pack_SINGLE_LIST_ENTRY(void)
2934 {
2935     /* SINGLE_LIST_ENTRY */
2936     TEST_TYPE_SIZE   (SINGLE_LIST_ENTRY, 8)
2937     TEST_TYPE_ALIGN  (SINGLE_LIST_ENTRY, 8)
2938     TEST_FIELD_SIZE  (SINGLE_LIST_ENTRY, Next, 8)
2939     TEST_FIELD_ALIGN (SINGLE_LIST_ENTRY, Next, 8)
2940     TEST_FIELD_OFFSET(SINGLE_LIST_ENTRY, Next, 0)
2941 }
2942
2943 static void test_pack_SYSTEM_ALARM_ACE(void)
2944 {
2945     /* SYSTEM_ALARM_ACE */
2946     TEST_TYPE_SIZE   (SYSTEM_ALARM_ACE, 12)
2947     TEST_TYPE_ALIGN  (SYSTEM_ALARM_ACE, 4)
2948     TEST_FIELD_SIZE  (SYSTEM_ALARM_ACE, Header, 4)
2949     TEST_FIELD_ALIGN (SYSTEM_ALARM_ACE, Header, 2)
2950     TEST_FIELD_OFFSET(SYSTEM_ALARM_ACE, Header, 0)
2951     TEST_FIELD_SIZE  (SYSTEM_ALARM_ACE, Mask, 4)
2952     TEST_FIELD_ALIGN (SYSTEM_ALARM_ACE, Mask, 4)
2953     TEST_FIELD_OFFSET(SYSTEM_ALARM_ACE, Mask, 4)
2954     TEST_FIELD_SIZE  (SYSTEM_ALARM_ACE, SidStart, 4)
2955     TEST_FIELD_ALIGN (SYSTEM_ALARM_ACE, SidStart, 4)
2956     TEST_FIELD_OFFSET(SYSTEM_ALARM_ACE, SidStart, 8)
2957 }
2958
2959 static void test_pack_SYSTEM_AUDIT_ACE(void)
2960 {
2961     /* SYSTEM_AUDIT_ACE */
2962     TEST_TYPE_SIZE   (SYSTEM_AUDIT_ACE, 12)
2963     TEST_TYPE_ALIGN  (SYSTEM_AUDIT_ACE, 4)
2964     TEST_FIELD_SIZE  (SYSTEM_AUDIT_ACE, Header, 4)
2965     TEST_FIELD_ALIGN (SYSTEM_AUDIT_ACE, Header, 2)
2966     TEST_FIELD_OFFSET(SYSTEM_AUDIT_ACE, Header, 0)
2967     TEST_FIELD_SIZE  (SYSTEM_AUDIT_ACE, Mask, 4)
2968     TEST_FIELD_ALIGN (SYSTEM_AUDIT_ACE, Mask, 4)
2969     TEST_FIELD_OFFSET(SYSTEM_AUDIT_ACE, Mask, 4)
2970     TEST_FIELD_SIZE  (SYSTEM_AUDIT_ACE, SidStart, 4)
2971     TEST_FIELD_ALIGN (SYSTEM_AUDIT_ACE, SidStart, 4)
2972     TEST_FIELD_OFFSET(SYSTEM_AUDIT_ACE, SidStart, 8)
2973 }
2974
2975 static void test_pack_TCHAR(void)
2976 {
2977     /* TCHAR */
2978     TEST_TYPE_SIZE   (TCHAR, 1)
2979     TEST_TYPE_ALIGN  (TCHAR, 1)
2980 }
2981
2982 static void test_pack_TOKEN_DEFAULT_DACL(void)
2983 {
2984     /* TOKEN_DEFAULT_DACL */
2985     TEST_TYPE_SIZE   (TOKEN_DEFAULT_DACL, 8)
2986     TEST_TYPE_ALIGN  (TOKEN_DEFAULT_DACL, 8)
2987     TEST_FIELD_SIZE  (TOKEN_DEFAULT_DACL, DefaultDacl, 8)
2988     TEST_FIELD_ALIGN (TOKEN_DEFAULT_DACL, DefaultDacl, 8)
2989     TEST_FIELD_OFFSET(TOKEN_DEFAULT_DACL, DefaultDacl, 0)
2990 }
2991
2992 static void test_pack_TOKEN_GROUPS(void)
2993 {
2994     /* TOKEN_GROUPS */
2995     TEST_TYPE_SIZE   (TOKEN_GROUPS, 24)
2996     TEST_TYPE_ALIGN  (TOKEN_GROUPS, 8)
2997     TEST_FIELD_SIZE  (TOKEN_GROUPS, GroupCount, 4)
2998     TEST_FIELD_ALIGN (TOKEN_GROUPS, GroupCount, 4)
2999     TEST_FIELD_OFFSET(TOKEN_GROUPS, GroupCount, 0)
3000     TEST_FIELD_SIZE  (TOKEN_GROUPS, Groups, 16)
3001     TEST_FIELD_ALIGN (TOKEN_GROUPS, Groups, 8)
3002     TEST_FIELD_OFFSET(TOKEN_GROUPS, Groups, 8)
3003 }
3004
3005 static void test_pack_TOKEN_OWNER(void)
3006 {
3007     /* TOKEN_OWNER */
3008     TEST_TYPE_SIZE   (TOKEN_OWNER, 8)
3009     TEST_TYPE_ALIGN  (TOKEN_OWNER, 8)
3010     TEST_FIELD_SIZE  (TOKEN_OWNER, Owner, 8)
3011     TEST_FIELD_ALIGN (TOKEN_OWNER, Owner, 8)
3012     TEST_FIELD_OFFSET(TOKEN_OWNER, Owner, 0)
3013 }
3014
3015 static void test_pack_TOKEN_PRIMARY_GROUP(void)
3016 {
3017     /* TOKEN_PRIMARY_GROUP */
3018     TEST_TYPE_SIZE   (TOKEN_PRIMARY_GROUP, 8)
3019     TEST_TYPE_ALIGN  (TOKEN_PRIMARY_GROUP, 8)
3020     TEST_FIELD_SIZE  (TOKEN_PRIMARY_GROUP, PrimaryGroup, 8)
3021     TEST_FIELD_ALIGN (TOKEN_PRIMARY_GROUP, PrimaryGroup, 8)
3022     TEST_FIELD_OFFSET(TOKEN_PRIMARY_GROUP, PrimaryGroup, 0)
3023 }
3024
3025 static void test_pack_TOKEN_PRIVILEGES(void)
3026 {
3027     /* TOKEN_PRIVILEGES */
3028     TEST_TYPE_SIZE   (TOKEN_PRIVILEGES, 16)
3029     TEST_TYPE_ALIGN  (TOKEN_PRIVILEGES, 4)
3030     TEST_FIELD_SIZE  (TOKEN_PRIVILEGES, PrivilegeCount, 4)
3031     TEST_FIELD_ALIGN (TOKEN_PRIVILEGES, PrivilegeCount, 4)
3032     TEST_FIELD_OFFSET(TOKEN_PRIVILEGES, PrivilegeCount, 0)
3033     TEST_FIELD_SIZE  (TOKEN_PRIVILEGES, Privileges, 12)
3034     TEST_FIELD_ALIGN (TOKEN_PRIVILEGES, Privileges, 4)
3035     TEST_FIELD_OFFSET(TOKEN_PRIVILEGES, Privileges, 4)
3036 }
3037
3038 static void test_pack_TOKEN_SOURCE(void)
3039 {
3040     /* TOKEN_SOURCE */
3041     TEST_TYPE_SIZE   (TOKEN_SOURCE, 16)
3042     TEST_TYPE_ALIGN  (TOKEN_SOURCE, 4)
3043     TEST_FIELD_SIZE  (TOKEN_SOURCE, SourceName, 8)
3044     TEST_FIELD_ALIGN (TOKEN_SOURCE, SourceName, 1)
3045     TEST_FIELD_OFFSET(TOKEN_SOURCE, SourceName, 0)
3046     TEST_FIELD_SIZE  (TOKEN_SOURCE, SourceIdentifier, 8)
3047     TEST_FIELD_ALIGN (TOKEN_SOURCE, SourceIdentifier, 4)
3048     TEST_FIELD_OFFSET(TOKEN_SOURCE, SourceIdentifier, 8)
3049 }
3050
3051 static void test_pack_TOKEN_STATISTICS(void)
3052 {
3053     /* TOKEN_STATISTICS (pack 4) */
3054     TEST_FIELD_SIZE  (TOKEN_STATISTICS, TokenId, 8)
3055     TEST_FIELD_ALIGN (TOKEN_STATISTICS, TokenId, 4)
3056     TEST_FIELD_OFFSET(TOKEN_STATISTICS, TokenId, 0)
3057     TEST_FIELD_SIZE  (TOKEN_STATISTICS, AuthenticationId, 8)
3058     TEST_FIELD_ALIGN (TOKEN_STATISTICS, AuthenticationId, 4)
3059     TEST_FIELD_OFFSET(TOKEN_STATISTICS, AuthenticationId, 8)
3060     TEST_FIELD_SIZE  (TOKEN_STATISTICS, ExpirationTime, 8)
3061     TEST_FIELD_ALIGN (TOKEN_STATISTICS, ExpirationTime, 4)
3062     TEST_FIELD_OFFSET(TOKEN_STATISTICS, ExpirationTime, 16)
3063 }
3064
3065 static void test_pack_TOKEN_USER(void)
3066 {
3067     /* TOKEN_USER */
3068     TEST_TYPE_SIZE   (TOKEN_USER, 16)
3069     TEST_TYPE_ALIGN  (TOKEN_USER, 8)
3070     TEST_FIELD_SIZE  (TOKEN_USER, User, 16)
3071     TEST_FIELD_ALIGN (TOKEN_USER, User, 8)
3072     TEST_FIELD_OFFSET(TOKEN_USER, User, 0)
3073 }
3074
3075 static void test_pack_ULARGE_INTEGER(void)
3076 {
3077     /* ULARGE_INTEGER */
3078 }
3079
3080 static void test_pack_ULONGLONG(void)
3081 {
3082     /* ULONGLONG */
3083     TEST_TYPE_SIZE   (ULONGLONG, 8)
3084     TEST_TYPE_ALIGN  (ULONGLONG, 8)
3085     TEST_TYPE_UNSIGNED(ULONGLONG)
3086 }
3087
3088 static void test_pack_WAITORTIMERCALLBACKFUNC(void)
3089 {
3090     /* WAITORTIMERCALLBACKFUNC */
3091     TEST_TYPE_SIZE   (WAITORTIMERCALLBACKFUNC, 8)
3092     TEST_TYPE_ALIGN  (WAITORTIMERCALLBACKFUNC, 8)
3093 }
3094
3095 static void test_pack_WCHAR(void)
3096 {
3097     /* WCHAR */
3098     TEST_TYPE_SIZE   (WCHAR, 2)
3099     TEST_TYPE_ALIGN  (WCHAR, 2)
3100     TEST_TYPE_UNSIGNED(WCHAR)
3101 }
3102
3103 static void test_pack_ATOM(void)
3104 {
3105     /* ATOM */
3106     TEST_TYPE_SIZE   (ATOM, 2)
3107     TEST_TYPE_ALIGN  (ATOM, 2)
3108     TEST_TYPE_UNSIGNED(ATOM)
3109 }
3110
3111 static void test_pack_BOOL(void)
3112 {
3113     /* BOOL */
3114     TEST_TYPE_SIZE   (BOOL, 4)
3115     TEST_TYPE_ALIGN  (BOOL, 4)
3116     TEST_TYPE_SIGNED(BOOL)
3117 }
3118
3119 static void test_pack_BYTE(void)
3120 {
3121     /* BYTE */
3122     TEST_TYPE_SIZE   (BYTE, 1)
3123     TEST_TYPE_ALIGN  (BYTE, 1)
3124     TEST_TYPE_UNSIGNED(BYTE)
3125 }
3126
3127 static void test_pack_COLORREF(void)
3128 {
3129     /* COLORREF */
3130     TEST_TYPE_SIZE   (COLORREF, 4)
3131     TEST_TYPE_ALIGN  (COLORREF, 4)
3132     TEST_TYPE_UNSIGNED(COLORREF)
3133 }
3134
3135 static void test_pack_DWORD(void)
3136 {
3137     /* DWORD */
3138     TEST_TYPE_SIZE   (DWORD, 4)
3139     TEST_TYPE_ALIGN  (DWORD, 4)
3140     TEST_TYPE_UNSIGNED(DWORD)
3141 }
3142
3143 static void test_pack_FARPROC(void)
3144 {
3145     /* FARPROC */
3146     TEST_TYPE_SIZE   (FARPROC, 8)
3147     TEST_TYPE_ALIGN  (FARPROC, 8)
3148 }
3149
3150 static void test_pack_FLOAT(void)
3151 {
3152     /* FLOAT */
3153     TEST_TYPE_SIZE   (FLOAT, 4)
3154     TEST_TYPE_ALIGN  (FLOAT, 4)
3155 }
3156
3157 static void test_pack_GLOBALHANDLE(void)
3158 {
3159     /* GLOBALHANDLE */
3160     TEST_TYPE_SIZE   (GLOBALHANDLE, 8)
3161     TEST_TYPE_ALIGN  (GLOBALHANDLE, 8)
3162 }
3163
3164 static void test_pack_HCURSOR(void)
3165 {
3166     /* HCURSOR */
3167     TEST_TYPE_SIZE   (HCURSOR, 8)
3168     TEST_TYPE_ALIGN  (HCURSOR, 8)
3169 }
3170
3171 static void test_pack_HFILE(void)
3172 {
3173     /* HFILE */
3174     TEST_TYPE_SIZE   (HFILE, 4)
3175     TEST_TYPE_ALIGN  (HFILE, 4)
3176     TEST_TYPE_SIGNED(HFILE)
3177 }
3178
3179 static void test_pack_HGDIOBJ(void)
3180 {
3181     /* HGDIOBJ */
3182     TEST_TYPE_SIZE   (HGDIOBJ, 8)
3183     TEST_TYPE_ALIGN  (HGDIOBJ, 8)
3184 }
3185
3186 static void test_pack_HGLOBAL(void)
3187 {
3188     /* HGLOBAL */
3189     TEST_TYPE_SIZE   (HGLOBAL, 8)
3190     TEST_TYPE_ALIGN  (HGLOBAL, 8)
3191 }
3192
3193 static void test_pack_HLOCAL(void)
3194 {
3195     /* HLOCAL */
3196     TEST_TYPE_SIZE   (HLOCAL, 8)
3197     TEST_TYPE_ALIGN  (HLOCAL, 8)
3198 }
3199
3200 static void test_pack_HMODULE(void)
3201 {
3202     /* HMODULE */
3203     TEST_TYPE_SIZE   (HMODULE, 8)
3204     TEST_TYPE_ALIGN  (HMODULE, 8)
3205 }
3206
3207 static void test_pack_INT(void)
3208 {
3209     /* INT */
3210     TEST_TYPE_SIZE   (INT, 4)
3211     TEST_TYPE_ALIGN  (INT, 4)
3212     TEST_TYPE_SIGNED(INT)
3213 }
3214
3215 static void test_pack_LOCALHANDLE(void)
3216 {
3217     /* LOCALHANDLE */
3218     TEST_TYPE_SIZE   (LOCALHANDLE, 8)
3219     TEST_TYPE_ALIGN  (LOCALHANDLE, 8)
3220 }
3221
3222 static void test_pack_LPARAM(void)
3223 {
3224     /* LPARAM */
3225     TEST_TYPE_SIZE   (LPARAM, 8)
3226     TEST_TYPE_ALIGN  (LPARAM, 8)
3227 }
3228
3229 static void test_pack_LPCRECT(void)
3230 {
3231     /* LPCRECT */
3232     TEST_TYPE_SIZE   (LPCRECT, 8)
3233     TEST_TYPE_ALIGN  (LPCRECT, 8)
3234     TEST_TARGET_SIZE (LPCRECT, 16)
3235     TEST_TARGET_ALIGN(LPCRECT, 4)
3236 }
3237
3238 static void test_pack_LPCRECTL(void)
3239 {
3240     /* LPCRECTL */
3241     TEST_TYPE_SIZE   (LPCRECTL, 8)
3242     TEST_TYPE_ALIGN  (LPCRECTL, 8)
3243     TEST_TARGET_SIZE (LPCRECTL, 16)
3244     TEST_TARGET_ALIGN(LPCRECTL, 4)
3245 }
3246
3247 static void test_pack_LPCVOID(void)
3248 {
3249     /* LPCVOID */
3250     TEST_TYPE_SIZE   (LPCVOID, 8)
3251     TEST_TYPE_ALIGN  (LPCVOID, 8)
3252 }
3253
3254 static void test_pack_LPPOINT(void)
3255 {
3256     /* LPPOINT */
3257     TEST_TYPE_SIZE   (LPPOINT, 8)
3258     TEST_TYPE_ALIGN  (LPPOINT, 8)
3259     TEST_TARGET_SIZE (LPPOINT, 8)
3260     TEST_TARGET_ALIGN(LPPOINT, 4)
3261 }
3262
3263 static void test_pack_LPRECT(void)
3264 {
3265     /* LPRECT */
3266     TEST_TYPE_SIZE   (LPRECT, 8)
3267     TEST_TYPE_ALIGN  (LPRECT, 8)
3268     TEST_TARGET_SIZE (LPRECT, 16)
3269     TEST_TARGET_ALIGN(LPRECT, 4)
3270 }
3271
3272 static void test_pack_LPRECTL(void)
3273 {
3274     /* LPRECTL */
3275     TEST_TYPE_SIZE   (LPRECTL, 8)
3276     TEST_TYPE_ALIGN  (LPRECTL, 8)
3277     TEST_TARGET_SIZE (LPRECTL, 16)
3278     TEST_TARGET_ALIGN(LPRECTL, 4)
3279 }
3280
3281 static void test_pack_LPSIZE(void)
3282 {
3283     /* LPSIZE */
3284     TEST_TYPE_SIZE   (LPSIZE, 8)
3285     TEST_TYPE_ALIGN  (LPSIZE, 8)
3286     TEST_TARGET_SIZE (LPSIZE, 8)
3287     TEST_TARGET_ALIGN(LPSIZE, 4)
3288 }
3289
3290 static void test_pack_LRESULT(void)
3291 {
3292     /* LRESULT */
3293     TEST_TYPE_SIZE   (LRESULT, 8)
3294     TEST_TYPE_ALIGN  (LRESULT, 8)
3295 }
3296
3297 static void test_pack_POINT(void)
3298 {
3299     /* POINT */
3300     TEST_TYPE_SIZE   (POINT, 8)
3301     TEST_TYPE_ALIGN  (POINT, 4)
3302     TEST_FIELD_SIZE  (POINT, x, 4)
3303     TEST_FIELD_ALIGN (POINT, x, 4)
3304     TEST_FIELD_OFFSET(POINT, x, 0)
3305     TEST_FIELD_SIZE  (POINT, y, 4)
3306     TEST_FIELD_ALIGN (POINT, y, 4)
3307     TEST_FIELD_OFFSET(POINT, y, 4)
3308 }
3309
3310 static void test_pack_POINTL(void)
3311 {
3312     /* POINTL */
3313     TEST_TYPE_SIZE   (POINTL, 8)
3314     TEST_TYPE_ALIGN  (POINTL, 4)
3315     TEST_FIELD_SIZE  (POINTL, x, 4)
3316     TEST_FIELD_ALIGN (POINTL, x, 4)
3317     TEST_FIELD_OFFSET(POINTL, x, 0)
3318     TEST_FIELD_SIZE  (POINTL, y, 4)
3319     TEST_FIELD_ALIGN (POINTL, y, 4)
3320     TEST_FIELD_OFFSET(POINTL, y, 4)
3321 }
3322
3323 static void test_pack_PPOINT(void)
3324 {
3325     /* PPOINT */
3326     TEST_TYPE_SIZE   (PPOINT, 8)
3327     TEST_TYPE_ALIGN  (PPOINT, 8)
3328     TEST_TARGET_SIZE (PPOINT, 8)
3329     TEST_TARGET_ALIGN(PPOINT, 4)
3330 }
3331
3332 static void test_pack_PPOINTL(void)
3333 {
3334     /* PPOINTL */
3335     TEST_TYPE_SIZE   (PPOINTL, 8)
3336     TEST_TYPE_ALIGN  (PPOINTL, 8)
3337     TEST_TARGET_SIZE (PPOINTL, 8)
3338     TEST_TARGET_ALIGN(PPOINTL, 4)
3339 }
3340
3341 static void test_pack_PRECT(void)
3342 {
3343     /* PRECT */
3344     TEST_TYPE_SIZE   (PRECT, 8)
3345     TEST_TYPE_ALIGN  (PRECT, 8)
3346     TEST_TARGET_SIZE (PRECT, 16)
3347     TEST_TARGET_ALIGN(PRECT, 4)
3348 }
3349
3350 static void test_pack_PRECTL(void)
3351 {
3352     /* PRECTL */
3353     TEST_TYPE_SIZE   (PRECTL, 8)
3354     TEST_TYPE_ALIGN  (PRECTL, 8)
3355     TEST_TARGET_SIZE (PRECTL, 16)
3356     TEST_TARGET_ALIGN(PRECTL, 4)
3357 }
3358
3359 static void test_pack_PROC(void)
3360 {
3361     /* PROC */
3362     TEST_TYPE_SIZE   (PROC, 8)
3363     TEST_TYPE_ALIGN  (PROC, 8)
3364 }
3365
3366 static void test_pack_PSIZE(void)
3367 {
3368     /* PSIZE */
3369     TEST_TYPE_SIZE   (PSIZE, 8)
3370     TEST_TYPE_ALIGN  (PSIZE, 8)
3371     TEST_TARGET_SIZE (PSIZE, 8)
3372     TEST_TARGET_ALIGN(PSIZE, 4)
3373 }
3374
3375 static void test_pack_PSZ(void)
3376 {
3377     /* PSZ */
3378     TEST_TYPE_SIZE   (PSZ, 8)
3379     TEST_TYPE_ALIGN  (PSZ, 8)
3380 }
3381
3382 static void test_pack_RECT(void)
3383 {
3384     /* RECT */
3385     TEST_TYPE_SIZE   (RECT, 16)
3386     TEST_TYPE_ALIGN  (RECT, 4)
3387     TEST_FIELD_SIZE  (RECT, left, 4)
3388     TEST_FIELD_ALIGN (RECT, left, 4)
3389     TEST_FIELD_OFFSET(RECT, left, 0)
3390     TEST_FIELD_SIZE  (RECT, top, 4)
3391     TEST_FIELD_ALIGN (RECT, top, 4)
3392     TEST_FIELD_OFFSET(RECT, top, 4)
3393     TEST_FIELD_SIZE  (RECT, right, 4)
3394     TEST_FIELD_ALIGN (RECT, right, 4)
3395     TEST_FIELD_OFFSET(RECT, right, 8)
3396     TEST_FIELD_SIZE  (RECT, bottom, 4)
3397     TEST_FIELD_ALIGN (RECT, bottom, 4)
3398     TEST_FIELD_OFFSET(RECT, bottom, 12)
3399 }
3400
3401 static void test_pack_RECTL(void)
3402 {
3403     /* RECTL */
3404     TEST_TYPE_SIZE   (RECTL, 16)
3405     TEST_TYPE_ALIGN  (RECTL, 4)
3406     TEST_FIELD_SIZE  (RECTL, left, 4)
3407     TEST_FIELD_ALIGN (RECTL, left, 4)
3408     TEST_FIELD_OFFSET(RECTL, left, 0)
3409     TEST_FIELD_SIZE  (RECTL, top, 4)
3410     TEST_FIELD_ALIGN (RECTL, top, 4)
3411     TEST_FIELD_OFFSET(RECTL, top, 4)
3412     TEST_FIELD_SIZE  (RECTL, right, 4)
3413     TEST_FIELD_ALIGN (RECTL, right, 4)
3414     TEST_FIELD_OFFSET(RECTL, right, 8)
3415     TEST_FIELD_SIZE  (RECTL, bottom, 4)
3416     TEST_FIELD_ALIGN (RECTL, bottom, 4)
3417     TEST_FIELD_OFFSET(RECTL, bottom, 12)
3418 }
3419
3420 static void test_pack_SIZE(void)
3421 {
3422     /* SIZE */
3423     TEST_TYPE_SIZE   (SIZE, 8)
3424     TEST_TYPE_ALIGN  (SIZE, 4)
3425     TEST_FIELD_SIZE  (SIZE, cx, 4)
3426     TEST_FIELD_ALIGN (SIZE, cx, 4)
3427     TEST_FIELD_OFFSET(SIZE, cx, 0)
3428     TEST_FIELD_SIZE  (SIZE, cy, 4)
3429     TEST_FIELD_ALIGN (SIZE, cy, 4)
3430     TEST_FIELD_OFFSET(SIZE, cy, 4)
3431 }
3432
3433 static void test_pack_SIZEL(void)
3434 {
3435     /* SIZEL */
3436     TEST_TYPE_SIZE   (SIZEL, 8)
3437     TEST_TYPE_ALIGN  (SIZEL, 4)
3438 }
3439
3440 static void test_pack_UCHAR(void)
3441 {
3442     /* UCHAR */
3443     TEST_TYPE_SIZE   (UCHAR, 1)
3444     TEST_TYPE_ALIGN  (UCHAR, 1)
3445     TEST_TYPE_UNSIGNED(UCHAR)
3446 }
3447
3448 static void test_pack_UINT(void)
3449 {
3450     /* UINT */
3451     TEST_TYPE_SIZE   (UINT, 4)
3452     TEST_TYPE_ALIGN  (UINT, 4)
3453     TEST_TYPE_UNSIGNED(UINT)
3454 }
3455
3456 static void test_pack_ULONG(void)
3457 {
3458     /* ULONG */
3459     TEST_TYPE_SIZE   (ULONG, 4)
3460     TEST_TYPE_ALIGN  (ULONG, 4)
3461     TEST_TYPE_UNSIGNED(ULONG)
3462 }
3463
3464 static void test_pack_USHORT(void)
3465 {
3466     /* USHORT */
3467     TEST_TYPE_SIZE   (USHORT, 2)
3468     TEST_TYPE_ALIGN  (USHORT, 2)
3469     TEST_TYPE_UNSIGNED(USHORT)
3470 }
3471
3472 static void test_pack_WORD(void)
3473 {
3474     /* WORD */
3475     TEST_TYPE_SIZE   (WORD, 2)
3476     TEST_TYPE_ALIGN  (WORD, 2)
3477     TEST_TYPE_UNSIGNED(WORD)
3478 }
3479
3480 static void test_pack_WPARAM(void)
3481 {
3482     /* WPARAM */
3483     TEST_TYPE_SIZE   (WPARAM, 8)
3484     TEST_TYPE_ALIGN  (WPARAM, 8)
3485 }
3486
3487 #else /* _WIN64 */
3488
3489 static void test_pack_DWORD32(void)
3490 {
3491     /* DWORD32 */
3492     TEST_TYPE_SIZE   (DWORD32, 4)
3493     TEST_TYPE_ALIGN  (DWORD32, 4)
3494     TEST_TYPE_UNSIGNED(DWORD32)
3495 }
3496
3497 static void test_pack_DWORD64(void)
3498 {
3499     /* DWORD64 */
3500     TEST_TYPE_SIZE   (DWORD64, 8)
3501     TEST_TYPE_ALIGN  (DWORD64, 8)
3502     TEST_TYPE_UNSIGNED(DWORD64)
3503 }
3504
3505 static void test_pack_DWORD_PTR(void)
3506 {
3507     /* DWORD_PTR */
3508     TEST_TYPE_SIZE   (DWORD_PTR, 4)
3509     TEST_TYPE_ALIGN  (DWORD_PTR, 4)
3510 }
3511
3512 static void test_pack_HALF_PTR(void)
3513 {
3514     /* HALF_PTR */
3515     TEST_TYPE_SIZE   (HALF_PTR, 2)
3516     TEST_TYPE_ALIGN  (HALF_PTR, 2)
3517     TEST_TYPE_SIGNED(HALF_PTR)
3518 }
3519
3520 static void test_pack_INT16(void)
3521 {
3522     /* INT16 */
3523     TEST_TYPE_SIZE   (INT16, 2)
3524     TEST_TYPE_ALIGN  (INT16, 2)
3525     TEST_TYPE_SIGNED(INT16)
3526 }
3527
3528 static void test_pack_INT32(void)
3529 {
3530     /* INT32 */
3531     TEST_TYPE_SIZE   (INT32, 4)
3532     TEST_TYPE_ALIGN  (INT32, 4)
3533     TEST_TYPE_SIGNED(INT32)
3534 }
3535
3536 static void test_pack_INT64(void)
3537 {
3538     /* INT64 */
3539     TEST_TYPE_SIZE   (INT64, 8)
3540     TEST_TYPE_ALIGN  (INT64, 8)
3541     TEST_TYPE_SIGNED(INT64)
3542 }
3543
3544 static void test_pack_INT8(void)
3545 {
3546     /* INT8 */
3547     TEST_TYPE_SIZE   (INT8, 1)
3548     TEST_TYPE_ALIGN  (INT8, 1)
3549     TEST_TYPE_SIGNED(INT8)
3550 }
3551
3552 static void test_pack_INT_PTR(void)
3553 {
3554     /* INT_PTR */
3555     TEST_TYPE_SIZE   (INT_PTR, 4)
3556     TEST_TYPE_ALIGN  (INT_PTR, 4)
3557     TEST_TYPE_SIGNED(INT_PTR)
3558 }
3559
3560 static void test_pack_LONG32(void)
3561 {
3562     /* LONG32 */
3563     TEST_TYPE_SIZE   (LONG32, 4)
3564     TEST_TYPE_ALIGN  (LONG32, 4)
3565     TEST_TYPE_SIGNED(LONG32)
3566 }
3567
3568 static void test_pack_LONG64(void)
3569 {
3570     /* LONG64 */
3571     TEST_TYPE_SIZE   (LONG64, 8)
3572     TEST_TYPE_ALIGN  (LONG64, 8)
3573     TEST_TYPE_SIGNED(LONG64)
3574 }
3575
3576 static void test_pack_LONG_PTR(void)
3577 {
3578     /* LONG_PTR */
3579     TEST_TYPE_SIZE   (LONG_PTR, 4)
3580     TEST_TYPE_ALIGN  (LONG_PTR, 4)
3581     TEST_TYPE_SIGNED(LONG_PTR)
3582 }
3583
3584 static void test_pack_SIZE_T(void)
3585 {
3586     /* SIZE_T */
3587     TEST_TYPE_SIZE   (SIZE_T, 4)
3588     TEST_TYPE_ALIGN  (SIZE_T, 4)
3589 }
3590
3591 static void test_pack_SSIZE_T(void)
3592 {
3593     /* SSIZE_T */
3594     TEST_TYPE_SIZE   (SSIZE_T, 4)
3595     TEST_TYPE_ALIGN  (SSIZE_T, 4)
3596 }
3597
3598 static void test_pack_UHALF_PTR(void)
3599 {
3600     /* UHALF_PTR */
3601     TEST_TYPE_SIZE   (UHALF_PTR, 2)
3602     TEST_TYPE_ALIGN  (UHALF_PTR, 2)
3603     TEST_TYPE_UNSIGNED(UHALF_PTR)
3604 }
3605
3606 static void test_pack_UINT16(void)
3607 {
3608     /* UINT16 */
3609     TEST_TYPE_SIZE   (UINT16, 2)
3610     TEST_TYPE_ALIGN  (UINT16, 2)
3611     TEST_TYPE_UNSIGNED(UINT16)
3612 }
3613
3614 static void test_pack_UINT32(void)
3615 {
3616     /* UINT32 */
3617     TEST_TYPE_SIZE   (UINT32, 4)
3618     TEST_TYPE_ALIGN  (UINT32, 4)
3619     TEST_TYPE_UNSIGNED(UINT32)
3620 }
3621
3622 static void test_pack_UINT64(void)
3623 {
3624     /* UINT64 */
3625     TEST_TYPE_SIZE   (UINT64, 8)
3626     TEST_TYPE_ALIGN  (UINT64, 8)
3627     TEST_TYPE_UNSIGNED(UINT64)
3628 }
3629
3630 static void test_pack_UINT8(void)
3631 {
3632     /* UINT8 */
3633     TEST_TYPE_SIZE   (UINT8, 1)
3634     TEST_TYPE_ALIGN  (UINT8, 1)
3635     TEST_TYPE_UNSIGNED(UINT8)
3636 }
3637
3638 static void test_pack_UINT_PTR(void)
3639 {
3640     /* UINT_PTR */
3641     TEST_TYPE_SIZE   (UINT_PTR, 4)
3642     TEST_TYPE_ALIGN  (UINT_PTR, 4)
3643     TEST_TYPE_UNSIGNED(UINT_PTR)
3644 }
3645
3646 static void test_pack_ULONG32(void)
3647 {
3648     /* ULONG32 */
3649     TEST_TYPE_SIZE   (ULONG32, 4)
3650     TEST_TYPE_ALIGN  (ULONG32, 4)
3651     TEST_TYPE_UNSIGNED(ULONG32)
3652 }
3653
3654 static void test_pack_ULONG64(void)
3655 {
3656     /* ULONG64 */
3657     TEST_TYPE_SIZE   (ULONG64, 8)
3658     TEST_TYPE_ALIGN  (ULONG64, 8)
3659     TEST_TYPE_UNSIGNED(ULONG64)
3660 }
3661
3662 static void test_pack_ULONG_PTR(void)
3663 {
3664     /* ULONG_PTR */
3665     TEST_TYPE_SIZE   (ULONG_PTR, 4)
3666     TEST_TYPE_ALIGN  (ULONG_PTR, 4)
3667     TEST_TYPE_UNSIGNED(ULONG_PTR)
3668 }
3669
3670 static void test_pack_ACCESS_ALLOWED_ACE(void)
3671 {
3672     /* ACCESS_ALLOWED_ACE */
3673     TEST_TYPE_SIZE   (ACCESS_ALLOWED_ACE, 12)
3674     TEST_TYPE_ALIGN  (ACCESS_ALLOWED_ACE, 4)
3675     TEST_FIELD_SIZE  (ACCESS_ALLOWED_ACE, Header, 4)
3676     TEST_FIELD_ALIGN (ACCESS_ALLOWED_ACE, Header, 2)
3677     TEST_FIELD_OFFSET(ACCESS_ALLOWED_ACE, Header, 0)
3678     TEST_FIELD_SIZE  (ACCESS_ALLOWED_ACE, Mask, 4)
3679     TEST_FIELD_ALIGN (ACCESS_ALLOWED_ACE, Mask, 4)
3680     TEST_FIELD_OFFSET(ACCESS_ALLOWED_ACE, Mask, 4)
3681     TEST_FIELD_SIZE  (ACCESS_ALLOWED_ACE, SidStart, 4)
3682     TEST_FIELD_ALIGN (ACCESS_ALLOWED_ACE, SidStart, 4)
3683     TEST_FIELD_OFFSET(ACCESS_ALLOWED_ACE, SidStart, 8)
3684 }
3685
3686 static void test_pack_ACCESS_DENIED_ACE(void)
3687 {
3688     /* ACCESS_DENIED_ACE */
3689     TEST_TYPE_SIZE   (ACCESS_DENIED_ACE, 12)
3690     TEST_TYPE_ALIGN  (ACCESS_DENIED_ACE, 4)
3691     TEST_FIELD_SIZE  (ACCESS_DENIED_ACE, Header, 4)
3692     TEST_FIELD_ALIGN (ACCESS_DENIED_ACE, Header, 2)
3693     TEST_FIELD_OFFSET(ACCESS_DENIED_ACE, Header, 0)
3694     TEST_FIELD_SIZE  (ACCESS_DENIED_ACE, Mask, 4)
3695     TEST_FIELD_ALIGN (ACCESS_DENIED_ACE, Mask, 4)
3696     TEST_FIELD_OFFSET(ACCESS_DENIED_ACE, Mask, 4)
3697     TEST_FIELD_SIZE  (ACCESS_DENIED_ACE, SidStart, 4)
3698     TEST_FIELD_ALIGN (ACCESS_DENIED_ACE, SidStart, 4)
3699     TEST_FIELD_OFFSET(ACCESS_DENIED_ACE, SidStart, 8)
3700 }
3701
3702 static void test_pack_ACCESS_MASK(void)
3703 {
3704     /* ACCESS_MASK */
3705     TEST_TYPE_SIZE   (ACCESS_MASK, 4)
3706     TEST_TYPE_ALIGN  (ACCESS_MASK, 4)
3707     TEST_TYPE_UNSIGNED(ACCESS_MASK)
3708 }
3709
3710 static void test_pack_ACE_HEADER(void)
3711 {
3712     /* ACE_HEADER */
3713     TEST_TYPE_SIZE   (ACE_HEADER, 4)
3714     TEST_TYPE_ALIGN  (ACE_HEADER, 2)
3715     TEST_FIELD_SIZE  (ACE_HEADER, AceType, 1)
3716     TEST_FIELD_ALIGN (ACE_HEADER, AceType, 1)
3717     TEST_FIELD_OFFSET(ACE_HEADER, AceType, 0)
3718     TEST_FIELD_SIZE  (ACE_HEADER, AceFlags, 1)
3719     TEST_FIELD_ALIGN (ACE_HEADER, AceFlags, 1)
3720     TEST_FIELD_OFFSET(ACE_HEADER, AceFlags, 1)
3721     TEST_FIELD_SIZE  (ACE_HEADER, AceSize, 2)
3722     TEST_FIELD_ALIGN (ACE_HEADER, AceSize, 2)
3723     TEST_FIELD_OFFSET(ACE_HEADER, AceSize, 2)
3724 }
3725
3726 static void test_pack_ACL(void)
3727 {
3728     /* ACL */
3729     TEST_TYPE_SIZE   (ACL, 8)
3730     TEST_TYPE_ALIGN  (ACL, 2)
3731     TEST_FIELD_SIZE  (ACL, AclRevision, 1)
3732     TEST_FIELD_ALIGN (ACL, AclRevision, 1)
3733     TEST_FIELD_OFFSET(ACL, AclRevision, 0)
3734     TEST_FIELD_SIZE  (ACL, Sbz1, 1)
3735     TEST_FIELD_ALIGN (ACL, Sbz1, 1)
3736     TEST_FIELD_OFFSET(ACL, Sbz1, 1)
3737     TEST_FIELD_SIZE  (ACL, AclSize, 2)
3738     TEST_FIELD_ALIGN (ACL, AclSize, 2)
3739     TEST_FIELD_OFFSET(ACL, AclSize, 2)
3740     TEST_FIELD_SIZE  (ACL, AceCount, 2)
3741     TEST_FIELD_ALIGN (ACL, AceCount, 2)
3742     TEST_FIELD_OFFSET(ACL, AceCount, 4)
3743     TEST_FIELD_SIZE  (ACL, Sbz2, 2)
3744     TEST_FIELD_ALIGN (ACL, Sbz2, 2)
3745     TEST_FIELD_OFFSET(ACL, Sbz2, 6)
3746 }
3747
3748 static void test_pack_ACL_REVISION_INFORMATION(void)
3749 {
3750     /* ACL_REVISION_INFORMATION */
3751     TEST_TYPE_SIZE   (ACL_REVISION_INFORMATION, 4)
3752     TEST_TYPE_ALIGN  (ACL_REVISION_INFORMATION, 4)
3753     TEST_FIELD_SIZE  (ACL_REVISION_INFORMATION, AclRevision, 4)
3754     TEST_FIELD_ALIGN (ACL_REVISION_INFORMATION, AclRevision, 4)
3755     TEST_FIELD_OFFSET(ACL_REVISION_INFORMATION, AclRevision, 0)
3756 }
3757
3758 static void test_pack_ACL_SIZE_INFORMATION(void)
3759 {
3760     /* ACL_SIZE_INFORMATION */
3761     TEST_TYPE_SIZE   (ACL_SIZE_INFORMATION, 12)
3762     TEST_TYPE_ALIGN  (ACL_SIZE_INFORMATION, 4)
3763     TEST_FIELD_SIZE  (ACL_SIZE_INFORMATION, AceCount, 4)
3764     TEST_FIELD_ALIGN (ACL_SIZE_INFORMATION, AceCount, 4)
3765     TEST_FIELD_OFFSET(ACL_SIZE_INFORMATION, AceCount, 0)
3766     TEST_FIELD_SIZE  (ACL_SIZE_INFORMATION, AclBytesInUse, 4)
3767     TEST_FIELD_ALIGN (ACL_SIZE_INFORMATION, AclBytesInUse, 4)
3768     TEST_FIELD_OFFSET(ACL_SIZE_INFORMATION, AclBytesInUse, 4)
3769     TEST_FIELD_SIZE  (ACL_SIZE_INFORMATION, AclBytesFree, 4)
3770     TEST_FIELD_ALIGN (ACL_SIZE_INFORMATION, AclBytesFree, 4)
3771     TEST_FIELD_OFFSET(ACL_SIZE_INFORMATION, AclBytesFree, 8)
3772 }
3773
3774 static void test_pack_BOOLEAN(void)
3775 {
3776     /* BOOLEAN */
3777     TEST_TYPE_SIZE   (BOOLEAN, 1)
3778     TEST_TYPE_ALIGN  (BOOLEAN, 1)
3779     TEST_TYPE_UNSIGNED(BOOLEAN)
3780 }
3781
3782 static void test_pack_CCHAR(void)
3783 {
3784     /* CCHAR */
3785     TEST_TYPE_SIZE   (CCHAR, 1)
3786     TEST_TYPE_ALIGN  (CCHAR, 1)
3787 }
3788
3789 static void test_pack_CHAR(void)
3790 {
3791     /* CHAR */
3792     TEST_TYPE_SIZE   (CHAR, 1)
3793     TEST_TYPE_ALIGN  (CHAR, 1)
3794 }
3795
3796 static void test_pack_DWORDLONG(void)
3797 {
3798     /* DWORDLONG */
3799     TEST_TYPE_SIZE   (DWORDLONG, 8)
3800     TEST_TYPE_ALIGN  (DWORDLONG, 8)
3801     TEST_TYPE_UNSIGNED(DWORDLONG)
3802 }
3803
3804 static void test_pack_EXCEPTION_POINTERS(void)
3805 {
3806     /* EXCEPTION_POINTERS */
3807     TEST_TYPE_SIZE   (EXCEPTION_POINTERS, 8)
3808     TEST_TYPE_ALIGN  (EXCEPTION_POINTERS, 4)
3809     TEST_FIELD_SIZE  (EXCEPTION_POINTERS, ExceptionRecord, 4)
3810     TEST_FIELD_ALIGN (EXCEPTION_POINTERS, ExceptionRecord, 4)
3811     TEST_FIELD_OFFSET(EXCEPTION_POINTERS, ExceptionRecord, 0)
3812     TEST_FIELD_SIZE  (EXCEPTION_POINTERS, ContextRecord, 4)
3813     TEST_FIELD_ALIGN (EXCEPTION_POINTERS, ContextRecord, 4)
3814     TEST_FIELD_OFFSET(EXCEPTION_POINTERS, ContextRecord, 4)
3815 }
3816
3817 static void test_pack_EXCEPTION_RECORD(void)
3818 {
3819     /* EXCEPTION_RECORD */
3820     TEST_TYPE_SIZE   (EXCEPTION_RECORD, 80)
3821     TEST_TYPE_ALIGN  (EXCEPTION_RECORD, 4)
3822     TEST_FIELD_SIZE  (EXCEPTION_RECORD, ExceptionCode, 4)
3823     TEST_FIELD_ALIGN (EXCEPTION_RECORD, ExceptionCode, 4)
3824     TEST_FIELD_OFFSET(EXCEPTION_RECORD, ExceptionCode, 0)
3825     TEST_FIELD_SIZE  (EXCEPTION_RECORD, ExceptionFlags, 4)
3826     TEST_FIELD_ALIGN (EXCEPTION_RECORD, ExceptionFlags, 4)
3827     TEST_FIELD_OFFSET(EXCEPTION_RECORD, ExceptionFlags, 4)
3828     TEST_FIELD_SIZE  (EXCEPTION_RECORD, ExceptionRecord, 4)
3829     TEST_FIELD_ALIGN (EXCEPTION_RECORD, ExceptionRecord, 4)
3830     TEST_FIELD_OFFSET(EXCEPTION_RECORD, ExceptionRecord, 8)
3831     TEST_FIELD_SIZE  (EXCEPTION_RECORD, ExceptionAddress, 4)
3832     TEST_FIELD_ALIGN (EXCEPTION_RECORD, ExceptionAddress, 4)
3833     TEST_FIELD_OFFSET(EXCEPTION_RECORD, ExceptionAddress, 12)
3834     TEST_FIELD_SIZE  (EXCEPTION_RECORD, NumberParameters, 4)
3835     TEST_FIELD_ALIGN (EXCEPTION_RECORD, NumberParameters, 4)
3836     TEST_FIELD_OFFSET(EXCEPTION_RECORD, NumberParameters, 16)
3837     TEST_FIELD_SIZE  (EXCEPTION_RECORD, ExceptionInformation, 60)
3838     TEST_FIELD_ALIGN (EXCEPTION_RECORD, ExceptionInformation, 4)
3839     TEST_FIELD_OFFSET(EXCEPTION_RECORD, ExceptionInformation, 20)
3840 }
3841
3842 static void test_pack_EXECUTION_STATE(void)
3843 {
3844     /* EXECUTION_STATE */
3845     TEST_TYPE_SIZE   (EXECUTION_STATE, 4)
3846     TEST_TYPE_ALIGN  (EXECUTION_STATE, 4)
3847     TEST_TYPE_UNSIGNED(EXECUTION_STATE)
3848 }
3849
3850 static void test_pack_FLOATING_SAVE_AREA(void)
3851 {
3852     /* FLOATING_SAVE_AREA */
3853     TEST_TYPE_SIZE   (FLOATING_SAVE_AREA, 112)
3854     TEST_TYPE_ALIGN  (FLOATING_SAVE_AREA, 4)
3855     TEST_FIELD_SIZE  (FLOATING_SAVE_AREA, ControlWord, 4)
3856     TEST_FIELD_ALIGN (FLOATING_SAVE_AREA, ControlWord, 4)
3857     TEST_FIELD_OFFSET(FLOATING_SAVE_AREA, ControlWord, 0)
3858     TEST_FIELD_SIZE  (FLOATING_SAVE_AREA, StatusWord, 4)
3859     TEST_FIELD_ALIGN (FLOATING_SAVE_AREA, StatusWord, 4)
3860     TEST_FIELD_OFFSET(FLOATING_SAVE_AREA, StatusWord, 4)
3861     TEST_FIELD_SIZE  (FLOATING_SAVE_AREA, TagWord, 4)
3862     TEST_FIELD_ALIGN (FLOATING_SAVE_AREA, TagWord, 4)
3863     TEST_FIELD_OFFSET(FLOATING_SAVE_AREA, TagWord, 8)
3864     TEST_FIELD_SIZE  (FLOATING_SAVE_AREA, ErrorOffset, 4)
3865     TEST_FIELD_ALIGN (FLOATING_SAVE_AREA, ErrorOffset, 4)
3866     TEST_FIELD_OFFSET(FLOATING_SAVE_AREA, ErrorOffset, 12)
3867     TEST_FIELD_SIZE  (FLOATING_SAVE_AREA, ErrorSelector, 4)
3868     TEST_FIELD_ALIGN (FLOATING_SAVE_AREA, ErrorSelector, 4)
3869     TEST_FIELD_OFFSET(FLOATING_SAVE_AREA, ErrorSelector, 16)
3870     TEST_FIELD_SIZE  (FLOATING_SAVE_AREA, DataOffset, 4)
3871     TEST_FIELD_ALIGN (FLOATING_SAVE_AREA, DataOffset, 4)
3872     TEST_FIELD_OFFSET(FLOATING_SAVE_AREA, DataOffset, 20)
3873     TEST_FIELD_SIZE  (FLOATING_SAVE_AREA, DataSelector, 4)
3874     TEST_FIELD_ALIGN (FLOATING_SAVE_AREA, DataSelector, 4)
3875     TEST_FIELD_OFFSET(FLOATING_SAVE_AREA, DataSelector, 24)
3876     TEST_FIELD_SIZE  (FLOATING_SAVE_AREA, RegisterArea, 80)
3877     TEST_FIELD_ALIGN (FLOATING_SAVE_AREA, RegisterArea, 1)
3878     TEST_FIELD_OFFSET(FLOATING_SAVE_AREA, RegisterArea, 28)
3879     TEST_FIELD_SIZE  (FLOATING_SAVE_AREA, Cr0NpxState, 4)
3880     TEST_FIELD_ALIGN (FLOATING_SAVE_AREA, Cr0NpxState, 4)
3881     TEST_FIELD_OFFSET(FLOATING_SAVE_AREA, Cr0NpxState, 108)
3882 }
3883
3884 static void test_pack_FPO_DATA(void)
3885 {
3886     /* FPO_DATA */
3887     TEST_TYPE_SIZE   (FPO_DATA, 16)
3888     TEST_TYPE_ALIGN  (FPO_DATA, 4)
3889     TEST_FIELD_SIZE  (FPO_DATA, ulOffStart, 4)
3890     TEST_FIELD_ALIGN (FPO_DATA, ulOffStart, 4)
3891     TEST_FIELD_OFFSET(FPO_DATA, ulOffStart, 0)
3892     TEST_FIELD_SIZE  (FPO_DATA, cbProcSize, 4)
3893     TEST_FIELD_ALIGN (FPO_DATA, cbProcSize, 4)
3894     TEST_FIELD_OFFSET(FPO_DATA, cbProcSize, 4)
3895     TEST_FIELD_SIZE  (FPO_DATA, cdwLocals, 4)
3896     TEST_FIELD_ALIGN (FPO_DATA, cdwLocals, 4)
3897     TEST_FIELD_OFFSET(FPO_DATA, cdwLocals, 8)
3898     TEST_FIELD_SIZE  (FPO_DATA, cdwParams, 2)
3899     TEST_FIELD_ALIGN (FPO_DATA, cdwParams, 2)
3900     TEST_FIELD_OFFSET(FPO_DATA, cdwParams, 12)
3901 }
3902
3903 static void test_pack_GENERIC_MAPPING(void)
3904 {
3905     /* GENERIC_MAPPING */
3906     TEST_TYPE_SIZE   (GENERIC_MAPPING, 16)
3907     TEST_TYPE_ALIGN  (GENERIC_MAPPING, 4)
3908     TEST_FIELD_SIZE  (GENERIC_MAPPING, GenericRead, 4)
3909     TEST_FIELD_ALIGN (GENERIC_MAPPING, GenericRead, 4)
3910     TEST_FIELD_OFFSET(GENERIC_MAPPING, GenericRead, 0)
3911     TEST_FIELD_SIZE  (GENERIC_MAPPING, GenericWrite, 4)
3912     TEST_FIELD_ALIGN (GENERIC_MAPPING, GenericWrite, 4)
3913     TEST_FIELD_OFFSET(GENERIC_MAPPING, GenericWrite, 4)
3914     TEST_FIELD_SIZE  (GENERIC_MAPPING, GenericExecute, 4)
3915     TEST_FIELD_ALIGN (GENERIC_MAPPING, GenericExecute, 4)
3916     TEST_FIELD_OFFSET(GENERIC_MAPPING, GenericExecute, 8)
3917     TEST_FIELD_SIZE  (GENERIC_MAPPING, GenericAll, 4)
3918     TEST_FIELD_ALIGN (GENERIC_MAPPING, GenericAll, 4)
3919     TEST_FIELD_OFFSET(GENERIC_MAPPING, GenericAll, 12)
3920 }
3921
3922 static void test_pack_HANDLE(void)
3923 {
3924     /* HANDLE */
3925     TEST_TYPE_SIZE   (HANDLE, 4)
3926     TEST_TYPE_ALIGN  (HANDLE, 4)
3927 }
3928
3929 static void test_pack_HRESULT(void)
3930 {
3931     /* HRESULT */
3932     TEST_TYPE_SIZE   (HRESULT, 4)
3933     TEST_TYPE_ALIGN  (HRESULT, 4)
3934 }
3935
3936 static void test_pack_IMAGE_ARCHIVE_MEMBER_HEADER(void)
3937 {
3938     /* IMAGE_ARCHIVE_MEMBER_HEADER */
3939     TEST_TYPE_SIZE   (IMAGE_ARCHIVE_MEMBER_HEADER, 60)
3940     TEST_TYPE_ALIGN  (IMAGE_ARCHIVE_MEMBER_HEADER, 1)
3941     TEST_FIELD_SIZE  (IMAGE_ARCHIVE_MEMBER_HEADER, Name, 16)
3942     TEST_FIELD_ALIGN (IMAGE_ARCHIVE_MEMBER_HEADER, Name, 1)
3943     TEST_FIELD_OFFSET(IMAGE_ARCHIVE_MEMBER_HEADER, Name, 0)
3944     TEST_FIELD_SIZE  (IMAGE_ARCHIVE_MEMBER_HEADER, Date, 12)
3945     TEST_FIELD_ALIGN (IMAGE_ARCHIVE_MEMBER_HEADER, Date, 1)
3946     TEST_FIELD_OFFSET(IMAGE_ARCHIVE_MEMBER_HEADER, Date, 16)
3947     TEST_FIELD_SIZE  (IMAGE_ARCHIVE_MEMBER_HEADER, UserID, 6)
3948     TEST_FIELD_ALIGN (IMAGE_ARCHIVE_MEMBER_HEADER, UserID, 1)
3949     TEST_FIELD_OFFSET(IMAGE_ARCHIVE_MEMBER_HEADER, UserID, 28)
3950     TEST_FIELD_SIZE  (IMAGE_ARCHIVE_MEMBER_HEADER, GroupID, 6)
3951     TEST_FIELD_ALIGN (IMAGE_ARCHIVE_MEMBER_HEADER, GroupID, 1)
3952     TEST_FIELD_OFFSET(IMAGE_ARCHIVE_MEMBER_HEADER, GroupID, 34)
3953     TEST_FIELD_SIZE  (IMAGE_ARCHIVE_MEMBER_HEADER, Mode, 8)
3954     TEST_FIELD_ALIGN (IMAGE_ARCHIVE_MEMBER_HEADER, Mode, 1)
3955     TEST_FIELD_OFFSET(IMAGE_ARCHIVE_MEMBER_HEADER, Mode, 40)
3956     TEST_FIELD_SIZE  (IMAGE_ARCHIVE_MEMBER_HEADER, Size, 10)
3957     TEST_FIELD_ALIGN (IMAGE_ARCHIVE_MEMBER_HEADER, Size, 1)
3958     TEST_FIELD_OFFSET(IMAGE_ARCHIVE_MEMBER_HEADER, Size, 48)
3959     TEST_FIELD_SIZE  (IMAGE_ARCHIVE_MEMBER_HEADER, EndHeader, 2)
3960     TEST_FIELD_ALIGN (IMAGE_ARCHIVE_MEMBER_HEADER, EndHeader, 1)
3961     TEST_FIELD_OFFSET(IMAGE_ARCHIVE_MEMBER_HEADER, EndHeader, 58)
3962 }
3963
3964 static void test_pack_IMAGE_AUX_SYMBOL(void)
3965 {
3966     /* IMAGE_AUX_SYMBOL (pack 2) */
3967 }
3968
3969 static void test_pack_IMAGE_BASE_RELOCATION(void)
3970 {
3971     /* IMAGE_BASE_RELOCATION */
3972     TEST_TYPE_SIZE   (IMAGE_BASE_RELOCATION, 8)
3973     TEST_TYPE_ALIGN  (IMAGE_BASE_RELOCATION, 4)
3974     TEST_FIELD_SIZE  (IMAGE_BASE_RELOCATION, VirtualAddress, 4)
3975     TEST_FIELD_ALIGN (IMAGE_BASE_RELOCATION, VirtualAddress, 4)
3976     TEST_FIELD_OFFSET(IMAGE_BASE_RELOCATION, VirtualAddress, 0)
3977     TEST_FIELD_SIZE  (IMAGE_BASE_RELOCATION, SizeOfBlock, 4)
3978     TEST_FIELD_ALIGN (IMAGE_BASE_RELOCATION, SizeOfBlock, 4)
3979     TEST_FIELD_OFFSET(IMAGE_BASE_RELOCATION, SizeOfBlock, 4)
3980 }
3981
3982 static void test_pack_IMAGE_BOUND_FORWARDER_REF(void)
3983 {
3984     /* IMAGE_BOUND_FORWARDER_REF */
3985     TEST_TYPE_SIZE   (IMAGE_BOUND_FORWARDER_REF, 8)
3986     TEST_TYPE_ALIGN  (IMAGE_BOUND_FORWARDER_REF, 4)
3987     TEST_FIELD_SIZE  (IMAGE_BOUND_FORWARDER_REF, TimeDateStamp, 4)
3988     TEST_FIELD_ALIGN (IMAGE_BOUND_FORWARDER_REF, TimeDateStamp, 4)
3989     TEST_FIELD_OFFSET(IMAGE_BOUND_FORWARDER_REF, TimeDateStamp, 0)
3990     TEST_FIELD_SIZE  (IMAGE_BOUND_FORWARDER_REF, OffsetModuleName, 2)
3991     TEST_FIELD_ALIGN (IMAGE_BOUND_FORWARDER_REF, OffsetModuleName, 2)
3992     TEST_FIELD_OFFSET(IMAGE_BOUND_FORWARDER_REF, OffsetModuleName, 4)
3993     TEST_FIELD_SIZE  (IMAGE_BOUND_FORWARDER_REF, Reserved, 2)
3994     TEST_FIELD_ALIGN (IMAGE_BOUND_FORWARDER_REF, Reserved, 2)
3995     TEST_FIELD_OFFSET(IMAGE_BOUND_FORWARDER_REF, Reserved, 6)
3996 }
3997
3998 static void test_pack_IMAGE_BOUND_IMPORT_DESCRIPTOR(void)
3999 {
4000     /* IMAGE_BOUND_IMPORT_DESCRIPTOR */
4001     TEST_TYPE_SIZE   (IMAGE_BOUND_IMPORT_DESCRIPTOR, 8)
4002     TEST_TYPE_ALIGN  (IMAGE_BOUND_IMPORT_DESCRIPTOR, 4)
4003     TEST_FIELD_SIZE  (IMAGE_BOUND_IMPORT_DESCRIPTOR, TimeDateStamp, 4)
4004     TEST_FIELD_ALIGN (IMAGE_BOUND_IMPORT_DESCRIPTOR, TimeDateStamp, 4)
4005     TEST_FIELD_OFFSET(IMAGE_BOUND_IMPORT_DESCRIPTOR, TimeDateStamp, 0)
4006     TEST_FIELD_SIZE  (IMAGE_BOUND_IMPORT_DESCRIPTOR, OffsetModuleName, 2)
4007     TEST_FIELD_ALIGN (IMAGE_BOUND_IMPORT_DESCRIPTOR, OffsetModuleName, 2)
4008     TEST_FIELD_OFFSET(IMAGE_BOUND_IMPORT_DESCRIPTOR, OffsetModuleName, 4)
4009     TEST_FIELD_SIZE  (IMAGE_BOUND_IMPORT_DESCRIPTOR, NumberOfModuleForwarderRefs, 2)
4010     TEST_FIELD_ALIGN (IMAGE_BOUND_IMPORT_DESCRIPTOR, NumberOfModuleForwarderRefs, 2)
4011     TEST_FIELD_OFFSET(IMAGE_BOUND_IMPORT_DESCRIPTOR, NumberOfModuleForwarderRefs, 6)
4012 }
4013
4014 static void test_pack_IMAGE_COFF_SYMBOLS_HEADER(void)
4015 {
4016     /* IMAGE_COFF_SYMBOLS_HEADER */
4017     TEST_TYPE_SIZE   (IMAGE_COFF_SYMBOLS_HEADER, 32)
4018     TEST_TYPE_ALIGN  (IMAGE_COFF_SYMBOLS_HEADER, 4)
4019     TEST_FIELD_SIZE  (IMAGE_COFF_SYMBOLS_HEADER, NumberOfSymbols, 4)
4020     TEST_FIELD_ALIGN (IMAGE_COFF_SYMBOLS_HEADER, NumberOfSymbols, 4)
4021     TEST_FIELD_OFFSET(IMAGE_COFF_SYMBOLS_HEADER, NumberOfSymbols, 0)
4022     TEST_FIELD_SIZE  (IMAGE_COFF_SYMBOLS_HEADER, LvaToFirstSymbol, 4)
4023     TEST_FIELD_ALIGN (IMAGE_COFF_SYMBOLS_HEADER, LvaToFirstSymbol, 4)
4024     TEST_FIELD_OFFSET(IMAGE_COFF_SYMBOLS_HEADER, LvaToFirstSymbol, 4)
4025     TEST_FIELD_SIZE  (IMAGE_COFF_SYMBOLS_HEADER, NumberOfLinenumbers, 4)
4026     TEST_FIELD_ALIGN (IMAGE_COFF_SYMBOLS_HEADER, NumberOfLinenumbers, 4)
4027     TEST_FIELD_OFFSET(IMAGE_COFF_SYMBOLS_HEADER, NumberOfLinenumbers, 8)
4028     TEST_FIELD_SIZE  (IMAGE_COFF_SYMBOLS_HEADER, LvaToFirstLinenumber, 4)
4029     TEST_FIELD_ALIGN (IMAGE_COFF_SYMBOLS_HEADER, LvaToFirstLinenumber, 4)
4030     TEST_FIELD_OFFSET(IMAGE_COFF_SYMBOLS_HEADER, LvaToFirstLinenumber, 12)
4031     TEST_FIELD_SIZE  (IMAGE_COFF_SYMBOLS_HEADER, RvaToFirstByteOfCode, 4)
4032     TEST_FIELD_ALIGN (IMAGE_COFF_SYMBOLS_HEADER, RvaToFirstByteOfCode, 4)
4033     TEST_FIELD_OFFSET(IMAGE_COFF_SYMBOLS_HEADER, RvaToFirstByteOfCode, 16)
4034     TEST_FIELD_SIZE  (IMAGE_COFF_SYMBOLS_HEADER, RvaToLastByteOfCode, 4)
4035     TEST_FIELD_ALIGN (IMAGE_COFF_SYMBOLS_HEADER, RvaToLastByteOfCode, 4)
4036     TEST_FIELD_OFFSET(IMAGE_COFF_SYMBOLS_HEADER, RvaToLastByteOfCode, 20)
4037     TEST_FIELD_SIZE  (IMAGE_COFF_SYMBOLS_HEADER, RvaToFirstByteOfData, 4)
4038     TEST_FIELD_ALIGN (IMAGE_COFF_SYMBOLS_HEADER, RvaToFirstByteOfData, 4)
4039     TEST_FIELD_OFFSET(IMAGE_COFF_SYMBOLS_HEADER, RvaToFirstByteOfData, 24)
4040     TEST_FIELD_SIZE  (IMAGE_COFF_SYMBOLS_HEADER, RvaToLastByteOfData, 4)
4041     TEST_FIELD_ALIGN (IMAGE_COFF_SYMBOLS_HEADER, RvaToLastByteOfData, 4)
4042     TEST_FIELD_OFFSET(IMAGE_COFF_SYMBOLS_HEADER, RvaToLastByteOfData, 28)
4043 }
4044
4045 static void test_pack_IMAGE_DATA_DIRECTORY(void)
4046 {
4047     /* IMAGE_DATA_DIRECTORY */
4048     TEST_TYPE_SIZE   (IMAGE_DATA_DIRECTORY, 8)
4049     TEST_TYPE_ALIGN  (IMAGE_DATA_DIRECTORY, 4)
4050     TEST_FIELD_SIZE  (IMAGE_DATA_DIRECTORY, VirtualAddress, 4)
4051     TEST_FIELD_ALIGN (IMAGE_DATA_DIRECTORY, VirtualAddress, 4)
4052     TEST_FIELD_OFFSET(IMAGE_DATA_DIRECTORY, VirtualAddress, 0)
4053     TEST_FIELD_SIZE  (IMAGE_DATA_DIRECTORY, Size, 4)
4054     TEST_FIELD_ALIGN (IMAGE_DATA_DIRECTORY, Size, 4)
4055     TEST_FIELD_OFFSET(IMAGE_DATA_DIRECTORY, Size, 4)
4056 }
4057
4058 static void test_pack_IMAGE_DEBUG_DIRECTORY(void)
4059 {
4060     /* IMAGE_DEBUG_DIRECTORY */
4061     TEST_TYPE_SIZE   (IMAGE_DEBUG_DIRECTORY, 28)
4062     TEST_TYPE_ALIGN  (IMAGE_DEBUG_DIRECTORY, 4)
4063     TEST_FIELD_SIZE  (IMAGE_DEBUG_DIRECTORY, Characteristics, 4)
4064     TEST_FIELD_ALIGN (IMAGE_DEBUG_DIRECTORY, Characteristics, 4)
4065     TEST_FIELD_OFFSET(IMAGE_DEBUG_DIRECTORY, Characteristics, 0)
4066     TEST_FIELD_SIZE  (IMAGE_DEBUG_DIRECTORY, TimeDateStamp, 4)
4067     TEST_FIELD_ALIGN (IMAGE_DEBUG_DIRECTORY, TimeDateStamp, 4)
4068     TEST_FIELD_OFFSET(IMAGE_DEBUG_DIRECTORY, TimeDateStamp, 4)
4069     TEST_FIELD_SIZE  (IMAGE_DEBUG_DIRECTORY, MajorVersion, 2)
4070     TEST_FIELD_ALIGN (IMAGE_DEBUG_DIRECTORY, MajorVersion, 2)
4071     TEST_FIELD_OFFSET(IMAGE_DEBUG_DIRECTORY, MajorVersion, 8)
4072     TEST_FIELD_SIZE  (IMAGE_DEBUG_DIRECTORY, MinorVersion, 2)
4073     TEST_FIELD_ALIGN (IMAGE_DEBUG_DIRECTORY, MinorVersion, 2)
4074     TEST_FIELD_OFFSET(IMAGE_DEBUG_DIRECTORY, MinorVersion, 10)
4075     TEST_FIELD_SIZE  (IMAGE_DEBUG_DIRECTORY, Type, 4)
4076     TEST_FIELD_ALIGN (IMAGE_DEBUG_DIRECTORY, Type, 4)
4077     TEST_FIELD_OFFSET(IMAGE_DEBUG_DIRECTORY, Type, 12)
4078     TEST_FIELD_SIZE  (IMAGE_DEBUG_DIRECTORY, SizeOfData, 4)
4079     TEST_FIELD_ALIGN (IMAGE_DEBUG_DIRECTORY, SizeOfData, 4)
4080     TEST_FIELD_OFFSET(IMAGE_DEBUG_DIRECTORY, SizeOfData, 16)
4081     TEST_FIELD_SIZE  (IMAGE_DEBUG_DIRECTORY, AddressOfRawData, 4)
4082     TEST_FIELD_ALIGN (IMAGE_DEBUG_DIRECTORY, AddressOfRawData, 4)
4083     TEST_FIELD_OFFSET(IMAGE_DEBUG_DIRECTORY, AddressOfRawData, 20)
4084     TEST_FIELD_SIZE  (IMAGE_DEBUG_DIRECTORY, PointerToRawData, 4)
4085     TEST_FIELD_ALIGN (IMAGE_DEBUG_DIRECTORY, PointerToRawData, 4)
4086     TEST_FIELD_OFFSET(IMAGE_DEBUG_DIRECTORY, PointerToRawData, 24)
4087 }
4088
4089 static void test_pack_IMAGE_DEBUG_MISC(void)
4090 {
4091     /* IMAGE_DEBUG_MISC */
4092     TEST_TYPE_SIZE   (IMAGE_DEBUG_MISC, 16)
4093     TEST_TYPE_ALIGN  (IMAGE_DEBUG_MISC, 4)
4094     TEST_FIELD_SIZE  (IMAGE_DEBUG_MISC, DataType, 4)
4095     TEST_FIELD_ALIGN (IMAGE_DEBUG_MISC, DataType, 4)
4096     TEST_FIELD_OFFSET(IMAGE_DEBUG_MISC, DataType, 0)
4097     TEST_FIELD_SIZE  (IMAGE_DEBUG_MISC, Length, 4)
4098     TEST_FIELD_ALIGN (IMAGE_DEBUG_MISC, Length, 4)
4099     TEST_FIELD_OFFSET(IMAGE_DEBUG_MISC, Length, 4)
4100     TEST_FIELD_SIZE  (IMAGE_DEBUG_MISC, Unicode, 1)
4101     TEST_FIELD_ALIGN (IMAGE_DEBUG_MISC, Unicode, 1)
4102     TEST_FIELD_OFFSET(IMAGE_DEBUG_MISC, Unicode, 8)
4103     TEST_FIELD_SIZE  (IMAGE_DEBUG_MISC, Reserved, 3)
4104     TEST_FIELD_ALIGN (IMAGE_DEBUG_MISC, Reserved, 1)
4105     TEST_FIELD_OFFSET(IMAGE_DEBUG_MISC, Reserved, 9)
4106     TEST_FIELD_SIZE  (IMAGE_DEBUG_MISC, Data, 1)
4107     TEST_FIELD_ALIGN (IMAGE_DEBUG_MISC, Data, 1)
4108     TEST_FIELD_OFFSET(IMAGE_DEBUG_MISC, Data, 12)
4109 }
4110
4111 static void test_pack_IMAGE_DOS_HEADER(void)
4112 {
4113     /* IMAGE_DOS_HEADER (pack 2) */
4114     TEST_TYPE_SIZE   (IMAGE_DOS_HEADER, 64)
4115     TEST_TYPE_ALIGN  (IMAGE_DOS_HEADER, 2)
4116     TEST_FIELD_SIZE  (IMAGE_DOS_HEADER, e_magic, 2)
4117     TEST_FIELD_ALIGN (IMAGE_DOS_HEADER, e_magic, 2)
4118     TEST_FIELD_OFFSET(IMAGE_DOS_HEADER, e_magic, 0)
4119     TEST_FIELD_SIZE  (IMAGE_DOS_HEADER, e_cblp, 2)
4120     TEST_FIELD_ALIGN (IMAGE_DOS_HEADER, e_cblp, 2)
4121     TEST_FIELD_OFFSET(IMAGE_DOS_HEADER, e_cblp, 2)
4122     TEST_FIELD_SIZE  (IMAGE_DOS_HEADER, e_cp, 2)
4123     TEST_FIELD_ALIGN (IMAGE_DOS_HEADER, e_cp, 2)
4124     TEST_FIELD_OFFSET(IMAGE_DOS_HEADER, e_cp, 4)
4125     TEST_FIELD_SIZE  (IMAGE_DOS_HEADER, e_crlc, 2)
4126     TEST_FIELD_ALIGN (IMAGE_DOS_HEADER, e_crlc, 2)
4127     TEST_FIELD_OFFSET(IMAGE_DOS_HEADER, e_crlc, 6)
4128     TEST_FIELD_SIZE  (IMAGE_DOS_HEADER, e_cparhdr, 2)
4129     TEST_FIELD_ALIGN (IMAGE_DOS_HEADER, e_cparhdr, 2)
4130     TEST_FIELD_OFFSET(IMAGE_DOS_HEADER, e_cparhdr, 8)
4131     TEST_FIELD_SIZE  (IMAGE_DOS_HEADER, e_minalloc, 2)
4132     TEST_FIELD_ALIGN (IMAGE_DOS_HEADER, e_minalloc, 2)
4133     TEST_FIELD_OFFSET(IMAGE_DOS_HEADER, e_minalloc, 10)
4134     TEST_FIELD_SIZE  (IMAGE_DOS_HEADER, e_maxalloc, 2)
4135     TEST_FIELD_ALIGN (IMAGE_DOS_HEADER, e_maxalloc, 2)
4136     TEST_FIELD_OFFSET(IMAGE_DOS_HEADER, e_maxalloc, 12)
4137     TEST_FIELD_SIZE  (IMAGE_DOS_HEADER, e_ss, 2)
4138     TEST_FIELD_ALIGN (IMAGE_DOS_HEADER, e_ss, 2)
4139     TEST_FIELD_OFFSET(IMAGE_DOS_HEADER, e_ss, 14)
4140     TEST_FIELD_SIZE  (IMAGE_DOS_HEADER, e_sp, 2)
4141     TEST_FIELD_ALIGN (IMAGE_DOS_HEADER, e_sp, 2)
4142     TEST_FIELD_OFFSET(IMAGE_DOS_HEADER, e_sp, 16)
4143     TEST_FIELD_SIZE  (IMAGE_DOS_HEADER, e_csum, 2)
4144     TEST_FIELD_ALIGN (IMAGE_DOS_HEADER, e_csum, 2)
4145     TEST_FIELD_OFFSET(IMAGE_DOS_HEADER, e_csum, 18)
4146     TEST_FIELD_SIZE  (IMAGE_DOS_HEADER, e_ip, 2)
4147     TEST_FIELD_ALIGN (IMAGE_DOS_HEADER, e_ip, 2)
4148     TEST_FIELD_OFFSET(IMAGE_DOS_HEADER, e_ip, 20)
4149     TEST_FIELD_SIZE  (IMAGE_DOS_HEADER, e_cs, 2)
4150     TEST_FIELD_ALIGN (IMAGE_DOS_HEADER, e_cs, 2)
4151     TEST_FIELD_OFFSET(IMAGE_DOS_HEADER, e_cs, 22)
4152     TEST_FIELD_SIZE  (IMAGE_DOS_HEADER, e_lfarlc, 2)
4153     TEST_FIELD_ALIGN (IMAGE_DOS_HEADER, e_lfarlc, 2)
4154     TEST_FIELD_OFFSET(IMAGE_DOS_HEADER, e_lfarlc, 24)
4155     TEST_FIELD_SIZE  (IMAGE_DOS_HEADER, e_ovno, 2)
4156     TEST_FIELD_ALIGN (IMAGE_DOS_HEADER, e_ovno, 2)
4157     TEST_FIELD_OFFSET(IMAGE_DOS_HEADER, e_ovno, 26)
4158     TEST_FIELD_SIZE  (IMAGE_DOS_HEADER, e_res, 8)
4159     TEST_FIELD_ALIGN (IMAGE_DOS_HEADER, e_res, 2)
4160     TEST_FIELD_OFFSET(IMAGE_DOS_HEADER, e_res, 28)
4161     TEST_FIELD_SIZE  (IMAGE_DOS_HEADER, e_oemid, 2)
4162     TEST_FIELD_ALIGN (IMAGE_DOS_HEADER, e_oemid, 2)
4163     TEST_FIELD_OFFSET(IMAGE_DOS_HEADER, e_oemid, 36)
4164     TEST_FIELD_SIZE  (IMAGE_DOS_HEADER, e_oeminfo, 2)
4165     TEST_FIELD_ALIGN (IMAGE_DOS_HEADER, e_oeminfo, 2)
4166     TEST_FIELD_OFFSET(IMAGE_DOS_HEADER, e_oeminfo, 38)
4167     TEST_FIELD_SIZE  (IMAGE_DOS_HEADER, e_res2, 20)
4168     TEST_FIELD_ALIGN (IMAGE_DOS_HEADER, e_res2, 2)
4169     TEST_FIELD_OFFSET(IMAGE_DOS_HEADER, e_res2, 40)
4170     TEST_FIELD_SIZE  (IMAGE_DOS_HEADER, e_lfanew, 4)
4171     TEST_FIELD_ALIGN (IMAGE_DOS_HEADER, e_lfanew, 2)
4172     TEST_FIELD_OFFSET(IMAGE_DOS_HEADER, e_lfanew, 60)
4173 }
4174
4175 static void test_pack_IMAGE_EXPORT_DIRECTORY(void)
4176 {
4177     /* IMAGE_EXPORT_DIRECTORY */
4178     TEST_TYPE_SIZE   (IMAGE_EXPORT_DIRECTORY, 40)
4179     TEST_TYPE_ALIGN  (IMAGE_EXPORT_DIRECTORY, 4)
4180     TEST_FIELD_SIZE  (IMAGE_EXPORT_DIRECTORY, Characteristics, 4)
4181     TEST_FIELD_ALIGN (IMAGE_EXPORT_DIRECTORY, Characteristics, 4)
4182     TEST_FIELD_OFFSET(IMAGE_EXPORT_DIRECTORY, Characteristics, 0)
4183     TEST_FIELD_SIZE  (IMAGE_EXPORT_DIRECTORY, TimeDateStamp, 4)
4184     TEST_FIELD_ALIGN (IMAGE_EXPORT_DIRECTORY, TimeDateStamp, 4)
4185     TEST_FIELD_OFFSET(IMAGE_EXPORT_DIRECTORY, TimeDateStamp, 4)
4186     TEST_FIELD_SIZE  (IMAGE_EXPORT_DIRECTORY, MajorVersion, 2)
4187     TEST_FIELD_ALIGN (IMAGE_EXPORT_DIRECTORY, MajorVersion, 2)
4188     TEST_FIELD_OFFSET(IMAGE_EXPORT_DIRECTORY, MajorVersion, 8)
4189     TEST_FIELD_SIZE  (IMAGE_EXPORT_DIRECTORY, MinorVersion, 2)
4190     TEST_FIELD_ALIGN (IMAGE_EXPORT_DIRECTORY, MinorVersion, 2)
4191     TEST_FIELD_OFFSET(IMAGE_EXPORT_DIRECTORY, MinorVersion, 10)
4192     TEST_FIELD_SIZE  (IMAGE_EXPORT_DIRECTORY, Name, 4)
4193     TEST_FIELD_ALIGN (IMAGE_EXPORT_DIRECTORY, Name, 4)
4194     TEST_FIELD_OFFSET(IMAGE_EXPORT_DIRECTORY, Name, 12)
4195     TEST_FIELD_SIZE  (IMAGE_EXPORT_DIRECTORY, Base, 4)
4196     TEST_FIELD_ALIGN (IMAGE_EXPORT_DIRECTORY, Base, 4)
4197     TEST_FIELD_OFFSET(IMAGE_EXPORT_DIRECTORY, Base, 16)
4198     TEST_FIELD_SIZE  (IMAGE_EXPORT_DIRECTORY, NumberOfFunctions, 4)
4199     TEST_FIELD_ALIGN (IMAGE_EXPORT_DIRECTORY, NumberOfFunctions, 4)
4200     TEST_FIELD_OFFSET(IMAGE_EXPORT_DIRECTORY, NumberOfFunctions, 20)
4201     TEST_FIELD_SIZE  (IMAGE_EXPORT_DIRECTORY, NumberOfNames, 4)
4202     TEST_FIELD_ALIGN (IMAGE_EXPORT_DIRECTORY, NumberOfNames, 4)
4203     TEST_FIELD_OFFSET(IMAGE_EXPORT_DIRECTORY, NumberOfNames, 24)
4204     TEST_FIELD_SIZE  (IMAGE_EXPORT_DIRECTORY, AddressOfFunctions, 4)
4205     TEST_FIELD_ALIGN (IMAGE_EXPORT_DIRECTORY, AddressOfFunctions, 4)
4206     TEST_FIELD_OFFSET(IMAGE_EXPORT_DIRECTORY, AddressOfFunctions, 28)
4207     TEST_FIELD_SIZE  (IMAGE_EXPORT_DIRECTORY, AddressOfNames, 4)
4208     TEST_FIELD_ALIGN (IMAGE_EXPORT_DIRECTORY, AddressOfNames, 4)
4209     TEST_FIELD_OFFSET(IMAGE_EXPORT_DIRECTORY, AddressOfNames, 32)
4210     TEST_FIELD_SIZE  (IMAGE_EXPORT_DIRECTORY, AddressOfNameOrdinals, 4)
4211     TEST_FIELD_ALIGN (IMAGE_EXPORT_DIRECTORY, AddressOfNameOrdinals, 4)
4212     TEST_FIELD_OFFSET(IMAGE_EXPORT_DIRECTORY, AddressOfNameOrdinals, 36)
4213 }
4214
4215 static void test_pack_IMAGE_FILE_HEADER(void)
4216 {
4217     /* IMAGE_FILE_HEADER */
4218     TEST_TYPE_SIZE   (IMAGE_FILE_HEADER, 20)
4219     TEST_TYPE_ALIGN  (IMAGE_FILE_HEADER, 4)
4220     TEST_FIELD_SIZE  (IMAGE_FILE_HEADER, Machine, 2)
4221     TEST_FIELD_ALIGN (IMAGE_FILE_HEADER, Machine, 2)
4222     TEST_FIELD_OFFSET(IMAGE_FILE_HEADER, Machine, 0)
4223     TEST_FIELD_SIZE  (IMAGE_FILE_HEADER, NumberOfSections, 2)
4224     TEST_FIELD_ALIGN (IMAGE_FILE_HEADER, NumberOfSections, 2)
4225     TEST_FIELD_OFFSET(IMAGE_FILE_HEADER, NumberOfSections, 2)
4226     TEST_FIELD_SIZE  (IMAGE_FILE_HEADER, TimeDateStamp, 4)
4227     TEST_FIELD_ALIGN (IMAGE_FILE_HEADER, TimeDateStamp, 4)
4228     TEST_FIELD_OFFSET(IMAGE_FILE_HEADER, TimeDateStamp, 4)
4229     TEST_FIELD_SIZE  (IMAGE_FILE_HEADER, PointerToSymbolTable, 4)
4230     TEST_FIELD_ALIGN (IMAGE_FILE_HEADER, PointerToSymbolTable, 4)
4231     TEST_FIELD_OFFSET(IMAGE_FILE_HEADER, PointerToSymbolTable, 8)
4232     TEST_FIELD_SIZE  (IMAGE_FILE_HEADER, NumberOfSymbols, 4)
4233     TEST_FIELD_ALIGN (IMAGE_FILE_HEADER, NumberOfSymbols, 4)
4234     TEST_FIELD_OFFSET(IMAGE_FILE_HEADER, NumberOfSymbols, 12)
4235     TEST_FIELD_SIZE  (IMAGE_FILE_HEADER, SizeOfOptionalHeader, 2)
4236     TEST_FIELD_ALIGN (IMAGE_FILE_HEADER, SizeOfOptionalHeader, 2)
4237     TEST_FIELD_OFFSET(IMAGE_FILE_HEADER, SizeOfOptionalHeader, 16)
4238     TEST_FIELD_SIZE  (IMAGE_FILE_HEADER, Characteristics, 2)
4239     TEST_FIELD_ALIGN (IMAGE_FILE_HEADER, Characteristics, 2)
4240     TEST_FIELD_OFFSET(IMAGE_FILE_HEADER, Characteristics, 18)
4241 }
4242
4243 static void test_pack_IMAGE_FUNCTION_ENTRY(void)
4244 {
4245     /* IMAGE_FUNCTION_ENTRY */
4246     TEST_TYPE_SIZE   (IMAGE_FUNCTION_ENTRY, 12)
4247     TEST_TYPE_ALIGN  (IMAGE_FUNCTION_ENTRY, 4)
4248     TEST_FIELD_SIZE  (IMAGE_FUNCTION_ENTRY, StartingAddress, 4)
4249     TEST_FIELD_ALIGN (IMAGE_FUNCTION_ENTRY, StartingAddress, 4)
4250     TEST_FIELD_OFFSET(IMAGE_FUNCTION_ENTRY, StartingAddress, 0)
4251     TEST_FIELD_SIZE  (IMAGE_FUNCTION_ENTRY, EndingAddress, 4)
4252     TEST_FIELD_ALIGN (IMAGE_FUNCTION_ENTRY, EndingAddress, 4)
4253     TEST_FIELD_OFFSET(IMAGE_FUNCTION_ENTRY, EndingAddress, 4)
4254     TEST_FIELD_SIZE  (IMAGE_FUNCTION_ENTRY, EndOfPrologue, 4)
4255     TEST_FIELD_ALIGN (IMAGE_FUNCTION_ENTRY, EndOfPrologue, 4)
4256     TEST_FIELD_OFFSET(IMAGE_FUNCTION_ENTRY, EndOfPrologue, 8)
4257 }
4258
4259 static void test_pack_IMAGE_IMPORT_BY_NAME(void)
4260 {
4261     /* IMAGE_IMPORT_BY_NAME */
4262     TEST_TYPE_SIZE   (IMAGE_IMPORT_BY_NAME, 4)
4263     TEST_TYPE_ALIGN  (IMAGE_IMPORT_BY_NAME, 2)
4264     TEST_FIELD_SIZE  (IMAGE_IMPORT_BY_NAME, Hint, 2)
4265     TEST_FIELD_ALIGN (IMAGE_IMPORT_BY_NAME, Hint, 2)
4266     TEST_FIELD_OFFSET(IMAGE_IMPORT_BY_NAME, Hint, 0)
4267     TEST_FIELD_SIZE  (IMAGE_IMPORT_BY_NAME, Name, 1)
4268     TEST_FIELD_ALIGN (IMAGE_IMPORT_BY_NAME, Name, 1)
4269     TEST_FIELD_OFFSET(IMAGE_IMPORT_BY_NAME, Name, 2)
4270 }
4271
4272 static void test_pack_IMAGE_IMPORT_DESCRIPTOR(void)
4273 {
4274     /* IMAGE_IMPORT_DESCRIPTOR */
4275 }
4276
4277 static void test_pack_IMAGE_LINENUMBER(void)
4278 {
4279     /* IMAGE_LINENUMBER (pack 2) */
4280 }
4281
4282 static void test_pack_IMAGE_LOAD_CONFIG_DIRECTORY(void)
4283 {
4284     /* IMAGE_LOAD_CONFIG_DIRECTORY */
4285     TEST_TYPE_SIZE   (IMAGE_LOAD_CONFIG_DIRECTORY, 72)
4286     TEST_TYPE_ALIGN  (IMAGE_LOAD_CONFIG_DIRECTORY, 4)
4287     TEST_FIELD_SIZE  (IMAGE_LOAD_CONFIG_DIRECTORY, Size, 4)
4288     TEST_FIELD_ALIGN (IMAGE_LOAD_CONFIG_DIRECTORY, Size, 4)
4289     TEST_FIELD_OFFSET(IMAGE_LOAD_CONFIG_DIRECTORY, Size, 0)
4290     TEST_FIELD_SIZE  (IMAGE_LOAD_CONFIG_DIRECTORY, TimeDateStamp, 4)
4291     TEST_FIELD_ALIGN (IMAGE_LOAD_CONFIG_DIRECTORY, TimeDateStamp, 4)
4292     TEST_FIELD_OFFSET(IMAGE_LOAD_CONFIG_DIRECTORY, TimeDateStamp, 4)
4293     TEST_FIELD_SIZE  (IMAGE_LOAD_CONFIG_DIRECTORY, MajorVersion, 2)
4294     TEST_FIELD_ALIGN (IMAGE_LOAD_CONFIG_DIRECTORY, MajorVersion, 2)
4295     TEST_FIELD_OFFSET(IMAGE_LOAD_CONFIG_DIRECTORY, MajorVersion, 8)
4296     TEST_FIELD_SIZE  (IMAGE_LOAD_CONFIG_DIRECTORY, MinorVersion, 2)
4297     TEST_FIELD_ALIGN (IMAGE_LOAD_CONFIG_DIRECTORY, MinorVersion, 2)
4298     TEST_FIELD_OFFSET(IMAGE_LOAD_CONFIG_DIRECTORY, MinorVersion, 10)
4299     TEST_FIELD_SIZE  (IMAGE_LOAD_CONFIG_DIRECTORY, GlobalFlagsClear, 4)
4300     TEST_FIELD_ALIGN (IMAGE_LOAD_CONFIG_DIRECTORY, GlobalFlagsClear, 4)
4301     TEST_FIELD_OFFSET(IMAGE_LOAD_CONFIG_DIRECTORY, GlobalFlagsClear, 12)
4302     TEST_FIELD_SIZE  (IMAGE_LOAD_CONFIG_DIRECTORY, GlobalFlagsSet, 4)
4303     TEST_FIELD_ALIGN (IMAGE_LOAD_CONFIG_DIRECTORY, GlobalFlagsSet, 4)
4304     TEST_FIELD_OFFSET(IMAGE_LOAD_CONFIG_DIRECTORY, GlobalFlagsSet, 16)
4305     TEST_FIELD_SIZE  (IMAGE_LOAD_CONFIG_DIRECTORY, CriticalSectionDefaultTimeout, 4)
4306     TEST_FIELD_ALIGN (IMAGE_LOAD_CONFIG_DIRECTORY, CriticalSectionDefaultTimeout, 4)
4307     TEST_FIELD_OFFSET(IMAGE_LOAD_CONFIG_DIRECTORY, CriticalSectionDefaultTimeout, 20)
4308     TEST_FIELD_SIZE  (IMAGE_LOAD_CONFIG_DIRECTORY, DeCommitFreeBlockThreshold, 4)
4309     TEST_FIELD_ALIGN (IMAGE_LOAD_CONFIG_DIRECTORY, DeCommitFreeBlockThreshold, 4)
4310     TEST_FIELD_OFFSET(IMAGE_LOAD_CONFIG_DIRECTORY, DeCommitFreeBlockThreshold, 24)
4311     TEST_FIELD_SIZE  (IMAGE_LOAD_CONFIG_DIRECTORY, DeCommitTotalFreeThreshold, 4)
4312     TEST_FIELD_ALIGN (IMAGE_LOAD_CONFIG_DIRECTORY, DeCommitTotalFreeThreshold, 4)
4313     TEST_FIELD_OFFSET(IMAGE_LOAD_CONFIG_DIRECTORY, DeCommitTotalFreeThreshold, 28)
4314     TEST_FIELD_SIZE  (IMAGE_LOAD_CONFIG_DIRECTORY, LockPrefixTable, 4)
4315     TEST_FIELD_ALIGN (IMAGE_LOAD_CONFIG_DIRECTORY, LockPrefixTable, 4)
4316     TEST_FIELD_OFFSET(IMAGE_LOAD_CONFIG_DIRECTORY, LockPrefixTable, 32)
4317     TEST_FIELD_SIZE  (IMAGE_LOAD_CONFIG_DIRECTORY, MaximumAllocationSize, 4)
4318     TEST_FIELD_ALIGN (IMAGE_LOAD_CONFIG_DIRECTORY, MaximumAllocationSize, 4)
4319     TEST_FIELD_OFFSET(IMAGE_LOAD_CONFIG_DIRECTORY, MaximumAllocationSize, 36)
4320     TEST_FIELD_SIZE  (IMAGE_LOAD_CONFIG_DIRECTORY, VirtualMemoryThreshold, 4)
4321     TEST_FIELD_ALIGN (IMAGE_LOAD_CONFIG_DIRECTORY, VirtualMemoryThreshold, 4)
4322     TEST_FIELD_OFFSET(IMAGE_LOAD_CONFIG_DIRECTORY, VirtualMemoryThreshold, 40)
4323     TEST_FIELD_SIZE  (IMAGE_LOAD_CONFIG_DIRECTORY, ProcessHeapFlags, 4)
4324     TEST_FIELD_ALIGN (IMAGE_LOAD_CONFIG_DIRECTORY, ProcessHeapFlags, 4)
4325     TEST_FIELD_OFFSET(IMAGE_LOAD_CONFIG_DIRECTORY, ProcessHeapFlags, 44)
4326     TEST_FIELD_SIZE  (IMAGE_LOAD_CONFIG_DIRECTORY, ProcessAffinityMask, 4)
4327     TEST_FIELD_ALIGN (IMAGE_LOAD_CONFIG_DIRECTORY, ProcessAffinityMask, 4)
4328     TEST_FIELD_OFFSET(IMAGE_LOAD_CONFIG_DIRECTORY, ProcessAffinityMask, 48)
4329     TEST_FIELD_SIZE  (IMAGE_LOAD_CONFIG_DIRECTORY, CSDVersion, 2)
4330     TEST_FIELD_ALIGN (IMAGE_LOAD_CONFIG_DIRECTORY, CSDVersion, 2)
4331     TEST_FIELD_OFFSET(IMAGE_LOAD_CONFIG_DIRECTORY, CSDVersion, 52)
4332     TEST_FIELD_SIZE  (IMAGE_LOAD_CONFIG_DIRECTORY, Reserved1, 2)
4333     TEST_FIELD_ALIGN (IMAGE_LOAD_CONFIG_DIRECTORY, Reserved1, 2)
4334     TEST_FIELD_OFFSET(IMAGE_LOAD_CONFIG_DIRECTORY, Reserved1, 54)
4335     TEST_FIELD_SIZE  (IMAGE_LOAD_CONFIG_DIRECTORY, EditList, 4)
4336     TEST_FIELD_ALIGN (IMAGE_LOAD_CONFIG_DIRECTORY, EditList, 4)
4337     TEST_FIELD_OFFSET(IMAGE_LOAD_CONFIG_DIRECTORY, EditList, 56)
4338     TEST_FIELD_SIZE  (IMAGE_LOAD_CONFIG_DIRECTORY, SecurityCookie, 4)
4339     TEST_FIELD_ALIGN (IMAGE_LOAD_CONFIG_DIRECTORY, SecurityCookie, 4)
4340     TEST_FIELD_OFFSET(IMAGE_LOAD_CONFIG_DIRECTORY, SecurityCookie, 60)
4341     TEST_FIELD_SIZE  (IMAGE_LOAD_CONFIG_DIRECTORY, SEHandlerTable, 4)
4342     TEST_FIELD_ALIGN (IMAGE_LOAD_CONFIG_DIRECTORY, SEHandlerTable, 4)
4343     TEST_FIELD_OFFSET(IMAGE_LOAD_CONFIG_DIRECTORY, SEHandlerTable, 64)
4344     TEST_FIELD_SIZE  (IMAGE_LOAD_CONFIG_DIRECTORY, SEHandlerCount, 4)
4345     TEST_FIELD_ALIGN (IMAGE_LOAD_CONFIG_DIRECTORY, SEHandlerCount, 4)
4346     TEST_FIELD_OFFSET(IMAGE_LOAD_CONFIG_DIRECTORY, SEHandlerCount, 68)
4347 }
4348
4349 static void test_pack_IMAGE_NT_HEADERS(void)
4350 {
4351     /* IMAGE_NT_HEADERS */
4352     TEST_TYPE_SIZE   (IMAGE_NT_HEADERS, 248)
4353     TEST_TYPE_ALIGN  (IMAGE_NT_HEADERS, 4)
4354 }
4355
4356 static void test_pack_IMAGE_NT_HEADERS32(void)
4357 {
4358     /* IMAGE_NT_HEADERS32 */
4359     TEST_TYPE_SIZE   (IMAGE_NT_HEADERS32, 248)
4360     TEST_TYPE_ALIGN  (IMAGE_NT_HEADERS32, 4)
4361     TEST_FIELD_SIZE  (IMAGE_NT_HEADERS32, Signature, 4)
4362     TEST_FIELD_ALIGN (IMAGE_NT_HEADERS32, Signature, 4)
4363     TEST_FIELD_OFFSET(IMAGE_NT_HEADERS32, Signature, 0)
4364     TEST_FIELD_SIZE  (IMAGE_NT_HEADERS32, FileHeader, 20)
4365     TEST_FIELD_ALIGN (IMAGE_NT_HEADERS32, FileHeader, 4)
4366     TEST_FIELD_OFFSET(IMAGE_NT_HEADERS32, FileHeader, 4)
4367     TEST_FIELD_SIZE  (IMAGE_NT_HEADERS32, OptionalHeader, 224)
4368     TEST_FIELD_ALIGN (IMAGE_NT_HEADERS32, OptionalHeader, 4)
4369     TEST_FIELD_OFFSET(IMAGE_NT_HEADERS32, OptionalHeader, 24)
4370 }
4371
4372 static void test_pack_IMAGE_NT_HEADERS64(void)
4373 {
4374     /* IMAGE_NT_HEADERS64 */
4375     TEST_TYPE_SIZE   (IMAGE_NT_HEADERS64, 264)
4376     TEST_TYPE_ALIGN  (IMAGE_NT_HEADERS64, 8)
4377     TEST_FIELD_SIZE  (IMAGE_NT_HEADERS64, Signature, 4)
4378     TEST_FIELD_ALIGN (IMAGE_NT_HEADERS64, Signature, 4)
4379     TEST_FIELD_OFFSET(IMAGE_NT_HEADERS64, Signature, 0)
4380     TEST_FIELD_SIZE  (IMAGE_NT_HEADERS64, FileHeader, 20)
4381     TEST_FIELD_ALIGN (IMAGE_NT_HEADERS64, FileHeader, 4)
4382     TEST_FIELD_OFFSET(IMAGE_NT_HEADERS64, FileHeader, 4)
4383     TEST_FIELD_SIZE  (IMAGE_NT_HEADERS64, OptionalHeader, 240)
4384     TEST_FIELD_ALIGN (IMAGE_NT_HEADERS64, OptionalHeader, 8)
4385     TEST_FIELD_OFFSET(IMAGE_NT_HEADERS64, OptionalHeader, 24)
4386 }
4387
4388 static void test_pack_IMAGE_OPTIONAL_HEADER(void)
4389 {
4390     /* IMAGE_OPTIONAL_HEADER */
4391     TEST_TYPE_SIZE   (IMAGE_OPTIONAL_HEADER, 224)
4392     TEST_TYPE_ALIGN  (IMAGE_OPTIONAL_HEADER, 4)
4393 }
4394
4395 static void test_pack_IMAGE_OPTIONAL_HEADER32(void)
4396 {
4397     /* IMAGE_OPTIONAL_HEADER32 */
4398     TEST_TYPE_SIZE   (IMAGE_OPTIONAL_HEADER32, 224)
4399     TEST_TYPE_ALIGN  (IMAGE_OPTIONAL_HEADER32, 4)
4400     TEST_FIELD_SIZE  (IMAGE_OPTIONAL_HEADER32, Magic, 2)
4401     TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER32, Magic, 2)
4402     TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER32, Magic, 0)
4403     TEST_FIELD_SIZE  (IMAGE_OPTIONAL_HEADER32, MajorLinkerVersion, 1)
4404     TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER32, MajorLinkerVersion, 1)
4405     TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER32, MajorLinkerVersion, 2)
4406     TEST_FIELD_SIZE  (IMAGE_OPTIONAL_HEADER32, MinorLinkerVersion, 1)
4407     TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER32, MinorLinkerVersion, 1)
4408     TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER32, MinorLinkerVersion, 3)
4409     TEST_FIELD_SIZE  (IMAGE_OPTIONAL_HEADER32, SizeOfCode, 4)
4410     TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER32, SizeOfCode, 4)
4411     TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER32, SizeOfCode, 4)
4412     TEST_FIELD_SIZE  (IMAGE_OPTIONAL_HEADER32, SizeOfInitializedData, 4)
4413     TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER32, SizeOfInitializedData, 4)
4414     TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER32, SizeOfInitializedData, 8)
4415     TEST_FIELD_SIZE  (IMAGE_OPTIONAL_HEADER32, SizeOfUninitializedData, 4)
4416     TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER32, SizeOfUninitializedData, 4)
4417     TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER32, SizeOfUninitializedData, 12)
4418     TEST_FIELD_SIZE  (IMAGE_OPTIONAL_HEADER32, AddressOfEntryPoint, 4)
4419     TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER32, AddressOfEntryPoint, 4)
4420     TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER32, AddressOfEntryPoint, 16)
4421     TEST_FIELD_SIZE  (IMAGE_OPTIONAL_HEADER32, BaseOfCode, 4)
4422     TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER32, BaseOfCode, 4)
4423     TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER32, BaseOfCode, 20)
4424     TEST_FIELD_SIZE  (IMAGE_OPTIONAL_HEADER32, BaseOfData, 4)
4425     TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER32, BaseOfData, 4)
4426     TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER32, BaseOfData, 24)
4427     TEST_FIELD_SIZE  (IMAGE_OPTIONAL_HEADER32, ImageBase, 4)
4428     TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER32, ImageBase, 4)
4429     TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER32, ImageBase, 28)
4430     TEST_FIELD_SIZE  (IMAGE_OPTIONAL_HEADER32, SectionAlignment, 4)
4431     TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER32, SectionAlignment, 4)
4432     TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER32, SectionAlignment, 32)
4433     TEST_FIELD_SIZE  (IMAGE_OPTIONAL_HEADER32, FileAlignment, 4)
4434     TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER32, FileAlignment, 4)
4435     TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER32, FileAlignment, 36)
4436     TEST_FIELD_SIZE  (IMAGE_OPTIONAL_HEADER32, MajorOperatingSystemVersion, 2)
4437     TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER32, MajorOperatingSystemVersion, 2)
4438     TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER32, MajorOperatingSystemVersion, 40)
4439     TEST_FIELD_SIZE  (IMAGE_OPTIONAL_HEADER32, MinorOperatingSystemVersion, 2)
4440     TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER32, MinorOperatingSystemVersion, 2)
4441     TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER32, MinorOperatingSystemVersion, 42)
4442     TEST_FIELD_SIZE  (IMAGE_OPTIONAL_HEADER32, MajorImageVersion, 2)
4443     TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER32, MajorImageVersion, 2)
4444     TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER32, MajorImageVersion, 44)
4445     TEST_FIELD_SIZE  (IMAGE_OPTIONAL_HEADER32, MinorImageVersion, 2)
4446     TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER32, MinorImageVersion, 2)
4447     TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER32, MinorImageVersion, 46)
4448     TEST_FIELD_SIZE  (IMAGE_OPTIONAL_HEADER32, MajorSubsystemVersion, 2)
4449     TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER32, MajorSubsystemVersion, 2)
4450     TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER32, MajorSubsystemVersion, 48)
4451     TEST_FIELD_SIZE  (IMAGE_OPTIONAL_HEADER32, MinorSubsystemVersion, 2)
4452     TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER32, MinorSubsystemVersion, 2)
4453     TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER32, MinorSubsystemVersion, 50)
4454     TEST_FIELD_SIZE  (IMAGE_OPTIONAL_HEADER32, Win32VersionValue, 4)
4455     TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER32, Win32VersionValue, 4)
4456     TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER32, Win32VersionValue, 52)
4457     TEST_FIELD_SIZE  (IMAGE_OPTIONAL_HEADER32, SizeOfImage, 4)
4458     TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER32, SizeOfImage, 4)
4459     TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER32, SizeOfImage, 56)
4460     TEST_FIELD_SIZE  (IMAGE_OPTIONAL_HEADER32, SizeOfHeaders, 4)
4461     TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER32, SizeOfHeaders, 4)
4462     TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER32, SizeOfHeaders, 60)
4463     TEST_FIELD_SIZE  (IMAGE_OPTIONAL_HEADER32, CheckSum, 4)
4464     TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER32, CheckSum, 4)
4465     TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER32, CheckSum, 64)
4466     TEST_FIELD_SIZE  (IMAGE_OPTIONAL_HEADER32, Subsystem, 2)
4467     TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER32, Subsystem, 2)
4468     TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER32, Subsystem, 68)
4469     TEST_FIELD_SIZE  (IMAGE_OPTIONAL_HEADER32, DllCharacteristics, 2)
4470     TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER32, DllCharacteristics, 2)
4471     TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER32, DllCharacteristics, 70)
4472     TEST_FIELD_SIZE  (IMAGE_OPTIONAL_HEADER32, SizeOfStackReserve, 4)
4473     TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER32, SizeOfStackReserve, 4)
4474     TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER32, SizeOfStackReserve, 72)
4475     TEST_FIELD_SIZE  (IMAGE_OPTIONAL_HEADER32, SizeOfStackCommit, 4)
4476     TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER32, SizeOfStackCommit, 4)
4477     TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER32, SizeOfStackCommit, 76)
4478     TEST_FIELD_SIZE  (IMAGE_OPTIONAL_HEADER32, SizeOfHeapReserve, 4)
4479     TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER32, SizeOfHeapReserve, 4)
4480     TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER32, SizeOfHeapReserve, 80)
4481     TEST_FIELD_SIZE  (IMAGE_OPTIONAL_HEADER32, SizeOfHeapCommit, 4)
4482     TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER32, SizeOfHeapCommit, 4)
4483     TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER32, SizeOfHeapCommit, 84)
4484     TEST_FIELD_SIZE  (IMAGE_OPTIONAL_HEADER32, LoaderFlags, 4)
4485     TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER32, LoaderFlags, 4)
4486     TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER32, LoaderFlags, 88)
4487     TEST_FIELD_SIZE  (IMAGE_OPTIONAL_HEADER32, NumberOfRvaAndSizes, 4)
4488     TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER32, NumberOfRvaAndSizes, 4)
4489     TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER32, NumberOfRvaAndSizes, 92)
4490     TEST_FIELD_SIZE  (IMAGE_OPTIONAL_HEADER32, DataDirectory, 128)
4491     TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER32, DataDirectory, 4)
4492     TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER32, DataDirectory, 96)
4493 }
4494
4495 static void test_pack_IMAGE_OPTIONAL_HEADER64(void)
4496 {
4497     /* IMAGE_OPTIONAL_HEADER64 */
4498     TEST_TYPE_SIZE   (IMAGE_OPTIONAL_HEADER64, 240)
4499     TEST_TYPE_ALIGN  (IMAGE_OPTIONAL_HEADER64, 8)
4500     TEST_FIELD_SIZE  (IMAGE_OPTIONAL_HEADER64, Magic, 2)
4501     TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER64, Magic, 2)
4502     TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER64, Magic, 0)
4503     TEST_FIELD_SIZE  (IMAGE_OPTIONAL_HEADER64, MajorLinkerVersion, 1)
4504     TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER64, MajorLinkerVersion, 1)
4505     TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER64, MajorLinkerVersion, 2)
4506     TEST_FIELD_SIZE  (IMAGE_OPTIONAL_HEADER64, MinorLinkerVersion, 1)
4507     TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER64, MinorLinkerVersion, 1)
4508     TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER64, MinorLinkerVersion, 3)
4509     TEST_FIELD_SIZE  (IMAGE_OPTIONAL_HEADER64, SizeOfCode, 4)
4510     TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER64, SizeOfCode, 4)
4511     TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER64, SizeOfCode, 4)
4512     TEST_FIELD_SIZE  (IMAGE_OPTIONAL_HEADER64, SizeOfInitializedData, 4)
4513     TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER64, SizeOfInitializedData, 4)
4514     TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER64, SizeOfInitializedData, 8)
4515     TEST_FIELD_SIZE  (IMAGE_OPTIONAL_HEADER64, SizeOfUninitializedData, 4)
4516     TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER64, SizeOfUninitializedData, 4)
4517     TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER64, SizeOfUninitializedData, 12)
4518     TEST_FIELD_SIZE  (IMAGE_OPTIONAL_HEADER64, AddressOfEntryPoint, 4)
4519     TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER64, AddressOfEntryPoint, 4)
4520     TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER64, AddressOfEntryPoint, 16)
4521     TEST_FIELD_SIZE  (IMAGE_OPTIONAL_HEADER64, BaseOfCode, 4)
4522     TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER64, BaseOfCode, 4)
4523     TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER64, BaseOfCode, 20)
4524     TEST_FIELD_SIZE  (IMAGE_OPTIONAL_HEADER64, ImageBase, 8)
4525     TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER64, ImageBase, 8)
4526     TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER64, ImageBase, 24)
4527     TEST_FIELD_SIZE  (IMAGE_OPTIONAL_HEADER64, SectionAlignment, 4)
4528     TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER64, SectionAlignment, 4)
4529     TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER64, SectionAlignment, 32)
4530     TEST_FIELD_SIZE  (IMAGE_OPTIONAL_HEADER64, FileAlignment, 4)
4531     TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER64, FileAlignment, 4)
4532     TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER64, FileAlignment, 36)
4533     TEST_FIELD_SIZE  (IMAGE_OPTIONAL_HEADER64, MajorOperatingSystemVersion, 2)
4534     TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER64, MajorOperatingSystemVersion, 2)
4535     TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER64, MajorOperatingSystemVersion, 40)
4536     TEST_FIELD_SIZE  (IMAGE_OPTIONAL_HEADER64, MinorOperatingSystemVersion, 2)
4537     TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER64, MinorOperatingSystemVersion, 2)
4538     TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER64, MinorOperatingSystemVersion, 42)
4539     TEST_FIELD_SIZE  (IMAGE_OPTIONAL_HEADER64, MajorImageVersion, 2)
4540     TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER64, MajorImageVersion, 2)
4541     TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER64, MajorImageVersion, 44)
4542     TEST_FIELD_SIZE  (IMAGE_OPTIONAL_HEADER64, MinorImageVersion, 2)
4543     TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER64, MinorImageVersion, 2)
4544     TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER64, MinorImageVersion, 46)
4545     TEST_FIELD_SIZE  (IMAGE_OPTIONAL_HEADER64, MajorSubsystemVersion, 2)
4546     TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER64, MajorSubsystemVersion, 2)
4547     TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER64, MajorSubsystemVersion, 48)
4548     TEST_FIELD_SIZE  (IMAGE_OPTIONAL_HEADER64, MinorSubsystemVersion, 2)
4549     TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER64, MinorSubsystemVersion, 2)
4550     TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER64, MinorSubsystemVersion, 50)
4551     TEST_FIELD_SIZE  (IMAGE_OPTIONAL_HEADER64, Win32VersionValue, 4)
4552     TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER64, Win32VersionValue, 4)
4553     TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER64, Win32VersionValue, 52)
4554     TEST_FIELD_SIZE  (IMAGE_OPTIONAL_HEADER64, SizeOfImage, 4)
4555     TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER64, SizeOfImage, 4)
4556     TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER64, SizeOfImage, 56)
4557     TEST_FIELD_SIZE  (IMAGE_OPTIONAL_HEADER64, SizeOfHeaders, 4)
4558     TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER64, SizeOfHeaders, 4)
4559     TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER64, SizeOfHeaders, 60)
4560     TEST_FIELD_SIZE  (IMAGE_OPTIONAL_HEADER64, CheckSum, 4)
4561     TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER64, CheckSum, 4)
4562     TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER64, CheckSum, 64)
4563     TEST_FIELD_SIZE  (IMAGE_OPTIONAL_HEADER64, Subsystem, 2)
4564     TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER64, Subsystem, 2)
4565     TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER64, Subsystem, 68)
4566     TEST_FIELD_SIZE  (IMAGE_OPTIONAL_HEADER64, DllCharacteristics, 2)
4567     TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER64, DllCharacteristics, 2)
4568     TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER64, DllCharacteristics, 70)
4569     TEST_FIELD_SIZE  (IMAGE_OPTIONAL_HEADER64, SizeOfStackReserve, 8)
4570     TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER64, SizeOfStackReserve, 8)
4571     TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER64, SizeOfStackReserve, 72)
4572     TEST_FIELD_SIZE  (IMAGE_OPTIONAL_HEADER64, SizeOfStackCommit, 8)
4573     TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER64, SizeOfStackCommit, 8)
4574     TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER64, SizeOfStackCommit, 80)
4575     TEST_FIELD_SIZE  (IMAGE_OPTIONAL_HEADER64, SizeOfHeapReserve, 8)
4576     TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER64, SizeOfHeapReserve, 8)
4577     TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER64, SizeOfHeapReserve, 88)
4578     TEST_FIELD_SIZE  (IMAGE_OPTIONAL_HEADER64, SizeOfHeapCommit, 8)
4579     TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER64, SizeOfHeapCommit, 8)
4580     TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER64, SizeOfHeapCommit, 96)
4581     TEST_FIELD_SIZE  (IMAGE_OPTIONAL_HEADER64, LoaderFlags, 4)
4582     TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER64, LoaderFlags, 4)
4583     TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER64, LoaderFlags, 104)
4584     TEST_FIELD_SIZE  (IMAGE_OPTIONAL_HEADER64, NumberOfRvaAndSizes, 4)
4585     TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER64, NumberOfRvaAndSizes, 4)
4586     TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER64, NumberOfRvaAndSizes, 108)
4587     TEST_FIELD_SIZE  (IMAGE_OPTIONAL_HEADER64, DataDirectory, 128)
4588     TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER64, DataDirectory, 4)
4589     TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER64, DataDirectory, 112)
4590 }
4591
4592 static void test_pack_IMAGE_OS2_HEADER(void)
4593 {
4594     /* IMAGE_OS2_HEADER (pack 2) */
4595     TEST_TYPE_SIZE   (IMAGE_OS2_HEADER, 64)
4596     TEST_TYPE_ALIGN  (IMAGE_OS2_HEADER, 2)
4597     TEST_FIELD_SIZE  (IMAGE_OS2_HEADER, ne_magic, 2)
4598     TEST_FIELD_ALIGN (IMAGE_OS2_HEADER, ne_magic, 2)
4599     TEST_FIELD_OFFSET(IMAGE_OS2_HEADER, ne_magic, 0)
4600     TEST_FIELD_SIZE  (IMAGE_OS2_HEADER, ne_ver, 1)
4601     TEST_FIELD_ALIGN (IMAGE_OS2_HEADER, ne_ver, 1)
4602     TEST_FIELD_OFFSET(IMAGE_OS2_HEADER, ne_ver, 2)
4603     TEST_FIELD_SIZE  (IMAGE_OS2_HEADER, ne_rev, 1)
4604     TEST_FIELD_ALIGN (IMAGE_OS2_HEADER, ne_rev, 1)
4605     TEST_FIELD_OFFSET(IMAGE_OS2_HEADER, ne_rev, 3)
4606     TEST_FIELD_SIZE  (IMAGE_OS2_HEADER, ne_enttab, 2)
4607     TEST_FIELD_ALIGN (IMAGE_OS2_HEADER, ne_enttab, 2)
4608     TEST_FIELD_OFFSET(IMAGE_OS2_HEADER, ne_enttab, 4)
4609     TEST_FIELD_SIZE  (IMAGE_OS2_HEADER, ne_cbenttab, 2)
4610     TEST_FIELD_ALIGN (IMAGE_OS2_HEADER, ne_cbenttab, 2)
4611     TEST_FIELD_OFFSET(IMAGE_OS2_HEADER, ne_cbenttab, 6)
4612     TEST_FIELD_SIZE  (IMAGE_OS2_HEADER, ne_crc, 4)
4613     TEST_FIELD_ALIGN (IMAGE_OS2_HEADER, ne_crc, 2)
4614     TEST_FIELD_OFFSET(IMAGE_OS2_HEADER, ne_crc, 8)
4615     TEST_FIELD_SIZE  (IMAGE_OS2_HEADER, ne_flags, 2)
4616     TEST_FIELD_ALIGN (IMAGE_OS2_HEADER, ne_flags, 2)
4617     TEST_FIELD_OFFSET(IMAGE_OS2_HEADER, ne_flags, 12)
4618     TEST_FIELD_SIZE  (IMAGE_OS2_HEADER, ne_autodata, 2)
4619     TEST_FIELD_ALIGN (IMAGE_OS2_HEADER, ne_autodata, 2)
4620     TEST_FIELD_OFFSET(IMAGE_OS2_HEADER, ne_autodata, 14)
4621     TEST_FIELD_SIZE  (IMAGE_OS2_HEADER, ne_heap, 2)
4622     TEST_FIELD_ALIGN (IMAGE_OS2_HEADER, ne_heap, 2)
4623     TEST_FIELD_OFFSET(IMAGE_OS2_HEADER, ne_heap, 16)
4624     TEST_FIELD_SIZE  (IMAGE_OS2_HEADER, ne_stack, 2)
4625     TEST_FIELD_ALIGN (IMAGE_OS2_HEADER, ne_stack, 2)
4626     TEST_FIELD_OFFSET(IMAGE_OS2_HEADER, ne_stack, 18)
4627     TEST_FIELD_SIZE  (IMAGE_OS2_HEADER, ne_csip, 4)
4628     TEST_FIELD_ALIGN (IMAGE_OS2_HEADER, ne_csip, 2)
4629     TEST_FIELD_OFFSET(IMAGE_OS2_HEADER, ne_csip, 20)
4630     TEST_FIELD_SIZE  (IMAGE_OS2_HEADER, ne_sssp, 4)
4631     TEST_FIELD_ALIGN (IMAGE_OS2_HEADER, ne_sssp, 2)
4632     TEST_FIELD_OFFSET(IMAGE_OS2_HEADER, ne_sssp, 24)
4633     TEST_FIELD_SIZE  (IMAGE_OS2_HEADER, ne_cseg, 2)
4634     TEST_FIELD_ALIGN (IMAGE_OS2_HEADER, ne_cseg, 2)
4635     TEST_FIELD_OFFSET(IMAGE_OS2_HEADER, ne_cseg, 28)
4636     TEST_FIELD_SIZE  (IMAGE_OS2_HEADER, ne_cmod, 2)
4637     TEST_FIELD_ALIGN (IMAGE_OS2_HEADER, ne_cmod, 2)
4638     TEST_FIELD_OFFSET(IMAGE_OS2_HEADER, ne_cmod, 30)
4639     TEST_FIELD_SIZE  (IMAGE_OS2_HEADER, ne_cbnrestab, 2)
4640     TEST_FIELD_ALIGN (IMAGE_OS2_HEADER, ne_cbnrestab, 2)
4641     TEST_FIELD_OFFSET(IMAGE_OS2_HEADER, ne_cbnrestab, 32)
4642     TEST_FIELD_SIZE  (IMAGE_OS2_HEADER, ne_segtab, 2)
4643     TEST_FIELD_ALIGN (IMAGE_OS2_HEADER, ne_segtab, 2)
4644     TEST_FIELD_OFFSET(IMAGE_OS2_HEADER, ne_segtab, 34)
4645     TEST_FIELD_SIZE  (IMAGE_OS2_HEADER, ne_rsrctab, 2)
4646     TEST_FIELD_ALIGN (IMAGE_OS2_HEADER, ne_rsrctab, 2)
4647     TEST_FIELD_OFFSET(IMAGE_OS2_HEADER, ne_rsrctab, 36)
4648     TEST_FIELD_SIZE  (IMAGE_OS2_HEADER, ne_restab, 2)
4649     TEST_FIELD_ALIGN (IMAGE_OS2_HEADER, ne_restab, 2)
4650     TEST_FIELD_OFFSET(IMAGE_OS2_HEADER, ne_restab, 38)
4651     TEST_FIELD_SIZE  (IMAGE_OS2_HEADER, ne_modtab, 2)
4652     TEST_FIELD_ALIGN (IMAGE_OS2_HEADER, ne_modtab, 2)
4653     TEST_FIELD_OFFSET(IMAGE_OS2_HEADER, ne_modtab, 40)
4654     TEST_FIELD_SIZE  (IMAGE_OS2_HEADER, ne_imptab, 2)
4655     TEST_FIELD_ALIGN (IMAGE_OS2_HEADER, ne_imptab, 2)
4656     TEST_FIELD_OFFSET(IMAGE_OS2_HEADER, ne_imptab, 42)
4657     TEST_FIELD_SIZE  (IMAGE_OS2_HEADER, ne_nrestab, 4)
4658     TEST_FIELD_ALIGN (IMAGE_OS2_HEADER, ne_nrestab, 2)
4659     TEST_FIELD_OFFSET(IMAGE_OS2_HEADER, ne_nrestab, 44)
4660     TEST_FIELD_SIZE  (IMAGE_OS2_HEADER, ne_cmovent, 2)
4661     TEST_FIELD_ALIGN (IMAGE_OS2_HEADER, ne_cmovent, 2)
4662     TEST_FIELD_OFFSET(IMAGE_OS2_HEADER, ne_cmovent, 48)
4663     TEST_FIELD_SIZE  (IMAGE_OS2_HEADER, ne_align, 2)
4664     TEST_FIELD_ALIGN (IMAGE_OS2_HEADER, ne_align, 2)
4665     TEST_FIELD_OFFSET(IMAGE_OS2_HEADER, ne_align, 50)
4666     TEST_FIELD_SIZE  (IMAGE_OS2_HEADER, ne_cres, 2)
4667     TEST_FIELD_ALIGN (IMAGE_OS2_HEADER, ne_cres, 2)
4668     TEST_FIELD_OFFSET(IMAGE_OS2_HEADER, ne_cres, 52)
4669     TEST_FIELD_SIZE  (IMAGE_OS2_HEADER, ne_exetyp, 1)
4670     TEST_FIELD_ALIGN (IMAGE_OS2_HEADER, ne_exetyp, 1)
4671     TEST_FIELD_OFFSET(IMAGE_OS2_HEADER, ne_exetyp, 54)
4672     TEST_FIELD_SIZE  (IMAGE_OS2_HEADER, ne_flagsothers, 1)
4673     TEST_FIELD_ALIGN (IMAGE_OS2_HEADER, ne_flagsothers, 1)
4674     TEST_FIELD_OFFSET(IMAGE_OS2_HEADER, ne_flagsothers, 55)
4675     TEST_FIELD_SIZE  (IMAGE_OS2_HEADER, ne_pretthunks, 2)
4676     TEST_FIELD_ALIGN (IMAGE_OS2_HEADER, ne_pretthunks, 2)
4677     TEST_FIELD_OFFSET(IMAGE_OS2_HEADER, ne_pretthunks, 56)
4678     TEST_FIELD_SIZE  (IMAGE_OS2_HEADER, ne_psegrefbytes, 2)
4679     TEST_FIELD_ALIGN (IMAGE_OS2_HEADER, ne_psegrefbytes, 2)
4680     TEST_FIELD_OFFSET(IMAGE_OS2_HEADER, ne_psegrefbytes, 58)
4681     TEST_FIELD_SIZE  (IMAGE_OS2_HEADER, ne_swaparea, 2)
4682     TEST_FIELD_ALIGN (IMAGE_OS2_HEADER, ne_swaparea, 2)
4683     TEST_FIELD_OFFSET(IMAGE_OS2_HEADER, ne_swaparea, 60)
4684     TEST_FIELD_SIZE  (IMAGE_OS2_HEADER, ne_expver, 2)
4685     TEST_FIELD_ALIGN (IMAGE_OS2_HEADER, ne_expver, 2)
4686     TEST_FIELD_OFFSET(IMAGE_OS2_HEADER, ne_expver, 62)
4687 }
4688
4689 static void test_pack_IMAGE_RELOCATION(void)
4690 {
4691     /* IMAGE_RELOCATION (pack 2) */
4692 }
4693
4694 static void test_pack_IMAGE_RESOURCE_DATA_ENTRY(void)
4695 {
4696     /* IMAGE_RESOURCE_DATA_ENTRY */
4697     TEST_TYPE_SIZE   (IMAGE_RESOURCE_DATA_ENTRY, 16)
4698     TEST_TYPE_ALIGN  (IMAGE_RESOURCE_DATA_ENTRY, 4)
4699     TEST_FIELD_SIZE  (IMAGE_RESOURCE_DATA_ENTRY, OffsetToData, 4)
4700     TEST_FIELD_ALIGN (IMAGE_RESOURCE_DATA_ENTRY, OffsetToData, 4)
4701     TEST_FIELD_OFFSET(IMAGE_RESOURCE_DATA_ENTRY, OffsetToData, 0)
4702     TEST_FIELD_SIZE  (IMAGE_RESOURCE_DATA_ENTRY, Size, 4)
4703     TEST_FIELD_ALIGN (IMAGE_RESOURCE_DATA_ENTRY, Size, 4)
4704     TEST_FIELD_OFFSET(IMAGE_RESOURCE_DATA_ENTRY, Size, 4)
4705     TEST_FIELD_SIZE  (IMAGE_RESOURCE_DATA_ENTRY, CodePage, 4)
4706     TEST_FIELD_ALIGN (IMAGE_RESOURCE_DATA_ENTRY, CodePage, 4)
4707     TEST_FIELD_OFFSET(IMAGE_RESOURCE_DATA_ENTRY, CodePage, 8)
4708     TEST_FIELD_SIZE  (IMAGE_RESOURCE_DATA_ENTRY, Reserved, 4)
4709     TEST_FIELD_ALIGN (IMAGE_RESOURCE_DATA_ENTRY, Reserved, 4)
4710     TEST_FIELD_OFFSET(IMAGE_RESOURCE_DATA_ENTRY, Reserved, 12)
4711 }
4712
4713 static void test_pack_IMAGE_RESOURCE_DIRECTORY(void)
4714 {
4715     /* IMAGE_RESOURCE_DIRECTORY */
4716     TEST_TYPE_SIZE   (IMAGE_RESOURCE_DIRECTORY, 16)
4717     TEST_TYPE_ALIGN  (IMAGE_RESOURCE_DIRECTORY, 4)
4718     TEST_FIELD_SIZE  (IMAGE_RESOURCE_DIRECTORY, Characteristics, 4)
4719     TEST_FIELD_ALIGN (IMAGE_RESOURCE_DIRECTORY, Characteristics, 4)
4720     TEST_FIELD_OFFSET(IMAGE_RESOURCE_DIRECTORY, Characteristics, 0)
4721     TEST_FIELD_SIZE  (IMAGE_RESOURCE_DIRECTORY, TimeDateStamp, 4)
4722     TEST_FIELD_ALIGN (IMAGE_RESOURCE_DIRECTORY, TimeDateStamp, 4)
4723     TEST_FIELD_OFFSET(IMAGE_RESOURCE_DIRECTORY, TimeDateStamp, 4)
4724     TEST_FIELD_SIZE  (IMAGE_RESOURCE_DIRECTORY, MajorVersion, 2)
4725     TEST_FIELD_ALIGN (IMAGE_RESOURCE_DIRECTORY, MajorVersion, 2)
4726     TEST_FIELD_OFFSET(IMAGE_RESOURCE_DIRECTORY, MajorVersion, 8)
4727     TEST_FIELD_SIZE  (IMAGE_RESOURCE_DIRECTORY, MinorVersion, 2)
4728     TEST_FIELD_ALIGN (IMAGE_RESOURCE_DIRECTORY, MinorVersion, 2)
4729     TEST_FIELD_OFFSET(IMAGE_RESOURCE_DIRECTORY, MinorVersion, 10)
4730     TEST_FIELD_SIZE  (IMAGE_RESOURCE_DIRECTORY, NumberOfNamedEntries, 2)
4731     TEST_FIELD_ALIGN (IMAGE_RESOURCE_DIRECTORY, NumberOfNamedEntries, 2)
4732     TEST_FIELD_OFFSET(IMAGE_RESOURCE_DIRECTORY, NumberOfNamedEntries, 12)
4733     TEST_FIELD_SIZE  (IMAGE_RESOURCE_DIRECTORY, NumberOfIdEntries, 2)
4734     TEST_FIELD_ALIGN (IMAGE_RESOURCE_DIRECTORY, NumberOfIdEntries, 2)
4735     TEST_FIELD_OFFSET(IMAGE_RESOURCE_DIRECTORY, NumberOfIdEntries, 14)
4736 }
4737
4738 static void test_pack_IMAGE_RESOURCE_DIRECTORY_ENTRY(void)
4739 {
4740     /* IMAGE_RESOURCE_DIRECTORY_ENTRY */
4741 }
4742
4743 static void test_pack_IMAGE_RESOURCE_DIRECTORY_STRING(void)
4744 {
4745     /* IMAGE_RESOURCE_DIRECTORY_STRING */
4746     TEST_TYPE_SIZE   (IMAGE_RESOURCE_DIRECTORY_STRING, 4)
4747     TEST_TYPE_ALIGN  (IMAGE_RESOURCE_DIRECTORY_STRING, 2)
4748     TEST_FIELD_SIZE  (IMAGE_RESOURCE_DIRECTORY_STRING, Length, 2)
4749     TEST_FIELD_ALIGN (IMAGE_RESOURCE_DIRECTORY_STRING, Length, 2)
4750     TEST_FIELD_OFFSET(IMAGE_RESOURCE_DIRECTORY_STRING, Length, 0)
4751     TEST_FIELD_SIZE  (IMAGE_RESOURCE_DIRECTORY_STRING, NameString, 1)
4752     TEST_FIELD_ALIGN (IMAGE_RESOURCE_DIRECTORY_STRING, NameString, 1)
4753     TEST_FIELD_OFFSET(IMAGE_RESOURCE_DIRECTORY_STRING, NameString, 2)
4754 }
4755
4756 static void test_pack_IMAGE_RESOURCE_DIR_STRING_U(void)
4757 {
4758     /* IMAGE_RESOURCE_DIR_STRING_U */
4759     TEST_TYPE_SIZE   (IMAGE_RESOURCE_DIR_STRING_U, 4)
4760     TEST_TYPE_ALIGN  (IMAGE_RESOURCE_DIR_STRING_U, 2)
4761     TEST_FIELD_SIZE  (IMAGE_RESOURCE_DIR_STRING_U, Length, 2)
4762     TEST_FIELD_ALIGN (IMAGE_RESOURCE_DIR_STRING_U, Length, 2)
4763     TEST_FIELD_OFFSET(IMAGE_RESOURCE_DIR_STRING_U, Length, 0)
4764     TEST_FIELD_SIZE  (IMAGE_RESOURCE_DIR_STRING_U, NameString, 2)
4765     TEST_FIELD_ALIGN (IMAGE_RESOURCE_DIR_STRING_U, NameString, 2)
4766     TEST_FIELD_OFFSET(IMAGE_RESOURCE_DIR_STRING_U, NameString, 2)
4767 }
4768
4769 static void test_pack_IMAGE_SECTION_HEADER(void)
4770 {
4771     /* IMAGE_SECTION_HEADER */
4772     TEST_FIELD_SIZE  (IMAGE_SECTION_HEADER, Name, 8)
4773     TEST_FIELD_ALIGN (IMAGE_SECTION_HEADER, Name, 1)
4774     TEST_FIELD_OFFSET(IMAGE_SECTION_HEADER, Name, 0)
4775 }
4776
4777 static void test_pack_IMAGE_SEPARATE_DEBUG_HEADER(void)
4778 {
4779     /* IMAGE_SEPARATE_DEBUG_HEADER */
4780     TEST_TYPE_SIZE   (IMAGE_SEPARATE_DEBUG_HEADER, 48)
4781     TEST_TYPE_ALIGN  (IMAGE_SEPARATE_DEBUG_HEADER, 4)
4782     TEST_FIELD_SIZE  (IMAGE_SEPARATE_DEBUG_HEADER, Signature, 2)
4783     TEST_FIELD_ALIGN (IMAGE_SEPARATE_DEBUG_HEADER, Signature, 2)
4784     TEST_FIELD_OFFSET(IMAGE_SEPARATE_DEBUG_HEADER, Signature, 0)
4785     TEST_FIELD_SIZE  (IMAGE_SEPARATE_DEBUG_HEADER, Flags, 2)
4786     TEST_FIELD_ALIGN (IMAGE_SEPARATE_DEBUG_HEADER, Flags, 2)
4787     TEST_FIELD_OFFSET(IMAGE_SEPARATE_DEBUG_HEADER, Flags, 2)
4788     TEST_FIELD_SIZE  (IMAGE_SEPARATE_DEBUG_HEADER, Machine, 2)
4789     TEST_FIELD_ALIGN (IMAGE_SEPARATE_DEBUG_HEADER, Machine, 2)
4790     TEST_FIELD_OFFSET(IMAGE_SEPARATE_DEBUG_HEADER, Machine, 4)
4791     TEST_FIELD_SIZE  (IMAGE_SEPARATE_DEBUG_HEADER, Characteristics, 2)
4792     TEST_FIELD_ALIGN (IMAGE_SEPARATE_DEBUG_HEADER, Characteristics, 2)
4793     TEST_FIELD_OFFSET(IMAGE_SEPARATE_DEBUG_HEADER, Characteristics, 6)
4794     TEST_FIELD_SIZE  (IMAGE_SEPARATE_DEBUG_HEADER, TimeDateStamp, 4)
4795     TEST_FIELD_ALIGN (IMAGE_SEPARATE_DEBUG_HEADER, TimeDateStamp, 4)
4796     TEST_FIELD_OFFSET(IMAGE_SEPARATE_DEBUG_HEADER, TimeDateStamp, 8)
4797     TEST_FIELD_SIZE  (IMAGE_SEPARATE_DEBUG_HEADER, CheckSum, 4)
4798     TEST_FIELD_ALIGN (IMAGE_SEPARATE_DEBUG_HEADER, CheckSum, 4)
4799     TEST_FIELD_OFFSET(IMAGE_SEPARATE_DEBUG_HEADER, CheckSum, 12)
4800     TEST_FIELD_SIZE  (IMAGE_SEPARATE_DEBUG_HEADER, ImageBase, 4)
4801     TEST_FIELD_ALIGN (IMAGE_SEPARATE_DEBUG_HEADER, ImageBase, 4)
4802     TEST_FIELD_OFFSET(IMAGE_SEPARATE_DEBUG_HEADER, ImageBase, 16)
4803     TEST_FIELD_SIZE  (IMAGE_SEPARATE_DEBUG_HEADER, SizeOfImage, 4)
4804     TEST_FIELD_ALIGN (IMAGE_SEPARATE_DEBUG_HEADER, SizeOfImage, 4)
4805     TEST_FIELD_OFFSET(IMAGE_SEPARATE_DEBUG_HEADER, SizeOfImage, 20)
4806     TEST_FIELD_SIZE  (IMAGE_SEPARATE_DEBUG_HEADER, NumberOfSections, 4)
4807     TEST_FIELD_ALIGN (IMAGE_SEPARATE_DEBUG_HEADER, NumberOfSections, 4)
4808     TEST_FIELD_OFFSET(IMAGE_SEPARATE_DEBUG_HEADER, NumberOfSections, 24)
4809     TEST_FIELD_SIZE  (IMAGE_SEPARATE_DEBUG_HEADER, ExportedNamesSize, 4)
4810     TEST_FIELD_ALIGN (IMAGE_SEPARATE_DEBUG_HEADER, ExportedNamesSize, 4)
4811     TEST_FIELD_OFFSET(IMAGE_SEPARATE_DEBUG_HEADER, ExportedNamesSize, 28)
4812     TEST_FIELD_SIZE  (IMAGE_SEPARATE_DEBUG_HEADER, DebugDirectorySize, 4)
4813     TEST_FIELD_ALIGN (IMAGE_SEPARATE_DEBUG_HEADER, DebugDirectorySize, 4)
4814     TEST_FIELD_OFFSET(IMAGE_SEPARATE_DEBUG_HEADER, DebugDirectorySize, 32)
4815     TEST_FIELD_SIZE  (IMAGE_SEPARATE_DEBUG_HEADER, SectionAlignment, 4)
4816     TEST_FIELD_ALIGN (IMAGE_SEPARATE_DEBUG_HEADER, SectionAlignment, 4)
4817     TEST_FIELD_OFFSET(IMAGE_SEPARATE_DEBUG_HEADER, SectionAlignment, 36)
4818     TEST_FIELD_SIZE  (IMAGE_SEPARATE_DEBUG_HEADER, Reserved, 8)
4819     TEST_FIELD_ALIGN (IMAGE_SEPARATE_DEBUG_HEADER, Reserved, 4)
4820     TEST_FIELD_OFFSET(IMAGE_SEPARATE_DEBUG_HEADER, Reserved, 40)
4821 }
4822
4823 static void test_pack_IMAGE_SYMBOL(void)
4824 {
4825     /* IMAGE_SYMBOL (pack 2) */
4826 }
4827
4828 static void test_pack_IMAGE_THUNK_DATA(void)
4829 {
4830     /* IMAGE_THUNK_DATA */
4831 }
4832
4833 static void test_pack_IMAGE_TLS_DIRECTORY(void)
4834 {
4835     /* IMAGE_TLS_DIRECTORY */
4836     TEST_TYPE_SIZE   (IMAGE_TLS_DIRECTORY, 24)
4837     TEST_TYPE_ALIGN  (IMAGE_TLS_DIRECTORY, 4)
4838 }
4839
4840 static void test_pack_IMAGE_TLS_DIRECTORY32(void)
4841 {
4842     /* IMAGE_TLS_DIRECTORY32 */
4843     TEST_TYPE_SIZE   (IMAGE_TLS_DIRECTORY32, 24)
4844     TEST_TYPE_ALIGN  (IMAGE_TLS_DIRECTORY32, 4)
4845     TEST_FIELD_SIZE  (IMAGE_TLS_DIRECTORY32, StartAddressOfRawData, 4)
4846     TEST_FIELD_ALIGN (IMAGE_TLS_DIRECTORY32, StartAddressOfRawData, 4)
4847     TEST_FIELD_OFFSET(IMAGE_TLS_DIRECTORY32, StartAddressOfRawData, 0)
4848     TEST_FIELD_SIZE  (IMAGE_TLS_DIRECTORY32, EndAddressOfRawData, 4)
4849     TEST_FIELD_ALIGN (IMAGE_TLS_DIRECTORY32, EndAddressOfRawData, 4)
4850     TEST_FIELD_OFFSET(IMAGE_TLS_DIRECTORY32, EndAddressOfRawData, 4)
4851     TEST_FIELD_SIZE  (IMAGE_TLS_DIRECTORY32, AddressOfIndex, 4)
4852     TEST_FIELD_ALIGN (IMAGE_TLS_DIRECTORY32, AddressOfIndex, 4)
4853     TEST_FIELD_OFFSET(IMAGE_TLS_DIRECTORY32, AddressOfIndex, 8)
4854     TEST_FIELD_SIZE  (IMAGE_TLS_DIRECTORY32, AddressOfCallBacks, 4)
4855     TEST_FIELD_ALIGN (IMAGE_TLS_DIRECTORY32, AddressOfCallBacks, 4)
4856     TEST_FIELD_OFFSET(IMAGE_TLS_DIRECTORY32, AddressOfCallBacks, 12)
4857     TEST_FIELD_SIZE  (IMAGE_TLS_DIRECTORY32, SizeOfZeroFill, 4)
4858     TEST_FIELD_ALIGN (IMAGE_TLS_DIRECTORY32, SizeOfZeroFill, 4)
4859     TEST_FIELD_OFFSET(IMAGE_TLS_DIRECTORY32, SizeOfZeroFill, 16)
4860     TEST_FIELD_SIZE  (IMAGE_TLS_DIRECTORY32, Characteristics, 4)
4861     TEST_FIELD_ALIGN (IMAGE_TLS_DIRECTORY32, Characteristics, 4)
4862     TEST_FIELD_OFFSET(IMAGE_TLS_DIRECTORY32, Characteristics, 20)
4863 }
4864
4865 static void test_pack_IMAGE_TLS_DIRECTORY64(void)
4866 {
4867     /* IMAGE_TLS_DIRECTORY64 */
4868     TEST_TYPE_SIZE   (IMAGE_TLS_DIRECTORY64, 40)
4869     TEST_TYPE_ALIGN  (IMAGE_TLS_DIRECTORY64, 8)
4870     TEST_FIELD_SIZE  (IMAGE_TLS_DIRECTORY64, StartAddressOfRawData, 8)
4871     TEST_FIELD_ALIGN (IMAGE_TLS_DIRECTORY64, StartAddressOfRawData, 8)
4872     TEST_FIELD_OFFSET(IMAGE_TLS_DIRECTORY64, StartAddressOfRawData, 0)
4873     TEST_FIELD_SIZE  (IMAGE_TLS_DIRECTORY64, EndAddressOfRawData, 8)
4874     TEST_FIELD_ALIGN (IMAGE_TLS_DIRECTORY64, EndAddressOfRawData, 8)
4875     TEST_FIELD_OFFSET(IMAGE_TLS_DIRECTORY64, EndAddressOfRawData, 8)
4876     TEST_FIELD_SIZE  (IMAGE_TLS_DIRECTORY64, AddressOfIndex, 8)
4877     TEST_FIELD_ALIGN (IMAGE_TLS_DIRECTORY64, AddressOfIndex, 8)
4878     TEST_FIELD_OFFSET(IMAGE_TLS_DIRECTORY64, AddressOfIndex, 16)
4879     TEST_FIELD_SIZE  (IMAGE_TLS_DIRECTORY64, AddressOfCallBacks, 8)
4880     TEST_FIELD_ALIGN (IMAGE_TLS_DIRECTORY64, AddressOfCallBacks, 8)
4881     TEST_FIELD_OFFSET(IMAGE_TLS_DIRECTORY64, AddressOfCallBacks, 24)
4882     TEST_FIELD_SIZE  (IMAGE_TLS_DIRECTORY64, SizeOfZeroFill, 4)
4883     TEST_FIELD_ALIGN (IMAGE_TLS_DIRECTORY64, SizeOfZeroFill, 4)
4884     TEST_FIELD_OFFSET(IMAGE_TLS_DIRECTORY64, SizeOfZeroFill, 32)
4885     TEST_FIELD_SIZE  (IMAGE_TLS_DIRECTORY64, Characteristics, 4)
4886     TEST_FIELD_ALIGN (IMAGE_TLS_DIRECTORY64, Characteristics, 4)
4887     TEST_FIELD_OFFSET(IMAGE_TLS_DIRECTORY64, Characteristics, 36)
4888 }
4889
4890 static void test_pack_IMAGE_VXD_HEADER(void)
4891 {
4892     /* IMAGE_VXD_HEADER (pack 2) */
4893     TEST_TYPE_SIZE   (IMAGE_VXD_HEADER, 196)
4894     TEST_TYPE_ALIGN  (IMAGE_VXD_HEADER, 2)
4895     TEST_FIELD_SIZE  (IMAGE_VXD_HEADER, e32_magic, 2)
4896     TEST_FIELD_ALIGN (IMAGE_VXD_HEADER, e32_magic, 2)
4897     TEST_FIELD_OFFSET(IMAGE_VXD_HEADER, e32_magic, 0)
4898     TEST_FIELD_SIZE  (IMAGE_VXD_HEADER, e32_border, 1)
4899     TEST_FIELD_ALIGN (IMAGE_VXD_HEADER, e32_border, 1)
4900     TEST_FIELD_OFFSET(IMAGE_VXD_HEADER, e32_border, 2)
4901     TEST_FIELD_SIZE  (IMAGE_VXD_HEADER, e32_worder, 1)
4902     TEST_FIELD_ALIGN (IMAGE_VXD_HEADER, e32_worder, 1)
4903     TEST_FIELD_OFFSET(IMAGE_VXD_HEADER, e32_worder, 3)
4904     TEST_FIELD_SIZE  (IMAGE_VXD_HEADER, e32_level, 4)
4905     TEST_FIELD_ALIGN (IMAGE_VXD_HEADER, e32_level, 2)
4906     TEST_FIELD_OFFSET(IMAGE_VXD_HEADER, e32_level, 4)
4907     TEST_FIELD_SIZE  (IMAGE_VXD_HEADER, e32_cpu, 2)
4908     TEST_FIELD_ALIGN (IMAGE_VXD_HEADER, e32_cpu, 2)
4909     TEST_FIELD_OFFSET(IMAGE_VXD_HEADER, e32_cpu, 8)
4910     TEST_FIELD_SIZE  (IMAGE_VXD_HEADER, e32_os, 2)
4911     TEST_FIELD_ALIGN (IMAGE_VXD_HEADER, e32_os, 2)
4912     TEST_FIELD_OFFSET(IMAGE_VXD_HEADER, e32_os, 10)
4913     TEST_FIELD_SIZE  (IMAGE_VXD_HEADER, e32_ver, 4)
4914     TEST_FIELD_ALIGN (IMAGE_VXD_HEADER, e32_ver, 2)
4915     TEST_FIELD_OFFSET(IMAGE_VXD_HEADER, e32_ver, 12)
4916     TEST_FIELD_SIZE  (IMAGE_VXD_HEADER, e32_mflags, 4)
4917     TEST_FIELD_ALIGN (IMAGE_VXD_HEADER, e32_mflags, 2)
4918     TEST_FIELD_OFFSET(IMAGE_VXD_HEADER, e32_mflags, 16)
4919     TEST_FIELD_SIZE  (IMAGE_VXD_HEADER, e32_mpages, 4)
4920     TEST_FIELD_ALIGN (IMAGE_VXD_HEADER, e32_mpages, 2)
4921     TEST_FIELD_OFFSET(IMAGE_VXD_HEADER, e32_mpages, 20)
4922     TEST_FIELD_SIZE  (IMAGE_VXD_HEADER, e32_startobj, 4)
4923     TEST_FIELD_ALIGN (IMAGE_VXD_HEADER, e32_startobj, 2)
4924     TEST_FIELD_OFFSET(IMAGE_VXD_HEADER, e32_startobj, 24)
4925     TEST_FIELD_SIZE  (IMAGE_VXD_HEADER, e32_eip, 4)
4926     TEST_FIELD_ALIGN (IMAGE_VXD_HEADER, e32_eip, 2)
4927     TEST_FIELD_OFFSET(IMAGE_VXD_HEADER, e32_eip, 28)
4928     TEST_FIELD_SIZE  (IMAGE_VXD_HEADER, e32_stackobj, 4)
4929     TEST_FIELD_ALIGN (IMAGE_VXD_HEADER, e32_stackobj, 2)
4930     TEST_FIELD_OFFSET(IMAGE_VXD_HEADER, e32_stackobj, 32)
4931     TEST_FIELD_SIZE  (IMAGE_VXD_HEADER, e32_esp, 4)
4932     TEST_FIELD_ALIGN (IMAGE_VXD_HEADER, e32_esp, 2)
4933     TEST_FIELD_OFFSET(IMAGE_VXD_HEADER, e32_esp, 36)
4934     TEST_FIELD_SIZE  (IMAGE_VXD_HEADER, e32_pagesize, 4)
4935     TEST_FIELD_ALIGN (IMAGE_VXD_HEADER, e32_pagesize, 2)
4936     TEST_FIELD_OFFSET(IMAGE_VXD_HEADER, e32_pagesize, 40)
4937     TEST_FIELD_SIZE  (IMAGE_VXD_HEADER, e32_lastpagesize, 4)
4938     TEST_FIELD_ALIGN (IMAGE_VXD_HEADER, e32_lastpagesize, 2)
4939     TEST_FIELD_OFFSET(IMAGE_VXD_HEADER, e32_lastpagesize, 44)
4940     TEST_FIELD_SIZE  (IMAGE_VXD_HEADER, e32_fixupsize, 4)
4941     TEST_FIELD_ALIGN (IMAGE_VXD_HEADER, e32_fixupsize, 2)
4942     TEST_FIELD_OFFSET(IMAGE_VXD_HEADER, e32_fixupsize, 48)
4943     TEST_FIELD_SIZE  (IMAGE_VXD_HEADER, e32_fixupsum, 4)
4944     TEST_FIELD_ALIGN (IMAGE_VXD_HEADER, e32_fixupsum, 2)
4945     TEST_FIELD_OFFSET(IMAGE_VXD_HEADER, e32_fixupsum, 52)
4946     TEST_FIELD_SIZE  (IMAGE_VXD_HEADER, e32_ldrsize, 4)
4947     TEST_FIELD_ALIGN (IMAGE_VXD_HEADER, e32_ldrsize, 2)
4948     TEST_FIELD_OFFSET(IMAGE_VXD_HEADER, e32_ldrsize, 56)
4949     TEST_FIELD_SIZE  (IMAGE_VXD_HEADER, e32_ldrsum, 4)
4950     TEST_FIELD_ALIGN (IMAGE_VXD_HEADER, e32_ldrsum, 2)
4951     TEST_FIELD_OFFSET(IMAGE_VXD_HEADER, e32_ldrsum, 60)
4952     TEST_FIELD_SIZE  (IMAGE_VXD_HEADER, e32_objtab, 4)
4953     TEST_FIELD_ALIGN (IMAGE_VXD_HEADER, e32_objtab, 2)
4954     TEST_FIELD_OFFSET(IMAGE_VXD_HEADER, e32_objtab, 64)
4955     TEST_FIELD_SIZE  (IMAGE_VXD_HEADER, e32_objcnt, 4)
4956     TEST_FIELD_ALIGN (IMAGE_VXD_HEADER, e32_objcnt, 2)
4957     TEST_FIELD_OFFSET(IMAGE_VXD_HEADER, e32_objcnt, 68)
4958     TEST_FIELD_SIZE  (IMAGE_VXD_HEADER, e32_objmap, 4)
4959     TEST_FIELD_ALIGN (IMAGE_VXD_HEADER, e32_objmap, 2)
4960     TEST_FIELD_OFFSET(IMAGE_VXD_HEADER, e32_objmap, 72)
4961     TEST_FIELD_SIZE  (IMAGE_VXD_HEADER, e32_itermap, 4)
4962     TEST_FIELD_ALIGN (IMAGE_VXD_HEADER, e32_itermap, 2)
4963     TEST_FIELD_OFFSET(IMAGE_VXD_HEADER, e32_itermap, 76)
4964     TEST_FIELD_SIZE  (IMAGE_VXD_HEADER, e32_rsrctab, 4)
4965     TEST_FIELD_ALIGN (IMAGE_VXD_HEADER, e32_rsrctab, 2)
4966     TEST_FIELD_OFFSET(IMAGE_VXD_HEADER, e32_rsrctab, 80)
4967     TEST_FIELD_SIZE  (IMAGE_VXD_HEADER, e32_rsrccnt, 4)
4968     TEST_FIELD_ALIGN (IMAGE_VXD_HEADER, e32_rsrccnt, 2)
4969     TEST_FIELD_OFFSET(IMAGE_VXD_HEADER, e32_rsrccnt, 84)
4970     TEST_FIELD_SIZE  (IMAGE_VXD_HEADER, e32_restab, 4)
4971     TEST_FIELD_ALIGN (IMAGE_VXD_HEADER, e32_restab, 2)
4972     TEST_FIELD_OFFSET(IMAGE_VXD_HEADER, e32_restab, 88)
4973     TEST_FIELD_SIZE  (IMAGE_VXD_HEADER, e32_enttab, 4)
4974     TEST_FIELD_ALIGN (IMAGE_VXD_HEADER, e32_enttab, 2)
4975     TEST_FIELD_OFFSET(IMAGE_VXD_HEADER, e32_enttab, 92)
4976     TEST_FIELD_SIZE  (IMAGE_VXD_HEADER, e32_dirtab, 4)
4977     TEST_FIELD_ALIGN (IMAGE_VXD_HEADER, e32_dirtab, 2)
4978     TEST_FIELD_OFFSET(IMAGE_VXD_HEADER, e32_dirtab, 96)
4979     TEST_FIELD_SIZE  (IMAGE_VXD_HEADER, e32_dircnt, 4)
4980     TEST_FIELD_ALIGN (IMAGE_VXD_HEADER, e32_dircnt, 2)
4981     TEST_FIELD_OFFSET(IMAGE_VXD_HEADER, e32_dircnt, 100)
4982     TEST_FIELD_SIZE  (IMAGE_VXD_HEADER, e32_fpagetab, 4)
4983     TEST_FIELD_ALIGN (IMAGE_VXD_HEADER, e32_fpagetab, 2)
4984     TEST_FIELD_OFFSET(IMAGE_VXD_HEADER, e32_fpagetab, 104)
4985     TEST_FIELD_SIZE  (IMAGE_VXD_HEADER, e32_frectab, 4)
4986     TEST_FIELD_ALIGN (IMAGE_VXD_HEADER, e32_frectab, 2)
4987     TEST_FIELD_OFFSET(IMAGE_VXD_HEADER, e32_frectab, 108)
4988     TEST_FIELD_SIZE  (IMAGE_VXD_HEADER, e32_impmod, 4)
4989     TEST_FIELD_ALIGN (IMAGE_VXD_HEADER, e32_impmod, 2)
4990     TEST_FIELD_OFFSET(IMAGE_VXD_HEADER, e32_impmod, 112)
4991     TEST_FIELD_SIZE  (IMAGE_VXD_HEADER, e32_impmodcnt, 4)
4992     TEST_FIELD_ALIGN (IMAGE_VXD_HEADER, e32_impmodcnt, 2)
4993     TEST_FIELD_OFFSET(IMAGE_VXD_HEADER, e32_impmodcnt, 116)
4994     TEST_FIELD_SIZE  (IMAGE_VXD_HEADER, e32_impproc, 4)
4995     TEST_FIELD_ALIGN (IMAGE_VXD_HEADER, e32_impproc, 2)
4996     TEST_FIELD_OFFSET(IMAGE_VXD_HEADER, e32_impproc, 120)
4997     TEST_FIELD_SIZE  (IMAGE_VXD_HEADER, e32_pagesum, 4)
4998     TEST_FIELD_ALIGN (IMAGE_VXD_HEADER, e32_pagesum, 2)
4999     TEST_FIELD_OFFSET(IMAGE_VXD_HEADER, e32_pagesum, 124)
5000     TEST_FIELD_SIZE  (IMAGE_VXD_HEADER, e32_datapage, 4)
5001     TEST_FIELD_ALIGN (IMAGE_VXD_HEADER, e32_datapage, 2)
5002     TEST_FIELD_OFFSET(IMAGE_VXD_HEADER, e32_datapage, 128)
5003     TEST_FIELD_SIZE  (IMAGE_VXD_HEADER, e32_preload, 4)
5004     TEST_FIELD_ALIGN (IMAGE_VXD_HEADER, e32_preload, 2)
5005     TEST_FIELD_OFFSET(IMAGE_VXD_HEADER, e32_preload, 132)
5006     TEST_FIELD_SIZE  (IMAGE_VXD_HEADER, e32_nrestab, 4)
5007     TEST_FIELD_ALIGN (IMAGE_VXD_HEADER, e32_nrestab, 2)
5008     TEST_FIELD_OFFSET(IMAGE_VXD_HEADER, e32_nrestab, 136)
5009     TEST_FIELD_SIZE  (IMAGE_VXD_HEADER, e32_cbnrestab, 4)
5010     TEST_FIELD_ALIGN (IMAGE_VXD_HEADER, e32_cbnrestab, 2)
5011     TEST_FIELD_OFFSET(IMAGE_VXD_HEADER, e32_cbnrestab, 140)
5012     TEST_FIELD_SIZE  (IMAGE_VXD_HEADER, e32_nressum, 4)
5013     TEST_FIELD_ALIGN (IMAGE_VXD_HEADER, e32_nressum, 2)
5014     TEST_FIELD_OFFSET(IMAGE_VXD_HEADER, e32_nressum, 144)
5015     TEST_FIELD_SIZE  (IMAGE_VXD_HEADER, e32_autodata, 4)
5016     TEST_FIELD_ALIGN (IMAGE_VXD_HEADER, e32_autodata, 2)
5017     TEST_FIELD_OFFSET(IMAGE_VXD_HEADER, e32_autodata, 148)
5018     TEST_FIELD_SIZE  (IMAGE_VXD_HEADER, e32_debuginfo, 4)
5019     TEST_FIELD_ALIGN (IMAGE_VXD_HEADER, e32_debuginfo, 2)
5020     TEST_FIELD_OFFSET(IMAGE_VXD_HEADER, e32_debuginfo, 152)
5021     TEST_FIELD_SIZE  (IMAGE_VXD_HEADER, e32_debuglen, 4)
5022     TEST_FIELD_ALIGN (IMAGE_VXD_HEADER, e32_debuglen, 2)
5023     TEST_FIELD_OFFSET(IMAGE_VXD_HEADER, e32_debuglen, 156)
5024     TEST_FIELD_SIZE  (IMAGE_VXD_HEADER, e32_instpreload, 4)
5025     TEST_FIELD_ALIGN (IMAGE_VXD_HEADER, e32_instpreload, 2)
5026     TEST_FIELD_OFFSET(IMAGE_VXD_HEADER, e32_instpreload, 160)
5027     TEST_FIELD_SIZE  (IMAGE_VXD_HEADER, e32_instdemand, 4)
5028     TEST_FIELD_ALIGN (IMAGE_VXD_HEADER, e32_instdemand, 2)
5029     TEST_FIELD_OFFSET(IMAGE_VXD_HEADER, e32_instdemand, 164)
5030     TEST_FIELD_SIZE  (IMAGE_VXD_HEADER, e32_heapsize, 4)
5031     TEST_FIELD_ALIGN (IMAGE_VXD_HEADER, e32_heapsize, 2)
5032     TEST_FIELD_OFFSET(IMAGE_VXD_HEADER, e32_heapsize, 168)
5033     TEST_FIELD_SIZE  (IMAGE_VXD_HEADER, e32_res3, 12)
5034     TEST_FIELD_ALIGN (IMAGE_VXD_HEADER, e32_res3, 1)
5035     TEST_FIELD_OFFSET(IMAGE_VXD_HEADER, e32_res3, 172)
5036     TEST_FIELD_SIZE  (IMAGE_VXD_HEADER, e32_winresoff, 4)
5037     TEST_FIELD_ALIGN (IMAGE_VXD_HEADER, e32_winresoff, 2)
5038     TEST_FIELD_OFFSET(IMAGE_VXD_HEADER, e32_winresoff, 184)
5039     TEST_FIELD_SIZE  (IMAGE_VXD_HEADER, e32_winreslen, 4)
5040     TEST_FIELD_ALIGN (IMAGE_VXD_HEADER, e32_winreslen, 2)
5041     TEST_FIELD_OFFSET(IMAGE_VXD_HEADER, e32_winreslen, 188)
5042     TEST_FIELD_SIZE  (IMAGE_VXD_HEADER, e32_devid, 2)
5043     TEST_FIELD_ALIGN (IMAGE_VXD_HEADER, e32_devid, 2)
5044     TEST_FIELD_OFFSET(IMAGE_VXD_HEADER, e32_devid, 192)
5045     TEST_FIELD_SIZE  (IMAGE_VXD_HEADER, e32_ddkver, 2)
5046     TEST_FIELD_ALIGN (IMAGE_VXD_HEADER, e32_ddkver, 2)
5047     TEST_FIELD_OFFSET(IMAGE_VXD_HEADER, e32_ddkver, 194)
5048 }
5049
5050 static void test_pack_IO_COUNTERS(void)
5051 {
5052     /* IO_COUNTERS (pack 8) */
5053     TEST_TYPE_SIZE   (IO_COUNTERS, 48)
5054     TEST_TYPE_ALIGN  (IO_COUNTERS, 8)
5055     TEST_FIELD_SIZE  (IO_COUNTERS, ReadOperationCount, 8)
5056     TEST_FIELD_ALIGN (IO_COUNTERS, ReadOperationCount, 8)
5057     TEST_FIELD_OFFSET(IO_COUNTERS, ReadOperationCount, 0)
5058     TEST_FIELD_SIZE  (IO_COUNTERS, WriteOperationCount, 8)
5059     TEST_FIELD_ALIGN (IO_COUNTERS, WriteOperationCount, 8)
5060     TEST_FIELD_OFFSET(IO_COUNTERS, WriteOperationCount, 8)
5061     TEST_FIELD_SIZE  (IO_COUNTERS, OtherOperationCount, 8)
5062     TEST_FIELD_ALIGN (IO_COUNTERS, OtherOperationCount, 8)
5063     TEST_FIELD_OFFSET(IO_COUNTERS, OtherOperationCount, 16)
5064     TEST_FIELD_SIZE  (IO_COUNTERS, ReadTransferCount, 8)
5065     TEST_FIELD_ALIGN (IO_COUNTERS, ReadTransferCount, 8)
5066     TEST_FIELD_OFFSET(IO_COUNTERS, ReadTransferCount, 24)
5067     TEST_FIELD_SIZE  (IO_COUNTERS, WriteTransferCount, 8)
5068     TEST_FIELD_ALIGN (IO_COUNTERS, WriteTransferCount, 8)
5069     TEST_FIELD_OFFSET(IO_COUNTERS, WriteTransferCount, 32)
5070     TEST_FIELD_SIZE  (IO_COUNTERS, OtherTransferCount, 8)
5071     TEST_FIELD_ALIGN (IO_COUNTERS, OtherTransferCount, 8)
5072     TEST_FIELD_OFFSET(IO_COUNTERS, OtherTransferCount, 40)
5073 }
5074
5075 static void test_pack_LANGID(void)
5076 {
5077     /* LANGID */
5078     TEST_TYPE_SIZE   (LANGID, 2)
5079     TEST_TYPE_ALIGN  (LANGID, 2)
5080     TEST_TYPE_UNSIGNED(LANGID)
5081 }
5082
5083 static void test_pack_LARGE_INTEGER(void)
5084 {
5085     /* LARGE_INTEGER */
5086 }
5087
5088 static void test_pack_LCID(void)
5089 {
5090     /* LCID */
5091     TEST_TYPE_SIZE   (LCID, 4)
5092     TEST_TYPE_ALIGN  (LCID, 4)
5093     TEST_TYPE_UNSIGNED(LCID)
5094 }
5095
5096 static void test_pack_LIST_ENTRY(void)
5097 {
5098     /* LIST_ENTRY */
5099     TEST_TYPE_SIZE   (LIST_ENTRY, 8)
5100     TEST_TYPE_ALIGN  (LIST_ENTRY, 4)
5101     TEST_FIELD_SIZE  (LIST_ENTRY, Flink, 4)
5102     TEST_FIELD_ALIGN (LIST_ENTRY, Flink, 4)
5103     TEST_FIELD_OFFSET(LIST_ENTRY, Flink, 0)
5104     TEST_FIELD_SIZE  (LIST_ENTRY, Blink, 4)
5105     TEST_FIELD_ALIGN (LIST_ENTRY, Blink, 4)
5106     TEST_FIELD_OFFSET(LIST_ENTRY, Blink, 4)
5107 }
5108
5109 static void test_pack_LONG(void)
5110 {
5111     /* LONG */
5112     TEST_TYPE_SIZE   (LONG, 4)
5113     TEST_TYPE_ALIGN  (LONG, 4)
5114     TEST_TYPE_SIGNED(LONG)
5115 }
5116
5117 static void test_pack_LONGLONG(void)
5118 {
5119     /* LONGLONG */
5120     TEST_TYPE_SIZE   (LONGLONG, 8)
5121     TEST_TYPE_ALIGN  (LONGLONG, 8)
5122     TEST_TYPE_SIGNED(LONGLONG)
5123 }
5124
5125 static void test_pack_LUID(void)
5126 {
5127     /* LUID */
5128     TEST_TYPE_SIZE   (LUID, 8)
5129     TEST_TYPE_ALIGN  (LUID, 4)
5130     TEST_FIELD_SIZE  (LUID, LowPart, 4)
5131     TEST_FIELD_ALIGN (LUID, LowPart, 4)
5132     TEST_FIELD_OFFSET(LUID, LowPart, 0)
5133     TEST_FIELD_SIZE  (LUID, HighPart, 4)
5134     TEST_FIELD_ALIGN (LUID, HighPart, 4)
5135     TEST_FIELD_OFFSET(LUID, HighPart, 4)
5136 }
5137
5138 static void test_pack_LUID_AND_ATTRIBUTES(void)
5139 {
5140     /* LUID_AND_ATTRIBUTES (pack 4) */
5141     TEST_TYPE_SIZE   (LUID_AND_ATTRIBUTES, 12)
5142     TEST_TYPE_ALIGN  (LUID_AND_ATTRIBUTES, 4)
5143     TEST_FIELD_SIZE  (LUID_AND_ATTRIBUTES, Luid, 8)
5144     TEST_FIELD_ALIGN (LUID_AND_ATTRIBUTES, Luid, 4)
5145     TEST_FIELD_OFFSET(LUID_AND_ATTRIBUTES, Luid, 0)
5146     TEST_FIELD_SIZE  (LUID_AND_ATTRIBUTES, Attributes, 4)
5147     TEST_FIELD_ALIGN (LUID_AND_ATTRIBUTES, Attributes, 4)
5148     TEST_FIELD_OFFSET(LUID_AND_ATTRIBUTES, Attributes, 8)
5149 }
5150
5151 static void test_pack_MEMORY_BASIC_INFORMATION(void)
5152 {
5153     /* MEMORY_BASIC_INFORMATION */
5154     TEST_TYPE_SIZE   (MEMORY_BASIC_INFORMATION, 28)
5155     TEST_TYPE_ALIGN  (MEMORY_BASIC_INFORMATION, 4)
5156     TEST_FIELD_SIZE  (MEMORY_BASIC_INFORMATION, BaseAddress, 4)
5157     TEST_FIELD_ALIGN (MEMORY_BASIC_INFORMATION, BaseAddress, 4)
5158     TEST_FIELD_OFFSET(MEMORY_BASIC_INFORMATION, BaseAddress, 0)
5159     TEST_FIELD_SIZE  (MEMORY_BASIC_INFORMATION, AllocationBase, 4)
5160     TEST_FIELD_ALIGN (MEMORY_BASIC_INFORMATION, AllocationBase, 4)
5161     TEST_FIELD_OFFSET(MEMORY_BASIC_INFORMATION, AllocationBase, 4)
5162     TEST_FIELD_SIZE  (MEMORY_BASIC_INFORMATION, AllocationProtect, 4)
5163     TEST_FIELD_ALIGN (MEMORY_BASIC_INFORMATION, AllocationProtect, 4)
5164     TEST_FIELD_OFFSET(MEMORY_BASIC_INFORMATION, AllocationProtect, 8)
5165     TEST_FIELD_SIZE  (MEMORY_BASIC_INFORMATION, RegionSize, 4)
5166     TEST_FIELD_ALIGN (MEMORY_BASIC_INFORMATION, RegionSize, 4)
5167     TEST_FIELD_OFFSET(MEMORY_BASIC_INFORMATION, RegionSize, 12)
5168     TEST_FIELD_SIZE  (MEMORY_BASIC_INFORMATION, State, 4)
5169     TEST_FIELD_ALIGN (MEMORY_BASIC_INFORMATION, State, 4)
5170     TEST_FIELD_OFFSET(MEMORY_BASIC_INFORMATION, State, 16)
5171     TEST_FIELD_SIZE  (MEMORY_BASIC_INFORMATION, Protect, 4)
5172     TEST_FIELD_ALIGN (MEMORY_BASIC_INFORMATION, Protect, 4)
5173     TEST_FIELD_OFFSET(MEMORY_BASIC_INFORMATION, Protect, 20)
5174     TEST_FIELD_SIZE  (MEMORY_BASIC_INFORMATION, Type, 4)
5175     TEST_FIELD_ALIGN (MEMORY_BASIC_INFORMATION, Type, 4)
5176     TEST_FIELD_OFFSET(MEMORY_BASIC_INFORMATION, Type, 24)
5177 }
5178
5179 static void test_pack_MESSAGE_RESOURCE_BLOCK(void)
5180 {
5181     /* MESSAGE_RESOURCE_BLOCK */
5182     TEST_TYPE_SIZE   (MESSAGE_RESOURCE_BLOCK, 12)
5183     TEST_TYPE_ALIGN  (MESSAGE_RESOURCE_BLOCK, 4)
5184     TEST_FIELD_SIZE  (MESSAGE_RESOURCE_BLOCK, LowId, 4)
5185     TEST_FIELD_ALIGN (MESSAGE_RESOURCE_BLOCK, LowId, 4)
5186     TEST_FIELD_OFFSET(MESSAGE_RESOURCE_BLOCK, LowId, 0)
5187     TEST_FIELD_SIZE  (MESSAGE_RESOURCE_BLOCK, HighId, 4)
5188     TEST_FIELD_ALIGN (MESSAGE_RESOURCE_BLOCK, HighId, 4)
5189     TEST_FIELD_OFFSET(MESSAGE_RESOURCE_BLOCK, HighId, 4)
5190     TEST_FIELD_SIZE  (MESSAGE_RESOURCE_BLOCK, OffsetToEntries, 4)
5191     TEST_FIELD_ALIGN (MESSAGE_RESOURCE_BLOCK, OffsetToEntries, 4)
5192     TEST_FIELD_OFFSET(MESSAGE_RESOURCE_BLOCK, OffsetToEntries, 8)
5193 }
5194
5195 static void test_pack_MESSAGE_RESOURCE_DATA(void)
5196 {
5197     /* MESSAGE_RESOURCE_DATA */
5198     TEST_TYPE_SIZE   (MESSAGE_RESOURCE_DATA, 16)
5199     TEST_TYPE_ALIGN  (MESSAGE_RESOURCE_DATA, 4)
5200     TEST_FIELD_SIZE  (MESSAGE_RESOURCE_DATA, NumberOfBlocks, 4)
5201     TEST_FIELD_ALIGN (MESSAGE_RESOURCE_DATA, NumberOfBlocks, 4)
5202     TEST_FIELD_OFFSET(MESSAGE_RESOURCE_DATA, NumberOfBlocks, 0)
5203     TEST_FIELD_SIZE  (MESSAGE_RESOURCE_DATA, Blocks, 12)
5204     TEST_FIELD_ALIGN (MESSAGE_RESOURCE_DATA, Blocks, 4)
5205     TEST_FIELD_OFFSET(MESSAGE_RESOURCE_DATA, Blocks, 4)
5206 }
5207
5208 static void test_pack_MESSAGE_RESOURCE_ENTRY(void)
5209 {
5210     /* MESSAGE_RESOURCE_ENTRY */
5211     TEST_TYPE_SIZE   (MESSAGE_RESOURCE_ENTRY, 6)
5212     TEST_TYPE_ALIGN  (MESSAGE_RESOURCE_ENTRY, 2)
5213     TEST_FIELD_SIZE  (MESSAGE_RESOURCE_ENTRY, Length, 2)
5214     TEST_FIELD_ALIGN (MESSAGE_RESOURCE_ENTRY, Length, 2)
5215     TEST_FIELD_OFFSET(MESSAGE_RESOURCE_ENTRY, Length, 0)
5216     TEST_FIELD_SIZE  (MESSAGE_RESOURCE_ENTRY, Flags, 2)
5217     TEST_FIELD_ALIGN (MESSAGE_RESOURCE_ENTRY, Flags, 2)
5218     TEST_FIELD_OFFSET(MESSAGE_RESOURCE_ENTRY, Flags, 2)
5219     TEST_FIELD_SIZE  (MESSAGE_RESOURCE_ENTRY, Text, 1)
5220     TEST_FIELD_ALIGN (MESSAGE_RESOURCE_ENTRY, Text, 1)
5221     TEST_FIELD_OFFSET(MESSAGE_RESOURCE_ENTRY, Text, 4)
5222 }
5223
5224 static void test_pack_NT_TIB(void)
5225 {
5226     /* NT_TIB */
5227     TEST_FIELD_SIZE  (NT_TIB, ExceptionList, 4)
5228     TEST_FIELD_ALIGN (NT_TIB, ExceptionList, 4)
5229     TEST_FIELD_OFFSET(NT_TIB, ExceptionList, 0)
5230     TEST_FIELD_SIZE  (NT_TIB, StackBase, 4)
5231     TEST_FIELD_ALIGN (NT_TIB, StackBase, 4)
5232     TEST_FIELD_OFFSET(NT_TIB, StackBase, 4)
5233     TEST_FIELD_SIZE  (NT_TIB, StackLimit, 4)
5234     TEST_FIELD_ALIGN (NT_TIB, StackLimit, 4)
5235     TEST_FIELD_OFFSET(NT_TIB, StackLimit, 8)
5236     TEST_FIELD_SIZE  (NT_TIB, SubSystemTib, 4)
5237     TEST_FIELD_ALIGN (NT_TIB, SubSystemTib, 4)
5238     TEST_FIELD_OFFSET(NT_TIB, SubSystemTib, 12)
5239 }
5240
5241 static void test_pack_OBJECT_TYPE_LIST(void)
5242 {
5243     /* OBJECT_TYPE_LIST */
5244     TEST_TYPE_SIZE   (OBJECT_TYPE_LIST, 8)
5245     TEST_TYPE_ALIGN  (OBJECT_TYPE_LIST, 4)
5246     TEST_FIELD_SIZE  (OBJECT_TYPE_LIST, Level, 2)
5247     TEST_FIELD_ALIGN (OBJECT_TYPE_LIST, Level, 2)
5248     TEST_FIELD_OFFSET(OBJECT_TYPE_LIST, Level, 0)
5249     TEST_FIELD_SIZE  (OBJECT_TYPE_LIST, Sbz, 2)
5250     TEST_FIELD_ALIGN (OBJECT_TYPE_LIST, Sbz, 2)
5251     TEST_FIELD_OFFSET(OBJECT_TYPE_LIST, Sbz, 2)
5252     TEST_FIELD_SIZE  (OBJECT_TYPE_LIST, ObjectType, 4)
5253     TEST_FIELD_ALIGN (OBJECT_TYPE_LIST, ObjectType, 4)
5254     TEST_FIELD_OFFSET(OBJECT_TYPE_LIST, ObjectType, 4)
5255 }
5256
5257 static void test_pack_PACCESS_ALLOWED_ACE(void)
5258 {
5259     /* PACCESS_ALLOWED_ACE */
5260     TEST_TYPE_SIZE   (PACCESS_ALLOWED_ACE, 4)
5261     TEST_TYPE_ALIGN  (PACCESS_ALLOWED_ACE, 4)
5262     TEST_TARGET_SIZE (PACCESS_ALLOWED_ACE, 12)
5263     TEST_TARGET_ALIGN(PACCESS_ALLOWED_ACE, 4)
5264 }
5265
5266 static void test_pack_PACCESS_DENIED_ACE(void)
5267 {
5268     /* PACCESS_DENIED_ACE */
5269     TEST_TYPE_SIZE   (PACCESS_DENIED_ACE, 4)
5270     TEST_TYPE_ALIGN  (PACCESS_DENIED_ACE, 4)
5271     TEST_TARGET_SIZE (PACCESS_DENIED_ACE, 12)
5272     TEST_TARGET_ALIGN(PACCESS_DENIED_ACE, 4)
5273 }
5274
5275 static void test_pack_PACCESS_TOKEN(void)
5276 {
5277     /* PACCESS_TOKEN */
5278     TEST_TYPE_SIZE   (PACCESS_TOKEN, 4)
5279     TEST_TYPE_ALIGN  (PACCESS_TOKEN, 4)
5280 }
5281
5282 static void test_pack_PACE_HEADER(void)
5283 {
5284     /* PACE_HEADER */
5285     TEST_TYPE_SIZE   (PACE_HEADER, 4)
5286     TEST_TYPE_ALIGN  (PACE_HEADER, 4)
5287     TEST_TARGET_SIZE (PACE_HEADER, 4)
5288     TEST_TARGET_ALIGN(PACE_HEADER, 2)
5289 }
5290
5291 static void test_pack_PACL(void)
5292 {
5293     /* PACL */
5294     TEST_TYPE_SIZE   (PACL, 4)
5295     TEST_TYPE_ALIGN  (PACL, 4)
5296     TEST_TARGET_SIZE (PACL, 8)
5297     TEST_TARGET_ALIGN(PACL, 2)
5298 }
5299
5300 static void test_pack_PACL_REVISION_INFORMATION(void)
5301 {
5302     /* PACL_REVISION_INFORMATION */
5303     TEST_TYPE_SIZE   (PACL_REVISION_INFORMATION, 4)
5304     TEST_TYPE_ALIGN  (PACL_REVISION_INFORMATION, 4)
5305     TEST_TARGET_SIZE (PACL_REVISION_INFORMATION, 4)
5306     TEST_TARGET_ALIGN(PACL_REVISION_INFORMATION, 4)
5307 }
5308
5309 static void test_pack_PACL_SIZE_INFORMATION(void)
5310 {
5311     /* PACL_SIZE_INFORMATION */
5312     TEST_TYPE_SIZE   (PACL_SIZE_INFORMATION, 4)
5313     TEST_TYPE_ALIGN  (PACL_SIZE_INFORMATION, 4)
5314     TEST_TARGET_SIZE (PACL_SIZE_INFORMATION, 12)
5315     TEST_TARGET_ALIGN(PACL_SIZE_INFORMATION, 4)
5316 }
5317
5318 static void test_pack_PCCH(void)
5319 {
5320     /* PCCH */
5321     TEST_TYPE_SIZE   (PCCH, 4)
5322     TEST_TYPE_ALIGN  (PCCH, 4)
5323     TEST_TARGET_SIZE (PCCH, 1)
5324     TEST_TARGET_ALIGN(PCCH, 1)
5325 }
5326
5327 static void test_pack_PCH(void)
5328 {
5329     /* PCH */
5330     TEST_TYPE_SIZE   (PCH, 4)
5331     TEST_TYPE_ALIGN  (PCH, 4)
5332     TEST_TARGET_SIZE (PCH, 1)
5333     TEST_TARGET_ALIGN(PCH, 1)
5334 }
5335
5336 static void test_pack_PCSTR(void)
5337 {
5338     /* PCSTR */
5339     TEST_TYPE_SIZE   (PCSTR, 4)
5340     TEST_TYPE_ALIGN  (PCSTR, 4)
5341     TEST_TARGET_SIZE (PCSTR, 1)
5342     TEST_TARGET_ALIGN(PCSTR, 1)
5343 }
5344
5345 static void test_pack_PCTSTR(void)
5346 {
5347     /* PCTSTR */
5348     TEST_TYPE_SIZE   (PCTSTR, 4)
5349     TEST_TYPE_ALIGN  (PCTSTR, 4)
5350 }
5351
5352 static void test_pack_PCWCH(void)
5353 {
5354     /* PCWCH */
5355     TEST_TYPE_SIZE   (PCWCH, 4)
5356     TEST_TYPE_ALIGN  (PCWCH, 4)
5357     TEST_TARGET_SIZE (PCWCH, 2)
5358     TEST_TARGET_ALIGN(PCWCH, 2)
5359 }
5360
5361 static void test_pack_PCWSTR(void)
5362 {
5363     /* PCWSTR */
5364     TEST_TYPE_SIZE   (PCWSTR, 4)
5365     TEST_TYPE_ALIGN  (PCWSTR, 4)
5366     TEST_TARGET_SIZE (PCWSTR, 2)
5367     TEST_TARGET_ALIGN(PCWSTR, 2)
5368 }
5369
5370 static void test_pack_PEXCEPTION_POINTERS(void)
5371 {
5372     /* PEXCEPTION_POINTERS */
5373     TEST_TYPE_SIZE   (PEXCEPTION_POINTERS, 4)
5374     TEST_TYPE_ALIGN  (PEXCEPTION_POINTERS, 4)
5375     TEST_TARGET_SIZE (PEXCEPTION_POINTERS, 8)
5376     TEST_TARGET_ALIGN(PEXCEPTION_POINTERS, 4)
5377 }
5378
5379 static void test_pack_PEXCEPTION_RECORD(void)
5380 {
5381     /* PEXCEPTION_RECORD */
5382     TEST_TYPE_SIZE   (PEXCEPTION_RECORD, 4)
5383     TEST_TYPE_ALIGN  (PEXCEPTION_RECORD, 4)
5384     TEST_TARGET_SIZE (PEXCEPTION_RECORD, 80)
5385     TEST_TARGET_ALIGN(PEXCEPTION_RECORD, 4)
5386 }
5387
5388 static void test_pack_PFLOATING_SAVE_AREA(void)
5389 {
5390     /* PFLOATING_SAVE_AREA */
5391     TEST_TYPE_SIZE   (PFLOATING_SAVE_AREA, 4)
5392     TEST_TYPE_ALIGN  (PFLOATING_SAVE_AREA, 4)
5393     TEST_TARGET_SIZE (PFLOATING_SAVE_AREA, 112)
5394     TEST_TARGET_ALIGN(PFLOATING_SAVE_AREA, 4)
5395 }
5396
5397 static void test_pack_PFPO_DATA(void)
5398 {
5399     /* PFPO_DATA */
5400     TEST_TYPE_SIZE   (PFPO_DATA, 4)
5401     TEST_TYPE_ALIGN  (PFPO_DATA, 4)
5402     TEST_TARGET_SIZE (PFPO_DATA, 16)
5403     TEST_TARGET_ALIGN(PFPO_DATA, 4)
5404 }
5405
5406 static void test_pack_PGENERIC_MAPPING(void)
5407 {
5408     /* PGENERIC_MAPPING */
5409     TEST_TYPE_SIZE   (PGENERIC_MAPPING, 4)
5410     TEST_TYPE_ALIGN  (PGENERIC_MAPPING, 4)
5411     TEST_TARGET_SIZE (PGENERIC_MAPPING, 16)
5412     TEST_TARGET_ALIGN(PGENERIC_MAPPING, 4)
5413 }
5414
5415 static void test_pack_PHANDLE(void)
5416 {
5417     /* PHANDLE */
5418     TEST_TYPE_SIZE   (PHANDLE, 4)
5419     TEST_TYPE_ALIGN  (PHANDLE, 4)
5420     TEST_TARGET_SIZE (PHANDLE, 4)
5421     TEST_TARGET_ALIGN(PHANDLE, 4)
5422 }
5423
5424 static void test_pack_PIMAGE_ARCHIVE_MEMBER_HEADER(void)
5425 {
5426     /* PIMAGE_ARCHIVE_MEMBER_HEADER */
5427     TEST_TYPE_SIZE   (PIMAGE_ARCHIVE_MEMBER_HEADER, 4)
5428     TEST_TYPE_ALIGN  (PIMAGE_ARCHIVE_MEMBER_HEADER, 4)
5429     TEST_TARGET_SIZE (PIMAGE_ARCHIVE_MEMBER_HEADER, 60)
5430     TEST_TARGET_ALIGN(PIMAGE_ARCHIVE_MEMBER_HEADER, 1)
5431 }
5432
5433 static void test_pack_PIMAGE_AUX_SYMBOL(void)
5434 {
5435     /* PIMAGE_AUX_SYMBOL */
5436     TEST_TYPE_SIZE   (PIMAGE_AUX_SYMBOL, 4)
5437     TEST_TYPE_ALIGN  (PIMAGE_AUX_SYMBOL, 4)
5438 }
5439
5440 static void test_pack_PIMAGE_BASE_RELOCATION(void)
5441 {
5442     /* PIMAGE_BASE_RELOCATION */
5443     TEST_TYPE_SIZE   (PIMAGE_BASE_RELOCATION, 4)
5444     TEST_TYPE_ALIGN  (PIMAGE_BASE_RELOCATION, 4)
5445     TEST_TARGET_SIZE (PIMAGE_BASE_RELOCATION, 8)
5446     TEST_TARGET_ALIGN(PIMAGE_BASE_RELOCATION, 4)
5447 }
5448
5449 static void test_pack_PIMAGE_BOUND_FORWARDER_REF(void)
5450 {
5451     /* PIMAGE_BOUND_FORWARDER_REF */
5452     TEST_TYPE_SIZE   (PIMAGE_BOUND_FORWARDER_REF, 4)
5453     TEST_TYPE_ALIGN  (PIMAGE_BOUND_FORWARDER_REF, 4)
5454     TEST_TARGET_SIZE (PIMAGE_BOUND_FORWARDER_REF, 8)
5455     TEST_TARGET_ALIGN(PIMAGE_BOUND_FORWARDER_REF, 4)
5456 }
5457
5458 static void test_pack_PIMAGE_BOUND_IMPORT_DESCRIPTOR(void)
5459 {
5460     /* PIMAGE_BOUND_IMPORT_DESCRIPTOR */
5461     TEST_TYPE_SIZE   (PIMAGE_BOUND_IMPORT_DESCRIPTOR, 4)
5462     TEST_TYPE_ALIGN  (PIMAGE_BOUND_IMPORT_DESCRIPTOR, 4)
5463     TEST_TARGET_SIZE (PIMAGE_BOUND_IMPORT_DESCRIPTOR, 8)
5464     TEST_TARGET_ALIGN(PIMAGE_BOUND_IMPORT_DESCRIPTOR, 4)
5465 }
5466
5467 static void test_pack_PIMAGE_COFF_SYMBOLS_HEADER(void)
5468 {
5469     /* PIMAGE_COFF_SYMBOLS_HEADER */
5470     TEST_TYPE_SIZE   (PIMAGE_COFF_SYMBOLS_HEADER, 4)
5471     TEST_TYPE_ALIGN  (PIMAGE_COFF_SYMBOLS_HEADER, 4)
5472     TEST_TARGET_SIZE (PIMAGE_COFF_SYMBOLS_HEADER, 32)
5473     TEST_TARGET_ALIGN(PIMAGE_COFF_SYMBOLS_HEADER, 4)
5474 }
5475
5476 static void test_pack_PIMAGE_DATA_DIRECTORY(void)
5477 {
5478     /* PIMAGE_DATA_DIRECTORY */
5479     TEST_TYPE_SIZE   (PIMAGE_DATA_DIRECTORY, 4)
5480     TEST_TYPE_ALIGN  (PIMAGE_DATA_DIRECTORY, 4)
5481     TEST_TARGET_SIZE (PIMAGE_DATA_DIRECTORY, 8)
5482     TEST_TARGET_ALIGN(PIMAGE_DATA_DIRECTORY, 4)
5483 }
5484
5485 static void test_pack_PIMAGE_DEBUG_DIRECTORY(void)
5486 {
5487     /* PIMAGE_DEBUG_DIRECTORY */
5488     TEST_TYPE_SIZE   (PIMAGE_DEBUG_DIRECTORY, 4)
5489     TEST_TYPE_ALIGN  (PIMAGE_DEBUG_DIRECTORY, 4)
5490     TEST_TARGET_SIZE (PIMAGE_DEBUG_DIRECTORY, 28)
5491     TEST_TARGET_ALIGN(PIMAGE_DEBUG_DIRECTORY, 4)
5492 }
5493
5494 static void test_pack_PIMAGE_DEBUG_MISC(void)
5495 {
5496     /* PIMAGE_DEBUG_MISC */
5497     TEST_TYPE_SIZE   (PIMAGE_DEBUG_MISC, 4)
5498     TEST_TYPE_ALIGN  (PIMAGE_DEBUG_MISC, 4)
5499     TEST_TARGET_SIZE (PIMAGE_DEBUG_MISC, 16)
5500     TEST_TARGET_ALIGN(PIMAGE_DEBUG_MISC, 4)
5501 }
5502
5503 static void test_pack_PIMAGE_DOS_HEADER(void)
5504 {
5505     /* PIMAGE_DOS_HEADER */
5506     TEST_TYPE_SIZE   (PIMAGE_DOS_HEADER, 4)
5507     TEST_TYPE_ALIGN  (PIMAGE_DOS_HEADER, 4)
5508     TEST_TARGET_SIZE (PIMAGE_DOS_HEADER, 64)
5509     TEST_TARGET_ALIGN(PIMAGE_DOS_HEADER, 2)
5510 }
5511
5512 static void test_pack_PIMAGE_EXPORT_DIRECTORY(void)
5513 {
5514     /* PIMAGE_EXPORT_DIRECTORY */
5515     TEST_TYPE_SIZE   (PIMAGE_EXPORT_DIRECTORY, 4)
5516     TEST_TYPE_ALIGN  (PIMAGE_EXPORT_DIRECTORY, 4)
5517     TEST_TARGET_SIZE (PIMAGE_EXPORT_DIRECTORY, 40)
5518     TEST_TARGET_ALIGN(PIMAGE_EXPORT_DIRECTORY, 4)
5519 }
5520
5521 static void test_pack_PIMAGE_FILE_HEADER(void)
5522 {
5523     /* PIMAGE_FILE_HEADER */
5524     TEST_TYPE_SIZE   (PIMAGE_FILE_HEADER, 4)
5525     TEST_TYPE_ALIGN  (PIMAGE_FILE_HEADER, 4)
5526     TEST_TARGET_SIZE (PIMAGE_FILE_HEADER, 20)
5527     TEST_TARGET_ALIGN(PIMAGE_FILE_HEADER, 4)
5528 }
5529
5530 static void test_pack_PIMAGE_FUNCTION_ENTRY(void)
5531 {
5532     /* PIMAGE_FUNCTION_ENTRY */
5533     TEST_TYPE_SIZE   (PIMAGE_FUNCTION_ENTRY, 4)
5534     TEST_TYPE_ALIGN  (PIMAGE_FUNCTION_ENTRY, 4)
5535     TEST_TARGET_SIZE (PIMAGE_FUNCTION_ENTRY, 12)
5536     TEST_TARGET_ALIGN(PIMAGE_FUNCTION_ENTRY, 4)
5537 }
5538
5539 static void test_pack_PIMAGE_IMPORT_BY_NAME(void)
5540 {
5541     /* PIMAGE_IMPORT_BY_NAME */
5542     TEST_TYPE_SIZE   (PIMAGE_IMPORT_BY_NAME, 4)
5543     TEST_TYPE_ALIGN  (PIMAGE_IMPORT_BY_NAME, 4)
5544     TEST_TARGET_SIZE (PIMAGE_IMPORT_BY_NAME, 4)
5545     TEST_TARGET_ALIGN(PIMAGE_IMPORT_BY_NAME, 2)
5546 }
5547
5548 static void test_pack_PIMAGE_IMPORT_DESCRIPTOR(void)
5549 {
5550     /* PIMAGE_IMPORT_DESCRIPTOR */
5551     TEST_TYPE_SIZE   (PIMAGE_IMPORT_DESCRIPTOR, 4)
5552     TEST_TYPE_ALIGN  (PIMAGE_IMPORT_DESCRIPTOR, 4)
5553 }
5554
5555 static void test_pack_PIMAGE_LINENUMBER(void)
5556 {
5557     /* PIMAGE_LINENUMBER */
5558     TEST_TYPE_SIZE   (PIMAGE_LINENUMBER, 4)
5559     TEST_TYPE_ALIGN  (PIMAGE_LINENUMBER, 4)
5560 }
5561
5562 static void test_pack_PIMAGE_LOAD_CONFIG_DIRECTORY(void)
5563 {
5564     /* PIMAGE_LOAD_CONFIG_DIRECTORY */
5565     TEST_TYPE_SIZE   (PIMAGE_LOAD_CONFIG_DIRECTORY, 4)
5566     TEST_TYPE_ALIGN  (PIMAGE_LOAD_CONFIG_DIRECTORY, 4)
5567     TEST_TARGET_SIZE (PIMAGE_LOAD_CONFIG_DIRECTORY, 72)
5568     TEST_TARGET_ALIGN(PIMAGE_LOAD_CONFIG_DIRECTORY, 4)
5569 }
5570
5571 static void test_pack_PIMAGE_NT_HEADERS(void)
5572 {
5573     /* PIMAGE_NT_HEADERS */
5574     TEST_TYPE_SIZE   (PIMAGE_NT_HEADERS, 4)
5575     TEST_TYPE_ALIGN  (PIMAGE_NT_HEADERS, 4)
5576 }
5577
5578 static void test_pack_PIMAGE_NT_HEADERS32(void)
5579 {
5580     /* PIMAGE_NT_HEADERS32 */
5581     TEST_TYPE_SIZE   (PIMAGE_NT_HEADERS32, 4)
5582     TEST_TYPE_ALIGN  (PIMAGE_NT_HEADERS32, 4)
5583     TEST_TARGET_SIZE (PIMAGE_NT_HEADERS32, 248)
5584     TEST_TARGET_ALIGN(PIMAGE_NT_HEADERS32, 4)
5585 }
5586
5587 static void test_pack_PIMAGE_NT_HEADERS64(void)
5588 {
5589     /* PIMAGE_NT_HEADERS64 */
5590     TEST_TYPE_SIZE   (PIMAGE_NT_HEADERS64, 4)
5591     TEST_TYPE_ALIGN  (PIMAGE_NT_HEADERS64, 4)
5592     TEST_TARGET_SIZE (PIMAGE_NT_HEADERS64, 264)
5593     TEST_TARGET_ALIGN(PIMAGE_NT_HEADERS64, 8)
5594 }
5595
5596 static void test_pack_PIMAGE_OPTIONAL_HEADER(void)
5597 {
5598     /* PIMAGE_OPTIONAL_HEADER */
5599     TEST_TYPE_SIZE   (PIMAGE_OPTIONAL_HEADER, 4)
5600     TEST_TYPE_ALIGN  (PIMAGE_OPTIONAL_HEADER, 4)
5601 }
5602
5603 static void test_pack_PIMAGE_OPTIONAL_HEADER32(void)
5604 {
5605     /* PIMAGE_OPTIONAL_HEADER32 */
5606     TEST_TYPE_SIZE   (PIMAGE_OPTIONAL_HEADER32, 4)
5607     TEST_TYPE_ALIGN  (PIMAGE_OPTIONAL_HEADER32, 4)
5608     TEST_TARGET_SIZE (PIMAGE_OPTIONAL_HEADER32, 224)
5609     TEST_TARGET_ALIGN(PIMAGE_OPTIONAL_HEADER32, 4)
5610 }
5611
5612 static void test_pack_PIMAGE_OPTIONAL_HEADER64(void)
5613 {
5614     /* PIMAGE_OPTIONAL_HEADER64 */
5615     TEST_TYPE_SIZE   (PIMAGE_OPTIONAL_HEADER64, 4)
5616     TEST_TYPE_ALIGN  (PIMAGE_OPTIONAL_HEADER64, 4)
5617     TEST_TARGET_SIZE (PIMAGE_OPTIONAL_HEADER64, 240)
5618     TEST_TARGET_ALIGN(PIMAGE_OPTIONAL_HEADER64, 8)
5619 }
5620
5621 static void test_pack_PIMAGE_OS2_HEADER(void)
5622 {
5623     /* PIMAGE_OS2_HEADER */
5624     TEST_TYPE_SIZE   (PIMAGE_OS2_HEADER, 4)
5625     TEST_TYPE_ALIGN  (PIMAGE_OS2_HEADER, 4)
5626     TEST_TARGET_SIZE (PIMAGE_OS2_HEADER, 64)
5627     TEST_TARGET_ALIGN(PIMAGE_OS2_HEADER, 2)
5628 }
5629
5630 static void test_pack_PIMAGE_RELOCATION(void)
5631 {
5632     /* PIMAGE_RELOCATION */
5633     TEST_TYPE_SIZE   (PIMAGE_RELOCATION, 4)
5634     TEST_TYPE_ALIGN  (PIMAGE_RELOCATION, 4)
5635 }
5636
5637 static void test_pack_PIMAGE_RESOURCE_DATA_ENTRY(void)
5638 {
5639     /* PIMAGE_RESOURCE_DATA_ENTRY */
5640     TEST_TYPE_SIZE   (PIMAGE_RESOURCE_DATA_ENTRY, 4)
5641     TEST_TYPE_ALIGN  (PIMAGE_RESOURCE_DATA_ENTRY, 4)
5642     TEST_TARGET_SIZE (PIMAGE_RESOURCE_DATA_ENTRY, 16)
5643     TEST_TARGET_ALIGN(PIMAGE_RESOURCE_DATA_ENTRY, 4)
5644 }
5645
5646 static void test_pack_PIMAGE_RESOURCE_DIRECTORY(void)
5647 {
5648     /* PIMAGE_RESOURCE_DIRECTORY */
5649     TEST_TYPE_SIZE   (PIMAGE_RESOURCE_DIRECTORY, 4)
5650     TEST_TYPE_ALIGN  (PIMAGE_RESOURCE_DIRECTORY, 4)
5651     TEST_TARGET_SIZE (PIMAGE_RESOURCE_DIRECTORY, 16)
5652     TEST_TARGET_ALIGN(PIMAGE_RESOURCE_DIRECTORY, 4)
5653 }
5654
5655 static void test_pack_PIMAGE_RESOURCE_DIRECTORY_ENTRY(void)
5656 {
5657     /* PIMAGE_RESOURCE_DIRECTORY_ENTRY */
5658     TEST_TYPE_SIZE   (PIMAGE_RESOURCE_DIRECTORY_ENTRY, 4)
5659     TEST_TYPE_ALIGN  (PIMAGE_RESOURCE_DIRECTORY_ENTRY, 4)
5660 }
5661
5662 static void test_pack_PIMAGE_RESOURCE_DIRECTORY_STRING(void)
5663 {
5664     /* PIMAGE_RESOURCE_DIRECTORY_STRING */
5665     TEST_TYPE_SIZE   (PIMAGE_RESOURCE_DIRECTORY_STRING, 4)
5666     TEST_TYPE_ALIGN  (PIMAGE_RESOURCE_DIRECTORY_STRING, 4)
5667     TEST_TARGET_SIZE (PIMAGE_RESOURCE_DIRECTORY_STRING, 4)
5668     TEST_TARGET_ALIGN(PIMAGE_RESOURCE_DIRECTORY_STRING, 2)
5669 }
5670
5671 static void test_pack_PIMAGE_RESOURCE_DIR_STRING_U(void)
5672 {
5673     /* PIMAGE_RESOURCE_DIR_STRING_U */
5674     TEST_TYPE_SIZE   (PIMAGE_RESOURCE_DIR_STRING_U, 4)
5675     TEST_TYPE_ALIGN  (PIMAGE_RESOURCE_DIR_STRING_U, 4)
5676     TEST_TARGET_SIZE (PIMAGE_RESOURCE_DIR_STRING_U, 4)
5677     TEST_TARGET_ALIGN(PIMAGE_RESOURCE_DIR_STRING_U, 2)
5678 }
5679
5680 static void test_pack_PIMAGE_SECTION_HEADER(void)
5681 {
5682     /* PIMAGE_SECTION_HEADER */
5683     TEST_TYPE_SIZE   (PIMAGE_SECTION_HEADER, 4)
5684     TEST_TYPE_ALIGN  (PIMAGE_SECTION_HEADER, 4)
5685 }
5686
5687 static void test_pack_PIMAGE_SEPARATE_DEBUG_HEADER(void)
5688 {
5689     /* PIMAGE_SEPARATE_DEBUG_HEADER */
5690     TEST_TYPE_SIZE   (PIMAGE_SEPARATE_DEBUG_HEADER, 4)
5691     TEST_TYPE_ALIGN  (PIMAGE_SEPARATE_DEBUG_HEADER, 4)
5692     TEST_TARGET_SIZE (PIMAGE_SEPARATE_DEBUG_HEADER, 48)
5693     TEST_TARGET_ALIGN(PIMAGE_SEPARATE_DEBUG_HEADER, 4)
5694 }
5695
5696 static void test_pack_PIMAGE_SYMBOL(void)
5697 {
5698     /* PIMAGE_SYMBOL */
5699     TEST_TYPE_SIZE   (PIMAGE_SYMBOL, 4)
5700     TEST_TYPE_ALIGN  (PIMAGE_SYMBOL, 4)
5701 }
5702
5703 static void test_pack_PIMAGE_THUNK_DATA(void)
5704 {
5705     /* PIMAGE_THUNK_DATA */
5706     TEST_TYPE_SIZE   (PIMAGE_THUNK_DATA, 4)
5707     TEST_TYPE_ALIGN  (PIMAGE_THUNK_DATA, 4)
5708 }
5709
5710 static void test_pack_PIMAGE_TLS_CALLBACK(void)
5711 {
5712     /* PIMAGE_TLS_CALLBACK */
5713     TEST_TYPE_SIZE   (PIMAGE_TLS_CALLBACK, 4)
5714     TEST_TYPE_ALIGN  (PIMAGE_TLS_CALLBACK, 4)
5715 }
5716
5717 static void test_pack_PIMAGE_TLS_DIRECTORY(void)
5718 {
5719     /* PIMAGE_TLS_DIRECTORY */
5720     TEST_TYPE_SIZE   (PIMAGE_TLS_DIRECTORY, 4)
5721     TEST_TYPE_ALIGN  (PIMAGE_TLS_DIRECTORY, 4)
5722 }
5723
5724 static void test_pack_PIMAGE_VXD_HEADER(void)
5725 {
5726     /* PIMAGE_VXD_HEADER */
5727     TEST_TYPE_SIZE   (PIMAGE_VXD_HEADER, 4)
5728     TEST_TYPE_ALIGN  (PIMAGE_VXD_HEADER, 4)
5729     TEST_TARGET_SIZE (PIMAGE_VXD_HEADER, 196)
5730     TEST_TARGET_ALIGN(PIMAGE_VXD_HEADER, 2)
5731 }
5732
5733 static void test_pack_PIO_COUNTERS(void)
5734 {
5735     /* PIO_COUNTERS */
5736     TEST_TYPE_SIZE   (PIO_COUNTERS, 4)
5737     TEST_TYPE_ALIGN  (PIO_COUNTERS, 4)
5738     TEST_TARGET_SIZE (PIO_COUNTERS, 48)
5739     TEST_TARGET_ALIGN(PIO_COUNTERS, 8)
5740 }
5741
5742 static void test_pack_PISECURITY_DESCRIPTOR(void)
5743 {
5744     /* PISECURITY_DESCRIPTOR */
5745     TEST_TYPE_SIZE   (PISECURITY_DESCRIPTOR, 4)
5746     TEST_TYPE_ALIGN  (PISECURITY_DESCRIPTOR, 4)
5747     TEST_TARGET_SIZE (PISECURITY_DESCRIPTOR, 20)
5748     TEST_TARGET_ALIGN(PISECURITY_DESCRIPTOR, 4)
5749 }
5750
5751 static void test_pack_PISECURITY_DESCRIPTOR_RELATIVE(void)
5752 {
5753     /* PISECURITY_DESCRIPTOR_RELATIVE */
5754     TEST_TYPE_SIZE   (PISECURITY_DESCRIPTOR_RELATIVE, 4)
5755     TEST_TYPE_ALIGN  (PISECURITY_DESCRIPTOR_RELATIVE, 4)
5756     TEST_TARGET_SIZE (PISECURITY_DESCRIPTOR_RELATIVE, 20)
5757     TEST_TARGET_ALIGN(PISECURITY_DESCRIPTOR_RELATIVE, 4)
5758 }
5759
5760 static void test_pack_PISID(void)
5761 {
5762     /* PISID */
5763     TEST_TYPE_SIZE   (PISID, 4)
5764     TEST_TYPE_ALIGN  (PISID, 4)
5765     TEST_TARGET_SIZE (PISID, 12)
5766     TEST_TARGET_ALIGN(PISID, 4)
5767 }
5768
5769 static void test_pack_PLARGE_INTEGER(void)
5770 {
5771     /* PLARGE_INTEGER */
5772     TEST_TYPE_SIZE   (PLARGE_INTEGER, 4)
5773     TEST_TYPE_ALIGN  (PLARGE_INTEGER, 4)
5774 }
5775
5776 static void test_pack_PLIST_ENTRY(void)
5777 {
5778     /* PLIST_ENTRY */
5779     TEST_TYPE_SIZE   (PLIST_ENTRY, 4)
5780     TEST_TYPE_ALIGN  (PLIST_ENTRY, 4)
5781     TEST_TARGET_SIZE (PLIST_ENTRY, 8)
5782     TEST_TARGET_ALIGN(PLIST_ENTRY, 4)
5783 }
5784
5785 static void test_pack_PLUID(void)
5786 {
5787     /* PLUID */
5788     TEST_TYPE_SIZE   (PLUID, 4)
5789     TEST_TYPE_ALIGN  (PLUID, 4)
5790     TEST_TARGET_SIZE (PLUID, 8)
5791     TEST_TARGET_ALIGN(PLUID, 4)
5792 }
5793
5794 static void test_pack_PLUID_AND_ATTRIBUTES(void)
5795 {
5796     /* PLUID_AND_ATTRIBUTES */
5797     TEST_TYPE_SIZE   (PLUID_AND_ATTRIBUTES, 4)
5798     TEST_TYPE_ALIGN  (PLUID_AND_ATTRIBUTES, 4)
5799     TEST_TARGET_SIZE (PLUID_AND_ATTRIBUTES, 12)
5800     TEST_TARGET_ALIGN(PLUID_AND_ATTRIBUTES, 4)
5801 }
5802
5803 static void test_pack_PMEMORY_BASIC_INFORMATION(void)
5804 {
5805     /* PMEMORY_BASIC_INFORMATION */
5806     TEST_TYPE_SIZE   (PMEMORY_BASIC_INFORMATION, 4)
5807     TEST_TYPE_ALIGN  (PMEMORY_BASIC_INFORMATION, 4)
5808     TEST_TARGET_SIZE (PMEMORY_BASIC_INFORMATION, 28)
5809     TEST_TARGET_ALIGN(PMEMORY_BASIC_INFORMATION, 4)
5810 }
5811
5812 static void test_pack_PMESSAGE_RESOURCE_BLOCK(void)
5813 {
5814     /* PMESSAGE_RESOURCE_BLOCK */
5815     TEST_TYPE_SIZE   (PMESSAGE_RESOURCE_BLOCK, 4)
5816     TEST_TYPE_ALIGN  (PMESSAGE_RESOURCE_BLOCK, 4)
5817     TEST_TARGET_SIZE (PMESSAGE_RESOURCE_BLOCK, 12)
5818     TEST_TARGET_ALIGN(PMESSAGE_RESOURCE_BLOCK, 4)
5819 }
5820
5821 static void test_pack_PMESSAGE_RESOURCE_DATA(void)
5822 {
5823     /* PMESSAGE_RESOURCE_DATA */
5824     TEST_TYPE_SIZE   (PMESSAGE_RESOURCE_DATA, 4)
5825     TEST_TYPE_ALIGN  (PMESSAGE_RESOURCE_DATA, 4)
5826     TEST_TARGET_SIZE (PMESSAGE_RESOURCE_DATA, 16)
5827     TEST_TARGET_ALIGN(PMESSAGE_RESOURCE_DATA, 4)
5828 }
5829
5830 static void test_pack_PMESSAGE_RESOURCE_ENTRY(void)
5831 {
5832     /* PMESSAGE_RESOURCE_ENTRY */
5833     TEST_TYPE_SIZE   (PMESSAGE_RESOURCE_ENTRY, 4)
5834     TEST_TYPE_ALIGN  (PMESSAGE_RESOURCE_ENTRY, 4)
5835     TEST_TARGET_SIZE (PMESSAGE_RESOURCE_ENTRY, 6)
5836     TEST_TARGET_ALIGN(PMESSAGE_RESOURCE_ENTRY, 2)
5837 }
5838
5839 static void test_pack_PNT_TIB(void)
5840 {
5841     /* PNT_TIB */
5842     TEST_TYPE_SIZE   (PNT_TIB, 4)
5843     TEST_TYPE_ALIGN  (PNT_TIB, 4)
5844 }
5845
5846 static void test_pack_POBJECT_TYPE_LIST(void)
5847 {
5848     /* POBJECT_TYPE_LIST */
5849     TEST_TYPE_SIZE   (POBJECT_TYPE_LIST, 4)
5850     TEST_TYPE_ALIGN  (POBJECT_TYPE_LIST, 4)
5851     TEST_TARGET_SIZE (POBJECT_TYPE_LIST, 8)
5852     TEST_TARGET_ALIGN(POBJECT_TYPE_LIST, 4)
5853 }
5854
5855 static void test_pack_PPRIVILEGE_SET(void)
5856 {
5857     /* PPRIVILEGE_SET */
5858     TEST_TYPE_SIZE   (PPRIVILEGE_SET, 4)
5859     TEST_TYPE_ALIGN  (PPRIVILEGE_SET, 4)
5860     TEST_TARGET_SIZE (PPRIVILEGE_SET, 20)
5861     TEST_TARGET_ALIGN(PPRIVILEGE_SET, 4)
5862 }
5863
5864 static void test_pack_PRIVILEGE_SET(void)
5865 {
5866     /* PRIVILEGE_SET */
5867     TEST_TYPE_SIZE   (PRIVILEGE_SET, 20)
5868     TEST_TYPE_ALIGN  (PRIVILEGE_SET, 4)
5869     TEST_FIELD_SIZE  (PRIVILEGE_SET, PrivilegeCount, 4)
5870     TEST_FIELD_ALIGN (PRIVILEGE_SET, PrivilegeCount, 4)
5871     TEST_FIELD_OFFSET(PRIVILEGE_SET, PrivilegeCount, 0)
5872     TEST_FIELD_SIZE  (PRIVILEGE_SET, Control, 4)
5873     TEST_FIELD_ALIGN (PRIVILEGE_SET, Control, 4)
5874     TEST_FIELD_OFFSET(PRIVILEGE_SET, Control, 4)
5875     TEST_FIELD_SIZE  (PRIVILEGE_SET, Privilege, 12)
5876     TEST_FIELD_ALIGN (PRIVILEGE_SET, Privilege, 4)
5877     TEST_FIELD_OFFSET(PRIVILEGE_SET, Privilege, 8)
5878 }
5879
5880 static void test_pack_PRLIST_ENTRY(void)
5881 {
5882     /* PRLIST_ENTRY */
5883     TEST_TYPE_SIZE   (PRLIST_ENTRY, 4)
5884     TEST_TYPE_ALIGN  (PRLIST_ENTRY, 4)
5885     TEST_TARGET_SIZE (PRLIST_ENTRY, 8)
5886     TEST_TARGET_ALIGN(PRLIST_ENTRY, 4)
5887 }
5888
5889 static void test_pack_PRTL_CRITICAL_SECTION(void)
5890 {
5891     /* PRTL_CRITICAL_SECTION */
5892     TEST_TYPE_SIZE   (PRTL_CRITICAL_SECTION, 4)
5893     TEST_TYPE_ALIGN  (PRTL_CRITICAL_SECTION, 4)
5894     TEST_TARGET_SIZE (PRTL_CRITICAL_SECTION, 24)
5895     TEST_TARGET_ALIGN(PRTL_CRITICAL_SECTION, 4)
5896 }
5897
5898 static void test_pack_PRTL_CRITICAL_SECTION_DEBUG(void)
5899 {
5900     /* PRTL_CRITICAL_SECTION_DEBUG */
5901     TEST_TYPE_SIZE   (PRTL_CRITICAL_SECTION_DEBUG, 4)
5902     TEST_TYPE_ALIGN  (PRTL_CRITICAL_SECTION_DEBUG, 4)
5903 }
5904
5905 static void test_pack_PRTL_OSVERSIONINFOEXW(void)
5906 {
5907     /* PRTL_OSVERSIONINFOEXW */
5908     TEST_TYPE_SIZE   (PRTL_OSVERSIONINFOEXW, 4)
5909     TEST_TYPE_ALIGN  (PRTL_OSVERSIONINFOEXW, 4)
5910     TEST_TARGET_SIZE (PRTL_OSVERSIONINFOEXW, 284)
5911     TEST_TARGET_ALIGN(PRTL_OSVERSIONINFOEXW, 4)
5912 }
5913
5914 static void test_pack_PRTL_OSVERSIONINFOW(void)
5915 {
5916     /* PRTL_OSVERSIONINFOW */
5917     TEST_TYPE_SIZE   (PRTL_OSVERSIONINFOW, 4)
5918     TEST_TYPE_ALIGN  (PRTL_OSVERSIONINFOW, 4)
5919     TEST_TARGET_SIZE (PRTL_OSVERSIONINFOW, 276)
5920     TEST_TARGET_ALIGN(PRTL_OSVERSIONINFOW, 4)
5921 }
5922
5923 static void test_pack_PRTL_RESOURCE_DEBUG(void)
5924 {
5925     /* PRTL_RESOURCE_DEBUG */
5926     TEST_TYPE_SIZE   (PRTL_RESOURCE_DEBUG, 4)
5927     TEST_TYPE_ALIGN  (PRTL_RESOURCE_DEBUG, 4)
5928 }
5929
5930 static void test_pack_PSECURITY_DESCRIPTOR(void)
5931 {
5932     /* PSECURITY_DESCRIPTOR */
5933     TEST_TYPE_SIZE   (PSECURITY_DESCRIPTOR, 4)
5934     TEST_TYPE_ALIGN  (PSECURITY_DESCRIPTOR, 4)
5935 }
5936
5937 static void test_pack_PSECURITY_QUALITY_OF_SERVICE(void)
5938 {
5939     /* PSECURITY_QUALITY_OF_SERVICE */
5940     TEST_TYPE_SIZE   (PSECURITY_QUALITY_OF_SERVICE, 4)
5941     TEST_TYPE_ALIGN  (PSECURITY_QUALITY_OF_SERVICE, 4)
5942 }
5943
5944 static void test_pack_PSID(void)
5945 {
5946     /* PSID */
5947     TEST_TYPE_SIZE   (PSID, 4)
5948     TEST_TYPE_ALIGN  (PSID, 4)
5949 }
5950
5951 static void test_pack_PSID_IDENTIFIER_AUTHORITY(void)
5952 {
5953     /* PSID_IDENTIFIER_AUTHORITY */
5954     TEST_TYPE_SIZE   (PSID_IDENTIFIER_AUTHORITY, 4)
5955     TEST_TYPE_ALIGN  (PSID_IDENTIFIER_AUTHORITY, 4)
5956     TEST_TARGET_SIZE (PSID_IDENTIFIER_AUTHORITY, 6)
5957     TEST_TARGET_ALIGN(PSID_IDENTIFIER_AUTHORITY, 1)
5958 }
5959
5960 static void test_pack_PSINGLE_LIST_ENTRY(void)
5961 {
5962     /* PSINGLE_LIST_ENTRY */
5963     TEST_TYPE_SIZE   (PSINGLE_LIST_ENTRY, 4)
5964     TEST_TYPE_ALIGN  (PSINGLE_LIST_ENTRY, 4)
5965     TEST_TARGET_SIZE (PSINGLE_LIST_ENTRY, 4)
5966     TEST_TARGET_ALIGN(PSINGLE_LIST_ENTRY, 4)
5967 }
5968
5969 static void test_pack_PSTR(void)
5970 {
5971     /* PSTR */
5972     TEST_TYPE_SIZE   (PSTR, 4)
5973     TEST_TYPE_ALIGN  (PSTR, 4)
5974     TEST_TARGET_SIZE (PSTR, 1)
5975     TEST_TARGET_ALIGN(PSTR, 1)
5976 }
5977
5978 static void test_pack_PSYSTEM_ALARM_ACE(void)
5979 {
5980     /* PSYSTEM_ALARM_ACE */
5981     TEST_TYPE_SIZE   (PSYSTEM_ALARM_ACE, 4)
5982     TEST_TYPE_ALIGN  (PSYSTEM_ALARM_ACE, 4)
5983     TEST_TARGET_SIZE (PSYSTEM_ALARM_ACE, 12)
5984     TEST_TARGET_ALIGN(PSYSTEM_ALARM_ACE, 4)
5985 }
5986
5987 static void test_pack_PSYSTEM_AUDIT_ACE(void)
5988 {
5989     /* PSYSTEM_AUDIT_ACE */
5990     TEST_TYPE_SIZE   (PSYSTEM_AUDIT_ACE, 4)
5991     TEST_TYPE_ALIGN  (PSYSTEM_AUDIT_ACE, 4)
5992     TEST_TARGET_SIZE (PSYSTEM_AUDIT_ACE, 12)
5993     TEST_TARGET_ALIGN(PSYSTEM_AUDIT_ACE, 4)
5994 }
5995
5996 static void test_pack_PTOKEN_GROUPS(void)
5997 {
5998     /* PTOKEN_GROUPS */
5999     TEST_TYPE_SIZE   (PTOKEN_GROUPS, 4)
6000     TEST_TYPE_ALIGN  (PTOKEN_GROUPS, 4)
6001     TEST_TARGET_SIZE (PTOKEN_GROUPS, 12)
6002     TEST_TARGET_ALIGN(PTOKEN_GROUPS, 4)
6003 }
6004
6005 static void test_pack_PTOKEN_PRIVILEGES(void)
6006 {
6007     /* PTOKEN_PRIVILEGES */
6008     TEST_TYPE_SIZE   (PTOKEN_PRIVILEGES, 4)
6009     TEST_TYPE_ALIGN  (PTOKEN_PRIVILEGES, 4)
6010     TEST_TARGET_SIZE (PTOKEN_PRIVILEGES, 16)
6011     TEST_TARGET_ALIGN(PTOKEN_PRIVILEGES, 4)
6012 }
6013
6014 static void test_pack_PTOKEN_USER(void)
6015 {
6016     /* PTOKEN_USER */
6017     TEST_TYPE_SIZE   (PTOKEN_USER, 4)
6018     TEST_TYPE_ALIGN  (PTOKEN_USER, 4)
6019     TEST_TARGET_SIZE (PTOKEN_USER, 8)
6020     TEST_TARGET_ALIGN(PTOKEN_USER, 4)
6021 }
6022
6023 static void test_pack_PTSTR(void)
6024 {
6025     /* PTSTR */
6026     TEST_TYPE_SIZE   (PTSTR, 4)
6027     TEST_TYPE_ALIGN  (PTSTR, 4)
6028 }
6029
6030 static void test_pack_PULARGE_INTEGER(void)
6031 {
6032     /* PULARGE_INTEGER */
6033     TEST_TYPE_SIZE   (PULARGE_INTEGER, 4)
6034     TEST_TYPE_ALIGN  (PULARGE_INTEGER, 4)
6035 }
6036
6037 static void test_pack_PVECTORED_EXCEPTION_HANDLER(void)
6038 {
6039     /* PVECTORED_EXCEPTION_HANDLER */
6040     TEST_TYPE_SIZE   (PVECTORED_EXCEPTION_HANDLER, 4)
6041     TEST_TYPE_ALIGN  (PVECTORED_EXCEPTION_HANDLER, 4)
6042 }
6043
6044 static void test_pack_PVOID(void)
6045 {
6046     /* PVOID */
6047     TEST_TYPE_SIZE   (PVOID, 4)
6048     TEST_TYPE_ALIGN  (PVOID, 4)
6049 }
6050
6051 static void test_pack_PWCH(void)
6052 {
6053     /* PWCH */
6054     TEST_TYPE_SIZE   (PWCH, 4)
6055     TEST_TYPE_ALIGN  (PWCH, 4)
6056     TEST_TARGET_SIZE (PWCH, 2)
6057     TEST_TARGET_ALIGN(PWCH, 2)
6058 }
6059
6060 static void test_pack_PWSTR(void)
6061 {
6062     /* PWSTR */
6063     TEST_TYPE_SIZE   (PWSTR, 4)
6064     TEST_TYPE_ALIGN  (PWSTR, 4)
6065     TEST_TARGET_SIZE (PWSTR, 2)
6066     TEST_TARGET_ALIGN(PWSTR, 2)
6067 }
6068
6069 static void test_pack_RTL_CRITICAL_SECTION(void)
6070 {
6071     /* RTL_CRITICAL_SECTION */
6072     TEST_TYPE_SIZE   (RTL_CRITICAL_SECTION, 24)
6073     TEST_TYPE_ALIGN  (RTL_CRITICAL_SECTION, 4)
6074     TEST_FIELD_SIZE  (RTL_CRITICAL_SECTION, DebugInfo, 4)
6075     TEST_FIELD_ALIGN (RTL_CRITICAL_SECTION, DebugInfo, 4)
6076     TEST_FIELD_OFFSET(RTL_CRITICAL_SECTION, DebugInfo, 0)
6077     TEST_FIELD_SIZE  (RTL_CRITICAL_SECTION, LockCount, 4)
6078     TEST_FIELD_ALIGN (RTL_CRITICAL_SECTION, LockCount, 4)
6079     TEST_FIELD_OFFSET(RTL_CRITICAL_SECTION, LockCount, 4)
6080     TEST_FIELD_SIZE  (RTL_CRITICAL_SECTION, RecursionCount, 4)
6081     TEST_FIELD_ALIGN (RTL_CRITICAL_SECTION, RecursionCount, 4)
6082     TEST_FIELD_OFFSET(RTL_CRITICAL_SECTION, RecursionCount, 8)
6083     TEST_FIELD_SIZE  (RTL_CRITICAL_SECTION, OwningThread, 4)
6084     TEST_FIELD_ALIGN (RTL_CRITICAL_SECTION, OwningThread, 4)
6085     TEST_FIELD_OFFSET(RTL_CRITICAL_SECTION, OwningThread, 12)
6086     TEST_FIELD_SIZE  (RTL_CRITICAL_SECTION, LockSemaphore, 4)
6087     TEST_FIELD_ALIGN (RTL_CRITICAL_SECTION, LockSemaphore, 4)
6088     TEST_FIELD_OFFSET(RTL_CRITICAL_SECTION, LockSemaphore, 16)
6089     TEST_FIELD_SIZE  (RTL_CRITICAL_SECTION, SpinCount, 4)
6090     TEST_FIELD_ALIGN (RTL_CRITICAL_SECTION, SpinCount, 4)
6091     TEST_FIELD_OFFSET(RTL_CRITICAL_SECTION, SpinCount, 20)
6092 }
6093
6094 static void test_pack_RTL_CRITICAL_SECTION_DEBUG(void)
6095 {
6096     /* RTL_CRITICAL_SECTION_DEBUG */
6097     TEST_FIELD_SIZE  (RTL_CRITICAL_SECTION_DEBUG, Type, 2)
6098     TEST_FIELD_ALIGN (RTL_CRITICAL_SECTION_DEBUG, Type, 2)
6099     TEST_FIELD_OFFSET(RTL_CRITICAL_SECTION_DEBUG, Type, 0)
6100     TEST_FIELD_SIZE  (RTL_CRITICAL_SECTION_DEBUG, CreatorBackTraceIndex, 2)
6101     TEST_FIELD_ALIGN (RTL_CRITICAL_SECTION_DEBUG, CreatorBackTraceIndex, 2)
6102     TEST_FIELD_OFFSET(RTL_CRITICAL_SECTION_DEBUG, CreatorBackTraceIndex, 2)
6103     TEST_FIELD_SIZE  (RTL_CRITICAL_SECTION_DEBUG, CriticalSection, 4)
6104     TEST_FIELD_ALIGN (RTL_CRITICAL_SECTION_DEBUG, CriticalSection, 4)
6105     TEST_FIELD_OFFSET(RTL_CRITICAL_SECTION_DEBUG, CriticalSection, 4)
6106     TEST_FIELD_SIZE  (RTL_CRITICAL_SECTION_DEBUG, ProcessLocksList, 8)
6107     TEST_FIELD_ALIGN (RTL_CRITICAL_SECTION_DEBUG, ProcessLocksList, 4)
6108     TEST_FIELD_OFFSET(RTL_CRITICAL_SECTION_DEBUG, ProcessLocksList, 8)
6109     TEST_FIELD_SIZE  (RTL_CRITICAL_SECTION_DEBUG, EntryCount, 4)
6110     TEST_FIELD_ALIGN (RTL_CRITICAL_SECTION_DEBUG, EntryCount, 4)
6111     TEST_FIELD_OFFSET(RTL_CRITICAL_SECTION_DEBUG, EntryCount, 16)
6112     TEST_FIELD_SIZE  (RTL_CRITICAL_SECTION_DEBUG, ContentionCount, 4)
6113     TEST_FIELD_ALIGN (RTL_CRITICAL_SECTION_DEBUG, ContentionCount, 4)
6114     TEST_FIELD_OFFSET(RTL_CRITICAL_SECTION_DEBUG, ContentionCount, 20)
6115 }
6116
6117 static void test_pack_RTL_OSVERSIONINFOEXW(void)
6118 {
6119     /* RTL_OSVERSIONINFOEXW */
6120     TEST_TYPE_SIZE   (RTL_OSVERSIONINFOEXW, 284)
6121     TEST_TYPE_ALIGN  (RTL_OSVERSIONINFOEXW, 4)
6122     TEST_FIELD_SIZE  (RTL_OSVERSIONINFOEXW, dwOSVersionInfoSize, 4)
6123     TEST_FIELD_ALIGN (RTL_OSVERSIONINFOEXW, dwOSVersionInfoSize, 4)
6124     TEST_FIELD_OFFSET(RTL_OSVERSIONINFOEXW, dwOSVersionInfoSize, 0)
6125     TEST_FIELD_SIZE  (RTL_OSVERSIONINFOEXW, dwMajorVersion, 4)
6126     TEST_FIELD_ALIGN (RTL_OSVERSIONINFOEXW, dwMajorVersion, 4)
6127     TEST_FIELD_OFFSET(RTL_OSVERSIONINFOEXW, dwMajorVersion, 4)
6128     TEST_FIELD_SIZE  (RTL_OSVERSIONINFOEXW, dwMinorVersion, 4)
6129     TEST_FIELD_ALIGN (RTL_OSVERSIONINFOEXW, dwMinorVersion, 4)
6130     TEST_FIELD_OFFSET(RTL_OSVERSIONINFOEXW, dwMinorVersion, 8)
6131     TEST_FIELD_SIZE  (RTL_OSVERSIONINFOEXW, dwBuildNumber, 4)
6132     TEST_FIELD_ALIGN (RTL_OSVERSIONINFOEXW, dwBuildNumber, 4)
6133     TEST_FIELD_OFFSET(RTL_OSVERSIONINFOEXW, dwBuildNumber, 12)
6134     TEST_FIELD_SIZE  (RTL_OSVERSIONINFOEXW, dwPlatformId, 4)
6135     TEST_FIELD_ALIGN (RTL_OSVERSIONINFOEXW, dwPlatformId, 4)
6136     TEST_FIELD_OFFSET(RTL_OSVERSIONINFOEXW, dwPlatformId, 16)
6137     TEST_FIELD_SIZE  (RTL_OSVERSIONINFOEXW, szCSDVersion, 256)
6138     TEST_FIELD_ALIGN (RTL_OSVERSIONINFOEXW, szCSDVersion, 2)
6139     TEST_FIELD_OFFSET(RTL_OSVERSIONINFOEXW, szCSDVersion, 20)
6140     TEST_FIELD_SIZE  (RTL_OSVERSIONINFOEXW, wServicePackMajor, 2)
6141     TEST_FIELD_ALIGN (RTL_OSVERSIONINFOEXW, wServicePackMajor, 2)
6142     TEST_FIELD_OFFSET(RTL_OSVERSIONINFOEXW, wServicePackMajor, 276)
6143     TEST_FIELD_SIZE  (RTL_OSVERSIONINFOEXW, wServicePackMinor, 2)
6144     TEST_FIELD_ALIGN (RTL_OSVERSIONINFOEXW, wServicePackMinor, 2)
6145     TEST_FIELD_OFFSET(RTL_OSVERSIONINFOEXW, wServicePackMinor, 278)
6146     TEST_FIELD_SIZE  (RTL_OSVERSIONINFOEXW, wSuiteMask, 2)
6147     TEST_FIELD_ALIGN (RTL_OSVERSIONINFOEXW, wSuiteMask, 2)
6148     TEST_FIELD_OFFSET(RTL_OSVERSIONINFOEXW, wSuiteMask, 280)
6149     TEST_FIELD_SIZE  (RTL_OSVERSIONINFOEXW, wProductType, 1)
6150     TEST_FIELD_ALIGN (RTL_OSVERSIONINFOEXW, wProductType, 1)
6151     TEST_FIELD_OFFSET(RTL_OSVERSIONINFOEXW, wProductType, 282)
6152     TEST_FIELD_SIZE  (RTL_OSVERSIONINFOEXW, wReserved, 1)
6153     TEST_FIELD_ALIGN (RTL_OSVERSIONINFOEXW, wReserved, 1)
6154     TEST_FIELD_OFFSET(RTL_OSVERSIONINFOEXW, wReserved, 283)
6155 }
6156
6157 static void test_pack_RTL_OSVERSIONINFOW(void)
6158 {
6159     /* RTL_OSVERSIONINFOW */
6160     TEST_TYPE_SIZE   (RTL_OSVERSIONINFOW, 276)
6161     TEST_TYPE_ALIGN  (RTL_OSVERSIONINFOW, 4)
6162     TEST_FIELD_SIZE  (RTL_OSVERSIONINFOW, dwOSVersionInfoSize, 4)
6163     TEST_FIELD_ALIGN (RTL_OSVERSIONINFOW, dwOSVersionInfoSize, 4)
6164     TEST_FIELD_OFFSET(RTL_OSVERSIONINFOW, dwOSVersionInfoSize, 0)
6165     TEST_FIELD_SIZE  (RTL_OSVERSIONINFOW, dwMajorVersion, 4)
6166     TEST_FIELD_ALIGN (RTL_OSVERSIONINFOW, dwMajorVersion, 4)
6167     TEST_FIELD_OFFSET(RTL_OSVERSIONINFOW, dwMajorVersion, 4)
6168     TEST_FIELD_SIZE  (RTL_OSVERSIONINFOW, dwMinorVersion, 4)
6169     TEST_FIELD_ALIGN (RTL_OSVERSIONINFOW, dwMinorVersion, 4)
6170     TEST_FIELD_OFFSET(RTL_OSVERSIONINFOW, dwMinorVersion, 8)
6171     TEST_FIELD_SIZE  (RTL_OSVERSIONINFOW, dwBuildNumber, 4)
6172     TEST_FIELD_ALIGN (RTL_OSVERSIONINFOW, dwBuildNumber, 4)
6173     TEST_FIELD_OFFSET(RTL_OSVERSIONINFOW, dwBuildNumber, 12)
6174     TEST_FIELD_SIZE  (RTL_OSVERSIONINFOW, dwPlatformId, 4)
6175     TEST_FIELD_ALIGN (RTL_OSVERSIONINFOW, dwPlatformId, 4)
6176     TEST_FIELD_OFFSET(RTL_OSVERSIONINFOW, dwPlatformId, 16)
6177     TEST_FIELD_SIZE  (RTL_OSVERSIONINFOW, szCSDVersion, 256)
6178     TEST_FIELD_ALIGN (RTL_OSVERSIONINFOW, szCSDVersion, 2)
6179     TEST_FIELD_OFFSET(RTL_OSVERSIONINFOW, szCSDVersion, 20)
6180 }
6181
6182 static void test_pack_RTL_RESOURCE_DEBUG(void)
6183 {
6184     /* RTL_RESOURCE_DEBUG */
6185     TEST_FIELD_SIZE  (RTL_RESOURCE_DEBUG, Type, 2)
6186     TEST_FIELD_ALIGN (RTL_RESOURCE_DEBUG, Type, 2)
6187     TEST_FIELD_OFFSET(RTL_RESOURCE_DEBUG, Type, 0)
6188     TEST_FIELD_SIZE  (RTL_RESOURCE_DEBUG, CreatorBackTraceIndex, 2)
6189     TEST_FIELD_ALIGN (RTL_RESOURCE_DEBUG, CreatorBackTraceIndex, 2)
6190     TEST_FIELD_OFFSET(RTL_RESOURCE_DEBUG, CreatorBackTraceIndex, 2)
6191     TEST_FIELD_SIZE  (RTL_RESOURCE_DEBUG, CriticalSection, 4)
6192     TEST_FIELD_ALIGN (RTL_RESOURCE_DEBUG, CriticalSection, 4)
6193     TEST_FIELD_OFFSET(RTL_RESOURCE_DEBUG, CriticalSection, 4)
6194     TEST_FIELD_SIZE  (RTL_RESOURCE_DEBUG, ProcessLocksList, 8)
6195     TEST_FIELD_ALIGN (RTL_RESOURCE_DEBUG, ProcessLocksList, 4)
6196     TEST_FIELD_OFFSET(RTL_RESOURCE_DEBUG, ProcessLocksList, 8)
6197     TEST_FIELD_SIZE  (RTL_RESOURCE_DEBUG, EntryCount, 4)
6198     TEST_FIELD_ALIGN (RTL_RESOURCE_DEBUG, EntryCount, 4)
6199     TEST_FIELD_OFFSET(RTL_RESOURCE_DEBUG, EntryCount, 16)
6200     TEST_FIELD_SIZE  (RTL_RESOURCE_DEBUG, ContentionCount, 4)
6201     TEST_FIELD_ALIGN (RTL_RESOURCE_DEBUG, ContentionCount, 4)
6202     TEST_FIELD_OFFSET(RTL_RESOURCE_DEBUG, ContentionCount, 20)
6203 }
6204
6205 static void test_pack_SECURITY_CONTEXT_TRACKING_MODE(void)
6206 {
6207     /* SECURITY_CONTEXT_TRACKING_MODE */
6208     TEST_TYPE_SIZE   (SECURITY_CONTEXT_TRACKING_MODE, 1)
6209     TEST_TYPE_ALIGN  (SECURITY_CONTEXT_TRACKING_MODE, 1)
6210 }
6211
6212 static void test_pack_SECURITY_DESCRIPTOR(void)
6213 {
6214     /* SECURITY_DESCRIPTOR */
6215     TEST_TYPE_SIZE   (SECURITY_DESCRIPTOR, 20)
6216     TEST_TYPE_ALIGN  (SECURITY_DESCRIPTOR, 4)
6217     TEST_FIELD_SIZE  (SECURITY_DESCRIPTOR, Revision, 1)
6218     TEST_FIELD_ALIGN (SECURITY_DESCRIPTOR, Revision, 1)
6219     TEST_FIELD_OFFSET(SECURITY_DESCRIPTOR, Revision, 0)
6220     TEST_FIELD_SIZE  (SECURITY_DESCRIPTOR, Sbz1, 1)
6221     TEST_FIELD_ALIGN (SECURITY_DESCRIPTOR, Sbz1, 1)
6222     TEST_FIELD_OFFSET(SECURITY_DESCRIPTOR, Sbz1, 1)
6223     TEST_FIELD_SIZE  (SECURITY_DESCRIPTOR, Control, 2)
6224     TEST_FIELD_ALIGN (SECURITY_DESCRIPTOR, Control, 2)
6225     TEST_FIELD_OFFSET(SECURITY_DESCRIPTOR, Control, 2)
6226     TEST_FIELD_SIZE  (SECURITY_DESCRIPTOR, Owner, 4)
6227     TEST_FIELD_ALIGN (SECURITY_DESCRIPTOR, Owner, 4)
6228     TEST_FIELD_OFFSET(SECURITY_DESCRIPTOR, Owner, 4)
6229     TEST_FIELD_SIZE  (SECURITY_DESCRIPTOR, Group, 4)
6230     TEST_FIELD_ALIGN (SECURITY_DESCRIPTOR, Group, 4)
6231     TEST_FIELD_OFFSET(SECURITY_DESCRIPTOR, Group, 8)
6232     TEST_FIELD_SIZE  (SECURITY_DESCRIPTOR, Sacl, 4)
6233     TEST_FIELD_ALIGN (SECURITY_DESCRIPTOR, Sacl, 4)
6234     TEST_FIELD_OFFSET(SECURITY_DESCRIPTOR, Sacl, 12)
6235     TEST_FIELD_SIZE  (SECURITY_DESCRIPTOR, Dacl, 4)
6236     TEST_FIELD_ALIGN (SECURITY_DESCRIPTOR, Dacl, 4)
6237     TEST_FIELD_OFFSET(SECURITY_DESCRIPTOR, Dacl, 16)
6238 }
6239
6240 static void test_pack_SECURITY_DESCRIPTOR_CONTROL(void)
6241 {
6242     /* SECURITY_DESCRIPTOR_CONTROL */
6243     TEST_TYPE_SIZE   (SECURITY_DESCRIPTOR_CONTROL, 2)
6244     TEST_TYPE_ALIGN  (SECURITY_DESCRIPTOR_CONTROL, 2)
6245     TEST_TYPE_UNSIGNED(SECURITY_DESCRIPTOR_CONTROL)
6246 }
6247
6248 static void test_pack_SECURITY_DESCRIPTOR_RELATIVE(void)
6249 {
6250     /* SECURITY_DESCRIPTOR_RELATIVE */
6251     TEST_TYPE_SIZE   (SECURITY_DESCRIPTOR_RELATIVE, 20)
6252     TEST_TYPE_ALIGN  (SECURITY_DESCRIPTOR_RELATIVE, 4)
6253     TEST_FIELD_SIZE  (SECURITY_DESCRIPTOR_RELATIVE, Revision, 1)
6254     TEST_FIELD_ALIGN (SECURITY_DESCRIPTOR_RELATIVE, Revision, 1)
6255     TEST_FIELD_OFFSET(SECURITY_DESCRIPTOR_RELATIVE, Revision, 0)
6256     TEST_FIELD_SIZE  (SECURITY_DESCRIPTOR_RELATIVE, Sbz1, 1)
6257     TEST_FIELD_ALIGN (SECURITY_DESCRIPTOR_RELATIVE, Sbz1, 1)
6258     TEST_FIELD_OFFSET(SECURITY_DESCRIPTOR_RELATIVE, Sbz1, 1)
6259     TEST_FIELD_SIZE  (SECURITY_DESCRIPTOR_RELATIVE, Control, 2)
6260     TEST_FIELD_ALIGN (SECURITY_DESCRIPTOR_RELATIVE, Control, 2)
6261     TEST_FIELD_OFFSET(SECURITY_DESCRIPTOR_RELATIVE, Control, 2)
6262     TEST_FIELD_SIZE  (SECURITY_DESCRIPTOR_RELATIVE, Owner, 4)
6263     TEST_FIELD_ALIGN (SECURITY_DESCRIPTOR_RELATIVE, Owner, 4)
6264     TEST_FIELD_OFFSET(SECURITY_DESCRIPTOR_RELATIVE, Owner, 4)
6265     TEST_FIELD_SIZE  (SECURITY_DESCRIPTOR_RELATIVE, Group, 4)
6266     TEST_FIELD_ALIGN (SECURITY_DESCRIPTOR_RELATIVE, Group, 4)
6267     TEST_FIELD_OFFSET(SECURITY_DESCRIPTOR_RELATIVE, Group, 8)
6268     TEST_FIELD_SIZE  (SECURITY_DESCRIPTOR_RELATIVE, Sacl, 4)
6269     TEST_FIELD_ALIGN (SECURITY_DESCRIPTOR_RELATIVE, Sacl, 4)
6270     TEST_FIELD_OFFSET(SECURITY_DESCRIPTOR_RELATIVE, Sacl, 12)
6271     TEST_FIELD_SIZE  (SECURITY_DESCRIPTOR_RELATIVE, Dacl, 4)
6272     TEST_FIELD_ALIGN (SECURITY_DESCRIPTOR_RELATIVE, Dacl, 4)
6273     TEST_FIELD_OFFSET(SECURITY_DESCRIPTOR_RELATIVE, Dacl, 16)
6274 }
6275
6276 static void test_pack_SECURITY_INFORMATION(void)
6277 {
6278     /* SECURITY_INFORMATION */
6279     TEST_TYPE_SIZE   (SECURITY_INFORMATION, 4)
6280     TEST_TYPE_ALIGN  (SECURITY_INFORMATION, 4)
6281     TEST_TYPE_UNSIGNED(SECURITY_INFORMATION)
6282 }
6283
6284 static void test_pack_SECURITY_QUALITY_OF_SERVICE(void)
6285 {
6286     /* SECURITY_QUALITY_OF_SERVICE */
6287     TEST_FIELD_SIZE  (SECURITY_QUALITY_OF_SERVICE, Length, 4)
6288     TEST_FIELD_ALIGN (SECURITY_QUALITY_OF_SERVICE, Length, 4)
6289     TEST_FIELD_OFFSET(SECURITY_QUALITY_OF_SERVICE, Length, 0)
6290 }
6291
6292 static void test_pack_SHORT(void)
6293 {
6294     /* SHORT */
6295     TEST_TYPE_SIZE   (SHORT, 2)
6296     TEST_TYPE_ALIGN  (SHORT, 2)
6297     TEST_TYPE_SIGNED(SHORT)
6298 }
6299
6300 static void test_pack_SID(void)
6301 {
6302     /* SID */
6303     TEST_TYPE_SIZE   (SID, 12)
6304     TEST_TYPE_ALIGN  (SID, 4)
6305     TEST_FIELD_SIZE  (SID, Revision, 1)
6306     TEST_FIELD_ALIGN (SID, Revision, 1)
6307     TEST_FIELD_OFFSET(SID, Revision, 0)
6308     TEST_FIELD_SIZE  (SID, SubAuthorityCount, 1)
6309     TEST_FIELD_ALIGN (SID, SubAuthorityCount, 1)
6310     TEST_FIELD_OFFSET(SID, SubAuthorityCount, 1)
6311     TEST_FIELD_SIZE  (SID, IdentifierAuthority, 6)
6312     TEST_FIELD_ALIGN (SID, IdentifierAuthority, 1)
6313     TEST_FIELD_OFFSET(SID, IdentifierAuthority, 2)
6314     TEST_FIELD_SIZE  (SID, SubAuthority, 4)
6315     TEST_FIELD_ALIGN (SID, SubAuthority, 4)
6316     TEST_FIELD_OFFSET(SID, SubAuthority, 8)
6317 }
6318
6319 static void test_pack_SID_AND_ATTRIBUTES(void)
6320 {
6321     /* SID_AND_ATTRIBUTES */
6322     TEST_TYPE_SIZE   (SID_AND_ATTRIBUTES, 8)
6323     TEST_TYPE_ALIGN  (SID_AND_ATTRIBUTES, 4)
6324     TEST_FIELD_SIZE  (SID_AND_ATTRIBUTES, Sid, 4)
6325     TEST_FIELD_ALIGN (SID_AND_ATTRIBUTES, Sid, 4)
6326     TEST_FIELD_OFFSET(SID_AND_ATTRIBUTES, Sid, 0)
6327     TEST_FIELD_SIZE  (SID_AND_ATTRIBUTES, Attributes, 4)
6328     TEST_FIELD_ALIGN (SID_AND_ATTRIBUTES, Attributes, 4)
6329     TEST_FIELD_OFFSET(SID_AND_ATTRIBUTES, Attributes, 4)
6330 }
6331
6332 static void test_pack_SID_IDENTIFIER_AUTHORITY(void)
6333 {
6334     /* SID_IDENTIFIER_AUTHORITY */
6335     TEST_TYPE_SIZE   (SID_IDENTIFIER_AUTHORITY, 6)
6336     TEST_TYPE_ALIGN  (SID_IDENTIFIER_AUTHORITY, 1)
6337     TEST_FIELD_SIZE  (SID_IDENTIFIER_AUTHORITY, Value, 6)
6338     TEST_FIELD_ALIGN (SID_IDENTIFIER_AUTHORITY, Value, 1)
6339     TEST_FIELD_OFFSET(SID_IDENTIFIER_AUTHORITY, Value, 0)
6340 }
6341
6342 static void test_pack_SINGLE_LIST_ENTRY(void)
6343 {
6344     /* SINGLE_LIST_ENTRY */
6345     TEST_TYPE_SIZE   (SINGLE_LIST_ENTRY, 4)
6346     TEST_TYPE_ALIGN  (SINGLE_LIST_ENTRY, 4)
6347     TEST_FIELD_SIZE  (SINGLE_LIST_ENTRY, Next, 4)
6348     TEST_FIELD_ALIGN (SINGLE_LIST_ENTRY, Next, 4)
6349     TEST_FIELD_OFFSET(SINGLE_LIST_ENTRY, Next, 0)
6350 }
6351
6352 static void test_pack_SYSTEM_ALARM_ACE(void)
6353 {
6354     /* SYSTEM_ALARM_ACE */
6355     TEST_TYPE_SIZE   (SYSTEM_ALARM_ACE, 12)
6356     TEST_TYPE_ALIGN  (SYSTEM_ALARM_ACE, 4)
6357     TEST_FIELD_SIZE  (SYSTEM_ALARM_ACE, Header, 4)
6358     TEST_FIELD_ALIGN (SYSTEM_ALARM_ACE, Header, 2)
6359     TEST_FIELD_OFFSET(SYSTEM_ALARM_ACE, Header, 0)
6360     TEST_FIELD_SIZE  (SYSTEM_ALARM_ACE, Mask, 4)
6361     TEST_FIELD_ALIGN (SYSTEM_ALARM_ACE, Mask, 4)
6362     TEST_FIELD_OFFSET(SYSTEM_ALARM_ACE, Mask, 4)
6363     TEST_FIELD_SIZE  (SYSTEM_ALARM_ACE, SidStart, 4)
6364     TEST_FIELD_ALIGN (SYSTEM_ALARM_ACE, SidStart, 4)
6365     TEST_FIELD_OFFSET(SYSTEM_ALARM_ACE, SidStart, 8)
6366 }
6367
6368 static void test_pack_SYSTEM_AUDIT_ACE(void)
6369 {
6370     /* SYSTEM_AUDIT_ACE */
6371     TEST_TYPE_SIZE   (SYSTEM_AUDIT_ACE, 12)
6372     TEST_TYPE_ALIGN  (SYSTEM_AUDIT_ACE, 4)
6373     TEST_FIELD_SIZE  (SYSTEM_AUDIT_ACE, Header, 4)
6374     TEST_FIELD_ALIGN (SYSTEM_AUDIT_ACE, Header, 2)
6375     TEST_FIELD_OFFSET(SYSTEM_AUDIT_ACE, Header, 0)
6376     TEST_FIELD_SIZE  (SYSTEM_AUDIT_ACE, Mask, 4)
6377     TEST_FIELD_ALIGN (SYSTEM_AUDIT_ACE, Mask, 4)
6378     TEST_FIELD_OFFSET(SYSTEM_AUDIT_ACE, Mask, 4)
6379     TEST_FIELD_SIZE  (SYSTEM_AUDIT_ACE, SidStart, 4)
6380     TEST_FIELD_ALIGN (SYSTEM_AUDIT_ACE, SidStart, 4)
6381     TEST_FIELD_OFFSET(SYSTEM_AUDIT_ACE, SidStart, 8)
6382 }
6383
6384 static void test_pack_TCHAR(void)
6385 {
6386     /* TCHAR */
6387     TEST_TYPE_SIZE   (TCHAR, 1)
6388     TEST_TYPE_ALIGN  (TCHAR, 1)
6389 }
6390
6391 static void test_pack_TOKEN_DEFAULT_DACL(void)
6392 {
6393     /* TOKEN_DEFAULT_DACL */
6394     TEST_TYPE_SIZE   (TOKEN_DEFAULT_DACL, 4)
6395     TEST_TYPE_ALIGN  (TOKEN_DEFAULT_DACL, 4)
6396     TEST_FIELD_SIZE  (TOKEN_DEFAULT_DACL, DefaultDacl, 4)
6397     TEST_FIELD_ALIGN (TOKEN_DEFAULT_DACL, DefaultDacl, 4)
6398     TEST_FIELD_OFFSET(TOKEN_DEFAULT_DACL, DefaultDacl, 0)
6399 }
6400
6401 static void test_pack_TOKEN_GROUPS(void)
6402 {
6403     /* TOKEN_GROUPS */
6404     TEST_TYPE_SIZE   (TOKEN_GROUPS, 12)
6405     TEST_TYPE_ALIGN  (TOKEN_GROUPS, 4)
6406     TEST_FIELD_SIZE  (TOKEN_GROUPS, GroupCount, 4)
6407     TEST_FIELD_ALIGN (TOKEN_GROUPS, GroupCount, 4)
6408     TEST_FIELD_OFFSET(TOKEN_GROUPS, GroupCount, 0)
6409     TEST_FIELD_SIZE  (TOKEN_GROUPS, Groups, 8)
6410     TEST_FIELD_ALIGN (TOKEN_GROUPS, Groups, 4)
6411     TEST_FIELD_OFFSET(TOKEN_GROUPS, Groups, 4)
6412 }
6413
6414 static void test_pack_TOKEN_OWNER(void)
6415 {
6416     /* TOKEN_OWNER */
6417     TEST_TYPE_SIZE   (TOKEN_OWNER, 4)
6418     TEST_TYPE_ALIGN  (TOKEN_OWNER, 4)
6419     TEST_FIELD_SIZE  (TOKEN_OWNER, Owner, 4)
6420     TEST_FIELD_ALIGN (TOKEN_OWNER, Owner, 4)
6421     TEST_FIELD_OFFSET(TOKEN_OWNER, Owner, 0)
6422 }
6423
6424 static void test_pack_TOKEN_PRIMARY_GROUP(void)
6425 {
6426     /* TOKEN_PRIMARY_GROUP */
6427     TEST_TYPE_SIZE   (TOKEN_PRIMARY_GROUP, 4)
6428     TEST_TYPE_ALIGN  (TOKEN_PRIMARY_GROUP, 4)
6429     TEST_FIELD_SIZE  (TOKEN_PRIMARY_GROUP, PrimaryGroup, 4)
6430     TEST_FIELD_ALIGN (TOKEN_PRIMARY_GROUP, PrimaryGroup, 4)
6431     TEST_FIELD_OFFSET(TOKEN_PRIMARY_GROUP, PrimaryGroup, 0)
6432 }
6433
6434 static void test_pack_TOKEN_PRIVILEGES(void)
6435 {
6436     /* TOKEN_PRIVILEGES */
6437     TEST_TYPE_SIZE   (TOKEN_PRIVILEGES, 16)
6438     TEST_TYPE_ALIGN  (TOKEN_PRIVILEGES, 4)
6439     TEST_FIELD_SIZE  (TOKEN_PRIVILEGES, PrivilegeCount, 4)
6440     TEST_FIELD_ALIGN (TOKEN_PRIVILEGES, PrivilegeCount, 4)
6441     TEST_FIELD_OFFSET(TOKEN_PRIVILEGES, PrivilegeCount, 0)
6442     TEST_FIELD_SIZE  (TOKEN_PRIVILEGES, Privileges, 12)
6443     TEST_FIELD_ALIGN (TOKEN_PRIVILEGES, Privileges, 4)
6444     TEST_FIELD_OFFSET(TOKEN_PRIVILEGES, Privileges, 4)
6445 }
6446
6447 static void test_pack_TOKEN_SOURCE(void)
6448 {
6449     /* TOKEN_SOURCE */
6450     TEST_TYPE_SIZE   (TOKEN_SOURCE, 16)
6451     TEST_TYPE_ALIGN  (TOKEN_SOURCE, 4)
6452     TEST_FIELD_SIZE  (TOKEN_SOURCE, SourceName, 8)
6453     TEST_FIELD_ALIGN (TOKEN_SOURCE, SourceName, 1)
6454     TEST_FIELD_OFFSET(TOKEN_SOURCE, SourceName, 0)
6455     TEST_FIELD_SIZE  (TOKEN_SOURCE, SourceIdentifier, 8)
6456     TEST_FIELD_ALIGN (TOKEN_SOURCE, SourceIdentifier, 4)
6457     TEST_FIELD_OFFSET(TOKEN_SOURCE, SourceIdentifier, 8)
6458 }
6459
6460 static void test_pack_TOKEN_STATISTICS(void)
6461 {
6462     /* TOKEN_STATISTICS (pack 4) */
6463     TEST_FIELD_SIZE  (TOKEN_STATISTICS, TokenId, 8)
6464     TEST_FIELD_ALIGN (TOKEN_STATISTICS, TokenId, 4)
6465     TEST_FIELD_OFFSET(TOKEN_STATISTICS, TokenId, 0)
6466     TEST_FIELD_SIZE  (TOKEN_STATISTICS, AuthenticationId, 8)
6467     TEST_FIELD_ALIGN (TOKEN_STATISTICS, AuthenticationId, 4)
6468     TEST_FIELD_OFFSET(TOKEN_STATISTICS, AuthenticationId, 8)
6469     TEST_FIELD_SIZE  (TOKEN_STATISTICS, ExpirationTime, 8)
6470     TEST_FIELD_ALIGN (TOKEN_STATISTICS, ExpirationTime, 4)
6471     TEST_FIELD_OFFSET(TOKEN_STATISTICS, ExpirationTime, 16)
6472 }
6473
6474 static void test_pack_TOKEN_USER(void)
6475 {
6476     /* TOKEN_USER */
6477     TEST_TYPE_SIZE   (TOKEN_USER, 8)
6478     TEST_TYPE_ALIGN  (TOKEN_USER, 4)
6479     TEST_FIELD_SIZE  (TOKEN_USER, User, 8)
6480     TEST_FIELD_ALIGN (TOKEN_USER, User, 4)
6481     TEST_FIELD_OFFSET(TOKEN_USER, User, 0)
6482 }
6483
6484 static void test_pack_ULARGE_INTEGER(void)
6485 {
6486     /* ULARGE_INTEGER */
6487 }
6488
6489 static void test_pack_ULONGLONG(void)
6490 {
6491     /* ULONGLONG */
6492     TEST_TYPE_SIZE   (ULONGLONG, 8)
6493     TEST_TYPE_ALIGN  (ULONGLONG, 8)
6494     TEST_TYPE_UNSIGNED(ULONGLONG)
6495 }
6496
6497 static void test_pack_WAITORTIMERCALLBACKFUNC(void)
6498 {
6499     /* WAITORTIMERCALLBACKFUNC */
6500     TEST_TYPE_SIZE   (WAITORTIMERCALLBACKFUNC, 4)
6501     TEST_TYPE_ALIGN  (WAITORTIMERCALLBACKFUNC, 4)
6502 }
6503
6504 static void test_pack_WCHAR(void)
6505 {
6506     /* WCHAR */
6507     TEST_TYPE_SIZE   (WCHAR, 2)
6508     TEST_TYPE_ALIGN  (WCHAR, 2)
6509     TEST_TYPE_UNSIGNED(WCHAR)
6510 }
6511
6512 static void test_pack_ATOM(void)
6513 {
6514     /* ATOM */
6515     TEST_TYPE_SIZE   (ATOM, 2)
6516     TEST_TYPE_ALIGN  (ATOM, 2)
6517     TEST_TYPE_UNSIGNED(ATOM)
6518 }
6519
6520 static void test_pack_BOOL(void)
6521 {
6522     /* BOOL */
6523     TEST_TYPE_SIZE   (BOOL, 4)
6524     TEST_TYPE_ALIGN  (BOOL, 4)
6525     TEST_TYPE_SIGNED(BOOL)
6526 }
6527
6528 static void test_pack_BYTE(void)
6529 {
6530     /* BYTE */
6531     TEST_TYPE_SIZE   (BYTE, 1)
6532     TEST_TYPE_ALIGN  (BYTE, 1)
6533     TEST_TYPE_UNSIGNED(BYTE)
6534 }
6535
6536 static void test_pack_COLORREF(void)
6537 {
6538     /* COLORREF */
6539     TEST_TYPE_SIZE   (COLORREF, 4)
6540     TEST_TYPE_ALIGN  (COLORREF, 4)
6541     TEST_TYPE_UNSIGNED(COLORREF)
6542 }
6543
6544 static void test_pack_DWORD(void)
6545 {
6546     /* DWORD */
6547     TEST_TYPE_SIZE   (DWORD, 4)
6548     TEST_TYPE_ALIGN  (DWORD, 4)
6549     TEST_TYPE_UNSIGNED(DWORD)
6550 }
6551
6552 static void test_pack_FARPROC(void)
6553 {
6554     /* FARPROC */
6555     TEST_TYPE_SIZE   (FARPROC, 4)
6556     TEST_TYPE_ALIGN  (FARPROC, 4)
6557 }
6558
6559 static void test_pack_FLOAT(void)
6560 {
6561     /* FLOAT */
6562     TEST_TYPE_SIZE   (FLOAT, 4)
6563     TEST_TYPE_ALIGN  (FLOAT, 4)
6564 }
6565
6566 static void test_pack_GLOBALHANDLE(void)
6567 {
6568     /* GLOBALHANDLE */
6569     TEST_TYPE_SIZE   (GLOBALHANDLE, 4)
6570     TEST_TYPE_ALIGN  (GLOBALHANDLE, 4)
6571 }
6572
6573 static void test_pack_HCURSOR(void)
6574 {
6575     /* HCURSOR */
6576     TEST_TYPE_SIZE   (HCURSOR, 4)
6577     TEST_TYPE_ALIGN  (HCURSOR, 4)
6578 }
6579
6580 static void test_pack_HFILE(void)
6581 {
6582     /* HFILE */
6583     TEST_TYPE_SIZE   (HFILE, 4)
6584     TEST_TYPE_ALIGN  (HFILE, 4)
6585     TEST_TYPE_SIGNED(HFILE)
6586 }
6587
6588 static void test_pack_HGDIOBJ(void)
6589 {
6590     /* HGDIOBJ */
6591     TEST_TYPE_SIZE   (HGDIOBJ, 4)
6592     TEST_TYPE_ALIGN  (HGDIOBJ, 4)
6593 }
6594
6595 static void test_pack_HGLOBAL(void)
6596 {
6597     /* HGLOBAL */
6598     TEST_TYPE_SIZE   (HGLOBAL, 4)
6599     TEST_TYPE_ALIGN  (HGLOBAL, 4)
6600 }
6601
6602 static void test_pack_HLOCAL(void)
6603 {
6604     /* HLOCAL */
6605     TEST_TYPE_SIZE   (HLOCAL, 4)
6606     TEST_TYPE_ALIGN  (HLOCAL, 4)
6607 }
6608
6609 static void test_pack_HMODULE(void)
6610 {
6611     /* HMODULE */
6612     TEST_TYPE_SIZE   (HMODULE, 4)
6613     TEST_TYPE_ALIGN  (HMODULE, 4)
6614 }
6615
6616 static void test_pack_INT(void)
6617 {
6618     /* INT */
6619     TEST_TYPE_SIZE   (INT, 4)
6620     TEST_TYPE_ALIGN  (INT, 4)
6621     TEST_TYPE_SIGNED(INT)
6622 }
6623
6624 static void test_pack_LOCALHANDLE(void)
6625 {
6626     /* LOCALHANDLE */
6627     TEST_TYPE_SIZE   (LOCALHANDLE, 4)
6628     TEST_TYPE_ALIGN  (LOCALHANDLE, 4)
6629 }
6630
6631 static void test_pack_LPARAM(void)
6632 {
6633     /* LPARAM */
6634     TEST_TYPE_SIZE   (LPARAM, 4)
6635     TEST_TYPE_ALIGN  (LPARAM, 4)
6636 }
6637
6638 static void test_pack_LPCRECT(void)
6639 {
6640     /* LPCRECT */
6641     TEST_TYPE_SIZE   (LPCRECT, 4)
6642     TEST_TYPE_ALIGN  (LPCRECT, 4)
6643     TEST_TARGET_SIZE (LPCRECT, 16)
6644     TEST_TARGET_ALIGN(LPCRECT, 4)
6645 }
6646
6647 static void test_pack_LPCRECTL(void)
6648 {
6649     /* LPCRECTL */
6650     TEST_TYPE_SIZE   (LPCRECTL, 4)
6651     TEST_TYPE_ALIGN  (LPCRECTL, 4)
6652     TEST_TARGET_SIZE (LPCRECTL, 16)
6653     TEST_TARGET_ALIGN(LPCRECTL, 4)
6654 }
6655
6656 static void test_pack_LPCVOID(void)
6657 {
6658     /* LPCVOID */
6659     TEST_TYPE_SIZE   (LPCVOID, 4)
6660     TEST_TYPE_ALIGN  (LPCVOID, 4)
6661 }
6662
6663 static void test_pack_LPPOINT(void)
6664 {
6665     /* LPPOINT */
6666     TEST_TYPE_SIZE   (LPPOINT, 4)
6667     TEST_TYPE_ALIGN  (LPPOINT, 4)
6668     TEST_TARGET_SIZE (LPPOINT, 8)
6669     TEST_TARGET_ALIGN(LPPOINT, 4)
6670 }
6671
6672 static void test_pack_LPRECT(void)
6673 {
6674     /* LPRECT */
6675     TEST_TYPE_SIZE   (LPRECT, 4)
6676     TEST_TYPE_ALIGN  (LPRECT, 4)
6677     TEST_TARGET_SIZE (LPRECT, 16)
6678     TEST_TARGET_ALIGN(LPRECT, 4)
6679 }
6680
6681 static void test_pack_LPRECTL(void)
6682 {
6683     /* LPRECTL */
6684     TEST_TYPE_SIZE   (LPRECTL, 4)
6685     TEST_TYPE_ALIGN  (LPRECTL, 4)
6686     TEST_TARGET_SIZE (LPRECTL, 16)
6687     TEST_TARGET_ALIGN(LPRECTL, 4)
6688 }
6689
6690 static void test_pack_LPSIZE(void)
6691 {
6692     /* LPSIZE */
6693     TEST_TYPE_SIZE   (LPSIZE, 4)
6694     TEST_TYPE_ALIGN  (LPSIZE, 4)
6695     TEST_TARGET_SIZE (LPSIZE, 8)
6696     TEST_TARGET_ALIGN(LPSIZE, 4)
6697 }
6698
6699 static void test_pack_LRESULT(void)
6700 {
6701     /* LRESULT */
6702     TEST_TYPE_SIZE   (LRESULT, 4)
6703     TEST_TYPE_ALIGN  (LRESULT, 4)
6704 }
6705
6706 static void test_pack_POINT(void)
6707 {
6708     /* POINT */
6709     TEST_TYPE_SIZE   (POINT, 8)
6710     TEST_TYPE_ALIGN  (POINT, 4)
6711     TEST_FIELD_SIZE  (POINT, x, 4)
6712     TEST_FIELD_ALIGN (POINT, x, 4)
6713     TEST_FIELD_OFFSET(POINT, x, 0)
6714     TEST_FIELD_SIZE  (POINT, y, 4)
6715     TEST_FIELD_ALIGN (POINT, y, 4)
6716     TEST_FIELD_OFFSET(POINT, y, 4)
6717 }
6718
6719 static void test_pack_POINTL(void)
6720 {
6721     /* POINTL */
6722     TEST_TYPE_SIZE   (POINTL, 8)
6723     TEST_TYPE_ALIGN  (POINTL, 4)
6724     TEST_FIELD_SIZE  (POINTL, x, 4)
6725     TEST_FIELD_ALIGN (POINTL, x, 4)
6726     TEST_FIELD_OFFSET(POINTL, x, 0)
6727     TEST_FIELD_SIZE  (POINTL, y, 4)
6728     TEST_FIELD_ALIGN (POINTL, y, 4)
6729     TEST_FIELD_OFFSET(POINTL, y, 4)
6730 }
6731
6732 static void test_pack_PPOINT(void)
6733 {
6734     /* PPOINT */
6735     TEST_TYPE_SIZE   (PPOINT, 4)
6736     TEST_TYPE_ALIGN  (PPOINT, 4)
6737     TEST_TARGET_SIZE (PPOINT, 8)
6738     TEST_TARGET_ALIGN(PPOINT, 4)
6739 }
6740
6741 static void test_pack_PPOINTL(void)
6742 {
6743     /* PPOINTL */
6744     TEST_TYPE_SIZE   (PPOINTL, 4)
6745     TEST_TYPE_ALIGN  (PPOINTL, 4)
6746     TEST_TARGET_SIZE (PPOINTL, 8)
6747     TEST_TARGET_ALIGN(PPOINTL, 4)
6748 }
6749
6750 static void test_pack_PRECT(void)
6751 {
6752     /* PRECT */
6753     TEST_TYPE_SIZE   (PRECT, 4)
6754     TEST_TYPE_ALIGN  (PRECT, 4)
6755     TEST_TARGET_SIZE (PRECT, 16)
6756     TEST_TARGET_ALIGN(PRECT, 4)
6757 }
6758
6759 static void test_pack_PRECTL(void)
6760 {
6761     /* PRECTL */
6762     TEST_TYPE_SIZE   (PRECTL, 4)
6763     TEST_TYPE_ALIGN  (PRECTL, 4)
6764     TEST_TARGET_SIZE (PRECTL, 16)
6765     TEST_TARGET_ALIGN(PRECTL, 4)
6766 }
6767
6768 static void test_pack_PROC(void)
6769 {
6770     /* PROC */
6771     TEST_TYPE_SIZE   (PROC, 4)
6772     TEST_TYPE_ALIGN  (PROC, 4)
6773 }
6774
6775 static void test_pack_PSIZE(void)
6776 {
6777     /* PSIZE */
6778     TEST_TYPE_SIZE   (PSIZE, 4)
6779     TEST_TYPE_ALIGN  (PSIZE, 4)
6780     TEST_TARGET_SIZE (PSIZE, 8)
6781     TEST_TARGET_ALIGN(PSIZE, 4)
6782 }
6783
6784 static void test_pack_PSZ(void)
6785 {
6786     /* PSZ */
6787     TEST_TYPE_SIZE   (PSZ, 4)
6788     TEST_TYPE_ALIGN  (PSZ, 4)
6789 }
6790
6791 static void test_pack_RECT(void)
6792 {
6793     /* RECT */
6794     TEST_TYPE_SIZE   (RECT, 16)
6795     TEST_TYPE_ALIGN  (RECT, 4)
6796     TEST_FIELD_SIZE  (RECT, left, 4)
6797     TEST_FIELD_ALIGN (RECT, left, 4)
6798     TEST_FIELD_OFFSET(RECT, left, 0)
6799     TEST_FIELD_SIZE  (RECT, top, 4)
6800     TEST_FIELD_ALIGN (RECT, top, 4)
6801     TEST_FIELD_OFFSET(RECT, top, 4)
6802     TEST_FIELD_SIZE  (RECT, right, 4)
6803     TEST_FIELD_ALIGN (RECT, right, 4)
6804     TEST_FIELD_OFFSET(RECT, right, 8)
6805     TEST_FIELD_SIZE  (RECT, bottom, 4)
6806     TEST_FIELD_ALIGN (RECT, bottom, 4)
6807     TEST_FIELD_OFFSET(RECT, bottom, 12)
6808 }
6809
6810 static void test_pack_RECTL(void)
6811 {
6812     /* RECTL */
6813     TEST_TYPE_SIZE   (RECTL, 16)
6814     TEST_TYPE_ALIGN  (RECTL, 4)
6815     TEST_FIELD_SIZE  (RECTL, left, 4)
6816     TEST_FIELD_ALIGN (RECTL, left, 4)
6817     TEST_FIELD_OFFSET(RECTL, left, 0)
6818     TEST_FIELD_SIZE  (RECTL, top, 4)
6819     TEST_FIELD_ALIGN (RECTL, top, 4)
6820     TEST_FIELD_OFFSET(RECTL, top, 4)
6821     TEST_FIELD_SIZE  (RECTL, right, 4)
6822     TEST_FIELD_ALIGN (RECTL, right, 4)
6823     TEST_FIELD_OFFSET(RECTL, right, 8)
6824     TEST_FIELD_SIZE  (RECTL, bottom, 4)
6825     TEST_FIELD_ALIGN (RECTL, bottom, 4)
6826     TEST_FIELD_OFFSET(RECTL, bottom, 12)
6827 }
6828
6829 static void test_pack_SIZE(void)
6830 {
6831     /* SIZE */
6832     TEST_TYPE_SIZE   (SIZE, 8)
6833     TEST_TYPE_ALIGN  (SIZE, 4)
6834     TEST_FIELD_SIZE  (SIZE, cx, 4)
6835     TEST_FIELD_ALIGN (SIZE, cx, 4)
6836     TEST_FIELD_OFFSET(SIZE, cx, 0)
6837     TEST_FIELD_SIZE  (SIZE, cy, 4)
6838     TEST_FIELD_ALIGN (SIZE, cy, 4)
6839     TEST_FIELD_OFFSET(SIZE, cy, 4)
6840 }
6841
6842 static void test_pack_SIZEL(void)
6843 {
6844     /* SIZEL */
6845     TEST_TYPE_SIZE   (SIZEL, 8)
6846     TEST_TYPE_ALIGN  (SIZEL, 4)
6847 }
6848
6849 static void test_pack_UCHAR(void)
6850 {
6851     /* UCHAR */
6852     TEST_TYPE_SIZE   (UCHAR, 1)
6853     TEST_TYPE_ALIGN  (UCHAR, 1)
6854     TEST_TYPE_UNSIGNED(UCHAR)
6855 }
6856
6857 static void test_pack_UINT(void)
6858 {
6859     /* UINT */
6860     TEST_TYPE_SIZE   (UINT, 4)
6861     TEST_TYPE_ALIGN  (UINT, 4)
6862     TEST_TYPE_UNSIGNED(UINT)
6863 }
6864
6865 static void test_pack_ULONG(void)
6866 {
6867     /* ULONG */
6868     TEST_TYPE_SIZE   (ULONG, 4)
6869     TEST_TYPE_ALIGN  (ULONG, 4)
6870     TEST_TYPE_UNSIGNED(ULONG)
6871 }
6872
6873 static void test_pack_USHORT(void)
6874 {
6875     /* USHORT */
6876     TEST_TYPE_SIZE   (USHORT, 2)
6877     TEST_TYPE_ALIGN  (USHORT, 2)
6878     TEST_TYPE_UNSIGNED(USHORT)
6879 }
6880
6881 static void test_pack_WORD(void)
6882 {
6883     /* WORD */
6884     TEST_TYPE_SIZE   (WORD, 2)
6885     TEST_TYPE_ALIGN  (WORD, 2)
6886     TEST_TYPE_UNSIGNED(WORD)
6887 }
6888
6889 static void test_pack_WPARAM(void)
6890 {
6891     /* WPARAM */
6892     TEST_TYPE_SIZE   (WPARAM, 4)
6893     TEST_TYPE_ALIGN  (WPARAM, 4)
6894 }
6895
6896 #endif /* _WIN64 */
6897
6898 static void test_pack(void)
6899 {
6900     test_pack_ACCESS_ALLOWED_ACE();
6901     test_pack_ACCESS_DENIED_ACE();
6902     test_pack_ACCESS_MASK();
6903     test_pack_ACE_HEADER();
6904     test_pack_ACL();
6905     test_pack_ACL_REVISION_INFORMATION();
6906     test_pack_ACL_SIZE_INFORMATION();
6907     test_pack_ATOM();
6908     test_pack_BOOL();
6909     test_pack_BOOLEAN();
6910     test_pack_BYTE();
6911     test_pack_CCHAR();
6912     test_pack_CHAR();
6913     test_pack_COLORREF();
6914     test_pack_DWORD();
6915     test_pack_DWORD32();
6916     test_pack_DWORD64();
6917     test_pack_DWORDLONG();
6918     test_pack_DWORD_PTR();
6919     test_pack_EXCEPTION_POINTERS();
6920     test_pack_EXCEPTION_RECORD();
6921     test_pack_EXECUTION_STATE();
6922     test_pack_FARPROC();
6923     test_pack_FLOAT();
6924     test_pack_FLOATING_SAVE_AREA();
6925     test_pack_FPO_DATA();
6926     test_pack_GENERIC_MAPPING();
6927     test_pack_GLOBALHANDLE();
6928     test_pack_HALF_PTR();
6929     test_pack_HANDLE();
6930     test_pack_HCURSOR();
6931     test_pack_HFILE();
6932     test_pack_HGDIOBJ();
6933     test_pack_HGLOBAL();
6934     test_pack_HLOCAL();
6935     test_pack_HMODULE();
6936     test_pack_HRESULT();
6937     test_pack_IMAGE_ARCHIVE_MEMBER_HEADER();
6938     test_pack_IMAGE_AUX_SYMBOL();
6939     test_pack_IMAGE_BASE_RELOCATION();
6940     test_pack_IMAGE_BOUND_FORWARDER_REF();
6941     test_pack_IMAGE_BOUND_IMPORT_DESCRIPTOR();
6942     test_pack_IMAGE_COFF_SYMBOLS_HEADER();
6943     test_pack_IMAGE_DATA_DIRECTORY();
6944     test_pack_IMAGE_DEBUG_DIRECTORY();
6945     test_pack_IMAGE_DEBUG_MISC();
6946     test_pack_IMAGE_DOS_HEADER();
6947     test_pack_IMAGE_EXPORT_DIRECTORY();
6948     test_pack_IMAGE_FILE_HEADER();
6949     test_pack_IMAGE_FUNCTION_ENTRY();
6950     test_pack_IMAGE_IMPORT_BY_NAME();
6951     test_pack_IMAGE_IMPORT_DESCRIPTOR();
6952     test_pack_IMAGE_LINENUMBER();
6953     test_pack_IMAGE_LOAD_CONFIG_DIRECTORY();
6954     test_pack_IMAGE_NT_HEADERS();
6955     test_pack_IMAGE_NT_HEADERS32();
6956     test_pack_IMAGE_NT_HEADERS64();
6957     test_pack_IMAGE_OPTIONAL_HEADER();
6958     test_pack_IMAGE_OPTIONAL_HEADER32();
6959     test_pack_IMAGE_OPTIONAL_HEADER64();
6960     test_pack_IMAGE_OS2_HEADER();
6961     test_pack_IMAGE_RELOCATION();
6962     test_pack_IMAGE_RESOURCE_DATA_ENTRY();
6963     test_pack_IMAGE_RESOURCE_DIRECTORY();
6964     test_pack_IMAGE_RESOURCE_DIRECTORY_ENTRY();
6965     test_pack_IMAGE_RESOURCE_DIRECTORY_STRING();
6966     test_pack_IMAGE_RESOURCE_DIR_STRING_U();
6967     test_pack_IMAGE_SECTION_HEADER();
6968     test_pack_IMAGE_SEPARATE_DEBUG_HEADER();
6969     test_pack_IMAGE_SYMBOL();
6970     test_pack_IMAGE_THUNK_DATA();
6971     test_pack_IMAGE_TLS_DIRECTORY();
6972     test_pack_IMAGE_TLS_DIRECTORY32();
6973     test_pack_IMAGE_TLS_DIRECTORY64();
6974     test_pack_IMAGE_VXD_HEADER();
6975     test_pack_INT();
6976     test_pack_INT16();
6977     test_pack_INT32();
6978     test_pack_INT64();
6979     test_pack_INT8();
6980     test_pack_INT_PTR();
6981     test_pack_IO_COUNTERS();
6982     test_pack_LANGID();
6983     test_pack_LARGE_INTEGER();
6984     test_pack_LCID();
6985     test_pack_LIST_ENTRY();
6986     test_pack_LOCALHANDLE();
6987     test_pack_LONG();
6988     test_pack_LONG32();
6989     test_pack_LONG64();
6990     test_pack_LONGLONG();
6991     test_pack_LONG_PTR();
6992     test_pack_LPARAM();
6993     test_pack_LPCRECT();
6994     test_pack_LPCRECTL();
6995     test_pack_LPCVOID();
6996     test_pack_LPPOINT();
6997     test_pack_LPRECT();
6998     test_pack_LPRECTL();
6999     test_pack_LPSIZE();
7000     test_pack_LRESULT();
7001     test_pack_LUID();
7002     test_pack_LUID_AND_ATTRIBUTES();
7003     test_pack_MEMORY_BASIC_INFORMATION();
7004     test_pack_MESSAGE_RESOURCE_BLOCK();
7005     test_pack_MESSAGE_RESOURCE_DATA();
7006     test_pack_MESSAGE_RESOURCE_ENTRY();
7007     test_pack_NT_TIB();
7008     test_pack_OBJECT_TYPE_LIST();
7009     test_pack_PACCESS_ALLOWED_ACE();
7010     test_pack_PACCESS_DENIED_ACE();
7011     test_pack_PACCESS_TOKEN();
7012     test_pack_PACE_HEADER();
7013     test_pack_PACL();
7014     test_pack_PACL_REVISION_INFORMATION();
7015     test_pack_PACL_SIZE_INFORMATION();
7016     test_pack_PCCH();
7017     test_pack_PCH();
7018     test_pack_PCSTR();
7019     test_pack_PCTSTR();
7020     test_pack_PCWCH();
7021     test_pack_PCWSTR();
7022     test_pack_PEXCEPTION_POINTERS();
7023     test_pack_PEXCEPTION_RECORD();
7024     test_pack_PFLOATING_SAVE_AREA();
7025     test_pack_PFPO_DATA();
7026     test_pack_PGENERIC_MAPPING();
7027     test_pack_PHANDLE();
7028     test_pack_PIMAGE_ARCHIVE_MEMBER_HEADER();
7029     test_pack_PIMAGE_AUX_SYMBOL();
7030     test_pack_PIMAGE_BASE_RELOCATION();
7031     test_pack_PIMAGE_BOUND_FORWARDER_REF();
7032     test_pack_PIMAGE_BOUND_IMPORT_DESCRIPTOR();
7033     test_pack_PIMAGE_COFF_SYMBOLS_HEADER();
7034     test_pack_PIMAGE_DATA_DIRECTORY();
7035     test_pack_PIMAGE_DEBUG_DIRECTORY();
7036     test_pack_PIMAGE_DEBUG_MISC();
7037     test_pack_PIMAGE_DOS_HEADER();
7038     test_pack_PIMAGE_EXPORT_DIRECTORY();
7039     test_pack_PIMAGE_FILE_HEADER();
7040     test_pack_PIMAGE_FUNCTION_ENTRY();
7041     test_pack_PIMAGE_IMPORT_BY_NAME();
7042     test_pack_PIMAGE_IMPORT_DESCRIPTOR();
7043     test_pack_PIMAGE_LINENUMBER();
7044     test_pack_PIMAGE_LOAD_CONFIG_DIRECTORY();
7045     test_pack_PIMAGE_NT_HEADERS();
7046     test_pack_PIMAGE_NT_HEADERS32();
7047     test_pack_PIMAGE_NT_HEADERS64();
7048     test_pack_PIMAGE_OPTIONAL_HEADER();
7049     test_pack_PIMAGE_OPTIONAL_HEADER32();
7050     test_pack_PIMAGE_OPTIONAL_HEADER64();
7051     test_pack_PIMAGE_OS2_HEADER();
7052     test_pack_PIMAGE_RELOCATION();
7053     test_pack_PIMAGE_RESOURCE_DATA_ENTRY();
7054     test_pack_PIMAGE_RESOURCE_DIRECTORY();
7055     test_pack_PIMAGE_RESOURCE_DIRECTORY_ENTRY();
7056     test_pack_PIMAGE_RESOURCE_DIRECTORY_STRING();
7057     test_pack_PIMAGE_RESOURCE_DIR_STRING_U();
7058     test_pack_PIMAGE_SECTION_HEADER();
7059     test_pack_PIMAGE_SEPARATE_DEBUG_HEADER();
7060     test_pack_PIMAGE_SYMBOL();
7061     test_pack_PIMAGE_THUNK_DATA();
7062     test_pack_PIMAGE_TLS_CALLBACK();
7063     test_pack_PIMAGE_TLS_DIRECTORY();
7064     test_pack_PIMAGE_VXD_HEADER();
7065     test_pack_PIO_COUNTERS();
7066     test_pack_PISECURITY_DESCRIPTOR();
7067     test_pack_PISECURITY_DESCRIPTOR_RELATIVE();
7068     test_pack_PISID();
7069     test_pack_PLARGE_INTEGER();
7070     test_pack_PLIST_ENTRY();
7071     test_pack_PLUID();
7072     test_pack_PLUID_AND_ATTRIBUTES();
7073     test_pack_PMEMORY_BASIC_INFORMATION();
7074     test_pack_PMESSAGE_RESOURCE_BLOCK();
7075     test_pack_PMESSAGE_RESOURCE_DATA();
7076     test_pack_PMESSAGE_RESOURCE_ENTRY();
7077     test_pack_PNT_TIB();
7078     test_pack_POBJECT_TYPE_LIST();
7079     test_pack_POINT();
7080     test_pack_POINTL();
7081     test_pack_PPOINT();
7082     test_pack_PPOINTL();
7083     test_pack_PPRIVILEGE_SET();
7084     test_pack_PRECT();
7085     test_pack_PRECTL();
7086     test_pack_PRIVILEGE_SET();
7087     test_pack_PRLIST_ENTRY();
7088     test_pack_PROC();
7089     test_pack_PRTL_CRITICAL_SECTION();
7090     test_pack_PRTL_CRITICAL_SECTION_DEBUG();
7091     test_pack_PRTL_OSVERSIONINFOEXW();
7092     test_pack_PRTL_OSVERSIONINFOW();
7093     test_pack_PRTL_RESOURCE_DEBUG();
7094     test_pack_PSECURITY_DESCRIPTOR();
7095     test_pack_PSECURITY_QUALITY_OF_SERVICE();
7096     test_pack_PSID();
7097     test_pack_PSID_IDENTIFIER_AUTHORITY();
7098     test_pack_PSINGLE_LIST_ENTRY();
7099     test_pack_PSIZE();
7100     test_pack_PSTR();
7101     test_pack_PSYSTEM_ALARM_ACE();
7102     test_pack_PSYSTEM_AUDIT_ACE();
7103     test_pack_PSZ();
7104     test_pack_PTOKEN_GROUPS();
7105     test_pack_PTOKEN_PRIVILEGES();
7106     test_pack_PTOKEN_USER();
7107     test_pack_PTSTR();
7108     test_pack_PULARGE_INTEGER();
7109     test_pack_PVECTORED_EXCEPTION_HANDLER();
7110     test_pack_PVOID();
7111     test_pack_PWCH();
7112     test_pack_PWSTR();
7113     test_pack_RECT();
7114     test_pack_RECTL();
7115     test_pack_RTL_CRITICAL_SECTION();
7116     test_pack_RTL_CRITICAL_SECTION_DEBUG();
7117     test_pack_RTL_OSVERSIONINFOEXW();
7118     test_pack_RTL_OSVERSIONINFOW();
7119     test_pack_RTL_RESOURCE_DEBUG();
7120     test_pack_SECURITY_CONTEXT_TRACKING_MODE();
7121     test_pack_SECURITY_DESCRIPTOR();
7122     test_pack_SECURITY_DESCRIPTOR_CONTROL();
7123     test_pack_SECURITY_DESCRIPTOR_RELATIVE();
7124     test_pack_SECURITY_INFORMATION();
7125     test_pack_SECURITY_QUALITY_OF_SERVICE();
7126     test_pack_SHORT();
7127     test_pack_SID();
7128     test_pack_SID_AND_ATTRIBUTES();
7129     test_pack_SID_IDENTIFIER_AUTHORITY();
7130     test_pack_SINGLE_LIST_ENTRY();
7131     test_pack_SIZE();
7132     test_pack_SIZEL();
7133     test_pack_SIZE_T();
7134     test_pack_SSIZE_T();
7135     test_pack_SYSTEM_ALARM_ACE();
7136     test_pack_SYSTEM_AUDIT_ACE();
7137     test_pack_TCHAR();
7138     test_pack_TOKEN_DEFAULT_DACL();
7139     test_pack_TOKEN_GROUPS();
7140     test_pack_TOKEN_OWNER();
7141     test_pack_TOKEN_PRIMARY_GROUP();
7142     test_pack_TOKEN_PRIVILEGES();
7143     test_pack_TOKEN_SOURCE();
7144     test_pack_TOKEN_STATISTICS();
7145     test_pack_TOKEN_USER();
7146     test_pack_UCHAR();
7147     test_pack_UHALF_PTR();
7148     test_pack_UINT();
7149     test_pack_UINT16();
7150     test_pack_UINT32();
7151     test_pack_UINT64();
7152     test_pack_UINT8();
7153     test_pack_UINT_PTR();
7154     test_pack_ULARGE_INTEGER();
7155     test_pack_ULONG();
7156     test_pack_ULONG32();
7157     test_pack_ULONG64();
7158     test_pack_ULONGLONG();
7159     test_pack_ULONG_PTR();
7160     test_pack_USHORT();
7161     test_pack_WAITORTIMERCALLBACKFUNC();
7162     test_pack_WCHAR();
7163     test_pack_WORD();
7164     test_pack_WPARAM();
7165 }
7166
7167 START_TEST(generated)
7168 {
7169     test_pack();
7170 }