Updated the generated tests.
[wine] / dlls / shlwapi / tests / generated.c
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 WINVER 0x0501
9 #define _WIN32_IE 0x0501
10 #define _WIN32_WINNT 0x0501
11
12 #define WINE_NOWINSOCK
13
14 #include "windef.h"
15 #include "wtypes.h"
16 #include "shlwapi.h"
17
18 #include "wine/test.h"
19
20 /***********************************************************************
21  * Compability macros
22  */
23
24 #define DWORD_PTR UINT_PTR
25 #define LONG_PTR INT_PTR
26 #define ULONG_PTR UINT_PTR
27
28 /***********************************************************************
29  * Windows API extension
30  */
31
32 #if (_MSC_VER >= 1300) && defined(__cplusplus)
33 # define FIELD_ALIGNMENT(type, field) __alignof(((type*)0)->field)
34 #elif defined(__GNUC__)
35 # define FIELD_ALIGNMENT(type, field) __alignof__(((type*)0)->field)
36 #else
37 /* FIXME: Not sure if is possible to do without compiler extension */
38 #endif
39
40 #if (_MSC_VER >= 1300) && defined(__cplusplus)
41 # define _TYPE_ALIGNMENT(type) __alignof(type)
42 #elif defined(__GNUC__)
43 # define _TYPE_ALIGNMENT(type) __alignof__(type)
44 #else
45 /*
46  * FIXME: Not sure if is possible to do without compiler extension
47  *        (if type is not just a name that is, if so the normal)
48  *         TYPE_ALIGNMENT can be used)
49  */
50 #endif
51
52 #if !defined(TYPE_ALIGNMENT) && defined(_TYPE_ALIGNMENT)
53 # define TYPE_ALIGNMENT _TYPE_ALIGNMENT
54 #endif
55
56 /***********************************************************************
57  * Test helper macros
58  */
59
60 #ifdef FIELD_ALIGNMENT
61 # define TEST_FIELD_ALIGNMENT(type, field, align) \
62    ok(FIELD_ALIGNMENT(type, field) == align, \
63        "FIELD_ALIGNMENT(" #type ", " #field ") == %d (expected " #align ")", \
64            FIELD_ALIGNMENT(type, field))
65 #else
66 # define TEST_FIELD_ALIGNMENT(type, field, align) do { } while (0)
67 #endif
68
69 #define TEST_FIELD_OFFSET(type, field, offset) \
70     ok(FIELD_OFFSET(type, field) == offset, \
71         "FIELD_OFFSET(" #type ", " #field ") == %ld (expected " #offset ")", \
72              FIELD_OFFSET(type, field))
73
74 #ifdef _TYPE_ALIGNMENT
75 #define TEST__TYPE_ALIGNMENT(type, align) \
76     ok(_TYPE_ALIGNMENT(type) == align, "TYPE_ALIGNMENT(" #type ") == %d (expected " #align ")", _TYPE_ALIGNMENT(type))
77 #else
78 # define TEST__TYPE_ALIGNMENT(type, align) do { } while (0)
79 #endif
80
81 #ifdef TYPE_ALIGNMENT
82 #define TEST_TYPE_ALIGNMENT(type, align) \
83     ok(TYPE_ALIGNMENT(type) == align, "TYPE_ALIGNMENT(" #type ") == %d (expected " #align ")", TYPE_ALIGNMENT(type))
84 #else
85 # define TEST_TYPE_ALIGNMENT(type, align) do { } while (0)
86 #endif
87
88 #define TEST_TYPE_SIZE(type, size) \
89     ok(sizeof(type) == size, "sizeof(" #type ") == %d (expected " #size ")", sizeof(type))
90
91 /***********************************************************************
92  * Test macros
93  */
94
95 #define TEST_FIELD(type, field_type, field_name, field_offset, field_size, field_align) \
96   TEST_TYPE_SIZE(field_type, field_size); \
97   TEST_FIELD_ALIGNMENT(type, field_name, field_align); \
98   TEST_FIELD_OFFSET(type, field_name, field_offset); \
99
100 #define TEST_TYPE(type, size, align) \
101   TEST_TYPE_ALIGNMENT(type, align); \
102   TEST_TYPE_SIZE(type, size)
103
104 #define TEST_TYPE_POINTER(type, size, align) \
105     TEST__TYPE_ALIGNMENT(*(type)0, align); \
106     TEST_TYPE_SIZE(*(type)0, size)
107
108 #define TEST_TYPE_SIGNED(type) \
109     ok((type) -1 < 0, "(" #type ") -1 < 0");
110
111 #define TEST_TYPE_UNSIGNED(type) \
112      ok((type) -1 > 0, "(" #type ") -1 > 0");
113
114 static void test_pack_DLLGETVERSIONPROC(void)
115 {
116     /* DLLGETVERSIONPROC */
117     TEST_TYPE(DLLGETVERSIONPROC, 4, 4);
118 }
119
120 static void test_pack_DLLVERSIONINFO(void)
121 {
122     /* DLLVERSIONINFO (pack 1) */
123     TEST_TYPE(DLLVERSIONINFO, 20, 1);
124     TEST_FIELD(DLLVERSIONINFO, DWORD, cbSize, 0, 4, 1);
125     TEST_FIELD(DLLVERSIONINFO, DWORD, dwMajorVersion, 4, 4, 1);
126     TEST_FIELD(DLLVERSIONINFO, DWORD, dwMinorVersion, 8, 4, 1);
127     TEST_FIELD(DLLVERSIONINFO, DWORD, dwBuildNumber, 12, 4, 1);
128     TEST_FIELD(DLLVERSIONINFO, DWORD, dwPlatformID, 16, 4, 1);
129 }
130
131 static void test_pack_HUSKEY(void)
132 {
133     /* HUSKEY */
134     TEST_TYPE(HUSKEY, 4, 4);
135 }
136
137 static void test_pack_IQueryAssociations(void)
138 {
139     /* IQueryAssociations */
140 }
141
142 static void test_pack_PHUSKEY(void)
143 {
144     /* PHUSKEY */
145     TEST_TYPE(PHUSKEY, 4, 4);
146     TEST_TYPE_POINTER(PHUSKEY, 4, 4);
147 }
148
149 static void test_pack(void)
150 {
151     test_pack_DLLGETVERSIONPROC();
152     test_pack_DLLVERSIONINFO();
153     test_pack_HUSKEY();
154     test_pack_IQueryAssociations();
155     test_pack_PHUSKEY();
156 }
157
158 START_TEST(generated)
159 {
160     test_pack();
161 }