telephonyprotocols/pdplayer/umts/test/te_spudNetworkSide/src/te_spudNetworkSideSteps.cpp
changeset 49 f50f4094acd7
parent 48 14460bf2a402
--- a/telephonyprotocols/pdplayer/umts/test/te_spudNetworkSide/src/te_spudNetworkSideSteps.cpp	Wed Jun 23 19:32:14 2010 +0300
+++ b/telephonyprotocols/pdplayer/umts/test/te_spudNetworkSide/src/te_spudNetworkSideSteps.cpp	Tue Jul 06 15:36:38 2010 +0300
@@ -80,7 +80,7 @@
 
 #ifdef SYMBIAN_NON_SEAMLESS_NETWORK_BEARER_MOBILITY
 TVerdict CSpudNetSideTestBase::doTestStepPostambleL()
-	{	
+	{
 	ClearPolicySelector2QosParametersTableL();
 	return TestStepResult();
 	}
@@ -97,7 +97,18 @@
 	TestL(RProperty::Set(KUidPSCsyWriteResultCategory, aPortNum, aErrorCode), _L("Set PSCsy write result"));
   	INFO_PRINTF3(_L("Next write on [PKTLOOPBACK::%d] is going to fail with [%d]"), aPortNum, aErrorCode);
   	}
-	
+
+void CSpudNetSideTestBase::ClearNextPktLoopbackCsyWriteL(TInt aPortNum)
+    {
+    TInt dummy(0);
+    TInt ret = RProperty::Get(KUidPSCsyWriteResultCategory, aPortNum, dummy);
+    if(ret != KErrNotFound)
+        {
+        RProperty::Set(KUidPSCsyWriteResultCategory, aPortNum, KErrNone);
+        }
+    INFO_PRINTF2(_L("Reset to KErrNone for the next write on [PKTLOOPBACK::%d] port"), aPortNum);
+    }
+
 /**
 Blocks until Nifman progress notification is received.
 
@@ -1636,6 +1647,7 @@
 	
 	StopSecondaryL();
 	
+	ClearNextPktLoopbackCsyWriteL(loopbackPort);
 	return EPass;
 	}
 
@@ -1719,6 +1731,7 @@
 	// In the meanwhile, we sneak in and stop the interface.
 	
 	StopInterfaceL();
+	ClearNextPktLoopbackCsyWriteL(loopbackPort);
 	return EPass;	
 	};
 
@@ -1981,6 +1994,12 @@
 
 	// start rawipnif instance opposite the SPUD's secondary context, and open a socket on it
 	CConnectionStart *secondaryIfStart = CConnectionStart::NewLC(iEsock, *this, oppositeSecondaryIapId);
+
+    TRequestStatus progressReqSt;   
+    
+	secondaryIfStart->iInterface.ProgressNotification(iProgressBuf, progressReqSt, 7000);
+	WaitForProgressNotificationL(progressReqSt, 7000, 0); // We can wait here forever. Set timeout on test step.
+
 #ifndef SYMBIAN_NON_SEAMLESS_NETWORK_BEARER_MOBILITY
 	WaitForQoSEventL(_L("SecondaryActivationEvent2"), _L("SecondaryActivationEvent2Reason"));
 #else
@@ -2247,6 +2266,20 @@
     	TestL(p->Start(iap1prefs),primaryCreationErr, _L("RConnection::Start the interface"));
 	    }
 
+	//check if all contexts are still there
+	for (TInt i = 0; i < maximumConnections; i++)
+	    {
+        TBuf<32> primaryIap;
+        primaryIap.Format(KPrimaryIapFormatLit, i + 1);
+    	if (!GetIntFromConfig(ConfigSection(), primaryIap, primaryIapId))
+    		{
+    		User::Leave(KErrNotFound);
+    		}
+		INFO_PRINTF2(_L("Verify context #%d is still there"), i);
+		VerifySubconnectionCountL(2, primaryIapId);
+		INFO_PRINTF2(_L("Context #%d is still there"), i);
+	    }
+
 	
 	for (TInt i = (interfaces.Count() - 1); i >= 0; i--)
 	    {