os/persistentdata/traceservices/commsdebugutility/TE_commsdebugutility/src/step_007_xx.cpp
author sl@SLION-WIN7.fritz.box
Fri, 15 Jun 2012 03:10:57 +0200
changeset 0 bde4ae8d615e
permissions -rw-r--r--
First public contribution.
sl@0
     1
// Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies).
sl@0
     2
// All rights reserved.
sl@0
     3
// This component and the accompanying materials are made available
sl@0
     4
// under the terms of "Eclipse Public License v1.0"
sl@0
     5
// which accompanies this distribution, and is available
sl@0
     6
// at the URL "http://www.eclipse.org/legal/epl-v10.html".
sl@0
     7
//
sl@0
     8
// Initial Contributors:
sl@0
     9
// Nokia Corporation - initial contribution.
sl@0
    10
//
sl@0
    11
// Contributors:
sl@0
    12
//
sl@0
    13
// Description:
sl@0
    14
// This contains Flogger Unit Test Case 007.xx
sl@0
    15
sl@0
    16
// EPOC includes
sl@0
    17
#include <e32base.h>
sl@0
    18
sl@0
    19
// Test system includes
sl@0
    20
#include <comms-infras/commsdebugutility.h>
sl@0
    21
#include <f32file.h>
sl@0
    22
sl@0
    23
sl@0
    24
//User includes
sl@0
    25
#include "teststepcomsdbg.h"
sl@0
    26
#include "step_007_xx.h"
sl@0
    27
sl@0
    28
sl@0
    29
/**
sl@0
    30
* Function  Name	: CFloggerTest007_01
sl@0
    31
* Input parameters	: None
sl@0
    32
* Output parameters : None
sl@0
    33
* Description		: This is the constructor
sl@0
    34
*/
sl@0
    35
sl@0
    36
CFloggerTest007_01::CFloggerTest007_01()
sl@0
    37
	{
sl@0
    38
	// store the name of this test case
sl@0
    39
	SetTestStepName(_L("step_007_01"));
sl@0
    40
	
sl@0
    41
	}
sl@0
    42
	
sl@0
    43
sl@0
    44
/**
sl@0
    45
* Function  Name	:~ CFloggerTest007_01
sl@0
    46
* Input parameters	: None
sl@0
    47
* Output parameters : None
sl@0
    48
* Description		: This is the Destructor
sl@0
    49
*/
sl@0
    50
sl@0
    51
sl@0
    52
CFloggerTest007_01::~CFloggerTest007_01()
sl@0
    53
	{
sl@0
    54
sl@0
    55
	}
sl@0
    56
sl@0
    57
sl@0
    58
/**
sl@0
    59
* Function  Name	: doTestStepL
sl@0
    60
* Input parameters	: None
sl@0
    61
* Output parameters : TVerdict 
sl@0
    62
* Description		: This function returns weather the test case 007_01 has 
sl@0
    63
*					  passed or failed
sl@0
    64
*/
sl@0
    65
sl@0
    66
sl@0
    67
TVerdict CFloggerTest007_01::doTestStepL( )
sl@0
    68
	{
sl@0
    69
sl@0
    70
	INFO_PRINTF1(_L("Step 007.01 called "));
sl@0
    71
	
sl@0
    72
	if ( executeStepL(EFalse) == KErrNone )
sl@0
    73
		SetTestStepResult(EPass);
sl@0
    74
sl@0
    75
	else
sl@0
    76
		SetTestStepResult(EFail);
sl@0
    77
sl@0
    78
	
sl@0
    79
	User::After(KTimeForDisplay);
sl@0
    80
	return TestStepResult();
sl@0
    81
	
sl@0
    82
	}
sl@0
    83
sl@0
    84
/**
sl@0
    85
* Function  Name		: executeStepL
sl@0
    86
* Input parameters		: None
sl@0
    87
* Output parameters		: TInt 
sl@0
    88
* Description 			: This function writes the test data in to the log file 
sl@0
    89
*						  This function check the test message is present in the 
sl@0
    90
						  log file  or not.
sl@0
    91
sl@0
    92
*/
sl@0
    93
