datacommsserver/esockserver/test/TE_EsockTestSteps/src/Te_esockteststepsSuiteServer.cpp
changeset 0 dfb7c4ff071f
child 1 21d2ab05f085
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/datacommsserver/esockserver/test/TE_EsockTestSteps/src/Te_esockteststepsSuiteServer.cpp	Thu Dec 17 09:22:25 2009 +0200
@@ -0,0 +1,440 @@
+// 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:
+// for (WINS && !EKA2) versions will be xxxServer.Dll and require a thread to be started
+// in the process of the client. The client initialises the server by calling the
+// one and only ordinal.
+// 
+//
+
+/**
+ @file Te_esockteststepsSuiteServer.cpp
+*/
+
+#include <e32base.h>
+#include <c32comm.h>
+#include <c32root.h>
+#include <ecom/ecom.h>
+
+#include "SocketServer.TestSteps.h"
+#include "Connections.TestSteps.h"
+#include "SubConnections.TestSteps.h"
+#include "Sockets.TestSteps.h"
+
+#include "BearerMobility.TestSteps.h"
+
+#include "DataMonitoring.TestSteps.h"
+#include "ESockDebug.TestSteps.h"
+#include "ConnectionServer.TestSteps.h"
+#include "Commsdat.TestSteps.h"
+
+#include "Qos.TestSteps.h"
+#include "cancelconnectrsocketStep.h"
+#include "Te_esockteststepsSuiteServer.h"
+
+CTe_esockteststepsSuite* CTe_esockteststepsSuite::NewL()
+/**
+ * @return - Instance of the test server
+ * Same code for Secure and non-secure variants
+ * Called inside the MainL() function to create and start the
+ * CTestServer derived server.
+ */
+	{
+	CTe_esockteststepsSuite * server = new (ELeave) CTe_esockteststepsSuite();
+	CleanupStack::PushL(server);
+	// CServer base class call which can be either StartL or ConstructL,
+	// the later will permit Server Logging.
+
+	server->StartL(server->ServerName());
+
+
+	CleanupStack::Pop(server);
+	return server;
+	}
+
+
+// Secure variants much simpler
+// For EKA2, just an E32Main and a MainL()
+LOCAL_C void MainL()
+/**
+ * Secure variant
+ * Much simpler, uses the new Rendezvous() call to sync with the client
+ */
+	{
+	// Leave the hooks in for platform security
+#if (defined __DATA_CAGING__)
+	RProcess().DataCaging(RProcess::EDataCagingOn);
+	RProcess().DataCaging(RProcess::ESecureApiOn);
+#endif
+	CActiveScheduler* sched=NULL;
+	sched=new(ELeave) CActiveScheduler;
+	CActiveScheduler::Install(sched);
+	CTe_esockteststepsSuite* server = NULL;
+	// Create the CTestServer derived server
+	TRAPD(err,server = CTe_esockteststepsSuite::NewL());
+	if(!err)
+		{
+		// Sync with the client and enter the active scheduler
+		RProcess::Rendezvous(KErrNone);
+		sched->Start();
+		}
+	delete server;
+	delete sched;
+	}
+
+
+
+GLDEF_C TInt E32Main()
+/**
+ * @return - Standard Epoc error code on process exit
+ * Secure variant only
+ * Process entry point. Called by client using RProcess API
+ */
+	{
+	__UHEAP_MARK;
+	CTrapCleanup* cleanup = CTrapCleanup::New();
+	if(cleanup == NULL)
+		{
+		return KErrNoMemory;
+		}
+	TRAPD(err,MainL());
+	delete cleanup;
+	REComSession::FinalClose();
+	__UHEAP_MARKEND;
+	return err;
+    }
+
+
+
+
+CTe_esockteststepsSuite::CTe_esockteststepsSuite()
+	: CTestServer()
+	, iEsockTest(NULL)
+	{
+	}
+
+CTe_esockteststepsSuite::~CTe_esockteststepsSuite()
+	{
+	if( iEsockTest != NULL )
+		{
+		delete iEsockTest;
+		iEsockTest = NULL;
+		}
+	}
+
+#define NEW_ESOCK_TESTSTEP(TEST_STEP_NAME) \
+	else if(aStepName.CompareF (K##TEST_STEP_NAME) == 0)\
+		testStep = new C##TEST_STEP_NAME(iEsockTest);
+
+#define FIRST_NEW_ESOCK_TESTSTEP(TEST_STEP_NAME) \
+	if(aStepName.CompareF (K##TEST_STEP_NAME) == 0) \
+				testStep = new C##TEST_STEP_NAME(iEsockTest);
+
+
+
+CTestStep* CTe_esockteststepsSuite::CreateTestStep(const TDesC& aStepName)
+/**
+ * @return - A CTestStep derived instance
+ * Secure and non-secure variants
+ * Implementation of CTestServer pure virtual
+ */
+	{
+	CTestStep* testStep = NULL;
+
+	// They are created "just in time" when the worker thread is created
+	// More test steps can be added below
+	if(aStepName.CompareF (KAddRSocketToRSubConnectionStep) == 0)
+				testStep = new CAddRSocketToRSubConnectionStep(iEsockTest);
+	else if(aStepName.CompareF (KAcceptIncomingConnectionStep) == 0)
+				testStep = new CAcceptIncomingConnectionStep(iEsockTest);
+	else if(aStepName.CompareF (KAsyncAcceptIncomingConnectionStep) == 0)
+                testStep = new CAsyncAcceptIncomingConnectionStep(iEsockTest);
+	else if(aStepName.CompareF (KAddRSocketToRSubConnectionOOMStep) == 0)
+				testStep = new CAddRSocketToRSubConnectionOOMStep(iEsockTest);
+	else if(aStepName.CompareF (KBackupRestoreStep) == 0)
+				testStep = new CBackupRestoreStep(iEsockTest);
+	else if(aStepName.CompareF (KCheckMobilityNotificationStep) == 0)
+				testStep = new CCheckMobilityNotificationStep(iEsockTest);
+	else if(aStepName.CompareF (KCheckRSubConnectionEventsStep) == 0)
+				testStep = new CCheckRSubConnectionEventsStep(iEsockTest);
+	else if(aStepName.CompareF (KCloseRCommsMobilityAPIExtStep) == 0)
+				testStep = new CCloseRCommsMobilityAPIExtStep(iEsockTest);
+
+	else if(aStepName.CompareF (KCloseRConnectionStep) == 0)
+				testStep = new CCloseRConnectionStep(iEsockTest);
+	else if(aStepName.CompareF (KCloseRSocketServStep) == 0)
+				testStep = new CCloseRSocketServStep(iEsockTest);
+	else if(aStepName.CompareF (KCloseRSocketStep) == 0)
+				testStep = new CCloseRSocketStep(iEsockTest);
+	else if(aStepName.CompareF (KCloseRSubConnectionStep) == 0)
+				testStep = new CCloseRSubConnectionStep(iEsockTest);
+
+	else if(aStepName.CompareF (KCloseRSubConParameterBundleStep) == 0)
+				testStep = new CCloseRSubConParameterBundleStep(iEsockTest);
+	else if(aStepName.CompareF (KCompareExtIPLink99ParameterSetStep) == 0)
+				testStep = new CCompareExtIPLink99ParameterSetStep(iEsockTest);
+	else if(aStepName.CompareF (KCompareExtSBLPParameterSetStep) == 0)
+				testStep = new CCompareExtSBLPParameterSetStep(iEsockTest);
+	else if(aStepName.CompareF (KCompareGenQosParameterSetStep) == 0)
+				testStep = new CCompareGenQosParameterSetStep(iEsockTest);
+	else if(aStepName.CompareF (KCompareGenSBLPParameterSetStep) == 0)
+				testStep = new CCompareGenSBLPParameterSetStep(iEsockTest);
+	else if(aStepName.CompareF (KinitialiseExtMbmsParameterSetStep) == 0)
+				testStep = new CinitialiseExtMbmsParameterSetStep(iEsockTest);
+	else if(aStepName.CompareF (KinitialiseGenMbmsParameterSetStep) == 0)
+				testStep = new CinitialiseGenMbmsParameterStep(iEsockTest);
+
+	else if(aStepName.CompareF (KConnectRSocketServStep) == 0)
+				testStep = new CConnectRSocketServStep(iEsockTest);
+	else if(aStepName.CompareF (KConnectRSocketStep) == 0)
+				testStep = new CConnectRSocketStep(iEsockTest);
+	else if(aStepName.CompareF (KControlRSubConnectionStep) == 0)
+				testStep = new CControlRSubConnectionStep(iEsockTest);
+	else if(aStepName.CompareF (KCreateRConnectionStep) == 0)
+				testStep = new CCreateRConnectionStep(iEsockTest);
+	else if(aStepName.CompareF (KCreateRSocketServStep) == 0)
+				testStep = new CCreateRSocketServStep(iEsockTest);
+	else if(aStepName.CompareF (KCreateRSocketStep) == 0)
+				testStep = new CCreateRSocketStep(iEsockTest);
+
+	else if(aStepName.CompareF (KCreateSBLPFlowIdStep) == 0)
+				testStep = new CCreateSBLPFlowIdStep(iEsockTest);
+	else if(aStepName.CompareF (KSetSBLPFlowIdStep) == 0)
+				testStep = new CSetSBLPFlowIdStep(iEsockTest);
+
+	else if(aStepName.CompareF (KCreateRSubConnectionStep) == 0)
+				testStep = new CCreateRSubConnectionStep(iEsockTest);
+
+	else if(aStepName.CompareF (KCreateRSubConParameterBundleStep) == 0)
+				testStep = new CCreateRSubConParameterBundleStep(iEsockTest);
+	else if(aStepName.CompareF (KCreateRSubConParameterFamilyStep) == 0)
+				testStep = new CCreateRSubConParameterFamilyStep(iEsockTest);
+	else if(aStepName.CompareF (KGetRSubConParametersStep) == 0)
+				testStep = new CGetRSubConParametersStep(iEsockTest);
+	else if(aStepName.CompareF (KinitialiseExtIPLink99ParameterSetStep) == 0)
+				testStep = new CinitialiseExtIPLink99ParameterSetStep(iEsockTest);
+              else if(aStepName.CompareF (KinitialiseExtIPLinkR5ParameterSetStep) == 0)
+                            testStep = new CinitialiseExtIPLinkR5ParameterSetStep(iEsockTest);
+              else if (aStepName.CompareF(KCompareExtIPLinkR5ParameterSetStep) == 0)
+            	  testStep = new CCompareExtIPLinkR5ParameterSetStep(iEsockTest);
+              else if(aStepName.CompareF (KinitialiseIMSExtParameterSetStep) == 0)
+                            testStep = new CinitialiseIMSExtParameterSetStep(iEsockTest);
+// SYMBIAN_NETWORKING_UMTSR5
+	else if(aStepName.CompareF (KinitialiseExtSblpParameterSetStep) == 0)
+				testStep = new CinitialiseExtSblpParameterSetStep(iEsockTest);
+	else if(aStepName.CompareF (KinitialiseGenQosParameterSetStep) == 0)
+				testStep = new CinitialiseGenQosParameterSetStep(iEsockTest);
+	else if(aStepName.CompareF (KinitialiseGenSblpParameterSetStep) == 0)
+				testStep = new CinitialiseGenSblpParameterSetStep(iEsockTest);
+	else if(aStepName.CompareF (KMultipleOpenRSubConnectionStep) == 0)
+				testStep = new CMultipleOpenRSubConnectionStep(iEsockTest);
+	else if(aStepName.CompareF (KMultipleAddRSubConnectionStep) == 0)
+				testStep = new CMultipleAddRSubConnectionStep(iEsockTest);
+	else if(aStepName.CompareF (KAddRSocketToRSubConNoWaitStep) == 0)
+	                testStep = new CAddRSocketToRSubConNoWaitStep(iEsockTest);
+	else if(aStepName.CompareF (KMultipleRemoveRSubConnectionStep) == 0)
+				testStep = new CMultipleRemoveRSubConnectionStep(iEsockTest);
+	else if(aStepName.CompareF (KOpenRCommsMobilityAPIExtStep) == 0)
+				testStep = new COpenRCommsMobilityAPIExtStep(iEsockTest);
+
+	else if(aStepName.CompareF (KOpenRConnectionStep) == 0)
+				testStep = new COpenRConnectionStep(iEsockTest);
+	else if(aStepName.CompareF (KOpenRSocketStep) == 0)
+				testStep = new COpenRSocketStep(iEsockTest);
+	else if(aStepName.CompareF (KOpenRSubConnectionOOMStep) == 0)
+				testStep = new COpenRSubConnectionOOMStep(iEsockTest);
+	else if(aStepName.CompareF (KOpenRSubConnectionStep) == 0)
+				testStep = new COpenRSubConnectionStep(iEsockTest);
+
+	else if(aStepName.CompareF (KWaitForIncomingConnectionStep) == 0)
+				testStep = new CWaitForIncomingConnectionStep(iEsockTest);
+
+	else if(aStepName.CompareF (KRegisterForRSubConnectionEventsStep) == 0)
+				testStep = new CRegisterForRSubConnectionEventsStep(iEsockTest);
+	else if(aStepName.CompareF (KRemoveRSocketFromRSubConnectionOOMStep) == 0)
+				testStep = new CRemoveRSocketFromRSubConnectionOOMStep(iEsockTest);
+	else if(aStepName.CompareF (KRemoveRSocketFromRSubConnectionStep) == 0)
+				testStep = new CRemoveRSocketFromRSubConnectionStep(iEsockTest);
+	else if(aStepName.CompareF (KRejectIncomingConnectionStep) == 0)
+				testStep = new CRejectIncomingConnectionStep(iEsockTest);
+
+	else if(aStepName.CompareF (KSendReceiveRSocketStep) == 0)
+				testStep = new CSendReceiveRSocketStep(iEsockTest);
+
+	else if(aStepName.CompareF (KSetRSubConParametersStep) == 0)
+				testStep = new CSetRSubConParametersStep(iEsockTest);
+
+	else if(aStepName.CompareF (KShutdownRSocketStep) == 0)
+				testStep = new CShutdownRSocketStep(iEsockTest);
+	else if(aStepName.CompareF (KStartRConnectionStep) == 0)
+				testStep = new CStartRConnectionStep(iEsockTest);
+	else if(aStepName.CompareF (KAwaitRConnectionStartComplete) == 0)
+				testStep = new CAwaitRConnectionStartComplete(iEsockTest);
+	
+	else if(aStepName.CompareF (KStartSimTSYStep) == 0)
+				testStep = new CStartSimTSYStep(iEsockTest);
+
+	else if(aStepName.CompareF (KStopRConnectionStep) == 0)
+				testStep = new CStopRConnectionStep(iEsockTest);
+
+	else if(aStepName.CompareF (KStopSimTSYStep) == 0)
+				testStep = new CStopSimTSYStep(iEsockTest);
+	else if(aStepName.CompareF (KSimTSYTriggerEventStep) == 0)
+				testStep = new CSimTSYTriggerEventStep(iEsockTest);
+
+	else if(aStepName.CompareF (KCleanAllStep) == 0)
+				testStep = new CCleanAllStep(iEsockTest);
+
+	else if(aStepName.CompareF (KTe_CreatePublishSubscribeVar) == 0)
+					testStep = new CCreatePublishSubscribeVar(iEsockTest);
+	else if(aStepName.CompareF (KTe_CheckPublishSubscribeVar) == 0)
+						testStep = new CCheckPublishSubscribeVar(iEsockTest);
+
+	else if(aStepName.CompareF (KInitialiseRSubConParameterFamilyStep) == 0)
+				testStep = new CInitialiseRSubConParameterFamilyStep(iEsockTest);
+    else if(aStepName.CompareF(KmoveConnectedSocketToSubconnectionStep)==0)
+              	testStep = new CmoveConnectedSocketToSubconnectionStep(iEsockTest);
+    else if(aStepName.CompareF(KCancelConnectrsocketStep)==0)
+                testStep = new CCancelConnectrsocketStep(iEsockTest);
+
+    else if(aStepName.CompareF(Kacceptcarrierrcommsmobilityapiext)==0)
+  				testStep = new Cacceptcarrierrcommsmobilityapiext(iEsockTest);
+    else if(aStepName.CompareF(Krejectcarrierrcommsmobilityapiext)==0)
+  				testStep = new Crejectcarrierrcommsmobilityapiext(iEsockTest);
+    else if(aStepName.CompareF(KCancelMobilityNotificationStep)==0)
+  				testStep = new CCancelMobilityNotificationStep(iEsockTest);
+    else if(aStepName.CompareF(Kmigratercommsmobilityapiext)==0)
+  				testStep = new Cmigratercommsmobilityapiext(iEsockTest);
+    else if(aStepName.CompareF(Kignorercommsmobilityapiext)==0)
+  				testStep = new Cignorercommsmobilityapiext(iEsockTest);
+    else if(aStepName.CompareF(KRegisterForMobilityNotificationStep) == 0)
+  				testStep = new CRegisterForMobilityNotificationStep(iEsockTest);
+
+    else if(aStepName.CompareF (KattachtorconnectionStep) == 0)
+                testStep = new CattachtorconnectionStep(iEsockTest);
+    else if(aStepName.CompareF(Kmobilitynotifyrcommsmobilityapiext)==0)
+  				testStep = new Cmobilitynotifyrcommsmobilityapiext(iEsockTest);
+    else if(aStepName.CompareF(Kcancelnotifyrcommsmobilityapiext)==0)
+  				testStep = new Ccancelnotifyrcommsmobilityapiext(iEsockTest);
+
+	// Data monitoring
+	else if(aStepName.CompareF (KOpenRCommsDataMonitoringApiExtStep) == 0)
+				testStep = new COpenRCommsDataMonitoringApiExtStep(iEsockTest);
+	else if(aStepName.CompareF (KRequestDataTransferredStep) == 0)
+				testStep = new CRequestDataTransferredStep(iEsockTest);
+	else if(aStepName.CompareF (KCloseRCommsDataMonitoringApiExtStep) == 0)
+				testStep = new CCloseRCommsDataMonitoringApiExtStep(iEsockTest);
+	else if(aStepName.CompareF (KReceiveDataReceivedNotificationStep) == 0)
+				testStep = new CReceiveDataReceivedNotificationStep(iEsockTest);
+	else if(aStepName.CompareF (KReceiveDataSentNotificationStep) == 0)
+				testStep = new CReceiveDataSentNotificationStep(iEsockTest);
+	else if(aStepName.CompareF (KCancelDataReceivedNotificationStep) == 0)
+				testStep = new CCancelDataReceivedNotificationStep(iEsockTest);
+	else if(aStepName.CompareF (KCancelDataSentNotificationStep) == 0)
+				testStep = new CCancelDataSentNotificationStep(iEsockTest);
+	else if(aStepName.CompareF (KRequestDataReceivedNotificationStep) == 0)
+				testStep = new CRequestDataReceivedNotificationStep(iEsockTest);
+	else if(aStepName.CompareF (KRequestDataSentNotificationStep) == 0)
+				testStep = new CRequestDataSentNotificationStep(iEsockTest);
+
+#ifdef __1060_TESTCODE__
+	// Mobility
+	else if(aStepName.CompareF (KregisterformobilitynotificationStep) == 0)
+				testStep = new CregisterformobilitynotificationStep(iEsockTest);
+
+	else if(aStepName.CompareF (KChangeBearerAvailabilityStep) == 0)
+				testStep = new CChangeBearerAvailabilityStep(iEsockTest);
+	else if(aStepName.CompareF (KCSelectRConnectionStep) == 0)
+				testStep = new CSelectRConnectionStep(iEsockTest);
+
+	else if(aStepName.CompareF (KGetAvailabilityAPIStep) == 0)
+				testStep = new CGetAvailabilityAPIStep(iEsockTest);
+	else if(aStepName.CompareF (KRegisterForAvailabilityNotificationStep) == 0)
+				testStep = new CRegisterForAvailabilityNotificationStep(iEsockTest);
+	else if(aStepName.CompareF (KCheckForAvailabilityStep) == 0)
+				testStep = new CCheckForAvailabilityStep(iEsockTest);
+
+	else if(aStepName.CompareF (KConfirmSocketDataTransferStep) == 0)
+				testStep = new CConfirmSocketDataTransferStep(iEsockTest);
+	else if(aStepName.CompareF (KCreateBearerAvailabilitySimulatorStep) == 0)
+				testStep = new CCreateBearerAvailabilitySimulatorStep(iEsockTest);
+#endif
+
+	// ESock debug control based test steps
+	NEW_ESOCK_TESTSTEP(AppendMessageInterceptPattern)
+	NEW_ESOCK_TESTSTEP(EnableMessageInterceptRegister)
+	NEW_ESOCK_TESTSTEP(DisableMessageInterceptRegister)
+	NEW_ESOCK_TESTSTEP(ResetMessageInterceptRegister)
+	NEW_ESOCK_TESTSTEP(QueryMsgInterceptComplete)
+	// RConnectionServ API
+	NEW_ESOCK_TESTSTEP(CreateRConnectionServStep)
+	NEW_ESOCK_TESTSTEP(ConnectRConnectionServStep)
+	NEW_ESOCK_TESTSTEP(RConnectionServApiExtStep)
+	NEW_ESOCK_TESTSTEP(CloseRConnectionServStep)
+	NEW_ESOCK_TESTSTEP(AccessPointStatusQueryStep)
+	NEW_ESOCK_TESTSTEP(CancelAccessPointStatusQueryStep)
+	NEW_ESOCK_TESTSTEP(RequestAccessPointNotificationStep)
+	NEW_ESOCK_TESTSTEP(ReceiveAccessPointNotificationStep)
+	NEW_ESOCK_TESTSTEP(CancelAccessPointNotificationStep)
+	NEW_ESOCK_TESTSTEP(RequestMBMSNtfnStep)
+	NEW_ESOCK_TESTSTEP(ReceiveMBMSNtfnStep)
+	NEW_ESOCK_TESTSTEP(CancelMBMSNtfnStep)
+	// Availability control
+	NEW_ESOCK_TESTSTEP(SetAccessPointAvailabilityStep)
+	NEW_ESOCK_TESTSTEP(SetPppAccessPointAvailabilityStep)
+	NEW_ESOCK_TESTSTEP(SetWifiAccessPointAvailabilityStep)
+
+	NEW_ESOCK_TESTSTEP(EnumerateConnectionsStep)
+	// Commsdat helper tests
+	NEW_ESOCK_TESTSTEP(DeleteCommsdatRecordStep)
+	NEW_ESOCK_TESTSTEP(CreateCommsdatRecordStep)
+	NEW_ESOCK_TESTSTEP(UpdateCommsdatRecordStep)
+
+	NEW_ESOCK_TESTSTEP(InitialiseDummyProtocolParameterSetStep)
+
+	// Sockets
+	NEW_ESOCK_TESTSTEP(SendReceiveIoctlStep)
+	NEW_ESOCK_TESTSTEP(SocketProtocolDescriptionStep)
+	NEW_ESOCK_TESTSTEP(SocketGetOptionStep)
+
+	// Socket server
+	NEW_ESOCK_TESTSTEP(SocketServerNumProtocolsStep)
+	NEW_ESOCK_TESTSTEP(SocketServerFindProtocolStep)
+	NEW_ESOCK_TESTSTEP(SocketServerGetProtocolInfoStep)
+	NEW_ESOCK_TESTSTEP(SocketServerStartProtocolStep)
+	NEW_ESOCK_TESTSTEP(SocketServerStopProtocolStep)
+
+	// General
+	NEW_ESOCK_TESTSTEP(CompareIntegerValuesStep)
+
+	NEW_ESOCK_TESTSTEP(RegisterProgressNotificationStep)
+	NEW_ESOCK_TESTSTEP(CheckProgressNotificationStep)
+	NEW_ESOCK_TESTSTEP(CheckNegativeProgressNotificationStep)
+	return testStep;
+	}
+
+/**
+Returns server name based on the EKA version
+@internalTechnology
+@test
+@return		Descriptor containing the servername
+*/
+const TPtrC CTe_esockteststepsSuite::ServerName() const
+	{
+	// On EKA2, test server runs in its own process.
+	// So we arrive at the server name using the exe from which it is loaded.
+	// This is useful when doing cap tests, as we create duplicate exe's using setcap then.
+	TParsePtrC serverName(RProcess().FileName());
+	return serverName.Name();
+	}
+