stif/TestEngine/inc/TestModuleController.h
changeset 38 169364e7e4b4
parent 34 7259cf1302ad
child 45 185201be11b0
--- 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 <e32std.h>
-#include <e32base.h>
-#include <atslogger.h>
-#include <StifTestInterface.h>
-#include <stifinternal/TestServerClient.h>
-
-// 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<TTestInfo>* 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<HBufC>            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<TTestCaseInfo> TTestCaseArray;
-        RPointerArray<TTestCaseArray>   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<HBufC>            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<CTestModuleController> 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<TTestInfo>* 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<CTestModuleController> 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