sl@0
    94
sl@0
    95
TInt CFloggerTest007_01::executeStepL(TBool heapTest)
sl@0
    96
	{
sl@0
    97
	User::After(KTimeToLog);
sl@0
    98
	TInt ret = KErrGeneral;
sl@0
    99
	ret = DoTestConnect();
sl@0
   100
	if (ret == KErrNone)
sl@0
   101
		{
sl@0
   102
		ret = DoTestWrite() ;
sl@0
   103
		if ( ret == KErrNone)
sl@0
   104
			{
sl@0
   105
			TRAPD(r, ret = DoTestCheckWriteL() );
sl@0
   106
			if ((heapTest) && ((ret == KErrNotFound) || (r != KErrNone)))
sl@0
   107
				{
sl@0
   108
				ret = KErrNoMemory;
sl@0
   109
				}
sl@0
   110
			else if (r != KErrNone)
sl@0
   111
				{
sl@0
   112
				ret = r;
sl@0
   113
				}
sl@0
   114
			}
sl@0
   115
		}
sl@0
   116
	iFlogger.Close();
sl@0
   117
sl@0
   118
//	if (ret == KErrNone)
sl@0
   119
	return ret;
sl@0
   120
	}
sl@0
   121
sl@0
   122
/**
sl@0
   123
* Function  Name		: executeStepL
sl@0
   124
* Input parameters		: None
sl@0
   125
* Output parameters		: TInt 
sl@0
   126
* Description 			: This function writes the test data in to the log file 
sl@0
   127
*						  This function check the test message is present in the 
sl@0
   128
						  log file  or not.
sl@0
   129
sl@0
   130
*/
sl@0
   131
sl@0
   132
sl@0
   133
TInt CFloggerTest007_01::executeStepL()
sl@0
   134
	{
sl@0
   135
	return KErrGeneral;
sl@0
   136
	}
sl@0
   137
sl@0
   138
sl@0
   139
/******************************************************************
sl@0
   140
* Function  Name		: DoTestWrite
sl@0
   141
* Input parameters		: None
sl@0
   142
* Output parameters		: TInt 
sl@0
   143
* Description 			: This function writes the data to the file logger
sl@0
   144
*
sl@0
   145
*/
sl@0
   146
sl@0
   147
sl@0
   148
TInt CFloggerTest007_01::DoTestWrite()
sl@0
   149
	{	
sl@0
   150
	_LIT8(KTestMessage,"TC 7_01: Just for compalation"); //8 bit test decriptor
sl@0
   151
	iFlogger.Write(KTestMessage); //Writes a 8 bit test descriptor
sl@0
   152
	
sl@0
   153
	ForceLogFlush(iFlogger);
sl@0
   154
	return KErrNone; 
sl@0
   155
	}
sl@0
   156
sl@0
   157
sl@0
   158
sl@0
   159
/******************************************************************
sl@0
   160
* Function  Name		: DoTestCheckWriteL
sl@0
   161
* Input parameters		: None
sl@0
   162
* Output parameters		: TInt 
sl@0
   163
* Description 			: This function checks the weather test data was written
sl@0
   164
*						  in to the log file by DoTestWriteL() or not.
sl@0
   165
					  
sl@0
   166
*/
sl@0
   167
sl@0
   168
sl@0
   169
