stif/stif_plat/inc/TestEngineClient.h
changeset 38 169364e7e4b4
parent 34 7259cf1302ad
child 45 185201be11b0
--- a/stif/stif_plat/inc/TestEngineClient.h	Tue Jul 06 16:05:13 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,555 +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 
-* RTestEngineServer, RTestEngine and RTestCase.
-*
-*/
-
-#ifndef TEST_ENGINE_CLIENT_H
-#define TEST_ENGINE_CLIENT_H
-
-//  INCLUDES
-#include <e32std.h>
-#include <e32base.h>
-#include <hal.h>
-#include <StifTestInterface.h>
-#include <StifTestEventInterface.h>
-#include <StifLogger.h>
-
-#include <StifTFwIfProt.h>
-
-// CONSTANTS
-// None
-
-// Start and end tags for STIF setting denitions
-_LIT( KStifSettingsStartTag, "[StifSettings]" );
-_LIT( KStifSettingsEndTag, "[EndStifSettings]" );
-// Tag for cabs modifier name
-_LIT( KCapsModifier, "CapsModifier=" );
-// Test module thread heap and stack names
-_LIT( KUserDefStackSize, "TestThreadStackSize=" );
-_LIT( KUserDefMinHeap, "TestThreadMinHeap=" );
-_LIT( KUserDefMaxHeap, "TestThreadMaxHeap=" );
-
-// Global mutex name
-_LIT( KStifTestServerStartupMutex, "KStifTestServerStartupMutex" );
-
-// MACROS
-// None
-
-// DATA TYPES
-
-// Opcodes used in message passing between client and server
-enum TTestEngineRequests
-    {
-    // RTestEngineServer requests
-    ETestEngineServerCloseSession,
-    // RTestEngine requests
-    ETestEngineCreateSubSession,
-    ETestEngineCloseSubSession,
-    ETestEngineSetAttribute,
-    ETestEngineAddTestModule,
-    ETestEngineRemoveTestModule,
-    ETestEngineAddConfigFile,
-    ETestEngineRemoveConfigFile,
-    ETestEngineEnumerateTestCases,
-    ETestEngineGetTestCases,    
-    ETestEngineCancelAsyncRequest,
-    ETestEngineEvent,
-    ETestEngineErrorNotification,
-    ETestEngineLoggerSettings,
-    ETestEngineCloseLoggerSettings,
-    ETestEngineReportTestCase, //Add info about executed test case to test report. Used by reboot mechanism
-    // RTestCase requests
-    ETestCaseCreateSubSession,
-    ETestCaseCloseSubSession,
-    ETestCaseRunTestCase,
-    ETestCasePause,
-    ETestCaseResume,
-    ETestCaseNotifyProgress,
-    ETestCaseNotifyRemoteType,
-    ETestCaseNotifyRemoteMsg,
-    ETestCaseCancelAsyncRequest,
-    ETestCaseNotifyCommand,
-    };
-
-// Package for test case count, used in EnumerateTestCases method
-typedef TPckgBuf<TInt> TCaseCount;
-
-// A set of test engine settings which can be set/read by SettingServer
-struct TEngineSettings
-    {
-    TBool iUITestingSupport;
-    TBool iSeparateProcesses;
-    };
-
-// FUNCTION PROTOTYPES
-// None
-
-// FORWARD DECLARATIONS
-// Template class delivering test cases from Test Module
-template <class T> class CFixedFlatArray;
-
-// CLASS DECLARATION
-
-// DESCRIPTION
-// RTestEngineServer is a client class of Test Engine Server
-// The connect function starts the server, if is not already running.
-// An RSessionBase sends messages to the server with
-// the function RSessionBase::SendReceive();
-// specifying an opcode (TTestEngineReq) and array of argument pointers.
-
-class RTestEngineServer
-        : public RSessionBase 
-    {
-    public:     // Enumerations
-
-    private:    // Enumerations
-
-    public:     // Constructors and destructor
-
-        /**
-        * Closes the RTestEngineServer session.
-        */
-        IMPORT_C void Close();
-
-    public:     // New functions
-
-        /**
-        * Connect method creates new RTestEngineServer session that is used
-        * to manage the test case execution.
-        */
-        IMPORT_C TInt Connect();
-
-        /**
-        * Version returns client side version number from the 
-        * RTestEngineServer.
-        */
-        IMPORT_C TVersion Version() const;
-
-    public:     // Functions from base classes
-
-    protected:  // New functions
-
-    protected:  // Functions from base classes
-
-    private:    // New functions
-
-    public:     // Data
-
-    protected:  // Data
-
-    private:    // Data
-
-    public:     // Friend classes
-
-    protected:  // Friend classes
-
-    private:    // Friend classes
-
-    };
-
-// DESCRIPTION
-
-// RTestEngine class represents a subsession with the RTestEngineServer.
-// Each RTestEngine corresponds to a specific CTestEngine (a CObject derived
-// class) in the server. Messages are passed via the RTestEngineServer.
-// A RTestEngine stores a handle from it's server side CTestEngine, and uses
-// this to identify the CTestEngine during communication.
-
-class RTestEngine
-        : public RSubSessionBase 
-    {
-
-    public:     // Enumerations
-
-    private:    // Enumerations
-
-    public:     // Constructors and destructor
-
-        /**
-        * Open creates a subsession to Test Engine and opens new handle to
-        * RTestEngine. The RTestEngineServer subsession shall be created by
-        * calling RTestEngineServer::Connect before calling Open to create new
-        * RTestEngine subsession.
-        */
-        IMPORT_C TInt Open( RTestEngineServer& aServer,
-                            const TFileName& aIniFile );
-
-        /**
-        * Closes the RTestEngine subsession.
-        */
-        IMPORT_C void Close();
-
-    public:     // New functions
-
-        /**
-        * Sets attributes to Test Framework
-        */
-        IMPORT_C TInt SetAttribute( TAttribute aAttribute,
-                                    const TDesC& aValue );
-
-        /**
-        * AddTestModule is used to add dynamically a new Test Module to the
-        * Test Framework. Test cases can then be run from the new Test Module
-        * without restarting the Test Framework.
-        * If the Test Module specified by aTestModule doesn't exists this
-        * method returns KErrNotFound. If the Test Module has been already
-        * loaded this method returns KErrAlreadyExists.
-        */
-        IMPORT_C TInt AddTestModule( const TName& aTestModule,
-                                     const TFileName& aIniFile );
-
-        /**
-        * RemoveTestModule is used to remove the existing Test Module from Test
-        * Framework. If there are not test cases executing in the Test Module
-        * it will be shut down.
-        * If there is test case running from the Test Module this method
-        * returns KErrInUse.
-        * If the Test Module specified by aTestModule is not loaded this method
-        * returns KErrNotFound.
-        */
-        IMPORT_C TInt RemoveTestModule( const TName& aTestModule );
-
-        /**
-        * AddConfigFile is used to add dynamically a new config file to the
-        * Test Module specified by aTestModule. New test cases are then 
-        * executed by calling first GetTestCases and then RunTestCase. Thus
-        * new test cases can be run from the Test Module without restarting
-        * the Test Framework.
-        */
-        IMPORT_C TInt AddConfigFile( const TName& aTestModule,
-                                     const TFileName& aConfigFile );
-
-        /**
-        * RemoveConfigFile is used to remove a config file from the
-        * Test Module specified by aTestModule. 
-        */
-        IMPORT_C TInt RemoveConfigFile( const TName& aTestModule,
-                                        const TFileName& aConfigFile );
-
-        /**
-        * Test cases are inquired by two-phased operation calling first the
-        * EnumerateTestCases method and then the GetTestCases. Test cases are
-        * inquired from Test Engine that will inquire them from Test Modules.
-        * EnumerateTestCases requests the needed array size for test cases that
-        * will be inquired by GetTestCases method. When the EnumerateTestCases
-        * is completed succesfully the GetTestCases method is called to
-        * retrieve test cases to CArrayFixFlat <TTestInfo> list object.
-        *
-        * TTestInfo defines individual test case and, if needed, a test set
-        * (TName iParent) where the test case belongs to. TTestInfo is used to
-        * create test case by calling RTestCase::Open that constructs the
-        * actual test case. Test case is then executed calling
-        * RTestCase::RunTestCase.
-        */
-        IMPORT_C void EnumerateTestCases( TCaseCount& aCount,
-                                          TRequestStatus& aStatus );
-
-        /**
-        * GetTestCases retrieves test cases from Test Modules to 
-        * aTestCaseBuffer that is a list consisting of several TTestInfo 
-        * objects. If this method is called without previously succesfully
-        * called EnumerateTestCases method, this function returns the
-        * KErrNotReady.
-        */
-        IMPORT_C TInt GetTestCases(
-                            CFixedFlatArray<TTestInfo>& aTestCaseBuffer );
-
-        /**
-        * Asynchronous request can be canceled with CancelAsyncRequest method.
-        * The aReqToCancel parameter defines the request that will be canceled.
-        */
-        IMPORT_C TInt CancelAsyncRequest( TInt aReqToCancel );
-        
-        /**
-        * Event is used to get and set events in STIF Test Framework.
-        * TEventIf defines the event request information.
-        */
-        IMPORT_C void Event( TEventIfPckg& aEvent,
-                             TRequestStatus& aStatus );
-
-        /**
-        * Used to get Logger's overwrite parameters.
-        */
-        IMPORT_C TInt OpenLoggerSession( RTestEngineServer& aServer,
-                                            TLoggerSettings& aLoggerSettings );
-
-        /**
-        * ErrorNotification obtains error notifications from test engine.
-        */
-        IMPORT_C void ErrorNotification( TErrorNotificationPckg& aError,
-                                         TRequestStatus& aStatus );
-
-        /**
-        * Add info about test case to test report.
-        */
-        IMPORT_C TInt AddTestCaseResultToTestReport(const TTestInfo& aTestInfo,
-                                                    const TFullTestResult& aTestResult,
-                                                    const TInt aError);
-                                         
-    public:     // Functions from base classes
-        
-    protected:  // New functions
-
-    protected:  // Functions from base classes
-
-    private:    // New functions
-
-    public:     // Data
-
-    protected:  // Data
-
-    private:    // Data
-
-    public:     // Friend classes
-
-    protected:  // Friend classes
-
-    private:    // Friend classes
-
-    };
-    
-// DESCRIPTION
-
-// RTestCase class represents a subsession with the RTestEngineServer.
-// Each RTestCase corresponds to a specific CTestExecution (a CObject
-// derived class) in the server. Messages are passed via the RTestEngineServer.
-// A RTestCase stores a handle from it's server side CTestExecution,
-// and uses this to identify the CTestExecution during communication.
-
-class RTestCase
-        : public RSubSessionBase 
-    {
-
-    public:     // Structured classes
-
-    public:     // Enumerations
-
-    private:    // Enumerations
-
-    public:     // Constructors and destructor
-
-        /**
-        * Open creates a subsession for new test case. Test case is initialized
-        * using aTestCaseInfo parameter. The aTestCaseInfo is TTestInfoPckg 
-        * that is a packaged TTestInfo. TTestInfo is got from the Test Engine
-        * by calling RTestEngine::GetTestCases method.
-        * If there was previously called RemoveTestModule for the Test Module
-        * that is defined in aTestCaseInfo this method returns KErrLocked.
-        * This means that new test cases cannot be run from this Test Module
-        * and the user should inquire test cases available calling 
-        * RTestEngine::GetTestCases.
-        */
-        IMPORT_C TInt Open( RTestEngineServer& aServer,
-                                const TTestInfoPckg& aTestCaseInfo );
-
-        /**
-        * Closes the RTestCase subsession. Test case is normally closed
-        * immediately after the test case was completed.
-        */
-        IMPORT_C void Close();
-
-    public:     // New functions
-
-        /**
-        * RunTestCase is asynchronous method and it is completed when the test
-        * case is completed. Result of the test case is returned to 
-        * aTestResult. The aTestResult is TFullTestResultPckg that is a
-        * packaged TFullTestResult.
-        * The aStatus will have the completion result of this function. If the
-        * test case could be run (despite of succesfully or not) the KErrNone 
-        * is returned to aStatus.
-        */
-        IMPORT_C void RunTestCase( TFullTestResultPckg& aTestResult,
-                                    TRequestStatus& aStatus );
-
-        /**
-        * RunTestCase is asynchronous method and it is completed when the test
-        * case is completed. Result of the test case is returned to 
-        * aTestResult. The aTestResult is TFullTestResultPckg that is a
-        * packaged TFullTestResult.
-        * The aStatus will have the completion result of this function. If the
-        * test case could be run (despite of succesfully or not) the KErrNone 
-        * is returned to aStatus.
-        */
-        IMPORT_C void RunTestCase( TFullTestResultPckg& aTestResult,
-                                   const TDesC& aTestCaseArgs,
-                                   TRequestStatus& aStatus );        
-
-        /**
-        * Pause suspends the execution of the test case. The subsession where
-        * the test case is run is suspended and thus the test case execution is
-        * suspended. Test case execution can be later resumed by calling 
-        * Resume.
-        */
-        IMPORT_C TInt Pause();
-
-        /**
-        * Resume is used to resume the test case suspended by previously called
-        * Pause method. The test case execution should be continued immediately
-        * when the Resume is called.
-        */
-        IMPORT_C TInt Resume();
-
-        /**
-        * NotifyProgress requests different progress information from the test
-        * case execution. This information can be printed to UI. The progress
-        * information is returned to aProgress. The aProgress is
-        * TTestProgressPckg that is a packaged TTestProgress 
-        */
-        IMPORT_C void NotifyProgress( TTestProgressPckg& aProgress,
-                                        TRequestStatus& aStatus );
-                                        
-        /**
-        * NotifyRemoteType requests enable message waiting.
-        */
-        IMPORT_C void NotifyRemoteType( TStifCommandPckg& aType,
-                                        TPckg<TInt>& aMsgSize,
-                                        TRequestStatus& aStatus );
-        /**
-        * NotifyRemoteMsg gets messages.
-        */
-        IMPORT_C TInt NotifyRemoteMsg( TDes8& aMessage,
-                                       TStifCommand aType );
-
-        /**
-        * Asynchronous request can be canceled with CancelAsyncRequest method.
-        * The aReqToCancel parameter defines the request that will be canceled.
-        */
-        IMPORT_C TInt CancelAsyncRequest( TInt aReqToCancel );
-
-    public:     // Functions from base classes
-        
-    protected:  // New functions
-
-    protected:  // Functions from base classes
-
-    private:    // New functions
-
-    public:     // Data
-    
-    protected:  // Data
-
-    private:    // Data
-
-    public:     // Friend classes
-
-    protected:  // Friend classes
-
-    private:    // Friend classes
-
-    };
-
-/*
--------------------------------------------------------------------------------
-
-    DESCRIPTION
-
-    This contains the CFixedFlatArray class definitions.
-
--------------------------------------------------------------------------------
-*/
-template <class T>
-class CFixedFlatArray 
-        :public CBase
-    {
-    public:     // Enumerations
-
-    private:    // Enumerations
-
-    public:     // Constructors and destructor
-        
-        /**
-        * Two-phased constructor.
-        */
-        inline static CFixedFlatArray<T>* NewL(const TInt aSize);
-
-        /**
-        * Destructor.
-        */
-        inline ~CFixedFlatArray();
-
-    public:     // New functions
-
-        /**
-        * Return descriptor containing array. Used in server calls
-        */
-        inline TPtr8& Des();
-
-        /**
-        * Returns CFixedFlatArray internal array. Used in server calls
-        */
-        inline T& operator[] (TInt aIndex) const;
-
-        /**
-        * Returns count
-        */
-        inline TInt Count() const;
-
-        /**
-        * Sets aBuf to array slot specified by aIndex
-        */
-        inline void Set( TInt aIndex, T& aBuf );
-
-    public:     // Functions from base classes
-
-    protected:  // New functions
-
-    protected:  // Functions from base classes
-
-    private:
-
-        /**
-        * By default Symbian OS constructor is private.
-        */
-        inline void ConstructL(const TInt aSize);
-
-        /**
-        * C++ default constructor.
-        */
-        inline CFixedFlatArray();
-
-        /**
-        * Check that given index is correct.
-        */
-        inline void CheckIndex( TInt aIndex ) const;
-
-    protected:  // Data
-
-    private:    // Data
-        // Array
-        T*      iArray;
-
-        // Count
-        TInt    iCount;
-
-        // Buffer
-        HBufC8* iBuffer;
-        TPtr8   iBufferPtr;
-
-    public:     // Friend classes
-
-    protected:  // Friend classes
-
-    private:    // Friend classes
-
-    };
-
-#include <TestEngineClient.inl>
-
-
-#endif // TEST_ENGINE_CLIENT_H
-
-// End of File