diff -r 000000000000 -r bde4ae8d615e os/persistentdata/traceservices/commsdebugutility/TE_commsdebugutility/src/step_003_xx.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/os/persistentdata/traceservices/commsdebugutility/TE_commsdebugutility/src/step_003_xx.cpp Fri Jun 15 03:10:57 2012 +0200 @@ -0,0 +1,401 @@ +// Copyright (c) 2003-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: +// This contains Flogger Unit Test Case 003.xx + +// EPOC includes +#include + + +// Test system includes +#include "teststepcomsdbg.h" +#include "step_003_xx.h" + +#include + + +/** +* Function Name : CFloggerTest003_01 +* Input parameters : None +* Output parameters : None +* Description : This is the constructor +*/ + + +CFloggerTest003_01::CFloggerTest003_01() + { + // Store the name of this test case + SetTestStepName(_L("step_003_01")); + } + + +/** +* Function Name :~ CFloggerTest003_01 +* Input parameters : None +* Output parameters : None +* Description : This is the Destructor +*/ + + +CFloggerTest003_01::~CFloggerTest003_01() + { + } + + +/** +* Function Name : doTestStepL +* Input parameters : None +* Output parameters : TVerdict +* Description : This function returns weather the test case 003_01 has +* passed or failed + +*/ + + +TVerdict CFloggerTest003_01::doTestStepL( ) + { + User::After(KTimeForDisplay1); + INFO_PRINTF1(_L("Step 003.01 called ")); + + if ( executeStepL(EFalse) == KErrNone ) + SetTestStepResult(EPass); + else + SetTestStepResult(EFail); + + return TestStepResult(); + } + + +/** +* Function Name : executeStepL +* Input parameters : None +* Output parameters : TInt +* Description : This function sets the subsystem and component name +* checks weather they are set in the log file correctly + +*/ + + +TInt CFloggerTest003_01::executeStepL(TBool heapTest) + { + return DoTestWrite(heapTest); + } + +/** +* Function Name : executeStepL +* Input parameters : None +* Output parameters : TInt +* Description : This function sets the subsystem and component name +* checks weather they are set in the log file correctly + +*/ + + +TInt CFloggerTest003_01::executeStepL() + { + return KErrGeneral; + } + +/** +* Function Name : DoTestWriteL +* Input parameters : None +* Output parameters : TInt +* Description : This function checks the weather test data was written + in to the log file by DoTestWriteL() or not. + +*/ + + +TInt CFloggerTest003_01::DoTestWrite(TBool heapTest) + { + _LIT8(KTestMessage ,"TC 3.01 :This is test msg"); + TPtrC8 ptrSubSystem; + TPtrC8 ptrComponent; + ptrSubSystem.Set(_L8("SubSystem")); + ptrComponent.Set(_L8("Component")); + + TInt ret = KErrNone; + RFileLogger theFlogger; + + ret = theFlogger.Connect(); + + if (ret == KErrNone) + { + ret = theFlogger.SetLogTags(ptrSubSystem, ptrComponent); + if (ret == KErrNone) + { + ret = theFlogger.ClearLog(); + if (ret == KErrNone) + { + theFlogger.Write(KTestMessage); + ForceLogFlush(theFlogger); + User::After(KTimeToLogLargeData); + + TRAPD(r, ret = DoTestCheckWriteL()); + if ((heapTest) && ((ret == KErrNotFound) || (r != KErrNone))) + { + ret = KErrNoMemory; + } + else if (r != KErrNone) + { + ret = r; + } + } + } + } + theFlogger.Close(); + return ret; + } + + +/** +* Function Name : DoTestCheckWriteL +* Input parameters : None +* Output parameters : TInt +* Description : This function checks the weather test data was written +* in to the log file by DoTestWriteL() or not. + +*/ + + +TInt CFloggerTest003_01::DoTestCheckWriteL() + { + TPtrC8 ptrSubSystem; + TPtrC8 ptrComponent; + ptrSubSystem.Set(_L8("SubSystem")); + ptrComponent.Set(_L8("Component")); + RFile theFile; + + HBufC8 * hBuffer; + TInt listfilesize,returnCode; + RFs iFileSystem; //For file operation create a file system + TBuf8<256> testData; //To hold the test descriptor + _LIT(KLogFile,"c:\\logs\\log.txt"); + + _LIT(KTestSystem, "SubSystem"); //Test sytem name + _LIT(KTestComponent, "Component"); //Test component name + _LIT8(KTestMessage ,"TC 3.01 :This is test msg"); // Test descriptor + _LIT8(KOOMError, "#Logs may be lost out of memory!!"); // Error message which has to be tested in log + + User::LeaveIfError(iFileSystem.Connect()); + + //Open the file in the read mode + User::LeaveIfError(theFile.Open(iFileSystem, KLogFile, EFileWrite|EFileShareAny)); + CleanupClosePushL(theFile); + + User::LeaveIfError(theFile.Size(listfilesize)); //Size of the file + + hBuffer = HBufC8::New(listfilesize); //Allocate the buffer + CleanupStack::PushL(hBuffer); + TPtr8 ptrString = hBuffer->Des(); ; //To hold the buffer + + // Read from position 0: start of file + returnCode = theFile.Read(ptrString); + + testData.Copy(KTestMessage); //Copy the test message name + returnCode = ptrString.Find(KTestMessage); //find the test system name in the + //buffer read from the file + if (returnCode == KErrNotFound) + { + User::Leave(KErrNotFound); + } + + returnCode = ptrString.Find(KOOMError); + if (returnCode > 0) + { + User::Leave(KErrNoMemory); + } + + testData.Copy(KTestSystem); //Copy the test subsystem name + returnCode = ptrString.Find(testData); //Find the test subsystem name in the + //buffer read from the file + + if (returnCode > 0) // Test subsystem name present + { + testData.Copy(KTestComponent); //Copy the test component name + returnCode = ptrString.Find(testData); //Find the test component name in the + //buffer read from the file + } + + CleanupStack::PopAndDestroy(hBuffer); + CleanupStack::PopAndDestroy(); //theFile + + if (returnCode > 0) // Test component name present + return KErrNone; + else + return KErrNotFound; + } + + + + + +/** +* Function Name : CFloggerTest003_02 +* Input parameters : None +* Output parameters : None +* Description : This is the constructor +*/ + + +CFloggerTest003_02::CFloggerTest003_02() + { + // store the name of this test case + SetTestStepName(_L("step_003_02")); + } + + +/** +* Function Name :~ CFloggerTest003_02 +* Input parameters : None +* Output parameters : None +* Description : This is the Destructor +*/ + + +CFloggerTest003_02::~CFloggerTest003_02() + { + } + + +/** +* Function Name : doTestStepL +* Input parameters : None +* Output parameters : TVerdict +* Description : This function returns weather the test case 003_02 has +* passed or failed + +*/ + + +TVerdict CFloggerTest003_02::doTestStepL( ) + { + // INFO_PRINTF1(_L("Step 003.02 called ")); // This line was panicing in release mode testing + + if ( executeStepL() == KErrNone ) + SetTestStepResult(EFail); + else + SetTestStepResult(EPass); + + + return TestStepResult(); + } + + +/** +* Function Name : executeStepL +* Input parameters : None +* Output parameters : TInt +* Description : This function writes the test data in to the log file +* This function check the test message is present in the +* log file + +*/ + + +TInt CFloggerTest003_02::executeStepL() + { + return DoTestWrite() ; + } + +/** +* Function Name : executeStepL +* Input parameters : None +* Output parameters : TInt +* Description : This function writes the test data in to the log file +* This function check the test message is present in the +* log file + +*/ + + +TInt CFloggerTest003_02::executeStepL(TBool) + { + return KErrGeneral; + } +/** +* Function Name : DoTestWriteL +* Input parameters : None +* Output parameters : TInt +* Description : This function writees the data to the file logger + +*/ + + +TInt CFloggerTest003_02::DoTestWrite() + { + _LIT(KTestMessage,"This is test message "); + + //Call Write() before SetLogTags(), this will cause a PANIC + + iFlogger.Connect(); + iFlogger.Write(KTestMessage); + iFlogger.Close(); + + //This test will cause a PANIC, so we will never get here + return KErrNone; + } + + +/** +* Function Name : CFloggerTest003_03 +* Input parameters : None +* Output parameters : None +* Description : This is the constructor +*/ + + +CFloggerTest003_03::CFloggerTest003_03() + { + // store the name of this test case + SetTestStepName(_L("step_003_03")); + } + + +/** +* Function Name :~ CFloggerTest003_03 +* Input parameters : None +* Output parameters : None +* Description : This is the Destructor +*/ + + +CFloggerTest003_03::~CFloggerTest003_03() + { + } + + +/** +* Function Name : doTestStepL +* Input parameters : None +* Output parameters : TVerdict +* Description : This function is responsible for doing the heap test analysis + +*/ + +TVerdict CFloggerTest003_03::doTestStepL( ) + { + INFO_PRINTF1(_L("Step 003.03 called ")); + + CFloggerTest003_01* step003_01 = new CFloggerTest003_01; + CleanupStack::PushL(step003_01); + if (doTestStepWithHeapFailureL( *step003_01, 450, 465, KErrNone, ETrue) != KErrNone) + { + SetTestStepResult(EFail); + } + + CleanupStack::PopAndDestroy(step003_01); + User::After(KTimeForDisplay); + return TestStepResult(); + } +