TInt CFloggerTest007_01::DoTestCheckWriteL()
sl@0
   170
	{
sl@0
   171
	User::After(KTimeToLog);
sl@0
   172
	RFile theFile;
sl@0
   173
	HBufC8 * hBuffer;
sl@0
   174
	TInt listfilesize;
sl@0
   175
	TInt returnCode;
sl@0
   176
	RFs fileSystem; //For file operation create a file system	
sl@0
   177
	TBuf8<256> testData; //To hold the test descriptor
sl@0
   178
	_LIT(KLogFile,"c:\\logs\\log.txt"); // the log file path
sl@0
   179
sl@0
   180
	_LIT8(KTestMessage,"TC 7_01: Just for compalation"); //8 bit test decriptor
sl@0
   181
sl@0
   182
	_LIT8(KOOMError, "#Logs may be lost out of memory!!"); //Error message
sl@0
   183
sl@0
   184
	User::LeaveIfError(fileSystem.Connect()); //connect to file server
sl@0
   185
	
sl@0
   186
	//Open the file in the read mode
sl@0
   187
	User::LeaveIfError(theFile.Open(fileSystem,KLogFile,EFileRead));
sl@0
   188
sl@0
   189
	CleanupClosePushL(theFile);
sl@0
   190
sl@0
   191
	returnCode = theFile.Size(listfilesize); //Size of the file
sl@0
   192
	hBuffer = HBufC8::New(listfilesize); //Allocate the buffer
sl@0
   193
	CleanupStack::PushL(hBuffer);
sl@0
   194
	TPtr8 ptrString = hBuffer->Des();  ; //To hold the buffer
sl@0
   195
sl@0
   196
	// Read from position 0: start of file
sl@0
   197
	returnCode = theFile.Read(ptrString);
sl@0
   198
	
sl@0
   199
	testData.Copy(KTestMessage); //Copy the test descriptor
sl@0
   200
	returnCode = ptrString.Find(testData); //find the test descriptor in the buffer read
sl@0
   201
									//from the file
sl@0
   202
sl@0
   203
	if (returnCode == KErrNotFound)  //Find the error message
sl@0
   204
		{
sl@0
   205
		returnCode = ptrString.Find(KOOMError);
sl@0
   206
		if (returnCode > 0)
sl@0
   207
			User::Leave(KErrNoMemory);
sl@0
   208
		}
sl@0
   209
sl@0
   210
	
sl@0
   211
	CleanupStack::PopAndDestroy(hBuffer);
sl@0
   212
	CleanupStack::PopAndDestroy(); // For theFile object
sl@0
   213
	if (returnCode > 0)
sl@0
   214
		return KErrNone;
sl@0
   215
	else 
sl@0
   216
		return KErrNoMemory;
sl@0
   217
	}
sl@0
   218
sl@0
   219
sl@0
   220
sl@0
   221
/**
sl@0
   222
* Function  Name		: DoTestConnect
sl@0
   223
* Input parameters		: None
sl@0
   224
* Output parameters		: TInt 
sl@0
   225
* Description 			: This function establishes a connection to file logger
sl@0
   226
* 						  and sets the system and component name in file logger.
sl@0
   227
					  
sl@0
   228
*/
sl@0
   229
sl@0
   230
sl@0
   231
TInt CFloggerTest007_01::DoTestConnect()
sl@0
   232
	{
sl@0
   233
	TInt ret;
sl@0
   234
	TPtrC8 ptrSubSystem;
sl@0
   235
	TPtrC8 ptrComponent;
sl@0
   236
	ptrSubSystem.Set(_L8("SubSystem"));
sl@0
   237
	ptrComponent.Set(_L8("Component"));
sl@0
   238
sl@0
   239
	ret = iFlogger.Connect(); //Call connect() of Flogger
sl@0
   240
	if (ret == KErrNone)
sl@0
   241
		ret = iFlogger.SetLogTags(ptrSubSystem, ptrComponent); //SetLogTags() of Flogger called
sl@0
   242
sl@0
   243
//	if (ret == KErrNone)
sl@0
   244
//		ret = iFlogger.ClearLog(); //clear the contents from the log
sl@0
   245
	return ret;
sl@0
   246
	}
sl@0
   247
sl@0
   248
sl@0
   249
sl@0
   250
sl@0
   251
sl@0
   252
/**
sl@0
   253
* Function  Name	: CFloggerTest007_02
sl@0
   254
* Input parameters	: None
sl@0
   255
* Output parameters : None
sl@0
   256
* Description		: This is the constructor
sl@0
   257
*/
sl@0
   258
