1310 else |
1310 else |
1311 { |
1311 { |
1312 if (iTransfer->iFlags&KUsbcScStateChange) |
1312 if (iTransfer->iFlags&KUsbcScStateChange) |
1313 { |
1313 { |
1314 TInt s = *iTransfer->iData.i; |
1314 TInt s = *iTransfer->iData.i; |
1315 test.Printf(_L("STATE CHANGE! %d : %S \n"),s,((s<0) || (s>7))?KStates[8]:KStates[s]); |
1315 test.Printf(_L("STATE CHANGE! %d : %S \n"),s,((s<0) || (s>7))?KStates[7]:KStates[s]); |
1316 OstTraceExt2(TRACE_NORMAL, TBUFFER_PROCESSDATA_DUP05, "STATE CHANGE! %d : %S \n",s,((s<0) || (s>7))?(*KStates[8]):(*KStates[s])); |
1316 OstTraceExt2(TRACE_NORMAL, TBUFFER_PROCESSDATA_DUP05, "STATE CHANGE! %d : %S \n",s,((s<0) || (s>7))?(*KStates[7]):(*KStates[s])); |
1317 } |
1317 } |
1318 else |
1318 else |
1319 { |
1319 { |
1320 iSetup = (Sep0SetupPacket* ) iTransfer->iData.b; |
1320 iSetup = (Sep0SetupPacket* ) iTransfer->iData.b; |
1321 test.Printf(_L("EP0 Command: t %x r %x v %x i %x l %x :"), iSetup->iRequestType, iSetup->iRequest, iSetup->iwValue, iSetup->iwIndex, iSetup->iWlength); |
1321 test.Printf(_L("EP0 Command: t %x r %x v %x i %x l %x :"), iSetup->iRequestType, iSetup->iRequest, iSetup->iwValue, iSetup->iwIndex, iSetup->iWlength); |
1674 { |
1674 { |
1675 test.Start(_L("Test chunk's construction and clean up for various interface setting Configurations \n")); |
1675 test.Start(_L("Test chunk's construction and clean up for various interface setting Configurations \n")); |
1676 TInt r; |
1676 TInt r; |
1677 TAltSetConfig *altSetConfig = new TAltSetConfig; |
1677 TAltSetConfig *altSetConfig = new TAltSetConfig; |
1678 TInt altSetNo = 0; |
1678 TInt altSetNo = 0; |
1679 __KHEAP_MARK; |
1679 /* because the kernel heap test is still failed in base team, it's caused by the display driver. So we |
|
1680 remove the kernal heap check now. Once the error is fixed by base team, we can add it again. |
|
1681 */ |
|
1682 // __KHEAP_MARK; |
1680 //1 - This test is to see if chunk is populated correctly (Default Setting), - It is |
1683 //1 - This test is to see if chunk is populated correctly (Default Setting), - It is |
1681 //2 - Test Release Interface |
1684 //2 - Test Release Interface |
1682 //3 - Test Set and Release Interface after Realize Interface |
1685 //3 - Test Set and Release Interface after Realize Interface |
1683 test.Next(_L("Check if chunk is populated correctly with One Setting with two endpoints\n")); |
1686 test.Next(_L("Check if chunk is populated correctly with One Setting with two endpoints\n")); |
1684 LoadDriver(); |
1687 LoadDriver(); |
1687 r = SettingOne(altSetNo); |
1690 r = SettingOne(altSetNo); |
1688 test_KErrNone(r); |
1691 test_KErrNone(r); |
1689 r = SettingOne(++altSetNo); |
1692 r = SettingOne(++altSetNo); |
1690 test_KErrNone(r); |
1693 test_KErrNone(r); |
1691 |
1694 |
1692 test.Printf(_L("Release Interface %d\n"), --altSetNo); |
1695 --altSetNo; |
1693 OstTrace1(TRACE_NORMAL, TESTSETINTERFACE_TESTSETINTERFACE, "Release Interface %d\n", --altSetNo); |
1696 test.Printf(_L("Release Interface %d\n"), altSetNo); |
|
1697 OstTrace1(TRACE_NORMAL, TESTSETINTERFACE_TESTSETINTERFACE, "Release Interface %d\n", altSetNo); |
1694 r = gPort.ReleaseInterface(altSetNo); |
1698 r = gPort.ReleaseInterface(altSetNo); |
1695 test_Compare(r, !=, KErrNone); |
1699 test_Compare(r, !=, KErrNone); |
1696 |
1700 |
1697 test.Printf(_L("Release Interface %d\n"), ++altSetNo); |
1701 ++altSetNo; |
1698 OstTrace1(TRACE_NORMAL, TESTSETINTERFACE_TESTSETINTERFACE_DUP01, "Release Interface %d\n", ++altSetNo); |
1702 test.Printf(_L("Release Interface %d\n"), altSetNo); |
|
1703 OstTrace1(TRACE_NORMAL, TESTSETINTERFACE_TESTSETINTERFACE_DUP01, "Release Interface %d\n", altSetNo); |
1699 r = gPort.ReleaseInterface(altSetNo); |
1704 r = gPort.ReleaseInterface(altSetNo); |
1700 test_KErrNone(r); |
1705 test_KErrNone(r); |
1701 |
1706 |
1702 altSetConfig->iNumOfAltSet = 1; |
1707 altSetConfig->iNumOfAltSet = 1; |
1703 TEndpointDescription temp = {2,1,1}; |
1708 TEndpointDescription temp = {2,1,1}; |
1843 |
1848 |
1844 CloseStackIfOtg(); |
1849 CloseStackIfOtg(); |
1845 CloseChannel(); |
1850 CloseChannel(); |
1846 UnloadDriver(); |
1851 UnloadDriver(); |
1847 UserSvr::HalFunction(EHalGroupKernel, EKernelHalSupervisorBarrier, (TAny*)5000, 0); |
1852 UserSvr::HalFunction(EHalGroupKernel, EKernelHalSupervisorBarrier, (TAny*)5000, 0); |
1848 __KHEAP_MARKEND; |
1853 // __KHEAP_MARKEND; |
1849 test.Next(_L("Test Release Interface, Release all interfaces one by one \n")); |
1854 test.Next(_L("Test Release Interface, Release all interfaces one by one \n")); |
1850 __KHEAP_MARK; |
1855 // __KHEAP_MARK; |
1851 LoadDriver(); |
1856 LoadDriver(); |
1852 OpenChannel(); |
1857 OpenChannel(); |
1853 |
1858 |
1854 r = SettingOne(altSetNo); |
1859 r = SettingOne(altSetNo); |
1855 test_KErrNone(r); |
1860 test_KErrNone(r); |
1866 |
1871 |
1867 CloseStackIfOtg(); |
1872 CloseStackIfOtg(); |
1868 CloseChannel(); |
1873 CloseChannel(); |
1869 UnloadDriver(); |
1874 UnloadDriver(); |
1870 UserSvr::HalFunction(EHalGroupKernel, EKernelHalSupervisorBarrier, (TAny*)5000, 0); |
1875 UserSvr::HalFunction(EHalGroupKernel, EKernelHalSupervisorBarrier, (TAny*)5000, 0); |
1871 __KHEAP_MARKEND; |
1876 // __KHEAP_MARKEND; |
1872 delete altSetConfig; |
1877 delete altSetConfig; |
1873 test.End(); |
1878 test.End(); |
1874 } |
1879 } |
1875 |
1880 |
1876 //This has to be called once atleast before testing reading and writing as global variables used for checking data alignment are set in this function |
1881 //This has to be called once atleast before testing reading and writing as global variables used for checking data alignment are set in this function |
3638 OstTrace0(TRACE_NORMAL, BILWRITE_BILWRITE_DUP08, "Stop writing at the USBIO demo dialog window,Press a key to continue\n"); |
3643 OstTrace0(TRACE_NORMAL, BILWRITE_BILWRITE_DUP08, "Stop writing at the USBIO demo dialog window,Press a key to continue\n"); |
3639 test.Getch(); |
3644 test.Getch(); |
3640 break; |
3645 break; |
3641 |
3646 |
3642 case '3': |
3647 case '3': |
3643 //case 3: Write maxpacketsize (64 bytes) of data to USBIO demo app, queue remianing data in buffer (full buffer length-maxpacket size), wait for results: Total data written- 1xBuffersize |
3648 //case 3: Write maxpacketsize of data to USBIO demo app, queue remianing data in buffer (full buffer length-maxpacket size), wait for results: Total data written- 1xBuffersize |
3644 WriteDataToBuffer(buffer,64,aWriteBuf); |
3649 TUint maxPacketSize; |
|
3650 if (gSupportsHighSpeed) |
|
3651 { |
|
3652 maxPacketSize = KUsbEpSize512; |
|
3653 } |
|
3654 else |
|
3655 { |
|
3656 maxPacketSize = KUsbEpSize64; |
|
3657 } |
|
3658 WriteDataToBuffer(buffer,maxPacketSize,aWriteBuf); |
3645 test.Printf(_L("Data ready to be written out, Start the write mode on USBIO demo application and press a key when ready to proceed\n")); |
3659 test.Printf(_L("Data ready to be written out, Start the write mode on USBIO demo application and press a key when ready to proceed\n")); |
3646 OstTrace0(TRACE_NORMAL, BILWRITE_BILWRITE_DUP09, "Data ready to be written out, Start the write mode on USBIO demo application and press a key when ready to proceed\n"); |
3660 OstTrace0(TRACE_NORMAL, BILWRITE_BILWRITE_DUP09, "Data ready to be written out, Start the write mode on USBIO demo application and press a key when ready to proceed\n"); |
3647 test.Getch(); |
3661 test.Getch(); |
3648 |
3662 |
3649 ret = epBuf.WriteBuffer(buffer,64,EFalse,status1); |
3663 ret = epBuf.WriteBuffer(buffer,maxPacketSize,EFalse,status1); |
3650 test_KErrNone(ret); |
3664 test_KErrNone(ret); |
3651 |
3665 |
3652 WriteDataToBuffer((TUint8*)buffer+64,length-64,aWriteBuf); |
3666 WriteDataToBuffer((TUint8*)buffer+maxPacketSize,length-maxPacketSize,aWriteBuf); |
3653 ret = epBuf.WriteBuffer((TUint8*)buffer+64,length-64,ETrue,status2); |
3667 ret = epBuf.WriteBuffer((TUint8*)buffer+maxPacketSize,length-maxPacketSize,ETrue,status2); |
3654 test_KErrNone(ret); |
3668 test_KErrNone(ret); |
3655 |
3669 |
3656 User::WaitForRequest(status1); |
3670 User::WaitForRequest(status1); |
3657 test_KErrNone(status1.Int()); |
3671 test_KErrNone(status1.Int()); |
3658 User::WaitForRequest(status2); |
3672 User::WaitForRequest(status2); |
3943 ret=KErrCompletion; |
3957 ret=KErrCompletion; |
3944 } |
3958 } |
3945 else if (ret==TEndpointBuffer::KStateChange) |
3959 else if (ret==TEndpointBuffer::KStateChange) |
3946 { |
3960 { |
3947 TInt state = *((TInt*) readBuf); |
3961 TInt state = *((TInt*) readBuf); |
3948 test.Printf(_L("Status Change:! %d : %S \n"),state,((state<0) || (state>7))?KStates[8]:KStates[state]); |
3962 test.Printf(_L("Status Change:! %d : %S \n"),state,((state<0) || (state>7))?KStates[7]:KStates[state]); |
3949 OstTraceExt2(TRACE_NORMAL, TESTBILEP0_TESTBILEP0_DUP03, "Status Change:! %d : %S \n",state,((state<0) || (state>7))?*KStates[8]:*KStates[state]); |
3963 OstTraceExt2(TRACE_NORMAL, TESTBILEP0_TESTBILEP0_DUP03, "Status Change:! %d : %S \n",state,((state<0) || (state>7))?*KStates[7]:*KStates[state]); |
3950 test_Equal(aSize, 4); |
3964 test_Equal(aSize, 4); |
3951 goodStateChange++; |
3965 goodStateChange++; |
3952 } |
3966 } |
3953 else |
3967 else |
3954 { |
3968 { |