/*+ −
* Copyright (c) 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 file contains the header file of the CTestEngine.+ −
*+ −
*/+ −
+ −
#ifndef TEST_ENGINE_H+ −
#define TEST_ENGINE_H+ −
+ −
// INCLUDES+ −
#include <e32std.h>+ −
#include <e32base.h>+ −
#include <StifLogger.h>+ −
#include <StifParser.h>+ −
#include <stifinternal/TestServerClient.h>+ −
#include "TestEngineClient.h"+ −
#include "TestEngineEvent.h"+ −
#include "STIFTestFrameworkSettings.h"+ −
#include "SettingServerClient.h"+ −
#include "STIFMeasurement.h"+ −
#include "TestModuleInfo.h"+ −
+ −
// CONSTANTS+ −
// Heap sizes needed for creating server thread.+ −
const TUint KTestEngineMinHeapSize = 0x10000;+ −
const TUint KTestEngineMaxHeapSize = 0x100000;+ −
+ −
// MACROS+ −
// None+ −
+ −
// DATA TYPES+ −
+ −
// Panic reasons+ −
enum TTestEnginePanic+ −
{+ −
EBadRequest,+ −
EBadDescriptor,+ −
EMainSchedulerError,+ −
ESvrCreateServer,+ −
ECreateTrapCleanup,+ −
EBadSubsessionHandle,+ −
ENoStartupInformation,+ −
EInvalidModuleName,+ −
EReqPending,+ −
EDoCancelDisorder,+ −
ECancelAsyncIPCError,+ −
EEventPanic+ −
};+ −
+ −
// Struct to Test report settings+ −
class TTestReportSettings+ −
{+ −
public:+ −
+ −
TTestReportSettings(){ iCreateTestReport = ETrue;+ −
iPath = NULL;+ −
iName = NULL;+ −
iFormat = CStifLogger::ETxt;+ −
iOutput = CStifLogger::EFile;+ −
iOverwrite = ETrue; + −
iXML = EFalse;+ −
}+ −
+ −
~TTestReportSettings(){ delete iPath; delete iName; }+ −
+ −
public:+ −
+ −
TBool iCreateTestReport; // Test report creation mode+ −
HBufC* iPath; // Test report path+ −
HBufC* iName; // Test report name+ −
CStifLogger::TLoggerType iFormat; // Test report file type+ −
CStifLogger::TOutput iOutput; // Test report output+ −
TBool iOverwrite; // Test report overwrite+ −
TBool iXML; // Test report in xml format+ −
+ −
};+ −
+ −
class CRebootParams+ −
:public CBase+ −
{+ −
public: // Constructors and destructor+ −
+ −
/**+ −
* NewL is two-phased constructor.+ −
*/+ −
static CRebootParams* NewL();+ −
+ −
/**+ −
* Destructor of CTestEngineServer.+ −
*/+ −
~CRebootParams();+ −
+ −
// Setters+ −
void SetTestModuleNameL( const TDesC& aName ); + −
void SetTestCaseFileNameL( const TDesC& aName ); + −
void SetTestCaseTitleL( const TDesC& aName ); + −
void SetTestCaseStateL( const TDesC& aName ); + −
+ −
+ −
private: // New functions+ −
+ −
/** + −
* C++ default constructor.+ −
*/+ −
CRebootParams();+ −
+ −
/**+ −
* By default Symbian OS constructor is private.+ −
*/+ −
void ConstructL();+ −
+ −
public: // Data+ −
TInt iCaseNumber;+ −
TInt iStateCode;+ −
+ −
TPtrC iTestModule;+ −
TPtrC iTestCaseFile;+ −
TPtrC iTestCaseTitle;+ −
TPtrC iStateName;+ −
+ −
private: // Data + −
HBufC* iTestModuleBuf;+ −
HBufC* iTestCaseFileBuf;+ −
HBufC* iTestCaseTitleBuf;+ −
HBufC* iStateNameBuf;+ −
+ −
};+ −
+ −
// FUNCTION PROTOTYPES+ −
// None+ −
+ −
// FORWARD DECLARATIONS+ −
class CTestModuleController;+ −
class CTestReport;+ −
+ −
// CLASS DECLARATION+ −
+ −
// DESCRIPTION+ −
// CTestEngineServer is a server class.+ −
// Contains an object container index which provides subsessions with object+ −
// containers.+ −
+ −
class CTestEngineServer+ −
: public CServer2+ −
{+ −
public: // Enumerations+ −
enum { ETestEngineServerPriority = CActive::EPriorityHigh };+ −
+ −
private: // Enumerations+ −
+ −
public: // Constructors and destructor+ −
+ −
/**+ −
* NewL is two-phased constructor.+ −
*/+ −
static CTestEngineServer* NewL();+ −
+ −
/**+ −
* Destructor of CTestEngineServer.+ −
*/+ −
~CTestEngineServer();+ −
+ −
public: // New functions+ −
+ −
/**+ −
* ThreadFunction is used to create new thread.+ −
*/+ −
static TInt ThreadFunction( TAny* aStarted );+ −
+ −
/**+ −
* Return object container, guaranteed to produce object containers with+ −
* unique ids within the server.+ −
*/+ −
CObjectCon* NewContainerL();+ −
+ −
/**+ −
* Delete container.+ −
*/+ −
void DeleteContainer( CObjectCon* aContainer );+ −
+ −
/**+ −
* Inform Server that session is closed.+ −
*/+ −
void SessionClosed();+ −
+ −
/**+ −
* PanicServer panics the CTestEngineServer+ −
*/+ −
static void PanicServer( TTestEnginePanic aPanic );+ −
+ −
/**+ −
* Return the pointer to iLogger+ −
*/+ −
CStifLogger* Logger();+ −
+ −
public: // Functions from base classes+ −
+ −
/**+ −
* NewSessionL creates new CTestEngineServer session.+ −
*/+ −
CSession2* NewSessionL( const TVersion &aVersion,+ −
const RMessage2& aMessage ) const;+ −
+ −
protected: // New functions+ −
+ −
protected: // Functions from base classes+ −
+ −
private: // New functions+ −
+ −
/** + −
* C++ default constructor.+ −
*/+ −
CTestEngineServer();+ −
+ −
/**+ −
* By default Symbian OS constructor is private.+ −
*/+ −
void ConstructL();+ −
+ −
+ −
public: // Data+ −
// Test report settings+ −
TTestReportSettings iTestReportSettings;+ −
+ −
// Logger overwrite settings+ −
TLoggerSettings iLoggerSettings;+ −
+ −
protected: // Data+ −
+ −
private: // Data+ −
// The server has an object container index which+ −
// creates an object container for each session+ −
CObjectConIx* iContainerIndex; + −
+ −
// Logger instance+ −
CStifLogger* iLogger;+ −
+ −
// Container count+ −
TInt iSessionCount;+ −
+ −
public: // Friend classes+ −
+ −
protected: // Friend classes+ −
+ −
private: // Friend classes+ −
+ −
};+ −
+ −
// DESCRIPTION+ −
// Class used to store version information of test module.+ −
// iTestModuleName field keeps name of test module dll+ −
// iVersion keeps version of test module dll+ −
+ −
struct TTestModuleVersionInfo+ −
{+ −
TFileName iTestModuleName;+ −
TInt iMajor;+ −
TInt iMinor;+ −
TInt iBuild;+ −
};+ −
+ −
// DESCRIPTION+ −
// CTestEngine is a session class.+ −
// Session for the CTestEngineServer server, to a single client-side session+ −
// a session may own any number of CCounter objects+ −
+ −
class CTestCase;+ −
class CTestEventController;+ −
class CTestEngine+ −
: public CSession2+ −
{+ −
public: // Enumerations+ −
+ −
private: // Enumerations+ −
+ −
public: // Constructors and destructor+ −
+ −
/**+ −
* NewL is two-phased constructor.+ −
*/+ −
static CTestEngine* NewL( CTestEngineServer* aServer );+ −
+ −
/**+ −
* Leave with notify+ −
*/+ −
void LeaveWithNotifyL( TInt aCode, const TDesC& aText );+ −
+ −
/**+ −
* If error leave with notify+ −
*/+ −
void LeaveIfErrorWithNotify( TInt aCode, const TDesC& aText );+ −
+ −
/**+ −
* Leave with notify+ −
*/+ −
void LeaveWithNotifyL( TInt aCode );+ −
+ −
/**+ −
* If error leave with notify+ −
*/+ −
void LeaveIfErrorWithNotify( TInt aCode );+ −
+ −
/**+ −
* Close the session to CTestEngineServer.+ −
*/+ −
void CloseSession();+ −
+ −
public: // New functions+ −
+ −
/**+ −
* PanicClient panics the user of CTestEngine ( RTestEngine user )+ −
*/+ −
void PanicClient( TTestEnginePanic aPanic, const RMessage2& aMessage ) const;+ −
+ −
/**+ −
* NumResources is used to provide reserver resources to client.+ −
*/+ −
void NumResources( const RMessage2& aMessage );+ −
+ −
/**+ −
* Return the number of resources owned by the session. + −
* Required by CSession if derived class implements resource+ −
* mark-start and mark-end protocol.+ −
*/+ −
TInt CountResources();+ −
+ −
/**+ −
* Callback to inform that enumeration of test cases is completed+ −
*/+ −
void EnumerationCompleted( TInt aCount, TInt aError = KErrNone );+ −
+ −
+ −
/**+ −
* Callback to check state event status.+ −
*/+ −
TBool IsStateEventAndSet( const TName& aEventName );+ −
+ −
/**+ −
* Callback to control events.+ −
*/+ −
CTestEventController* CtlEventL( const TEventIf& aEvent, + −
TRequestStatus& aStatus );+ −
+ −
/**+ −
* Return the pointer to CStifLogger owned by CTestEngineServer+ −
*/+ −
CStifLogger* Logger();+ −
+ −
/**+ −
* Return testcases.+ −
*/+ −
RPointerArray<CTestCase>& TestCaseArray(){ return iTestCaseArray; }+ −
+ −
/**+ −
* Return client events.+ −
*/+ −
RPointerArray<TEventMsg>& ClientEvents(){ return iClientEvents; }+ −
+ −
/**+ −
* ErrorPrint print errors. This version is used to print engine own+ −
* errors.+ −
*/+ −
void ErrorPrint( const TInt aPriority, + −
TPtrC aError );+ −
+ −
/**+ −
* ErrorPrint print errors. This version is used to forward errors.+ −
*/+ −
void ErrorPrint( TErrorNotificationPckg aError );+ −
+ −
/**+ −
* Write the Reboot related information to file.+ −
*/+ −
TInt WriteRebootParams( TTestInfo& aTestInfo,+ −
TInt& aCode, TDesC& aName );+ −
+ −
/**+ −
* Read the Reboot related information from the file.+ −
*/+ −
TInt ReadRebootParams( TTestInfo& aTestInfo, + −
TDes& aStateDes,+ −
TInt& aState );+ −
+ −
/**+ −
* Pause all test case(s) which are/is running.+ −
*/+ −
void PauseAllTestCases();+ −
+ −
/**+ −
* Flush ATS logger buffers.+ −
*/ + −
void FlushAtsLogger();+ −
+ −
/**+ −
* Get device reset module's DLL name.+ −
*/+ −
TPtrC GetDeviceResetDllName();+ −
+ −
/**+ −
* Get measurements related information. Returns is measurement disable.+ −
*/+ −
TInt StifMeasurement();+ −
+ −
/**+ −
* For Recovering from serious testmodulecrash situations (KErrserverTerminated (-15))+ −
* Clones TestModuleController+ −
*/+ −
void TestModuleCrash( CTestModuleController* aTestModuleController );+ −
+ −
/**+ −
* Executes command received from test case.+ −
* It was created to allow test case to kill itself.+ −
*/+ −
void ExecuteCommandL(TCommand aCommand, TDesC8& aParamsPckg);+ −
+ −
/**+ −
* Returns new index for test module controller.+ −
* This number is appended to module controller name.+ −
* This method is used when option to run every test case in separate+ −
* process is set to on. + −
*/+ −
TInt GetIndexForNewTestModuleController(void);+ −
+ −
/**+ −
* Return free module controller specified by given parameter.+ −
* If it can't be found, new one will be created. + −
*/+ −
CTestModuleController* GetFreeOrCreateModuleControllerL(TTestInfo& aTestInfo,+ −
CTestModuleController** aRealModuleController);+ −
+ −
public: // Functions from base classes+ −
+ −
/**+ −
* ServiceL handles the messages to CTestEngineServer+ −
*/+ −
virtual void ServiceL( const RMessage2& aMessage );+ −
+ −
protected: // New functions+ −
+ −
protected: // Functions from base classes+ −
+ −
private: // New functions+ −
+ −
/** + −
* C++ default constructor.+ −
*/+ −
CTestEngine();+ −
+ −
/**+ −
* By default Symbian OS constructor is private.+ −
*/+ −
void ConstructL( CTestEngineServer* aServer );+ −
+ −
/**+ −
* DispatchMessageL handles the messages to CTestEngineServer+ −
*/+ −
void DispatchMessageL( const RMessage2& aMessage );+ −
+ −
/**+ −
* Get module controller by name+ −
*/+ −
CTestModuleController* ModuleControllerByName(+ −
const TName& aModuleName );+ −
+ −
/**+ −
* Initialize test report and logger's overwrite variables+ −
*/+ −
void InitTestReportAndLoggerVarL();+ −
+ −
/**+ −
* Initialize the Test Engine.+ −
*/+ −
void InitEngineL( const RMessage2& aMessage );+ −
+ −
/**+ −
* Parse Test Engine defaults from STIF initialization+ −
* file.+ −
*/+ −
void ReadEngineDefaultsL( CStifParser* aParser,+ −
CSTIFTestFrameworkSettings* aSettings );+ −
+ −
/**+ −
* Set parsed logger's settings to TestEngine side.+ −
*/+ −
void SetLoggerSettings( TLoggerSettings& aLoggerSettings );+ −
+ −
/**+ −
* Parse Test modules and module information from STIFTestFramework+ −
* initialization file.+ −
*/+ −
void ReadTestModulesL( CStifParser* aParser );+ −
+ −
/**+ −
* + −
*/+ −
void TestModuleConfigFileL( CTestModuleController* aModule,+ −
CStifSectionParser* aSectionParser,+ −
TDesC& aTag );+ −
+ −
/**+ −
* Sets attributes to Test Framework+ −
*/+ −
void SetAttributeL( const RMessage2& aMessage );+ −
+ −
/**+ −
* Adds new Test Module+ −
*/+ −
void AddTestModuleL( const RMessage2& aMessage );+ −
+ −
/**+ −
* Removes Test Module+ −
*/+ −
TInt RemoveTestModuleL( const RMessage2& aMessage );+ −
+ −
/**+ −
* Close Test Engine+ −
*/+ −
void CloseTestEngineL( TUint aHandle );+ −
+ −
/**+ −
* Adds new config file to Test Module+ −
*/+ −
void AddConfigFileL( const RMessage2& aMessage );+ −
+ −
/**+ −
* Removes config file from test module+ −
*/+ −
void RemoveConfigFileL( const RMessage2& aMessage );+ −
+ −
/**+ −
* Enumerates test cases+ −
*/+ −
void EnumerateTestCasesL( const RMessage2& aMessage );+ −
+ −
/**+ −
* Get test cases+ −
*/+ −
void GetTestCasesL( const RMessage2& aMessage );+ −
+ −
/**+ −
* Cancel outstanding asynchronous request+ −
*/+ −
void CancelAsyncRequest( const RMessage2& aMessage );+ −
+ −
/**+ −
* Event system control.+ −
*/+ −
void EventControlL( const RMessage2& aMessage );+ −
+ −
/**+ −
* Update state event list.+ −
*/ + −
void UpdateEventL( const TEventIf& aEvent );+ −
+ −
/**+ −
* Handles error notifications+ −
*/+ −
void HandleErrorNotificationL( const RMessage2& iMessage );+ −
+ −
/**+ −
* Get Logger's overwrite parameters+ −
*/+ −
void LoggerSettings( const RMessage2& iMessage );+ −
+ −
/**+ −
* Close logger settings+ −
*/+ −
void CloseLoggerSettings();+ −
+ −
/**+ −
* Process error queue.+ −
*/+ −
void ProcessErrorQueue();+ −
+ −
/**+ −
* Resolve the correct CTestCase object+ −
*/+ −
CTestCase* TestCaseByHandle( TUint aHandle, const RMessage2& aMessage );+ −
+ −
/**+ −
* Create CTestCase subsession.+ −
*/+ −
void NewTestCaseL( const RMessage2& aMessage );+ −
+ −
/**+ −
* Destroy the created CTestCase subsession.+ −
* Cannot fail - can panic client.+ −
*/+ −
void DeleteTestCase( TUint aHandle );+ −
+ −
/**+ −
* Parse the Reboot related information from the file.+ −
*/+ −
TInt ParseRebootParamsL();+ −
+ −
/**+ −
* Set measurements related information, enable measurement.+ −
*/+ −
TInt EnableStifMeasurement( const TDesC& aInfoType );+ −
+ −
/**+ −
* Set measurements related information, disable measurement.+ −
*/+ −
TInt DisableStifMeasurement( const TDesC& aInfoType );+ −
+ −
/**+ −
* Parse and search for module info and fill list of modules.+ −
*/+ −
void ParseTestModulesL(CStifParser* aParser, CTestModuleList* aModuleList, const TDesC& aSectionStart, const TDesC& aSectionEnd);+ −
+ −
/**+ −
* Add test case info to test report.+ −
*/+ −
TInt AddTestCaseToTestReport(const RMessage2& aMessage);+ −
+ −
public: // Data+ −
+ −
protected: // Data+ −
+ −
private: // Data+ −
+ −
// Test module array+ −
RPointerArray<CTestModuleController> iModules;+ −
+ −
// Object container for this session+ −
CObjectCon* iContainer;+ −
+ −
// Object index which stores objects (CTestCase instances)+ −
// for this session+ −
CObjectIx* iTestCases;+ −
+ −
// Object index which stores objects (CTestEngineSubSession instances)+ −
// for this session+ −
CObjectIx* iTestEngineSubSessions;+ −
+ −
// Array of CTestCase instances+ −
RPointerArray<CTestCase> iTestCaseArray;+ −
+ −
// Pointer to owning server+ −
CTestEngineServer* iTestEngineServer;+ −
+ −
// Test Report+ −
CTestReport* iTestReport;+ −
// Test Report Mode+ −
TUint iReportMode;+ −
// Test Report Output Type+ −
TUint iReportOutput;+ −
+ −
// Device reset module's DLL name(Reboot)+ −
HBufC* iDeviceResetDllName;+ −
+ −
// Total number of resources allocated+ −
TInt iResourceCount;+ −
+ −
// Test Engine's initialization file+ −
HBufC* iIniFile;+ −
+ −
// RMessage for ongoing operation+ −
RMessage2 iEnumerationMessage;+ −
+ −
// Test case count used in EnumerateTestCases+ −
TInt iCaseCount;+ −
// Error code used in EnumerateTestCases+ −
TInt iEnumError;+ −
+ −
// Tell if message can be completed+ −
TBool iComplete;+ −
+ −
// Error code for complete of message+ −
TInt iReturn;+ −
+ −
// State event Array+ −
RPointerArray<HBufC> iStateEvents;+ −
+ −
// Client event Array+ −
RPointerArray<TEventMsg> iClientEvents;+ −
+ −
// Number of enumerated test modules currently+ −
TInt iEnumerateModuleCount;+ −
+ −
// RMessage for error notifications+ −
TBool iErrorMessageAvailable;+ −
RMessage2 iErrorMessage;+ −
RArray<TErrorNotification> iErrorQueue;+ −
+ −
// Reboot path definition+ −
HBufC* iRebootPath;+ −
// Reboot file name definition+ −
HBufC* iRebootFilename;+ −
// Reboot default path definition+ −
TPtrC iRebootDefaultPath;+ −
// Reboot default file name definition+ −
TPtrC iRebootDefaultFilename;+ −
+ −
// Handle to Setting server.+ −
RSettingServer iSettingServer;+ −
+ −
CRebootParams* iRebootParams;+ −
TBool iIsTestReportGenerated;+ −
+ −
// For indication is measurement disable+ −
TInt iDisableMeasurement;+ −
+ −
// Default timeout value. 0 - no timeout value+ −
TInt64 iDefaultTimeout;+ −
+ −
// Counter for created TestModuleControllers+ −
TInt iIndexTestModuleControllers;+ −
+ −
// Is this UI testing?+ −
// If yes, then Test Engine works in a specific way.+ −
// It creates new process for every test scripter's test case+ −
// and deletes it after test case has finished.+ −
TBool iUITestingSupport;+ −
+ −
// Should every test case be executed in separate process?+ −
// This option is similar to iUITestingSupport, however+ −
// it does not delete the process after test case is finished.+ −
TBool iSeparateProcesses;+ −
+ −
//RPointerArray of versions of test modules+ −
RPointerArray<TTestModuleVersionInfo> iTestModulesVersionInfo;+ −
+ −
public: // Friend classes+ −
+ −
protected: // Friend classes+ −
+ −
private: // Friend classes+ −
+ −
};+ −
+ −
// DESCRIPTION+ −
// CTestEngineSubSession represents a subsession object in the CTestEngineServer.+ −
// A session may own any number of CTestEngineSubSession objects+ −
+ −
class CTestEngineSubSession+ −
: public CObject+ −
{+ −
public: // Enumerations+ −
+ −
private: // Enumerations+ −
+ −
public: // Constructors and destructor+ −
+ −
/**+ −
* NewL is two-phased constructor.+ −
*/+ −
static CTestEngineSubSession* NewL( CTestEngine* aEngine );+ −
+ −
/**+ −
* Destructor of CTestCase.+ −
*/+ −
~CTestEngineSubSession();+ −
+ −
public: // New functions+ −
+ −
public: // Functions from base classes+ −
+ −
protected: // New functions+ −
+ −
protected: // Functions from base classes+ −
+ −
private: // New functions+ −
+ −
/** + −
* C++ default constructor.+ −
*/+ −
CTestEngineSubSession( CTestEngine* aEngine);+ −
+ −
/**+ −
* By default Symbian OS constructor is private.+ −
*/+ −
void ConstructL();+ −
public: // Data+ −
+ −
protected: // Data+ −
+ −
// Session owning us+ −
CTestEngine* iTestEngine;+ −
+ −
private: // Data+ −
+ −
public: // Friend classes+ −
+ −
protected: // Friend classes+ −
+ −
private: // Friend classes+ −
};+ −
+ −
+ −
// DESCRIPTION+ −
// CTestCase represents a subsession object in the CTestEngineServer.+ −
// A session may own any number of CTestCase objects+ −
+ −
class CTestProgressNotifier;+ −
class CTestCaseController;+ −
class CTestEventNotifier;+ −
class CTestRemoteCmdNotifier;+ −
class CTestCommandNotifier;+ −
class CTestCase+ −
: public CObject+ −
{+ −
public: // Enumerations+ −
+ −
private: // Enumerations+ −
+ −
public: // Constructors and destructor+ −
+ −
/**+ −
* NewL is two-phased constructor.+ −
*/+ −
static CTestCase* NewL( CTestEngine* aEngine,+ −
CTestModuleController* aModuleController,+ −
CTestReport* aTestReport,+ −
TTestInfo& aTestInfo,+ −
CTestModuleController* aRealModuleController);+ −
+ −
/**+ −
* Destructor of CTestCase.+ −
*/+ −
~CTestCase();+ −
+ −
/**+ −
* Close Test Case.+ −
*/+ −
void CloseTestCase();+ −
+ −
public: // New functions+ −
+ −
/**+ −
* Run test case.+ −
*/+ −
void RunTestCaseL( const RMessage2& aMessage );+ −
+ −
/**+ −
* Suspend the test case execution.+ −
*/+ −
TInt Pause();+ −
+ −
/**+ −
* Resume the suspended test case execution.+ −
*/+ −
TInt Resume();+ −
+ −
/**+ −
* Notify progress from Test Module.+ −
*/+ −
void NotifyProgressL( const RMessage2& aMessage );+ −
+ −
/**+ −
* Notify remote commands from Test Module.+ −
*/+ −
void NotifyRemoteTypeL( const RMessage2& aMessage );+ −
+ −
/**+ −
* Notify remote commands from Test Module.+ −
*/+ −
void NotifyRemoteMsgL( const RMessage2& aMessage );+ −
+ −
/**+ −
* Cancel outstanding asynchronous request.+ −
*/+ −
void CancelAsyncRequest( const RMessage2& aMessage );+ −
+ −
/**+ −
* Return the name of Test Module.+ −
*/+ −
const TDesC& ModuleName();+ −
+ −
/**+ −
* For event control.+ −
*/+ −
void CtlEvent( const TEventIf& aEvent, TRequestStatus& aStatus );+ −
+ −
/**+ −
* Check if CtlEvent should be called+ −
*/+ −
TBool CheckCtlEvent( const TEventIf& aEvent );+ −
+ −
/**+ −
* Executes command received from test case.+ −
*/+ −
void ExecuteCommandL(TCommand aCommand, TDesC8& aParamsPckg);+ −
+ −
/**+ −
* Return module controller and real module controller.+ −
*/+ −
CTestModuleController* GetModuleControllers(CTestModuleController** aRealModuleController);+ −
+ −
/**+ −
* Set new module controller for test case (only in case when original controller crashed).+ −
*/+ −
void ResetModuleController(CTestModuleController* aModuleController);+ −
+ −
/**+ −
* Set new real module controller for test case (only in case when original controller crashed).+ −
*/+ −
void ResetRealModuleController(CTestModuleController* aRealModuleController);+ −
+ −
public: // Functions from base classes+ −
+ −
protected: // New functions+ −
+ −
protected: // Functions from base classes+ −
+ −
private: // New functions+ −
+ −
/** + −
* C++ default constructor.+ −
*/+ −
CTestCase( CTestEngine* aEngine,+ −
CTestModuleController* aModuleController,+ −
TTestInfo& aTestInfo,+ −
CTestModuleController* aRealModuleController);+ −
+ −
/**+ −
* By default Symbian OS constructor is private.+ −
*/+ −
void ConstructL( CTestReport* aTestReport, TTestInfo& aTestInfo );+ −
+ −
/**+ −
* Return the pointer to CStifLogger owned by CTestEngineServer+ −
*/+ −
CStifLogger* Logger();+ −
+ −
public: // Data+ −
+ −
protected: // Data+ −
+ −
// Session owning us+ −
CTestEngine* iTestEngine;+ −
+ −
private: // Data+ −
+ −
// Test Module+ −
CTestModuleController* iTestModule;+ −
+ −
// Test case controller+ −
CTestCaseController* iTestCaseController;+ −
+ −
// Notifier for print+ −
CTestProgressNotifier* iTestCasePrint;+ −
+ −
// Notifier for event+ −
CTestEventNotifier* iTestCaseEvent;+ −
+ −
// Notifier for remote commands+ −
CTestRemoteCmdNotifier* iTestCaseRemoteCmd;+ −
+ −
// Handle to RTestServer+ −
RTestServer iTestServer;+ −
+ −
// Handle to RTestExecution+ −
RTestExecution iTestExecution;+ −
+ −
// Notifier for commands+ −
CTestCommandNotifier* iTestCaseCommand;+ −
+ −
// Real Test Module (when test module controller is testscripter)+ −
CTestModuleController* iRealModuleController;+ −
+ −
public: // Friend classes+ −
+ −
protected: // Friend classes+ −
+ −
private: // Friend classes+ −
+ −
};+ −
+ −
#endif // TEST_ENGINE_H+ −
+ −
// End of File+ −