sl@0
   259
sl@0
   260
CFloggerTest007_02::CFloggerTest007_02()
sl@0
   261
	{
sl@0
   262
	// store the name of this test case
sl@0
   263
	SetTestStepName(_L("step_007_02"));
sl@0
   264
	}
sl@0
   265
sl@0
   266
sl@0
   267
/**
sl@0
   268
* Function  Name	:~ CFloggerTest007_02
sl@0
   269
* Input parameters	: None
sl@0
   270
* Output parameters : None
sl@0
   271
* Description		: This is the Destructor
sl@0
   272
*/
sl@0
   273
sl@0
   274
sl@0
   275
CFloggerTest007_02::~CFloggerTest007_02()
sl@0
   276
	{
sl@0
   277
	}
sl@0
   278
sl@0
   279
sl@0
   280
/**
sl@0
   281
* Function  Name	: doTestStepL
sl@0
   282
* Input parameters	: None
sl@0
   283
* Output parameters : TVerdict 
sl@0
   284
* Description		: This function returns weather the test case 007_02 has 
sl@0
   285
* 					  passed or failed
sl@0
   286
sl@0
   287
*/
sl@0
   288
sl@0
   289
sl@0
   290
TVerdict CFloggerTest007_02::doTestStepL( )
sl@0
   291
	{
sl@0
   292
	INFO_PRINTF1(_L("Step 007.02 called "));
sl@0
   293
		
sl@0
   294
	if ( executeStepL() == KErrNone )
sl@0
   295
		SetTestStepResult(EPass);
sl@0
   296
sl@0
   297
	else
sl@0
   298
		SetTestStepResult(EFail);
sl@0
   299
sl@0
   300
	
sl@0
   301
	User::After(KTimeForDisplay);
sl@0
   302
	return TestStepResult();
sl@0
   303
	}
sl@0
   304
sl@0
   305
sl@0
   306
sl@0
   307
/**
sl@0
   308
* Function  Name		: executeStepL
sl@0
   309
* Input parameters		: None
sl@0
   310
* Output parameters		: TInt 
sl@0
   311
* Description 			: This function writes the test data in to the log file 
sl@0
   312
* 						  This function check the test message is present in the 
sl@0
   313
* 						  log file 
sl@0
   314
sl@0
   315
*/
sl@0
   316
sl@0
   317
sl@0
   318
TInt CFloggerTest007_02::executeStepL()
sl@0
   319
	{
sl@0
   320
	TInt ret = KErrGeneral;
sl@0
   321
	
sl@0
   322
	ret = DoTestConnect();
sl@0
   323
	CleanupClosePushL(iFlogger);
sl@0
   324
	if (ret == KErrNone)
sl@0
   325
		ret = DoTestWrite();
sl@0
   326
		if (ret == KErrNone)
sl@0
   327
			ret = DoTestCheckWriteL();
sl@0
   328
	
sl@0
   329
	CleanupStack::PopAndDestroy();	//logger
sl@0
   330
	User::After(1000000);
sl@0
   331
	return ret;
sl@0
   332
	}
sl@0
   333
sl@0
   334
/**
sl@0
   335
* Function  Name		: executeStepL
sl@0
   336
* Input parameters		: None
sl@0
   337
* Output parameters		: TInt 
sl@0
   338
* Description 			: This function writes the test data in to the log file 
sl@0
   339
* 						  This function check the test message is present in the 
sl@0
   340
* 						  log file 
sl@0
   341
sl@0
   342
*/
sl@0
   343
sl@0
   344
sl@0
   345
TInt CFloggerTest007_02::executeStepL(TBool)
sl@0
   346
	{
sl@0
   347
	return KErrGeneral;
sl@0
   348
	}
sl@0
   349
sl@0
   350
