diff -r 000000000000 -r 3e07fef1e154 testexecfw/tef/utils/inc/testexecutestepbase.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/testexecfw/tef/utils/inc/testexecutestepbase.h Mon Mar 08 15:03:44 2010 +0800 @@ -0,0 +1,206 @@ +/* +* Copyright (c) 2005-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 contains CTestStep which is the base class for all test steps. +* +*/ + + + +/** + @file TestExecuteStepBase.h +*/ +#if (!defined __TESTEXECUTE_STEP_BASE_H__) +#define __TESTEXECUTE_STEP_BASE_H__ + +#include +#include +#include +#include +#include +#include +#include + +class CTestStep : public CBase +/** +@publishedPartner +@test +*/ + { +public: + // Destructor + IMPORT_C virtual ~CTestStep(); + + // Get methods to read values from the ini file + IMPORT_C TBool GetBoolFromConfig(const TDesC& aSectName,const TDesC& aKeyName,TBool& aResult); + IMPORT_C TBool GetIntFromConfig(const TDesC& aSectName, const TDesC& aKeyName, TInt& aResult); + IMPORT_C TBool GetStringFromConfig(const TDesC& aSectName, const TDesC& aKeyName, TPtrC& aResult); + + // Set a user-friendly test step name referred for a test step object from the script file + IMPORT_C void SetTestStepName(const TDesC& aStepName); + + IMPORT_C TBool GetHexFromConfig(const TDesC& aSectName, const TDesC& aKeyName, TInt& aResult); + + // Set the actual test step error obtained to execution of test step to compare the expected error with the actual + IMPORT_C void SetTestStepError(const TInt& aErrorCode); + + // Write methods to write values into ini file + IMPORT_C TBool WriteIntToConfig(const TDesC& aSectName, const TDesC& aKeyName, const TInt& aValue); + IMPORT_C TBool WriteStringToConfig(const TDesC& aSectName, const TDesC& aKeyName, const TPtrC& aValue); + IMPORT_C TBool WriteBoolToConfig(const TDesC& aSectName, const TDesC& aKeyName, const TBool& aValue); + IMPORT_C TBool WriteHexToConfig(const TDesC& aSectName, const TDesC& aKeyName, const TInt& aValue); + + //Updates the data to the shared data name passed either in Copy Mode/Append Mode + IMPORT_C void WriteSharedDataL(const TDesC& aShareName, TDesC& aSharedDataVal, TModeCopy aModeCopy = ESetText); + //Reads the data from the specified shared data object + IMPORT_C void ReadSharedDataL(const TDesC& aShareName, TDes& aSharedDataVal); + + // Initialise the test step during cnstruction + void InitialiseL(const TDesC& aStepArgs, const TDesC& aServerName, TBool& aSharedDataMode); + + // Initialises logger instance for the test step + void SetLoggerL(); + + // Closes the logger instance for the test step + void CloseLogger(); + + // Returns the section name specified in the script file for the current test step execution + inline TDes& ConfigSection() {return iSection;}; + + // Set the result of test step execution to one of the TVerdict enum codes + inline void SetTestStepResult(TVerdict aVerdict) {iTestStepResult = aVerdict;}; + + // Returns the test step result at any point during execution of test step + inline TVerdict TestStepResult() const {return iTestStepResult;}; + + // Logger interface used for constructing result strings to be fed for the logger instance + inline CTestExecuteLogger& Logger() {return *iLogger;}; + + // Returns the user-friendly test step name + inline const TDesC& TestStepName() const {return iTestStepName;}; + + // Returns any error code set during the test step execution + inline const TInt& TestStepError() const {return iTestStepError;}; + + // Returns the boolean true of !OOM option is set from the script file, false otherwise + inline TBool& ShouldRunOOMTest() {return iOOMRequestStatus;}; + + // Returns true if test server is loaded using -SharedData mode from the script file + inline TBool& IsSharedDataMode() {return iSharedDataMode;}; + + // Returns the loop index of the current loop if the test runs within a START_REPEAT/EN_REPEAT block + // Returns -1 if test is not within a loop + inline TInt GetLoopIndex() {return iLoopIndex;}; + + // Returns the setup value set using !Setup TEF parameter within the script file + // Returns a value 0 if !Setup TEF parameter is not used + inline TInt GetSetupState() {return iSetupParamValue;}; + + // Returns the drive name from which the current script file is executed + inline TDriveName ScriptDriveName() { return iScriptDriveName;}; + + // Returns reference to the iEnableIniAccessLog bool which can be used by tests to switch off ini access logging on the run + inline TBool& IniAccessLog() { return iEnableIniAccessLog; }; + + // Returns the default system drive letter provided by call to RFs::GetSystemDrive() + inline TDriveName GetSystemDrive() { return iSystemDriveForTest; }; + + // Test Step virtuals - Test Implementation methods + IMPORT_C virtual enum TVerdict doTestStepL() = 0; + IMPORT_C virtual enum TVerdict doTestStepPreambleL(); + IMPORT_C virtual enum TVerdict doTestStepPostambleL(); + + // Setting simulated OOM and testing whether the code under test reached the simulated failure + IMPORT_C virtual void SetHeapFailNext(TInt aFailureIndex); + IMPORT_C virtual void ResetHeapFailNext(); + IMPORT_C virtual TBool CheckForHeapFailNext(); + + // LEGACY methods + IMPORT_C void testBooleanTrue(TBool aCondition, const TText8* aFile, TInt aLine); + IMPORT_C void testBooleanTrue(TBool aCondition, const TText8* aFile, TInt aLine, TBool IgnoreStepResult); + IMPORT_C void testBooleanTrueL(TBool aCondition, const TText8* aFile, TInt aLine); + IMPORT_C void testBooleanTrueL(TBool aCondition, const TText8* aFile, TInt aLine, TBool IgnoreStepResult); + IMPORT_C void testBooleanTrueWithErrorCode(TBool aCondition, TInt aErrorCode, const TText8* aFile, TInt aLine ); + IMPORT_C void testBooleanTrueWithErrorCode(TBool aCondition, TInt aErrorCode, const TText8* aFile, TInt aLine, TBool IgnoreStepResult); + IMPORT_C void testBooleanTrueWithErrorCodeL(TBool aCondition, TInt aErrorCode, + const TText8* aFile, TInt aLine ); + IMPORT_C void testBooleanTrueWithErrorCodeL(TBool aCondition, TInt aErrorCode, + const TText8* aFile, TInt aLine, TBool IgnoreStepResult ); + IMPORT_C void TestCheckPointCompareL(TInt aVal, TInt aExpectedVal, const TDesC& aText, const TText8* aFile, TInt aLine); + + // Retrieve the server name + IMPORT_C const TDesC& GetServerName() const; + + // Retrieve the test case name/id + IMPORT_C TBool TestCaseName(TDes& aTestCaseName); + +protected: + IMPORT_C CTestStep(); +public: + IMPORT_C TBool GetIntFromConfig(const TDesC& aSectName, const TDesC& aKeyName, TInt64& aResult); + IMPORT_C TBool WriteIntToConfig(const TDesC& aSectName, const TDesC& aKeyName, const TInt64& aValue); +private: + void LoadConfigFileL(const TDesC& aFilePath); +private: + CTestExecuteLogger* iLogger; + TVerdict iTestStepResult; + TBuf iSection; + CIniData* iConfigData; + TBuf iTestStepName; // Name of the test step + TBuf iServerName; // Name of the test server + TInt iTestStepError; // Expected Test step Error + HBufC* iIniFileName; // Name of the inifile to be use for logging. + TBool iOOMRequestStatus; // Status of OOM request from user + TBool iEnableIniAccessLog;// Testexecute.ini entry for logging INI access + TBool iSharedDataMode; // Flag representing -SharedData server mode + TInt iSetupParamValue; // TEFParameter !Setup value set in the script + TInt iLoopIndex; // Loop index of the current loop if test runs within a START_REPEAT + TBuf iTestCaseID; // Name/ID of the test case in which the current test step executes + TDriveName iScriptDriveName; // Drive name from where the script file is executed + TDriveName iSystemDrive; // Default System Drive name + TDriveName iSystemDriveForTest;// System Drive name for Test artifacts + + // Use this buffer when allocating additional memory for the class in future + // To avoid breaks with other depdenant comps + TBuf iReserved4Future1; + TBuf iReserved4Future2; + TBuf iReserved4Future3; + TBuf iReserved4Future4; + }; + +// LEGACY +// Autotest macros mapped to CTestStep functions + +// Check a boolean is true +#define TESTL(a) testBooleanTrueL((a), (TText8*)__FILE__, __LINE__) +#define TEST(a) testBooleanTrue((a), (TText8*)__FILE__, __LINE__) + +// Versions that will always log irrespective of testcase pass +#define TEST1L(a, b) testBooleanTrueL((a), (TText8*)__FILE__, __LINE__, (b) ) +#define TEST1(a, b) testBooleanTrue((a), (TText8*)__FILE__, __LINE__, (b) ) + +// Check a boolean is true if not return error code b +#define TESTE(a, b) testBooleanTrueWithErrorCode((a), (b), (TText8*)__FILE__, __LINE__) +#define TESTEL(a, b) testBooleanTrueWithErrorCodeL((a), (b), (TText8*)__FILE__, __LINE__) + +// Versions that will always log irrespective of testcase pass +#define TESTE1(a, b, c) testBooleanTrueWithErrorCode((a), (b), (TText8*)__FILE__, __LINE__, (c) ) +#define TESTE1L(a, b, c) testBooleanTrueWithErrorCodeL((a), (b), (TText8*)__FILE__, __LINE__, (c) ) + +#define TEST_CHECKL(p1, p2, p3) TestCheckPointCompareL((p1), (p2), (p3), (TText8*)__FILE__, __LINE__) +// Leave error code +#define TEST_ERROR_CODE 84 + + +#endif