--- a/stif/TestEngine/inc/TestCaseController.h Thu Jul 15 20:25:38 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