stif/TestEngine/inc/TestCaseController.h
changeset 36 813b186005b6
parent 30 86a2e675b80a
child 41 838cdffd57ce
--- a/stif/TestEngine/inc/TestCaseController.h	Mon Jun 28 15:36:07 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,910 +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 
-* CTestCaseController, the CTestProgressNotifier and the 
-* CTestEventNotifier.
-*
-*/
-
-#ifndef TEST_CASE_CONTROLLER_H
-#define TEST_CASE_CONTROLLER_H
-
-//  INCLUDES
-#include <e32std.h>
-#include <e32base.h>
-#include <stifinternal/TestServerClient.h>
-#include <atslogger.h>
-#include "TestEngine.h"
-#include "TestCallBack.h"
-
-#include "StifHWReset.h"
-
-// CONSTANTS
-// None
-
-// MACROS
-// None
-
-// DATA TYPES
-// None
-
-// FUNCTION PROTOTYPES
-// None
-typedef CStifHWReset*( *CTestInterfaceFactory )();
-
-// FORWARD DECLARATIONS
-class CTestModuleController;
-class CTestReport;
-class CTestCaseTimeout;
-
-// CLASS DECLARATION
-
-// DESCRIPTION
-// CTestCaseController is an active object used for running the test case
-// using the RTestExecution API.
-class CTestCaseController
-        : public CActive
-    {
-    public:     // Enumerations
-        // None
-
-    private:    // Enumerations
-
-        // TTestCaseStatus defines the status of test case
-        enum TTestCaseStatus
-            {
-            ETestCaseIdle,
-            ETestCaseRunning,
-            ETestCaseCompleted,
-            ETestCaseTimeout,
-            ETestCaseSuicided, //test case has killed itself
-            };
-
-    public:     // Constructors and destructor
-
-        /**
-        * Two-phased constructor.
-        */
-        static CTestCaseController* NewL( CTestEngine* aEngine,
-            CTestReport* aTestReport,
-            CAtsLogger& aAtsLogger,
-            RTestExecution aTestExecution, 
-            const TTestInfo& aTestInfo );
-
-        /**
-        * Destructor.
-        */
-        ~CTestCaseController();
-
-    public:     // New functions
-
-        /**
-        * StartL starts the CTestCaseController active object.
-        */
-        void StartL( const RMessage2& aMessage );
-
-        /**
-        * Timeouts a testcase
-        */
-        void Timeout();
-
-        /**
-        * Kills a testcase
-        */
-        void Suicide(TStopExecutionType aType, TInt aCode);
-
-    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 );
-        
-        /**
-        * Get testcase info(test module, config file, test case, etc).
-        */
-        void GetTestCaseInfo( TTestInfo& aTestInfo );
-
-    protected:  // New functions
-        // None
-
-    protected:  // Functions from base classes
-        // None
-
-    private:
-
-        /**
-        * By default Symbian OS constructor is private.
-        */
-        void ConstructL();
-
-        /**
-        * Parametric C++ constructor.
-        */
-        CTestCaseController( CTestEngine* aEngine, 
-                             CTestReport* aTestReport,
-                             CAtsLogger& aAtsLogger,
-                             RTestExecution aTestExecution,
-                             const TTestInfo& aTestInfo );
-        
-        /**
-        * Generates XML log about the test case.
-        */
-        void GenerateXmlLogL();
-
-    public:     // Data
-        // None
-    
-    protected:  // Data
-        // None
-
-    private:    // Data
-
-        // Pointer to CTestEngine
-        CTestEngine*        iEngine;
-
-        // Pointer to Test Report
-        CTestReport*        iTestReport;
-
-        // Handle to RTestExecution
-        RTestExecution      iTestExecution;
-
-        // Pointer to timeout handler
-        CTestCaseTimeout*    iTimeout;
-
-        // Test Info
-        TTestInfo           iTestInfo;
-
-        // Test case arguments
-		HBufC*              iTestCaseArguments;
-        
-        // Internal state
-        TTestCaseStatus     iState;
-
-        // Test Result
-        TFullTestResult     iResult;
-        TFullTestResultPckg iResultPckg;
-
-        // Message to be completed when case is finished
-        RMessage2            iMessage;
-
-        // AtsLogger
-        CAtsLogger&         iAtsLogger;
-
-        // RDebug logging for testcase status
-        CStifLogger*        iRDebugLogger;
-
-        // Stop execution type
-        TStopExecutionType  iStopExecutionType;
-
-    public:     // Friend classes
-        // None
-
-    protected:  // Friend classes
-        // None
-
-    private:    // Friend classes
-
-        friend class CTestRemoteCmdNotifier;
-
-    };
-
-// DESCRIPTION
-// CTestProgressNotifier is an active object used for notifications called from
-// Test Module using the RTestExecution API.
-class CTestProgressNotifier
-        : public CActive
-    {
-    public:     // Enumerations
-        // None
-
-    private:    // Enumerations
-
-        // TTestProgressStatus defines the status of notification
-        enum TTestProgressStatus
-            {
-            ETestProgressIdle,
-            ETestProgressPending,
-            ETestProgressCompleted
-            };
-
-    public:     // Constructors and destructor
-
-        /**
-        * Two-phased constructor.
-        */
-        static CTestProgressNotifier* NewL( CTestEngine* aEngine, 
-                             RTestExecution aTestExecution );
-
-        /**
-        * Destructor.
-        */
-        ~CTestProgressNotifier();
-
-    public:     // New functions
-
-        /**
-        * StartL starts the CTestProgressNotifier active object.
-        */
-        void StartL( const RMessage2& aMessage );
-
-    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:
-
-        /**
-        * By default Symbian OS constructor is private.
-        */
-        void ConstructL();
-
-        /**
-        * Parametric C++ constructor.
-        */
-        CTestProgressNotifier( CTestEngine* aEngine, 
-                               RTestExecution aTestExecution );
-
-    public:     // Data
-        // None
-
-    protected:  // Data
-        // None
-
-    private:    // Data
-
-        // Pointer to CTestEngine
-        CTestEngine*        iEngine;
-
-        // Handle to RTestExecution
-        RTestExecution      iTestExecution;
-
-        // Internal state
-        TTestProgressStatus iState;
-
-        // Test Progress
-        TTestProgress       iProgress;
-        TTestProgressPckg   iProgressPckg;
-
-        // Message to be completed when notification is completed
-        RMessage2           iMessage;
-        
-    public:     // Friend classes
-        // None
-
-    protected:  // Friend classes
-        // None
-
-    private:    // Friend classes
-        // None
-
-    };
-
-// DESCRIPTION
-// CTestEventNotifier is an active object used for event notify from
-// Test Module using the RTestExecution API.
-class CTestEventNotifier
-        : public CActive
-    {
-    public:     // Enumerations
-        // None
-
-    private:    // Enumerations
-
-        // TTestEventStatus defines the status of notification
-        enum TTestEventStatus
-            {
-            ETestEventIdle,
-            ETestEventPending,
-            ETestEventCompleted
-            };
-
-    public:     // Constructors and destructor
-
-        /**
-        * Two-phased constructor.
-        */
-        static CTestEventNotifier* NewL( CTestEngine* aEngine,  
-            RTestExecution aTestExecution );
-
-        /**
-        * Destructor.
-        */
-        ~CTestEventNotifier();
-        
-    public:     // New functions
-
-        /**
-        * StartL starts the CTestEventNotifier active object.
-        */
-        void Start();
-
-        /**
-        * For event control.
-        */
-        void CtlEvent( const TEventIf& aEvent, TRequestStatus& aStatus );
-
-		/**
-		* Check if CtlEvent should be called
-		*/
-        TBool CheckCtlEvent( const TEventIf& aEvent );
-
-    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:
-
-        /**
-        * By default Symbian OS constructor is private.
-        */
-        void ConstructL();
-
-        /**
-        * Parametric C++ constructor.
-        */
-        CTestEventNotifier( CTestEngine* aEngine,
-             RTestExecution aTestExecution);
-
-    public:     // Data
-        // None
-
-    protected:  // Data
-        // None
-
-    private:    // Data
-
-        // Pointer to CTestEngine
-        CTestEngine* iEngine;
-
-        // Handle to RTestExecution
-        RTestExecution iTestExecution;
-
-        // Internal state
-        TTestEventStatus iState;
-
-        // Event interface
-        TEventIf iEvent;
-        TEventIfPckg iEventPckg;
-        TEventIf iEventNotify;
-        TEventIfPckg iEventNotifyPckg;
-
-        // Event array
-        RPointerArray<HBufC> iEventArray;
-
-        // Associated event controller
-        CTestEventController* iController;
-
-    public:     // Friend classes
-        // None
-
-    protected:  // Friend classes
-        // None
-
-    private:    // Friend classes
-        // None
-
-    };
-
-// DESCRIPTION
-// CTestEventController is used for event controlling from
-// TestEngine.
-class CTestEventController
-        : public CBase
-    {
-    public:     // Enumerations
-        // None
-
-    private:    // Enumerations
-
-    public:     // Constructors and destructor
-
-        /**
-        * Two-phased constructor.
-        */
-        static CTestEventController* NewL( CTestEngine* aEngine,
-                                           const TEventIf& aEvent,
-                                           TRequestStatus* aStatus );
-  
-        static CTestEventController* NewL( CTestEngine* aEngine,
-                                           const TEventIf& aEvent,
-                                           RMessage2& aMessage );
-
-        /**
-        * Destructor.
-        */
-        ~CTestEventController();
-
-    public:     // New functions
-        /**
-        * Event complete.
-        */ 
-        void EventComplete();
-
-    public:     // Functions from base classes
-
-    protected:  // New functions
-        // None
-
-    protected:  // Functions from base classes
-        // None
-
-    private:
-
-        /**
-        * By default Symbian OS constructor is private.
-        */
-        void ConstructL( TRequestStatus* aStatus );
-
-        /**
-        * By default Symbian OS constructor is private.
-        */
-        void ConstructL( RMessage2& aMessage );
-
-        /**
-        * Parametric C++ constructor.
-        */
-        CTestEventController( CTestEngine* aEngine, const TEventIf& aEvent );
-
-        /**
-        * Check all events.
-        */ 
-        TBool CheckEventsL();
-
-        /**
-        * Check client events.
-        */ 
-        TBool CheckClientEventsL();
-
-        /**
-        * Check testcase events.
-        */ 
-        TBool CheckTestcaseEventsL(); 
-
-        /**
-        * Callback for event controller.
-        */ 
-        static TInt EventCallBack( TAny* aTestEventController );
-
-    public:     // Data
-        // None
-    
-    protected:  // Data
-        // None
-
-    private:    // Data
-
-        // Pointer to CTestEngine
-        CTestEngine*    iEngine;
-
-        // Either of these is completed when ready
-        // If aRequestStatus exists, it is completed,
-        // otherwise aMessage is completed.
-        TRequestStatus* iRequestStatus;
-        RMessage2        iMessage;
-
-        // Event interface
-        TEventIf iEvent;
-        TEventIfPckg iEventPckg;
-
-        // Number of active event commands
-        TInt iActiveEventCmds;
-        
-        RPointerArray<CCallBack> iEventCallBacks;
-
-    public:     // Friend classes
-        // None
-
-    protected:  // Friend classes
-        // None
-
-    private:    // Friend classes
-        // None
-
-    };
-
-// DESCRIPTION
-// CTestCaseTimeout is used for time controlling
-class CTestCaseTimeout
-        : public CActive
-    {
-    public:     // Enumerations
-        // None
-
-    private:    // Enumerations
-        // None
-         
-    public:     // Constructors and destructor
-        
-        /**
-        * Two-phased constructor.
-        */
-        static CTestCaseTimeout* NewL( CTestCaseController* aCase,
-                     TTimeIntervalMicroSeconds aTimeout );
-
-        /**
-        * Destructor.
-        */
-        ~CTestCaseTimeout();
-        
-    public:     // New functions
-        
-        /**
-        * Starts timeout counting
-        */
-        void Start();
-
-    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:
-
-        /**
-        * By default Symbian OS constructor is private.
-        */
-        void ConstructL(CTestCaseController* aCase,
-               TTimeIntervalMicroSeconds aTimeout );
-
-        /**
-        * C++ constructor.
-        */
-        CTestCaseTimeout();
-
-    public:     // Data
-        // None
-    
-    protected:  // Data
-        // None
-
-    private:    // Data
-        CTestCaseController* iCase;
-        TTimeIntervalMicroSeconds iTimeout;
-        RTimer iTimer;
-        
-        // Storage for testcase timeout.
-        TTime iTestCaseTimeout;
-
-    public:     // Friend classes
-        // None
-
-    protected:  // Friend classes
-        // None
-
-    private:    // Friend classes
-        // None
-
-    };
-    
-// DESCRIPTION
-// CTestProgressNotifier is an active object used for notifications called from
-// Test Module using the RTestExecution API.
-class CTestRemoteCmdNotifier
-        : public CActive
-    {
-    public:     // Enumerations
-        // None
-
-    private:    // Enumerations
-
-        // TTestProgressStatus defines the status of notification
-        enum TTestProgressStatus
-            {
-            ETestProgressIdle,
-            ETestProgressPending,
-            ETestProgressCompleted
-            };
-
-    public:     // Constructors and destructor
-
-        /**
-        * Two-phased constructor.
-        */
-        static CTestRemoteCmdNotifier* NewL( CTestEngine* aEngine, 
-                             RTestExecution aTestExecution ,
-                             CTestCaseController* aTestCaseController,
-                             CAtsLogger& aAtsLogger );
-
-        /**
-        * Destructor.
-        */
-        ~CTestRemoteCmdNotifier();
-
-    public:     // New functions
-
-        /**
-        * StartL starts the CTestRemoteCmdNotifier active object.
-        */
-        //void StartL( const RMessage& aMessage );
-
-        /**
-        * EnableReceive prepares to start active object
-        */
-        void EnableReceive( const RMessage2& aMessage );
-
-        /**
-        * GetReceivedMsg get received message.
-        */
-        void GetReceivedMsg( const RMessage2& aMessage );
-
-        /**
-        * Start starts the CTestCaseController active object.
-        */
-        void Start( const RMessage2& aMessage );
-
-        /**
-        * CancelReq cancels the request.
-        */
-        void CancelReq();
-
-    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:
-
-        /**
-        * By default Symbian OS constructor is private.
-        */
-        void ConstructL();
-
-        /**
-        * Parametric C++ constructor.
-        */
-        CTestRemoteCmdNotifier( CTestEngine* aEngine, 
-                               RTestExecution aTestExecution,
-                               CTestCaseController* aTestCaseController,
-                               CAtsLogger& aAtsLogger );
-
-        /**
-        * Loads dynamically reset module.
-        */
-        TInt DynamicResetModule( CTestModuleIf::TRebootType aResetType );
-
-    public:     // Data
-        // None
-
-    protected:  // Data
-        // None
-
-    private:    // Data
-
-        // Pointer to CTestEngine
-        CTestEngine*        iEngine;
-
-        // Handle to RTestExecution
-        RTestExecution      iTestExecution;
-
-        // Internal state
-        TTestProgressStatus iState;
-
-        // Remote command's definition
-        TStifCommand          iRemoteType;
-        TStifCommandPckg      iRemoteTypePckg;
-                
-        TInt                    iMsgSize;              
-        TPckg<TInt>             iMsgSizePckg;              
-
-        // Message to be completed when notification is completed
-        RMessage2           iMessage;
-        
-        HBufC8*             iReceivedMsg;
-
-        TInt                iRebootCode;
-        TName               iRebootName;
-
-        // Pointer to CTestCaseController
-        CTestCaseController* iTestCaseController;
-
-        TBool               iMessageAvail;
-        
-        CAtsLogger&         iAtsLogger;
-
-    public:     // Friend classes
-        // None
-
-    protected:  // Friend classes
-        // None
-
-    private:    // Friend classes
-        // None
-
-    };
-
-// DESCRIPTION
-// CTestCommandNotifier is an active object used for command notify from
-// Test Module using the RTestExecution API.
-// It was created to allow test case to kill itself.
-class CTestCommandNotifier: public CActive
-    {
-    public:     // Enumerations
-        // None
-
-    private:    // Enumerations
-        // None
-
-    public:     // Constructors and destructor
-
-        /**
-        * Two-phased constructor.
-        */
-        static CTestCommandNotifier* NewL(CTestEngine* aEngine, RTestExecution aTestExecution);
-
-        /**
-        * Destructor.
-        */
-        ~CTestCommandNotifier();
-
-    public:     // New functions
-
-        /**
-        * StartL starts the CTestCommandNotifier active object.
-        */
-        void Start();
-
-    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:
-
-        /**
-        * By default Symbian OS constructor is private.
-        */
-        void ConstructL();
-
-        /**
-        * Parametric C++ constructor.
-        */
-        CTestCommandNotifier(CTestEngine* aEngine, RTestExecution aTestExecution);
-
-    public:     // Data
-        // None
-
-    protected:  // Data
-        // None
-
-    private:    // Data
-
-        // Pointer to CTestEngine
-        CTestEngine*     iEngine;
-
-        // Handle to RTestExecution
-        RTestExecution   iTestExecution;
-
-        // Command to be sent
-        TCommand                        iCommand;
-        TCommandPckg                    iCommandPckg;
-        TBuf8<KMaxCommandParamsLength2>  iParamsPckg;
-
-    public:     // Friend classes
-        // None
-
-    protected:  // Friend classes
-        // None
-
-    private:    // Friend classes
-        // None
-
-    };
-
-
-#endif // TEST_CASE_CONTROLLER_H
-
-// End of File