linklayerprotocols/pppnif/te_ppp/te_incoming_ppp/src/idleserverstep.cpp
changeset 0 af10295192d8
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/linklayerprotocols/pppnif/te_ppp/te_incoming_ppp/src/idleserverstep.cpp	Tue Jan 26 15:23:49 2010 +0200
@@ -0,0 +1,133 @@
+// Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "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:
+// Implementation for CIdleServerStep class 
+// 
+//
+
+/**
+ @file 
+ @internalComponent
+*/
+
+
+#include "idleserverstep.h"
+using namespace te_ppploopback;
+
+// Local variables.
+namespace
+	{
+	// Configuration file entries.
+	_LIT(KMicrosecsIdleTimeout, "MicrosecsIdleTimeout");
+	_LIT(KMicrosecsToFirstClientConn,"MicrosecsToFirstClientConn");	
+	_LIT(KMicrosecsToSecondClientConn,"MicrosecsToSecondClientConn");	
+	}	
+
+
+/**
+ C++ Constructor
+ 
+ 
+ @post Test name is setup. 
+ */	
+CIdleServerStep::CIdleServerStep():
+	CLoopbackTestStepBase()
+	{
+	SetTestStepName(KIdleServerStep);
+	}
+
+/**
+ C++ Destructor
+ 
+ */	
+CIdleServerStep::~CIdleServerStep()
+	{
+	}
+
+
+/**
+ Carries out the test sequence for the IDLE_SERVER test case
+ Test whether the server can handle more than one client connection in idle mode.
+
+ @leave if any of the called methods leave.
+ */
+TVerdict CIdleServerStep::doTestStepL()
+	{
+	SetTestStepResult(EFail);
+	
+	 // Load testing configuration and write ppp ini files.
+	ConfigurePppServerL();
+	ConfigurePppClientL();	
+	
+	TInt microsecsIdleTimeout = 0;
+	GetIntFromConfig(ConfigSection(), KMicrosecsIdleTimeout, microsecsIdleTimeout);
+	
+	TInt microsecsToFirstClientConn = 0;
+	GetIntFromConfig(ConfigSection(), KMicrosecsToFirstClientConn, microsecsToFirstClientConn);	
+	
+	TInt microsecsToSecondClientConn = 0;
+	GetIntFromConfig(ConfigSection(), KMicrosecsToSecondClientConn, microsecsToSecondClientConn);	
+		
+	INFO_PRINTF4(_L("Idle timeout %d, To First Client Conn: %d, To Second Client Conn: %d"),microsecsIdleTimeout, microsecsToFirstClientConn, microsecsToSecondClientConn );
+	
+	
+	
+	InstallActiveSchedLC();
+	
+	InitPppServerL();
+	InitPppClientL();
+		
+	// Open PPP link.
+	//-------------------------------------------------------------------------------------------
+	iServer->ConnectToPeerL();
+	INFO_PRINTF1(_L("Server started, waiting for client"));
+	PutPppServerInIdleMode(); // waits for the server to go into idle mode
+	User::After(microsecsToFirstClientConn); 	
+	iClient->ConnectToPeerL();		
+	INFO_PRINTF1(_L("Client started, waiting for server"));
+
+	iStepSched->Start();
+	//-------------------------------------------------------------------------------------------	
+	ShutdownAndDestroyPppClientL();
+	
+	iServer->ConnectToPeerL(); // restart the server
+	PutPppServerInIdleMode(); // waits for the server to go into idle mode
+	User::After(microsecsToSecondClientConn);	
+	
+	InitPppClientL(); // Create the second client
+	iClient->ConnectToPeerL();
+	
+    //-------------------------------------------------------------------------------------------
+	iStepSched->Start();  
+
+	// The rest has no significance for PPP loopback testing.
+	//-------------------------------------------------------------------
+	ShutdownAndDestroyPppClientL();
+	ShutdownAndDestroyPppServerL();
+		
+	//User::After(5 * 1000000); //DEBUG: Wait for system logs to flush. 
+		
+	RemoveActiveSchedL();
+	return TestStepResult();	
+	}			
+		
+	
+
+
+
+
+
+
+
+	
+