⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 generated.c

📁 Wine-20031016
💻 C
📖 第 1 页 / 共 5 页
字号:
/* File generated automatically from tools/winapi/test.dat; do not edit! *//* This file can be copied, modified and distributed without restriction. *//* * Unit tests for data structure packing */#define WINVER 0x0501#define _WIN32_IE 0x0501#define _WIN32_WINNT 0x0501#define WINE_NOWINSOCK#include "ntstatus.h"#include "windows.h"#include "wine/test.h"/*********************************************************************** * Compability macros */#define DWORD_PTR UINT_PTR#define LONG_PTR INT_PTR#define ULONG_PTR UINT_PTR/*********************************************************************** * Windows API extension */#if (_MSC_VER >= 1300) && defined(__cplusplus)# define FIELD_ALIGNMENT(type, field) __alignof(((type*)0)->field)#elif defined(__GNUC__)# define FIELD_ALIGNMENT(type, field) __alignof__(((type*)0)->field)#else/* FIXME: Not sure if is possible to do without compiler extension */#endif#if (_MSC_VER >= 1300) && defined(__cplusplus)# define _TYPE_ALIGNMENT(type) __alignof(type)#elif defined(__GNUC__)# define _TYPE_ALIGNMENT(type) __alignof__(type)#else/* * FIXME: Not sure if is possible to do without compiler extension *        (if type is not just a name that is, if so the normal) *         TYPE_ALIGNMENT can be used) */#endif#if !defined(TYPE_ALIGNMENT) && defined(_TYPE_ALIGNMENT)# define TYPE_ALIGNMENT _TYPE_ALIGNMENT#endif/*********************************************************************** * Test helper macros */#ifdef FIELD_ALIGNMENT# define TEST_FIELD_ALIGNMENT(type, field, align) \   ok(FIELD_ALIGNMENT(type, field) == align, \       "FIELD_ALIGNMENT(" #type ", " #field ") == %d (expected " #align ")", \           FIELD_ALIGNMENT(type, field))#else# define TEST_FIELD_ALIGNMENT(type, field, align) do { } while (0)#endif#define TEST_FIELD_OFFSET(type, field, offset) \    ok(FIELD_OFFSET(type, field) == offset, \        "FIELD_OFFSET(" #type ", " #field ") == %ld (expected " #offset ")", \             FIELD_OFFSET(type, field))#ifdef _TYPE_ALIGNMENT#define TEST__TYPE_ALIGNMENT(type, align) \    ok(_TYPE_ALIGNMENT(type) == align, "TYPE_ALIGNMENT(" #type ") == %d (expected " #align ")", _TYPE_ALIGNMENT(type))#else# define TEST__TYPE_ALIGNMENT(type, align) do { } while (0)#endif#ifdef TYPE_ALIGNMENT#define TEST_TYPE_ALIGNMENT(type, align) \    ok(TYPE_ALIGNMENT(type) == align, "TYPE_ALIGNMENT(" #type ") == %d (expected " #align ")", TYPE_ALIGNMENT(type))#else# define TEST_TYPE_ALIGNMENT(type, align) do { } while (0)#endif#define TEST_TYPE_SIZE(type, size) \    ok(sizeof(type) == size, "sizeof(" #type ") == %d (expected " #size ")", sizeof(type))/*********************************************************************** * Test macros */#define TEST_FIELD(type, field_type, field_name, field_offset, field_size, field_align) \  TEST_TYPE_SIZE(field_type, field_size); \  TEST_FIELD_ALIGNMENT(type, field_name, field_align); \  TEST_FIELD_OFFSET(type, field_name, field_offset); \#define TEST_TYPE(type, size, align) \  TEST_TYPE_ALIGNMENT(type, align); \  TEST_TYPE_SIZE(type, size)#define TEST_TYPE_POINTER(type, size, align) \    TEST__TYPE_ALIGNMENT(*(type)0, align); \    TEST_TYPE_SIZE(*(type)0, size)#define TEST_TYPE_SIGNED(type) \    ok((type) -1 < 0, "(" #type ") -1 < 0");#define TEST_TYPE_UNSIGNED(type) \     ok((type) -1 > 0, "(" #type ") -1 > 0");static void test_pack_DWORD32(void){    /* DWORD32 */    TEST_TYPE(DWORD32, 4, 4);    TEST_TYPE_UNSIGNED(DWORD32);}static void test_pack_DWORD_PTR(void){    /* DWORD_PTR */    TEST_TYPE(DWORD_PTR, 4, 4);}static void test_pack_HALF_PTR(void){    /* HALF_PTR */    TEST_TYPE(HALF_PTR, 2, 2);    TEST_TYPE_SIGNED(HALF_PTR);}static void test_pack_INT32(void){    /* INT32 */    TEST_TYPE(INT32, 4, 4);    TEST_TYPE_SIGNED(INT32);}static void test_pack_INT_PTR(void){    /* INT_PTR */    TEST_TYPE(INT_PTR, 4, 4);    TEST_TYPE_SIGNED(INT_PTR);}static void test_pack_LONG32(void){    /* LONG32 */    TEST_TYPE(LONG32, 4, 4);    TEST_TYPE_SIGNED(LONG32);}static void test_pack_LONG_PTR(void){    /* LONG_PTR */    TEST_TYPE(LONG_PTR, 4, 4);    TEST_TYPE_SIGNED(LONG_PTR);}static void test_pack_SIZE_T(void){    /* SIZE_T */    TEST_TYPE(SIZE_T, 4, 4);}static void test_pack_SSIZE_T(void){    /* SSIZE_T */    TEST_TYPE(SSIZE_T, 4, 4);}static void test_pack_UHALF_PTR(void){    /* UHALF_PTR */    TEST_TYPE(UHALF_PTR, 2, 2);    TEST_TYPE_UNSIGNED(UHALF_PTR);}static void test_pack_UINT32(void){    /* UINT32 */    TEST_TYPE(UINT32, 4, 4);    TEST_TYPE_UNSIGNED(UINT32);}static void test_pack_UINT_PTR(void){    /* UINT_PTR */    TEST_TYPE(UINT_PTR, 4, 4);    TEST_TYPE_UNSIGNED(UINT_PTR);}static void test_pack_ULONG32(void){    /* ULONG32 */    TEST_TYPE(ULONG32, 4, 4);    TEST_TYPE_UNSIGNED(ULONG32);}static void test_pack_ULONG_PTR(void){    /* ULONG_PTR */    TEST_TYPE(ULONG_PTR, 4, 4);    TEST_TYPE_UNSIGNED(ULONG_PTR);}static void test_pack_ACCESS_ALLOWED_ACE(void){    /* ACCESS_ALLOWED_ACE (pack 4) */    TEST_TYPE(ACCESS_ALLOWED_ACE, 12, 4);    TEST_FIELD(ACCESS_ALLOWED_ACE, ACE_HEADER, Header, 0, 4, 2);    TEST_FIELD(ACCESS_ALLOWED_ACE, DWORD, Mask, 4, 4, 4);    TEST_FIELD(ACCESS_ALLOWED_ACE, DWORD, SidStart, 8, 4, 4);}static void test_pack_ACCESS_DENIED_ACE(void){    /* ACCESS_DENIED_ACE (pack 4) */    TEST_TYPE(ACCESS_DENIED_ACE, 12, 4);    TEST_FIELD(ACCESS_DENIED_ACE, ACE_HEADER, Header, 0, 4, 2);    TEST_FIELD(ACCESS_DENIED_ACE, DWORD, Mask, 4, 4, 4);    TEST_FIELD(ACCESS_DENIED_ACE, DWORD, SidStart, 8, 4, 4);}static void test_pack_ACCESS_MASK(void){    /* ACCESS_MASK */    TEST_TYPE(ACCESS_MASK, 4, 4);}static void test_pack_ACE_HEADER(void){    /* ACE_HEADER (pack 4) */    TEST_TYPE(ACE_HEADER, 4, 2);    TEST_FIELD(ACE_HEADER, BYTE, AceType, 0, 1, 1);    TEST_FIELD(ACE_HEADER, BYTE, AceFlags, 1, 1, 1);    TEST_FIELD(ACE_HEADER, WORD, AceSize, 2, 2, 2);}static void test_pack_ACL(void){    /* ACL (pack 4) */    TEST_TYPE(ACL, 8, 2);    TEST_FIELD(ACL, BYTE, AclRevision, 0, 1, 1);    TEST_FIELD(ACL, BYTE, Sbz1, 1, 1, 1);    TEST_FIELD(ACL, WORD, AclSize, 2, 2, 2);    TEST_FIELD(ACL, WORD, AceCount, 4, 2, 2);    TEST_FIELD(ACL, WORD, Sbz2, 6, 2, 2);}static void test_pack_BOOL(void){    /* BOOL */    TEST_TYPE(BOOL, 4, 4);    TEST_TYPE_SIGNED(BOOL);}static void test_pack_BOOLEAN(void){    /* BOOLEAN */    TEST_TYPE(BOOLEAN, 1, 1);}static void test_pack_BYTE(void){    /* BYTE */    TEST_TYPE(BYTE, 1, 1);    TEST_TYPE_UNSIGNED(BYTE);}static void test_pack_CCHAR(void){    /* CCHAR */    TEST_TYPE(CCHAR, 1, 1);    TEST_TYPE_SIGNED(CCHAR);}static void test_pack_CHAR(void){    /* CHAR */    TEST_TYPE(CHAR, 1, 1);    TEST_TYPE_SIGNED(CHAR);}static void test_pack_DWORD(void){    /* DWORD */    TEST_TYPE(DWORD, 4, 4);    TEST_TYPE_UNSIGNED(DWORD);}static void test_pack_EXCEPTION_POINTERS(void){    /* EXCEPTION_POINTERS (pack 4) */    TEST_TYPE(EXCEPTION_POINTERS, 8, 4);    TEST_FIELD(EXCEPTION_POINTERS, PEXCEPTION_RECORD, ExceptionRecord, 0, 4, 4);    TEST_FIELD(EXCEPTION_POINTERS, PCONTEXT, ContextRecord, 4, 4, 4);}static void test_pack_EXCEPTION_RECORD(void){    /* EXCEPTION_RECORD (pack 4) */    TEST_TYPE(EXCEPTION_RECORD, 80, 4);    TEST_FIELD(EXCEPTION_RECORD, DWORD, ExceptionCode, 0, 4, 4);    TEST_FIELD(EXCEPTION_RECORD, DWORD, ExceptionFlags, 4, 4, 4);    TEST_FIELD(EXCEPTION_RECORD, struct __EXCEPTION_RECORD *, ExceptionRecord, 8, 4, 4);    TEST_FIELD(EXCEPTION_RECORD, LPVOID, ExceptionAddress, 12, 4, 4);    TEST_FIELD(EXCEPTION_RECORD, DWORD, NumberParameters, 16, 4, 4);    TEST_FIELD(EXCEPTION_RECORD, DWORD[EXCEPTION_MAXIMUM_PARAMETERS], ExceptionInformation, 20, 60, 4);}static void test_pack_EXECUTION_STATE(void){    /* EXECUTION_STATE */    TEST_TYPE(EXECUTION_STATE, 4, 4);}static void test_pack_FLOAT(void){    /* FLOAT */    TEST_TYPE(FLOAT, 4, 4);}static void test_pack_FLOATING_SAVE_AREA(void){    /* FLOATING_SAVE_AREA (pack 4) */    TEST_TYPE(FLOATING_SAVE_AREA, 112, 4);    TEST_FIELD(FLOATING_SAVE_AREA, DWORD, ControlWord, 0, 4, 4);    TEST_FIELD(FLOATING_SAVE_AREA, DWORD, StatusWord, 4, 4, 4);    TEST_FIELD(FLOATING_SAVE_AREA, DWORD, TagWord, 8, 4, 4);    TEST_FIELD(FLOATING_SAVE_AREA, DWORD, ErrorOffset, 12, 4, 4);    TEST_FIELD(FLOATING_SAVE_AREA, DWORD, ErrorSelector, 16, 4, 4);    TEST_FIELD(FLOATING_SAVE_AREA, DWORD, DataOffset, 20, 4, 4);    TEST_FIELD(FLOATING_SAVE_AREA, DWORD, DataSelector, 24, 4, 4);    TEST_FIELD(FLOATING_SAVE_AREA, BYTE[SIZE_OF_80387_REGISTERS], RegisterArea, 28, 80, 1);    TEST_FIELD(FLOATING_SAVE_AREA, DWORD, Cr0NpxState, 108, 4, 4);}static void test_pack_FPO_DATA(void){    /* FPO_DATA (pack 4) */    TEST_FIELD(FPO_DATA, DWORD, ulOffStart, 0, 4, 4);    TEST_FIELD(FPO_DATA, DWORD, cbProcSize, 4, 4, 4);    TEST_FIELD(FPO_DATA, DWORD, cdwLocals, 8, 4, 4);    TEST_FIELD(FPO_DATA, WORD, cdwParams, 12, 2, 2);}static void test_pack_GENERIC_MAPPING(void){    /* GENERIC_MAPPING (pack 4) */    TEST_TYPE(GENERIC_MAPPING, 16, 4);    TEST_FIELD(GENERIC_MAPPING, ACCESS_MASK, GenericRead, 0, 4, 4);    TEST_FIELD(GENERIC_MAPPING, ACCESS_MASK, GenericWrite, 4, 4, 4);    TEST_FIELD(GENERIC_MAPPING, ACCESS_MASK, GenericExecute, 8, 4, 4);    TEST_FIELD(GENERIC_MAPPING, ACCESS_MASK, GenericAll, 12, 4, 4);}static void test_pack_HANDLE(void){    /* HANDLE */    TEST_TYPE(HANDLE, 4, 4);}static void test_pack_HRESULT(void){    /* HRESULT */    TEST_TYPE(HRESULT, 4, 4);}static void test_pack_IMAGE_ARCHIVE_MEMBER_HEADER(void){    /* IMAGE_ARCHIVE_MEMBER_HEADER (pack 4) */    TEST_TYPE(IMAGE_ARCHIVE_MEMBER_HEADER, 60, 1);    TEST_FIELD(IMAGE_ARCHIVE_MEMBER_HEADER, BYTE[16], Name, 0, 16, 1);    TEST_FIELD(IMAGE_ARCHIVE_MEMBER_HEADER, BYTE[12], Date, 16, 12, 1);    TEST_FIELD(IMAGE_ARCHIVE_MEMBER_HEADER, BYTE[6], UserID, 28, 6, 1);    TEST_FIELD(IMAGE_ARCHIVE_MEMBER_HEADER, BYTE[6], GroupID, 34, 6, 1);    TEST_FIELD(IMAGE_ARCHIVE_MEMBER_HEADER, BYTE[8], Mode, 40, 8, 1);    TEST_FIELD(IMAGE_ARCHIVE_MEMBER_HEADER, BYTE[10], Size, 48, 10, 1);    TEST_FIELD(IMAGE_ARCHIVE_MEMBER_HEADER, BYTE[2], EndHeader, 58, 2, 1);}static void test_pack_IMAGE_AUX_SYMBOL(void){    /* IMAGE_AUX_SYMBOL (pack 2) */}static void test_pack_IMAGE_BASE_RELOCATION(void){    /* IMAGE_BASE_RELOCATION (pack 4) */    TEST_TYPE(IMAGE_BASE_RELOCATION, 8, 4);    TEST_FIELD(IMAGE_BASE_RELOCATION, DWORD, VirtualAddress, 0, 4, 4);    TEST_FIELD(IMAGE_BASE_RELOCATION, DWORD, SizeOfBlock, 4, 4, 4);}static void test_pack_IMAGE_BOUND_FORWARDER_REF(void){    /* IMAGE_BOUND_FORWARDER_REF (pack 4) */    TEST_TYPE(IMAGE_BOUND_FORWARDER_REF, 8, 4);    TEST_FIELD(IMAGE_BOUND_FORWARDER_REF, DWORD, TimeDateStamp, 0, 4, 4);    TEST_FIELD(IMAGE_BOUND_FORWARDER_REF, WORD, OffsetModuleName, 4, 2, 2);    TEST_FIELD(IMAGE_BOUND_FORWARDER_REF, WORD, Reserved, 6, 2, 2);}static void test_pack_IMAGE_BOUND_IMPORT_DESCRIPTOR(void){    /* IMAGE_BOUND_IMPORT_DESCRIPTOR (pack 4) */    TEST_TYPE(IMAGE_BOUND_IMPORT_DESCRIPTOR, 8, 4);    TEST_FIELD(IMAGE_BOUND_IMPORT_DESCRIPTOR, DWORD, TimeDateStamp, 0, 4, 4);    TEST_FIELD(IMAGE_BOUND_IMPORT_DESCRIPTOR, WORD, OffsetModuleName, 4, 2, 2);    TEST_FIELD(IMAGE_BOUND_IMPORT_DESCRIPTOR, WORD, NumberOfModuleForwarderRefs, 6, 2, 2);}static void test_pack_IMAGE_COFF_SYMBOLS_HEADER(void){    /* IMAGE_COFF_SYMBOLS_HEADER (pack 4) */    TEST_TYPE(IMAGE_COFF_SYMBOLS_HEADER, 32, 4);    TEST_FIELD(IMAGE_COFF_SYMBOLS_HEADER, DWORD, NumberOfSymbols, 0, 4, 4);    TEST_FIELD(IMAGE_COFF_SYMBOLS_HEADER, DWORD, LvaToFirstSymbol, 4, 4, 4);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -