kerneltest/e32test/usbho/t_usbdi/src/PBASE-T_USBDI-1236.cpp
changeset 253 d37db4dcc88d
parent 0 a41df078684a
child 257 3e88ff8f41d5
equal deleted inserted replaced
252:0a40b8675b23 253:d37db4dcc88d
     1 // Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
     1 // Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies).
     2 // All rights reserved.
     2 // All rights reserved.
     3 // This component and the accompanying materials are made available
     3 // This component and the accompanying materials are made available
     4 // under the terms of the License "Eclipse Public License v1.0"
     4 // under the terms of the License "Eclipse Public License v1.0"
     5 // which accompanies this distribution, and is available
     5 // which accompanies this distribution, and is available
     6 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
     6 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
    20 #include "PBASE-T_USBDI-1236.h"
    20 #include "PBASE-T_USBDI-1236.h"
    21 #include <d32usbc.h>
    21 #include <d32usbc.h>
    22 #include <d32usbdescriptors.h>
    22 #include <d32usbdescriptors.h>
    23 #include "testdebug.h"
    23 #include "testdebug.h"
    24 #include "TestPolicy.h"
    24 #include "TestPolicy.h"
       
    25 #include "OstTraceDefinitions.h"
       
    26 #ifdef OST_TRACE_COMPILER_IN_USE
       
    27 #include "PBASE-T_USBDI-1236Traces.h"
       
    28 #endif
    25 
    29 
    26 namespace NUnitTesting_USBDI
    30 namespace NUnitTesting_USBDI
    27 	{
    31 	{
    28 	
    32 	
    29 _LIT(KTestCaseId,"PBASE-T_USBDI-1236");
    33 _LIT(KTestCaseId,"PBASE-T_USBDI-1236");
    30 const TFunctorTestCase<CUT_PBASE_T_USBDI_1236,TBool> CUT_PBASE_T_USBDI_1236::iFunctor(KTestCaseId);	
    34 const TFunctorTestCase<CUT_PBASE_T_USBDI_1236,TBool> CUT_PBASE_T_USBDI_1236::iFunctor(KTestCaseId);	
    31 
    35 
    32 CUT_PBASE_T_USBDI_1236* CUT_PBASE_T_USBDI_1236::NewL(TBool aHostRole)
    36 CUT_PBASE_T_USBDI_1236* CUT_PBASE_T_USBDI_1236::NewL(TBool aHostRole)
    33 	{
    37 	{
       
    38 	OstTraceFunctionEntry1( CUT_PBASE_T_USBDI_1236_NEWL_ENTRY, aHostRole );
    34 	CUT_PBASE_T_USBDI_1236* self = new (ELeave) CUT_PBASE_T_USBDI_1236(aHostRole);
    39 	CUT_PBASE_T_USBDI_1236* self = new (ELeave) CUT_PBASE_T_USBDI_1236(aHostRole);
    35 	CleanupStack::PushL(self);
    40 	CleanupStack::PushL(self);
    36 	self->ConstructL();
    41 	self->ConstructL();
    37 	CleanupStack::Pop(self);
    42 	CleanupStack::Pop(self);
       
    43 	OstTraceFunctionExit1( CUT_PBASE_T_USBDI_1236_NEWL_EXIT, ( TUint )( self ) );
    38 	return self; 
    44 	return self; 
    39 	}
    45 	}
    40 	   
    46 	   
    41 
    47 
    42 CUT_PBASE_T_USBDI_1236::CUT_PBASE_T_USBDI_1236(TBool aHostRole)
    48 CUT_PBASE_T_USBDI_1236::CUT_PBASE_T_USBDI_1236(TBool aHostRole)
    43 :	CBaseTestCase(KTestCaseId,aHostRole)
    49 :	CBaseTestCase(KTestCaseId,aHostRole)
    44 	{
    50 	{
       
    51 	OstTraceFunctionEntryExt( CUT_PBASE_T_USBDI_1236_CUT_PBASE_T_USBDI_1236_ENTRY, this );
       
    52 	OstTraceFunctionExit1( CUT_PBASE_T_USBDI_1236_CUT_PBASE_T_USBDI_1236_EXIT, this );
    45 	} 
    53 	} 
    46 
    54 
    47 
    55 
    48 void CUT_PBASE_T_USBDI_1236::ConstructL()
    56 void CUT_PBASE_T_USBDI_1236::ConstructL()
    49 	{
    57 	{
       
    58 	OstTraceFunctionEntry1( CUT_PBASE_T_USBDI_1236_CONSTRUCTL_ENTRY, this );
    50 	iTestDevice = new RUsbDeviceA(this);
    59 	iTestDevice = new RUsbDeviceA(this);
    51 	BaseConstructL();
    60 	BaseConstructL();
       
    61 	OstTraceFunctionExit1( CUT_PBASE_T_USBDI_1236_CONSTRUCTL_EXIT, this );
    52 	}
    62 	}
    53 
    63 
    54 
    64 
    55 CUT_PBASE_T_USBDI_1236::~CUT_PBASE_T_USBDI_1236()
    65 CUT_PBASE_T_USBDI_1236::~CUT_PBASE_T_USBDI_1236()
    56 	{
    66 	{
    57 	LOG_FUNC
    67 	OstTraceFunctionEntry1( CUT_PBASE_T_USBDI_1236_CUT_PBASE_T_USBDI_1236_ENTRY_DUP01, this );
    58 	
    68 	
    59 	// Cancel any async operations
    69 	// Cancel any async operations
    60 	
    70 	
    61 	Cancel(); // Cancel host timer
    71 	Cancel(); // Cancel host timer
    62 	
    72 	
    69 	if(!IsHost() && iTestDevice)
    79 	if(!IsHost() && iTestDevice)
    70 		{
    80 		{
    71 		iTestDevice->Close();
    81 		iTestDevice->Close();
    72 		}		
    82 		}		
    73 	delete iTestDevice;
    83 	delete iTestDevice;
       
    84 	OstTraceFunctionExit1( CUT_PBASE_T_USBDI_1236_CUT_PBASE_T_USBDI_1236_EXIT_DUP01, this );
    74 	}
    85 	}
    75 
    86 
    76 
    87 
    77 void CUT_PBASE_T_USBDI_1236::ExecuteHostTestCaseL()
    88 void CUT_PBASE_T_USBDI_1236::ExecuteHostTestCaseL()
    78 	{
    89 	{
    79 	LOG_FUNC
    90 	OstTraceFunctionEntry1( CUT_PBASE_T_USBDI_1236_EXECUTEHOSTTESTCASEL_ENTRY, this );
    80 	iCaseStep = EStepGetInterfaceString;
    91 	iCaseStep = EStepGetInterfaceString;
    81 	iActorFDF = CActorFDF::NewL(*this);
    92 	iActorFDF = CActorFDF::NewL(*this);
    82 	iControlEp0 = new (ELeave) CEp0Transfer(iUsbInterface0);
    93 	iControlEp0 = new (ELeave) CEp0Transfer(iUsbInterface0);
    83 	
    94 	
    84 	// Monitor for device connections
    95 	// Monitor for device connections
    85 	iActorFDF->Monitor();
    96 	iActorFDF->Monitor();
    86 
    97 
    87 	// Start the connection timeout	
    98 	// Start the connection timeout	
    88 	TimeoutIn(30);
    99 	TimeoutIn(30);
       
   100 	OstTraceFunctionExit1( CUT_PBASE_T_USBDI_1236_EXECUTEHOSTTESTCASEL_EXIT, this );
    89 	}
   101 	}
    90 
   102 
    91 void CUT_PBASE_T_USBDI_1236::ExecuteDeviceTestCaseL()
   103 void CUT_PBASE_T_USBDI_1236::ExecuteDeviceTestCaseL()
    92 	{
   104 	{
    93 	LOG_FUNC
   105     OstTraceFunctionEntry1( CUT_PBASE_T_USBDI_1236_EXECUTEDEVICETESTCASEL_ENTRY, this );
    94 
   106 
    95 	// Construct the device for the test case
   107 	// Construct the device for the test case
    96 	iTestDevice->OpenL(TestCaseId());
   108 	iTestDevice->OpenL(TestCaseId());
    97 	iTestDevice->SubscribeToReports(iStatus);
   109 	iTestDevice->SubscribeToReports(iStatus);
    98 	SetActive();
   110 	SetActive();
    99 
   111 
   100 	// Connect the test device	
   112 	// Connect the test device	
   101 	iTestDevice->SoftwareConnect();
   113 	iTestDevice->SoftwareConnect();
       
   114 	OstTraceFunctionExit1( CUT_PBASE_T_USBDI_1236_EXECUTEDEVICETESTCASEL_EXIT, this );
   102 	}
   115 	}
   103 	
   116 	
   104 	
   117 	
   105 void CUT_PBASE_T_USBDI_1236::DeviceInsertedL(TUint aDeviceHandle)
   118 void CUT_PBASE_T_USBDI_1236::DeviceInsertedL(TUint aDeviceHandle)
   106 	{
   119 	{
   107 	LOG_FUNC
   120     OstTraceFunctionEntryExt( CUT_PBASE_T_USBDI_1236_DEVICEINSERTEDL_ENTRY, this );
   108 
   121 
   109 	Cancel(); // Cancel the timer
   122 	Cancel(); // Cancel the timer
   110 	TInt err(KErrNone);
   123 	TInt err(KErrNone);
   111 	iDeviceHandle = aDeviceHandle;
   124 	iDeviceHandle = aDeviceHandle;
   112 	iActorFDF->Monitor();
   125 	iActorFDF->Monitor();
   115 	CUsbTestDevice& testDevice = iActorFDF->DeviceL(aDeviceHandle);
   128 	CUsbTestDevice& testDevice = iActorFDF->DeviceL(aDeviceHandle);
   116 	if(testDevice.SerialNumber().Compare(TestCaseId()) != 0)
   129 	if(testDevice.SerialNumber().Compare(TestCaseId()) != 0)
   117 		{
   130 		{
   118 		// Incorrect device for this test case
   131 		// Incorrect device for this test case
   119 
   132 
   120 		RDebug::Printf("<Warning %d> Incorrect device serial number (%S) connected for this test case (%S)",
   133 		OstTraceExt3(TRACE_NORMAL, CUT_PBASE_T_USBDI_1236_DEVICEINSERTEDL, "<Warning %d> Incorrect device serial number (%S) connected for this test case (%S)",
   121 			KErrNotFound,&testDevice.SerialNumber(),&TestCaseId());
   134 			KErrNotFound,testDevice.SerialNumber(),TestCaseId());
   122 
   135 
   123 		// Start the connection timeout again
   136 		// Start the connection timeout again
   124 		TimeoutIn(30);
   137 		TimeoutIn(30);
       
   138 		OstTraceFunctionExit1( CUT_PBASE_T_USBDI_1236_DEVICEINSERTEDL_EXIT, this );
   125 		return;
   139 		return;
   126 		}	
   140 		}	
   127 		
   141 		
   128 	// Perform the correct test step				
   142 	// Perform the correct test step				
   129 	switch(iCaseStep)
   143 	switch(iCaseStep)
   131 		case EStepGetInterfaceString:
   145 		case EStepGetInterfaceString:
   132 			{
   146 			{
   133 			TUint32 token1(0);
   147 			TUint32 token1(0);
   134 			TUint32 token2(0);
   148 			TUint32 token2(0);
   135 	
   149 	
   136 			RDebug::Printf("Obtaining token for interface 0");
   150 			OstTrace0(TRACE_NORMAL, CUT_PBASE_T_USBDI_1236_DEVICEINSERTEDL_DUP01, "Obtaining token for interface 0");
   137 			err = testDevice.Device().GetTokenForInterface(0,token1);
   151 			err = testDevice.Device().GetTokenForInterface(0,token1);
   138 			if(err != KErrNone)
   152 			if(err != KErrNone)
   139 				{
   153 				{
   140 				RDebug::Printf("<Error %d> Token for interface 0 could not be retrieved",err);
   154 				OstTrace1(TRACE_NORMAL, CUT_PBASE_T_USBDI_1236_DEVICEINSERTEDL_DUP02, "<Error %d> Token for interface 0 could not be retrieved",err);
   141 				return TestFailed(err);
   155 				return TestFailed(err);
   142 				}
   156 				}
   143 			RDebug::Printf("Token 1 (%d) retrieved",token1);
   157 			OstTrace1(TRACE_NORMAL, CUT_PBASE_T_USBDI_1236_DEVICEINSERTEDL_DUP03, "Token 1 (%d) retrieved",token1);
   144 			RDebug::Printf("Opening interface 0");
   158 			OstTrace0(TRACE_NORMAL, CUT_PBASE_T_USBDI_1236_DEVICEINSERTEDL_DUP04, "Opening interface 0");
   145 			err = iUsbInterface0.Open(token1); // Alternate interface setting 0
   159 			err = iUsbInterface0.Open(token1); // Alternate interface setting 0
   146 			if(err != KErrNone)
   160 			if(err != KErrNone)
   147 				{
   161 				{
   148 				RDebug::Printf("<Error %d> Interface 0 could not be opened",err);
   162 				OstTrace1(TRACE_NORMAL, CUT_PBASE_T_USBDI_1236_DEVICEINSERTEDL_DUP05, "<Error %d> Interface 0 could not be opened",err);
   149 				return TestFailed(err);
   163 				return TestFailed(err);
   150 				}
   164 				}
   151 			RDebug::Printf("Interface 0 opened");
   165 			OstTrace0(TRACE_NORMAL, CUT_PBASE_T_USBDI_1236_DEVICEINSERTEDL_DUP06, "Interface 0 opened");
   152 		
   166 		
   153 																
   167 																
   154 			RDebug::Printf("Obtaining token for interface 1");
   168 			OstTrace0(TRACE_NORMAL, CUT_PBASE_T_USBDI_1236_DEVICEINSERTEDL_DUP07, "Obtaining token for interface 1");
   155 			err = testDevice.Device().GetTokenForInterface(1,token2);
   169 			err = testDevice.Device().GetTokenForInterface(1,token2);
   156 			if(err != KErrNone)
   170 			if(err != KErrNone)
   157 				{
   171 				{
   158 				RDebug::Printf("<Error %d> Token for interface 1 could not be retrieved",err);
   172 				OstTrace1(TRACE_NORMAL, CUT_PBASE_T_USBDI_1236_DEVICEINSERTEDL_DUP08, "<Error %d> Token for interface 1 could not be retrieved",err);
   159 				return TestFailed(err);			
   173 				return TestFailed(err);			
   160 				}	
   174 				}	
   161 			RDebug::Printf("Opening interface 1");
   175 			OstTrace0(TRACE_NORMAL, CUT_PBASE_T_USBDI_1236_DEVICEINSERTEDL_DUP09, "Opening interface 1");
   162 			err = iUsbInterface1.Open(token2); // Alternate interface setting 0
   176 			err = iUsbInterface1.Open(token2); // Alternate interface setting 0
   163 			if(err != KErrNone)
   177 			if(err != KErrNone)
   164 				{
   178 				{
   165 				RDebug::Printf("<Error %d> Interface 1 could not be opened",err);
   179 				OstTrace1(TRACE_NORMAL, CUT_PBASE_T_USBDI_1236_DEVICEINSERTEDL_DUP10, "<Error %d> Interface 1 could not be opened",err);
   166 				return TestFailed(err);
   180 				return TestFailed(err);
   167 				}
   181 				}
   168 			RDebug::Printf("Interface 1 opened");
   182 			OstTrace0(TRACE_NORMAL, CUT_PBASE_T_USBDI_1236_DEVICEINSERTEDL_DUP11, "Interface 1 opened");
   169 	
   183 	
   170 			// close it
   184 			// close it
   171 			iUsbInterface1.Close();		
   185 			iUsbInterface1.Close();		
   172 			RDebug::Printf("Interface 1 closed");
   186 			OstTrace0(TRACE_NORMAL, CUT_PBASE_T_USBDI_1236_DEVICEINSERTEDL_DUP12, "Interface 1 closed");
   173 	
   187 	
   174 			//re-open now
   188 			//re-open now
   175 			err = iUsbInterface1.Open(token2); // Alternate interface setting 0
   189 			err = iUsbInterface1.Open(token2); // Alternate interface setting 0
   176 			if(err != KErrNone)
   190 			if(err != KErrNone)
   177 				{
   191 				{
   178 				RDebug::Printf("<Error %d> Interface 1 could not be re-opened",err);
   192 				OstTrace1(TRACE_NORMAL, CUT_PBASE_T_USBDI_1236_DEVICEINSERTEDL_DUP13, "<Error %d> Interface 1 could not be re-opened",err);
   179 				return TestFailed(err);
   193 				return TestFailed(err);
   180 				}
   194 				}
   181 			RDebug::Printf("Interface 1 re-opened");
   195 			OstTrace0(TRACE_NORMAL, CUT_PBASE_T_USBDI_1236_DEVICEINSERTEDL_DUP14, "Interface 1 re-opened");
   182 			
   196 			
   183 
   197 
   184 			
   198 			
   185 			TBuf8<256> interfaceStringDes;
   199 			TBuf8<256> interfaceStringDes;
   186 			const TUint16 KLangIdUsEng = 0x0409;
   200 			const TUint16 KLangIdUsEng = 0x0409;
   193 			TPtr8 interfaceString = interfaceStringDes.MidTPtr(2, length-2);
   207 			TPtr8 interfaceString = interfaceStringDes.MidTPtr(2, length-2);
   194 			TBuf16<128> u16String((TUint16*)interfaceString.Ptr());
   208 			TBuf16<128> u16String((TUint16*)interfaceString.Ptr());
   195 			u16String.SetLength(interfaceString.Length()/2);
   209 			u16String.SetLength(interfaceString.Length()/2);
   196 			if (u16String.Compare(_L16("i1s0")) == 0)
   210 			if (u16String.Compare(_L16("i1s0")) == 0)
   197 				{
   211 				{
   198 				RDebug::Printf("interface String match");
   212 				OstTrace0(TRACE_NORMAL, CUT_PBASE_T_USBDI_1236_DEVICEINSERTEDL_DUP15, "interface String match");
   199 				iCaseStep = EPassed;
   213 				iCaseStep = EPassed;
   200 				TTestCasePassed request;
   214 				TTestCasePassed request;
   201 				iControlEp0->SendRequest(request,this);
   215 				iControlEp0->SendRequest(request,this);
   202 				}
   216 				}
   203 			else
   217 			else
   204 				{
   218 				{
   205 				RDebug::Printf("interface String not match %S", &interfaceString);
   219 				OstTraceExt1(TRACE_NORMAL, CUT_PBASE_T_USBDI_1236_DEVICEINSERTEDL_DUP16, "interface String not match %s", interfaceString);
   206 				iCaseStep = EFailed;
   220 				iCaseStep = EFailed;
   207 				TTestCaseFailed request(KErrCompletion, _L8("interface string not match"));
   221 				TTestCaseFailed request(KErrCompletion, _L8("interface string not match"));
   208 				iControlEp0->SendRequest(request,this);
   222 				iControlEp0->SendRequest(request,this);
   209 				}
   223 				}
   210 			}
   224 			}
   212 			
   226 			
   213 		default:
   227 		default:
   214 			TestFailed(KErrCorrupt);
   228 			TestFailed(KErrCorrupt);
   215 			break;
   229 			break;
   216 		}	
   230 		}	
       
   231 	OstTraceFunctionExit1( CUT_PBASE_T_USBDI_1236_DEVICEINSERTEDL_EXIT_DUP01, this );
   217 	}
   232 	}
   218 
   233 
   219 
   234 
   220 	
   235 	
   221 void CUT_PBASE_T_USBDI_1236::DeviceRemovedL(TUint aDeviceHandle)
   236 void CUT_PBASE_T_USBDI_1236::DeviceRemovedL(TUint aDeviceHandle)
   222 	{
   237 	{
   223 	LOG_FUNC
   238     OstTraceFunctionEntryExt( CUT_PBASE_T_USBDI_1236_DEVICEREMOVEDL_ENTRY, this );
   224 
   239 
   225 	// The test device should not be removed until the test case has passed
   240 	// The test device should not be removed until the test case has passed
   226 	// so this test case has not completed, and state this event as an error
   241 	// so this test case has not completed, and state this event as an error
   227 
   242 
   228 	TestFailed(KErrDisconnected);
   243 	TestFailed(KErrDisconnected);
       
   244 	OstTraceFunctionExit1( CUT_PBASE_T_USBDI_1236_DEVICEREMOVEDL_EXIT, this );
   229 	}
   245 	}
   230 	
   246 	
   231 	
   247 	
   232 void CUT_PBASE_T_USBDI_1236::BusErrorL(TInt aError)
   248 void CUT_PBASE_T_USBDI_1236::BusErrorL(TInt aError)
   233 	{
   249 	{
   234 	LOG_FUNC
   250     OstTraceFunctionEntryExt( CUT_PBASE_T_USBDI_1236_BUSERRORL_ENTRY, this );
   235 
   251 
   236 	// This test case handles no failiures on the bus
   252 	// This test case handles no failiures on the bus
   237 
   253 
   238 	TestFailed(aError);
   254 	TestFailed(aError);
       
   255 	OstTraceFunctionExit1( CUT_PBASE_T_USBDI_1236_BUSERRORL_EXIT, this );
   239 	}
   256 	}
   240 	
   257 	
   241 void CUT_PBASE_T_USBDI_1236::DeviceStateChangeL(RUsbDevice::TDeviceState aPreviousState,RUsbDevice::TDeviceState aNewState,TInt aCompletionCode)
   258 void CUT_PBASE_T_USBDI_1236::DeviceStateChangeL(RUsbDevice::TDeviceState aPreviousState,RUsbDevice::TDeviceState aNewState,TInt aCompletionCode)
   242 	{
   259 	{
   243 	LOG_FUNC
   260 	OstTraceFunctionEntryExt( CUT_PBASE_T_USBDI_1236_DEVICESTATECHANGEL_ENTRY, this );
   244 	Cancel();
   261 	Cancel();
   245 	RDebug::Printf("Device State change from %d to %d err=%d",aPreviousState,aNewState,aCompletionCode);
   262 	OstTraceExt3(TRACE_NORMAL, CUT_PBASE_T_USBDI_1236_DEVICESTATECHANGEL, "Device State change from %d to %d err=%d",aPreviousState,aNewState,aCompletionCode);
       
   263 	OstTraceFunctionExit1( CUT_PBASE_T_USBDI_1236_DEVICESTATECHANGEL_EXIT, this );
   246 	}
   264 	}
   247 
   265 
   248 
   266 
   249 void CUT_PBASE_T_USBDI_1236::Ep0TransferCompleteL(TInt aCompletionCode)
   267 void CUT_PBASE_T_USBDI_1236::Ep0TransferCompleteL(TInt aCompletionCode)
   250 	{
   268 	{
   251 	LOG_FUNC
   269 	OstTraceFunctionEntryExt( CUT_PBASE_T_USBDI_1236_EP0TRANSFERCOMPLETEL_ENTRY, this );
   252 	RDebug::Printf("Ep0TransferCompleteL with aCompletionCode = %d",aCompletionCode);
   270 	OstTrace1(TRACE_NORMAL, CUT_PBASE_T_USBDI_1236_EP0TRANSFERCOMPLETEL, "Ep0TransferCompleteL with aCompletionCode = %d",aCompletionCode);
   253 	switch(iCaseStep)
   271 	switch(iCaseStep)
   254 		{
   272 		{
   255 		// Fail the test case
   273 		// Fail the test case
   256 		default:
   274 		default:
   257 		case EFailed:
   275 		case EFailed:
   262 	
   280 	
   263 		case EPassed:
   281 		case EPassed:
   264 			TestPassed();
   282 			TestPassed();
   265 			break;
   283 			break;
   266 			}
   284 			}
       
   285 	OstTraceFunctionExit1( CUT_PBASE_T_USBDI_1236_EP0TRANSFERCOMPLETEL_EXIT, this );
   267 	}
   286 	}
   268 
   287 
   269 
   288 
   270 void CUT_PBASE_T_USBDI_1236::HostRunL()
   289 void CUT_PBASE_T_USBDI_1236::HostRunL()
   271 	{
   290 	{
   272 	LOG_FUNC
   291 	OstTraceFunctionEntry1( CUT_PBASE_T_USBDI_1236_HOSTRUNL_ENTRY, this );
   273 	
   292 	
   274 	// Obtain the completion code
   293 	// Obtain the completion code
   275 	TInt completionCode(iStatus.Int());
   294 	TInt completionCode(iStatus.Int());
   276 	
   295 	
   277 	if(completionCode == KErrNone)
   296 	if(completionCode == KErrNone)
   278 		{
   297 		{
   279 		// Action timeout
   298 		// Action timeout
   280 		RDebug::Printf("<Error> Action timeout");
   299 		OstTrace0(TRACE_NORMAL, CUT_PBASE_T_USBDI_1236_HOSTRUNL, "<Error> Action timeout");
   281 		TestFailed(KErrTimedOut);
   300 		TestFailed(KErrTimedOut);
   282 		}
   301 		}
   283 	else
   302 	else
   284 		{
   303 		{
   285 		RDebug::Printf("<Error %d> Timeout timer could not complete",completionCode);
   304 		OstTrace1(TRACE_NORMAL, CUT_PBASE_T_USBDI_1236_HOSTRUNL_DUP01, "<Error %d> Timeout timer could not complete",completionCode);
   286 		TestFailed(completionCode);
   305 		TestFailed(completionCode);
   287 		}
   306 		}
       
   307 	OstTraceFunctionExit1( CUT_PBASE_T_USBDI_1236_HOSTRUNL_EXIT, this );
   288 	}
   308 	}
   289 	
   309 	
   290 
   310 
   291 void CUT_PBASE_T_USBDI_1236::DeviceRunL()
   311 void CUT_PBASE_T_USBDI_1236::DeviceRunL()
   292 	{
   312 	{
   293 	LOG_FUNC
   313 	OstTraceFunctionEntry1( CUT_PBASE_T_USBDI_1236_DEVICERUNL_ENTRY, this );
   294 	
   314 	
   295 	// Disconnect the device
   315 	// Disconnect the device
   296 	
   316 	
   297 	iTestDevice->SoftwareDisconnect();
   317 	iTestDevice->SoftwareDisconnect();
   298 	
   318 	
   299 	// Complete the test case request
   319 	// Complete the test case request
   300 	
   320 	
   301 	TestPolicy().SignalTestComplete(iStatus.Int());
   321 	TestPolicy().SignalTestComplete(iStatus.Int());
       
   322 	OstTraceFunctionExit1( CUT_PBASE_T_USBDI_1236_DEVICERUNL_EXIT, this );
   302 	}
   323 	}
   303 
   324 
   304 void CUT_PBASE_T_USBDI_1236::HostDoCancel()
   325 void CUT_PBASE_T_USBDI_1236::HostDoCancel()
   305 	{
   326 	{
   306 	LOG_FUNC
   327 OstTraceFunctionEntry1( CUT_PBASE_T_USBDI_1236_HOSTDOCANCEL_ENTRY, this );
   307 
   328 
   308 	// Cancel the timeout timer
   329 	// Cancel the timeout timer
   309 	CancelTimeout();
   330 	CancelTimeout();
       
   331 	OstTraceFunctionExit1( CUT_PBASE_T_USBDI_1236_HOSTDOCANCEL_EXIT, this );
   310 	}
   332 	}
   311 
   333 
   312 
   334 
   313 void CUT_PBASE_T_USBDI_1236::DeviceDoCancel()
   335 void CUT_PBASE_T_USBDI_1236::DeviceDoCancel()
   314 	{
   336 	{
   315 	LOG_FUNC
   337 	OstTraceFunctionEntry1( CUT_PBASE_T_USBDI_1236_DEVICEDOCANCEL_ENTRY, this );
   316 	
   338 	
   317 	// Cancel the device	
   339 	// Cancel the device	
   318 	iTestDevice->CancelSubscriptionToReports();
   340 	iTestDevice->CancelSubscriptionToReports();
   319 	}
   341 	OstTraceFunctionExit1( CUT_PBASE_T_USBDI_1236_DEVICEDOCANCEL_EXIT, this );
   320 	
   342 	}
   321 	}
   343 	
       
   344 	}