diff -r 7259cf1302ad -r 169364e7e4b4 stif/TestEngine/inc/TestModuleController.h --- a/stif/TestEngine/inc/TestModuleController.h Tue Jul 06 16:05:13 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,686 +0,0 @@ -/* -* 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 -* CTestModuleController. -* -*/ - -#ifndef TEST_MODULE_CONTROLLER_H -#define TEST_MODULE_CONTROLLER_H - -// INCLUDES -#include -#include -#include -#include -#include - -// CONSTANTS -// None - -// MACROS -// None - -// DATA TYPES -// None - -// FUNCTION PROTOTYPES -// None - -// FORWARD DECLARATIONS -class CTestEngine; -class CBufferArray; -class CTestScripterController; -class CTestModuleController; - -// CLASS DECLARATION -// None - -// CErrorPrinter is an active object which handles the execute test case -// asynchronous request. -class CErrorPrinter : public CActive - { - public: // Enumerations - - private: // Enumerations - - public: // Constructors and destructor - - /** - * NewL is first phase of two-phased constructor. - */ - static CErrorPrinter* NewL( CTestEngine* aTestEngine ); - - /** - * Destructor of CErrorPrinter. - */ - virtual ~CErrorPrinter(); - - /** - * Start - */ - TInt StartL( RTestModule& aEngine ); - - public: // New functions - // None - - protected: // New functions - // None - - private: - /** - * C++ default constructor. - */ - CErrorPrinter(); - - /** - * By default Symbian OS constructor is private. - */ - void ConstructL( CTestEngine* aEngine ); - - public: // Functions from base classes - - /** - * RunL derived from CActive handles the completed requests. - */ - void RunL(); - - /** - * DoCancel derived from CActive handles the Cancel - */ - void DoCancel(); - - /** - * RunError derived from CActive handles errors from active handler. - */ - TInt RunError( TInt aError ); - - protected: // New functions - // None - - protected: // Functions from base classes - // None - - private: // Functions from base classes - // None - - public: // Data - // None - - protected: // Data - // None - - private: // Data - CTestEngine* iEngine; // Pointer to main console - - TErrorNotification iError; // Error notification - TErrorNotificationPckg iErrorPckg; // Error package - RTestModule iServer; // Handle to TestModule - - public: // Friend classes - // None - - protected: // Friend classes - // None - - private: // Friend classes - // None - - }; -// CLASS DECLARATION - -// DESCRIPTION -// CServerStateHandler class is an active object that handles server state -// e.g. KErrServerTerminated -NONSHARABLE_CLASS( CServerStateHandler ) - : public CActive - { - - public: // Enumerations - - private: // Enumerations - - public: // Constructors and destructor - - /** - * NewL is first phase of two-phased constructor. - */ - static CServerStateHandler* NewL( CTestEngine* aTestEngine, CTestModuleController* aTestModuleController ); - - /** - * Destructor of CServerStateHandler. - */ - virtual ~CServerStateHandler(); - - public: // New functions - - /** - * Start monitoring - */ - TInt StartL( RTestServer& aServer ); - - public: // Functions from base classes - - /** - * RunL derived from CActive handles the completed requests. - */ - void RunL(); - - /** - * DoCancel derived from CActive handles the Cancel - */ - void DoCancel(); - - /** - * RunError derived from CActive handles errors from active handler. - */ - TInt RunError( TInt aError ); - - protected: // New functions - // None - - protected: // Functions from base classes - // None - - private: - - /** - * C++ default constructor. - */ - CServerStateHandler( CTestEngine* aTestEngine, CTestModuleController* aTestModuleController ); - - /** - * By default Symbian OS constructor is private. - */ - void ConstructL(); - - public: //Data - // None - - protected: // Data - // None - - private: // Data - CTestEngine* iEngine; // Pointer to TestEngine - RThread iServerThread; // Handle to TestServer thread - CTestModuleController* iTestModuleController; //Pointer to TestModuleController - public: // Friend classes - // None - - protected: // Friend classes - // None - - private: // Friend classes - // None - - }; - -// DESCRIPTION -// CTestModuleController is an active object used for controlling the test -// module using the RTestModule API. - -class CTestModuleController - : public CActive - { - public: // Enumerations - // None - - private: // Enumerations - - protected: // Enumerations - - // TTestModuleStatus defines the status of test module - enum TTestModuleStatus - { - ETestModuleIdle, - ETestModuleEnumerateCases, - ETestModuleEnumerateCasesCompleted, - }; - - public: // Constructors and destructor - - /** - * Two-phased constructor. - */ - static CTestModuleController* NewL( CTestEngine* aEngine, - const TName& aName, - TBool aAfterReboot, - TBool aCreateTestScripterCont = EFalse, - CTestScripterController* aTestScripterController = NULL ); - - /** - * Destructor. - */ - virtual ~CTestModuleController(); - - public: // New functions - - /** - * StartEnumerateL starts the CTestModuleController active object. - */ - virtual void StartEnumerateL(); - - /** - * Init the test module - */ - virtual void InitL( TFileName& aIniFile, const TDesC& aConfigFile ); - - /** - * Add config file - */ - virtual void AddConfigFileL( TFileName& aConfigFile ); - - /** - * Remove config file - */ - virtual void RemoveConfigFileL( TFileName& aConfigFile ); - - /** - * Get Test Cases - */ - virtual CFixedFlatArray* TestCasesL(); - - /** - * Free used memory for test cases - */ - virtual void FreeTestCases(); - - /** - * Return handle to Test Server - */ - virtual RTestServer& Server( TTestInfo& aTestInfo ); - - /** - * Return the name of Test Module. - */ - virtual const TDesC& ModuleName( const TDesC& aModuleName ); - - /** - * Return reference to AtsLogger - */ - virtual CAtsLogger& AtsLogger(){ return *iAtsLogger; }; - - /** - * Is enumeration complete? - */ - virtual TBool EnumerationComplete(); - - /** - * Returns pointer to the created clone of the TestModuleController - */ - virtual CTestModuleController* CloneL( CTestModuleController* aTestModuleController, TBool aAfterReset, CTestScripterController* aTestScripterController ); - - /** - * Increases the value of iTestCaseCounter - */ - virtual void CaseCreated(); - - /** - * Decreases the value of iTestCaseCounter and checks - * can old testmodulecontroller deleted or not. - */ - virtual void CaseFinished(); - - public: // Functions from base classes - - /** - * RunL derived from CActive handles the completed requests. - */ - virtual void RunL(); - - /** - * DoCancel derived from CActive handles the cancellation - */ - virtual void DoCancel(); - - /** - * RunError derived from CActive handles errors from active handler. - */ - virtual TInt RunError( TInt aError ); - - /** - * Finds free test module controller, if not possible, creates new one. - */ - virtual CTestModuleController* GetFreeOrCreateModuleControllerL(TTestInfo& aTestInfo, TBool aUITestingSupport); - - /** - * Deletes given module controller (used only in CTestScripterController). - */ - virtual void DeleteModuleController(CTestModuleController* aRealModuleController); - - /** - * Removes given module controller from child list (used only in CTestScripterController). - */ - virtual void RemoveModuleController(CTestModuleController* aRealModuleController); - - /** - * Enumerates test module controller synchronously. - * This is used when new test module controller is created when stif - * is about to run test case. - */ - virtual void EnumerateSynchronously(void); - - protected: // New functions - // None - - protected: // Functions from base classes - // None - - private: - - /** - * By default Symbian OS constructor is private. - */ - void ConstructL( const TName& aName, - TBool aAfterReboot, - CTestScripterController* aTestScripterController ); - - /** - * Generate error report to xml result file and leave with notify. - */ - void LeaveWithNotifyL( TInt aCode, const TDesC& aText ); - - /** - * Construct ATS logger. Added this function due to compiler error with - * CW 3.0 when there are multiple TRAPDs - */ - TInt ConstructASTLoggerL( TDesC& atsName, TBool & aAfterReboot); - - protected: - /** - * Parametric constructor. - */ - CTestModuleController( CTestEngine* aEngine ); - - public: // Data - // None - - // Config file array - RPointerArray iConfigFiles; - - // Tells is TestModuleController cloned or not in -15 (KErrServerTerminated) cases. - TBool iTestModuleCrashDetected; - - private: // Data - - protected: // Data - - // Test Engine owning us - CTestEngine* iEngine; - - // Test case array - typedef CFixedFlatArray TTestCaseArray; - RPointerArray iTestCaseArray; - - // Handle to Test Server - RTestServer iServer; - - // Handle to Test Module - RTestModule iModule; - - // Module name - HBufC* iName; - - // Internal state - TTestModuleStatus iState; - - // Enumeration result - TCaseSize iEnumResultPackage; - - // Count of test cases - TInt iTestCaseCount; - - // Count of enumerated config files - TInt iEnumerateCount; - - // Count of failed enumerated config files(This is used to decrease - // iEnumerateCount) - TInt iFailedEnumerateCount; - // For removing faulty config (test case) file(s) - RPointerArray iFailedEnumerateConfig; - - // Is enumeration complete - TBool iEnumerateComplete; - - // Temporary config file for each Enumerate call - TPtrC iEnumConfigFile; - - // Pointer to CErrorPrinter - CErrorPrinter* iErrorPrinter; - // Server state handler - CServerStateHandler* iServerStateHandler; - - // ATS Logger - CAtsLogger* iAtsLogger; - - // Pointer to CTestScripterController - CTestScripterController* iTestScripterController; - // Indication is CTestScripterController's services needed. Services - // that is implemented in CTestScripterController class. - TInt iTestScripterIndicator; - - // Initialization file of Test Module - TFileName iInifile; - - // Number of running test cases - TInt iTestCaseCounter; - - // Reboot indication (moved here from ScripterControlle) - TBool iAfterReboot; - - // List of additional module controllers "owned" by current controller - // Used only with UITestingSupport and in case when every test case - // has to be run in separate process - RPointerArray iChildrenControllers; - - public: // Friend classes - // None - - protected: // Friend classes - // None - - private: // Friend classes - // None - - friend class CTestScripterController; - //friend class CTestModuleController; - friend class CTestEngine; //iTestScripterController used from CTestEngine::TestModuleCrash - - }; - -// DESCRIPTION -// CTestScripterController is for handling TestScripter's server session -// creations and handling operations that concern to TestScripter. - -class CTestScripterController - : public CTestModuleController - { - public: // Enumerations - // None - - private: // Enumerations - // None - - public: // Constructors and destructor - - /** - * Two-phased constructor. - */ - static CTestScripterController* NewL( CTestEngine* aEngine, - const TName& aName, - TBool aAfterReboot ); - - /** - * Destructor. - */ - virtual ~CTestScripterController(); - - public: // New functions - - /** - * StartEnumerateL starts the CTestModuleController active object. - */ - void StartEnumerateL(); - - /** - * Init the test module - */ - void InitL( TFileName& aIniFile, const TDesC& aConfigFile ); - - /** - * Add config file - */ - void AddConfigFileL( TFileName& aConfigFile ); - - /** - * Remove config file - */ - void RemoveConfigFileL( TFileName& aConfigFile ); - - /** - * Get Test Cases - */ - CFixedFlatArray* TestCasesL(); - - /** - * Free used memory for test cases - */ - void FreeTestCases(); - - /** - * Return handle to Test Server - */ - RTestServer& Server( TTestInfo& aTestInfo ); - - /** - * Return the name of Test Module. - */ - const TDesC& ModuleName( const TDesC& aModuleName ); - - /** - * Return reference to AtsLogger - */ - CAtsLogger& AtsLogger(){ return *iTestScripter[0]->iAtsLogger; }; - - /** - * Is enumeration complete? - */ - TBool EnumerationComplete(); - - /** - * Handles completed requests (Emulates RunL() ). - */ - void RunLEmulator( CTestModuleController* aTestModuleController ); - - /** - * Handle errors(Emulates RunError()). - */ - TInt RunErrorEmulator( TInt aError, - CTestModuleController* aTestModuleController ); - - /** - * Cancel active request(Emulates DoCancel()). - */ - void DoCancelEmulator( CTestModuleController* aTestModuleController ); - - /** - * Get current CTestScripterController. - */ - TInt GetCurrentIndex( CTestModuleController* aTestModuleController ); - - /** - * Finds free test module controller, if not possible, creates new one. - */ - CTestModuleController* GetFreeOrCreateModuleControllerL(TTestInfo& aTestInfo, TBool aUITestingSupport); - - /** - * Deletes given module controller. - */ - void DeleteModuleController(CTestModuleController *aRealModuleController); - - /** - * Removes given module controller from children list. - */ - void RemoveModuleController(CTestModuleController *aRealModuleController); - - public: // Functions from base classes - - /** - * RunL derived from CActive handles the completed requests. - */ - void RunL(); - - /** - * DoCancel derived from CActive handles the cancellation - */ - void DoCancel(); - - /** - * RunError derived from CActive handles errors from active handler. - */ - TInt RunError( TInt aError ); - - protected: // New functions - // None - - protected: // Functions from base classes - // None - - private: - - /** - * By default Symbian OS constructor is private. - */ - void ConstructL( const TName& aName, TBool aAfterReboot ); - - /** - * Parametric constructor. - */ - CTestScripterController( CTestEngine* aEngine ); - - /** - * Create name according to TestScripter and Test case file. - */ - HBufC* CreateTestScripterNameL( TFileName& aTestCaseFile, HBufC* aCreatedName ); - - public: // Data - - // Array for created CTestScripterController - RPointerArray iTestScripter; - - protected: // Data - - private: // Data - // None - - public: // Friend classes - // None - - protected: // Friend classes - // None - - private: // Friend classes - // None - - }; - -/** -* Check is module TestScripter. Does parsing and returns new module name and -* error codes(Needed operations when creating server sessions to TestScripter). -*/ -TInt GenerateModuleName(const TDesC& aModuleName, TDes& aNewModuleName); - -#endif // TEST_MODULE_CONTROLLER_H - -// End of File