datacommsserver/esockserver/test/TE_ESock/TestSuiteEsock.cpp
changeset 0 dfb7c4ff071f
child 25 9d7ce34704c8
equal deleted inserted replaced
-1:000000000000 0:dfb7c4ff071f
       
     1 // Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
       
     2 // All rights reserved.
       
     3 // This component and the accompanying materials are made available
       
     4 // under the terms of "Eclipse Public License v1.0"
       
     5 // which accompanies this distribution, and is available
       
     6 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     7 //
       
     8 // Initial Contributors:
       
     9 // Nokia Corporation - initial contribution.
       
    10 //
       
    11 // Contributors:
       
    12 //
       
    13 // Description:
       
    14 // This main DLL entry point for the TE_ESock.dll
       
    15 // 
       
    16 //
       
    17 
       
    18 
       
    19 
       
    20 // EPOC includes
       
    21 #include <e32base.h>
       
    22 
       
    23 // Test system includes
       
    24 #include "TestSuiteEsock.h"
       
    25 #include "esockopenserver.h"
       
    26 #include "EsockCloseServer.h"
       
    27 #include "EsockTestSection1.h"
       
    28 #include "EsockTestSection2.h"
       
    29 #include "EsockTestSection3.h"
       
    30 #include "EsockTestSection4.h"
       
    31 #include "EsockTestSection5.h"
       
    32 #include "EsockTestSection6.h"
       
    33 #include "EsockTestSection7.h"
       
    34 #include "EsockTestSection8.h"
       
    35 #include "EsockTestSection9.h"
       
    36 #include "EsockTestSection10.h"
       
    37 #include "EsockTestSection11.h"
       
    38 #include "EsockTestSection12.h"
       
    39 #include "EsockTestSection13.h"
       
    40 #include "EsockTestSection14.h"
       
    41 #include "EsockTestSection15.h"
       
    42 #include "EsockTestSection16.h"
       
    43 #include "EsockTestSection17.h"
       
    44 #include "EsockTestSection18.h"
       
    45 #include "EsockTestSection19.h"
       
    46 #include "EsockTestSection20.h"
       
    47 #include "EsockTestSection21.h"
       
    48 #include "EsockTestSection22.h"
       
    49 #include "EsockTestSection23.h"
       
    50 #include "EsockTestSection24.h"
       
    51 #include "EsockTestSection25.h"
       
    52 #include "EsockTestSection26.h"
       
    53 #include "EsockTestSection27.h"
       
    54 #include "EsockTestSection28.h"
       
    55 #include "EsockTestSection29.h"
       
    56 
       
    57 _LIT(KServerName,"TE_ESock");
       
    58 
       
    59 CTestSuiteEsock* CTestSuiteEsock::NewL()
       
    60 /**
       
    61 * @return - Instance of the test server
       
    62 * Called inside the MainL() function to create and start the
       
    63 * CTestServer derived server.
       
    64 */
       
    65 	{
       
    66 	CTestSuiteEsock * server = new (ELeave) CTestSuiteEsock();
       
    67 	CleanupStack::PushL(server);
       
    68 	
       
    69 	// Either use a StartL or ConstructL, the latter will permit
       
    70 	// Server Logging.
       
    71 	
       
    72 	//server->StartL(KServerName); 
       
    73 	server->ConstructL(KServerName);
       
    74 	server->InitialiseL();
       
    75 	CleanupStack::Pop(server);
       
    76 	return server;
       
    77 	}
       
    78 
       
    79 // Third phase constructor for ESOCK test suite
       
    80 void CTestSuiteEsock::InitialiseL( void )
       
    81 	{
       
    82 	TInt ret = User::LoadPhysicalDevice( PDD_NAME );
       
    83 	if ( KErrNone != ret && KErrAlreadyExists != ret )
       
    84 		{
       
    85 		User::Leave( ret );
       
    86 		}
       
    87 	ret = User::LoadLogicalDevice( LDD_NAME );
       
    88 	if ( KErrNone != ret && KErrAlreadyExists != ret )
       
    89 		{
       
    90 		User::Leave( ret );
       
    91 		}
       
    92 	// When bootstrapping C32 we have to avoid the PhBkSyncServer being started, since
       
    93 	// it needs a different CommDB
       
    94 	_LIT(KPhbkSyncCMI, "phbsync.cmi");
       
    95     ret = StartC32WithCMISuppressions(KPhbkSyncCMI);
       
    96 	if ( KErrNone != ret && KErrAlreadyExists != ret )
       
    97 		{
       
    98 		User::Leave( ret );
       
    99 		}
       
   100 
       
   101 	iTestSuiteHeap = &User::Heap();
       
   102 	}
       
   103 
       
   104 
       
   105 // EKA2 much simpler
       
   106 // Just an E32Main and a MainL()
       
   107 LOCAL_C void MainL()
       
   108 /**
       
   109 * Much simpler, uses the new Rendezvous() call to sync with the client
       
   110 */
       
   111 	{
       
   112 	// Leave the hooks in for platform security
       
   113 #if (defined __DATA_CAGING__)
       
   114 	RProcess().DataCaging(RProcess::EDataCagingOn);
       
   115 	RProcess().SecureApi(RProcess::ESecureApiOn);
       
   116 #endif
       
   117 	CActiveScheduler* sched=NULL;
       
   118 	sched=new(ELeave) CActiveScheduler;
       
   119 	CActiveScheduler::Install(sched);
       
   120 	
       
   121 	CTestSuiteEsock* testsuite = NULL;
       
   122 	// Create the CTestServer derived server
       
   123 	
       
   124 	TRAPD(err, testsuite=CTestSuiteEsock::NewL());
       
   125 	if(!err)
       
   126 		{
       
   127 		// Sync with the client and enter the active scheduler
       
   128 		RProcess::Rendezvous(KErrNone);
       
   129 		sched->Start();
       
   130 		}
       
   131 	delete testsuite;
       
   132 	delete sched;
       
   133 	}
       
   134 
       
   135 
       
   136 GLDEF_C TInt E32Main()
       
   137 /**
       
   138 * @return - Standard Epoc error code on exit
       
   139 */
       
   140 	{
       
   141 	CTrapCleanup* cleanup = CTrapCleanup::New();
       
   142 	if(cleanup == NULL)
       
   143 		{
       
   144 		return KErrNoMemory;
       
   145 		}
       
   146 	TRAP_IGNORE(MainL());
       
   147 	delete cleanup;
       
   148 	return KErrNone;
       
   149     }
       
   150 
       
   151 // destructor
       
   152 CTestSuiteEsock::~CTestSuiteEsock()
       
   153 	{
       
   154 	// Delete all the sockets we made
       
   155 	while(GetSocketListCount())
       
   156 		{
       
   157 		CloseSocket(GetSocketListCount());
       
   158 		}
       
   159 	
       
   160 	//	delete iSocketList;
       
   161 	iSocketArray.Close();
       
   162 	}
       
   163 
       
   164 
       
   165 void CTestSuiteEsock::CloseSocket(TInt aIndex)
       
   166 	{
       
   167 	const TInt realIndex = aIndex-1;
       
   168 	
       
   169 	iSocketArray[realIndex].Close();
       
   170 	iSocketArray.Remove(realIndex);
       
   171 	}
       
   172 
       
   173 
       
   174 /**
       
   175 Adds the supplied RSocket reference to the suite's socket container
       
   176 @param RSocket& reference to (just opened) RSocket
       
   177 @return KErrNone if reference successfully added to container, otherwise one of the system error codes.
       
   178  */
       
   179 TInt CTestSuiteEsock::AddSocketToList(RSocket& aSocket)
       
   180 	{
       
   181 	RHeap* testStepHeap = User::SwitchHeap(iTestSuiteHeap);
       
   182 	TInt res = iSocketArray.Append(aSocket);
       
   183 	(void)User::SwitchHeap(testStepHeap);
       
   184 	return res;
       
   185 	}
       
   186 
       
   187 
       
   188 TInt CTestSuiteEsock::AddSocketToListL(RSocket& aSocket)
       
   189 	{
       
   190 	User::LeaveIfError(AddSocketToList(aSocket));
       
   191 	return iSocketArray.Count();
       
   192 	}
       
   193 
       
   194 
       
   195 TInt CTestSuiteEsock::GetSocketListCount()
       
   196 	{
       
   197 	//	return iSocketList->Count();
       
   198 	return iSocketArray.Count();
       
   199 	}
       
   200 
       
   201 
       
   202 RSocket& CTestSuiteEsock::GetSocketHandle(TInt aIndex)
       
   203 	{
       
   204 	return iSocketArray[aIndex-1];
       
   205 	}
       
   206 
       
   207 
       
   208 // make a version string available for test system 
       
   209 
       
   210 TPtrC CTestSuiteEsock::GetVersion( void )
       
   211 	{
       
   212 	
       
   213 #ifdef _DEBUG
       
   214 	_LIT(KTxtVersion,"1.007 (udeb)");
       
   215 #else
       
   216 	_LIT(KTxtVersion,"1.007");
       
   217 #endif
       
   218 	
       
   219 	return KTxtVersion();
       
   220 	}
       
   221 
       
   222 CTestStep* CTestSuiteEsock::CreateTestStep(const TDesC& aStepName)
       
   223 /**
       
   224 * @return - A CTestStep derived instance
       
   225 * Implementation of CTestServer pure virtual
       
   226 */
       
   227 	{
       
   228 	START_TEST_STEP_LIST
       
   229 		// add test steps
       
   230 		ADD_TEST_STEP(CEsockTest1_1 )
       
   231 		ADD_TEST_STEP(CEsockTest1_2 )
       
   232 		ADD_TEST_STEP(CEsockTest1_3 )
       
   233 		ADD_TEST_STEP(CEsockTest1_4 )
       
   234 		ADD_TEST_STEP(CEsockTest1_5 )
       
   235 		ADD_TEST_STEP(CEsockTest1_6 )
       
   236 		ADD_TEST_STEP(CEsockTest1_7 )
       
   237 		ADD_TEST_STEP(CEsockTest1_8 )
       
   238 		ADD_TEST_STEP(CEsockTest1_9 )
       
   239 		ADD_TEST_STEP(CEsockTest1_10 )
       
   240 		ADD_TEST_STEP(CEsockTest1_11 )
       
   241 		ADD_TEST_STEP(CEsockTest1_12 )
       
   242 		ADD_TEST_STEP(CEsockTest1_13 )
       
   243 		ADD_TEST_STEP(CEsockTest1_14 )
       
   244 		ADD_TEST_STEP(CEsockTest1_15 )
       
   245 		ADD_TEST_STEP(CEsockTest1_16 )
       
   246 		ADD_TEST_STEP(CEsockTest1_17 )
       
   247 		ADD_TEST_STEP(CEsockTest2_1 )
       
   248 		ADD_TEST_STEP(CEsockTest2_2 )
       
   249 		ADD_TEST_STEP(CEsockTest2_3 )
       
   250 		ADD_TEST_STEP(CEsockTest2_4 )
       
   251 		ADD_TEST_STEP(CEsockTest2_5 )
       
   252 		ADD_TEST_STEP(CEsockTest3_1 )
       
   253 		ADD_TEST_STEP(CEsockTest3_2 )
       
   254 		ADD_TEST_STEP(CEsockTest3_3 )
       
   255 		ADD_TEST_STEP(CEsockTest3_4 )
       
   256 		ADD_TEST_STEP(CEsockTest3_5 )
       
   257 		ADD_TEST_STEP(CEsockTest3_6 )
       
   258 		ADD_TEST_STEP(CEsockTest4_1 )
       
   259 		ADD_TEST_STEP(CEsockTest4_2 )
       
   260 		ADD_TEST_STEP(CEsockTest5_1 )
       
   261 		ADD_TEST_STEP(CEsockTest5_2 )
       
   262 		ADD_TEST_STEP(CEsockTest5_3 )
       
   263 		ADD_TEST_STEP(CEsockTest5_4 )
       
   264 		ADD_TEST_STEP(CEsockTest5_5 )
       
   265 		ADD_TEST_STEP(CEsockTest5_6 )
       
   266 		ADD_TEST_STEP(CEsockTest5_7 )
       
   267 		ADD_TEST_STEP(CEsockTest5_8 )
       
   268 		ADD_TEST_STEP(CEsockTest5_9 )
       
   269 		ADD_TEST_STEP(CEsockTest6_1 )
       
   270 		ADD_TEST_STEP(CEsockTest6_2 )
       
   271 		ADD_TEST_STEP(CEsockTest6_3 )
       
   272 		ADD_TEST_STEP(CEsockTest6_4 )
       
   273 		ADD_TEST_STEP(CEsockTest6_5 )
       
   274 		ADD_TEST_STEP(CEsockTest6_6 )
       
   275 		ADD_TEST_STEP(CEsockTest6_7 )
       
   276 		ADD_TEST_STEP(CEsockTest6_8 )
       
   277 		ADD_TEST_STEP(CEsockTest7_1 )
       
   278 		ADD_TEST_STEP(CEsockTest7_2 )
       
   279 		ADD_TEST_STEP(CEsockTest7_3 )
       
   280 		ADD_TEST_STEP(CEsockTest7_4 )
       
   281 		ADD_TEST_STEP(CEsockTest7_5 )
       
   282 		ADD_TEST_STEP(CEsockTest7_6 )
       
   283 		ADD_TEST_STEP(CEsockTest7_7 )
       
   284 		ADD_TEST_STEP(CEsockTest8_1 )
       
   285 		ADD_TEST_STEP(CEsockTest8_2 )
       
   286 		ADD_TEST_STEP(CEsockTest8_3 )
       
   287 		ADD_TEST_STEP(CEsockTest8_4 )
       
   288 		ADD_TEST_STEP(CEsockTest8_5 )
       
   289 		ADD_TEST_STEP(CEsockTest8_6 )
       
   290 		ADD_TEST_STEP(CEsockTest8_7 )
       
   291 		ADD_TEST_STEP(CEsockTest8_8 )
       
   292 		ADD_TEST_STEP(CEsockTest8_9 )
       
   293 		ADD_TEST_STEP(CEsockTest8_10 )
       
   294 		ADD_TEST_STEP(CEsockTest8_13 )
       
   295 		ADD_TEST_STEP(CEsockTest8_14 )
       
   296 		ADD_TEST_STEP(CEsockTest8_15 )
       
   297 		ADD_TEST_STEP(CEsockTest8_16 )
       
   298 		ADD_TEST_STEP(CEsockTest9_1 )
       
   299 		ADD_TEST_STEP(CEsockTest9_2 )
       
   300 		ADD_TEST_STEP(CEsockTest9_3 )
       
   301 		ADD_TEST_STEP(CEsockTest9_4 )
       
   302 		ADD_TEST_STEP(CEsockTest9_5 )
       
   303 		ADD_TEST_STEP(CEsockTest9_6 )
       
   304 		ADD_TEST_STEP(CEsockTest10_1 )
       
   305 		ADD_TEST_STEP(CEsockTest10_2 )
       
   306 		ADD_TEST_STEP(CEsockTest10_3 )
       
   307 		ADD_TEST_STEP(CEsockTest11_1 )
       
   308 		ADD_TEST_STEP(CEsockTest11_2 )
       
   309 		ADD_TEST_STEP(CEsockTest11_3 )
       
   310 		ADD_TEST_STEP(CEsockTest11_4 )
       
   311 		ADD_TEST_STEP(CEsockTest12_1 )
       
   312 		ADD_TEST_STEP(CEsockTest12_2 )
       
   313 		ADD_TEST_STEP(CEsockTest12_3 )
       
   314 		ADD_TEST_STEP(CEsockTest12_4 )
       
   315 		ADD_TEST_STEP(CEsockTest13_1 )
       
   316 		ADD_TEST_STEP(CEsockTest13_2 )
       
   317 		ADD_TEST_STEP(CEsockTest14_1 )
       
   318 		ADD_TEST_STEP(CEsockTest14_2 )
       
   319 		ADD_TEST_STEP(CEsockTest14_3 )
       
   320 		ADD_TEST_STEP(CEsockTest14_4 )
       
   321 		ADD_TEST_STEP(CEsockTest15_1 )
       
   322 		ADD_TEST_STEP(CEsockTest15_2 )
       
   323 		ADD_TEST_STEP(CEsockTest15_3 )
       
   324 		ADD_TEST_STEP(CEsockTest16_1 )
       
   325 		ADD_TEST_STEP(CEsockTest16_2 )
       
   326 		ADD_TEST_STEP(CEsockTest16_3 )
       
   327 		ADD_TEST_STEP(CEsockTest16_4 )
       
   328 		ADD_TEST_STEP(CEsockTest16_5 )
       
   329 		ADD_TEST_STEP(CEsockTest17_1 )
       
   330 		ADD_TEST_STEP(CEsockTest17_2 )
       
   331 		ADD_TEST_STEP(CEsockTest17_3 )
       
   332 		ADD_TEST_STEP(CEsockTest17_4 )
       
   333 		ADD_TEST_STEP(CEsockTest17_5 )
       
   334 		ADD_TEST_STEP(CEsockTest17_6 )
       
   335 		ADD_TEST_STEP(CEsockTest17_7 )
       
   336 		ADD_TEST_STEP(CEsockTest17_8 )
       
   337 		ADD_TEST_STEP(CEsockTest17_9 )
       
   338 		ADD_TEST_STEP(CEsockTest17_10 )
       
   339 		ADD_TEST_STEP(CEsockTest18_1 )
       
   340 		ADD_TEST_STEP(CEsockTest19_1 )
       
   341 		ADD_TEST_STEP(CEsockTest19_2 )
       
   342 		ADD_TEST_STEP(CEsockTest19_3 )
       
   343 		ADD_TEST_STEP(CEsockTest19_4 )
       
   344 		ADD_TEST_STEP(CEsockTest19_5 )
       
   345 		ADD_TEST_STEP(CEsockTest19_6 )
       
   346 		ADD_TEST_STEP(CEsockTest19_7 )
       
   347 		ADD_TEST_STEP(CEsockTest19_8 )
       
   348 		ADD_TEST_STEP(CEsockTest19_9 )
       
   349 		ADD_TEST_STEP(CEsockTest20_1 )
       
   350 		ADD_TEST_STEP(CEsockTest20_2 )
       
   351 		ADD_TEST_STEP(CEsockTest20_3 )
       
   352 		ADD_TEST_STEP(CEsockTest20_4 )
       
   353 		ADD_TEST_STEP(CEsockTest21_1 )
       
   354 		ADD_TEST_STEP(CEsockTest21_2 )
       
   355 		ADD_TEST_STEP(CEsockTest21_3 )
       
   356 		ADD_TEST_STEP(CEsockTest22_1 )
       
   357 		ADD_TEST_STEP(CEsockTest23_1 )
       
   358 		ADD_TEST_STEP(CEsockTest23_2 )
       
   359 		ADD_TEST_STEP(CEsockTest23_3 )
       
   360 		ADD_TEST_STEP(CEsockTest23_4 )
       
   361 		ADD_TEST_STEP(CEsockTest23_5 )
       
   362 		ADD_TEST_STEP(CEsockTest23_6 )
       
   363 		ADD_TEST_STEP(CEsockTest23_7 )	
       
   364 		ADD_TEST_STEP(CEsockTest23_8 )
       
   365 		ADD_TEST_STEP(CEsockTest23_9 )
       
   366 		ADD_TEST_STEP(CEsockTest23_10 )
       
   367 		ADD_TEST_STEP(CEsockTest24_1 )
       
   368 		ADD_TEST_STEP(CEsockTest24_2 )
       
   369 		ADD_TEST_STEP(CEsockTest25_1 )
       
   370 		ADD_TEST_STEP(CEsockTest25_2 )
       
   371 		ADD_TEST_STEP(CEsockTest25_3 )
       
   372 		ADD_TEST_STEP(CEsockTest25_4 )
       
   373 		ADD_TEST_STEP(CEsockTest25_5 )
       
   374 		
       
   375 		ADD_TEST_STEP(CEsockTest26_1 )
       
   376 		ADD_TEST_STEP(CEsockTest26_2 )
       
   377 		ADD_TEST_STEP(CEsockTest26_3 )
       
   378 		ADD_TEST_STEP(CEsockTest26_4 )
       
   379 		ADD_TEST_STEP(CEsockTest26_5 )
       
   380 		ADD_TEST_STEP(CEsockTest26_6 )
       
   381 		ADD_TEST_STEP(CEsockTest26_7 )
       
   382 		
       
   383 		ADD_TEST_STEP(CEsockTest27_1 )
       
   384 		ADD_TEST_STEP(CEsockTest27_2 )
       
   385 		ADD_TEST_STEP(CEsockTest27_3 )
       
   386 		ADD_TEST_STEP(CEsockTest27_4 )
       
   387 		ADD_TEST_STEP(CEsockTest27_5 )
       
   388 		ADD_TEST_STEP(CEsockTest27_6 )
       
   389 		
       
   390 		ADD_TEST_STEP(CEsockTest27_1_ExplConn)
       
   391 		ADD_TEST_STEP(CEsockTest27_1_MThread)
       
   392 		
       
   393 		
       
   394 		ADD_TEST_STEP(CEsockTest28_1 )
       
   395 		ADD_TEST_STEP(CEsockTest28_2 )
       
   396 		
       
   397 		ADD_TEST_STEP(CEsockTest29)
       
   398 		ADD_TEST_STEP(CEsockTest29_10)
       
   399 		ADD_TEST_STEP(CEsockTest29_11)
       
   400 		
       
   401 		ADD_TEST_STEP(CEsockOpenServer )
       
   402 		ADD_TEST_STEP(CEsockCloseServer )
       
   403 		
       
   404 		ADD_TEST_STEP(CEsockSendData )
       
   405 		ADD_TEST_STEP(CEsockOpenUdpSocket )
       
   406 		ADD_TEST_STEP(CEsockSendUdpData )
       
   407 		ADD_TEST_STEP(CEsockSendTcpData )
       
   408 	END_TEST_STEP_LIST
       
   409     }
       
   410 		
       
   411