/*
* 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 CStifTFwIf.
*
*/
#ifndef STIF_TFW_IF_H
#define STIF_TFW_IF_H
// INCLUDES
#include <e32std.h>
#include <e32base.h>
#include <StifTestModule.h>
#include <StifTestInterface.h>
// CONSTANTS
// None
// MACROS
// Hardcoded deviceid used if DevId function is not overridden
const TUint16 KDefaultDevId = 0x0001;
// DATA TYPES
// FUNCTION PROTOTYPES
// None
// FORWARD DECLARATIONS
class CStifTFw;
// CLASS DECLARATION
// Information of test case
class CTestInfo
:public CBase
{
public:
IMPORT_C static CTestInfo* NewL();
~CTestInfo();
public:
const TDesC& ModuleName () const { return iModuleName; };
TInt SetModuleName ( const TDesC& aModuleName );
const TDesC& TestCaseTitle() const { return iTitle; };
TInt SetTestCaseTitle ( const TDesC& aTitle );
const TDesC& TestCaseFile() const { return iTestCaseFile; };
TInt SetTestCaseFile ( const TDesC& aTestCaseFile );
TInt TestCaseNum() const { return iCaseNumber; };
void SetTestCaseNumber ( TInt aTestCaseNumber )
{ iCaseNumber = aTestCaseNumber; };
TInt Priority() const { return iPriority; };
void SetPriority ( TInt aPriority )
{ iPriority = aPriority; };
TTimeIntervalMicroSeconds Timeout() const { return iTimeout; };
void SetTimeout ( const TTimeIntervalMicroSeconds& aTimeout )
{ iTimeout = aTimeout; };
TInt ExpectedResult() const { return iExpectedResult; };
void CopyL( const CTestInfo& aTestInfo );
TBool operator==(const CTestInfo& aTestInfo) const;
private:
CTestInfo();
void ConstructL();
CTestInfo( const CTestInfo& /*aTestInfo*/ ){};
CTestInfo& operator= ( const CTestInfo& );
private:
TInt iCaseNumber;
TInt iExpectedResult;
TTimeIntervalMicroSeconds iTimeout;
TInt iPriority;
TPtrC iModuleName;
HBufC* iModuleNameBuf;
TPtrC iTitle;
HBufC* iTitleBuf;
TPtrC iTestCaseFile;
HBufC* iTestCaseFileBuf;
};
// CLASS DECLARATION
// CStifTFwIf is the main class of STIF Test Framework Interface
class CStifTFwIf
:public CBase
{
public: // Enumerations
protected: // Enumerations
private: // Enumerations
public: // Constructors and destructor
/**
* Destructor.
*/
virtual IMPORT_C ~CStifTFwIf();
protected: // Functions that can be called from derived class
/**
* Used to open TestFramework.
*
* Returns Symbian OS error code.
*/
IMPORT_C TInt Open( TDesC& aTestFrameworkIni = (TDesC&) KNullDesC() );
/**
* Used to close TestFramework.
*
* Returns Symbian OS error code.
*/
IMPORT_C TInt Close();
/**
* Used to set attributes for test framework.
*
* Returns Symbian OS error code.
*/
IMPORT_C TInt SetAttribute( TAttribute aAttribute,
const TDesC& aValue );
/**
* Receive message from ATS.
*
* Returns Symbian OS error code.
*/
IMPORT_C TInt AtsReceive( const TDesC& aMessage );
/**
* Used to add test module to test framework.
*
* Returns Symbian OS error code.
*/
IMPORT_C TInt AddTestModule( TDesC& aModuleName,
TDesC& aIniFile = (TDesC&) KNullDesC() );
/**
* Used to remove test module to test framework.
*
* Returns Symbian OS error code.
*/
IMPORT_C TInt RemoveTestModule( TDesC& aModuleName );
/**
* Used to add test case file for test module.
*
* Returns Symbian OS error code.
*/
IMPORT_C TInt AddTestCaseFile( TDesC& aModuleName,
TDesC& aCaseFile );
/**
* Used to remove test case file from test module.
*
* Returns Symbian OS error code.
*/
IMPORT_C TInt RemoveTestCaseFile( TDesC& aModuleName,
TDesC& aCaseFile );
/**
* Get testcases from test modules. Returns test case information
* in aTestinfo.
* Test module name and test case file can be used to limit the
* set of test cases returned.
*
* Returns Symbian OS error code.
*/
IMPORT_C TInt GetTestCases( RPointerArray<CTestInfo>& aTestInfo,
TDesC& aTestModule = (TDesC&) KNullDesC(),
TDesC& aTestCaseFile = (TDesC&) KNullDesC() );
/**
* Start selected test case identified with CTestInfo.
* Return TestId, which is handle used in subsequent
* test case execution control.
*
* Returns Symbian OS error code.
*/
IMPORT_C TInt StartTestCase( TInt& aTestId,
const CTestInfo& aTestInfo );
/**
* Cancel test case execution. TestCompleted() will be called
* with aTestExecutionResult set to KErrCancel.
*
* Returns Symbian OS error code.
*/
IMPORT_C TInt CancelTestCase( TInt aTestId );
/**
* Pause test case execution.
*
* Returns Symbian OS error code.
*/
IMPORT_C TInt PauseTestCase( TInt aTestId );
/**
* Resume test case execution.
*
* Returns Symbian OS error code.
*/
IMPORT_C TInt ResumeTestCase( TInt aTestId );
/**
* C++ default constructor.
*/
IMPORT_C CStifTFwIf();
protected: // Functions that the derived class may implement.
/**
* Function is called when test execution is finished
* with information of test case, result of test case execution
* and test case result.
*/
virtual void TestCompleted( TInt aTestId,
TInt aTestExecutionResult,
TTestResult& aTestResult )=0;
/**
* Function is called when test case prints.
*/
virtual void Print( TInt /*aTestId*/,
TTestProgress& /*iProgress*/ ){};
/**
* Send message to ATS.
*/
virtual void AtsSend( const TDesC& /*aMessage*/ ){};
/**
* Get device identifier, should be overridden to make them
* unique among slaves.
* Returns default value for every slave otherwise.
*/
virtual TUint16 DevId(){ return KDefaultDevId; };
/**
* Reboot indication.
* After this function returns, reboot is done
* by test module or STIF TF.
*/
virtual void GoingToDoReset(){};
private:
public: // Data
protected: // Data
private: // Data
CStifTFw* iStifTFw;
public: // Friend classes
protected: // Friend classes
private: // Friend classes
friend class CStifTFw;
};
#endif // STIF_TFW_IF_H
// End of File