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