diff -r 3406c99bc375 -r 07b41fa8d1dd stif/TestCombiner/inc/TestCase.h --- a/stif/TestCombiner/inc/TestCase.h Thu Jul 15 20:25:38 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,601 +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 CTCTestCase -* and TTCTestModule. -* -*/ - -#ifndef TESTCASE_H -#define TESTCASE_H - -// INCLUDES -#include -#include -#include -#include "TestCaseNotify.h" - -// CONSTANTS -// None - -// MACROS -// None - -// DATA TYPES -// None - -// FUNCTION PROTOTYPES -// None - -// FORWARD DECLARATIONS -class CTestCombiner; - -// CLASS DECLARATION - -// DESCRIPTION -// CTestCase is a parent class for the test case runner in TestCombiner. -NONSHARABLE_CLASS(CTestCase) - :public CActive - { - public: // Enumerations - enum TTestCaseStatus - { - ETestCaseIdle, - ETestCaseRunning, - ETestCaseCompleted - }; - - enum TCaseType - { - ECaseLocal, - ECaseRemote, - }; - - private: // Enumerations - - public: // Destructor - /** - * Destructor. - */ - virtual ~CTestCase(); - - public: // New functions - /** - * Calls SetActive() from CActive. - */ - virtual void StartL(); - - /** - * Get state of the test case. - */ - TTestCaseStatus State(){ return iState; } - - /** - * Get reference to TestId. - */ - const TDesC& TestId(){ return *iTestId; } - - /** - * Get expected result. - */ - TInt ExpectedResult(){ return iExpectedResult; } - - /** - * Get expected result category. - */ - TFullTestResult::TCaseExecutionResult - ExpectedResultCategory(){ return iExpectedResultCategory; } - - /** - * Get test case type. - */ - TCaseType Type(){ return iType; } - - //--PYTHON-- begin - /** - * Get TestModule. - */ - CTCTestModule* TestModule(void){ return iTestModule; } - //--PYTHON-- end - - /** - * Checks state and additional conditions - */ - virtual TBool IsCompletelyFinished(void); - - public: // Functions from base classes - - /** - * RunL derived from CActive handles the completed requests. - */ - void RunL(); - - /** - * DoCancel derived from CActive handles the Cancel - */ - void DoCancel(); - - protected: // New functions - - /** - * Completes testcase. - */ - virtual void Complete( TInt aError ); - - protected: // Constructors - /** - * C++ default constructor. - */ - CTestCase( CTestCombiner* testCombiner, - TInt aExpectedResult, - TFullTestResult::TCaseExecutionResult aCategory, - TCaseType aType, - CTCTestModule* aModule ); //--PYTHON-- - - /** - * By default Symbian OS constructor is private. - */ - void ConstructL( TDesC& aTestId ); - - private: - - public: // Data - - // Test case result - TFullTestResult iResult; - - protected: // Data - // Test case type - TCaseType iType; - - // Backpointer - CTestCombiner* iTestCombiner; - - // Internal state - TTestCaseStatus iState; - - // Unique test id - HBufC* iTestId; - - // Expected result for the test case - TInt iExpectedResult; - - // Expected result category - TFullTestResult::TCaseExecutionResult iExpectedResultCategory; - - private: // Data - //--PYTHON-- begin - CTCTestModule* iTestModule; - //--PYTHON-- end - - public: // Friend classes - - protected: // Friend classes - - private: // Friend classes - friend class CTestRunner; - - }; - -// CLASS DECLARATION - -// DESCRIPTION -// CTCTestCase handles the running of a single testcase in TestCombiner. - -NONSHARABLE_CLASS(CTCTestCase) - :public CTestCase - { - public: // Enumerations - - private: // Enumerations - - public: // Constructors and destructor - /** - * Two-phased constructor. - */ - static CTCTestCase* NewL( CTestCombiner* testCombiner, - TDesC& aModuleName, - TDesC& aTestId, - TInt aExpectedResult, - TFullTestResult::TCaseExecutionResult aCategory, - const TDesC& aTestCaseArguments, - CTCTestModule* aModule ); //--PYTHON-- - - /** - * Destructor. - */ - ~CTCTestCase(); - - public: // New functions - /** - * Calls SetActive() from CActive. - */ - void StartL(); - - /** - * Get reference to ModuleName. - */ - const TDesC& ModuleName(){ return *iModuleName; } - - /** - * Get test case arguments - */ - const TDesC& TestCaseArguments() const; - - /** - * Get reference to RTestExecution. - */ - RTestExecution& TestExecution(){ return iTestExecution; } - - /** - * Get reference to event array. - */ - RPointerArray& EventArray(){ return iEventArray; } - - /** - * Get reference to state event array. - */ - RPointerArray& StateEventArray(){ return iStateEventArray; } - - /** - * Final complete of the testcase. - */ - void Complete2(); - - /** - * Checks state and progress notifier - */ - TBool IsCompletelyFinished(void); - - public: // Functions from base classes - - protected: // New functions - - protected: // Functions from base classes - /** - * DoCancel derived from CActive handles the Cancel - */ - void DoCancel(); - - private: - /** - * C++ default constructor. - */ - CTCTestCase( CTestCombiner* testCombiner, - TInt aExpectedResult, - TFullTestResult::TCaseExecutionResult aCategory, - CTCTestModule* aModule ); //--PYTHON-- - - /** - * By default Symbian OS constructor is private. - */ - void ConstructL( TDesC& aModuleName, TDesC& aTestId, const TDesC& aTestCaseArguments ); - - /** - * Start complete the testcase(Complete2 make the final complete). - */ - void Complete( TInt aError ); - - public: // Data - // Test case result package - TFullTestResultPckg iResultPckg; - - protected: // Data - - private: // Data - - // Progress notifier - CTestProgressNotifier* iProgress; - - // Event notifier - CTestEventNotifier* iEvent; - - // Module name - HBufC* iModuleName; - - // Test case arguments - HBufC* iTestCaseArguments; - - // Handle to test case execution - RTestExecution iTestExecution; - - // Event array for events requested by test case - RPointerArray iEventArray; - - // Event array for state events set by test case - RPointerArray iStateEventArray; - - // Command notifier - CTestCommandNotifier* iCommand; - - public: // Friend classes - - protected: // Friend classes - - private: // Friend classes - - }; - - -// CLASS DECLARATION - -// DESCRIPTION -// Testcase starting information -NONSHARABLE_CLASS(CRemoteTestCase) - :public CTestCase - { - - public: // Enumerations - enum TRemoteState - { - ECaseIdle, - ECaseRunSent, - ECaseRunning, - ECasePauseSent, - ECasePaused, - ECaseResumeSent, - ECaseCancelSent, - ECaseCancelled, - ECaseCompleted, - }; - - private: // Enumerations - - public: // Constructors and destructor - /** - * Two-phased constructor. - */ - static CRemoteTestCase* NewL( CTestCombiner* testCombiner, - TDesC& aTestId, - TInt aExpectedResult, - TFullTestResult::TCaseExecutionResult - aCategory ); - - /** - * Destructor. - */ - ~CRemoteTestCase(); - - public: // New functions - - public: // Functions from base classes - - protected: // New functions - - protected: // Functions from base classes - - private: - /** - * C++ default constructor. - */ - CRemoteTestCase( CTestCombiner* testCombiner, - TInt aExpectedResult, - TFullTestResult::TCaseExecutionResult aCategory ); - - /** - * By default Symbian OS constructor is private. - */ - void ConstructL( TDesC& aTestId ); - - public: // Data - // Remote slave state - TRemoteState iRemoteState; - - // Slave identifier - TUint32 iSlaveId; - - // Free slave after completed - TBool iFreeSlave; - - protected: // Data - - private: // Data - - public: // Friend classes - - protected: // Friend classes - - private: // Friend classes - - }; - -// CLASS DECLARATION - -// DESCRIPTION -// CRemoteSendReceive handles the running of an asynchronous 'sendreveive' -// in TestCombiner. -// Note: If want to improve sendreceive for allowing use like 'run' -// then this must inherit from CActive -NONSHARABLE_CLASS(CRemoteSendReceive) :public CBase - { - public: // Enumerations - - public: // Enumerations - enum TRemoteState - { - ECaseSend, - ECaseCompleted, - }; - - private: // Enumerations - - public: // Constructors and destructor - /** - * Two-phased constructor. - */ - static CRemoteSendReceive* NewL( CTestCombiner* aTestCombiner ); - - /** - * Destructor. - */ - ~CRemoteSendReceive(); - - public: // Constructors and destructor - - public: // New functions - - - public: // Functions from base classes - - protected: // New functions - - protected: // Functions from base classes - - private: - /** - * C++ default constructor. - */ - CRemoteSendReceive( CTestCombiner* aTestCombiner ); - - /** - * By default Symbian OS constructor is private. - */ - void ConstructL(); - - public: // Data - - // Remote slave state - TRemoteState iRemoteState; - - // Slave identifier - TUint32 iSlaveId; - - protected: // Data - - private: // Data - - // Backpointer - CTestCombiner* iTestCombiner; - - public: // Friend classes - - protected: // Friend classes - - private: // Friend classes - - }; - -// CLASS DECLARATION - - -// DESCRIPTION -// TTCTestModule encapsulates information about loaded test module. - -NONSHARABLE_CLASS(CTCTestModule) - :public CBase - { - public: // Enumerations - - private: // Enumerations - - public: // Constructors and destructor - /** - * Two-phased constructor. - */ - static CTCTestModule* NewL( CTestCombiner* testCombiner, - TDesC& aModule, - TDesC& aIni, - const TDesC& aConfigFile ); - - /** - * Destructor. - */ - ~CTCTestModule(); - - public: // Constructors and destructor - - public: // New functions - /** - * Get module name. - */ - const TDesC& ModuleName(){ return *iModuleName; } - - /** - * Get module inifile name. - */ - const TDesC& IniFile(){ return *iIniFile; } - - /** - * Get reference to RTestServer. - */ - RTestServer& TestServer(){ return iTestServer; } - - /** - * Get reference to RTestModule. - */ - RTestModule& TestModule(){ return iTestModule; } - - /** - * Get test cases from module. - */ - void GetTestCasesForCombiner(const TDesC& aConfigFile); - - /** - * Get index of given test case. - */ - TInt GetCaseNumByTitle(TDesC& aTitle, TInt& aCaseNum); - - public: // Functions from base classes - - protected: // New functions - - protected: // Functions from base classes - - private: - /** - * C++ default constructor. - */ - CTCTestModule( CTestCombiner* testCombiner ); - - /** - * By default Symbian OS constructor is private. - */ - void ConstructL( TDesC& aModule, - TDesC& aIni, - const TDesC& aConfigFile ); - - public: // Data - - protected: // Data - - private: // Data - // Backpointer - CTestCombiner* iTestCombiner; - - // Module name - HBufC* iModuleName; - // Module initialization file - HBufC* iIniFile; - - // Handle to test server - RTestServer iTestServer; - // Handle to module - RTestModule iTestModule; - - // Error notifier - CTestErrorNotifier* iErrorPrinter; - - // Array of test cases used to find test case number by title - CFixedFlatArray* iTestCases; - - public: // Friend classes - - protected: // Friend classes - - private: // Friend classes - - }; - -#endif // TESTCASE_H - -// End of File