Something went wrong. Try again.
Reactos
Something went wrong. Try again.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237/* File generated automatically from tools/winapi/tests.dat; do not edit! *//* This file can be copied, modified and distributed without restriction. */
/* * Unit tests for data structure packing */
#define WINE_NOWINSOCK
#include <stdarg.h>#include "windef.h"#include "winbase.h"#include "wtypes.h"#include "winreg.h"#include "shlwapi.h"
#include "wine/test.h"
/*********************************************************************** * Compatibility macros */
#define DWORD_PTR UINT_PTR#define LONG_PTR INT_PTR#define ULONG_PTR UINT_PTR
/*********************************************************************** * Windows API extension */
#if defined(_MSC_VER) && (_MSC_VER >= 1300) && defined(__cplusplus)# define _TYPE_ALIGNMENT(type) __alignof(type)#elif defined(__GNUC__) || defined(__clang__)# define _TYPE_ALIGNMENT(type) __alignof__(type)#else/* * FIXME: May not be possible without a compiler extension * (if type is not just a name that is, otherwise the normal * TYPE_ALIGNMENT can be used) */#endif
#if defined(TYPE_ALIGNMENT) && defined(_MSC_VER) && _MSC_VER >= 800 && !defined(__cplusplus)#pragma warning(disable:4116)#endif
#if !defined(TYPE_ALIGNMENT) && defined(_TYPE_ALIGNMENT)# define TYPE_ALIGNMENT _TYPE_ALIGNMENT#endif
/*********************************************************************** * Test helper macros */
#define TEST_TYPE_SIZE(type, size) C_ASSERT(sizeof(type) == size);
#ifdef TYPE_ALIGNMENT# define TEST_TYPE_ALIGN(type, align) C_ASSERT(TYPE_ALIGNMENT(type) == align);#else# define TEST_TYPE_ALIGN(type, align)#endif
#ifdef _TYPE_ALIGNMENT# define TEST_TARGET_ALIGN(type, align) C_ASSERT(_TYPE_ALIGNMENT(*(type)0) == align);# define TEST_FIELD_ALIGN(type, field, align) C_ASSERT(_TYPE_ALIGNMENT(((type*)0)->field) == align);#else# define TEST_TARGET_ALIGN(type, align)# define TEST_FIELD_ALIGN(type, field, align)#endif
#define TEST_FIELD_OFFSET(type, field, offset) C_ASSERT(FIELD_OFFSET(type, field) == offset);
#define TEST_TARGET_SIZE(type, size) TEST_TYPE_SIZE(*(type)0, size)#define TEST_FIELD_SIZE(type, field, size) TEST_TYPE_SIZE((((type*)0)->field), size)#define TEST_TYPE_SIGNED(type) C_ASSERT((type) -1 < 0);#define TEST_TYPE_UNSIGNED(type) C_ASSERT((type) -1 > 0);
#ifdef _WIN64
static void test_pack_ASSOCF(void){ /* ASSOCF */ TEST_TYPE_SIZE (ASSOCF, 4) TEST_TYPE_ALIGN (ASSOCF, 4) TEST_TYPE_UNSIGNED(ASSOCF)}
static void test_pack_DLLGETVERSIONPROC(void){ /* DLLGETVERSIONPROC */ TEST_TYPE_SIZE (DLLGETVERSIONPROC, 8) TEST_TYPE_ALIGN (DLLGETVERSIONPROC, 8)}
static void test_pack_DLLVERSIONINFO(void){ /* DLLVERSIONINFO (pack 8) */ TEST_TYPE_SIZE (DLLVERSIONINFO, 20) TEST_TYPE_ALIGN (DLLVERSIONINFO, 4) TEST_FIELD_SIZE (DLLVERSIONINFO, cbSize, 4) TEST_FIELD_ALIGN (DLLVERSIONINFO, cbSize, 4) TEST_FIELD_OFFSET(DLLVERSIONINFO, cbSize, 0) TEST_FIELD_SIZE (DLLVERSIONINFO, dwMajorVersion, 4) TEST_FIELD_ALIGN (DLLVERSIONINFO, dwMajorVersion, 4) TEST_FIELD_OFFSET(DLLVERSIONINFO, dwMajorVersion, 4) TEST_FIELD_SIZE (DLLVERSIONINFO, dwMinorVersion, 4) TEST_FIELD_ALIGN (DLLVERSIONINFO, dwMinorVersion, 4) TEST_FIELD_OFFSET(DLLVERSIONINFO, dwMinorVersion, 8) TEST_FIELD_SIZE (DLLVERSIONINFO, dwBuildNumber, 4) TEST_FIELD_ALIGN (DLLVERSIONINFO, dwBuildNumber, 4) TEST_FIELD_OFFSET(DLLVERSIONINFO, dwBuildNumber, 12) TEST_FIELD_SIZE (DLLVERSIONINFO, dwPlatformID, 4) TEST_FIELD_ALIGN (DLLVERSIONINFO, dwPlatformID, 4) TEST_FIELD_OFFSET(DLLVERSIONINFO, dwPlatformID, 16)}
static void test_pack_DLLVERSIONINFO2(void){ /* DLLVERSIONINFO2 (pack 8) */ TEST_TYPE_SIZE (DLLVERSIONINFO2, 32) TEST_TYPE_ALIGN (DLLVERSIONINFO2, 8) TEST_FIELD_SIZE (DLLVERSIONINFO2, info1, 20) TEST_FIELD_ALIGN (DLLVERSIONINFO2, info1, 4) TEST_FIELD_OFFSET(DLLVERSIONINFO2, info1, 0) TEST_FIELD_SIZE (DLLVERSIONINFO2, dwFlags, 4) TEST_FIELD_ALIGN (DLLVERSIONINFO2, dwFlags, 4) TEST_FIELD_OFFSET(DLLVERSIONINFO2, dwFlags, 20) TEST_FIELD_SIZE (DLLVERSIONINFO2, ullVersion, 8) TEST_FIELD_ALIGN (DLLVERSIONINFO2, ullVersion, 8) TEST_FIELD_OFFSET(DLLVERSIONINFO2, ullVersion, 24)}
static void test_pack_HUSKEY(void){ /* HUSKEY */ TEST_TYPE_SIZE (HUSKEY, 8) TEST_TYPE_ALIGN (HUSKEY, 8)}
static void test_pack_PHUSKEY(void){ /* PHUSKEY */ TEST_TYPE_SIZE (PHUSKEY, 8) TEST_TYPE_ALIGN (PHUSKEY, 8) TEST_TARGET_SIZE (PHUSKEY, 8) TEST_TARGET_ALIGN(PHUSKEY, 8)}
#else /* _WIN64 */
static void test_pack_ASSOCF(void){ /* ASSOCF */ TEST_TYPE_SIZE (ASSOCF, 4) TEST_TYPE_ALIGN (ASSOCF, 4) TEST_TYPE_UNSIGNED(ASSOCF)}
static void test_pack_DLLGETVERSIONPROC(void){ /* DLLGETVERSIONPROC */ TEST_TYPE_SIZE (DLLGETVERSIONPROC, 4) TEST_TYPE_ALIGN (DLLGETVERSIONPROC, 4)}
static void test_pack_DLLVERSIONINFO(void){ /* DLLVERSIONINFO (pack 8) */ TEST_TYPE_SIZE (DLLVERSIONINFO, 20) TEST_TYPE_ALIGN (DLLVERSIONINFO, 4) TEST_FIELD_SIZE (DLLVERSIONINFO, cbSize, 4) TEST_FIELD_ALIGN (DLLVERSIONINFO, cbSize, 4) TEST_FIELD_OFFSET(DLLVERSIONINFO, cbSize, 0) TEST_FIELD_SIZE (DLLVERSIONINFO, dwMajorVersion, 4) TEST_FIELD_ALIGN (DLLVERSIONINFO, dwMajorVersion, 4) TEST_FIELD_OFFSET(DLLVERSIONINFO, dwMajorVersion, 4) TEST_FIELD_SIZE (DLLVERSIONINFO, dwMinorVersion, 4) TEST_FIELD_ALIGN (DLLVERSIONINFO, dwMinorVersion, 4) TEST_FIELD_OFFSET(DLLVERSIONINFO, dwMinorVersion, 8) TEST_FIELD_SIZE (DLLVERSIONINFO, dwBuildNumber, 4) TEST_FIELD_ALIGN (DLLVERSIONINFO, dwBuildNumber, 4) TEST_FIELD_OFFSET(DLLVERSIONINFO, dwBuildNumber, 12) TEST_FIELD_SIZE (DLLVERSIONINFO, dwPlatformID, 4) TEST_FIELD_ALIGN (DLLVERSIONINFO, dwPlatformID, 4) TEST_FIELD_OFFSET(DLLVERSIONINFO, dwPlatformID, 16)}
static void test_pack_DLLVERSIONINFO2(void){ /* DLLVERSIONINFO2 (pack 8) */ TEST_TYPE_SIZE (DLLVERSIONINFO2, 32) TEST_TYPE_ALIGN (DLLVERSIONINFO2, 8) TEST_FIELD_SIZE (DLLVERSIONINFO2, info1, 20) TEST_FIELD_ALIGN (DLLVERSIONINFO2, info1, 4) TEST_FIELD_OFFSET(DLLVERSIONINFO2, info1, 0) TEST_FIELD_SIZE (DLLVERSIONINFO2, dwFlags, 4) TEST_FIELD_ALIGN (DLLVERSIONINFO2, dwFlags, 4) TEST_FIELD_OFFSET(DLLVERSIONINFO2, dwFlags, 20) TEST_FIELD_SIZE (DLLVERSIONINFO2, ullVersion, 8) TEST_FIELD_ALIGN (DLLVERSIONINFO2, ullVersion, 8) TEST_FIELD_OFFSET(DLLVERSIONINFO2, ullVersion, 24)}
static void test_pack_HUSKEY(void){ /* HUSKEY */ TEST_TYPE_SIZE (HUSKEY, 4) TEST_TYPE_ALIGN (HUSKEY, 4)}
static void test_pack_PHUSKEY(void){ /* PHUSKEY */ TEST_TYPE_SIZE (PHUSKEY, 4) TEST_TYPE_ALIGN (PHUSKEY, 4) TEST_TARGET_SIZE (PHUSKEY, 4) TEST_TARGET_ALIGN(PHUSKEY, 4)}
#endif /* _WIN64 */
static void test_pack(void){ test_pack_ASSOCF(); test_pack_DLLGETVERSIONPROC(); test_pack_DLLVERSIONINFO(); test_pack_DLLVERSIONINFO2(); test_pack_HUSKEY(); test_pack_PHUSKEY();}
START_TEST(generated){ test_pack();}