1/*
2	$Id: PropertyTestcase.cpp 10130 2004-11-21 21:03:29Z shatty $
3
4	This file implements the first test for the Haiku BPropertyInfo code.
5	It tests the Construction use cases.  It does so by doing the following:
6
7	*/
8
9
10#include "PropertyTestcase.h"
11
12#include <assert.h>
13#include <stdlib.h>
14
15#include <AppDefs.h>
16#include <Message.h>
17
18
19/* The following constants define unique values (values which are not used
20   in the BPropertyInfo instances constructed) and common values (values
21   which are likely to match in BPropertyInfo instances).  The wildcard
22   tests list commands or specifiers to check for when a particular property
23   has a command or specifier wildcard. */
24
25const char *PropertyTestcase::uniquePropName = "no match!";
26const uint32 PropertyTestcase::uniqueCommand = 11;
27const uint32 PropertyTestcase::uniqueSpecifier = 11;
28const char *PropertyTestcase::commonPropName = "test1";
29const uint32 PropertyTestcase::commonCommand = B_GET_PROPERTY;
30const uint32 PropertyTestcase::commonSpecifier = B_DIRECT_SPECIFIER;
31const uint32 PropertyTestcase::wildcardCommandTests[] = { uniqueCommand,
32                                                          commonCommand,
33                                                          0};
34const uint32 PropertyTestcase::wildcardSpecifierTests[] = { uniqueSpecifier,
35                                                            commonSpecifier,
36                                                            0};
37
38
39/*
40 *  Method:  PropertyTestcase::PropertyTestcase()
41 *   Descr:  This is the constructor for this class.
42 */
43
44
45	PropertyTestcase::PropertyTestcase(std::string name) :
46		TestCase(name)
47{
48	}
49
50
51/*
52 *  Method:  PropertyTestcase::~PropertyTestcase()
53 *   Descr:  This is the destructor for this class.
54 */
55
56
57	PropertyTestcase::~PropertyTestcase()
58{
59	}
60
61
62/*
63 *  Method:  PropertyTestcase::DuplicateProperties()
64 *   Descr:  This member function returns a pointer to a malloc()'d
65 *           property_info structure which is a copy of the one passed
66 *           in.
67 */
68
69
70	property_info *PropertyTestcase::DuplicateProperties(
71	    const property_info *prop1,
72	    int prop_count)
73{
74	int i, j, k;
75
76	property_info *prop2 = NULL;
77	if (prop1 != NULL) {
78		prop2 = (property_info *) malloc(sizeof(property_info) * (prop_count + 1));
79		memcpy(prop2, prop1, sizeof(property_info) * (prop_count + 1));
80		for(i = 0; i < prop_count; i++) {
81			if (prop1[i].name != NULL) {
82				prop2[i].name = strdup(prop1[i].name);
83			}
84			if (prop1[i].usage != NULL) {
85				prop2[i].usage = strdup(prop1[i].usage);
86			}
87			for(j = 0; j < 3; j++) {
88				for(k = 0; k < 5; k++) {
89					if (prop1[i].ctypes[j].pairs[k].name == NULL) {
90						break;
91					} else {
92						prop2[i].ctypes[j].pairs[k].name =
93						    strdup(prop1[i].ctypes[j].pairs[k].name);
94					}
95				}
96				if (prop1[i].ctypes[j].pairs[0].name == NULL) {
97					break;
98				}
99			}
100		}
101	}
102	return(prop2);
103}
104
105
106/*
107 *  Method:  PropertyTestcase::DuplicateValues()
108 *   Descr:  This member function returns a pointer to a malloc()'d
109 *           value_info structure which is a copy of the one passed
110 *           in.
111 */
112
113
114	value_info *PropertyTestcase::DuplicateValues(
115	    const value_info *value1,
116	    int value_count)
117{
118	int i;
119
120	value_info *value2 = NULL;
121	if (value1 != NULL) {
122		value2 = (value_info *) malloc(sizeof(value_info) * (value_count + 1));
123		memcpy(value2, value1, sizeof(value_info) * (value_count + 1));
124		for(i = 0; i < value_count; i++) {
125			if (value1[i].name != NULL) {
126				value2[i].name = strdup(value1[i].name);
127			}
128			if (value1[i].usage != NULL) {
129				value2[i].usage = strdup(value1[i].usage);
130			}
131		}
132	}
133	return(value2);
134}
135
136
137/*
138 *  Method:  PropertyTestcase::PerformTest()
139 *   Descr:  This member function creates 36 different BPropertyInfo
140 *           instances and then passes each of them to TestProperty().
141 *           The actual instances are:
142 *                 - NULL property_info, NULL value_info
143 *                 - NULL property_info, empty value_info
144 *                 - NULL property_info, sample value_info
145 *                 - empty property_info, NULL value_info
146 *                 - empty property_info, empty value_info
147 *                 - empty property_info, sample value_info
148 *                 - sample property_info, NULL value_info
149 *                 - sample property_info, empty value_info
150 *                 - sample property_info, sample value_info
151 *            Each of these are created in four different ways:
152 *                 - one where each structure is statically allocated
153 *                 - one where each structure is dynamically allocated
154 *                 - one where the BPropertyInfo is unflattened from little
155 *                   endian data (generated from BeOS R5 running on Intel)
156 *                 - one where the BPropertyInfo is unflattened from big
157 *                   endian data (generated from BeOS R5 running on a BeBox)
158 *            This results in 36 different combinations to perform tests
159 *            on.
160 */
161
162
163	void PropertyTestcase::PerformTest(void)
164{
165	typedef struct property_tests {
166		struct property_info *props;
167		struct value_info *values;
168		int prop_count;
169		int value_count;
170		int flat_size;
171		char lflat_data[768];
172		char bflat_data[768];
173	} property_tests;
174
175	struct property_info prop1[] = { { 0 } };
176	struct property_info prop2[] = {
177		{ "test1", {B_GET_PROPERTY, B_SET_PROPERTY, B_EXECUTE_PROPERTY,
178		            B_DELETE_PROPERTY, B_CREATE_PROPERTY, B_COUNT_PROPERTIES, 7,
179		            8, 9, 10},
180		           {B_DIRECT_SPECIFIER, B_NAME_SPECIFIER, B_ID_SPECIFIER,
181		            B_INDEX_SPECIFIER, B_REVERSE_INDEX_SPECIFIER,
182		            B_RANGE_SPECIFIER, B_REVERSE_RANGE_SPECIFIER, 8, 9, 10},
183		           "test1: Test maximum property_info",
184		           0,
185		           {1, 2, 3, 4, 5, 6, 7, 8, 9, 10},
186		           {
187		            { { {"ctype11", 11}, {"ctype12", 12}, {"ctype13", 13},
188		                {"ctype14", 14}, {"ctype15", 15} } },
189		            { { {"ctype21", 21}, {"ctype22", 22}, {"ctype23", 23},
190		                {"ctype24", 24}, {"ctype25", 25} } },
191		            { { {"ctype31", 31}, {"ctype32", 32}, {"ctype33", 33},
192		                {"ctype34", 34}, {"ctype35", 35} } } }
193		  },
194		{ "test2", {0, B_GET_PROPERTY},
195		           {B_DIRECT_SPECIFIER, 0},
196		           "test2: Test wildcard command",
197		           1},
198		{ "test3", {B_GET_PROPERTY, 0},
199		           {0, B_DIRECT_SPECIFIER},
200		           "test3: Test wildcard specifier",
201		           2},
202		{ "test4", {0, B_GET_PROPERTY},
203		           {0, B_DIRECT_SPECIFIER},
204		           "test4: Test wildcard command and specifier",
205		           3},
206        { 0 } // terminate list
207    };
208
209	struct value_info value1[] = { { 0 } };
210	struct value_info value2[] = {
211		{ "Value1", 5, B_COMMAND_KIND, "This is the usage", 0 },
212		{ "Value2", 6, B_TYPE_CODE_KIND, "This is the usage", 1 },
213		{ 0 } // terminate list
214	};
215
216	static property_tests theTests[] = {
217		{ NULL, NULL, 0, 0, 9,
218			{0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0},
219			{0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1}
220		},
221		{ NULL, value1, 0, 0, 11,
222			{0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0},
223			{0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0}
224		},
225		{ NULL, value2, 0, 2, 85,
226			{0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0,
227			 0x0, 0x0, 0x5, 0x0, 0x0, 0x0, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x31,
228			 0x0, 0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x74, 0x68,
229			 0x65, 0x20, 0x75, 0x73, 0x61, 0x67, 0x65, 0x0, 0x0, 0x0, 0x0, 0x0,
230			 0x1, 0x0, 0x0, 0x0, 0x6, 0x0, 0x0, 0x0, 0x56, 0x61, 0x6c, 0x75,
231			 0x65, 0x32, 0x0, 0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20,
232			 0x74, 0x68, 0x65, 0x20, 0x75, 0x73, 0x61, 0x67, 0x65, 0x0, 0x1,
233			 0x0, 0x0, 0x0},
234			{0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0x0, 0x2, 0x0, 0x0,
235			 0x0, 0x0, 0x0, 0x0, 0x0, 0x5, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x31,
236			 0x0, 0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x74, 0x68,
237			 0x65, 0x20, 0x75, 0x73, 0x61, 0x67, 0x65, 0x0, 0x0, 0x0, 0x0, 0x0,
238			 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x6, 0x56, 0x61, 0x6c, 0x75,
239			 0x65, 0x32, 0x0, 0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20,
240			 0x74, 0x68, 0x65, 0x20, 0x75, 0x73, 0x61, 0x67, 0x65, 0x0, 0x0,
241			 0x0, 0x0, 0x1}
242		},
243		{ prop1, NULL, 0, 0, 9,
244			{0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0},
245			{0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1}
246		},
247		{ prop1, value1, 0, 0, 11,
248			{0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0},
249			{0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0}
250		},
251		{ prop1, value2, 0, 2, 85,
252			{0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0,
253			 0x0, 0x0, 0x5, 0x0, 0x0, 0x0, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x31,
254			 0x0, 0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x74, 0x68,
255			 0x65, 0x20, 0x75, 0x73, 0x61, 0x67, 0x65, 0x0, 0x0, 0x0, 0x0, 0x0,
256			 0x1, 0x0, 0x0, 0x0, 0x6, 0x0, 0x0, 0x0, 0x56, 0x61, 0x6c, 0x75,
257			 0x65, 0x32, 0x0, 0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20,
258			 0x74, 0x68, 0x65, 0x20, 0x75, 0x73, 0x61, 0x67, 0x65, 0x0, 0x1,
259			 0x0, 0x0, 0x0},
260			{0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0x0, 0x2, 0x0, 0x0,
261			0x0, 0x0, 0x0, 0x0, 0x0, 0x5, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x31,
262			0x0, 0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x74, 0x68,
263			0x65, 0x20, 0x75, 0x73, 0x61, 0x67, 0x65, 0x0, 0x0, 0x0, 0x0, 0x0,
264			0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x6, 0x56, 0x61, 0x6c, 0x75,
265			0x65, 0x32, 0x0, 0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20,
266			0x74, 0x68, 0x65, 0x20, 0x75, 0x73, 0x61, 0x67, 0x65, 0x0, 0x0,
267			0x0, 0x0, 0x1}
268		},
269		{ prop2, NULL, 4, 0, 570,
270			{0x0, 0x4, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x74, 0x65, 0x73,
271			 0x74, 0x31, 0x0, 0x74, 0x65, 0x73, 0x74, 0x31, 0x3a, 0x20, 0x54,
272			 0x65, 0x73, 0x74, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d,
273			 0x20, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x5f, 0x69,
274			 0x6e, 0x66, 0x6f, 0x0, 0x0, 0x0, 0x0, 0x0, 0x54, 0x45, 0x47, 0x50,
275			 0x54, 0x45, 0x53, 0x50, 0x45, 0x58, 0x45, 0x50, 0x4c, 0x45, 0x44,
276			 0x50, 0x54, 0x52, 0x43, 0x50, 0x54, 0x4e, 0x43, 0x50, 0x7, 0x0,
277			 0x0, 0x0, 0x8, 0x0, 0x0, 0x0, 0x9, 0x0, 0x0, 0x0, 0xa, 0x0, 0x0,
278			 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x6, 0x0, 0x0, 0x0,
279			 0x7, 0x0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x4,
280			 0x0, 0x0, 0x0, 0x5, 0x0, 0x0, 0x0, 0x8, 0x0, 0x0, 0x0, 0x9, 0x0,
281			 0x0, 0x0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x74, 0x65,
282			 0x73, 0x74, 0x32, 0x0, 0x74, 0x65, 0x73, 0x74, 0x32, 0x3a, 0x20,
283			 0x54, 0x65, 0x73, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x64, 0x63, 0x61,
284			 0x72, 0x64, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x0,
285			 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0,
286			 0x0, 0x0, 0x0, 0x74, 0x65, 0x73, 0x74, 0x33, 0x0, 0x74, 0x65, 0x73,
287			 0x74, 0x33, 0x3a, 0x20, 0x54, 0x65, 0x73, 0x74, 0x20, 0x77, 0x69,
288			 0x6c, 0x64, 0x63, 0x61, 0x72, 0x64, 0x20, 0x73, 0x70, 0x65, 0x63,
289			 0x69, 0x66, 0x69, 0x65, 0x72, 0x0, 0x2, 0x0, 0x0, 0x0, 0x54, 0x45,
290			 0x47, 0x50, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x74, 0x65,
291			 0x73, 0x74, 0x34, 0x0, 0x74, 0x65, 0x73, 0x74, 0x34, 0x3a, 0x20,
292			 0x54, 0x65, 0x73, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x64, 0x63, 0x61,
293			 0x72, 0x64, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x20,
294			 0x61, 0x6e, 0x64, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69,
295			 0x65, 0x72, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
296			 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0,
297			 0x0, 0x4, 0x0, 0x0, 0x0, 0x5, 0x0, 0x0, 0x0, 0x6, 0x0, 0x0, 0x0,
298			 0x7, 0x0, 0x0, 0x0, 0x8, 0x0, 0x0, 0x0, 0x9, 0x0, 0x0, 0x0, 0xa,
299			 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x63, 0x74, 0x79, 0x70, 0x65,
300			 0x31, 0x31, 0x0, 0xb, 0x0, 0x0, 0x0, 0x63, 0x74, 0x79, 0x70, 0x65,
301			 0x31, 0x32, 0x0, 0xc, 0x0, 0x0, 0x0, 0x63, 0x74, 0x79, 0x70, 0x65,
302			 0x31, 0x33, 0x0, 0xd, 0x0, 0x0, 0x0, 0x63, 0x74, 0x79, 0x70, 0x65,
303			 0x31, 0x34, 0x0, 0xe, 0x0, 0x0, 0x0, 0x63, 0x74, 0x79, 0x70, 0x65,
304			 0x31, 0x35, 0x0, 0xf, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x63,
305			 0x74, 0x79, 0x70, 0x65, 0x32, 0x31, 0x0, 0x15, 0x0, 0x0, 0x0, 0x63,
306			 0x74, 0x79, 0x70, 0x65, 0x32, 0x32, 0x0, 0x16, 0x0, 0x0, 0x0, 0x63,
307			 0x74, 0x79, 0x70, 0x65, 0x32, 0x33, 0x0, 0x17, 0x0, 0x0, 0x0, 0x63,
308			 0x74, 0x79, 0x70, 0x65, 0x32, 0x34, 0x0, 0x18, 0x0, 0x0, 0x0, 0x63,
309			 0x74, 0x79, 0x70, 0x65, 0x32, 0x35, 0x0, 0x19, 0x0, 0x0, 0x0, 0x0,
310			 0x0, 0x0, 0x0, 0x63, 0x74, 0x79, 0x70, 0x65, 0x33, 0x31, 0x0, 0x1f,
311			 0x0, 0x0, 0x0, 0x63, 0x74, 0x79, 0x70, 0x65, 0x33, 0x32, 0x0, 0x20,
312			 0x0, 0x0, 0x0, 0x63, 0x74, 0x79, 0x70, 0x65, 0x33, 0x33, 0x0, 0x21,
313			 0x0, 0x0, 0x0, 0x63, 0x74, 0x79, 0x70, 0x65, 0x33, 0x34, 0x0, 0x22,
314			 0x0, 0x0, 0x0, 0x63, 0x74, 0x79, 0x70, 0x65, 0x33, 0x35, 0x0, 0x23,
315			 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
316			 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
317			 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0},
318			{0x1, 0x0, 0x0, 0x0, 0x4, 0x0, 0x0, 0x0, 0x1, 0x74, 0x65, 0x73,
319			 0x74, 0x31, 0x0, 0x74, 0x65, 0x73, 0x74, 0x31, 0x3a, 0x20, 0x54,
320			 0x65, 0x73, 0x74, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d,
321			 0x20, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x5f, 0x69,
322			 0x6e, 0x66, 0x6f, 0x0, 0x0, 0x0, 0x0, 0x0, 0x50, 0x47, 0x45,
323			 0x54, 0x50, 0x53, 0x45, 0x54, 0x50, 0x45, 0x58, 0x45, 0x50, 0x44,
324			 0x45, 0x4c, 0x50, 0x43, 0x52, 0x54, 0x50, 0x43, 0x4e, 0x54, 0x0,
325			 0x0, 0x0, 0x7, 0x0, 0x0, 0x0, 0x8, 0x0, 0x0, 0x0, 0x9, 0x0, 0x0,
326			 0x0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0,
327			 0x6, 0x0, 0x0, 0x0, 0x7, 0x0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, 0x3,
328			 0x0, 0x0, 0x0, 0x4, 0x0, 0x0, 0x0, 0x5, 0x0, 0x0, 0x0, 0x8, 0x0,
329			 0x0, 0x0, 0x9, 0x0, 0x0, 0x0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x74,
330			 0x65, 0x73, 0x74, 0x32, 0x0, 0x74, 0x65, 0x73, 0x74, 0x32, 0x3a,
331			 0x20, 0x54, 0x65, 0x73, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x64, 0x63,
332			 0x61, 0x72, 0x64, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64,
333			 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1,
334			 0x0, 0x0, 0x0, 0x0, 0x74, 0x65, 0x73, 0x74, 0x33, 0x0, 0x74,
335			 0x65, 0x73, 0x74, 0x33, 0x3a, 0x20, 0x54, 0x65, 0x73, 0x74, 0x20,
336			 0x77, 0x69, 0x6c, 0x64, 0x63, 0x61, 0x72, 0x64, 0x20, 0x73, 0x70,
337			 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x72, 0x0, 0x0, 0x0, 0x0,
338			 0x2, 0x50, 0x47, 0x45, 0x54, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
339			 0x0, 0x74, 0x65, 0x73, 0x74, 0x34, 0x0, 0x74, 0x65, 0x73, 0x74,
340			 0x34, 0x3a, 0x20, 0x54, 0x65, 0x73, 0x74, 0x20, 0x77, 0x69, 0x6c,
341			 0x64, 0x63, 0x61, 0x72, 0x64, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61,
342			 0x6e, 0x64, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x73, 0x70, 0x65, 0x63,
343			 0x69, 0x66, 0x69, 0x65, 0x72, 0x0, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0,
344			 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0,
345			 0x2, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x4, 0x0, 0x0, 0x0, 0x5,
346			 0x0, 0x0, 0x0, 0x6, 0x0, 0x0, 0x0, 0x7, 0x0, 0x0, 0x0, 0x8, 0x0,
347			 0x0, 0x0, 0x9, 0x0, 0x0, 0x0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x63,
348			 0x74, 0x79, 0x70, 0x65, 0x31, 0x31, 0x0, 0x0, 0x0, 0x0, 0xb,
349			 0x63, 0x74, 0x79, 0x70, 0x65, 0x31, 0x32, 0x0, 0x0, 0x0, 0x0,
350			 0xc, 0x63, 0x74, 0x79, 0x70, 0x65, 0x31, 0x33, 0x0, 0x0, 0x0,
351			 0x0, 0xd, 0x63, 0x74, 0x79, 0x70, 0x65, 0x31, 0x34, 0x0, 0x0,
352			 0x0, 0x0, 0xe, 0x63, 0x74, 0x79, 0x70, 0x65, 0x31, 0x35, 0x0,
353			 0x0, 0x0, 0x0, 0xf, 0x0, 0x0, 0x0, 0x0, 0x63, 0x74, 0x79, 0x70,
354			 0x65, 0x32, 0x31, 0x0, 0x0, 0x0, 0x0, 0x15, 0x63, 0x74, 0x79,
355			 0x70, 0x65, 0x32, 0x32, 0x0, 0x0, 0x0, 0x0, 0x16, 0x63, 0x74,
356			 0x79, 0x70, 0x65, 0x32, 0x33, 0x0, 0x0, 0x0, 0x0, 0x17, 0x63,
357			 0x74, 0x79, 0x70, 0x65, 0x32, 0x34, 0x0, 0x0, 0x0, 0x0, 0x18,
358			 0x63, 0x74, 0x79, 0x70, 0x65, 0x32, 0x35, 0x0, 0x0, 0x0, 0x0,
359			 0x19, 0x0, 0x0, 0x0, 0x0, 0x63, 0x74, 0x79, 0x70, 0x65, 0x33,
360			 0x31, 0x0, 0x0, 0x0, 0x0, 0x1f, 0x63, 0x74, 0x79, 0x70, 0x65,
361			 0x33, 0x32, 0x0, 0x0, 0x0, 0x0, 0x20, 0x63, 0x74, 0x79, 0x70,
362			 0x65, 0x33, 0x33, 0x0, 0x0, 0x0, 0x0, 0x21, 0x63, 0x74, 0x79,
363			 0x70, 0x65, 0x33, 0x34, 0x0, 0x0, 0x0, 0x0, 0x22, 0x63, 0x74,
364			 0x79, 0x70, 0x65, 0x33, 0x35, 0x0, 0x0, 0x0, 0x0, 0x23, 0x0,
365			 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
366			 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
367			 0x0, 0x0, 0x0, 0x0, 0x0}
368		},
369		{ prop2, value1, 4, 0, 572,
370			{0x0, 0x4, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x74, 0x65, 0x73, 0x74,
371			 0x31, 0x0, 0x74, 0x65, 0x73, 0x74, 0x31, 0x3a, 0x20, 0x54, 0x65,
372			 0x73, 0x74, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20,
373			 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x5f, 0x69, 0x6e,
374			 0x66, 0x6f, 0x0, 0x0, 0x0, 0x0, 0x0, 0x54, 0x45, 0x47, 0x50, 0x54,
375			 0x45, 0x53, 0x50, 0x45, 0x58, 0x45, 0x50, 0x4c, 0x45, 0x44, 0x50,
376			 0x54, 0x52, 0x43, 0x50, 0x54, 0x4e, 0x43, 0x50, 0x7, 0x0, 0x0, 0x0,
377			 0x8, 0x0, 0x0, 0x0, 0x9, 0x0, 0x0, 0x0, 0xa, 0x0, 0x0, 0x0, 0x0,
378			 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x6, 0x0, 0x0, 0x0, 0x7, 0x0,
379			 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x4, 0x0, 0x0,
380			 0x0, 0x5, 0x0, 0x0, 0x0, 0x8, 0x0, 0x0, 0x0, 0x9, 0x0, 0x0, 0x0,
381			 0xa, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x74, 0x65, 0x73, 0x74,
382			 0x32, 0x0, 0x74, 0x65, 0x73, 0x74, 0x32, 0x3a, 0x20, 0x54, 0x65,
383			 0x73, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x64, 0x63, 0x61, 0x72, 0x64,
384			 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x0, 0x1, 0x0, 0x0,
385			 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
386			 0x74, 0x65, 0x73, 0x74, 0x33, 0x0, 0x74, 0x65, 0x73, 0x74, 0x33,
387			 0x3a, 0x20, 0x54, 0x65, 0x73, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x64,
388			 0x63, 0x61, 0x72, 0x64, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66,
389			 0x69, 0x65, 0x72, 0x0, 0x2, 0x0, 0x0, 0x0, 0x54, 0x45, 0x47, 0x50,
390			 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x74, 0x65, 0x73, 0x74,
391			 0x34, 0x0, 0x74, 0x65, 0x73, 0x74, 0x34, 0x3a, 0x20, 0x54, 0x65,
392			 0x73, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x64, 0x63, 0x61, 0x72, 0x64,
393			 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x20, 0x61, 0x6e,
394			 0x64, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x72,
395			 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
396			 0x1, 0x0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x4,
397			 0x0, 0x0, 0x0, 0x5, 0x0, 0x0, 0x0, 0x6, 0x0, 0x0, 0x0, 0x7, 0x0,
398			 0x0, 0x0, 0x8, 0x0, 0x0, 0x0, 0x9, 0x0, 0x0, 0x0, 0xa, 0x0, 0x0,
399			 0x0, 0x0, 0x0, 0x0, 0x0, 0x63, 0x74, 0x79, 0x70, 0x65, 0x31, 0x31,
400			 0x0, 0xb, 0x0, 0x0, 0x0, 0x63, 0x74, 0x79, 0x70, 0x65, 0x31, 0x32,
401			 0x0, 0xc, 0x0, 0x0, 0x0, 0x63, 0x74, 0x79, 0x70, 0x65, 0x31, 0x33,
402			 0x0, 0xd, 0x0, 0x0, 0x0, 0x63, 0x74, 0x79, 0x70, 0x65, 0x31, 0x34,
403			 0x0, 0xe, 0x0, 0x0, 0x0, 0x63, 0x74, 0x79, 0x70, 0x65, 0x31, 0x35,
404			 0x0, 0xf, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x63, 0x74, 0x79, 0x70,
405			 0x65, 0x32, 0x31, 0x0, 0x15, 0x0, 0x0, 0x0, 0x63, 0x74, 0x79, 0x70,
406			 0x65, 0x32, 0x32, 0x0, 0x16, 0x0, 0x0, 0x0, 0x63, 0x74, 0x79, 0x70,
407			 0x65, 0x32, 0x33, 0x0, 0x17, 0x0, 0x0, 0x0, 0x63, 0x74, 0x79, 0x70,
408			 0x65, 0x32, 0x34, 0x0, 0x18, 0x0, 0x0, 0x0, 0x63, 0x74, 0x79, 0x70,
409			 0x65, 0x32, 0x35, 0x0, 0x19, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
410			 0x63, 0x74, 0x79, 0x70, 0x65, 0x33, 0x31, 0x0, 0x1f, 0x0, 0x0, 0x0,
411			 0x63, 0x74, 0x79, 0x70, 0x65, 0x33, 0x32, 0x0, 0x20, 0x0, 0x0, 0x0,
412			 0x63, 0x74, 0x79, 0x70, 0x65, 0x33, 0x33, 0x0, 0x21, 0x0, 0x0, 0x0,
413			 0x63, 0x74, 0x79, 0x70, 0x65, 0x33, 0x34, 0x0, 0x22, 0x0, 0x0, 0x0,
414			 0x63, 0x74, 0x79, 0x70, 0x65, 0x33, 0x35, 0x0, 0x23, 0x0, 0x0, 0x0,
415			 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
416			 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
417			 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0},
418			{0x1, 0x0, 0x0, 0x0, 0x4, 0x0, 0x0, 0x0, 0x3, 0x74, 0x65, 0x73,
419			0x74, 0x31, 0x0, 0x74, 0x65, 0x73, 0x74, 0x31, 0x3a, 0x20, 0x54,
420			0x65, 0x73, 0x74, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d,
421			0x20, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x5f, 0x69,
422			0x6e, 0x66, 0x6f, 0x0, 0x0, 0x0, 0x0, 0x0, 0x50, 0x47, 0x45, 0x54,
423			0x50, 0x53, 0x45, 0x54, 0x50, 0x45, 0x58, 0x45, 0x50, 0x44, 0x45,
424			0x4c, 0x50, 0x43, 0x52, 0x54, 0x50, 0x43, 0x4e, 0x54, 0x0, 0x0,
425			0x0, 0x7, 0x0, 0x0, 0x0, 0x8, 0x0, 0x0, 0x0, 0x9, 0x0, 0x0, 0x0,
426			0xa, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x6,
427			0x0, 0x0, 0x0, 0x7, 0x0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, 0x3, 0x0,
428			0x0, 0x0, 0x4, 0x0, 0x0, 0x0, 0x5, 0x0, 0x0, 0x0, 0x8, 0x0, 0x0,
429			0x0, 0x9, 0x0, 0x0, 0x0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x74, 0x65,
430			0x73, 0x74, 0x32, 0x0, 0x74, 0x65, 0x73, 0x74, 0x32, 0x3a, 0x20,
431			0x54, 0x65, 0x73, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x64, 0x63, 0x61,
432			0x72, 0x64, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x0,
433			0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0,
434			0x0, 0x0, 0x0, 0x74, 0x65, 0x73, 0x74, 0x33, 0x0, 0x74, 0x65,
435			0x73, 0x74, 0x33, 0x3a, 0x20, 0x54, 0x65, 0x73, 0x74, 0x20, 0x77,
436			0x69, 0x6c, 0x64, 0x63, 0x61, 0x72, 0x64, 0x20, 0x73, 0x70, 0x65,
437			0x63, 0x69, 0x66, 0x69, 0x65, 0x72, 0x0, 0x0, 0x0, 0x0, 0x2, 0x50,
438			0x47, 0x45, 0x54, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x74,
439			0x65, 0x73, 0x74, 0x34, 0x0, 0x74, 0x65, 0x73, 0x74, 0x34, 0x3a,
440			0x20, 0x54, 0x65, 0x73, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x64, 0x63,
441			0x61, 0x72, 0x64, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64,
442			0x20, 0x61, 0x6e, 0x64, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66,
443			0x69, 0x65, 0x72, 0x0, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0,
444			0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x2, 0x0,
445			0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x4, 0x0, 0x0, 0x0, 0x5, 0x0, 0x0,
446			0x0, 0x6, 0x0, 0x0, 0x0, 0x7, 0x0, 0x0, 0x0, 0x8, 0x0, 0x0, 0x0,
447			0x9, 0x0, 0x0, 0x0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x63, 0x74, 0x79,
448			0x70, 0x65, 0x31, 0x31, 0x0, 0x0, 0x0, 0x0, 0xb, 0x63, 0x74, 0x79,
449			0x70, 0x65, 0x31, 0x32, 0x0, 0x0, 0x0, 0x0, 0xc, 0x63, 0x74, 0x79,
450			0x70, 0x65, 0x31, 0x33, 0x0, 0x0, 0x0, 0x0, 0xd, 0x63, 0x74, 0x79,
451			0x70, 0x65, 0x31, 0x34, 0x0, 0x0, 0x0, 0x0, 0xe, 0x63, 0x74, 0x79,
452			0x70, 0x65, 0x31, 0x35, 0x0, 0x0, 0x0, 0x0, 0xf, 0x0, 0x0, 0x0,
453			0x0, 0x63, 0x74, 0x79, 0x70, 0x65, 0x32, 0x31, 0x0, 0x0, 0x0, 0x0,
454			0x15, 0x63, 0x74, 0x79, 0x70, 0x65, 0x32, 0x32, 0x0, 0x0, 0x0,
455			0x0, 0x16, 0x63, 0x74, 0x79, 0x70, 0x65, 0x32, 0x33, 0x0, 0x0,
456			0x0, 0x0, 0x17, 0x63, 0x74, 0x79, 0x70, 0x65, 0x32, 0x34, 0x0,
457			0x0, 0x0, 0x0, 0x18, 0x63, 0x74, 0x79, 0x70, 0x65, 0x32, 0x35,
458			0x0, 0x0, 0x0, 0x0, 0x19, 0x0, 0x0, 0x0, 0x0, 0x63, 0x74, 0x79,
459			0x70, 0x65, 0x33, 0x31, 0x0, 0x0, 0x0, 0x0, 0x1f, 0x63, 0x74,
460			0x79, 0x70, 0x65, 0x33, 0x32, 0x0, 0x0, 0x0, 0x0, 0x20, 0x63,
461			0x74, 0x79, 0x70, 0x65, 0x33, 0x33, 0x0, 0x0, 0x0, 0x0, 0x21,
462			0x63, 0x74, 0x79, 0x70, 0x65, 0x33, 0x34, 0x0, 0x0, 0x0, 0x0,
463			0x22, 0x63, 0x74, 0x79, 0x70, 0x65, 0x33, 0x35, 0x0, 0x0, 0x0,
464			0x0, 0x23, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
465			0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
466			0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}
467		},
468		{ prop2, value2, 4, 2, 646,
469			{0x0, 0x4, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x74, 0x65, 0x73, 0x74,
470			 0x31, 0x0, 0x74, 0x65, 0x73, 0x74, 0x31, 0x3a, 0x20, 0x54, 0x65,
471			 0x73, 0x74, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x20,
472			 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x5f, 0x69, 0x6e,
473			 0x66, 0x6f, 0x0, 0x0, 0x0, 0x0, 0x0, 0x54, 0x45, 0x47, 0x50, 0x54,
474			 0x45, 0x53, 0x50, 0x45, 0x58, 0x45, 0x50, 0x4c, 0x45, 0x44, 0x50,
475			 0x54, 0x52, 0x43, 0x50, 0x54, 0x4e, 0x43, 0x50, 0x7, 0x0, 0x0, 0x0,
476			 0x8, 0x0, 0x0, 0x0, 0x9, 0x0, 0x0, 0x0, 0xa, 0x0, 0x0, 0x0, 0x0,
477			 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x6, 0x0, 0x0, 0x0, 0x7, 0x0,
478			 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x4, 0x0, 0x0,
479			 0x0, 0x5, 0x0, 0x0, 0x0, 0x8, 0x0, 0x0, 0x0, 0x9, 0x0, 0x0, 0x0,
480			 0xa, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x74, 0x65, 0x73, 0x74,
481			 0x32, 0x0, 0x74, 0x65, 0x73, 0x74, 0x32, 0x3a, 0x20, 0x54, 0x65,
482			 0x73, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x64, 0x63, 0x61, 0x72, 0x64,
483			 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x0, 0x1, 0x0, 0x0,
484			 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
485			 0x74, 0x65, 0x73, 0x74, 0x33, 0x0, 0x74, 0x65, 0x73, 0x74, 0x33,
486			 0x3a, 0x20, 0x54, 0x65, 0x73, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x64,
487			 0x63, 0x61, 0x72, 0x64, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66,
488			 0x69, 0x65, 0x72, 0x0, 0x2, 0x0, 0x0, 0x0, 0x54, 0x45, 0x47, 0x50,
489			 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x74, 0x65, 0x73, 0x74,
490			 0x34, 0x0, 0x74, 0x65, 0x73, 0x74, 0x34, 0x3a, 0x20, 0x54, 0x65,
491			 0x73, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x64, 0x63, 0x61, 0x72, 0x64,
492			 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x20, 0x61, 0x6e,
493			 0x64, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x72,
494			 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
495			 0x1, 0x0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x4,
496			 0x0, 0x0, 0x0, 0x5, 0x0, 0x0, 0x0, 0x6, 0x0, 0x0, 0x0, 0x7, 0x0,
497			 0x0, 0x0, 0x8, 0x0, 0x0, 0x0, 0x9, 0x0, 0x0, 0x0, 0xa, 0x0, 0x0,
498			 0x0, 0x0, 0x0, 0x0, 0x0, 0x63, 0x74, 0x79, 0x70, 0x65, 0x31, 0x31,
499			 0x0, 0xb, 0x0, 0x0, 0x0, 0x63, 0x74, 0x79, 0x70, 0x65, 0x31, 0x32,
500			 0x0, 0xc, 0x0, 0x0, 0x0, 0x63, 0x74, 0x79, 0x70, 0x65, 0x31, 0x33,
501			 0x0, 0xd, 0x0, 0x0, 0x0, 0x63, 0x74, 0x79, 0x70, 0x65, 0x31, 0x34,
502			 0x0, 0xe, 0x0, 0x0, 0x0, 0x63, 0x74, 0x79, 0x70, 0x65, 0x31, 0x35,
503			 0x0, 0xf, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x63, 0x74, 0x79, 0x70,
504			 0x65, 0x32, 0x31, 0x0, 0x15, 0x0, 0x0, 0x0, 0x63, 0x74, 0x79, 0x70,
505			 0x65, 0x32, 0x32, 0x0, 0x16, 0x0, 0x0, 0x0, 0x63, 0x74, 0x79, 0x70,
506			 0x65, 0x32, 0x33, 0x0, 0x17, 0x0, 0x0, 0x0, 0x63, 0x74, 0x79, 0x70,
507			 0x65, 0x32, 0x34, 0x0, 0x18, 0x0, 0x0, 0x0, 0x63, 0x74, 0x79, 0x70,
508			 0x65, 0x32, 0x35, 0x0, 0x19, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
509			 0x63, 0x74, 0x79, 0x70, 0x65, 0x33, 0x31, 0x0, 0x1f, 0x0, 0x0, 0x0,
510			 0x63, 0x74, 0x79, 0x70, 0x65, 0x33, 0x32, 0x0, 0x20, 0x0, 0x0, 0x0,
511			 0x63, 0x74, 0x79, 0x70, 0x65, 0x33, 0x33, 0x0, 0x21, 0x0, 0x0, 0x0,
512			 0x63, 0x74, 0x79, 0x70, 0x65, 0x33, 0x34, 0x0, 0x22, 0x0, 0x0, 0x0,
513			 0x63, 0x74, 0x79, 0x70, 0x65, 0x33, 0x35, 0x0, 0x23, 0x0, 0x0, 0x0,
514			 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
515			 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
516			 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x5,
517			 0x0, 0x0, 0x0, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x31, 0x0, 0x54, 0x68,
518			 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, 0x75,
519			 0x73, 0x61, 0x67, 0x65, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0,
520			 0x6, 0x0, 0x0, 0x0, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x32, 0x0, 0x54,
521			 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20,
522			 0x75, 0x73, 0x61, 0x67, 0x65, 0x0, 0x1, 0x0, 0x0, 0x0},
523			{0x1, 0x0, 0x0, 0x0, 0x4, 0x0, 0x0, 0x0, 0x3, 0x74, 0x65, 0x73,
524			0x74, 0x31, 0x0, 0x74, 0x65, 0x73, 0x74, 0x31, 0x3a, 0x20, 0x54,
525			0x65, 0x73, 0x74, 0x20, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d,
526			0x20, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x5f, 0x69,
527			0x6e, 0x66, 0x6f, 0x0, 0x0, 0x0, 0x0, 0x0, 0x50, 0x47, 0x45, 0x54,
528			0x50, 0x53, 0x45, 0x54, 0x50, 0x45, 0x58, 0x45, 0x50, 0x44, 0x45,
529			0x4c, 0x50, 0x43, 0x52, 0x54, 0x50, 0x43, 0x4e, 0x54, 0x0, 0x0,
530			0x0, 0x7, 0x0, 0x0, 0x0, 0x8, 0x0, 0x0, 0x0, 0x9, 0x0, 0x0, 0x0,
531			0xa, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x6,
532			0x0, 0x0, 0x0, 0x7, 0x0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, 0x3, 0x0,
533			0x0, 0x0, 0x4, 0x0, 0x0, 0x0, 0x5, 0x0, 0x0, 0x0, 0x8, 0x0, 0x0,
534			0x0, 0x9, 0x0, 0x0, 0x0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x74, 0x65,
535			0x73, 0x74, 0x32, 0x0, 0x74, 0x65, 0x73, 0x74, 0x32, 0x3a, 0x20,
536			0x54, 0x65, 0x73, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x64, 0x63, 0x61,
537			0x72, 0x64, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x0,
538			0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0,
539			0x0, 0x0, 0x0, 0x74, 0x65, 0x73, 0x74, 0x33, 0x0, 0x74, 0x65,
540			0x73, 0x74, 0x33, 0x3a, 0x20, 0x54, 0x65, 0x73, 0x74, 0x20, 0x77,
541			0x69, 0x6c, 0x64, 0x63, 0x61, 0x72, 0x64, 0x20, 0x73, 0x70, 0x65,
542			0x63, 0x69, 0x66, 0x69, 0x65, 0x72, 0x0, 0x0, 0x0, 0x0, 0x2, 0x50,
543			0x47, 0x45, 0x54, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x74,
544			0x65, 0x73, 0x74, 0x34, 0x0, 0x74, 0x65, 0x73, 0x74, 0x34, 0x3a,
545			0x20, 0x54, 0x65, 0x73, 0x74, 0x20, 0x77, 0x69, 0x6c, 0x64, 0x63,
546			0x61, 0x72, 0x64, 0x20, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64,
547			0x20, 0x61, 0x6e, 0x64, 0x20, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66,
548			0x69, 0x65, 0x72, 0x0, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0,
549			0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x2, 0x0,
550			0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x4, 0x0, 0x0, 0x0, 0x5, 0x0, 0x0,
551			0x0, 0x6, 0x0, 0x0, 0x0, 0x7, 0x0, 0x0, 0x0, 0x8, 0x0, 0x0, 0x0,
552			0x9, 0x0, 0x0, 0x0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x63, 0x74, 0x79,
553			0x70, 0x65, 0x31, 0x31, 0x0, 0x0, 0x0, 0x0, 0xb, 0x63, 0x74, 0x79,
554			0x70, 0x65, 0x31, 0x32, 0x0, 0x0, 0x0, 0x0, 0xc, 0x63, 0x74, 0x79,
555			0x70, 0x65, 0x31, 0x33, 0x0, 0x0, 0x0, 0x0, 0xd, 0x63, 0x74, 0x79,
556			0x70, 0x65, 0x31, 0x34, 0x0, 0x0, 0x0, 0x0, 0xe, 0x63, 0x74, 0x79,
557			0x70, 0x65, 0x31, 0x35, 0x0, 0x0, 0x0, 0x0, 0xf, 0x0, 0x0, 0x0,
558			0x0, 0x63, 0x74, 0x79, 0x70, 0x65, 0x32, 0x31, 0x0, 0x0, 0x0, 0x0,
559			0x15, 0x63, 0x74, 0x79, 0x70, 0x65, 0x32, 0x32, 0x0, 0x0, 0x0,
560			0x0, 0x16, 0x63, 0x74, 0x79, 0x70, 0x65, 0x32, 0x33, 0x0, 0x0,
561			0x0, 0x0, 0x17, 0x63, 0x74, 0x79, 0x70, 0x65, 0x32, 0x34, 0x0,
562			0x0, 0x0, 0x0, 0x18, 0x63, 0x74, 0x79, 0x70, 0x65, 0x32, 0x35,
563			0x0, 0x0, 0x0, 0x0, 0x19, 0x0, 0x0, 0x0, 0x0, 0x63, 0x74, 0x79,
564			0x70, 0x65, 0x33, 0x31, 0x0, 0x0, 0x0, 0x0, 0x1f, 0x63, 0x74,
565			0x79, 0x70, 0x65, 0x33, 0x32, 0x0, 0x0, 0x0, 0x0, 0x20, 0x63,
566			0x74, 0x79, 0x70, 0x65, 0x33, 0x33, 0x0, 0x0, 0x0, 0x0, 0x21,
567			0x63, 0x74, 0x79, 0x70, 0x65, 0x33, 0x34, 0x0, 0x0, 0x0, 0x0,
568			0x22, 0x63, 0x74, 0x79, 0x70, 0x65, 0x33, 0x35, 0x0, 0x0, 0x0,
569			0x0, 0x23, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
570			0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
571			0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0,
572			0x0, 0x0, 0x0, 0x0, 0x5, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x31, 0x0,
573			0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x74, 0x68, 0x65,
574			0x20, 0x75, 0x73, 0x61, 0x67, 0x65, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
575			0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x6, 0x56, 0x61, 0x6c, 0x75, 0x65,
576			0x32, 0x0, 0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x74,
577			0x68, 0x65, 0x20, 0x75, 0x73, 0x61, 0x67, 0x65, 0x0, 0x0, 0x0,
578			0x0, 0x1}
579		}
580	};
581	int i;
582	BPropertyInfo *propTest;
583	property_info *propPtr;
584	value_info *valuePtr;
585
586	for (i=0; (unsigned)i < sizeof(theTests) / sizeof(theTests[0]); i++) {
587		propTest = new BPropertyInfo(theTests[i].props, theTests[i].values);
588		TestProperty(propTest, theTests[i].props, theTests[i].values,
589					 theTests[i].prop_count, theTests[i].value_count,
590				     theTests[i].flat_size, theTests[i].lflat_data,
591				     theTests[i].bflat_data);
592		delete propTest;
593
594		propPtr = DuplicateProperties(theTests[i].props, theTests[i].prop_count);
595		valuePtr = DuplicateValues(theTests[i].values, theTests[i].value_count);
596		propTest = new BPropertyInfo(propPtr, valuePtr, true);
597		TestProperty(propTest, theTests[i].props, theTests[i].values,
598					 theTests[i].prop_count, theTests[i].value_count,
599				     theTests[i].flat_size, theTests[i].lflat_data,
600				     theTests[i].bflat_data);
601		delete propTest;
602
603		propTest = new BPropertyInfo;
604		assert(propTest->Unflatten(B_PROPERTY_INFO_TYPE, theTests[i].lflat_data,
605		                           theTests[i].flat_size) == B_OK);
606		TestProperty(propTest, theTests[i].props, theTests[i].values,
607					 theTests[i].prop_count, theTests[i].value_count,
608				     theTests[i].flat_size, theTests[i].lflat_data,
609				     theTests[i].bflat_data);
610		delete propTest;
611
612		propTest = new BPropertyInfo;
613		assert(propTest->Unflatten(B_PROPERTY_INFO_TYPE, theTests[i].bflat_data,
614		                           theTests[i].flat_size) == B_OK);
615		TestProperty(propTest, theTests[i].props, theTests[i].values,
616					 theTests[i].prop_count, theTests[i].value_count,
617				     theTests[i].flat_size, theTests[i].lflat_data,
618				     theTests[i].bflat_data);
619		delete propTest;
620	}
621}
622