/**
sl@0
   351
* Function  Name		: DoTestConnect
sl@0
   352
* Input parameters		: None
sl@0
   353
* Output parameters		: TInt 
sl@0
   354
* Description 			: This function establishes a connection to file logger
sl@0
   355
* 						  and sets the system and component name in file logger.
sl@0
   356
					  
sl@0
   357
*/
sl@0
   358
sl@0
   359
sl@0
   360
TInt CFloggerTest007_02::DoTestConnect()
sl@0
   361
	{
sl@0
   362
	TInt ret;
sl@0
   363
	TPtrC8 ptrSubSystem;
sl@0
   364
	TPtrC8 ptrComponent;
sl@0
   365
	ptrSubSystem.Set(_L8("SubSystem"));
sl@0
   366
	ptrComponent.Set(_L8("Component"));
sl@0
   367
sl@0
   368
	ret = iFlogger.Connect(); //Call connect() of Flogger
sl@0
   369
	if (ret == KErrNone)
sl@0
   370
		ret = iFlogger.SetLogTags(ptrSubSystem, ptrComponent); //SetLogTags() of Flogger called
sl@0
   371
sl@0
   372
	if (ret == KErrNone)
sl@0
   373
		ret = iFlogger.ClearLog(); //clear the contents from the log
sl@0
   374
sl@0
   375
	return ret;
sl@0
   376
	}
sl@0
   377
sl@0
   378
sl@0
   379
/**
sl@0
   380
* Function  Name		: DoTestWrite
sl@0
   381
* Input parameters		: None
sl@0
   382
* Output parameters		: TInt 
sl@0
   383
* Description 			: This function writes the data to the file logger
sl@0
   384
 
sl@0
   385
*/
sl@0
   386
sl@0
   387
sl@0
   388
TInt CFloggerTest007_02::DoTestWrite()
sl@0
   389
	{
sl@0
   390
	//KTestLongMessage contains a very long test message 
sl@0
   391
	_LIT(KTestLongMessage,"TC 7_02: This is the long message This is the long message This is the long message This is the long message This is the long message This is the long message This is the long message This is the long message This is the long message This is the long message This is the long message");
sl@0
   392
	iFlogger.Write(KTestLongMessage); 		
sl@0
   393
	ForceLogFlush(iFlogger);	
sl@0
   394
	return KErrNone; 
sl@0
   395
	}
sl@0
   396
sl@0
   397
sl@0
   398
/**
sl@0
   399
* Function  Name		: DoTestCheckWriteL
sl@0
   400
* Input parameters		: None
sl@0
   401
* Output parameters		: TInt 
sl@0
   402
* Description 			: This function checks the weather test data was written
sl@0
   403
*						  in to the log file by DoTestWriteL() or not.
sl@0
   404
					  
sl@0
   405
*/
sl@0
   406
sl@0
   407
sl@0
   408
