diff -r 18fa9327a158 -r e3cdd00b5ae3 camerasrv_plat/asynchronous_file_saving_queue_api/tsrc/src/StifFSQTestTop.cpp --- a/camerasrv_plat/asynchronous_file_saving_queue_api/tsrc/src/StifFSQTestTop.cpp Thu Aug 19 10:05:54 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,354 +0,0 @@ -/* -* Copyright (c) 2002-2007 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: FSQ Test DLL -* -*/ - - -// INCLUDE FILES -#include -#include "../inc/StifFSQTestTop.h" -#include "../inc/TestFramework/testSuite.h" -#include "../inc/AFSQTestTop.h" -#include "../inc/AFSQTestAsynchSave.h" - - -// EXTERNAL DATA STRUCTURES -// None - -// EXTERNAL FUNCTION PROTOTYPES -// None - -// CONSTANTS -// None - -// MACROS -// None - -// LOCAL CONSTANTS AND MACROS -// None - -// MODULE DATA STRUCTURES -// None - -// LOCAL FUNCTION PROTOTYPES -// None - -// FORWARD DECLARATIONS -// None - -// ==================== LOCAL FUNCTIONS ======================================= - - -/* -------------------------------------------------------------------------------- - - DESCRIPTION - - This file (DemoModule.cpp) contains all STIF test framework related parts of - this test module. - -------------------------------------------------------------------------------- -*/ -EXPORT_C TInt SetRequirements( CTestModuleParam*& aTestModuleParam, TUint32& aParameterValid ) - { - aParameterValid = KStifTestModuleParameterChanged; - - TRAP_IGNORE( - CTestModuleParamVer01* param = CTestModuleParamVer01::NewL(); - - // Stack size - param->iTestThreadStackSize= 2*16384; // 2*16K stack - - // Heap sizes - param->iTestThreadMinHeap = 4096; // 4K heap min - param->iTestThreadMaxHeap = 8*1048576;// 8M heap max - - aTestModuleParam = param; - ); - - return KErrNone; - } - -// ================= MEMBER FUNCTIONS ========================================= - - -CTestModule::CTestModule() - { - } - - -void CTestModule::ConstructL() - { - iTestSuite = CTestSuite::NewL(_L8("Test Suite Container")); - - iTestSuite->addTestL( CAFSQTestAsynchSave::suiteL() ); - - - - // SetAllocFailureSimulation( RHeap::EDeterministic, 0 ); // Enable OOM test loop - SetAllocFailureSimulation( RHeap::ENone, 0 ); // Disable OOM test loop - - /* Install an active scheduler */ - iScheduler = new(ELeave)CActiveScheduler; - CActiveScheduler::Install(iScheduler); - - } - - -CTestModule* CTestModule::NewL() - { - - // Construct new CTestModule instance. - CTestModule* self = new ( ELeave ) CTestModule(); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop(); - - return self; - - } - - -CTestModule::~CTestModule() - { - delete iTestSuite; - delete iScheduler; - } - - -/* -------------------------------------------------------------------------------- - - Class: CTestModule - - Method: GetTestCases - - Description: GetTestCases is used to inquire test cases - from the test module. Because this test module have hard coded test cases - (i.e cases are not read from file), paramter aConfigFile is not used. - - This function loops through all cases defined in Cases() function and - adds corresponding items to aTestCases array. - - Parameters: const TFileName& : in: Configuration file name. Not used - RPointerArray& aTestCases: out: - Array of TestCases. - - Return Values: KErrNone: No error - - Errors/Exceptions: Function leaves if any memory allocation operation fails - - Status: Proposal - -------------------------------------------------------------------------------- -*/ -TInt CTestModule::GetTestCasesL( const TFileName& /*aConfigFile*/, - RPointerArray& aTestCases ) - { - - // Loop through all test cases and create new - // TTestCaseInfo items and append items to aTestCase array - for( TInt i = 0; i< iTestSuite->CountTestCases(); i++ ) - { - - // Allocate new TTestCaseInfo from heap for a testcase definition. - TTestCaseInfo* newCase = new( ELeave ) TTestCaseInfo(); - - // PushL TTestCaseInfo to CleanupStack. - CleanupStack::PushL( newCase ); - - // Set number for the testcase. - // When the testcase is run, this comes as a parameter to RunTestCaseL. - newCase->iCaseNumber = i; - - // Set title for the test case. This is shown in UI to user. - newCase->iTitle.Copy( iTestSuite->TestCaseName(i) ); - - // Append TTestCaseInfo to the testcase array. After appended - // successfully the TTestCaseInfo object is owned (and freed) - // by the TestServer. - User::LeaveIfError(aTestCases.Append ( newCase ) ); - - // Pop TTestCaseInfo from the CleanupStack. - CleanupStack::Pop( newCase ); - - } - - return KErrNone; - - } - -/* -------------------------------------------------------------------------------- - - Class: CTestModule - - Method: RunTestCase - - Description: Run a specified testcase. - - Function runs a test case specified by test case number. Test case file - parameter is not used. - - If case number is valid, this function runs a test case returned by - function Cases(). - - Parameters: const TInt aCaseNumber: in: Testcase number - const TFileName& : in: Configuration file name. Not used - TTestResult& aResult: out: Testcase result - - Return Values: KErrNone: Testcase ran. - KErrNotFound: Unknown testcase - - Errors/Exceptions: None - - Status: Proposal - -------------------------------------------------------------------------------- -*/ -TInt CTestModule::RunTestCaseL( const TInt aCaseNumber, - const TFileName& /*aConfig*/, - TTestResult& aResult ) - { - // Next is a temporary solution for Stif memory leak error - //TestModuleIf().SetBehavior(CTestModuleIf::ETestLeaksMem); - // TestModuleIf().SetBehavior(CTestModuleIf::ETestLeaksRequests); - // TestModuleIf().SetBehavior(CTestModuleIf::ETestLeaksHandles); - - if ( iAllocFailureType != RHeap::ENone ) - { - RunTestCaseInOOMLoopL( aCaseNumber, aResult ); - } - else - { - iTestSuite->ExecuteTestL( aResult, aCaseNumber ); - } - - // Return case execution status (not the result of the case execution) - return KErrNone; - } - - -/* -*/ - -void CTestModule::RunTestCaseInOOMLoopL( const TInt aCaseNumber, - TTestResult& aResult ) - { - - // - TInt error = KErrNone; - aResult.SetResult( KErrNoMemory, _L("") ); // Initial value - - for (; ( aResult.iResult == KErrNoMemory ) && !error;) - { - // Switches on alloc failure simulation if the parameters are set for it - AllocFailureSimulation( ETrue ); - RDebug::Print(_L("*** OOM loop : %d ***\n"), iCurrentAllocFailureRate ); - TRAP( error, iTestSuite->ExecuteTestL( aResult, aCaseNumber ) ); - if ( error == KErrNoMemory ) - { - error = KErrNone; - } - } - - // - AllocFailureSimulation( EFalse ); - User::LeaveIfError( error ); - } - - -/* -*/ - -void CTestModule::AllocFailureSimulation (TBool aSwitchedOn) - { - if (aSwitchedOn) - { - __UHEAP_SETFAIL ( iAllocFailureType, iCurrentAllocFailureRate ); - iCurrentAllocFailureRate++; - } - else - { - __UHEAP_RESET; - iCurrentAllocFailureRate = iAllocFailureRate; - } - } - - -/* -*/ - -void CTestModule::SetAllocFailureSimulation( RHeap::TAllocFail aAllocFailureType, TInt aAllocFailureRate ) - { - iAllocFailureType = aAllocFailureType; - iAllocFailureRate = aAllocFailureRate; - iCurrentAllocFailureRate = aAllocFailureRate; - } - -// ================= OTHER EXPORTED FUNCTIONS ================================= - -/* -------------------------------------------------------------------------------- - - Function: LibEntryL - - Description: Polymorphic Dll Entry Point - - Test framework calls this function to obtain new instance of test module - class. - - Parameters: None - - Return Values: CTestModule* Pointer to CTestModule instance - - Errors/Exceptions: Leaves if CTestModule::NewL leaves - - Status: Approved - -------------------------------------------------------------------------------- -*/ -EXPORT_C CTestModule* LibEntryL() - { - return CTestModule::NewL(); - - } - -/* -------------------------------------------------------------------------------- - - Function: E32Dll - - Description: DLL entry point function - - Parameters: TDllReason: Not used - - Return Values: KErrNone: always - - Errors/Exceptions: None - - Status: Approved - -------------------------------------------------------------------------------- -*/ -#ifndef EKA2 -GLDEF_C TInt E32Dll(TDllReason /*aReason*/) - { - return( KErrNone ); - - } -#endif - -// End of File