xref: /haiku/src/tests/kits/app/bpropertyinfo/PropertyTestcase.cpp (revision 4c8e85b316c35a9161f5a1c50ad70bc91c83a76f)
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 
25 const char *PropertyTestcase::uniquePropName = "no match!";
26 const uint32 PropertyTestcase::uniqueCommand = 11;
27 const uint32 PropertyTestcase::uniqueSpecifier = 11;
28 const char *PropertyTestcase::commonPropName = "test1";
29 const uint32 PropertyTestcase::commonCommand = B_GET_PROPERTY;
30 const uint32 PropertyTestcase::commonSpecifier = B_DIRECT_SPECIFIER;
31 const uint32 PropertyTestcase::wildcardCommandTests[] = { uniqueCommand,
32                                                           commonCommand,
33                                                           0};
34 const 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