source: trunk/src/ntdll/tests/generated.c@ 21916

Last change on this file since 21916 was 21916, checked in by dmik, 14 years ago

Merge branch gcc-kmk to trunk.

File size: 63.5 KB
Line 
1/* File generated automatically from tools/winapi/test.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 _WIN32_IE 0x0501
9#define _WIN32_WINNT 0x0501
10
11#define WINE_NOWINSOCK
12
13#include "windows.h"
14#include "winbase.h"
15#include "imagehlp.h"
16#include "test.h"
17
18typedef signed char INT8, *PINT8;
19typedef signed long long INT64, *PINT64;
20typedef unsigned char UINT8, *PUINT8;
21typedef unsigned int UINT32, *PUINT32;
22typedef unsigned long long UINT64, *PUINT64;
23typedef signed int LONG32, *PLONG32;
24typedef unsigned int ULONG32, *PULONG32;
25typedef unsigned int DWORD32, *PDWORD32;
26typedef signed long long LONG64, *PLONG64;
27typedef unsigned long long ULONG64, *PULONG64;
28typedef unsigned long long DWORD64, *PDWORD64;
29
30typedef signed short HALF_PTR, *PHALF_PTR;
31typedef unsigned short UHALF_PTR, *PUHALF_PTR;
32
33typedef LONG_PTR SSIZE_T, *PSSIZE_T;
34typedef ULONG_PTR SIZE_T, *PSIZE_T;
35
36/***********************************************************************
37 * Compability macros
38 */
39
40
41/***********************************************************************
42 * Windows API extension
43 */
44
45#if (_MSC_VER >= 1300) && defined(__cplusplus)
46# define FIELD_ALIGNMENT(type, field) __alignof(((type*)0)->field)
47#elif defined(__GNUC__)
48# define FIELD_ALIGNMENT(type, field) __alignof__(((type*)0)->field)
49#else
50/* FIXME: Not sure if is possible to do without compiler extension */
51#endif
52
53#if (_MSC_VER >= 1300) && defined(__cplusplus)
54# define _TYPE_ALIGNMENT(type) __alignof(type)
55#elif defined(__GNUC__)
56# define _TYPE_ALIGNMENT(type) __alignof__(type)
57#else
58/*
59 * FIXME: Not sure if is possible to do without compiler extension
60 * (if type is not just a name that is, if so the normal)
61 * TYPE_ALIGNMENT can be used)
62 */
63#endif
64
65#if !defined(TYPE_ALIGNMENT) && defined(_TYPE_ALIGNMENT)
66# define TYPE_ALIGNMENT _TYPE_ALIGNMENT
67#endif
68
69/***********************************************************************
70 * Test helper macros
71 */
72
73#ifdef FIELD_ALIGNMENT
74# define TEST_FIELD_ALIGNMENT(type, field, align) \
75 ok(FIELD_ALIGNMENT(type, field) == align, \
76 "FIELD_ALIGNMENT(" #type ", " #field ") == %ld (expected " #align ")", \
77 FIELD_ALIGNMENT(type, field))
78#else
79# define TEST_FIELD_ALIGNMENT(type, field, align) do { } while (0)
80#endif
81
82#define TEST_FIELD_OFFSET(type, field, offset) \
83 ok(FIELD_OFFSET(type, field) == offset, \
84 "FIELD_OFFSET(" #type ", " #field ") == %ld (expected " #offset ")", \
85 FIELD_OFFSET(type, field))
86
87#ifdef _TYPE_ALIGNMENT
88#define TEST__TYPE_ALIGNMENT(type, align) \
89 ok(_TYPE_ALIGNMENT(type) == align, "TYPE_ALIGNMENT(" #type ") == %ld (expected " #align ")", _TYPE_ALIGNMENT(type))
90#else
91# define TEST__TYPE_ALIGNMENT(type, align) do { } while (0)
92#endif
93
94#ifdef TYPE_ALIGNMENT
95#define TEST_TYPE_ALIGNMENT(type, align) \
96 ok(TYPE_ALIGNMENT(type) == align, "TYPE_ALIGNMENT(" #type ") == %ld (expected " #align ")", TYPE_ALIGNMENT(type))
97#else
98# define TEST_TYPE_ALIGNMENT(type, align) do { } while (0)
99#endif
100
101#define TEST_TYPE_SIZE(type, size) \
102 ok(sizeof(type) == size, "sizeof(" #type ") == %ld (expected " #size ")", sizeof(type))
103
104/***********************************************************************
105 * Test macros
106 */
107
108#define TEST_FIELD(type, field_type, field_name, field_offset, field_size, field_align) \
109 TEST_TYPE_SIZE(field_type, field_size); \
110 TEST_FIELD_ALIGNMENT(type, field_name, field_align); \
111 TEST_FIELD_OFFSET(type, field_name, field_offset); \
112
113#define TEST_TYPE(type, size, align) \
114 TEST_TYPE_ALIGNMENT(type, align); \
115 TEST_TYPE_SIZE(type, size)
116
117#define TEST_TYPE_POINTER(type, size, align) \
118 TEST__TYPE_ALIGNMENT(*(type)0, align); \
119 TEST_TYPE_SIZE(*(type)0, size)
120
121#define TEST_TYPE_SIGNED(type) \
122 ok((type) -1 < 0, "(" #type ") -1 < 0");
123
124#define TEST_TYPE_UNSIGNED(type) \
125 ok((type) -1 > 0, "(" #type ") -1 > 0");
126
127static void test_pack_DWORD32(void)
128{
129 /* DWORD32 */
130 TEST_TYPE(DWORD32, 4, 4);
131 TEST_TYPE_UNSIGNED(DWORD32);
132}
133
134static void test_pack_DWORD_PTR(void)
135{
136 /* DWORD_PTR */
137 TEST_TYPE(DWORD_PTR, 4, 4);
138}
139
140static void test_pack_HALF_PTR(void)
141{
142 /* HALF_PTR */
143 TEST_TYPE(HALF_PTR, 2, 2);
144 TEST_TYPE_SIGNED(HALF_PTR);
145}
146
147static void test_pack_INT32(void)
148{
149 /* INT32 */
150 TEST_TYPE(INT32, 4, 4);
151 TEST_TYPE_SIGNED(INT32);
152}
153
154static void test_pack_INT_PTR(void)
155{
156 /* INT_PTR */
157 TEST_TYPE(INT_PTR, 4, 4);
158 TEST_TYPE_SIGNED(INT_PTR);
159}
160
161static void test_pack_LONG32(void)
162{
163 /* LONG32 */
164 TEST_TYPE(LONG32, 4, 4);
165 TEST_TYPE_SIGNED(LONG32);
166}
167
168static void test_pack_LONG_PTR(void)
169{
170 /* LONG_PTR */
171 TEST_TYPE(LONG_PTR, 4, 4);
172 TEST_TYPE_SIGNED(LONG_PTR);
173}
174
175static void test_pack_SIZE_T(void)
176{
177 /* SIZE_T */
178 TEST_TYPE(SIZE_T, 4, 4);
179}
180
181static void test_pack_SSIZE_T(void)
182{
183 /* SSIZE_T */
184 TEST_TYPE(SSIZE_T, 4, 4);
185}
186
187static void test_pack_UHALF_PTR(void)
188{
189 /* UHALF_PTR */
190 TEST_TYPE(UHALF_PTR, 2, 2);
191 TEST_TYPE_UNSIGNED(UHALF_PTR);
192}
193
194static void test_pack_UINT32(void)
195{
196 /* UINT32 */
197 TEST_TYPE(UINT32, 4, 4);
198 TEST_TYPE_UNSIGNED(UINT32);
199}
200
201static void test_pack_UINT_PTR(void)
202{
203 /* UINT_PTR */
204 TEST_TYPE(UINT_PTR, 4, 4);
205 TEST_TYPE_UNSIGNED(UINT_PTR);
206}
207
208static void test_pack_ULONG32(void)
209{
210 /* ULONG32 */
211 TEST_TYPE(ULONG32, 4, 4);
212 TEST_TYPE_UNSIGNED(ULONG32);
213}
214
215static void test_pack_ULONG_PTR(void)
216{
217 /* ULONG_PTR */
218 TEST_TYPE(ULONG_PTR, 4, 4);
219 TEST_TYPE_UNSIGNED(ULONG_PTR);
220}
221
222static void test_pack_ACCESS_ALLOWED_ACE(void)
223{
224 /* ACCESS_ALLOWED_ACE (pack 4) */
225 TEST_TYPE(ACCESS_ALLOWED_ACE, 12, 4);
226 TEST_FIELD(ACCESS_ALLOWED_ACE, ACE_HEADER, Header, 0, 4, 2);
227 TEST_FIELD(ACCESS_ALLOWED_ACE, DWORD, Mask, 4, 4, 4);
228 TEST_FIELD(ACCESS_ALLOWED_ACE, DWORD, SidStart, 8, 4, 4);
229}
230
231static void test_pack_ACCESS_DENIED_ACE(void)
232{
233 /* ACCESS_DENIED_ACE (pack 4) */
234 TEST_TYPE(ACCESS_DENIED_ACE, 12, 4);
235 TEST_FIELD(ACCESS_DENIED_ACE, ACE_HEADER, Header, 0, 4, 2);
236 TEST_FIELD(ACCESS_DENIED_ACE, DWORD, Mask, 4, 4, 4);
237 TEST_FIELD(ACCESS_DENIED_ACE, DWORD, SidStart, 8, 4, 4);
238}
239
240static void test_pack_ACCESS_MASK(void)
241{
242 /* ACCESS_MASK */
243 TEST_TYPE(ACCESS_MASK, 4, 4);
244}
245
246static void test_pack_ACE_HEADER(void)
247{
248 /* ACE_HEADER (pack 4) */
249 TEST_TYPE(ACE_HEADER, 4, 2);
250 TEST_FIELD(ACE_HEADER, BYTE, AceType, 0, 1, 1);
251 TEST_FIELD(ACE_HEADER, BYTE, AceFlags, 1, 1, 1);
252 TEST_FIELD(ACE_HEADER, WORD, AceSize, 2, 2, 2);
253}
254
255static void test_pack_ACL(void)
256{
257 /* ACL (pack 4) */
258 TEST_TYPE(ACL, 8, 2);
259 TEST_FIELD(ACL, BYTE, AclRevision, 0, 1, 1);
260 TEST_FIELD(ACL, BYTE, Sbz1, 1, 1, 1);
261 TEST_FIELD(ACL, WORD, AclSize, 2, 2, 2);
262 TEST_FIELD(ACL, WORD, AceCount, 4, 2, 2);
263 TEST_FIELD(ACL, WORD, Sbz2, 6, 2, 2);
264}
265
266static void test_pack_BOOL(void)
267{
268 /* BOOL */
269 TEST_TYPE(BOOL, 4, 4);
270 TEST_TYPE_SIGNED(BOOL);
271}
272
273static void test_pack_BOOLEAN(void)
274{
275 /* BOOLEAN */
276 TEST_TYPE(BOOLEAN, 1, 1);
277}
278
279static void test_pack_BYTE(void)
280{
281 /* BYTE */
282 TEST_TYPE(BYTE, 1, 1);
283 TEST_TYPE_UNSIGNED(BYTE);
284}
285
286static void test_pack_CCHAR(void)
287{
288 /* CCHAR */
289 TEST_TYPE(CCHAR, 1, 1);
290 TEST_TYPE_SIGNED(CCHAR);
291}
292
293static void test_pack_CHAR(void)
294{
295 /* CHAR */
296 TEST_TYPE(CHAR, 1, 1);
297 TEST_TYPE_SIGNED(CHAR);
298}
299
300static void test_pack_DWORD(void)
301{
302 /* DWORD */
303 TEST_TYPE(DWORD, 4, 4);
304 TEST_TYPE_UNSIGNED(DWORD);
305}
306
307static void test_pack_EXCEPTION_POINTERS(void)
308{
309 /* EXCEPTION_POINTERS (pack 4) */
310 TEST_TYPE(EXCEPTION_POINTERS, 8, 4);
311 TEST_FIELD(EXCEPTION_POINTERS, PEXCEPTION_RECORD, ExceptionRecord, 0, 4, 4);
312 TEST_FIELD(EXCEPTION_POINTERS, PCONTEXT, ContextRecord, 4, 4, 4);
313}
314
315static void test_pack_EXCEPTION_RECORD(void)
316{
317 /* EXCEPTION_RECORD (pack 4) */
318 TEST_TYPE(EXCEPTION_RECORD, 80, 4);
319 TEST_FIELD(EXCEPTION_RECORD, DWORD, ExceptionCode, 0, 4, 4);
320 TEST_FIELD(EXCEPTION_RECORD, DWORD, ExceptionFlags, 4, 4, 4);
321 TEST_FIELD(EXCEPTION_RECORD, struct __EXCEPTION_RECORD *, ExceptionRecord, 8, 4, 4);
322 TEST_FIELD(EXCEPTION_RECORD, LPVOID, ExceptionAddress, 12, 4, 4);
323 TEST_FIELD(EXCEPTION_RECORD, DWORD, NumberParameters, 16, 4, 4);
324 TEST_FIELD(EXCEPTION_RECORD, DWORD[EXCEPTION_MAXIMUM_PARAMETERS], ExceptionInformation, 20, 60, 4);
325}
326
327static void test_pack_EXECUTION_STATE(void)
328{
329 /* EXECUTION_STATE */
330 TEST_TYPE(EXECUTION_STATE, 4, 4);
331}
332
333static void test_pack_FLOAT(void)
334{
335 /* FLOAT */
336 TEST_TYPE(FLOAT, 4, 4);
337}
338
339static void test_pack_FLOATING_SAVE_AREA(void)
340{
341 /* FLOATING_SAVE_AREA (pack 4) */
342 TEST_TYPE(FLOATING_SAVE_AREA, 112, 4);
343 TEST_FIELD(FLOATING_SAVE_AREA, DWORD, ControlWord, 0, 4, 4);
344 TEST_FIELD(FLOATING_SAVE_AREA, DWORD, StatusWord, 4, 4, 4);
345 TEST_FIELD(FLOATING_SAVE_AREA, DWORD, TagWord, 8, 4, 4);
346 TEST_FIELD(FLOATING_SAVE_AREA, DWORD, ErrorOffset, 12, 4, 4);
347 TEST_FIELD(FLOATING_SAVE_AREA, DWORD, ErrorSelector, 16, 4, 4);
348 TEST_FIELD(FLOATING_SAVE_AREA, DWORD, DataOffset, 20, 4, 4);
349 TEST_FIELD(FLOATING_SAVE_AREA, DWORD, DataSelector, 24, 4, 4);
350 TEST_FIELD(FLOATING_SAVE_AREA, BYTE[SIZE_OF_80387_REGISTERS], RegisterArea, 28, 80, 1);
351 TEST_FIELD(FLOATING_SAVE_AREA, DWORD, Cr0NpxState, 108, 4, 4);
352}
353
354static void test_pack_FPO_DATA(void)
355{
356 /* FPO_DATA (pack 4) */
357 TEST_FIELD(FPO_DATA, DWORD, ulOffStart, 0, 4, 4);
358 TEST_FIELD(FPO_DATA, DWORD, cbProcSize, 4, 4, 4);
359 TEST_FIELD(FPO_DATA, DWORD, cdwLocals, 8, 4, 4);
360 TEST_FIELD(FPO_DATA, WORD, cdwParams, 12, 2, 2);
361}
362
363static void test_pack_GENERIC_MAPPING(void)
364{
365 /* GENERIC_MAPPING (pack 4) */
366 TEST_TYPE(GENERIC_MAPPING, 16, 4);
367 TEST_FIELD(GENERIC_MAPPING, ACCESS_MASK, GenericRead, 0, 4, 4);
368 TEST_FIELD(GENERIC_MAPPING, ACCESS_MASK, GenericWrite, 4, 4, 4);
369 TEST_FIELD(GENERIC_MAPPING, ACCESS_MASK, GenericExecute, 8, 4, 4);
370 TEST_FIELD(GENERIC_MAPPING, ACCESS_MASK, GenericAll, 12, 4, 4);
371}
372
373static void test_pack_HANDLE(void)
374{
375 /* HANDLE */
376 TEST_TYPE(HANDLE, 4, 4);
377}
378
379static void test_pack_HRESULT(void)
380{
381 /* HRESULT */
382 TEST_TYPE(HRESULT, 4, 4);
383}
384
385static void test_pack_IMAGE_ARCHIVE_MEMBER_HEADER(void)
386{
387 /* IMAGE_ARCHIVE_MEMBER_HEADER (pack 4) */
388 TEST_TYPE(IMAGE_ARCHIVE_MEMBER_HEADER, 60, 1);
389 TEST_FIELD(IMAGE_ARCHIVE_MEMBER_HEADER, BYTE[16], Name, 0, 16, 1);
390 TEST_FIELD(IMAGE_ARCHIVE_MEMBER_HEADER, BYTE[12], Date, 16, 12, 1);
391 TEST_FIELD(IMAGE_ARCHIVE_MEMBER_HEADER, BYTE[6], UserID, 28, 6, 1);
392 TEST_FIELD(IMAGE_ARCHIVE_MEMBER_HEADER, BYTE[6], GroupID, 34, 6, 1);
393 TEST_FIELD(IMAGE_ARCHIVE_MEMBER_HEADER, BYTE[8], Mode, 40, 8, 1);
394 TEST_FIELD(IMAGE_ARCHIVE_MEMBER_HEADER, BYTE[10], Size, 48, 10, 1);
395 TEST_FIELD(IMAGE_ARCHIVE_MEMBER_HEADER, BYTE[2], EndHeader, 58, 2, 1);
396}
397
398static void test_pack_IMAGE_AUX_SYMBOL(void)
399{
400 /* IMAGE_AUX_SYMBOL (pack 2) */
401}
402
403static void test_pack_IMAGE_BASE_RELOCATION(void)
404{
405 /* IMAGE_BASE_RELOCATION (pack 4) */
406 TEST_TYPE(IMAGE_BASE_RELOCATION, 8, 4);
407 TEST_FIELD(IMAGE_BASE_RELOCATION, DWORD, VirtualAddress, 0, 4, 4);
408 TEST_FIELD(IMAGE_BASE_RELOCATION, DWORD, SizeOfBlock, 4, 4, 4);
409}
410
411static void test_pack_IMAGE_BOUND_FORWARDER_REF(void)
412{
413 /* IMAGE_BOUND_FORWARDER_REF (pack 4) */
414 TEST_TYPE(IMAGE_BOUND_FORWARDER_REF, 8, 4);
415 TEST_FIELD(IMAGE_BOUND_FORWARDER_REF, DWORD, TimeDateStamp, 0, 4, 4);
416 TEST_FIELD(IMAGE_BOUND_FORWARDER_REF, WORD, OffsetModuleName, 4, 2, 2);
417 TEST_FIELD(IMAGE_BOUND_FORWARDER_REF, WORD, Reserved, 6, 2, 2);
418}
419
420static void test_pack_IMAGE_BOUND_IMPORT_DESCRIPTOR(void)
421{
422 /* IMAGE_BOUND_IMPORT_DESCRIPTOR (pack 4) */
423 TEST_TYPE(IMAGE_BOUND_IMPORT_DESCRIPTOR, 8, 4);
424 TEST_FIELD(IMAGE_BOUND_IMPORT_DESCRIPTOR, DWORD, TimeDateStamp, 0, 4, 4);
425 TEST_FIELD(IMAGE_BOUND_IMPORT_DESCRIPTOR, WORD, OffsetModuleName, 4, 2, 2);
426 TEST_FIELD(IMAGE_BOUND_IMPORT_DESCRIPTOR, WORD, NumberOfModuleForwarderRefs, 6, 2, 2);
427}
428
429static void test_pack_IMAGE_COFF_SYMBOLS_HEADER(void)
430{
431 /* IMAGE_COFF_SYMBOLS_HEADER (pack 4) */
432 TEST_TYPE(IMAGE_COFF_SYMBOLS_HEADER, 32, 4);
433 TEST_FIELD(IMAGE_COFF_SYMBOLS_HEADER, DWORD, NumberOfSymbols, 0, 4, 4);
434 TEST_FIELD(IMAGE_COFF_SYMBOLS_HEADER, DWORD, LvaToFirstSymbol, 4, 4, 4);
435 TEST_FIELD(IMAGE_COFF_SYMBOLS_HEADER, DWORD, NumberOfLinenumbers, 8, 4, 4);
436 TEST_FIELD(IMAGE_COFF_SYMBOLS_HEADER, DWORD, LvaToFirstLinenumber, 12, 4, 4);
437 TEST_FIELD(IMAGE_COFF_SYMBOLS_HEADER, DWORD, RvaToFirstByteOfCode, 16, 4, 4);
438 TEST_FIELD(IMAGE_COFF_SYMBOLS_HEADER, DWORD, RvaToLastByteOfCode, 20, 4, 4);
439 TEST_FIELD(IMAGE_COFF_SYMBOLS_HEADER, DWORD, RvaToFirstByteOfData, 24, 4, 4);
440 TEST_FIELD(IMAGE_COFF_SYMBOLS_HEADER, DWORD, RvaToLastByteOfData, 28, 4, 4);
441}
442
443static void test_pack_IMAGE_DATA_DIRECTORY(void)
444{
445 /* IMAGE_DATA_DIRECTORY (pack 4) */
446 TEST_TYPE(IMAGE_DATA_DIRECTORY, 8, 4);
447 TEST_FIELD(IMAGE_DATA_DIRECTORY, DWORD, VirtualAddress, 0, 4, 4);
448 TEST_FIELD(IMAGE_DATA_DIRECTORY, DWORD, Size, 4, 4, 4);
449}
450
451static void test_pack_IMAGE_DEBUG_DIRECTORY(void)
452{
453 /* IMAGE_DEBUG_DIRECTORY (pack 4) */
454 TEST_TYPE(IMAGE_DEBUG_DIRECTORY, 28, 4);
455 TEST_FIELD(IMAGE_DEBUG_DIRECTORY, DWORD, Characteristics, 0, 4, 4);
456 TEST_FIELD(IMAGE_DEBUG_DIRECTORY, DWORD, TimeDateStamp, 4, 4, 4);
457 TEST_FIELD(IMAGE_DEBUG_DIRECTORY, WORD, MajorVersion, 8, 2, 2);
458 TEST_FIELD(IMAGE_DEBUG_DIRECTORY, WORD, MinorVersion, 10, 2, 2);
459 TEST_FIELD(IMAGE_DEBUG_DIRECTORY, DWORD, Type, 12, 4, 4);
460 TEST_FIELD(IMAGE_DEBUG_DIRECTORY, DWORD, SizeOfData, 16, 4, 4);
461 TEST_FIELD(IMAGE_DEBUG_DIRECTORY, DWORD, AddressOfRawData, 20, 4, 4);
462 TEST_FIELD(IMAGE_DEBUG_DIRECTORY, DWORD, PointerToRawData, 24, 4, 4);
463}
464
465static void test_pack_IMAGE_DEBUG_MISC(void)
466{
467 /* IMAGE_DEBUG_MISC (pack 4) */
468 TEST_TYPE(IMAGE_DEBUG_MISC, 16, 4);
469 TEST_FIELD(IMAGE_DEBUG_MISC, DWORD, DataType, 0, 4, 4);
470 TEST_FIELD(IMAGE_DEBUG_MISC, DWORD, Length, 4, 4, 4);
471 TEST_FIELD(IMAGE_DEBUG_MISC, BYTE, Unicode, 8, 1, 1);
472 TEST_FIELD(IMAGE_DEBUG_MISC, BYTE[ 3 ], Reserved, 9, 3, 1);
473 TEST_FIELD(IMAGE_DEBUG_MISC, BYTE[ 1 ], Data, 12, 1, 1);
474}
475
476static void test_pack_IMAGE_DOS_HEADER(void)
477{
478 /* IMAGE_DOS_HEADER (pack 2) */
479 TEST_TYPE(IMAGE_DOS_HEADER, 64, 2);
480 TEST_FIELD(IMAGE_DOS_HEADER, WORD, e_magic, 0, 2, 2);
481 TEST_FIELD(IMAGE_DOS_HEADER, WORD, e_cblp, 2, 2, 2);
482 TEST_FIELD(IMAGE_DOS_HEADER, WORD, e_cp, 4, 2, 2);
483 TEST_FIELD(IMAGE_DOS_HEADER, WORD, e_crlc, 6, 2, 2);
484 TEST_FIELD(IMAGE_DOS_HEADER, WORD, e_cparhdr, 8, 2, 2);
485 TEST_FIELD(IMAGE_DOS_HEADER, WORD, e_minalloc, 10, 2, 2);
486 TEST_FIELD(IMAGE_DOS_HEADER, WORD, e_maxalloc, 12, 2, 2);
487 TEST_FIELD(IMAGE_DOS_HEADER, WORD, e_ss, 14, 2, 2);
488 TEST_FIELD(IMAGE_DOS_HEADER, WORD, e_sp, 16, 2, 2);
489 TEST_FIELD(IMAGE_DOS_HEADER, WORD, e_csum, 18, 2, 2);
490 TEST_FIELD(IMAGE_DOS_HEADER, WORD, e_ip, 20, 2, 2);
491 TEST_FIELD(IMAGE_DOS_HEADER, WORD, e_cs, 22, 2, 2);
492 TEST_FIELD(IMAGE_DOS_HEADER, WORD, e_lfarlc, 24, 2, 2);
493 TEST_FIELD(IMAGE_DOS_HEADER, WORD, e_ovno, 26, 2, 2);
494 TEST_FIELD(IMAGE_DOS_HEADER, WORD[4], e_res, 28, 8, 2);
495 TEST_FIELD(IMAGE_DOS_HEADER, WORD, e_oemid, 36, 2, 2);
496 TEST_FIELD(IMAGE_DOS_HEADER, WORD, e_oeminfo, 38, 2, 2);
497 TEST_FIELD(IMAGE_DOS_HEADER, WORD[10], e_res2, 40, 20, 2);
498 TEST_FIELD(IMAGE_DOS_HEADER, DWORD, e_lfanew, 60, 4, 2);
499}
500
501static void test_pack_IMAGE_EXPORT_DIRECTORY(void)
502{
503 /* IMAGE_EXPORT_DIRECTORY (pack 4) */
504 TEST_TYPE(IMAGE_EXPORT_DIRECTORY, 40, 4);
505 TEST_FIELD(IMAGE_EXPORT_DIRECTORY, DWORD, Characteristics, 0, 4, 4);
506 TEST_FIELD(IMAGE_EXPORT_DIRECTORY, DWORD, TimeDateStamp, 4, 4, 4);
507 TEST_FIELD(IMAGE_EXPORT_DIRECTORY, WORD, MajorVersion, 8, 2, 2);
508 TEST_FIELD(IMAGE_EXPORT_DIRECTORY, WORD, MinorVersion, 10, 2, 2);
509 TEST_FIELD(IMAGE_EXPORT_DIRECTORY, DWORD, Name, 12, 4, 4);
510 TEST_FIELD(IMAGE_EXPORT_DIRECTORY, DWORD, Base, 16, 4, 4);
511 TEST_FIELD(IMAGE_EXPORT_DIRECTORY, DWORD, NumberOfFunctions, 20, 4, 4);
512 TEST_FIELD(IMAGE_EXPORT_DIRECTORY, DWORD, NumberOfNames, 24, 4, 4);
513 TEST_FIELD(IMAGE_EXPORT_DIRECTORY, DWORD, AddressOfFunctions, 28, 4, 4);
514 TEST_FIELD(IMAGE_EXPORT_DIRECTORY, DWORD, AddressOfNames, 32, 4, 4);
515 TEST_FIELD(IMAGE_EXPORT_DIRECTORY, DWORD, AddressOfNameOrdinals, 36, 4, 4);
516}
517
518static void test_pack_IMAGE_FILE_HEADER(void)
519{
520 /* IMAGE_FILE_HEADER (pack 4) */
521 TEST_TYPE(IMAGE_FILE_HEADER, 20, 4);
522 TEST_FIELD(IMAGE_FILE_HEADER, WORD, Machine, 0, 2, 2);
523 TEST_FIELD(IMAGE_FILE_HEADER, WORD, NumberOfSections, 2, 2, 2);
524 TEST_FIELD(IMAGE_FILE_HEADER, DWORD, TimeDateStamp, 4, 4, 4);
525 TEST_FIELD(IMAGE_FILE_HEADER, DWORD, PointerToSymbolTable, 8, 4, 4);
526 TEST_FIELD(IMAGE_FILE_HEADER, DWORD, NumberOfSymbols, 12, 4, 4);
527 TEST_FIELD(IMAGE_FILE_HEADER, WORD, SizeOfOptionalHeader, 16, 2, 2);
528 TEST_FIELD(IMAGE_FILE_HEADER, WORD, Characteristics, 18, 2, 2);
529}
530
531static void test_pack_IMAGE_FUNCTION_ENTRY(void)
532{
533 /* IMAGE_FUNCTION_ENTRY (pack 4) */
534 TEST_TYPE(IMAGE_FUNCTION_ENTRY, 12, 4);
535 TEST_FIELD(IMAGE_FUNCTION_ENTRY, DWORD, StartingAddress, 0, 4, 4);
536 TEST_FIELD(IMAGE_FUNCTION_ENTRY, DWORD, EndingAddress, 4, 4, 4);
537 TEST_FIELD(IMAGE_FUNCTION_ENTRY, DWORD, EndOfPrologue, 8, 4, 4);
538}
539
540static void test_pack_IMAGE_IMPORT_BY_NAME(void)
541{
542 /* IMAGE_IMPORT_BY_NAME (pack 4) */
543 TEST_TYPE(IMAGE_IMPORT_BY_NAME, 4, 2);
544 TEST_FIELD(IMAGE_IMPORT_BY_NAME, WORD, Hint, 0, 2, 2);
545 TEST_FIELD(IMAGE_IMPORT_BY_NAME, BYTE[1], Name, 2, 1, 1);
546}
547
548static void test_pack_IMAGE_LOAD_CONFIG_DIRECTORY(void)
549{
550 /* IMAGE_LOAD_CONFIG_DIRECTORY (pack 4) */
551 TEST_TYPE(IMAGE_LOAD_CONFIG_DIRECTORY, 64, 4);
552 TEST_FIELD(IMAGE_LOAD_CONFIG_DIRECTORY, DWORD, Characteristics, 0, 4, 4);
553 TEST_FIELD(IMAGE_LOAD_CONFIG_DIRECTORY, DWORD, TimeDateStamp, 4, 4, 4);
554 TEST_FIELD(IMAGE_LOAD_CONFIG_DIRECTORY, WORD, MajorVersion, 8, 2, 2);
555 TEST_FIELD(IMAGE_LOAD_CONFIG_DIRECTORY, WORD, MinorVersion, 10, 2, 2);
556 TEST_FIELD(IMAGE_LOAD_CONFIG_DIRECTORY, DWORD, GlobalFlagsClear, 12, 4, 4);
557 TEST_FIELD(IMAGE_LOAD_CONFIG_DIRECTORY, DWORD, GlobalFlagsSet, 16, 4, 4);
558 TEST_FIELD(IMAGE_LOAD_CONFIG_DIRECTORY, DWORD, CriticalSectionDefaultTimeout, 20, 4, 4);
559 TEST_FIELD(IMAGE_LOAD_CONFIG_DIRECTORY, DWORD, DeCommitFreeBlockThreshold, 24, 4, 4);
560 TEST_FIELD(IMAGE_LOAD_CONFIG_DIRECTORY, DWORD, DeCommitTotalFreeThreshold, 28, 4, 4);
561 TEST_FIELD(IMAGE_LOAD_CONFIG_DIRECTORY, PVOID, LockPrefixTable, 32, 4, 4);
562 TEST_FIELD(IMAGE_LOAD_CONFIG_DIRECTORY, DWORD, MaximumAllocationSize, 36, 4, 4);
563 TEST_FIELD(IMAGE_LOAD_CONFIG_DIRECTORY, DWORD, VirtualMemoryThreshold, 40, 4, 4);
564 TEST_FIELD(IMAGE_LOAD_CONFIG_DIRECTORY, DWORD, ProcessHeapFlags, 44, 4, 4);
565 TEST_FIELD(IMAGE_LOAD_CONFIG_DIRECTORY, DWORD, ProcessAffinityMask, 48, 4, 4);
566 TEST_FIELD(IMAGE_LOAD_CONFIG_DIRECTORY, WORD, CSDVersion, 52, 2, 2);
567 TEST_FIELD(IMAGE_LOAD_CONFIG_DIRECTORY, WORD, Reserved1, 54, 2, 2);
568 TEST_FIELD(IMAGE_LOAD_CONFIG_DIRECTORY, PVOID, EditList, 56, 4, 4);
569 TEST_FIELD(IMAGE_LOAD_CONFIG_DIRECTORY, DWORD[1], Reserved, 60, 4, 4);
570}
571
572static void test_pack_IMAGE_NT_HEADERS(void)
573{
574 /* IMAGE_NT_HEADERS (pack 4) */
575 TEST_TYPE(IMAGE_NT_HEADERS, 248, 4);
576 TEST_FIELD(IMAGE_NT_HEADERS, DWORD, Signature, 0, 4, 4);
577 TEST_FIELD(IMAGE_NT_HEADERS, IMAGE_FILE_HEADER, FileHeader, 4, 20, 4);
578 TEST_FIELD(IMAGE_NT_HEADERS, IMAGE_OPTIONAL_HEADER, OptionalHeader, 24, 224, 4);
579}
580
581static void test_pack_IMAGE_OPTIONAL_HEADER(void)
582{
583 /* IMAGE_OPTIONAL_HEADER (pack 4) */
584 TEST_TYPE(IMAGE_OPTIONAL_HEADER, 224, 4);
585 TEST_FIELD(IMAGE_OPTIONAL_HEADER, WORD, Magic, 0, 2, 2);
586 TEST_FIELD(IMAGE_OPTIONAL_HEADER, BYTE, MajorLinkerVersion, 2, 1, 1);
587 TEST_FIELD(IMAGE_OPTIONAL_HEADER, BYTE, MinorLinkerVersion, 3, 1, 1);
588 TEST_FIELD(IMAGE_OPTIONAL_HEADER, DWORD, SizeOfCode, 4, 4, 4);
589 TEST_FIELD(IMAGE_OPTIONAL_HEADER, DWORD, SizeOfInitializedData, 8, 4, 4);
590 TEST_FIELD(IMAGE_OPTIONAL_HEADER, DWORD, SizeOfUninitializedData, 12, 4, 4);
591 TEST_FIELD(IMAGE_OPTIONAL_HEADER, DWORD, AddressOfEntryPoint, 16, 4, 4);
592 TEST_FIELD(IMAGE_OPTIONAL_HEADER, DWORD, BaseOfCode, 20, 4, 4);
593 TEST_FIELD(IMAGE_OPTIONAL_HEADER, DWORD, BaseOfData, 24, 4, 4);
594 TEST_FIELD(IMAGE_OPTIONAL_HEADER, DWORD, ImageBase, 28, 4, 4);
595 TEST_FIELD(IMAGE_OPTIONAL_HEADER, DWORD, SectionAlignment, 32, 4, 4);
596 TEST_FIELD(IMAGE_OPTIONAL_HEADER, DWORD, FileAlignment, 36, 4, 4);
597 TEST_FIELD(IMAGE_OPTIONAL_HEADER, WORD, MajorOperatingSystemVersion, 40, 2, 2);
598 TEST_FIELD(IMAGE_OPTIONAL_HEADER, WORD, MinorOperatingSystemVersion, 42, 2, 2);
599 TEST_FIELD(IMAGE_OPTIONAL_HEADER, WORD, MajorImageVersion, 44, 2, 2);
600 TEST_FIELD(IMAGE_OPTIONAL_HEADER, WORD, MinorImageVersion, 46, 2, 2);
601 TEST_FIELD(IMAGE_OPTIONAL_HEADER, WORD, MajorSubsystemVersion, 48, 2, 2);
602 TEST_FIELD(IMAGE_OPTIONAL_HEADER, WORD, MinorSubsystemVersion, 50, 2, 2);
603 TEST_FIELD(IMAGE_OPTIONAL_HEADER, DWORD, Win32VersionValue, 52, 4, 4);
604 TEST_FIELD(IMAGE_OPTIONAL_HEADER, DWORD, SizeOfImage, 56, 4, 4);
605 TEST_FIELD(IMAGE_OPTIONAL_HEADER, DWORD, SizeOfHeaders, 60, 4, 4);
606 TEST_FIELD(IMAGE_OPTIONAL_HEADER, DWORD, CheckSum, 64, 4, 4);
607 TEST_FIELD(IMAGE_OPTIONAL_HEADER, WORD, Subsystem, 68, 2, 2);
608 TEST_FIELD(IMAGE_OPTIONAL_HEADER, WORD, DllCharacteristics, 70, 2, 2);
609 TEST_FIELD(IMAGE_OPTIONAL_HEADER, DWORD, SizeOfStackReserve, 72, 4, 4);
610 TEST_FIELD(IMAGE_OPTIONAL_HEADER, DWORD, SizeOfStackCommit, 76, 4, 4);
611 TEST_FIELD(IMAGE_OPTIONAL_HEADER, DWORD, SizeOfHeapReserve, 80, 4, 4);
612 TEST_FIELD(IMAGE_OPTIONAL_HEADER, DWORD, SizeOfHeapCommit, 84, 4, 4);
613 TEST_FIELD(IMAGE_OPTIONAL_HEADER, DWORD, LoaderFlags, 88, 4, 4);
614 TEST_FIELD(IMAGE_OPTIONAL_HEADER, DWORD, NumberOfRvaAndSizes, 92, 4, 4);
615 TEST_FIELD(IMAGE_OPTIONAL_HEADER, IMAGE_DATA_DIRECTORY[IMAGE_NUMBEROF_DIRECTORY_ENTRIES], DataDirectory, 96, 128, 4);
616}
617
618static void test_pack_IMAGE_OS2_HEADER(void)
619{
620 /* IMAGE_OS2_HEADER (pack 2) */
621 TEST_TYPE(IMAGE_OS2_HEADER, 64, 2);
622 TEST_FIELD(IMAGE_OS2_HEADER, WORD, ne_magic, 0, 2, 2);
623 TEST_FIELD(IMAGE_OS2_HEADER, BYTE, ne_ver, 2, 1, 1);
624 TEST_FIELD(IMAGE_OS2_HEADER, BYTE, ne_rev, 3, 1, 1);
625 TEST_FIELD(IMAGE_OS2_HEADER, WORD, ne_enttab, 4, 2, 2);
626 TEST_FIELD(IMAGE_OS2_HEADER, WORD, ne_cbenttab, 6, 2, 2);
627 TEST_FIELD(IMAGE_OS2_HEADER, LONG, ne_crc, 8, 4, 2);
628 TEST_FIELD(IMAGE_OS2_HEADER, WORD, ne_flags, 12, 2, 2);
629 TEST_FIELD(IMAGE_OS2_HEADER, WORD, ne_autodata, 14, 2, 2);
630 TEST_FIELD(IMAGE_OS2_HEADER, WORD, ne_heap, 16, 2, 2);
631 TEST_FIELD(IMAGE_OS2_HEADER, WORD, ne_stack, 18, 2, 2);
632 TEST_FIELD(IMAGE_OS2_HEADER, DWORD, ne_csip, 20, 4, 2);
633 TEST_FIELD(IMAGE_OS2_HEADER, DWORD, ne_sssp, 24, 4, 2);
634 TEST_FIELD(IMAGE_OS2_HEADER, WORD, ne_cseg, 28, 2, 2);
635 TEST_FIELD(IMAGE_OS2_HEADER, WORD, ne_cmod, 30, 2, 2);
636 TEST_FIELD(IMAGE_OS2_HEADER, WORD, ne_cbnrestab, 32, 2, 2);
637 TEST_FIELD(IMAGE_OS2_HEADER, WORD, ne_segtab, 34, 2, 2);
638 TEST_FIELD(IMAGE_OS2_HEADER, WORD, ne_rsrctab, 36, 2, 2);
639 TEST_FIELD(IMAGE_OS2_HEADER, WORD, ne_restab, 38, 2, 2);
640 TEST_FIELD(IMAGE_OS2_HEADER, WORD, ne_modtab, 40, 2, 2);
641 TEST_FIELD(IMAGE_OS2_HEADER, WORD, ne_imptab, 42, 2, 2);
642 TEST_FIELD(IMAGE_OS2_HEADER, DWORD, ne_nrestab, 44, 4, 2);
643 TEST_FIELD(IMAGE_OS2_HEADER, WORD, ne_cmovent, 48, 2, 2);
644 TEST_FIELD(IMAGE_OS2_HEADER, WORD, ne_align, 50, 2, 2);
645 TEST_FIELD(IMAGE_OS2_HEADER, WORD, ne_cres, 52, 2, 2);
646 TEST_FIELD(IMAGE_OS2_HEADER, BYTE, ne_exetyp, 54, 1, 1);
647 TEST_FIELD(IMAGE_OS2_HEADER, BYTE, ne_flagsothers, 55, 1, 1);
648 TEST_FIELD(IMAGE_OS2_HEADER, WORD, ne_pretthunks, 56, 2, 2);
649 TEST_FIELD(IMAGE_OS2_HEADER, WORD, ne_psegrefbytes, 58, 2, 2);
650 TEST_FIELD(IMAGE_OS2_HEADER, WORD, ne_swaparea, 60, 2, 2);
651 TEST_FIELD(IMAGE_OS2_HEADER, WORD, ne_expver, 62, 2, 2);
652}
653
654static void test_pack_IMAGE_RESOURCE_DATA_ENTRY(void)
655{
656 /* IMAGE_RESOURCE_DATA_ENTRY (pack 4) */
657 TEST_FIELD(IMAGE_RESOURCE_DATA_ENTRY, DWORD, OffsetToData, 0, 4, 4);
658 TEST_FIELD(IMAGE_RESOURCE_DATA_ENTRY, DWORD, Size, 4, 4, 4);
659 TEST_FIELD(IMAGE_RESOURCE_DATA_ENTRY, DWORD, CodePage, 8, 4, 4);
660}
661
662static void test_pack_IMAGE_RESOURCE_DIRECTORY(void)
663{
664 /* IMAGE_RESOURCE_DIRECTORY (pack 4) */
665 TEST_TYPE(IMAGE_RESOURCE_DIRECTORY, 16, 4);
666 TEST_FIELD(IMAGE_RESOURCE_DIRECTORY, DWORD, Characteristics, 0, 4, 4);
667 TEST_FIELD(IMAGE_RESOURCE_DIRECTORY, DWORD, TimeDateStamp, 4, 4, 4);
668 TEST_FIELD(IMAGE_RESOURCE_DIRECTORY, WORD, MajorVersion, 8, 2, 2);
669 TEST_FIELD(IMAGE_RESOURCE_DIRECTORY, WORD, MinorVersion, 10, 2, 2);
670 TEST_FIELD(IMAGE_RESOURCE_DIRECTORY, WORD, NumberOfNamedEntries, 12, 2, 2);
671 TEST_FIELD(IMAGE_RESOURCE_DIRECTORY, WORD, NumberOfIdEntries, 14, 2, 2);
672}
673
674static void test_pack_IMAGE_RESOURCE_DIRECTORY_ENTRY(void)
675{
676 /* IMAGE_RESOURCE_DIRECTORY_ENTRY (pack 4) */
677}
678
679static void test_pack_IMAGE_RESOURCE_DIRECTORY_STRING(void)
680{
681 /* IMAGE_RESOURCE_DIRECTORY_STRING (pack 4) */
682 TEST_TYPE(IMAGE_RESOURCE_DIRECTORY_STRING, 4, 2);
683 TEST_FIELD(IMAGE_RESOURCE_DIRECTORY_STRING, WORD, Length, 0, 2, 2);
684 TEST_FIELD(IMAGE_RESOURCE_DIRECTORY_STRING, CHAR[ 1 ], NameString, 2, 1, 1);
685}
686
687static void test_pack_IMAGE_RESOURCE_DIR_STRING_U(void)
688{
689 /* IMAGE_RESOURCE_DIR_STRING_U (pack 4) */
690 TEST_TYPE(IMAGE_RESOURCE_DIR_STRING_U, 4, 2);
691 TEST_FIELD(IMAGE_RESOURCE_DIR_STRING_U, WORD, Length, 0, 2, 2);
692 TEST_FIELD(IMAGE_RESOURCE_DIR_STRING_U, WCHAR[ 1 ], NameString, 2, 2, 2);
693}
694
695static void test_pack_IMAGE_SEPARATE_DEBUG_HEADER(void)
696{
697 /* IMAGE_SEPARATE_DEBUG_HEADER (pack 4) */
698 TEST_TYPE(IMAGE_SEPARATE_DEBUG_HEADER, 48, 4);
699 TEST_FIELD(IMAGE_SEPARATE_DEBUG_HEADER, WORD, Signature, 0, 2, 2);
700 TEST_FIELD(IMAGE_SEPARATE_DEBUG_HEADER, WORD, Flags, 2, 2, 2);
701 TEST_FIELD(IMAGE_SEPARATE_DEBUG_HEADER, WORD, Machine, 4, 2, 2);
702 TEST_FIELD(IMAGE_SEPARATE_DEBUG_HEADER, WORD, Characteristics, 6, 2, 2);
703 TEST_FIELD(IMAGE_SEPARATE_DEBUG_HEADER, DWORD, TimeDateStamp, 8, 4, 4);
704 TEST_FIELD(IMAGE_SEPARATE_DEBUG_HEADER, DWORD, CheckSum, 12, 4, 4);
705 TEST_FIELD(IMAGE_SEPARATE_DEBUG_HEADER, DWORD, ImageBase, 16, 4, 4);
706 TEST_FIELD(IMAGE_SEPARATE_DEBUG_HEADER, DWORD, SizeOfImage, 20, 4, 4);
707 TEST_FIELD(IMAGE_SEPARATE_DEBUG_HEADER, DWORD, NumberOfSections, 24, 4, 4);
708 TEST_FIELD(IMAGE_SEPARATE_DEBUG_HEADER, DWORD, ExportedNamesSize, 28, 4, 4);
709 TEST_FIELD(IMAGE_SEPARATE_DEBUG_HEADER, DWORD, DebugDirectorySize, 32, 4, 4);
710 TEST_FIELD(IMAGE_SEPARATE_DEBUG_HEADER, DWORD, SectionAlignment, 36, 4, 4);
711 TEST_FIELD(IMAGE_SEPARATE_DEBUG_HEADER, DWORD[ 2 ], Reserved, 40, 8, 4);
712}
713
714static void test_pack_IMAGE_THUNK_DATA(void)
715{
716 /* IMAGE_THUNK_DATA (pack 4) */
717}
718
719static void test_pack_IMAGE_TLS_DIRECTORY(void)
720{
721 /* IMAGE_TLS_DIRECTORY (pack 4) */
722 TEST_TYPE(IMAGE_TLS_DIRECTORY, 24, 4);
723 TEST_FIELD(IMAGE_TLS_DIRECTORY, DWORD, StartAddressOfRawData, 0, 4, 4);
724 TEST_FIELD(IMAGE_TLS_DIRECTORY, DWORD, EndAddressOfRawData, 4, 4, 4);
725 TEST_FIELD(IMAGE_TLS_DIRECTORY, LPDWORD, AddressOfIndex, 8, 4, 4);
726 TEST_FIELD(IMAGE_TLS_DIRECTORY, PIMAGE_TLS_CALLBACK *, AddressOfCallBacks, 12, 4, 4);
727 TEST_FIELD(IMAGE_TLS_DIRECTORY, DWORD, SizeOfZeroFill, 16, 4, 4);
728 TEST_FIELD(IMAGE_TLS_DIRECTORY, DWORD, Characteristics, 20, 4, 4);
729}
730
731static void test_pack_IMAGE_VXD_HEADER(void)
732{
733 /* IMAGE_VXD_HEADER (pack 2) */
734 TEST_TYPE(IMAGE_VXD_HEADER, 196, 2);
735 TEST_FIELD(IMAGE_VXD_HEADER, WORD, e32_magic, 0, 2, 2);
736 TEST_FIELD(IMAGE_VXD_HEADER, BYTE, e32_border, 2, 1, 1);
737 TEST_FIELD(IMAGE_VXD_HEADER, BYTE, e32_worder, 3, 1, 1);
738 TEST_FIELD(IMAGE_VXD_HEADER, DWORD, e32_level, 4, 4, 2);
739 TEST_FIELD(IMAGE_VXD_HEADER, WORD, e32_cpu, 8, 2, 2);
740 TEST_FIELD(IMAGE_VXD_HEADER, WORD, e32_os, 10, 2, 2);
741 TEST_FIELD(IMAGE_VXD_HEADER, DWORD, e32_ver, 12, 4, 2);
742 TEST_FIELD(IMAGE_VXD_HEADER, DWORD, e32_mflags, 16, 4, 2);
743 TEST_FIELD(IMAGE_VXD_HEADER, DWORD, e32_mpages, 20, 4, 2);
744 TEST_FIELD(IMAGE_VXD_HEADER, DWORD, e32_startobj, 24, 4, 2);
745 TEST_FIELD(IMAGE_VXD_HEADER, DWORD, e32_eip, 28, 4, 2);
746 TEST_FIELD(IMAGE_VXD_HEADER, DWORD, e32_stackobj, 32, 4, 2);
747 TEST_FIELD(IMAGE_VXD_HEADER, DWORD, e32_esp, 36, 4, 2);
748 TEST_FIELD(IMAGE_VXD_HEADER, DWORD, e32_pagesize, 40, 4, 2);
749 TEST_FIELD(IMAGE_VXD_HEADER, DWORD, e32_lastpagesize, 44, 4, 2);
750 TEST_FIELD(IMAGE_VXD_HEADER, DWORD, e32_fixupsize, 48, 4, 2);
751 TEST_FIELD(IMAGE_VXD_HEADER, DWORD, e32_fixupsum, 52, 4, 2);
752 TEST_FIELD(IMAGE_VXD_HEADER, DWORD, e32_ldrsize, 56, 4, 2);
753 TEST_FIELD(IMAGE_VXD_HEADER, DWORD, e32_ldrsum, 60, 4, 2);
754 TEST_FIELD(IMAGE_VXD_HEADER, DWORD, e32_objtab, 64, 4, 2);
755 TEST_FIELD(IMAGE_VXD_HEADER, DWORD, e32_objcnt, 68, 4, 2);
756 TEST_FIELD(IMAGE_VXD_HEADER, DWORD, e32_objmap, 72, 4, 2);
757 TEST_FIELD(IMAGE_VXD_HEADER, DWORD, e32_itermap, 76, 4, 2);
758 TEST_FIELD(IMAGE_VXD_HEADER, DWORD, e32_rsrctab, 80, 4, 2);
759 TEST_FIELD(IMAGE_VXD_HEADER, DWORD, e32_rsrccnt, 84, 4, 2);
760 TEST_FIELD(IMAGE_VXD_HEADER, DWORD, e32_restab, 88, 4, 2);
761 TEST_FIELD(IMAGE_VXD_HEADER, DWORD, e32_enttab, 92, 4, 2);
762 TEST_FIELD(IMAGE_VXD_HEADER, DWORD, e32_dirtab, 96, 4, 2);
763 TEST_FIELD(IMAGE_VXD_HEADER, DWORD, e32_dircnt, 100, 4, 2);
764 TEST_FIELD(IMAGE_VXD_HEADER, DWORD, e32_fpagetab, 104, 4, 2);
765 TEST_FIELD(IMAGE_VXD_HEADER, DWORD, e32_frectab, 108, 4, 2);
766 TEST_FIELD(IMAGE_VXD_HEADER, DWORD, e32_impmod, 112, 4, 2);
767 TEST_FIELD(IMAGE_VXD_HEADER, DWORD, e32_impmodcnt, 116, 4, 2);
768 TEST_FIELD(IMAGE_VXD_HEADER, DWORD, e32_impproc, 120, 4, 2);
769 TEST_FIELD(IMAGE_VXD_HEADER, DWORD, e32_pagesum, 124, 4, 2);
770 TEST_FIELD(IMAGE_VXD_HEADER, DWORD, e32_datapage, 128, 4, 2);
771 TEST_FIELD(IMAGE_VXD_HEADER, DWORD, e32_preload, 132, 4, 2);
772 TEST_FIELD(IMAGE_VXD_HEADER, DWORD, e32_nrestab, 136, 4, 2);
773 TEST_FIELD(IMAGE_VXD_HEADER, DWORD, e32_cbnrestab, 140, 4, 2);
774 TEST_FIELD(IMAGE_VXD_HEADER, DWORD, e32_nressum, 144, 4, 2);
775 TEST_FIELD(IMAGE_VXD_HEADER, DWORD, e32_autodata, 148, 4, 2);
776 TEST_FIELD(IMAGE_VXD_HEADER, DWORD, e32_debuginfo, 152, 4, 2);
777 TEST_FIELD(IMAGE_VXD_HEADER, DWORD, e32_debuglen, 156, 4, 2);
778 TEST_FIELD(IMAGE_VXD_HEADER, DWORD, e32_instpreload, 160, 4, 2);
779 TEST_FIELD(IMAGE_VXD_HEADER, DWORD, e32_instdemand, 164, 4, 2);
780 TEST_FIELD(IMAGE_VXD_HEADER, DWORD, e32_heapsize, 168, 4, 2);
781 TEST_FIELD(IMAGE_VXD_HEADER, BYTE[12], e32_res3, 172, 12, 1);
782 TEST_FIELD(IMAGE_VXD_HEADER, DWORD, e32_winresoff, 184, 4, 2);
783 TEST_FIELD(IMAGE_VXD_HEADER, DWORD, e32_winreslen, 188, 4, 2);
784 TEST_FIELD(IMAGE_VXD_HEADER, WORD, e32_devid, 192, 2, 2);
785 TEST_FIELD(IMAGE_VXD_HEADER, WORD, e32_ddkver, 194, 2, 2);
786}
787
788static void test_pack_INT(void)
789{
790 /* INT */
791 TEST_TYPE(INT, 4, 4);
792 TEST_TYPE_SIGNED(INT);
793}
794
795static void test_pack_LANGID(void)
796{
797 /* LANGID */
798 TEST_TYPE(LANGID, 2, 2);
799}
800
801static void test_pack_LCID(void)
802{
803 /* LCID */
804 TEST_TYPE(LCID, 4, 4);
805}
806
807static void test_pack_LIST_ENTRY(void)
808{
809 /* LIST_ENTRY (pack 4) */
810 TEST_TYPE(LIST_ENTRY, 8, 4);
811 TEST_FIELD(LIST_ENTRY, struct _LIST_ENTRY *, Flink, 0, 4, 4);
812 TEST_FIELD(LIST_ENTRY, struct _LIST_ENTRY *, Blink, 4, 4, 4);
813}
814
815static void test_pack_LONG(void)
816{
817 /* LONG */
818 TEST_TYPE(LONG, 4, 4);
819 TEST_TYPE_SIGNED(LONG);
820}
821
822static void test_pack_LPCVOID(void)
823{
824 /* LPCVOID */
825 TEST_TYPE(LPCVOID, 4, 4);
826}
827
828static void test_pack_LPTOP_LEVEL_EXCEPTION_FILTER(void)
829{
830 /* LPTOP_LEVEL_EXCEPTION_FILTER */
831 TEST_TYPE(LPTOP_LEVEL_EXCEPTION_FILTER, 4, 4);
832}
833
834static void test_pack_LUID(void)
835{
836 /* LUID (pack 4) */
837 TEST_TYPE(LUID, 8, 4);
838 TEST_FIELD(LUID, DWORD, LowPart, 0, 4, 4);
839 TEST_FIELD(LUID, LONG, HighPart, 4, 4, 4);
840}
841
842static void test_pack_LUID_AND_ATTRIBUTES(void)
843{
844 /* LUID_AND_ATTRIBUTES (pack 4) */
845 TEST_TYPE(LUID_AND_ATTRIBUTES, 12, 4);
846 TEST_FIELD(LUID_AND_ATTRIBUTES, LUID, Luid, 0, 8, 4);
847 TEST_FIELD(LUID_AND_ATTRIBUTES, DWORD, Attributes, 8, 4, 4);
848}
849
850static void test_pack_MEMORY_BASIC_INFORMATION(void)
851{
852 /* MEMORY_BASIC_INFORMATION (pack 4) */
853 TEST_TYPE(MEMORY_BASIC_INFORMATION, 28, 4);
854 TEST_FIELD(MEMORY_BASIC_INFORMATION, LPVOID, BaseAddress, 0, 4, 4);
855 TEST_FIELD(MEMORY_BASIC_INFORMATION, LPVOID, AllocationBase, 4, 4, 4);
856 TEST_FIELD(MEMORY_BASIC_INFORMATION, DWORD, AllocationProtect, 8, 4, 4);
857 TEST_FIELD(MEMORY_BASIC_INFORMATION, DWORD, RegionSize, 12, 4, 4);
858 TEST_FIELD(MEMORY_BASIC_INFORMATION, DWORD, State, 16, 4, 4);
859 TEST_FIELD(MEMORY_BASIC_INFORMATION, DWORD, Protect, 20, 4, 4);
860 TEST_FIELD(MEMORY_BASIC_INFORMATION, DWORD, Type, 24, 4, 4);
861}
862
863static void test_pack_MESSAGE_RESOURCE_BLOCK(void)
864{
865 /* MESSAGE_RESOURCE_BLOCK (pack 4) */
866 TEST_TYPE(MESSAGE_RESOURCE_BLOCK, 12, 4);
867 TEST_FIELD(MESSAGE_RESOURCE_BLOCK, DWORD, LowId, 0, 4, 4);
868 TEST_FIELD(MESSAGE_RESOURCE_BLOCK, DWORD, HighId, 4, 4, 4);
869 TEST_FIELD(MESSAGE_RESOURCE_BLOCK, DWORD, OffsetToEntries, 8, 4, 4);
870}
871
872static void test_pack_MESSAGE_RESOURCE_DATA(void)
873{
874 /* MESSAGE_RESOURCE_DATA (pack 4) */
875 TEST_TYPE(MESSAGE_RESOURCE_DATA, 16, 4);
876 TEST_FIELD(MESSAGE_RESOURCE_DATA, DWORD, NumberOfBlocks, 0, 4, 4);
877 TEST_FIELD(MESSAGE_RESOURCE_DATA, MESSAGE_RESOURCE_BLOCK[ 1 ], Blocks, 4, 12, 4);
878}
879
880static void test_pack_MESSAGE_RESOURCE_ENTRY(void)
881{
882 /* MESSAGE_RESOURCE_ENTRY (pack 4) */
883 TEST_TYPE(MESSAGE_RESOURCE_ENTRY, 6, 2);
884 TEST_FIELD(MESSAGE_RESOURCE_ENTRY, WORD, Length, 0, 2, 2);
885 TEST_FIELD(MESSAGE_RESOURCE_ENTRY, WORD, Flags, 2, 2, 2);
886 TEST_FIELD(MESSAGE_RESOURCE_ENTRY, BYTE[1], Text, 4, 1, 1);
887}
888
889static void test_pack_PACCESS_ALLOWED_ACE(void)
890{
891 /* PACCESS_ALLOWED_ACE */
892 TEST_TYPE(PACCESS_ALLOWED_ACE, 4, 4);
893 TEST_TYPE_POINTER(PACCESS_ALLOWED_ACE, 12, 4);
894}
895
896static void test_pack_PACCESS_DENIED_ACE(void)
897{
898 /* PACCESS_DENIED_ACE */
899 TEST_TYPE(PACCESS_DENIED_ACE, 4, 4);
900 TEST_TYPE_POINTER(PACCESS_DENIED_ACE, 12, 4);
901}
902
903static void test_pack_PACCESS_TOKEN(void)
904{
905 /* PACCESS_TOKEN */
906 TEST_TYPE(PACCESS_TOKEN, 4, 4);
907}
908
909static void test_pack_PACE_HEADER(void)
910{
911 /* PACE_HEADER */
912 TEST_TYPE(PACE_HEADER, 4, 4);
913 TEST_TYPE_POINTER(PACE_HEADER, 4, 2);
914}
915
916static void test_pack_PACL(void)
917{
918 /* PACL */
919 TEST_TYPE(PACL, 4, 4);
920 TEST_TYPE_POINTER(PACL, 8, 2);
921}
922
923static void test_pack_PCCH(void)
924{
925 /* PCCH */
926 TEST_TYPE(PCCH, 4, 4);
927 TEST_TYPE_POINTER(PCCH, 1, 1);
928}
929
930static void test_pack_PCH(void)
931{
932 /* PCH */
933 TEST_TYPE(PCH, 4, 4);
934 TEST_TYPE_POINTER(PCH, 1, 1);
935}
936
937static void test_pack_PCSTR(void)
938{
939 /* PCSTR */
940 TEST_TYPE(PCSTR, 4, 4);
941 TEST_TYPE_POINTER(PCSTR, 1, 1);
942}
943
944static void test_pack_PCWCH(void)
945{
946 /* PCWCH */
947 TEST_TYPE(PCWCH, 4, 4);
948 TEST_TYPE_POINTER(PCWCH, 2, 2);
949}
950
951static void test_pack_PCWSTR(void)
952{
953 /* PCWSTR */
954 TEST_TYPE(PCWSTR, 4, 4);
955 TEST_TYPE_POINTER(PCWSTR, 2, 2);
956}
957
958static void test_pack_PEXCEPTION_POINTERS(void)
959{
960 /* PEXCEPTION_POINTERS */
961 TEST_TYPE(PEXCEPTION_POINTERS, 4, 4);
962 TEST_TYPE_POINTER(PEXCEPTION_POINTERS, 8, 4);
963}
964
965static void test_pack_PEXCEPTION_RECORD(void)
966{
967 /* PEXCEPTION_RECORD */
968 TEST_TYPE(PEXCEPTION_RECORD, 4, 4);
969 TEST_TYPE_POINTER(PEXCEPTION_RECORD, 80, 4);
970}
971
972static void test_pack_PFLOATING_SAVE_AREA(void)
973{
974 /* PFLOATING_SAVE_AREA */
975 TEST_TYPE(PFLOATING_SAVE_AREA, 4, 4);
976 TEST_TYPE_POINTER(PFLOATING_SAVE_AREA, 112, 4);
977}
978
979static void test_pack_PFPO_DATA(void)
980{
981 /* PFPO_DATA */
982 TEST_TYPE(PFPO_DATA, 4, 4);
983}
984
985static void test_pack_PGENERIC_MAPPING(void)
986{
987 /* PGENERIC_MAPPING */
988 TEST_TYPE(PGENERIC_MAPPING, 4, 4);
989 TEST_TYPE_POINTER(PGENERIC_MAPPING, 16, 4);
990}
991
992static void test_pack_PHANDLE(void)
993{
994 /* PHANDLE */
995 TEST_TYPE(PHANDLE, 4, 4);
996 TEST_TYPE_POINTER(PHANDLE, 4, 4);
997}
998
999static void test_pack_PIMAGE_ARCHIVE_MEMBER_HEADER(void)
1000{
1001 /* PIMAGE_ARCHIVE_MEMBER_HEADER */
1002 TEST_TYPE(PIMAGE_ARCHIVE_MEMBER_HEADER, 4, 4);
1003 TEST_TYPE_POINTER(PIMAGE_ARCHIVE_MEMBER_HEADER, 60, 1);
1004}
1005
1006static void test_pack_PIMAGE_AUX_SYMBOL(void)
1007{
1008 /* PIMAGE_AUX_SYMBOL */
1009 TEST_TYPE(PIMAGE_AUX_SYMBOL, 4, 4);
1010}
1011
1012static void test_pack_PIMAGE_BASE_RELOCATION(void)
1013{
1014 /* PIMAGE_BASE_RELOCATION */
1015 TEST_TYPE(PIMAGE_BASE_RELOCATION, 4, 4);
1016 TEST_TYPE_POINTER(PIMAGE_BASE_RELOCATION, 8, 4);
1017}
1018
1019static void test_pack_PIMAGE_BOUND_FORWARDER_REF(void)
1020{
1021 /* PIMAGE_BOUND_FORWARDER_REF */
1022 TEST_TYPE(PIMAGE_BOUND_FORWARDER_REF, 4, 4);
1023 TEST_TYPE_POINTER(PIMAGE_BOUND_FORWARDER_REF, 8, 4);
1024}
1025
1026static void test_pack_PIMAGE_BOUND_IMPORT_DESCRIPTOR(void)
1027{
1028 /* PIMAGE_BOUND_IMPORT_DESCRIPTOR */
1029 TEST_TYPE(PIMAGE_BOUND_IMPORT_DESCRIPTOR, 4, 4);
1030 TEST_TYPE_POINTER(PIMAGE_BOUND_IMPORT_DESCRIPTOR, 8, 4);
1031}
1032
1033static void test_pack_PIMAGE_COFF_SYMBOLS_HEADER(void)
1034{
1035 /* PIMAGE_COFF_SYMBOLS_HEADER */
1036 TEST_TYPE(PIMAGE_COFF_SYMBOLS_HEADER, 4, 4);
1037 TEST_TYPE_POINTER(PIMAGE_COFF_SYMBOLS_HEADER, 32, 4);
1038}
1039
1040static void test_pack_PIMAGE_DATA_DIRECTORY(void)
1041{
1042 /* PIMAGE_DATA_DIRECTORY */
1043 TEST_TYPE(PIMAGE_DATA_DIRECTORY, 4, 4);
1044 TEST_TYPE_POINTER(PIMAGE_DATA_DIRECTORY, 8, 4);
1045}
1046
1047static void test_pack_PIMAGE_DEBUG_DIRECTORY(void)
1048{
1049 /* PIMAGE_DEBUG_DIRECTORY */
1050 TEST_TYPE(PIMAGE_DEBUG_DIRECTORY, 4, 4);
1051 TEST_TYPE_POINTER(PIMAGE_DEBUG_DIRECTORY, 28, 4);
1052}
1053
1054static void test_pack_PIMAGE_DEBUG_MISC(void)
1055{
1056 /* PIMAGE_DEBUG_MISC */
1057 TEST_TYPE(PIMAGE_DEBUG_MISC, 4, 4);
1058 TEST_TYPE_POINTER(PIMAGE_DEBUG_MISC, 16, 4);
1059}
1060
1061static void test_pack_PIMAGE_DOS_HEADER(void)
1062{
1063 /* PIMAGE_DOS_HEADER */
1064 TEST_TYPE(PIMAGE_DOS_HEADER, 4, 4);
1065 TEST_TYPE_POINTER(PIMAGE_DOS_HEADER, 64, 2);
1066}
1067
1068static void test_pack_PIMAGE_EXPORT_DIRECTORY(void)
1069{
1070 /* PIMAGE_EXPORT_DIRECTORY */
1071 TEST_TYPE(PIMAGE_EXPORT_DIRECTORY, 4, 4);
1072 TEST_TYPE_POINTER(PIMAGE_EXPORT_DIRECTORY, 40, 4);
1073}
1074
1075static void test_pack_PIMAGE_FILE_HEADER(void)
1076{
1077 /* PIMAGE_FILE_HEADER */
1078 TEST_TYPE(PIMAGE_FILE_HEADER, 4, 4);
1079 TEST_TYPE_POINTER(PIMAGE_FILE_HEADER, 20, 4);
1080}
1081
1082static void test_pack_PIMAGE_FUNCTION_ENTRY(void)
1083{
1084 /* PIMAGE_FUNCTION_ENTRY */
1085 TEST_TYPE(PIMAGE_FUNCTION_ENTRY, 4, 4);
1086 TEST_TYPE_POINTER(PIMAGE_FUNCTION_ENTRY, 12, 4);
1087}
1088
1089static void test_pack_PIMAGE_IMPORT_BY_NAME(void)
1090{
1091 /* PIMAGE_IMPORT_BY_NAME */
1092 TEST_TYPE(PIMAGE_IMPORT_BY_NAME, 4, 4);
1093 TEST_TYPE_POINTER(PIMAGE_IMPORT_BY_NAME, 4, 2);
1094}
1095
1096static void test_pack_PIMAGE_IMPORT_DESCRIPTOR(void)
1097{
1098 /* PIMAGE_IMPORT_DESCRIPTOR */
1099 TEST_TYPE(PIMAGE_IMPORT_DESCRIPTOR, 4, 4);
1100}
1101
1102static void test_pack_PIMAGE_LINENUMBER(void)
1103{
1104 /* PIMAGE_LINENUMBER */
1105 TEST_TYPE(PIMAGE_LINENUMBER, 4, 4);
1106}
1107
1108static void test_pack_PIMAGE_LOAD_CONFIG_DIRECTORY(void)
1109{
1110 /* PIMAGE_LOAD_CONFIG_DIRECTORY */
1111 TEST_TYPE(PIMAGE_LOAD_CONFIG_DIRECTORY, 4, 4);
1112 TEST_TYPE_POINTER(PIMAGE_LOAD_CONFIG_DIRECTORY, 64, 4);
1113}
1114
1115static void test_pack_PIMAGE_NT_HEADERS(void)
1116{
1117 /* PIMAGE_NT_HEADERS */
1118 TEST_TYPE(PIMAGE_NT_HEADERS, 4, 4);
1119 TEST_TYPE_POINTER(PIMAGE_NT_HEADERS, 248, 4);
1120}
1121
1122static void test_pack_PIMAGE_OPTIONAL_HEADER(void)
1123{
1124 /* PIMAGE_OPTIONAL_HEADER */
1125 TEST_TYPE(PIMAGE_OPTIONAL_HEADER, 4, 4);
1126 TEST_TYPE_POINTER(PIMAGE_OPTIONAL_HEADER, 224, 4);
1127}
1128
1129static void test_pack_PIMAGE_OS2_HEADER(void)
1130{
1131 /* PIMAGE_OS2_HEADER */
1132 TEST_TYPE(PIMAGE_OS2_HEADER, 4, 4);
1133 TEST_TYPE_POINTER(PIMAGE_OS2_HEADER, 64, 2);
1134}
1135
1136static void test_pack_PIMAGE_RELOCATION(void)
1137{
1138 /* PIMAGE_RELOCATION */
1139 TEST_TYPE(PIMAGE_RELOCATION, 4, 4);
1140}
1141
1142static void test_pack_PIMAGE_RESOURCE_DATA_ENTRY(void)
1143{
1144 /* PIMAGE_RESOURCE_DATA_ENTRY */
1145 TEST_TYPE(PIMAGE_RESOURCE_DATA_ENTRY, 4, 4);
1146}
1147
1148static void test_pack_PIMAGE_RESOURCE_DIRECTORY(void)
1149{
1150 /* PIMAGE_RESOURCE_DIRECTORY */
1151 TEST_TYPE(PIMAGE_RESOURCE_DIRECTORY, 4, 4);
1152 TEST_TYPE_POINTER(PIMAGE_RESOURCE_DIRECTORY, 16, 4);
1153}
1154
1155static void test_pack_PIMAGE_RESOURCE_DIRECTORY_ENTRY(void)
1156{
1157 /* PIMAGE_RESOURCE_DIRECTORY_ENTRY */
1158 TEST_TYPE(PIMAGE_RESOURCE_DIRECTORY_ENTRY, 4, 4);
1159}
1160
1161static void test_pack_PIMAGE_RESOURCE_DIRECTORY_STRING(void)
1162{
1163 /* PIMAGE_RESOURCE_DIRECTORY_STRING */
1164 TEST_TYPE(PIMAGE_RESOURCE_DIRECTORY_STRING, 4, 4);
1165 TEST_TYPE_POINTER(PIMAGE_RESOURCE_DIRECTORY_STRING, 4, 2);
1166}
1167
1168static void test_pack_PIMAGE_RESOURCE_DIR_STRING_U(void)
1169{
1170 /* PIMAGE_RESOURCE_DIR_STRING_U */
1171 TEST_TYPE(PIMAGE_RESOURCE_DIR_STRING_U, 4, 4);
1172 TEST_TYPE_POINTER(PIMAGE_RESOURCE_DIR_STRING_U, 4, 2);
1173}
1174
1175static void test_pack_PIMAGE_SECTION_HEADER(void)
1176{
1177 /* PIMAGE_SECTION_HEADER */
1178 TEST_TYPE(PIMAGE_SECTION_HEADER, 4, 4);
1179}
1180
1181static void test_pack_PIMAGE_SEPARATE_DEBUG_HEADER(void)
1182{
1183 /* PIMAGE_SEPARATE_DEBUG_HEADER */
1184 TEST_TYPE(PIMAGE_SEPARATE_DEBUG_HEADER, 4, 4);
1185 TEST_TYPE_POINTER(PIMAGE_SEPARATE_DEBUG_HEADER, 48, 4);
1186}
1187
1188static void test_pack_PIMAGE_SYMBOL(void)
1189{
1190 /* PIMAGE_SYMBOL */
1191 TEST_TYPE(PIMAGE_SYMBOL, 4, 4);
1192}
1193
1194static void test_pack_PIMAGE_THUNK_DATA(void)
1195{
1196 /* PIMAGE_THUNK_DATA */
1197 TEST_TYPE(PIMAGE_THUNK_DATA, 4, 4);
1198}
1199
1200static void test_pack_PIMAGE_TLS_CALLBACK(void)
1201{
1202 /* PIMAGE_TLS_CALLBACK */
1203 TEST_TYPE(PIMAGE_TLS_CALLBACK, 4, 4);
1204}
1205
1206static void test_pack_PIMAGE_TLS_DIRECTORY(void)
1207{
1208 /* PIMAGE_TLS_DIRECTORY */
1209 TEST_TYPE(PIMAGE_TLS_DIRECTORY, 4, 4);
1210 TEST_TYPE_POINTER(PIMAGE_TLS_DIRECTORY, 24, 4);
1211}
1212
1213static void test_pack_PIMAGE_VXD_HEADER(void)
1214{
1215 /* PIMAGE_VXD_HEADER */
1216 TEST_TYPE(PIMAGE_VXD_HEADER, 4, 4);
1217 TEST_TYPE_POINTER(PIMAGE_VXD_HEADER, 196, 2);
1218}
1219
1220static void test_pack_PISECURITY_DESCRIPTOR_RELATIVE(void)
1221{
1222 /* PISECURITY_DESCRIPTOR_RELATIVE */
1223 TEST_TYPE(PISECURITY_DESCRIPTOR_RELATIVE, 4, 4);
1224 TEST_TYPE_POINTER(PISECURITY_DESCRIPTOR_RELATIVE, 20, 4);
1225}
1226
1227static void test_pack_PLARGE_INTEGER(void)
1228{
1229 /* PLARGE_INTEGER */
1230 TEST_TYPE(PLARGE_INTEGER, 4, 4);
1231}
1232
1233static void test_pack_PLIST_ENTRY(void)
1234{
1235 /* PLIST_ENTRY */
1236 TEST_TYPE(PLIST_ENTRY, 4, 4);
1237 TEST_TYPE_POINTER(PLIST_ENTRY, 8, 4);
1238}
1239
1240static void test_pack_PLUID(void)
1241{
1242 /* PLUID */
1243 TEST_TYPE(PLUID, 4, 4);
1244 TEST_TYPE_POINTER(PLUID, 8, 4);
1245}
1246
1247static void test_pack_PMEMORY_BASIC_INFORMATION(void)
1248{
1249 /* PMEMORY_BASIC_INFORMATION */
1250 TEST_TYPE(PMEMORY_BASIC_INFORMATION, 4, 4);
1251 TEST_TYPE_POINTER(PMEMORY_BASIC_INFORMATION, 28, 4);
1252}
1253
1254static void test_pack_PMESSAGE_RESOURCE_BLOCK(void)
1255{
1256 /* PMESSAGE_RESOURCE_BLOCK */
1257 TEST_TYPE(PMESSAGE_RESOURCE_BLOCK, 4, 4);
1258 TEST_TYPE_POINTER(PMESSAGE_RESOURCE_BLOCK, 12, 4);
1259}
1260
1261static void test_pack_PMESSAGE_RESOURCE_DATA(void)
1262{
1263 /* PMESSAGE_RESOURCE_DATA */
1264 TEST_TYPE(PMESSAGE_RESOURCE_DATA, 4, 4);
1265 TEST_TYPE_POINTER(PMESSAGE_RESOURCE_DATA, 16, 4);
1266}
1267
1268static void test_pack_PMESSAGE_RESOURCE_ENTRY(void)
1269{
1270 /* PMESSAGE_RESOURCE_ENTRY */
1271 TEST_TYPE(PMESSAGE_RESOURCE_ENTRY, 4, 4);
1272 TEST_TYPE_POINTER(PMESSAGE_RESOURCE_ENTRY, 6, 2);
1273}
1274
1275static void test_pack_PNT_TIB(void)
1276{
1277 /* PNT_TIB */
1278 TEST_TYPE(PNT_TIB, 4, 4);
1279}
1280
1281static void test_pack_PPRIVILEGE_SET(void)
1282{
1283 /* PPRIVILEGE_SET */
1284 TEST_TYPE(PPRIVILEGE_SET, 4, 4);
1285 TEST_TYPE_POINTER(PPRIVILEGE_SET, 20, 4);
1286}
1287
1288static void test_pack_PRIVILEGE_SET(void)
1289{
1290 /* PRIVILEGE_SET (pack 4) */
1291 TEST_TYPE(PRIVILEGE_SET, 20, 4);
1292 TEST_FIELD(PRIVILEGE_SET, DWORD, PrivilegeCount, 0, 4, 4);
1293 TEST_FIELD(PRIVILEGE_SET, DWORD, Control, 4, 4, 4);
1294 TEST_FIELD(PRIVILEGE_SET, LUID_AND_ATTRIBUTES[ANYSIZE_ARRAY], Privilege, 8, 12, 4);
1295}
1296
1297static void test_pack_PRLIST_ENTRY(void)
1298{
1299 /* PRLIST_ENTRY */
1300 TEST_TYPE(PRLIST_ENTRY, 4, 4);
1301 TEST_TYPE_POINTER(PRLIST_ENTRY, 8, 4);
1302}
1303
1304static void test_pack_PRTL_CRITICAL_SECTION(void)
1305{
1306 /* PRTL_CRITICAL_SECTION */
1307 TEST_TYPE(PRTL_CRITICAL_SECTION, 4, 4);
1308 TEST_TYPE_POINTER(PRTL_CRITICAL_SECTION, 24, 4);
1309}
1310
1311static void test_pack_PRTL_CRITICAL_SECTION_DEBUG(void)
1312{
1313 /* PRTL_CRITICAL_SECTION_DEBUG */
1314 TEST_TYPE(PRTL_CRITICAL_SECTION_DEBUG, 4, 4);
1315 TEST_TYPE_POINTER(PRTL_CRITICAL_SECTION_DEBUG, 32, 4);
1316}
1317
1318static void test_pack_PRTL_RESOURCE_DEBUG(void)
1319{
1320 /* PRTL_RESOURCE_DEBUG */
1321 TEST_TYPE(PRTL_RESOURCE_DEBUG, 4, 4);
1322 TEST_TYPE_POINTER(PRTL_RESOURCE_DEBUG, 32, 4);
1323}
1324
1325static void test_pack_PSECURITY_QUALITY_OF_SERVICE(void)
1326{
1327 /* PSECURITY_QUALITY_OF_SERVICE */
1328 TEST_TYPE(PSECURITY_QUALITY_OF_SERVICE, 4, 4);
1329}
1330
1331static void test_pack_PSID_IDENTIFIER_AUTHORITY(void)
1332{
1333 /* PSID_IDENTIFIER_AUTHORITY */
1334 TEST_TYPE(PSID_IDENTIFIER_AUTHORITY, 4, 4);
1335 TEST_TYPE_POINTER(PSID_IDENTIFIER_AUTHORITY, 6, 1);
1336}
1337
1338static void test_pack_PSINGLE_LIST_ENTRY(void)
1339{
1340 /* PSINGLE_LIST_ENTRY */
1341 TEST_TYPE(PSINGLE_LIST_ENTRY, 4, 4);
1342 TEST_TYPE_POINTER(PSINGLE_LIST_ENTRY, 4, 4);
1343}
1344
1345static void test_pack_PSTR(void)
1346{
1347 /* PSTR */
1348 TEST_TYPE(PSTR, 4, 4);
1349 TEST_TYPE_POINTER(PSTR, 1, 1);
1350}
1351
1352static void test_pack_PSYSTEM_ALARM_ACE(void)
1353{
1354 /* PSYSTEM_ALARM_ACE */
1355 TEST_TYPE(PSYSTEM_ALARM_ACE, 4, 4);
1356 TEST_TYPE_POINTER(PSYSTEM_ALARM_ACE, 12, 4);
1357}
1358
1359static void test_pack_PSYSTEM_AUDIT_ACE(void)
1360{
1361 /* PSYSTEM_AUDIT_ACE */
1362 TEST_TYPE(PSYSTEM_AUDIT_ACE, 4, 4);
1363 TEST_TYPE_POINTER(PSYSTEM_AUDIT_ACE, 12, 4);
1364}
1365
1366static void test_pack_PTOKEN_PRIVILEGES(void)
1367{
1368 /* PTOKEN_PRIVILEGES */
1369 TEST_TYPE(PTOKEN_PRIVILEGES, 4, 4);
1370 TEST_TYPE_POINTER(PTOKEN_PRIVILEGES, 16, 4);
1371}
1372
1373static void test_pack_PTOP_LEVEL_EXCEPTION_FILTER(void)
1374{
1375 /* PTOP_LEVEL_EXCEPTION_FILTER */
1376 TEST_TYPE(PTOP_LEVEL_EXCEPTION_FILTER, 4, 4);
1377}
1378
1379static void test_pack_PTSTR(void)
1380{
1381 /* PTSTR */
1382}
1383
1384static void test_pack_PULARGE_INTEGER(void)
1385{
1386 /* PULARGE_INTEGER */
1387 TEST_TYPE(PULARGE_INTEGER, 4, 4);
1388}
1389
1390static void test_pack_PVOID(void)
1391{
1392 /* PVOID */
1393 TEST_TYPE(PVOID, 4, 4);
1394}
1395
1396static void test_pack_PWCH(void)
1397{
1398 /* PWCH */
1399 TEST_TYPE(PWCH, 4, 4);
1400 TEST_TYPE_POINTER(PWCH, 2, 2);
1401}
1402
1403static void test_pack_PWSTR(void)
1404{
1405 /* PWSTR */
1406 TEST_TYPE(PWSTR, 4, 4);
1407 TEST_TYPE_POINTER(PWSTR, 2, 2);
1408}
1409
1410static void test_pack_RTL_CRITICAL_SECTION(void)
1411{
1412 /* RTL_CRITICAL_SECTION (pack 4) */
1413 TEST_TYPE(RTL_CRITICAL_SECTION, 24, 4);
1414 TEST_FIELD(RTL_CRITICAL_SECTION, PRTL_CRITICAL_SECTION_DEBUG, DebugInfo, 0, 4, 4);
1415 TEST_FIELD(RTL_CRITICAL_SECTION, LONG, LockCount, 4, 4, 4);
1416 TEST_FIELD(RTL_CRITICAL_SECTION, LONG, RecursionCount, 8, 4, 4);
1417 TEST_FIELD(RTL_CRITICAL_SECTION, HANDLE, OwningThread, 12, 4, 4);
1418 TEST_FIELD(RTL_CRITICAL_SECTION, HANDLE, LockSemaphore, 16, 4, 4);
1419 TEST_FIELD(RTL_CRITICAL_SECTION, ULONG_PTR, SpinCount, 20, 4, 4);
1420}
1421
1422static void test_pack_RTL_CRITICAL_SECTION_DEBUG(void)
1423{
1424 /* RTL_CRITICAL_SECTION_DEBUG (pack 4) */
1425 TEST_TYPE(RTL_CRITICAL_SECTION_DEBUG, 32, 4);
1426 TEST_FIELD(RTL_CRITICAL_SECTION_DEBUG, WORD, Type, 0, 2, 2);
1427 TEST_FIELD(RTL_CRITICAL_SECTION_DEBUG, WORD, CreatorBackTraceIndex, 2, 2, 2);
1428 TEST_FIELD(RTL_CRITICAL_SECTION_DEBUG, struct _RTL_CRITICAL_SECTION *, CriticalSection, 4, 4, 4);
1429 TEST_FIELD(RTL_CRITICAL_SECTION_DEBUG, LIST_ENTRY, ProcessLocksList, 8, 8, 4);
1430 TEST_FIELD(RTL_CRITICAL_SECTION_DEBUG, DWORD, EntryCount, 16, 4, 4);
1431 TEST_FIELD(RTL_CRITICAL_SECTION_DEBUG, DWORD, ContentionCount, 20, 4, 4);
1432 TEST_FIELD(RTL_CRITICAL_SECTION_DEBUG, DWORD[ 2 ], Spare, 24, 8, 4);
1433}
1434
1435static void test_pack_RTL_RESOURCE_DEBUG(void)
1436{
1437 /* RTL_RESOURCE_DEBUG (pack 4) */
1438 TEST_TYPE(RTL_RESOURCE_DEBUG, 32, 4);
1439 TEST_FIELD(RTL_RESOURCE_DEBUG, WORD, Type, 0, 2, 2);
1440 TEST_FIELD(RTL_RESOURCE_DEBUG, WORD, CreatorBackTraceIndex, 2, 2, 2);
1441 TEST_FIELD(RTL_RESOURCE_DEBUG, struct _RTL_CRITICAL_SECTION *, CriticalSection, 4, 4, 4);
1442 TEST_FIELD(RTL_RESOURCE_DEBUG, LIST_ENTRY, ProcessLocksList, 8, 8, 4);
1443 TEST_FIELD(RTL_RESOURCE_DEBUG, DWORD, EntryCount, 16, 4, 4);
1444 TEST_FIELD(RTL_RESOURCE_DEBUG, DWORD, ContentionCount, 20, 4, 4);
1445 TEST_FIELD(RTL_RESOURCE_DEBUG, DWORD[ 2 ], Spare, 24, 8, 4);
1446}
1447
1448static void test_pack_SECURITY_CONTEXT_TRACKING_MODE(void)
1449{
1450 /* SECURITY_CONTEXT_TRACKING_MODE */
1451 TEST_TYPE(SECURITY_CONTEXT_TRACKING_MODE, 1, 1);
1452}
1453
1454static void test_pack_SECURITY_DESCRIPTOR(void)
1455{
1456 /* SECURITY_DESCRIPTOR (pack 4) */
1457 TEST_TYPE(SECURITY_DESCRIPTOR, 20, 4);
1458 TEST_FIELD(SECURITY_DESCRIPTOR, BYTE, Revision, 0, 1, 1);
1459 TEST_FIELD(SECURITY_DESCRIPTOR, BYTE, Sbz1, 1, 1, 1);
1460 TEST_FIELD(SECURITY_DESCRIPTOR, SECURITY_DESCRIPTOR_CONTROL, Control, 2, 2, 2);
1461 TEST_FIELD(SECURITY_DESCRIPTOR, PSID, Owner, 4, 4, 4);
1462 TEST_FIELD(SECURITY_DESCRIPTOR, PSID, Group, 8, 4, 4);
1463 TEST_FIELD(SECURITY_DESCRIPTOR, PACL, Sacl, 12, 4, 4);
1464 TEST_FIELD(SECURITY_DESCRIPTOR, PACL, Dacl, 16, 4, 4);
1465}
1466
1467static void test_pack_SECURITY_DESCRIPTOR_CONTROL(void)
1468{
1469 /* SECURITY_DESCRIPTOR_CONTROL */
1470 TEST_TYPE(SECURITY_DESCRIPTOR_CONTROL, 2, 2);
1471}
1472
1473static void test_pack_SECURITY_DESCRIPTOR_RELATIVE(void)
1474{
1475 /* SECURITY_DESCRIPTOR_RELATIVE (pack 4) */
1476 TEST_TYPE(SECURITY_DESCRIPTOR_RELATIVE, 20, 4);
1477 TEST_FIELD(SECURITY_DESCRIPTOR_RELATIVE, BYTE, Revision, 0, 1, 1);
1478 TEST_FIELD(SECURITY_DESCRIPTOR_RELATIVE, BYTE, Sbz1, 1, 1, 1);
1479 TEST_FIELD(SECURITY_DESCRIPTOR_RELATIVE, SECURITY_DESCRIPTOR_CONTROL, Control, 2, 2, 2);
1480 TEST_FIELD(SECURITY_DESCRIPTOR_RELATIVE, DWORD, Owner, 4, 4, 4);
1481 TEST_FIELD(SECURITY_DESCRIPTOR_RELATIVE, DWORD, Group, 8, 4, 4);
1482 TEST_FIELD(SECURITY_DESCRIPTOR_RELATIVE, DWORD, Sacl, 12, 4, 4);
1483 TEST_FIELD(SECURITY_DESCRIPTOR_RELATIVE, DWORD, Dacl, 16, 4, 4);
1484}
1485
1486static void test_pack_SECURITY_INFORMATION(void)
1487{
1488 /* SECURITY_INFORMATION */
1489 TEST_TYPE(SECURITY_INFORMATION, 4, 4);
1490}
1491
1492static void test_pack_SHORT(void)
1493{
1494 /* SHORT */
1495 TEST_TYPE(SHORT, 2, 2);
1496 TEST_TYPE_SIGNED(SHORT);
1497}
1498
1499static void test_pack_SID(void)
1500{
1501 /* SID (pack 4) */
1502 TEST_TYPE(SID, 12, 4);
1503 TEST_FIELD(SID, BYTE, Revision, 0, 1, 1);
1504 TEST_FIELD(SID, BYTE, SubAuthorityCount, 1, 1, 1);
1505 TEST_FIELD(SID, SID_IDENTIFIER_AUTHORITY, IdentifierAuthority, 2, 6, 1);
1506 TEST_FIELD(SID, DWORD[1], SubAuthority, 8, 4, 4);
1507}
1508
1509static void test_pack_SID_AND_ATTRIBUTES(void)
1510{
1511 /* SID_AND_ATTRIBUTES (pack 4) */
1512 TEST_TYPE(SID_AND_ATTRIBUTES, 8, 4);
1513 TEST_FIELD(SID_AND_ATTRIBUTES, PSID, Sid, 0, 4, 4);
1514 TEST_FIELD(SID_AND_ATTRIBUTES, DWORD, Attributes, 4, 4, 4);
1515}
1516
1517static void test_pack_SID_IDENTIFIER_AUTHORITY(void)
1518{
1519 /* SID_IDENTIFIER_AUTHORITY (pack 4) */
1520 TEST_TYPE(SID_IDENTIFIER_AUTHORITY, 6, 1);
1521 TEST_FIELD(SID_IDENTIFIER_AUTHORITY, BYTE[6], Value, 0, 6, 1);
1522}
1523
1524static void test_pack_SINGLE_LIST_ENTRY(void)
1525{
1526 /* SINGLE_LIST_ENTRY (pack 4) */
1527 TEST_TYPE(SINGLE_LIST_ENTRY, 4, 4);
1528 TEST_FIELD(SINGLE_LIST_ENTRY, struct _SINGLE_LIST_ENTRY *, Next, 0, 4, 4);
1529}
1530
1531static void test_pack_SYSTEM_ALARM_ACE(void)
1532{
1533 /* SYSTEM_ALARM_ACE (pack 4) */
1534 TEST_TYPE(SYSTEM_ALARM_ACE, 12, 4);
1535 TEST_FIELD(SYSTEM_ALARM_ACE, ACE_HEADER, Header, 0, 4, 2);
1536 TEST_FIELD(SYSTEM_ALARM_ACE, DWORD, Mask, 4, 4, 4);
1537 TEST_FIELD(SYSTEM_ALARM_ACE, DWORD, SidStart, 8, 4, 4);
1538}
1539
1540static void test_pack_SYSTEM_AUDIT_ACE(void)
1541{
1542 /* SYSTEM_AUDIT_ACE (pack 4) */
1543 TEST_TYPE(SYSTEM_AUDIT_ACE, 12, 4);
1544 TEST_FIELD(SYSTEM_AUDIT_ACE, ACE_HEADER, Header, 0, 4, 2);
1545 TEST_FIELD(SYSTEM_AUDIT_ACE, DWORD, Mask, 4, 4, 4);
1546 TEST_FIELD(SYSTEM_AUDIT_ACE, DWORD, SidStart, 8, 4, 4);
1547}
1548
1549static void test_pack_TCHAR(void)
1550{
1551 /* TCHAR */
1552 TEST_TYPE(TCHAR, 1, 1);
1553}
1554
1555static void test_pack_TOKEN_DEFAULT_DACL(void)
1556{
1557 /* TOKEN_DEFAULT_DACL (pack 4) */
1558 TEST_TYPE(TOKEN_DEFAULT_DACL, 4, 4);
1559 TEST_FIELD(TOKEN_DEFAULT_DACL, PACL, DefaultDacl, 0, 4, 4);
1560}
1561
1562static void test_pack_TOKEN_GROUPS(void)
1563{
1564 /* TOKEN_GROUPS (pack 4) */
1565 TEST_TYPE(TOKEN_GROUPS, 12, 4);
1566 TEST_FIELD(TOKEN_GROUPS, DWORD, GroupCount, 0, 4, 4);
1567 TEST_FIELD(TOKEN_GROUPS, SID_AND_ATTRIBUTES[ANYSIZE_ARRAY], Groups, 4, 8, 4);
1568}
1569
1570static void test_pack_TOKEN_OWNER(void)
1571{
1572 /* TOKEN_OWNER (pack 4) */
1573 TEST_TYPE(TOKEN_OWNER, 4, 4);
1574 TEST_FIELD(TOKEN_OWNER, PSID, Owner, 0, 4, 4);
1575}
1576
1577static void test_pack_TOKEN_PRIMARY_GROUP(void)
1578{
1579 /* TOKEN_PRIMARY_GROUP (pack 4) */
1580 TEST_TYPE(TOKEN_PRIMARY_GROUP, 4, 4);
1581 TEST_FIELD(TOKEN_PRIMARY_GROUP, PSID, PrimaryGroup, 0, 4, 4);
1582}
1583
1584static void test_pack_TOKEN_PRIVILEGES(void)
1585{
1586 /* TOKEN_PRIVILEGES (pack 4) */
1587 TEST_TYPE(TOKEN_PRIVILEGES, 16, 4);
1588 TEST_FIELD(TOKEN_PRIVILEGES, DWORD, PrivilegeCount, 0, 4, 4);
1589 TEST_FIELD(TOKEN_PRIVILEGES, LUID_AND_ATTRIBUTES[ANYSIZE_ARRAY], Privileges, 4, 12, 4);
1590}
1591
1592static void test_pack_TOKEN_SOURCE(void)
1593{
1594 /* TOKEN_SOURCE (pack 4) */
1595 TEST_TYPE(TOKEN_SOURCE, 16, 4);
1596 TEST_FIELD(TOKEN_SOURCE, char[TOKEN_SOURCE_LENGTH], SourceName, 0, 8, 1);
1597 TEST_FIELD(TOKEN_SOURCE, LUID, SourceIdentifier, 8, 8, 4);
1598}
1599
1600static void test_pack_TOKEN_USER(void)
1601{
1602 /* TOKEN_USER (pack 4) */
1603 TEST_TYPE(TOKEN_USER, 8, 4);
1604 TEST_FIELD(TOKEN_USER, SID_AND_ATTRIBUTES, User, 0, 8, 4);
1605}
1606
1607static void test_pack_UCHAR(void)
1608{
1609 /* UCHAR */
1610 TEST_TYPE(UCHAR, 1, 1);
1611 TEST_TYPE_UNSIGNED(UCHAR);
1612}
1613
1614static void test_pack_UINT(void)
1615{
1616 /* UINT */
1617 TEST_TYPE(UINT, 4, 4);
1618 TEST_TYPE_UNSIGNED(UINT);
1619}
1620
1621static void test_pack_ULONG(void)
1622{
1623 /* ULONG */
1624 TEST_TYPE(ULONG, 4, 4);
1625 TEST_TYPE_UNSIGNED(ULONG);
1626}
1627
1628static void test_pack_USHORT(void)
1629{
1630 /* USHORT */
1631 TEST_TYPE(USHORT, 2, 2);
1632 TEST_TYPE_UNSIGNED(USHORT);
1633}
1634
1635static void test_pack_WAITORTIMERCALLBACKFUNC(void)
1636{
1637 /* WAITORTIMERCALLBACKFUNC */
1638 TEST_TYPE(WAITORTIMERCALLBACKFUNC, 4, 4);
1639}
1640
1641static void test_pack_WCHAR(void)
1642{
1643 /* WCHAR */
1644 TEST_TYPE(WCHAR, 2, 2);
1645 TEST_TYPE_UNSIGNED(WCHAR);
1646}
1647
1648static void test_pack_WORD(void)
1649{
1650 /* WORD */
1651 TEST_TYPE(WORD, 2, 2);
1652 TEST_TYPE_UNSIGNED(WORD);
1653}
1654
1655static void test_pack_ATOM(void)
1656{
1657 /* ATOM */
1658 TEST_TYPE(ATOM, 2, 2);
1659}
1660
1661static void test_pack_COLORREF(void)
1662{
1663 /* COLORREF */
1664 TEST_TYPE(COLORREF, 4, 4);
1665}
1666
1667static void test_pack_FARPROC(void)
1668{
1669 /* FARPROC */
1670 TEST_TYPE(FARPROC, 4, 4);
1671}
1672
1673static void test_pack_GLOBALHANDLE(void)
1674{
1675 /* GLOBALHANDLE */
1676 TEST_TYPE(GLOBALHANDLE, 4, 4);
1677}
1678
1679static void test_pack_HCURSOR(void)
1680{
1681 /* HCURSOR */
1682 TEST_TYPE(HCURSOR, 4, 4);
1683 TEST_TYPE_UNSIGNED(HCURSOR);
1684}
1685
1686static void test_pack_HFILE(void)
1687{
1688 /* HFILE */
1689 TEST_TYPE(HFILE, 4, 4);
1690 TEST_TYPE_SIGNED(HFILE);
1691}
1692
1693static void test_pack_HGDIOBJ(void)
1694{
1695 /* HGDIOBJ */
1696 TEST_TYPE(HGDIOBJ, 4, 4);
1697}
1698
1699static void test_pack_HGLOBAL(void)
1700{
1701 /* HGLOBAL */
1702 TEST_TYPE(HGLOBAL, 4, 4);
1703}
1704
1705static void test_pack_HLOCAL(void)
1706{
1707 /* HLOCAL */
1708 TEST_TYPE(HLOCAL, 4, 4);
1709}
1710
1711static void test_pack_HMODULE(void)
1712{
1713 /* HMODULE */
1714 TEST_TYPE(HMODULE, 4, 4);
1715 TEST_TYPE_UNSIGNED(HMODULE);
1716}
1717
1718static void test_pack_LOCALHANDLE(void)
1719{
1720 /* LOCALHANDLE */
1721 TEST_TYPE(LOCALHANDLE, 4, 4);
1722}
1723
1724static void test_pack_LPARAM(void)
1725{
1726 /* LPARAM */
1727 TEST_TYPE(LPARAM, 4, 4);
1728}
1729
1730static void test_pack_LPCRECT(void)
1731{
1732 /* LPCRECT */
1733 TEST_TYPE(LPCRECT, 4, 4);
1734 TEST_TYPE_POINTER(LPCRECT, 16, 4);
1735}
1736
1737static void test_pack_LPCRECTL(void)
1738{
1739 /* LPCRECTL */
1740 TEST_TYPE(LPCRECTL, 4, 4);
1741 TEST_TYPE_POINTER(LPCRECTL, 16, 4);
1742}
1743
1744static void test_pack_LPPOINT(void)
1745{
1746 /* LPPOINT */
1747 TEST_TYPE(LPPOINT, 4, 4);
1748 TEST_TYPE_POINTER(LPPOINT, 8, 4);
1749}
1750
1751static void test_pack_LPPOINTS(void)
1752{
1753 /* LPPOINTS */
1754 TEST_TYPE(LPPOINTS, 4, 4);
1755 TEST_TYPE_POINTER(LPPOINTS, 4, 2);
1756}
1757
1758static void test_pack_LPRECT(void)
1759{
1760 /* LPRECT */
1761 TEST_TYPE(LPRECT, 4, 4);
1762 TEST_TYPE_POINTER(LPRECT, 16, 4);
1763}
1764
1765static void test_pack_LPRECTL(void)
1766{
1767 /* LPRECTL */
1768 TEST_TYPE(LPRECTL, 4, 4);
1769 TEST_TYPE_POINTER(LPRECTL, 16, 4);
1770}
1771
1772static void test_pack_LPSIZE(void)
1773{
1774 /* LPSIZE */
1775 TEST_TYPE(LPSIZE, 4, 4);
1776 TEST_TYPE_POINTER(LPSIZE, 8, 4);
1777}
1778
1779static void test_pack_LRESULT(void)
1780{
1781 /* LRESULT */
1782 TEST_TYPE(LRESULT, 4, 4);
1783}
1784
1785static void test_pack_POINT(void)
1786{
1787 /* POINT (pack 4) */
1788 TEST_TYPE(POINT, 8, 4);
1789 TEST_FIELD(POINT, LONG, x, 0, 4, 4);
1790 TEST_FIELD(POINT, LONG, y, 4, 4, 4);
1791}
1792
1793static void test_pack_POINTL(void)
1794{
1795 /* POINTL (pack 4) */
1796 TEST_TYPE(POINTL, 8, 4);
1797 TEST_FIELD(POINTL, LONG, x, 0, 4, 4);
1798 TEST_FIELD(POINTL, LONG, y, 4, 4, 4);
1799}
1800
1801static void test_pack_POINTS(void)
1802{
1803 /* POINTS (pack 4) */
1804 TEST_TYPE(POINTS, 4, 2);
1805 TEST_FIELD(POINTS, SHORT, x, 0, 2, 2);
1806 TEST_FIELD(POINTS, SHORT, y, 2, 2, 2);
1807}
1808
1809static void test_pack_PPOINT(void)
1810{
1811 /* PPOINT */
1812 TEST_TYPE(PPOINT, 4, 4);
1813 TEST_TYPE_POINTER(PPOINT, 8, 4);
1814}
1815
1816static void test_pack_PPOINTS(void)
1817{
1818 /* PPOINTS */
1819 TEST_TYPE(PPOINTS, 4, 4);
1820 TEST_TYPE_POINTER(PPOINTS, 4, 2);
1821}
1822
1823static void test_pack_PRECT(void)
1824{
1825 /* PRECT */
1826 TEST_TYPE(PRECT, 4, 4);
1827 TEST_TYPE_POINTER(PRECT, 16, 4);
1828}
1829
1830static void test_pack_PRECTL(void)
1831{
1832 /* PRECTL */
1833 TEST_TYPE(PRECTL, 4, 4);
1834 TEST_TYPE_POINTER(PRECTL, 16, 4);
1835}
1836
1837static void test_pack_PROC(void)
1838{
1839 /* PROC */
1840 TEST_TYPE(PROC, 4, 4);
1841}
1842
1843static void test_pack_PSIZE(void)
1844{
1845 /* PSIZE */
1846 TEST_TYPE(PSIZE, 4, 4);
1847 TEST_TYPE_POINTER(PSIZE, 8, 4);
1848}
1849
1850static void test_pack_RECT(void)
1851{
1852 /* RECT (pack 4) */
1853 TEST_TYPE(RECT, 16, 4);
1854 TEST_FIELD(RECT, INT, left, 0, 4, 4);
1855 TEST_FIELD(RECT, INT, top, 4, 4, 4);
1856 TEST_FIELD(RECT, INT, right, 8, 4, 4);
1857 TEST_FIELD(RECT, INT, bottom, 12, 4, 4);
1858}
1859
1860static void test_pack_RECTL(void)
1861{
1862 /* RECTL (pack 4) */
1863 TEST_TYPE(RECTL, 16, 4);
1864 TEST_FIELD(RECTL, LONG, left, 0, 4, 4);
1865 TEST_FIELD(RECTL, LONG, top, 4, 4, 4);
1866 TEST_FIELD(RECTL, LONG, right, 8, 4, 4);
1867 TEST_FIELD(RECTL, LONG, bottom, 12, 4, 4);
1868}
1869
1870static void test_pack_SIZE(void)
1871{
1872 /* SIZE (pack 4) */
1873 TEST_TYPE(SIZE, 8, 4);
1874 TEST_FIELD(SIZE, LONG, cx, 0, 4, 4);
1875 TEST_FIELD(SIZE, LONG, cy, 4, 4, 4);
1876}
1877
1878static void test_pack_SIZEL(void)
1879{
1880 /* SIZEL */
1881 TEST_TYPE(SIZEL, 8, 4);
1882}
1883
1884static void test_pack_WPARAM(void)
1885{
1886 /* WPARAM */
1887 TEST_TYPE(WPARAM, 4, 4);
1888}
1889
1890static void test_pack(void)
1891{
1892 test_pack_ACCESS_ALLOWED_ACE();
1893 test_pack_ACCESS_DENIED_ACE();
1894 test_pack_ACCESS_MASK();
1895 test_pack_ACE_HEADER();
1896 test_pack_ACL();
1897 test_pack_ATOM();
1898 test_pack_BOOL();
1899 test_pack_BOOLEAN();
1900 test_pack_BYTE();
1901 test_pack_CCHAR();
1902 test_pack_CHAR();
1903 test_pack_COLORREF();
1904 test_pack_DWORD();
1905 test_pack_DWORD32();
1906 test_pack_DWORD_PTR();
1907 test_pack_EXCEPTION_POINTERS();
1908 test_pack_EXCEPTION_RECORD();
1909 test_pack_EXECUTION_STATE();
1910 test_pack_FARPROC();
1911 test_pack_FLOAT();
1912 test_pack_FLOATING_SAVE_AREA();
1913 test_pack_FPO_DATA();
1914 test_pack_GENERIC_MAPPING();
1915 test_pack_GLOBALHANDLE();
1916 test_pack_HALF_PTR();
1917 test_pack_HANDLE();
1918 test_pack_HCURSOR();
1919 test_pack_HFILE();
1920 test_pack_HGDIOBJ();
1921 test_pack_HGLOBAL();
1922 test_pack_HLOCAL();
1923 test_pack_HMODULE();
1924 test_pack_HRESULT();
1925 test_pack_IMAGE_ARCHIVE_MEMBER_HEADER();
1926 test_pack_IMAGE_AUX_SYMBOL();
1927 test_pack_IMAGE_BASE_RELOCATION();
1928 test_pack_IMAGE_BOUND_FORWARDER_REF();
1929 test_pack_IMAGE_BOUND_IMPORT_DESCRIPTOR();
1930 test_pack_IMAGE_COFF_SYMBOLS_HEADER();
1931 test_pack_IMAGE_DATA_DIRECTORY();
1932 test_pack_IMAGE_DEBUG_DIRECTORY();
1933 test_pack_IMAGE_DEBUG_MISC();
1934 test_pack_IMAGE_DOS_HEADER();
1935 test_pack_IMAGE_EXPORT_DIRECTORY();
1936 test_pack_IMAGE_FILE_HEADER();
1937 test_pack_IMAGE_FUNCTION_ENTRY();
1938 test_pack_IMAGE_IMPORT_BY_NAME();
1939 test_pack_IMAGE_LOAD_CONFIG_DIRECTORY();
1940 test_pack_IMAGE_NT_HEADERS();
1941 test_pack_IMAGE_OPTIONAL_HEADER();
1942 test_pack_IMAGE_OS2_HEADER();
1943 test_pack_IMAGE_RESOURCE_DATA_ENTRY();
1944 test_pack_IMAGE_RESOURCE_DIRECTORY();
1945 test_pack_IMAGE_RESOURCE_DIRECTORY_ENTRY();
1946 test_pack_IMAGE_RESOURCE_DIRECTORY_STRING();
1947 test_pack_IMAGE_RESOURCE_DIR_STRING_U();
1948 test_pack_IMAGE_SEPARATE_DEBUG_HEADER();
1949 test_pack_IMAGE_THUNK_DATA();
1950 test_pack_IMAGE_TLS_DIRECTORY();
1951 test_pack_IMAGE_VXD_HEADER();
1952 test_pack_INT();
1953 test_pack_INT32();
1954 test_pack_INT_PTR();
1955 test_pack_LANGID();
1956 test_pack_LCID();
1957 test_pack_LIST_ENTRY();
1958 test_pack_LOCALHANDLE();
1959 test_pack_LONG();
1960 test_pack_LONG32();
1961 test_pack_LONG_PTR();
1962 test_pack_LPARAM();
1963 test_pack_LPCRECT();
1964 test_pack_LPCRECTL();
1965 test_pack_LPCVOID();
1966 test_pack_LPPOINT();
1967 test_pack_LPPOINTS();
1968 test_pack_LPRECT();
1969 test_pack_LPRECTL();
1970 test_pack_LPSIZE();
1971 test_pack_LPTOP_LEVEL_EXCEPTION_FILTER();
1972 test_pack_LRESULT();
1973 test_pack_LUID();
1974 test_pack_LUID_AND_ATTRIBUTES();
1975 test_pack_MEMORY_BASIC_INFORMATION();
1976 test_pack_MESSAGE_RESOURCE_BLOCK();
1977 test_pack_MESSAGE_RESOURCE_DATA();
1978 test_pack_MESSAGE_RESOURCE_ENTRY();
1979 test_pack_PACCESS_ALLOWED_ACE();
1980 test_pack_PACCESS_DENIED_ACE();
1981 test_pack_PACCESS_TOKEN();
1982 test_pack_PACE_HEADER();
1983 test_pack_PACL();
1984 test_pack_PCCH();
1985 test_pack_PCH();
1986 test_pack_PCSTR();
1987 test_pack_PCWCH();
1988 test_pack_PCWSTR();
1989 test_pack_PEXCEPTION_POINTERS();
1990 test_pack_PEXCEPTION_RECORD();
1991 test_pack_PFLOATING_SAVE_AREA();
1992 test_pack_PFPO_DATA();
1993 test_pack_PGENERIC_MAPPING();
1994 test_pack_PHANDLE();
1995 test_pack_PIMAGE_ARCHIVE_MEMBER_HEADER();
1996 test_pack_PIMAGE_AUX_SYMBOL();
1997 test_pack_PIMAGE_BASE_RELOCATION();
1998 test_pack_PIMAGE_BOUND_FORWARDER_REF();
1999 test_pack_PIMAGE_BOUND_IMPORT_DESCRIPTOR();
2000 test_pack_PIMAGE_COFF_SYMBOLS_HEADER();
2001 test_pack_PIMAGE_DATA_DIRECTORY();
2002 test_pack_PIMAGE_DEBUG_DIRECTORY();
2003 test_pack_PIMAGE_DEBUG_MISC();
2004 test_pack_PIMAGE_DOS_HEADER();
2005 test_pack_PIMAGE_EXPORT_DIRECTORY();
2006 test_pack_PIMAGE_FILE_HEADER();
2007 test_pack_PIMAGE_FUNCTION_ENTRY();
2008 test_pack_PIMAGE_IMPORT_BY_NAME();
2009 test_pack_PIMAGE_IMPORT_DESCRIPTOR();
2010 test_pack_PIMAGE_LINENUMBER();
2011 test_pack_PIMAGE_LOAD_CONFIG_DIRECTORY();
2012 test_pack_PIMAGE_NT_HEADERS();
2013 test_pack_PIMAGE_OPTIONAL_HEADER();
2014 test_pack_PIMAGE_OS2_HEADER();
2015 test_pack_PIMAGE_RELOCATION();
2016 test_pack_PIMAGE_RESOURCE_DATA_ENTRY();
2017 test_pack_PIMAGE_RESOURCE_DIRECTORY();
2018 test_pack_PIMAGE_RESOURCE_DIRECTORY_ENTRY();
2019 test_pack_PIMAGE_RESOURCE_DIRECTORY_STRING();
2020 test_pack_PIMAGE_RESOURCE_DIR_STRING_U();
2021 test_pack_PIMAGE_SECTION_HEADER();
2022 test_pack_PIMAGE_SEPARATE_DEBUG_HEADER();
2023 test_pack_PIMAGE_SYMBOL();
2024 test_pack_PIMAGE_THUNK_DATA();
2025 test_pack_PIMAGE_TLS_CALLBACK();
2026 test_pack_PIMAGE_TLS_DIRECTORY();
2027 test_pack_PIMAGE_VXD_HEADER();
2028 test_pack_PISECURITY_DESCRIPTOR_RELATIVE();
2029 test_pack_PLARGE_INTEGER();
2030 test_pack_PLIST_ENTRY();
2031 test_pack_PLUID();
2032 test_pack_PMEMORY_BASIC_INFORMATION();
2033 test_pack_PMESSAGE_RESOURCE_BLOCK();
2034 test_pack_PMESSAGE_RESOURCE_DATA();
2035 test_pack_PMESSAGE_RESOURCE_ENTRY();
2036 test_pack_PNT_TIB();
2037 test_pack_POINT();
2038 test_pack_POINTL();
2039 test_pack_POINTS();
2040 test_pack_PPOINT();
2041 test_pack_PPOINTS();
2042 test_pack_PPRIVILEGE_SET();
2043 test_pack_PRECT();
2044 test_pack_PRECTL();
2045 test_pack_PRIVILEGE_SET();
2046 test_pack_PRLIST_ENTRY();
2047 test_pack_PROC();
2048 test_pack_PRTL_CRITICAL_SECTION();
2049 test_pack_PRTL_CRITICAL_SECTION_DEBUG();
2050 test_pack_PRTL_RESOURCE_DEBUG();
2051 test_pack_PSECURITY_QUALITY_OF_SERVICE();
2052 test_pack_PSID_IDENTIFIER_AUTHORITY();
2053 test_pack_PSINGLE_LIST_ENTRY();
2054 test_pack_PSIZE();
2055 test_pack_PSTR();
2056 test_pack_PSYSTEM_ALARM_ACE();
2057 test_pack_PSYSTEM_AUDIT_ACE();
2058 test_pack_PTOKEN_PRIVILEGES();
2059 test_pack_PTOP_LEVEL_EXCEPTION_FILTER();
2060 test_pack_PTSTR();
2061 test_pack_PULARGE_INTEGER();
2062 test_pack_PVOID();
2063 test_pack_PWCH();
2064 test_pack_PWSTR();
2065 test_pack_RECT();
2066 test_pack_RECTL();
2067 test_pack_RTL_CRITICAL_SECTION();
2068 test_pack_RTL_CRITICAL_SECTION_DEBUG();
2069 test_pack_RTL_RESOURCE_DEBUG();
2070 test_pack_SECURITY_CONTEXT_TRACKING_MODE();
2071 test_pack_SECURITY_DESCRIPTOR();
2072 test_pack_SECURITY_DESCRIPTOR_CONTROL();
2073 test_pack_SECURITY_DESCRIPTOR_RELATIVE();
2074 test_pack_SECURITY_INFORMATION();
2075 test_pack_SHORT();
2076 test_pack_SID();
2077 test_pack_SID_AND_ATTRIBUTES();
2078 test_pack_SID_IDENTIFIER_AUTHORITY();
2079 test_pack_SINGLE_LIST_ENTRY();
2080 test_pack_SIZE();
2081 test_pack_SIZEL();
2082 test_pack_SIZE_T();
2083 test_pack_SSIZE_T();
2084 test_pack_SYSTEM_ALARM_ACE();
2085 test_pack_SYSTEM_AUDIT_ACE();
2086 test_pack_TCHAR();
2087 test_pack_TOKEN_DEFAULT_DACL();
2088 test_pack_TOKEN_GROUPS();
2089 test_pack_TOKEN_OWNER();
2090 test_pack_TOKEN_PRIMARY_GROUP();
2091 test_pack_TOKEN_PRIVILEGES();
2092 test_pack_TOKEN_SOURCE();
2093 test_pack_TOKEN_USER();
2094 test_pack_UCHAR();
2095 test_pack_UHALF_PTR();
2096 test_pack_UINT();
2097 test_pack_UINT32();
2098 test_pack_UINT_PTR();
2099 test_pack_ULONG();
2100 test_pack_ULONG32();
2101 test_pack_ULONG_PTR();
2102 test_pack_USHORT();
2103 test_pack_WAITORTIMERCALLBACKFUNC();
2104 test_pack_WCHAR();
2105 test_pack_WORD();
2106 test_pack_WPARAM();
2107}
2108
2109START_TEST(generated)
2110{
2111 test_pack();
2112}
Note: See TracBrowser for help on using the repository browser.