TInt CFloggerTest007_02::DoTestCheckWriteL()
sl@0
   409
	{
sl@0
   410
	User::After(KTimeToLog);
sl@0
   411
	RFile theFile;
sl@0
   412
	HBufC8 * hBuffer;
sl@0
   413
	TInt listfilesize,returnCode;
sl@0
   414
	RFs fileSystem; //For file operation create a file system
sl@0
   415
	TBuf8<256> testData; //To hold the test descriptor
sl@0
   416
	_LIT(KLogFile,"c:\\logs\\log.txt"); // log file name and path
sl@0
   417
sl@0
   418
	//The following contains the string of length 200(max) 
sl@0
   419
	//which is  written to the log file
sl@0
   420
	//_LIT(KTestLongMessage, "This is the long message This is the long message This is the long message This is the long message This is the long message This is the long message This is the long message This is the long message");
sl@0
   421
	_LIT(KTestLongMessage, "TC 7_02: This is the long message This is the long message This is the long message This is the long message This is the long message This is the long message This is the long message This is the long");
sl@0
   422
	
sl@0
   423
	//_LIT8(KOOMError, "#Logs may be lost out of memory!!");
sl@0
   424
	
sl@0
   425
	User::LeaveIfError(fileSystem.Connect());
sl@0
   426
	
sl@0
   427
	//Open the file in the read mode
sl@0
   428
	User::LeaveIfError(theFile.Open(fileSystem,KLogFile,EFileRead)); 
sl@0
   429
sl@0
   430
	CleanupClosePushL(theFile);
sl@0
   431
sl@0
   432
	User::LeaveIfError(theFile.Size(listfilesize)); //Size of the file
sl@0
   433
	
sl@0
   434
	hBuffer = HBufC8::New(listfilesize); //Allocate the buffer
sl@0
   435
	CleanupStack::PushL(hBuffer);
sl@0
   436
sl@0
   437
	TPtr8 ptrString = hBuffer->Des();  ; //To hold the buffer
sl@0
   438
sl@0
   439
	// Read from position 0: start of file
sl@0
   440
	User::LeaveIfError(returnCode = theFile.Read(ptrString));
sl@0
   441
	
sl@0
   442
	testData.Copy(KTestLongMessage); //Copy the test descriptor
sl@0
   443
	returnCode = ptrString.Find(testData); //find the test descriptor in the buffer read
sl@0
   444
											//from the file
sl@0
   445
sl@0
   446
	
sl@0
   447
	CleanupStack::PopAndDestroy(hBuffer);
sl@0
   448
	CleanupStack::PopAndDestroy();	//theFile
sl@0
   449
	if (returnCode > 0)
sl@0
   450
		return KErrNone;
sl@0
   451
	else 
sl@0
   452
		return KErrGeneral;
sl@0
   453
	
sl@0
   454
sl@0
   455
}
sl@0
   456
sl@0
   457
sl@0
   458
sl@0
   459
sl@0
   460
sl@0
   461
sl@0
   462
/**
sl@0
   463
* Function  Name	: CFloggerTest007_03
sl@0
   464
* Input parameters	: None
sl@0
   465
* Output parameters : None
sl@0
   466
* Description		: This is the constructor
sl@0
   467
*/
sl@0
   468
sl@0
   469
sl@0
   470
CFloggerTest007_03::CFloggerTest007_03()
sl@0
   471
	{
sl@0
   472
	// store the name of this test case
sl@0
   473
	SetTestStepName(_L("step_007_03"));
sl@0
   474
	}
sl@0
   475
sl@0
   476
sl@0
   477
sl@0
   478
/**
sl@0
   479
* Function  Name	:~ CFloggerTest007_03
sl@0
   480
* Input parameters	: None
sl@0
   481
* Output parameters : None
sl@0
   482
* Description		: This is the Destructor
sl@0
   483
*/
sl@0
   484
sl@0
   485
sl@0
   486
sl@0
   487
CFloggerTest007_03::~CFloggerTest007_03()
sl@0
   488
	{
sl@0
   489
	}
sl@0
   490
sl@0
   491
sl@0
   492
sl@0
   493
/**
sl@0
   494
* Function  Name : doTestStepL
sl@0
   495
* Input parameters : None
sl@0
   496
* Output parameters : TVerdict 
sl@0
   497
* Description : This function is responsible for doing the heap test analysis 
sl@0
   498
sl@0
   499
*/
sl@0
   500
sl@0
   501
sl@0
   502
TVerdict CFloggerTest007_03::doTestStepL( )
sl@0
   503
	{
sl@0
   504
	INFO_PRINTF1(_L("Step 007.03 called "));
sl@0
   505
sl@0
   506
	CFloggerTest007_01* step007_01 = new CFloggerTest007_01;
sl@0
   507
	CleanupStack::PushL(step007_01);
sl@0
   508
	doTestStepWithHeapFailureL( *step007_01, 1, 20, KErrNone, ETrue);
sl@0
   509
sl@0
   510
	CleanupStack::PopAndDestroy(step007_01);
sl@0
   511
	User::After(KTimeForDisplay);
sl@0
   512
	return TestStepResult();
sl@0
   513
	}
sl@0
   514