sl@0: #ifndef __DESCRIPTORS_RAW_DATA_H sl@0: #define __DESCRIPTORS_RAW_DATA_H sl@0: sl@0: /* sl@0: * Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies). sl@0: * All rights reserved. sl@0: * This component and the accompanying materials are made available sl@0: * under the terms of the License "Eclipse Public License v1.0" sl@0: * which accompanies this distribution, and is available sl@0: * at the URL "http://www.eclipse.org/legal/epl-v10.html". sl@0: * sl@0: * Initial Contributors: sl@0: * Nokia Corporation - initial contribution. sl@0: * sl@0: * Contributors: sl@0: * sl@0: * Description: sl@0: * @file descriptorsRawData.h sl@0: * @internalComponent sl@0: * sl@0: * sl@0: */ sl@0: sl@0: sl@0: sl@0: namespace NUnitTesting_USBDI sl@0: { sl@0: sl@0: _LIT8(KDeviceDescriptorData, "\ sl@0: \x12\x01\x00\x02\xff\xff\xff\x40\x22\x0e\x40\x00\x05\x03\x01\x02\x03\x01"); // ok sl@0: sl@0: _LIT8(KConfigurationDescriptorInsufficientDataTestCase1, "\ sl@0: \x09\x02\x50\x00\x02\x01\x04\xe0\x00\x09\x04\x00\x00\x00\xff\xff\xff\x06\x09\ sl@0: \x04\x01\x00\x02\xff\xff\xff\x07\x07\x05\x01\x02\x40\x00\x00\x07\x05\x84\x02\ sl@0: \x40\x00\x00\x09\x04\x01\x01\x03\xff\xff\xff\x08\x07\x05\x81\x03\x08\x00\x40\ sl@0: \x07\x05\x01\x02\x40\x00\x00\x07\x05\x84\x02\x40\x00\x00"); // wTotalLength > real size sl@0: sl@0: _LIT8(KConfigurationDescriptorInsufficientDataTestCase2, "\ sl@0: \x09\x02\x45\x00\x02\x01\x04\xe0\x00\x09\x04\x00\x00\x00\xff\xff\xff\x06\x09\ sl@0: \x04\x01\x00\x02\xff\xff\xff\x07\x07\x05\x01\x02\x40\x00\x00\x07\x05\x84\x02\ sl@0: \x40\x00\x00\x09\x04\x01\x01\x03\xff\xff\xff\x08\x07\x05\x81\x03\x08\x00\x40\ sl@0: \x07\x05\x01\x02\x40\x00\x00\x07\x05\x84\x02\x40");// last EP descriptor incomplete sl@0: sl@0: _LIT8(KConfigurationDescriptorUnexpectedLengthTestCase3, "\ sl@0: \x09\x02\x49\x00\x02\x01\x04\xe0\x00\x09\x04\x00\x00\x00\xff\xff\xff\x06\x09\ sl@0: \x04\x01\x00\x02\xff\xff\xff\x07\x07\x05\x01\x02\x40\x00\x00\x07\x05\x84\x02\ sl@0: \x40\x00\x00\x09\x04\x01\x01\x03\xff\xff\xff\x08\x07\x05\x81\x03\x08\x00\x40\ sl@0: \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.) sl@0: sl@0: sl@0: // nominal case sl@0: // IF0-IF1-IAD0(2,2)-IF2.0-IF2.1-IF4-IF3 sl@0: _LIT8(KConfigurationDescriptorWithIADTestCase1, "\ sl@0: \x09\x02\x6A\x00\x05\x01\x04\xe0\x00\ sl@0: \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\ sl@0: \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\ sl@0: \x02\x40\x00\x00\x07\x05\x84\x02\x40\x00\x00\ sl@0: \x09\x04\x02\x01\x00\xff\xff\xff\x06\ sl@0: \x09\x04\x04\x00\x00\xff\xff\xff\x06\ sl@0: \x09\x04\x03\x00\x00\xff\xff\xff\x06"); // IF0---IF1--IAD0(2,2) --IF4 sl@0: // | sl@0: // |__IF2.0-IF2.1-IF3 sl@0: sl@0: sl@0: // inconsistency, bFirstInterface doesn't exist and bInterfaceCount too big sl@0: // IF0-IF1-IF3-IAD0(2,2)-IAD1(6,4)-IF2.0-IF2.1-IF4-IF5-IF7-IF8 sl@0: _LIT8(KConfigurationDescriptorWithIADTestCase2, "\ sl@0: \x09\x02\x8D\x00\x08\x01\x04\xe0\x00\ sl@0: \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\ sl@0: \x09\x04\x03\x00\x00\xff\xff\xff\x06\ sl@0: \x08\x0B\x02\x02\xff\xff\xff\x02\ sl@0: \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\ sl@0: \x09\x04\x02\x01\x00\xff\xff\xff\x06\ sl@0: \x09\x04\x04\x00\x00\xff\xff\xff\x06\ sl@0: \x09\x04\x05\x00\x00\xff\xff\xff\x06\ sl@0: \x09\x04\x07\x00\x00\xff\xff\xff\x06\ sl@0: \x09\x04\x08\x00\x00\xff\xff\xff\x06");// IF0--IF1--IF3--IAD0(2,2)--------------IAD1(6,4)--IF4--IF5 sl@0: // | | sl@0: // |__IF2.0-IF2.1 |__IF7--IF8 sl@0: sl@0: sl@0: // inconsistency, overlapping , IF3 is shared by 2 differents IADs sl@0: // IF0-IF1-IAD0(2,2)-IAD1(3,3)-IF2.0-IF2.1-IF4-IF3-IF5-IF6 sl@0: _LIT8(KConfigurationDescriptorWithIADTestCase3, "\ sl@0: \x09\x02\x84\x00\x07\x01\x04\xe0\x00\ sl@0: \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\ sl@0: \x08\x0B\x02\x02\xff\xff\xff\x02\ sl@0: \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\ sl@0: \x09\x04\x02\x01\x00\xff\xff\xff\x06\ sl@0: \x09\x04\x04\x00\x00\xff\xff\xff\x06\ sl@0: \x09\x04\x03\x00\x00\xff\xff\xff\x06\ sl@0: \x09\x04\x05\x00\x00\xff\xff\xff\x06\ sl@0: \x09\x04\x06\x00\x00\xff\xff\xff\x06"); // IF0---IF1--IAD0(2,2)-------------IAD1(3,3)--IF6 sl@0: // | | sl@0: // |__IF2.0-IF2.1 |__IF4-IF3-IF5 sl@0: sl@0: sl@0: sl@0: /** sl@0: Some data from a Bluetooth USB dongle. Which previously sl@0: caused a panic in the parser. sl@0: */ sl@0: _LIT8(KBtDongleDescriptorTestCase4, sl@0: "\x09\x04\x01\x00\x02\xe0\x01\x01\x00" sl@0: "\x07\x05\x03\x01\x00\x00\x01" sl@0: "\x07\x05\x83\x01\x00\x00\x01" sl@0: "\x09\x04\x01\x01\x02\xe0\x01\x01\x00" sl@0: "\x07\x05\x03\x01\x09\x00\x01" sl@0: "\x07\x05\x83\x01\x09\x00\x01" sl@0: "\x09\x04\x01\x02\x02\xe0\x01\x01\x00" sl@0: "\x07\x05\x03\x01\x11\x00\x01" sl@0: "\x07\x05\x83\x01\x11\x00\x01" sl@0: "\x09\x04\x01\x03\x02\xe0\x01\x01\x00" sl@0: "\x07\x05\x03\x01\x19\x00\x01" sl@0: "\x07\x05\x83\x01\x19\x00\x01" sl@0: "\x09\x04\x01\x04\x02\xe0\x01\x01\x00" sl@0: "\x07\x05\x03\x01\x21\x00\x01" sl@0: "\x07\x05\x83\x01\x21\x00\x01" sl@0: "\x09\x04\x01\x05\x02\xe0\x01\x01\x00" sl@0: "\x07\x05\x03\x01\x31\x00\x01" sl@0: "\x07\x05\x83\x01\x31\x00\x01" sl@0: ); sl@0: sl@0: /** sl@0: Basic IAD test. An IAD preceding 4 in-order interface descriptors. sl@0: */ sl@0: _LIT8(KConfigurationDescriptorWithIADTestCase5, sl@0: "\x09\x02\x51\x00\x04\x03\x04\x05\x06" sl@0: "\x08\x0b\x00\x04\x02\x03\x04\x05" sl@0: "\x09\x04\x00\x00\x01\x03\x04\x05\x06" sl@0: "\x07\x05\x00\x01\x02\x03\x04" sl@0: "\x09\x04\x01\x00\x01\x03\x04\x05\x06" sl@0: "\x07\x05\x01\x01\x02\x03\x04" sl@0: "\x09\x04\x02\x00\x01\x03\x04\x05\x06" sl@0: "\x07\x05\x02\x01\x02\x03\x04" sl@0: "\x09\x04\x03\x00\x01\x03\x04\x05\x06" sl@0: "\x07\x05\x03\x01\x02\x03\x04" sl@0: ); sl@0: sl@0: /** sl@0: IAD test where IAD precedes all 4 descriptors but doesn't include sl@0: the last one. sl@0: */ sl@0: _LIT8(KConfigurationDescriptorWithIADTestCase6, sl@0: "\x09\x02\x51\x00\x04\x03\x04\x05\x06" sl@0: "\x08\x0b\x00\x03\x02\x03\x04\x05" sl@0: "\x09\x04\x00\x00\x01\x03\x04\x05\x06" sl@0: "\x07\x05\x00\x01\x02\x03\x04" sl@0: "\x09\x04\x01\x00\x01\x03\x04\x05\x06" sl@0: "\x07\x05\x01\x01\x02\x03\x04" sl@0: "\x09\x04\x02\x00\x01\x03\x04\x05\x06" sl@0: "\x07\x05\x02\x01\x02\x03\x04" sl@0: "\x09\x04\x03\x00\x01\x03\x04\x05\x06" sl@0: "\x07\x05\x03\x01\x02\x03\x04" sl@0: ); sl@0: sl@0: /** sl@0: IAD test where IAD precedes all 4 descriptors but doesn't include sl@0: the first one. sl@0: */ sl@0: _LIT8(KConfigurationDescriptorWithIADTestCase7, sl@0: "\x09\x02\x51\x00\x04\x03\x04\x05\x06" sl@0: "\x08\x0b\x01\x03\x02\x03\x04\x05" sl@0: "\x09\x04\x00\x00\x01\x03\x04\x05\x06" sl@0: "\x07\x05\x00\x01\x02\x03\x04" sl@0: "\x09\x04\x01\x00\x01\x03\x04\x05\x06" sl@0: "\x07\x05\x01\x01\x02\x03\x04" sl@0: "\x09\x04\x02\x00\x01\x03\x04\x05\x06" sl@0: "\x07\x05\x02\x01\x02\x03\x04" sl@0: "\x09\x04\x03\x00\x01\x03\x04\x05\x06" sl@0: "\x07\x05\x03\x01\x02\x03\x04" sl@0: ); sl@0: sl@0: /** sl@0: IAD test where IAD precedes all 4 descriptors but the interfaces sl@0: are in reverse numerial order. sl@0: */ sl@0: _LIT8(KConfigurationDescriptorWithIADTestCase8, sl@0: "\x09\x02\x51\x00\x04\x03\x04\x05\x06" sl@0: "\x08\x0b\x00\x04\x02\x03\x04\x05" sl@0: "\x09\x04\x03\x00\x01\x03\x04\x05\x06" sl@0: "\x07\x05\x00\x01\x02\x03\x04" sl@0: "\x09\x04\x02\x00\x01\x03\x04\x05\x06" sl@0: "\x07\x05\x01\x01\x02\x03\x04" sl@0: "\x09\x04\x01\x00\x01\x03\x04\x05\x06" sl@0: "\x07\x05\x02\x01\x02\x03\x04" sl@0: "\x09\x04\x00\x00\x01\x03\x04\x05\x06" sl@0: "\x07\x05\x03\x01\x02\x03\x04" sl@0: ); sl@0: sl@0: /** sl@0: IAD test where IAD precedes all 4 descriptors but the interfaces sl@0: are in a random order. sl@0: */ sl@0: _LIT8(KConfigurationDescriptorWithIADTestCase9, sl@0: "\x09\x02\x51\x00\x04\x03\x04\x05\x06" sl@0: "\x08\x0b\x00\x04\x02\x03\x04\x05" sl@0: "\x09\x04\x00\x00\x01\x03\x04\x05\x06" sl@0: "\x07\x05\x00\x01\x02\x03\x04" sl@0: "\x09\x04\x03\x00\x01\x03\x04\x05\x06" sl@0: "\x07\x05\x01\x01\x02\x03\x04" sl@0: "\x09\x04\x01\x00\x01\x03\x04\x05\x06" sl@0: "\x07\x05\x02\x01\x02\x03\x04" sl@0: "\x09\x04\x02\x00\x01\x03\x04\x05\x06" sl@0: "\x07\x05\x03\x01\x02\x03\x04" sl@0: ); sl@0: sl@0: /** sl@0: IAD test where IAD precedes all 4 descriptors only three are included sl@0: and an excluded one splits the included (from a data stream pov). sl@0: */ sl@0: _LIT8(KConfigurationDescriptorWithIADTestCase10, sl@0: "\x09\x02\x51\x00\x04\x03\x04\x05\x06" sl@0: "\x08\x0b\x01\x03\x02\x03\x04\x05" sl@0: "\x09\x04\x03\x00\x01\x03\x04\x05\x06" sl@0: "\x07\x05\x00\x01\x02\x03\x04" sl@0: "\x09\x04\x01\x00\x01\x03\x04\x05\x06" sl@0: "\x07\x05\x01\x01\x02\x03\x04" sl@0: "\x09\x04\x00\x00\x01\x03\x04\x05\x06" sl@0: "\x07\x05\x02\x01\x02\x03\x04" sl@0: "\x09\x04\x02\x00\x01\x03\x04\x05\x06" sl@0: "\x07\x05\x03\x01\x02\x03\x04" sl@0: ); // IAD0(1,3)---IF0 sl@0: // | sl@0: // |__IF3--IF1--IF2 sl@0: sl@0: sl@0: /** sl@0: IAD test where IAD is preceded by another interface sl@0: */ sl@0: _LIT8(KConfigurationDescriptorWithIADTestCase11, sl@0: "\x09\x02\x61\x00\x04\x03\x04\x05\x06" sl@0: "\x09\x04\x04\x00\x01\x03\x04\x05\x06" sl@0: "\x07\x05\x04\x01\x02\x03\x04" sl@0: "\x08\x0b\x01\x03\x02\x03\x04\x05" sl@0: "\x09\x04\x03\x00\x01\x03\x04\x05\x06" sl@0: "\x07\x05\x00\x01\x02\x03\x04" sl@0: "\x09\x04\x01\x00\x01\x03\x04\x05\x06" sl@0: "\x07\x05\x01\x01\x02\x03\x04" sl@0: "\x09\x04\x00\x00\x01\x03\x04\x05\x06" sl@0: "\x07\x05\x02\x01\x02\x03\x04" sl@0: "\x09\x04\x02\x00\x01\x03\x04\x05\x06" sl@0: "\x07\x05\x03\x01\x02\x03\x04" sl@0: ); // IF4---IAD0(1,3)---IF0 sl@0: // | sl@0: // |__IF3--IF1--IF2 sl@0: sl@0: /** sl@0: IAD test where there are two IADs followed by interfaces sl@0: some they own, some they don't. sl@0: */ sl@0: _LIT8(KConfigurationDescriptorWithIADTestCase12, sl@0: "\x09\x02\x61\x00\x04\x03\x04\x05\x06" sl@0: "\x09\x04\x04\x00\x01\x03\x04\x05\x06" sl@0: "\x07\x05\x04\x01\x02\x03\x04" sl@0: "\x08\x0b\x01\x03\x02\x03\x04\x05" sl@0: "\x08\x0b\x05\x02\x02\x03\x04\x05" sl@0: "\x09\x04\x03\x00\x01\x03\x04\x05\x06" sl@0: "\x07\x05\x00\x01\x02\x03\x04" sl@0: "\x09\x04\x01\x00\x01\x03\x04\x05\x06" sl@0: "\x07\x05\x01\x01\x02\x03\x04" sl@0: "\x09\x04\x05\x00\x01\x03\x04\x05\x06" sl@0: "\x07\x05\x06\x01\x02\x03\x04" sl@0: "\x09\x04\x06\x00\x01\x03\x04\x05\x06" sl@0: "\x07\x05\x05\x01\x02\x03\x04" sl@0: "\x09\x04\x00\x00\x01\x03\x04\x05\x06" sl@0: "\x07\x05\x02\x01\x02\x03\x04" sl@0: "\x09\x04\x02\x00\x01\x03\x04\x05\x06" sl@0: "\x07\x05\x03\x01\x02\x03\x04" sl@0: ); // IF4---IAD0(1,3)--------------IAD0(5,2)--IF0 sl@0: // | | sl@0: // |__IF3--IF1--IF2 |__IF5--IF6 sl@0: sl@0: /** sl@0: IAD test where there are two IADs followed by interfaces sl@0: some they own, some they don't. With overlapping. sl@0: */ sl@0: _LIT8(KConfigurationDescriptorWithIADTestCase13, sl@0: "\x09\x02\x61\x00\x04\x03\x04\x05\x06" sl@0: "\x09\x04\x10\x00\x01\x03\x04\x05\x06" sl@0: "\x07\x05\x09\x01\x02\x03\x04" sl@0: "\x08\x0b\x01\x04\x02\x03\x04\x05" sl@0: "\x08\x0b\x04\x03\x02\x03\x04\x05" sl@0: "\x09\x04\x03\x00\x01\x03\x04\x05\x06" sl@0: "\x07\x05\x00\x01\x02\x03\x04" sl@0: "\x09\x04\x01\x00\x01\x03\x04\x05\x06" sl@0: "\x07\x05\x01\x01\x02\x03\x04" sl@0: "\x09\x04\x05\x00\x01\x03\x04\x05\x06" sl@0: "\x07\x05\x06\x01\x02\x03\x04" sl@0: "\x09\x04\x06\x00\x01\x03\x04\x05\x06" sl@0: "\x07\x05\x05\x01\x02\x03\x04" sl@0: "\x09\x04\x00\x00\x01\x03\x04\x05\x06" sl@0: "\x07\x05\x02\x01\x02\x03\x04" sl@0: "\x09\x04\x02\x00\x01\x03\x04\x05\x06" sl@0: "\x07\x05\x03\x01\x02\x03\x04" sl@0: "\x09\x04\x04\x00\x01\x03\x04\x05\x06" sl@0: "\x07\x05\x04\x01\x02\x03\x04" sl@0: ); // IF16---IAD0(1,4)-----------------IAD0(4,3)--IF0 sl@0: // | | sl@0: // |__IF3--IF1--IF2--IF4 |__IF5--IF6 sl@0: sl@0: /** sl@0: IAD test where there are two IADs followed by interfaces sl@0: some they own, some they don't. With overlapping and an sl@0: independant interface before a descriptor which can live sl@0: in either IAD (because the IAD is malformed). sl@0: */ sl@0: _LIT8(KConfigurationDescriptorWithIADTestCase14, sl@0: "\x09\x02\x61\x00\x04\x03\x04\x05\x06" sl@0: "\x08\x0b\x01\x04\x02\x03\x04\x05" sl@0: "\x08\x0b\x04\x03\x02\x03\x04\x05" sl@0: "\x09\x04\x03\x00\x01\x03\x04\x05\x06" sl@0: "\x07\x05\x00\x01\x02\x03\x04" sl@0: "\x09\x04\x01\x00\x01\x03\x04\x05\x06" sl@0: "\x07\x05\x01\x01\x02\x03\x04" sl@0: "\x09\x04\x05\x00\x01\x03\x04\x05\x06" sl@0: "\x07\x05\x06\x01\x02\x03\x04" sl@0: "\x09\x04\x06\x00\x01\x03\x04\x05\x06" sl@0: "\x07\x05\x05\x01\x02\x03\x04" sl@0: "\x09\x04\x00\x00\x01\x03\x04\x05\x06" sl@0: "\x07\x05\x02\x01\x02\x03\x04" sl@0: "\x09\x04\x02\x00\x01\x03\x04\x05\x06" sl@0: "\x07\x05\x03\x01\x02\x03\x04" sl@0: "\x09\x04\x10\x00\x01\x03\x04\x05\x06" sl@0: "\x07\x05\x09\x01\x02\x03\x04" sl@0: "\x09\x04\x04\x00\x01\x03\x04\x05\x06" sl@0: "\x07\x05\x04\x01\x02\x03\x04" sl@0: ); // IAD0(1,4)-----------------IAD0(4,3)--IF0--IFA sl@0: // | | sl@0: // |__IF3--IF1--IF2 |__IF5--IF6--IF4 sl@0: sl@0: } sl@0: sl@0: #endif // __DESCRIPTORS_RAW_DATA_H