From b141e6e33bd1eada44c9e4e36d61aa10c0545758 Mon Sep 17 00:00:00 2001 From: Alexandre Julliard Date: Wed, 7 Apr 2010 17:25:19 +0200 Subject: [PATCH] winapi: Add a few more types to the ntdll generated tests. --- dlls/ntdll/tests/generated.c | 655 +++++++++++++++++++++++++++++++++++ tools/winapi/tests.dat | 12 +- 2 files changed, 666 insertions(+), 1 deletion(-) diff --git a/dlls/ntdll/tests/generated.c b/dlls/ntdll/tests/generated.c index b57933df395..86d6425f091 100644 --- a/dlls/ntdll/tests/generated.c +++ b/dlls/ntdll/tests/generated.c @@ -946,6 +946,242 @@ static void test_pack_IMAGE_NT_HEADERS(void) TEST_TYPE_ALIGN (IMAGE_NT_HEADERS, 8) } +static void test_pack_IMAGE_NT_HEADERS32(void) +{ + /* IMAGE_NT_HEADERS32 */ + TEST_TYPE_SIZE (IMAGE_NT_HEADERS32, 248) + TEST_TYPE_ALIGN (IMAGE_NT_HEADERS32, 4) + TEST_FIELD_SIZE (IMAGE_NT_HEADERS32, Signature, 4) + TEST_FIELD_ALIGN (IMAGE_NT_HEADERS32, Signature, 4) + TEST_FIELD_OFFSET(IMAGE_NT_HEADERS32, Signature, 0) + TEST_FIELD_SIZE (IMAGE_NT_HEADERS32, FileHeader, 20) + TEST_FIELD_ALIGN (IMAGE_NT_HEADERS32, FileHeader, 4) + TEST_FIELD_OFFSET(IMAGE_NT_HEADERS32, FileHeader, 4) + TEST_FIELD_SIZE (IMAGE_NT_HEADERS32, OptionalHeader, 224) + TEST_FIELD_ALIGN (IMAGE_NT_HEADERS32, OptionalHeader, 4) + TEST_FIELD_OFFSET(IMAGE_NT_HEADERS32, OptionalHeader, 24) +} + +static void test_pack_IMAGE_NT_HEADERS64(void) +{ + /* IMAGE_NT_HEADERS64 */ + TEST_TYPE_SIZE (IMAGE_NT_HEADERS64, 264) + TEST_TYPE_ALIGN (IMAGE_NT_HEADERS64, 8) + TEST_FIELD_SIZE (IMAGE_NT_HEADERS64, Signature, 4) + TEST_FIELD_ALIGN (IMAGE_NT_HEADERS64, Signature, 4) + TEST_FIELD_OFFSET(IMAGE_NT_HEADERS64, Signature, 0) + TEST_FIELD_SIZE (IMAGE_NT_HEADERS64, FileHeader, 20) + TEST_FIELD_ALIGN (IMAGE_NT_HEADERS64, FileHeader, 4) + TEST_FIELD_OFFSET(IMAGE_NT_HEADERS64, FileHeader, 4) + TEST_FIELD_SIZE (IMAGE_NT_HEADERS64, OptionalHeader, 240) + TEST_FIELD_ALIGN (IMAGE_NT_HEADERS64, OptionalHeader, 8) + TEST_FIELD_OFFSET(IMAGE_NT_HEADERS64, OptionalHeader, 24) +} + +static void test_pack_IMAGE_OPTIONAL_HEADER(void) +{ + /* IMAGE_OPTIONAL_HEADER */ + TEST_TYPE_SIZE (IMAGE_OPTIONAL_HEADER, 240) + TEST_TYPE_ALIGN (IMAGE_OPTIONAL_HEADER, 8) +} + +static void test_pack_IMAGE_OPTIONAL_HEADER32(void) +{ + /* IMAGE_OPTIONAL_HEADER32 */ + TEST_TYPE_SIZE (IMAGE_OPTIONAL_HEADER32, 224) + TEST_TYPE_ALIGN (IMAGE_OPTIONAL_HEADER32, 4) + TEST_FIELD_SIZE (IMAGE_OPTIONAL_HEADER32, Magic, 2) + TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER32, Magic, 2) + TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER32, Magic, 0) + TEST_FIELD_SIZE (IMAGE_OPTIONAL_HEADER32, MajorLinkerVersion, 1) + TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER32, MajorLinkerVersion, 1) + TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER32, MajorLinkerVersion, 2) + TEST_FIELD_SIZE (IMAGE_OPTIONAL_HEADER32, MinorLinkerVersion, 1) + TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER32, MinorLinkerVersion, 1) + TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER32, MinorLinkerVersion, 3) + TEST_FIELD_SIZE (IMAGE_OPTIONAL_HEADER32, SizeOfCode, 4) + TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER32, SizeOfCode, 4) + TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER32, SizeOfCode, 4) + TEST_FIELD_SIZE (IMAGE_OPTIONAL_HEADER32, SizeOfInitializedData, 4) + TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER32, SizeOfInitializedData, 4) + TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER32, SizeOfInitializedData, 8) + TEST_FIELD_SIZE (IMAGE_OPTIONAL_HEADER32, SizeOfUninitializedData, 4) + TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER32, SizeOfUninitializedData, 4) + TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER32, SizeOfUninitializedData, 12) + TEST_FIELD_SIZE (IMAGE_OPTIONAL_HEADER32, AddressOfEntryPoint, 4) + TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER32, AddressOfEntryPoint, 4) + TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER32, AddressOfEntryPoint, 16) + TEST_FIELD_SIZE (IMAGE_OPTIONAL_HEADER32, BaseOfCode, 4) + TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER32, BaseOfCode, 4) + TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER32, BaseOfCode, 20) + TEST_FIELD_SIZE (IMAGE_OPTIONAL_HEADER32, BaseOfData, 4) + TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER32, BaseOfData, 4) + TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER32, BaseOfData, 24) + TEST_FIELD_SIZE (IMAGE_OPTIONAL_HEADER32, ImageBase, 4) + TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER32, ImageBase, 4) + TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER32, ImageBase, 28) + TEST_FIELD_SIZE (IMAGE_OPTIONAL_HEADER32, SectionAlignment, 4) + TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER32, SectionAlignment, 4) + TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER32, SectionAlignment, 32) + TEST_FIELD_SIZE (IMAGE_OPTIONAL_HEADER32, FileAlignment, 4) + TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER32, FileAlignment, 4) + TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER32, FileAlignment, 36) + TEST_FIELD_SIZE (IMAGE_OPTIONAL_HEADER32, MajorOperatingSystemVersion, 2) + TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER32, MajorOperatingSystemVersion, 2) + TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER32, MajorOperatingSystemVersion, 40) + TEST_FIELD_SIZE (IMAGE_OPTIONAL_HEADER32, MinorOperatingSystemVersion, 2) + TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER32, MinorOperatingSystemVersion, 2) + TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER32, MinorOperatingSystemVersion, 42) + TEST_FIELD_SIZE (IMAGE_OPTIONAL_HEADER32, MajorImageVersion, 2) + TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER32, MajorImageVersion, 2) + TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER32, MajorImageVersion, 44) + TEST_FIELD_SIZE (IMAGE_OPTIONAL_HEADER32, MinorImageVersion, 2) + TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER32, MinorImageVersion, 2) + TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER32, MinorImageVersion, 46) + TEST_FIELD_SIZE (IMAGE_OPTIONAL_HEADER32, MajorSubsystemVersion, 2) + TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER32, MajorSubsystemVersion, 2) + TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER32, MajorSubsystemVersion, 48) + TEST_FIELD_SIZE (IMAGE_OPTIONAL_HEADER32, MinorSubsystemVersion, 2) + TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER32, MinorSubsystemVersion, 2) + TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER32, MinorSubsystemVersion, 50) + TEST_FIELD_SIZE (IMAGE_OPTIONAL_HEADER32, Win32VersionValue, 4) + TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER32, Win32VersionValue, 4) + TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER32, Win32VersionValue, 52) + TEST_FIELD_SIZE (IMAGE_OPTIONAL_HEADER32, SizeOfImage, 4) + TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER32, SizeOfImage, 4) + TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER32, SizeOfImage, 56) + TEST_FIELD_SIZE (IMAGE_OPTIONAL_HEADER32, SizeOfHeaders, 4) + TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER32, SizeOfHeaders, 4) + TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER32, SizeOfHeaders, 60) + TEST_FIELD_SIZE (IMAGE_OPTIONAL_HEADER32, CheckSum, 4) + TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER32, CheckSum, 4) + TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER32, CheckSum, 64) + TEST_FIELD_SIZE (IMAGE_OPTIONAL_HEADER32, Subsystem, 2) + TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER32, Subsystem, 2) + TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER32, Subsystem, 68) + TEST_FIELD_SIZE (IMAGE_OPTIONAL_HEADER32, DllCharacteristics, 2) + TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER32, DllCharacteristics, 2) + TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER32, DllCharacteristics, 70) + TEST_FIELD_SIZE (IMAGE_OPTIONAL_HEADER32, SizeOfStackReserve, 4) + TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER32, SizeOfStackReserve, 4) + TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER32, SizeOfStackReserve, 72) + TEST_FIELD_SIZE (IMAGE_OPTIONAL_HEADER32, SizeOfStackCommit, 4) + TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER32, SizeOfStackCommit, 4) + TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER32, SizeOfStackCommit, 76) + TEST_FIELD_SIZE (IMAGE_OPTIONAL_HEADER32, SizeOfHeapReserve, 4) + TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER32, SizeOfHeapReserve, 4) + TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER32, SizeOfHeapReserve, 80) + TEST_FIELD_SIZE (IMAGE_OPTIONAL_HEADER32, SizeOfHeapCommit, 4) + TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER32, SizeOfHeapCommit, 4) + TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER32, SizeOfHeapCommit, 84) + TEST_FIELD_SIZE (IMAGE_OPTIONAL_HEADER32, LoaderFlags, 4) + TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER32, LoaderFlags, 4) + TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER32, LoaderFlags, 88) + TEST_FIELD_SIZE (IMAGE_OPTIONAL_HEADER32, NumberOfRvaAndSizes, 4) + TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER32, NumberOfRvaAndSizes, 4) + TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER32, NumberOfRvaAndSizes, 92) + TEST_FIELD_SIZE (IMAGE_OPTIONAL_HEADER32, DataDirectory, 128) + TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER32, DataDirectory, 4) + TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER32, DataDirectory, 96) +} + +static void test_pack_IMAGE_OPTIONAL_HEADER64(void) +{ + /* IMAGE_OPTIONAL_HEADER64 */ + TEST_TYPE_SIZE (IMAGE_OPTIONAL_HEADER64, 240) + TEST_TYPE_ALIGN (IMAGE_OPTIONAL_HEADER64, 8) + TEST_FIELD_SIZE (IMAGE_OPTIONAL_HEADER64, Magic, 2) + TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER64, Magic, 2) + TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER64, Magic, 0) + TEST_FIELD_SIZE (IMAGE_OPTIONAL_HEADER64, MajorLinkerVersion, 1) + TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER64, MajorLinkerVersion, 1) + TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER64, MajorLinkerVersion, 2) + TEST_FIELD_SIZE (IMAGE_OPTIONAL_HEADER64, MinorLinkerVersion, 1) + TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER64, MinorLinkerVersion, 1) + TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER64, MinorLinkerVersion, 3) + TEST_FIELD_SIZE (IMAGE_OPTIONAL_HEADER64, SizeOfCode, 4) + TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER64, SizeOfCode, 4) + TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER64, SizeOfCode, 4) + TEST_FIELD_SIZE (IMAGE_OPTIONAL_HEADER64, SizeOfInitializedData, 4) + TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER64, SizeOfInitializedData, 4) + TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER64, SizeOfInitializedData, 8) + TEST_FIELD_SIZE (IMAGE_OPTIONAL_HEADER64, SizeOfUninitializedData, 4) + TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER64, SizeOfUninitializedData, 4) + TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER64, SizeOfUninitializedData, 12) + TEST_FIELD_SIZE (IMAGE_OPTIONAL_HEADER64, AddressOfEntryPoint, 4) + TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER64, AddressOfEntryPoint, 4) + TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER64, AddressOfEntryPoint, 16) + TEST_FIELD_SIZE (IMAGE_OPTIONAL_HEADER64, BaseOfCode, 4) + TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER64, BaseOfCode, 4) + TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER64, BaseOfCode, 20) + TEST_FIELD_SIZE (IMAGE_OPTIONAL_HEADER64, ImageBase, 8) + TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER64, ImageBase, 8) + TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER64, ImageBase, 24) + TEST_FIELD_SIZE (IMAGE_OPTIONAL_HEADER64, SectionAlignment, 4) + TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER64, SectionAlignment, 4) + TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER64, SectionAlignment, 32) + TEST_FIELD_SIZE (IMAGE_OPTIONAL_HEADER64, FileAlignment, 4) + TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER64, FileAlignment, 4) + TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER64, FileAlignment, 36) + TEST_FIELD_SIZE (IMAGE_OPTIONAL_HEADER64, MajorOperatingSystemVersion, 2) + TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER64, MajorOperatingSystemVersion, 2) + TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER64, MajorOperatingSystemVersion, 40) + TEST_FIELD_SIZE (IMAGE_OPTIONAL_HEADER64, MinorOperatingSystemVersion, 2) + TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER64, MinorOperatingSystemVersion, 2) + TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER64, MinorOperatingSystemVersion, 42) + TEST_FIELD_SIZE (IMAGE_OPTIONAL_HEADER64, MajorImageVersion, 2) + TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER64, MajorImageVersion, 2) + TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER64, MajorImageVersion, 44) + TEST_FIELD_SIZE (IMAGE_OPTIONAL_HEADER64, MinorImageVersion, 2) + TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER64, MinorImageVersion, 2) + TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER64, MinorImageVersion, 46) + TEST_FIELD_SIZE (IMAGE_OPTIONAL_HEADER64, MajorSubsystemVersion, 2) + TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER64, MajorSubsystemVersion, 2) + TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER64, MajorSubsystemVersion, 48) + TEST_FIELD_SIZE (IMAGE_OPTIONAL_HEADER64, MinorSubsystemVersion, 2) + TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER64, MinorSubsystemVersion, 2) + TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER64, MinorSubsystemVersion, 50) + TEST_FIELD_SIZE (IMAGE_OPTIONAL_HEADER64, Win32VersionValue, 4) + TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER64, Win32VersionValue, 4) + TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER64, Win32VersionValue, 52) + TEST_FIELD_SIZE (IMAGE_OPTIONAL_HEADER64, SizeOfImage, 4) + TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER64, SizeOfImage, 4) + TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER64, SizeOfImage, 56) + TEST_FIELD_SIZE (IMAGE_OPTIONAL_HEADER64, SizeOfHeaders, 4) + TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER64, SizeOfHeaders, 4) + TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER64, SizeOfHeaders, 60) + TEST_FIELD_SIZE (IMAGE_OPTIONAL_HEADER64, CheckSum, 4) + TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER64, CheckSum, 4) + TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER64, CheckSum, 64) + TEST_FIELD_SIZE (IMAGE_OPTIONAL_HEADER64, Subsystem, 2) + TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER64, Subsystem, 2) + TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER64, Subsystem, 68) + TEST_FIELD_SIZE (IMAGE_OPTIONAL_HEADER64, DllCharacteristics, 2) + TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER64, DllCharacteristics, 2) + TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER64, DllCharacteristics, 70) + TEST_FIELD_SIZE (IMAGE_OPTIONAL_HEADER64, SizeOfStackReserve, 8) + TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER64, SizeOfStackReserve, 8) + TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER64, SizeOfStackReserve, 72) + TEST_FIELD_SIZE (IMAGE_OPTIONAL_HEADER64, SizeOfStackCommit, 8) + TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER64, SizeOfStackCommit, 8) + TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER64, SizeOfStackCommit, 80) + TEST_FIELD_SIZE (IMAGE_OPTIONAL_HEADER64, SizeOfHeapReserve, 8) + TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER64, SizeOfHeapReserve, 8) + TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER64, SizeOfHeapReserve, 88) + TEST_FIELD_SIZE (IMAGE_OPTIONAL_HEADER64, SizeOfHeapCommit, 8) + TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER64, SizeOfHeapCommit, 8) + TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER64, SizeOfHeapCommit, 96) + TEST_FIELD_SIZE (IMAGE_OPTIONAL_HEADER64, LoaderFlags, 4) + TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER64, LoaderFlags, 4) + TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER64, LoaderFlags, 104) + TEST_FIELD_SIZE (IMAGE_OPTIONAL_HEADER64, NumberOfRvaAndSizes, 4) + TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER64, NumberOfRvaAndSizes, 4) + TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER64, NumberOfRvaAndSizes, 108) + TEST_FIELD_SIZE (IMAGE_OPTIONAL_HEADER64, DataDirectory, 128) + TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER64, DataDirectory, 4) + TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER64, DataDirectory, 112) +} + static void test_pack_IMAGE_OS2_HEADER(void) { /* IMAGE_OS2_HEADER (pack 2) */ @@ -1194,6 +1430,56 @@ static void test_pack_IMAGE_TLS_DIRECTORY(void) TEST_TYPE_ALIGN (IMAGE_TLS_DIRECTORY, 8) } +static void test_pack_IMAGE_TLS_DIRECTORY32(void) +{ + /* IMAGE_TLS_DIRECTORY32 */ + TEST_TYPE_SIZE (IMAGE_TLS_DIRECTORY32, 24) + TEST_TYPE_ALIGN (IMAGE_TLS_DIRECTORY32, 4) + TEST_FIELD_SIZE (IMAGE_TLS_DIRECTORY32, StartAddressOfRawData, 4) + TEST_FIELD_ALIGN (IMAGE_TLS_DIRECTORY32, StartAddressOfRawData, 4) + TEST_FIELD_OFFSET(IMAGE_TLS_DIRECTORY32, StartAddressOfRawData, 0) + TEST_FIELD_SIZE (IMAGE_TLS_DIRECTORY32, EndAddressOfRawData, 4) + TEST_FIELD_ALIGN (IMAGE_TLS_DIRECTORY32, EndAddressOfRawData, 4) + TEST_FIELD_OFFSET(IMAGE_TLS_DIRECTORY32, EndAddressOfRawData, 4) + TEST_FIELD_SIZE (IMAGE_TLS_DIRECTORY32, AddressOfIndex, 4) + TEST_FIELD_ALIGN (IMAGE_TLS_DIRECTORY32, AddressOfIndex, 4) + TEST_FIELD_OFFSET(IMAGE_TLS_DIRECTORY32, AddressOfIndex, 8) + TEST_FIELD_SIZE (IMAGE_TLS_DIRECTORY32, AddressOfCallBacks, 4) + TEST_FIELD_ALIGN (IMAGE_TLS_DIRECTORY32, AddressOfCallBacks, 4) + TEST_FIELD_OFFSET(IMAGE_TLS_DIRECTORY32, AddressOfCallBacks, 12) + TEST_FIELD_SIZE (IMAGE_TLS_DIRECTORY32, SizeOfZeroFill, 4) + TEST_FIELD_ALIGN (IMAGE_TLS_DIRECTORY32, SizeOfZeroFill, 4) + TEST_FIELD_OFFSET(IMAGE_TLS_DIRECTORY32, SizeOfZeroFill, 16) + TEST_FIELD_SIZE (IMAGE_TLS_DIRECTORY32, Characteristics, 4) + TEST_FIELD_ALIGN (IMAGE_TLS_DIRECTORY32, Characteristics, 4) + TEST_FIELD_OFFSET(IMAGE_TLS_DIRECTORY32, Characteristics, 20) +} + +static void test_pack_IMAGE_TLS_DIRECTORY64(void) +{ + /* IMAGE_TLS_DIRECTORY64 */ + TEST_TYPE_SIZE (IMAGE_TLS_DIRECTORY64, 40) + TEST_TYPE_ALIGN (IMAGE_TLS_DIRECTORY64, 8) + TEST_FIELD_SIZE (IMAGE_TLS_DIRECTORY64, StartAddressOfRawData, 8) + TEST_FIELD_ALIGN (IMAGE_TLS_DIRECTORY64, StartAddressOfRawData, 8) + TEST_FIELD_OFFSET(IMAGE_TLS_DIRECTORY64, StartAddressOfRawData, 0) + TEST_FIELD_SIZE (IMAGE_TLS_DIRECTORY64, EndAddressOfRawData, 8) + TEST_FIELD_ALIGN (IMAGE_TLS_DIRECTORY64, EndAddressOfRawData, 8) + TEST_FIELD_OFFSET(IMAGE_TLS_DIRECTORY64, EndAddressOfRawData, 8) + TEST_FIELD_SIZE (IMAGE_TLS_DIRECTORY64, AddressOfIndex, 8) + TEST_FIELD_ALIGN (IMAGE_TLS_DIRECTORY64, AddressOfIndex, 8) + TEST_FIELD_OFFSET(IMAGE_TLS_DIRECTORY64, AddressOfIndex, 16) + TEST_FIELD_SIZE (IMAGE_TLS_DIRECTORY64, AddressOfCallBacks, 8) + TEST_FIELD_ALIGN (IMAGE_TLS_DIRECTORY64, AddressOfCallBacks, 8) + TEST_FIELD_OFFSET(IMAGE_TLS_DIRECTORY64, AddressOfCallBacks, 24) + TEST_FIELD_SIZE (IMAGE_TLS_DIRECTORY64, SizeOfZeroFill, 4) + TEST_FIELD_ALIGN (IMAGE_TLS_DIRECTORY64, SizeOfZeroFill, 4) + TEST_FIELD_OFFSET(IMAGE_TLS_DIRECTORY64, SizeOfZeroFill, 32) + TEST_FIELD_SIZE (IMAGE_TLS_DIRECTORY64, Characteristics, 4) + TEST_FIELD_ALIGN (IMAGE_TLS_DIRECTORY64, Characteristics, 4) + TEST_FIELD_OFFSET(IMAGE_TLS_DIRECTORY64, Characteristics, 36) +} + static void test_pack_IMAGE_VXD_HEADER(void) { /* IMAGE_VXD_HEADER (pack 2) */ @@ -1882,6 +2168,24 @@ static void test_pack_PIMAGE_NT_HEADERS(void) TEST_TYPE_ALIGN (PIMAGE_NT_HEADERS, 8) } +static void test_pack_PIMAGE_NT_HEADERS32(void) +{ + /* PIMAGE_NT_HEADERS32 */ + TEST_TYPE_SIZE (PIMAGE_NT_HEADERS32, 8) + TEST_TYPE_ALIGN (PIMAGE_NT_HEADERS32, 8) + TEST_TARGET_SIZE (PIMAGE_NT_HEADERS32, 248) + TEST_TARGET_ALIGN(PIMAGE_NT_HEADERS32, 4) +} + +static void test_pack_PIMAGE_NT_HEADERS64(void) +{ + /* PIMAGE_NT_HEADERS64 */ + TEST_TYPE_SIZE (PIMAGE_NT_HEADERS64, 8) + TEST_TYPE_ALIGN (PIMAGE_NT_HEADERS64, 8) + TEST_TARGET_SIZE (PIMAGE_NT_HEADERS64, 264) + TEST_TARGET_ALIGN(PIMAGE_NT_HEADERS64, 8) +} + static void test_pack_PIMAGE_OPTIONAL_HEADER(void) { /* PIMAGE_OPTIONAL_HEADER */ @@ -1889,6 +2193,24 @@ static void test_pack_PIMAGE_OPTIONAL_HEADER(void) TEST_TYPE_ALIGN (PIMAGE_OPTIONAL_HEADER, 8) } +static void test_pack_PIMAGE_OPTIONAL_HEADER32(void) +{ + /* PIMAGE_OPTIONAL_HEADER32 */ + TEST_TYPE_SIZE (PIMAGE_OPTIONAL_HEADER32, 8) + TEST_TYPE_ALIGN (PIMAGE_OPTIONAL_HEADER32, 8) + TEST_TARGET_SIZE (PIMAGE_OPTIONAL_HEADER32, 224) + TEST_TARGET_ALIGN(PIMAGE_OPTIONAL_HEADER32, 4) +} + +static void test_pack_PIMAGE_OPTIONAL_HEADER64(void) +{ + /* PIMAGE_OPTIONAL_HEADER64 */ + TEST_TYPE_SIZE (PIMAGE_OPTIONAL_HEADER64, 8) + TEST_TYPE_ALIGN (PIMAGE_OPTIONAL_HEADER64, 8) + TEST_TARGET_SIZE (PIMAGE_OPTIONAL_HEADER64, 240) + TEST_TARGET_ALIGN(PIMAGE_OPTIONAL_HEADER64, 8) +} + static void test_pack_PIMAGE_OS2_HEADER(void) { /* PIMAGE_OS2_HEADER */ @@ -4035,6 +4357,242 @@ static void test_pack_IMAGE_NT_HEADERS(void) TEST_TYPE_ALIGN (IMAGE_NT_HEADERS, 4) } +static void test_pack_IMAGE_NT_HEADERS32(void) +{ + /* IMAGE_NT_HEADERS32 */ + TEST_TYPE_SIZE (IMAGE_NT_HEADERS32, 248) + TEST_TYPE_ALIGN (IMAGE_NT_HEADERS32, 4) + TEST_FIELD_SIZE (IMAGE_NT_HEADERS32, Signature, 4) + TEST_FIELD_ALIGN (IMAGE_NT_HEADERS32, Signature, 4) + TEST_FIELD_OFFSET(IMAGE_NT_HEADERS32, Signature, 0) + TEST_FIELD_SIZE (IMAGE_NT_HEADERS32, FileHeader, 20) + TEST_FIELD_ALIGN (IMAGE_NT_HEADERS32, FileHeader, 4) + TEST_FIELD_OFFSET(IMAGE_NT_HEADERS32, FileHeader, 4) + TEST_FIELD_SIZE (IMAGE_NT_HEADERS32, OptionalHeader, 224) + TEST_FIELD_ALIGN (IMAGE_NT_HEADERS32, OptionalHeader, 4) + TEST_FIELD_OFFSET(IMAGE_NT_HEADERS32, OptionalHeader, 24) +} + +static void test_pack_IMAGE_NT_HEADERS64(void) +{ + /* IMAGE_NT_HEADERS64 */ + TEST_TYPE_SIZE (IMAGE_NT_HEADERS64, 264) + TEST_TYPE_ALIGN (IMAGE_NT_HEADERS64, 8) + TEST_FIELD_SIZE (IMAGE_NT_HEADERS64, Signature, 4) + TEST_FIELD_ALIGN (IMAGE_NT_HEADERS64, Signature, 4) + TEST_FIELD_OFFSET(IMAGE_NT_HEADERS64, Signature, 0) + TEST_FIELD_SIZE (IMAGE_NT_HEADERS64, FileHeader, 20) + TEST_FIELD_ALIGN (IMAGE_NT_HEADERS64, FileHeader, 4) + TEST_FIELD_OFFSET(IMAGE_NT_HEADERS64, FileHeader, 4) + TEST_FIELD_SIZE (IMAGE_NT_HEADERS64, OptionalHeader, 240) + TEST_FIELD_ALIGN (IMAGE_NT_HEADERS64, OptionalHeader, 8) + TEST_FIELD_OFFSET(IMAGE_NT_HEADERS64, OptionalHeader, 24) +} + +static void test_pack_IMAGE_OPTIONAL_HEADER(void) +{ + /* IMAGE_OPTIONAL_HEADER */ + TEST_TYPE_SIZE (IMAGE_OPTIONAL_HEADER, 224) + TEST_TYPE_ALIGN (IMAGE_OPTIONAL_HEADER, 4) +} + +static void test_pack_IMAGE_OPTIONAL_HEADER32(void) +{ + /* IMAGE_OPTIONAL_HEADER32 */ + TEST_TYPE_SIZE (IMAGE_OPTIONAL_HEADER32, 224) + TEST_TYPE_ALIGN (IMAGE_OPTIONAL_HEADER32, 4) + TEST_FIELD_SIZE (IMAGE_OPTIONAL_HEADER32, Magic, 2) + TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER32, Magic, 2) + TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER32, Magic, 0) + TEST_FIELD_SIZE (IMAGE_OPTIONAL_HEADER32, MajorLinkerVersion, 1) + TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER32, MajorLinkerVersion, 1) + TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER32, MajorLinkerVersion, 2) + TEST_FIELD_SIZE (IMAGE_OPTIONAL_HEADER32, MinorLinkerVersion, 1) + TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER32, MinorLinkerVersion, 1) + TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER32, MinorLinkerVersion, 3) + TEST_FIELD_SIZE (IMAGE_OPTIONAL_HEADER32, SizeOfCode, 4) + TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER32, SizeOfCode, 4) + TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER32, SizeOfCode, 4) + TEST_FIELD_SIZE (IMAGE_OPTIONAL_HEADER32, SizeOfInitializedData, 4) + TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER32, SizeOfInitializedData, 4) + TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER32, SizeOfInitializedData, 8) + TEST_FIELD_SIZE (IMAGE_OPTIONAL_HEADER32, SizeOfUninitializedData, 4) + TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER32, SizeOfUninitializedData, 4) + TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER32, SizeOfUninitializedData, 12) + TEST_FIELD_SIZE (IMAGE_OPTIONAL_HEADER32, AddressOfEntryPoint, 4) + TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER32, AddressOfEntryPoint, 4) + TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER32, AddressOfEntryPoint, 16) + TEST_FIELD_SIZE (IMAGE_OPTIONAL_HEADER32, BaseOfCode, 4) + TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER32, BaseOfCode, 4) + TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER32, BaseOfCode, 20) + TEST_FIELD_SIZE (IMAGE_OPTIONAL_HEADER32, BaseOfData, 4) + TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER32, BaseOfData, 4) + TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER32, BaseOfData, 24) + TEST_FIELD_SIZE (IMAGE_OPTIONAL_HEADER32, ImageBase, 4) + TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER32, ImageBase, 4) + TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER32, ImageBase, 28) + TEST_FIELD_SIZE (IMAGE_OPTIONAL_HEADER32, SectionAlignment, 4) + TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER32, SectionAlignment, 4) + TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER32, SectionAlignment, 32) + TEST_FIELD_SIZE (IMAGE_OPTIONAL_HEADER32, FileAlignment, 4) + TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER32, FileAlignment, 4) + TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER32, FileAlignment, 36) + TEST_FIELD_SIZE (IMAGE_OPTIONAL_HEADER32, MajorOperatingSystemVersion, 2) + TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER32, MajorOperatingSystemVersion, 2) + TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER32, MajorOperatingSystemVersion, 40) + TEST_FIELD_SIZE (IMAGE_OPTIONAL_HEADER32, MinorOperatingSystemVersion, 2) + TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER32, MinorOperatingSystemVersion, 2) + TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER32, MinorOperatingSystemVersion, 42) + TEST_FIELD_SIZE (IMAGE_OPTIONAL_HEADER32, MajorImageVersion, 2) + TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER32, MajorImageVersion, 2) + TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER32, MajorImageVersion, 44) + TEST_FIELD_SIZE (IMAGE_OPTIONAL_HEADER32, MinorImageVersion, 2) + TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER32, MinorImageVersion, 2) + TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER32, MinorImageVersion, 46) + TEST_FIELD_SIZE (IMAGE_OPTIONAL_HEADER32, MajorSubsystemVersion, 2) + TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER32, MajorSubsystemVersion, 2) + TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER32, MajorSubsystemVersion, 48) + TEST_FIELD_SIZE (IMAGE_OPTIONAL_HEADER32, MinorSubsystemVersion, 2) + TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER32, MinorSubsystemVersion, 2) + TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER32, MinorSubsystemVersion, 50) + TEST_FIELD_SIZE (IMAGE_OPTIONAL_HEADER32, Win32VersionValue, 4) + TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER32, Win32VersionValue, 4) + TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER32, Win32VersionValue, 52) + TEST_FIELD_SIZE (IMAGE_OPTIONAL_HEADER32, SizeOfImage, 4) + TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER32, SizeOfImage, 4) + TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER32, SizeOfImage, 56) + TEST_FIELD_SIZE (IMAGE_OPTIONAL_HEADER32, SizeOfHeaders, 4) + TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER32, SizeOfHeaders, 4) + TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER32, SizeOfHeaders, 60) + TEST_FIELD_SIZE (IMAGE_OPTIONAL_HEADER32, CheckSum, 4) + TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER32, CheckSum, 4) + TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER32, CheckSum, 64) + TEST_FIELD_SIZE (IMAGE_OPTIONAL_HEADER32, Subsystem, 2) + TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER32, Subsystem, 2) + TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER32, Subsystem, 68) + TEST_FIELD_SIZE (IMAGE_OPTIONAL_HEADER32, DllCharacteristics, 2) + TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER32, DllCharacteristics, 2) + TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER32, DllCharacteristics, 70) + TEST_FIELD_SIZE (IMAGE_OPTIONAL_HEADER32, SizeOfStackReserve, 4) + TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER32, SizeOfStackReserve, 4) + TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER32, SizeOfStackReserve, 72) + TEST_FIELD_SIZE (IMAGE_OPTIONAL_HEADER32, SizeOfStackCommit, 4) + TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER32, SizeOfStackCommit, 4) + TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER32, SizeOfStackCommit, 76) + TEST_FIELD_SIZE (IMAGE_OPTIONAL_HEADER32, SizeOfHeapReserve, 4) + TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER32, SizeOfHeapReserve, 4) + TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER32, SizeOfHeapReserve, 80) + TEST_FIELD_SIZE (IMAGE_OPTIONAL_HEADER32, SizeOfHeapCommit, 4) + TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER32, SizeOfHeapCommit, 4) + TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER32, SizeOfHeapCommit, 84) + TEST_FIELD_SIZE (IMAGE_OPTIONAL_HEADER32, LoaderFlags, 4) + TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER32, LoaderFlags, 4) + TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER32, LoaderFlags, 88) + TEST_FIELD_SIZE (IMAGE_OPTIONAL_HEADER32, NumberOfRvaAndSizes, 4) + TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER32, NumberOfRvaAndSizes, 4) + TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER32, NumberOfRvaAndSizes, 92) + TEST_FIELD_SIZE (IMAGE_OPTIONAL_HEADER32, DataDirectory, 128) + TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER32, DataDirectory, 4) + TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER32, DataDirectory, 96) +} + +static void test_pack_IMAGE_OPTIONAL_HEADER64(void) +{ + /* IMAGE_OPTIONAL_HEADER64 */ + TEST_TYPE_SIZE (IMAGE_OPTIONAL_HEADER64, 240) + TEST_TYPE_ALIGN (IMAGE_OPTIONAL_HEADER64, 8) + TEST_FIELD_SIZE (IMAGE_OPTIONAL_HEADER64, Magic, 2) + TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER64, Magic, 2) + TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER64, Magic, 0) + TEST_FIELD_SIZE (IMAGE_OPTIONAL_HEADER64, MajorLinkerVersion, 1) + TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER64, MajorLinkerVersion, 1) + TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER64, MajorLinkerVersion, 2) + TEST_FIELD_SIZE (IMAGE_OPTIONAL_HEADER64, MinorLinkerVersion, 1) + TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER64, MinorLinkerVersion, 1) + TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER64, MinorLinkerVersion, 3) + TEST_FIELD_SIZE (IMAGE_OPTIONAL_HEADER64, SizeOfCode, 4) + TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER64, SizeOfCode, 4) + TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER64, SizeOfCode, 4) + TEST_FIELD_SIZE (IMAGE_OPTIONAL_HEADER64, SizeOfInitializedData, 4) + TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER64, SizeOfInitializedData, 4) + TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER64, SizeOfInitializedData, 8) + TEST_FIELD_SIZE (IMAGE_OPTIONAL_HEADER64, SizeOfUninitializedData, 4) + TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER64, SizeOfUninitializedData, 4) + TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER64, SizeOfUninitializedData, 12) + TEST_FIELD_SIZE (IMAGE_OPTIONAL_HEADER64, AddressOfEntryPoint, 4) + TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER64, AddressOfEntryPoint, 4) + TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER64, AddressOfEntryPoint, 16) + TEST_FIELD_SIZE (IMAGE_OPTIONAL_HEADER64, BaseOfCode, 4) + TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER64, BaseOfCode, 4) + TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER64, BaseOfCode, 20) + TEST_FIELD_SIZE (IMAGE_OPTIONAL_HEADER64, ImageBase, 8) + TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER64, ImageBase, 8) + TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER64, ImageBase, 24) + TEST_FIELD_SIZE (IMAGE_OPTIONAL_HEADER64, SectionAlignment, 4) + TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER64, SectionAlignment, 4) + TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER64, SectionAlignment, 32) + TEST_FIELD_SIZE (IMAGE_OPTIONAL_HEADER64, FileAlignment, 4) + TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER64, FileAlignment, 4) + TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER64, FileAlignment, 36) + TEST_FIELD_SIZE (IMAGE_OPTIONAL_HEADER64, MajorOperatingSystemVersion, 2) + TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER64, MajorOperatingSystemVersion, 2) + TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER64, MajorOperatingSystemVersion, 40) + TEST_FIELD_SIZE (IMAGE_OPTIONAL_HEADER64, MinorOperatingSystemVersion, 2) + TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER64, MinorOperatingSystemVersion, 2) + TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER64, MinorOperatingSystemVersion, 42) + TEST_FIELD_SIZE (IMAGE_OPTIONAL_HEADER64, MajorImageVersion, 2) + TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER64, MajorImageVersion, 2) + TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER64, MajorImageVersion, 44) + TEST_FIELD_SIZE (IMAGE_OPTIONAL_HEADER64, MinorImageVersion, 2) + TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER64, MinorImageVersion, 2) + TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER64, MinorImageVersion, 46) + TEST_FIELD_SIZE (IMAGE_OPTIONAL_HEADER64, MajorSubsystemVersion, 2) + TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER64, MajorSubsystemVersion, 2) + TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER64, MajorSubsystemVersion, 48) + TEST_FIELD_SIZE (IMAGE_OPTIONAL_HEADER64, MinorSubsystemVersion, 2) + TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER64, MinorSubsystemVersion, 2) + TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER64, MinorSubsystemVersion, 50) + TEST_FIELD_SIZE (IMAGE_OPTIONAL_HEADER64, Win32VersionValue, 4) + TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER64, Win32VersionValue, 4) + TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER64, Win32VersionValue, 52) + TEST_FIELD_SIZE (IMAGE_OPTIONAL_HEADER64, SizeOfImage, 4) + TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER64, SizeOfImage, 4) + TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER64, SizeOfImage, 56) + TEST_FIELD_SIZE (IMAGE_OPTIONAL_HEADER64, SizeOfHeaders, 4) + TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER64, SizeOfHeaders, 4) + TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER64, SizeOfHeaders, 60) + TEST_FIELD_SIZE (IMAGE_OPTIONAL_HEADER64, CheckSum, 4) + TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER64, CheckSum, 4) + TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER64, CheckSum, 64) + TEST_FIELD_SIZE (IMAGE_OPTIONAL_HEADER64, Subsystem, 2) + TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER64, Subsystem, 2) + TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER64, Subsystem, 68) + TEST_FIELD_SIZE (IMAGE_OPTIONAL_HEADER64, DllCharacteristics, 2) + TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER64, DllCharacteristics, 2) + TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER64, DllCharacteristics, 70) + TEST_FIELD_SIZE (IMAGE_OPTIONAL_HEADER64, SizeOfStackReserve, 8) + TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER64, SizeOfStackReserve, 8) + TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER64, SizeOfStackReserve, 72) + TEST_FIELD_SIZE (IMAGE_OPTIONAL_HEADER64, SizeOfStackCommit, 8) + TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER64, SizeOfStackCommit, 8) + TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER64, SizeOfStackCommit, 80) + TEST_FIELD_SIZE (IMAGE_OPTIONAL_HEADER64, SizeOfHeapReserve, 8) + TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER64, SizeOfHeapReserve, 8) + TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER64, SizeOfHeapReserve, 88) + TEST_FIELD_SIZE (IMAGE_OPTIONAL_HEADER64, SizeOfHeapCommit, 8) + TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER64, SizeOfHeapCommit, 8) + TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER64, SizeOfHeapCommit, 96) + TEST_FIELD_SIZE (IMAGE_OPTIONAL_HEADER64, LoaderFlags, 4) + TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER64, LoaderFlags, 4) + TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER64, LoaderFlags, 104) + TEST_FIELD_SIZE (IMAGE_OPTIONAL_HEADER64, NumberOfRvaAndSizes, 4) + TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER64, NumberOfRvaAndSizes, 4) + TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER64, NumberOfRvaAndSizes, 108) + TEST_FIELD_SIZE (IMAGE_OPTIONAL_HEADER64, DataDirectory, 128) + TEST_FIELD_ALIGN (IMAGE_OPTIONAL_HEADER64, DataDirectory, 4) + TEST_FIELD_OFFSET(IMAGE_OPTIONAL_HEADER64, DataDirectory, 112) +} + static void test_pack_IMAGE_OS2_HEADER(void) { /* IMAGE_OS2_HEADER (pack 2) */ @@ -4283,6 +4841,56 @@ static void test_pack_IMAGE_TLS_DIRECTORY(void) TEST_TYPE_ALIGN (IMAGE_TLS_DIRECTORY, 4) } +static void test_pack_IMAGE_TLS_DIRECTORY32(void) +{ + /* IMAGE_TLS_DIRECTORY32 */ + TEST_TYPE_SIZE (IMAGE_TLS_DIRECTORY32, 24) + TEST_TYPE_ALIGN (IMAGE_TLS_DIRECTORY32, 4) + TEST_FIELD_SIZE (IMAGE_TLS_DIRECTORY32, StartAddressOfRawData, 4) + TEST_FIELD_ALIGN (IMAGE_TLS_DIRECTORY32, StartAddressOfRawData, 4) + TEST_FIELD_OFFSET(IMAGE_TLS_DIRECTORY32, StartAddressOfRawData, 0) + TEST_FIELD_SIZE (IMAGE_TLS_DIRECTORY32, EndAddressOfRawData, 4) + TEST_FIELD_ALIGN (IMAGE_TLS_DIRECTORY32, EndAddressOfRawData, 4) + TEST_FIELD_OFFSET(IMAGE_TLS_DIRECTORY32, EndAddressOfRawData, 4) + TEST_FIELD_SIZE (IMAGE_TLS_DIRECTORY32, AddressOfIndex, 4) + TEST_FIELD_ALIGN (IMAGE_TLS_DIRECTORY32, AddressOfIndex, 4) + TEST_FIELD_OFFSET(IMAGE_TLS_DIRECTORY32, AddressOfIndex, 8) + TEST_FIELD_SIZE (IMAGE_TLS_DIRECTORY32, AddressOfCallBacks, 4) + TEST_FIELD_ALIGN (IMAGE_TLS_DIRECTORY32, AddressOfCallBacks, 4) + TEST_FIELD_OFFSET(IMAGE_TLS_DIRECTORY32, AddressOfCallBacks, 12) + TEST_FIELD_SIZE (IMAGE_TLS_DIRECTORY32, SizeOfZeroFill, 4) + TEST_FIELD_ALIGN (IMAGE_TLS_DIRECTORY32, SizeOfZeroFill, 4) + TEST_FIELD_OFFSET(IMAGE_TLS_DIRECTORY32, SizeOfZeroFill, 16) + TEST_FIELD_SIZE (IMAGE_TLS_DIRECTORY32, Characteristics, 4) + TEST_FIELD_ALIGN (IMAGE_TLS_DIRECTORY32, Characteristics, 4) + TEST_FIELD_OFFSET(IMAGE_TLS_DIRECTORY32, Characteristics, 20) +} + +static void test_pack_IMAGE_TLS_DIRECTORY64(void) +{ + /* IMAGE_TLS_DIRECTORY64 */ + TEST_TYPE_SIZE (IMAGE_TLS_DIRECTORY64, 40) + TEST_TYPE_ALIGN (IMAGE_TLS_DIRECTORY64, 8) + TEST_FIELD_SIZE (IMAGE_TLS_DIRECTORY64, StartAddressOfRawData, 8) + TEST_FIELD_ALIGN (IMAGE_TLS_DIRECTORY64, StartAddressOfRawData, 8) + TEST_FIELD_OFFSET(IMAGE_TLS_DIRECTORY64, StartAddressOfRawData, 0) + TEST_FIELD_SIZE (IMAGE_TLS_DIRECTORY64, EndAddressOfRawData, 8) + TEST_FIELD_ALIGN (IMAGE_TLS_DIRECTORY64, EndAddressOfRawData, 8) + TEST_FIELD_OFFSET(IMAGE_TLS_DIRECTORY64, EndAddressOfRawData, 8) + TEST_FIELD_SIZE (IMAGE_TLS_DIRECTORY64, AddressOfIndex, 8) + TEST_FIELD_ALIGN (IMAGE_TLS_DIRECTORY64, AddressOfIndex, 8) + TEST_FIELD_OFFSET(IMAGE_TLS_DIRECTORY64, AddressOfIndex, 16) + TEST_FIELD_SIZE (IMAGE_TLS_DIRECTORY64, AddressOfCallBacks, 8) + TEST_FIELD_ALIGN (IMAGE_TLS_DIRECTORY64, AddressOfCallBacks, 8) + TEST_FIELD_OFFSET(IMAGE_TLS_DIRECTORY64, AddressOfCallBacks, 24) + TEST_FIELD_SIZE (IMAGE_TLS_DIRECTORY64, SizeOfZeroFill, 4) + TEST_FIELD_ALIGN (IMAGE_TLS_DIRECTORY64, SizeOfZeroFill, 4) + TEST_FIELD_OFFSET(IMAGE_TLS_DIRECTORY64, SizeOfZeroFill, 32) + TEST_FIELD_SIZE (IMAGE_TLS_DIRECTORY64, Characteristics, 4) + TEST_FIELD_ALIGN (IMAGE_TLS_DIRECTORY64, Characteristics, 4) + TEST_FIELD_OFFSET(IMAGE_TLS_DIRECTORY64, Characteristics, 36) +} + static void test_pack_IMAGE_VXD_HEADER(void) { /* IMAGE_VXD_HEADER (pack 2) */ @@ -4971,6 +5579,24 @@ static void test_pack_PIMAGE_NT_HEADERS(void) TEST_TYPE_ALIGN (PIMAGE_NT_HEADERS, 4) } +static void test_pack_PIMAGE_NT_HEADERS32(void) +{ + /* PIMAGE_NT_HEADERS32 */ + TEST_TYPE_SIZE (PIMAGE_NT_HEADERS32, 4) + TEST_TYPE_ALIGN (PIMAGE_NT_HEADERS32, 4) + TEST_TARGET_SIZE (PIMAGE_NT_HEADERS32, 248) + TEST_TARGET_ALIGN(PIMAGE_NT_HEADERS32, 4) +} + +static void test_pack_PIMAGE_NT_HEADERS64(void) +{ + /* PIMAGE_NT_HEADERS64 */ + TEST_TYPE_SIZE (PIMAGE_NT_HEADERS64, 4) + TEST_TYPE_ALIGN (PIMAGE_NT_HEADERS64, 4) + TEST_TARGET_SIZE (PIMAGE_NT_HEADERS64, 264) + TEST_TARGET_ALIGN(PIMAGE_NT_HEADERS64, 8) +} + static void test_pack_PIMAGE_OPTIONAL_HEADER(void) { /* PIMAGE_OPTIONAL_HEADER */ @@ -4978,6 +5604,24 @@ static void test_pack_PIMAGE_OPTIONAL_HEADER(void) TEST_TYPE_ALIGN (PIMAGE_OPTIONAL_HEADER, 4) } +static void test_pack_PIMAGE_OPTIONAL_HEADER32(void) +{ + /* PIMAGE_OPTIONAL_HEADER32 */ + TEST_TYPE_SIZE (PIMAGE_OPTIONAL_HEADER32, 4) + TEST_TYPE_ALIGN (PIMAGE_OPTIONAL_HEADER32, 4) + TEST_TARGET_SIZE (PIMAGE_OPTIONAL_HEADER32, 224) + TEST_TARGET_ALIGN(PIMAGE_OPTIONAL_HEADER32, 4) +} + +static void test_pack_PIMAGE_OPTIONAL_HEADER64(void) +{ + /* PIMAGE_OPTIONAL_HEADER64 */ + TEST_TYPE_SIZE (PIMAGE_OPTIONAL_HEADER64, 4) + TEST_TYPE_ALIGN (PIMAGE_OPTIONAL_HEADER64, 4) + TEST_TARGET_SIZE (PIMAGE_OPTIONAL_HEADER64, 240) + TEST_TARGET_ALIGN(PIMAGE_OPTIONAL_HEADER64, 8) +} + static void test_pack_PIMAGE_OS2_HEADER(void) { /* PIMAGE_OS2_HEADER */ @@ -6312,6 +6956,11 @@ static void test_pack(void) test_pack_IMAGE_LINENUMBER(); test_pack_IMAGE_LOAD_CONFIG_DIRECTORY(); test_pack_IMAGE_NT_HEADERS(); + test_pack_IMAGE_NT_HEADERS32(); + test_pack_IMAGE_NT_HEADERS64(); + test_pack_IMAGE_OPTIONAL_HEADER(); + test_pack_IMAGE_OPTIONAL_HEADER32(); + test_pack_IMAGE_OPTIONAL_HEADER64(); test_pack_IMAGE_OS2_HEADER(); test_pack_IMAGE_RELOCATION(); test_pack_IMAGE_RESOURCE_DATA_ENTRY(); @@ -6324,6 +6973,8 @@ static void test_pack(void) test_pack_IMAGE_SYMBOL(); test_pack_IMAGE_THUNK_DATA(); test_pack_IMAGE_TLS_DIRECTORY(); + test_pack_IMAGE_TLS_DIRECTORY32(); + test_pack_IMAGE_TLS_DIRECTORY64(); test_pack_IMAGE_VXD_HEADER(); test_pack_INT(); test_pack_INT16(); @@ -6396,7 +7047,11 @@ static void test_pack(void) test_pack_PIMAGE_LINENUMBER(); test_pack_PIMAGE_LOAD_CONFIG_DIRECTORY(); test_pack_PIMAGE_NT_HEADERS(); + test_pack_PIMAGE_NT_HEADERS32(); + test_pack_PIMAGE_NT_HEADERS64(); test_pack_PIMAGE_OPTIONAL_HEADER(); + test_pack_PIMAGE_OPTIONAL_HEADER32(); + test_pack_PIMAGE_OPTIONAL_HEADER64(); test_pack_PIMAGE_OS2_HEADER(); test_pack_PIMAGE_RELOCATION(); test_pack_PIMAGE_RESOURCE_DATA_ENTRY(); diff --git a/tools/winapi/tests.dat b/tools/winapi/tests.dat index 72a5f97c678..90b490a6e63 100644 --- a/tools/winapi/tests.dat +++ b/tools/winapi/tests.dat @@ -694,7 +694,11 @@ IMAGE_IMPORT_DESCRIPTOR IMAGE_LINENUMBER IMAGE_LOAD_CONFIG_DIRECTORY IMAGE_NT_HEADERS -!IMAGE_OPTIONAL_HEADER # different on Win64 +IMAGE_NT_HEADERS32 +IMAGE_NT_HEADERS64 +IMAGE_OPTIONAL_HEADER +IMAGE_OPTIONAL_HEADER32 +IMAGE_OPTIONAL_HEADER64 IMAGE_OS2_HEADER IMAGE_RELOCATION IMAGE_RESOURCE_DATA_ENTRY @@ -707,6 +711,8 @@ IMAGE_SEPARATE_DEBUG_HEADER IMAGE_SYMBOL IMAGE_THUNK_DATA IMAGE_TLS_DIRECTORY +IMAGE_TLS_DIRECTORY32 +IMAGE_TLS_DIRECTORY64 IMAGE_VXD_HEADER INT INT16 @@ -783,7 +789,11 @@ PIMAGE_IMPORT_DESCRIPTOR PIMAGE_LINENUMBER PIMAGE_LOAD_CONFIG_DIRECTORY PIMAGE_NT_HEADERS +PIMAGE_NT_HEADERS32 +PIMAGE_NT_HEADERS64 PIMAGE_OPTIONAL_HEADER +PIMAGE_OPTIONAL_HEADER32 +PIMAGE_OPTIONAL_HEADER64 PIMAGE_OS2_HEADER PIMAGE_RELOCATION PIMAGE_RESOURCE_DATA_ENTRY