First public contribution.
1 #ifndef __DESCRIPTORS_RAW_DATA_H
2 #define __DESCRIPTORS_RAW_DATA_H
5 * Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
7 * This component and the accompanying materials are made available
8 * under the terms of the License "Eclipse Public License v1.0"
9 * which accompanies this distribution, and is available
10 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
12 * Initial Contributors:
13 * Nokia Corporation - initial contribution.
18 * @file descriptorsRawData.h
26 namespace NUnitTesting_USBDI
29 _LIT8(KDeviceDescriptorData, "\
30 \x12\x01\x00\x02\xff\xff\xff\x40\x22\x0e\x40\x00\x05\x03\x01\x02\x03\x01"); // ok
32 _LIT8(KConfigurationDescriptorInsufficientDataTestCase1, "\
33 \x09\x02\x50\x00\x02\x01\x04\xe0\x00\x09\x04\x00\x00\x00\xff\xff\xff\x06\x09\
34 \x04\x01\x00\x02\xff\xff\xff\x07\x07\x05\x01\x02\x40\x00\x00\x07\x05\x84\x02\
35 \x40\x00\x00\x09\x04\x01\x01\x03\xff\xff\xff\x08\x07\x05\x81\x03\x08\x00\x40\
36 \x07\x05\x01\x02\x40\x00\x00\x07\x05\x84\x02\x40\x00\x00"); // wTotalLength > real size
38 _LIT8(KConfigurationDescriptorInsufficientDataTestCase2, "\
39 \x09\x02\x45\x00\x02\x01\x04\xe0\x00\x09\x04\x00\x00\x00\xff\xff\xff\x06\x09\
40 \x04\x01\x00\x02\xff\xff\xff\x07\x07\x05\x01\x02\x40\x00\x00\x07\x05\x84\x02\
41 \x40\x00\x00\x09\x04\x01\x01\x03\xff\xff\xff\x08\x07\x05\x81\x03\x08\x00\x40\
42 \x07\x05\x01\x02\x40\x00\x00\x07\x05\x84\x02\x40");// last EP descriptor incomplete
44 _LIT8(KConfigurationDescriptorUnexpectedLengthTestCase3, "\
45 \x09\x02\x49\x00\x02\x01\x04\xe0\x00\x09\x04\x00\x00\x00\xff\xff\xff\x06\x09\
46 \x04\x01\x00\x02\xff\xff\xff\x07\x07\x05\x01\x02\x40\x00\x00\x07\x05\x84\x02\
47 \x40\x00\x00\x09\x04\x01\x01\x03\xff\xff\xff\x08\x07\x05\x81\x03\x08\x00\x40\
48 \x07\x05\x01\x02\x40\x00\x00\x09\x05\x84\x02\x40\x00\x00\x00\x00"); // last EP defined as 9 bytes(usb Audio class...), instead of 7(USB Spec.)
52 // IF0-IF1-IAD0(2,2)-IF2.0-IF2.1-IF4-IF3
53 _LIT8(KConfigurationDescriptorWithIADTestCase1, "\
54 \x09\x02\x6A\x00\x05\x01\x04\xe0\x00\
55 \x09\x04\x00\x00\x00\xff\xff\xff\x06\x09\x04\x01\x00\x02\xff\xff\xff\x07\x07\x05\x01\x02\x40\x00\x00\x07\x05\x84\x02\x40\x00\x00\
56 \x08\x0B\x02\x02\xff\xff\xff\x02\x09\x04\x02\x00\x03\xff\xff\xff\x08\x07\x05\x81\x03\x08\x00\x40\x07\x05\x01\
57 \x02\x40\x00\x00\x07\x05\x84\x02\x40\x00\x00\
58 \x09\x04\x02\x01\x00\xff\xff\xff\x06\
59 \x09\x04\x04\x00\x00\xff\xff\xff\x06\
60 \x09\x04\x03\x00\x00\xff\xff\xff\x06"); // IF0---IF1--IAD0(2,2) --IF4
65 // inconsistency, bFirstInterface doesn't exist and bInterfaceCount too big
66 // IF0-IF1-IF3-IAD0(2,2)-IAD1(6,4)-IF2.0-IF2.1-IF4-IF5-IF7-IF8
67 _LIT8(KConfigurationDescriptorWithIADTestCase2, "\
68 \x09\x02\x8D\x00\x08\x01\x04\xe0\x00\
69 \x09\x04\x00\x00\x00\xff\xff\xff\x06\x09\x04\x01\x00\x02\xff\xff\xff\x07\x07\x05\x01\x02\x40\x00\x00\x07\x05\x84\x02\x40\x00\x00\
70 \x09\x04\x03\x00\x00\xff\xff\xff\x06\
71 \x08\x0B\x02\x02\xff\xff\xff\x02\
72 \x08\x0B\x06\x04\xff\xff\xff\x02\x09\x04\x02\x00\x03\xff\xff\xff\x08\x07\x05\x81\x03\x08\x00\x40\x07\x05\x01\x02\x40\x00\x00\x07\x05\x84\x02\x40\x00\x00\
73 \x09\x04\x02\x01\x00\xff\xff\xff\x06\
74 \x09\x04\x04\x00\x00\xff\xff\xff\x06\
75 \x09\x04\x05\x00\x00\xff\xff\xff\x06\
76 \x09\x04\x07\x00\x00\xff\xff\xff\x06\
77 \x09\x04\x08\x00\x00\xff\xff\xff\x06");// IF0--IF1--IF3--IAD0(2,2)--------------IAD1(6,4)--IF4--IF5
79 // |__IF2.0-IF2.1 |__IF7--IF8
82 // inconsistency, overlapping , IF3 is shared by 2 differents IADs
83 // IF0-IF1-IAD0(2,2)-IAD1(3,3)-IF2.0-IF2.1-IF4-IF3-IF5-IF6
84 _LIT8(KConfigurationDescriptorWithIADTestCase3, "\
85 \x09\x02\x84\x00\x07\x01\x04\xe0\x00\
86 \x09\x04\x00\x00\x00\xff\xff\xff\x06\x09\x04\x01\x00\x02\xff\xff\xff\x07\x07\x05\x01\x02\x40\x00\x00\x07\x05\x84\x02\x40\x00\x00\
87 \x08\x0B\x02\x02\xff\xff\xff\x02\
88 \x08\x0B\x03\x03\xff\xff\xff\x02\x09\x04\x02\x00\x03\xff\xff\xff\x08\x07\x05\x81\x03\x08\x00\x40\x07\x05\x01\x02\x40\x00\x00\x07\x05\x84\x02\x40\x00\x00\
89 \x09\x04\x02\x01\x00\xff\xff\xff\x06\
90 \x09\x04\x04\x00\x00\xff\xff\xff\x06\
91 \x09\x04\x03\x00\x00\xff\xff\xff\x06\
92 \x09\x04\x05\x00\x00\xff\xff\xff\x06\
93 \x09\x04\x06\x00\x00\xff\xff\xff\x06"); // IF0---IF1--IAD0(2,2)-------------IAD1(3,3)--IF6
95 // |__IF2.0-IF2.1 |__IF4-IF3-IF5
100 Some data from a Bluetooth USB dongle. Which previously
101 caused a panic in the parser.
103 _LIT8(KBtDongleDescriptorTestCase4,
104 "\x09\x04\x01\x00\x02\xe0\x01\x01\x00"
105 "\x07\x05\x03\x01\x00\x00\x01"
106 "\x07\x05\x83\x01\x00\x00\x01"
107 "\x09\x04\x01\x01\x02\xe0\x01\x01\x00"
108 "\x07\x05\x03\x01\x09\x00\x01"
109 "\x07\x05\x83\x01\x09\x00\x01"
110 "\x09\x04\x01\x02\x02\xe0\x01\x01\x00"
111 "\x07\x05\x03\x01\x11\x00\x01"
112 "\x07\x05\x83\x01\x11\x00\x01"
113 "\x09\x04\x01\x03\x02\xe0\x01\x01\x00"
114 "\x07\x05\x03\x01\x19\x00\x01"
115 "\x07\x05\x83\x01\x19\x00\x01"
116 "\x09\x04\x01\x04\x02\xe0\x01\x01\x00"
117 "\x07\x05\x03\x01\x21\x00\x01"
118 "\x07\x05\x83\x01\x21\x00\x01"
119 "\x09\x04\x01\x05\x02\xe0\x01\x01\x00"
120 "\x07\x05\x03\x01\x31\x00\x01"
121 "\x07\x05\x83\x01\x31\x00\x01"
125 Basic IAD test. An IAD preceding 4 in-order interface descriptors.
127 _LIT8(KConfigurationDescriptorWithIADTestCase5,
128 "\x09\x02\x51\x00\x04\x03\x04\x05\x06"
129 "\x08\x0b\x00\x04\x02\x03\x04\x05"
130 "\x09\x04\x00\x00\x01\x03\x04\x05\x06"
131 "\x07\x05\x00\x01\x02\x03\x04"
132 "\x09\x04\x01\x00\x01\x03\x04\x05\x06"
133 "\x07\x05\x01\x01\x02\x03\x04"
134 "\x09\x04\x02\x00\x01\x03\x04\x05\x06"
135 "\x07\x05\x02\x01\x02\x03\x04"
136 "\x09\x04\x03\x00\x01\x03\x04\x05\x06"
137 "\x07\x05\x03\x01\x02\x03\x04"
141 IAD test where IAD precedes all 4 descriptors but doesn't include
144 _LIT8(KConfigurationDescriptorWithIADTestCase6,
145 "\x09\x02\x51\x00\x04\x03\x04\x05\x06"
146 "\x08\x0b\x00\x03\x02\x03\x04\x05"
147 "\x09\x04\x00\x00\x01\x03\x04\x05\x06"
148 "\x07\x05\x00\x01\x02\x03\x04"
149 "\x09\x04\x01\x00\x01\x03\x04\x05\x06"
150 "\x07\x05\x01\x01\x02\x03\x04"
151 "\x09\x04\x02\x00\x01\x03\x04\x05\x06"
152 "\x07\x05\x02\x01\x02\x03\x04"
153 "\x09\x04\x03\x00\x01\x03\x04\x05\x06"
154 "\x07\x05\x03\x01\x02\x03\x04"
158 IAD test where IAD precedes all 4 descriptors but doesn't include
161 _LIT8(KConfigurationDescriptorWithIADTestCase7,
162 "\x09\x02\x51\x00\x04\x03\x04\x05\x06"
163 "\x08\x0b\x01\x03\x02\x03\x04\x05"
164 "\x09\x04\x00\x00\x01\x03\x04\x05\x06"
165 "\x07\x05\x00\x01\x02\x03\x04"
166 "\x09\x04\x01\x00\x01\x03\x04\x05\x06"
167 "\x07\x05\x01\x01\x02\x03\x04"
168 "\x09\x04\x02\x00\x01\x03\x04\x05\x06"
169 "\x07\x05\x02\x01\x02\x03\x04"
170 "\x09\x04\x03\x00\x01\x03\x04\x05\x06"
171 "\x07\x05\x03\x01\x02\x03\x04"
175 IAD test where IAD precedes all 4 descriptors but the interfaces
176 are in reverse numerial order.
178 _LIT8(KConfigurationDescriptorWithIADTestCase8,
179 "\x09\x02\x51\x00\x04\x03\x04\x05\x06"
180 "\x08\x0b\x00\x04\x02\x03\x04\x05"
181 "\x09\x04\x03\x00\x01\x03\x04\x05\x06"
182 "\x07\x05\x00\x01\x02\x03\x04"
183 "\x09\x04\x02\x00\x01\x03\x04\x05\x06"
184 "\x07\x05\x01\x01\x02\x03\x04"
185 "\x09\x04\x01\x00\x01\x03\x04\x05\x06"
186 "\x07\x05\x02\x01\x02\x03\x04"
187 "\x09\x04\x00\x00\x01\x03\x04\x05\x06"
188 "\x07\x05\x03\x01\x02\x03\x04"
192 IAD test where IAD precedes all 4 descriptors but the interfaces
193 are in a random order.
195 _LIT8(KConfigurationDescriptorWithIADTestCase9,
196 "\x09\x02\x51\x00\x04\x03\x04\x05\x06"
197 "\x08\x0b\x00\x04\x02\x03\x04\x05"
198 "\x09\x04\x00\x00\x01\x03\x04\x05\x06"
199 "\x07\x05\x00\x01\x02\x03\x04"
200 "\x09\x04\x03\x00\x01\x03\x04\x05\x06"
201 "\x07\x05\x01\x01\x02\x03\x04"
202 "\x09\x04\x01\x00\x01\x03\x04\x05\x06"
203 "\x07\x05\x02\x01\x02\x03\x04"
204 "\x09\x04\x02\x00\x01\x03\x04\x05\x06"
205 "\x07\x05\x03\x01\x02\x03\x04"
209 IAD test where IAD precedes all 4 descriptors only three are included
210 and an excluded one splits the included (from a data stream pov).
212 _LIT8(KConfigurationDescriptorWithIADTestCase10,
213 "\x09\x02\x51\x00\x04\x03\x04\x05\x06"
214 "\x08\x0b\x01\x03\x02\x03\x04\x05"
215 "\x09\x04\x03\x00\x01\x03\x04\x05\x06"
216 "\x07\x05\x00\x01\x02\x03\x04"
217 "\x09\x04\x01\x00\x01\x03\x04\x05\x06"
218 "\x07\x05\x01\x01\x02\x03\x04"
219 "\x09\x04\x00\x00\x01\x03\x04\x05\x06"
220 "\x07\x05\x02\x01\x02\x03\x04"
221 "\x09\x04\x02\x00\x01\x03\x04\x05\x06"
222 "\x07\x05\x03\x01\x02\x03\x04"
223 ); // IAD0(1,3)---IF0
229 IAD test where IAD is preceded by another interface
231 _LIT8(KConfigurationDescriptorWithIADTestCase11,
232 "\x09\x02\x61\x00\x04\x03\x04\x05\x06"
233 "\x09\x04\x04\x00\x01\x03\x04\x05\x06"
234 "\x07\x05\x04\x01\x02\x03\x04"
235 "\x08\x0b\x01\x03\x02\x03\x04\x05"
236 "\x09\x04\x03\x00\x01\x03\x04\x05\x06"
237 "\x07\x05\x00\x01\x02\x03\x04"
238 "\x09\x04\x01\x00\x01\x03\x04\x05\x06"
239 "\x07\x05\x01\x01\x02\x03\x04"
240 "\x09\x04\x00\x00\x01\x03\x04\x05\x06"
241 "\x07\x05\x02\x01\x02\x03\x04"
242 "\x09\x04\x02\x00\x01\x03\x04\x05\x06"
243 "\x07\x05\x03\x01\x02\x03\x04"
244 ); // IF4---IAD0(1,3)---IF0
249 IAD test where there are two IADs followed by interfaces
250 some they own, some they don't.
252 _LIT8(KConfigurationDescriptorWithIADTestCase12,
253 "\x09\x02\x61\x00\x04\x03\x04\x05\x06"
254 "\x09\x04\x04\x00\x01\x03\x04\x05\x06"
255 "\x07\x05\x04\x01\x02\x03\x04"
256 "\x08\x0b\x01\x03\x02\x03\x04\x05"
257 "\x08\x0b\x05\x02\x02\x03\x04\x05"
258 "\x09\x04\x03\x00\x01\x03\x04\x05\x06"
259 "\x07\x05\x00\x01\x02\x03\x04"
260 "\x09\x04\x01\x00\x01\x03\x04\x05\x06"
261 "\x07\x05\x01\x01\x02\x03\x04"
262 "\x09\x04\x05\x00\x01\x03\x04\x05\x06"
263 "\x07\x05\x06\x01\x02\x03\x04"
264 "\x09\x04\x06\x00\x01\x03\x04\x05\x06"
265 "\x07\x05\x05\x01\x02\x03\x04"
266 "\x09\x04\x00\x00\x01\x03\x04\x05\x06"
267 "\x07\x05\x02\x01\x02\x03\x04"
268 "\x09\x04\x02\x00\x01\x03\x04\x05\x06"
269 "\x07\x05\x03\x01\x02\x03\x04"
270 ); // IF4---IAD0(1,3)--------------IAD0(5,2)--IF0
272 // |__IF3--IF1--IF2 |__IF5--IF6
275 IAD test where there are two IADs followed by interfaces
276 some they own, some they don't. With overlapping.
278 _LIT8(KConfigurationDescriptorWithIADTestCase13,
279 "\x09\x02\x61\x00\x04\x03\x04\x05\x06"
280 "\x09\x04\x10\x00\x01\x03\x04\x05\x06"
281 "\x07\x05\x09\x01\x02\x03\x04"
282 "\x08\x0b\x01\x04\x02\x03\x04\x05"
283 "\x08\x0b\x04\x03\x02\x03\x04\x05"
284 "\x09\x04\x03\x00\x01\x03\x04\x05\x06"
285 "\x07\x05\x00\x01\x02\x03\x04"
286 "\x09\x04\x01\x00\x01\x03\x04\x05\x06"
287 "\x07\x05\x01\x01\x02\x03\x04"
288 "\x09\x04\x05\x00\x01\x03\x04\x05\x06"
289 "\x07\x05\x06\x01\x02\x03\x04"
290 "\x09\x04\x06\x00\x01\x03\x04\x05\x06"
291 "\x07\x05\x05\x01\x02\x03\x04"
292 "\x09\x04\x00\x00\x01\x03\x04\x05\x06"
293 "\x07\x05\x02\x01\x02\x03\x04"
294 "\x09\x04\x02\x00\x01\x03\x04\x05\x06"
295 "\x07\x05\x03\x01\x02\x03\x04"
296 "\x09\x04\x04\x00\x01\x03\x04\x05\x06"
297 "\x07\x05\x04\x01\x02\x03\x04"
298 ); // IF16---IAD0(1,4)-----------------IAD0(4,3)--IF0
300 // |__IF3--IF1--IF2--IF4 |__IF5--IF6
303 IAD test where there are two IADs followed by interfaces
304 some they own, some they don't. With overlapping and an
305 independant interface before a descriptor which can live
306 in either IAD (because the IAD is malformed).
308 _LIT8(KConfigurationDescriptorWithIADTestCase14,
309 "\x09\x02\x61\x00\x04\x03\x04\x05\x06"
310 "\x08\x0b\x01\x04\x02\x03\x04\x05"
311 "\x08\x0b\x04\x03\x02\x03\x04\x05"
312 "\x09\x04\x03\x00\x01\x03\x04\x05\x06"
313 "\x07\x05\x00\x01\x02\x03\x04"
314 "\x09\x04\x01\x00\x01\x03\x04\x05\x06"
315 "\x07\x05\x01\x01\x02\x03\x04"
316 "\x09\x04\x05\x00\x01\x03\x04\x05\x06"
317 "\x07\x05\x06\x01\x02\x03\x04"
318 "\x09\x04\x06\x00\x01\x03\x04\x05\x06"
319 "\x07\x05\x05\x01\x02\x03\x04"
320 "\x09\x04\x00\x00\x01\x03\x04\x05\x06"
321 "\x07\x05\x02\x01\x02\x03\x04"
322 "\x09\x04\x02\x00\x01\x03\x04\x05\x06"
323 "\x07\x05\x03\x01\x02\x03\x04"
324 "\x09\x04\x10\x00\x01\x03\x04\x05\x06"
325 "\x07\x05\x09\x01\x02\x03\x04"
326 "\x09\x04\x04\x00\x01\x03\x04\x05\x06"
327 "\x07\x05\x04\x01\x02\x03\x04"
328 ); // IAD0(1,4)-----------------IAD0(4,3)--IF0--IFA
330 // |__IF3--IF1--IF2 |__IF5--IF6--IF4
334 #endif // __DESCRIPTORS_RAW_DATA_H