diff -r 000000000000 -r 71ca22bcf22a mmfenh/advancedaudiocontroller/tsrc/advancedaudiocontrollertestmodule/ActiveScheduledTestModule/inc/ActiveScheduledTestModuleBase.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mmfenh/advancedaudiocontroller/tsrc/advancedaudiocontrollertestmodule/ActiveScheduledTestModule/inc/ActiveScheduledTestModuleBase.h Tue Feb 02 01:08:46 2010 +0200 @@ -0,0 +1,142 @@ +/* +* Copyright (c) 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: Active Scheduler Test Module +* +*/ + + +#ifndef ACTIVE_SCHEDULED_TEST_MODULE_BASE_H +#define ACTIVE_SCHEDULED_TEST_MODULE_BASE_H + +// INCLUDES +#if defined (_MSC_VER) && (_MSC_VER >= 1000) +#pragma once +#endif + +#include +#include +#include +#include "TestModuleConstants.h" +#include "OutputPrinter.h" + +// MACROS +// None + +// DATA TYPES +// None + +// FUNCTION PROTOTYPES +// None + +// FORWARD DECLARATIONS +// None + +// CLASS DECLARATION + + +class CActiveScheduledTestModuleBase : public CTestModuleBase + { + public: // Enumerations + + private: // Enumerations + + protected: // Constructors and destructor + + /** + * Two-phased constructor. + */ + //static CActiveScheduledTestModuleBase* NewL(); + CActiveScheduledTestModuleBase(TInt aMinTestCaseId, TInt aMaxTestCaseId, const TDesC &aTitleFormat); + CActiveScheduledTestModuleBase(TInt aMinTestCaseId, TInt aMaxTestCaseId, const TDesC &aTitleFormat, const TDesC &aConsoleTraceDescription, const TDesC &aTracePrefix, TInt aPrintPriority=0); + + /** + * Destructor. + */ + ~CActiveScheduledTestModuleBase(); + + public: // New functions + + public: // Functions from base classes + + /** + * InitL is used to initialize the Test Module. The Test Modules + * can use the configure file to read parameters for Test Module + * initialization but they can also have their own configure file + * or some other routine to initialize themselves. + */ + TInt InitL( TFileName& aIniFile, TBool aFirstTime ); + + /** + * Test cases are inquired from the Test Module by calling GetTestCasesL. + * Test cases are read from the config file specified by aConfigFile. + * If the Test Module does not use config files for test case definition + * it does not use aConfigFile parameter. Test cases are appended + * to CArrayPtrFlat that is a list + * consisting of several TTestCaseInfo objects. + * TTestCaseInfo class defines individual test cases and, if needed, + * a test set where the test case belongs to. TTestCaseInfo is + * defined in Table 9. + * The Test Framework will be the owner of the data in the + * RPointerArray and it does the memory deallocation. + */ + TInt GetTestCasesL( const TFileName& aConfigFile , RPointerArray& aTestCases ); + + /** + * RunTestCaseL is used to run an individual test case specified + * by aTestCase. Test cases that can be run may be requested from + * Test Module by GetTestCasesL method before calling RunTestCaseL. + * This method is synchronous and test case result is returned as + * reference parameter aResult value. The function shall return + * KErrNone if case is successfully started. + * If test case is not available (i.e invalid configuration file or + * or case number), then function shall return the error code (i.e + * (KErrNotFound) + */ + virtual TInt RunTestCaseL( const TInt aCaseNumber , const TFileName& aConfig , TTestResult& aResult ); + + protected: // New functions + virtual TInt RunTestCaseFunctionL(TInt id, CStifSectionParser *section, TTestResult &aResult) = 0; + + protected: // Functions from base classes + HBufC8 *GetDescriptor8LC(const TFileName &aFileName); + TTimeIntervalMicroSeconds32 GetTimeIntervalL(CStifSectionParser *aSection, const TDesC &aTag, TBool &aUsingDefault, const TTimeIntervalMicroSeconds32 &aDefaultInterval, TBool aContinue=EFalse); + TTimeIntervalMicroSeconds GetTimeIntervalL(CStifSectionParser *aSection, const TDesC &aTag, TBool &aUsingDefault, const TTimeIntervalMicroSeconds &aDefaultInterval=TTimeIntervalMicroSeconds(-1) , TBool aContinue=EFalse); + TInt GetIntL(CStifSectionParser *aSection, const TDesC &aTag, TBool &aUsingDefault, const TInt &aDefaultInt, TBool aContinue=EFalse) ; + TBool IsDurationInRange(TInt aRepeatTimes, TTimeIntervalMicroSeconds aToneDuration, TTimeIntervalMicroSeconds aRepeatSilence, TTimeIntervalMicroSeconds aErrorRange , TTime aStartTime , TTime aEndTime ) ; + void ConstructL(); + + private: + void InitLoggerL( const TFileName& aLogPath , const TFileName& aLogFile ); + void InitLoggerL(); + + //TTimeIntervalMicroSeconds GetDelayL(CStifSectionParser *aSection, const TDesC &aTag=KTagDelay); + public: // Data + // Constants + + private: + CStifLogger *iLogger; + protected: // Data + const TDesC &iTitleFormat; + COutputPrinter iOutputPrinter; + private: // Data + CActiveScheduler* iScheduler; + TInt iMaxTestCaseId; + TInt iMinTestCaseId; + + public: // Friend classes + protected: // Friend classes + private: // Friend classes + }; + +#endif // ACTIVE_SCHEDULED_TEST_MODULE_BASE_H