mirror of
https://github.com/ApfelTeeSaft/reactos.git
synced 2026-08-29 12:23:30 +00:00
[WINESYNC]
- Sync comdlg32, crypt32, gdiplus, inetcomm, jscript, msctf, mshtml, msxml3, rsaenh, schannel, shlwapi, urlmon, usp10, wininet winetests. svn path=/trunk/; revision=46982
This commit is contained in:
@@ -56,42 +56,103 @@
|
||||
* Test helper macros
|
||||
*/
|
||||
|
||||
#ifdef _WIN64
|
||||
#define TEST_TYPE_SIZE(type, size) C_ASSERT(sizeof(type) == size);
|
||||
|
||||
# define TEST_TYPE_SIZE(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)
|
||||
# define TEST_FIELD_OFFSET(type, field, offset)
|
||||
|
||||
#else
|
||||
|
||||
# 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);
|
||||
|
||||
#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 */
|
||||
@@ -161,6 +222,8 @@ static void test_pack_PHUSKEY(void)
|
||||
TEST_TARGET_ALIGN(PHUSKEY, 4)
|
||||
}
|
||||
|
||||
#endif /* _WIN64 */
|
||||
|
||||
static void test_pack(void)
|
||||
{
|
||||
test_pack_ASSOCF();
|
||||
@@ -173,9 +236,5 @@ static void test_pack(void)
|
||||
|
||||
START_TEST(generated)
|
||||
{
|
||||
#ifdef _WIN64
|
||||
ok(0, "The type size / alignment tests don't support Win64 yet\n");
|
||||
#else
|
||||
test_pack();
|
||||
#endif
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user