diff -r 000000000000 -r 3553901f7fa8 telephonyserverplugins/multimodetsy/test/Te_LoopBack/Te_LoopbackTestStepBase.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/telephonyserverplugins/multimodetsy/test/Te_LoopBack/Te_LoopbackTestStepBase.h Tue Feb 02 01:41:59 2010 +0200 @@ -0,0 +1,168 @@ +// 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 file contains the base test class CTestBase which is derived from CTestStep. +// It also contains the script list enumeration (TScriptList). This file should be +// included by all test specific include files. +// +// + +/** + @file + @internalComponent +*/ + +#ifndef __TE_LOOPBACK_TESTSTEP_BASE__ +#define __TE_LOOPBACK_TESTSTEP_BASE__ + +#include + +#include +#include +#include + +#define PHONE_NAME _L("GsmPhone1") +#define MODULE_NAME _L("MM") + +//Test Checking Macros +#define CHECKPOINT(code,expected,msg){\ + TEST((code)==(expected));\ + if (code != expected ) INFO_PRINTF1(msg);\ + } + +#define CHECKPOINT_EXPR(boolexpr,msg) {\ + TEST((boolexpr));\ + if (EFalse == (boolexpr)) INFO_PRINTF1(msg);\ + } + + +// TScriptList is a list of all the test scripts available to the regression test harness. +// This list must be modified to add another test script. These are mapped to script names +// by a switch statement in the StartScriptL function (StartThread.cpp) +enum TScriptList + { + ERxMessScript, //< Simple SMS Receive and SMS CMTI Notification Tests (see Crxmess.h) + ENoPduRxMessScript, //< Modem claims No SMS PDU Capability Test (see CNoPduRxMess.h) + ERxMessCmtScript, //< CMT SMS Rx and SMS CMT Notification and Rx Tests (see Crxmess.h) + ERxMessCmtAndCmtiScript, //< CMT and CMTI SMS Rx Tests (see Crxmess.h) + ERxMessEricssonT28Script, //< CMTI SMS Rx Test emulating an Ericsson T28 (see Crxmess.h) + EScaSimpleScript, //< Simple SCA retrieval and setting test (see CSca.h) + ESca8210StyleScript, //< 8210-style SCA retrieval and setting test (see CSca.h) + ETxMessScript, //< Simple SMS Tx Test (see Ctxmess.h) + ETxMessNewStdScript, //< New Standard SMS Tx Test (see Ctxmess.h) + ETxMessT28NewStdScript, //< New Standard SMS Tx Test emulating an Ericsson T28 (see Ctxmess.h) + ETxMessScriptNoprefixNodefscaNew, //< Tx Test, No PDU Prefix, No Default SCA Set, New Standard (see Ctxmess.h) + ETxMessScriptPrefixNodefscaNew, //< Tx Test, PDU Prefix, No Default SCA Set, New Standard (see Ctxmess.h) + ETxMessScriptNoprefixDefscaNew, //< Tx Test, No PDU Prefix, Default SCA Set, New Standard (see Ctxmess.h) + ETxMessScriptPrefixDefscaNew, //< Tx Test, PDU Prefix, Default SCA Set, New Standard (see Ctxmess.h) + ETxMessScriptNoprefixNodefscaOld, //< Tx Test, No PDU Prefix, No Default SCA Set, Old Standard (see Ctxmess.h) + ETxMessScriptPrefixNodefscaOld, //< Tx Test, PDU Prefix, No Default SCA Set, Old Standard (see Ctxmess.h) + ETxMessScriptNoprefixDefscaOld, //< Tx Test, No PDU Prefix, Default SCA Set, Old Standard (see Ctxmess.h) + ETxMessScriptPrefixDefscaOld, //< Tx Test, PDU Prefix, Default SCA Set, Old Standard (see file Ctxmess.h) + ETxMessRxTxScriptA, //< Test a +CMS ERROR 321 from a Read - observed on Ericsson 888 (see Ctxmess.h) + EDataCallScript, //< Dial a Simple Data Call (see CDataCall.h) + EDataCallErrorAScript, //< Dial a Simple Data Call with Modem ERRORing some command (see CDataCall.h) + EOddInitAScript, //< Test of an odd initialization sequence (see COddInits.h) + EOddInitBScript, //< Test of an odd initialization sequence (see COddInits.h) + EOddInitCScript, //< Test of an odd initialization sequence (see COddInits.h) + EOddInitDScript, //< Test of an odd initialization sequence (see COddInits.h) + EOddInitEScript, //< Test of an odd initialization sequence (see COddInits.h) + EOddInitFScript, //< Test of an odd initialization sequence (see COddInits.h) + EOddInitGScript, //< Test of an odd initialization sequence (see COddInits.h) + EOddInitHScript, //< Test of an odd initialization sequence (see COddInits.h) + EOddInitIScript, //< Test of an odd initialization sequence (see COddInits.h) + EMessStorOldSmsStdScript, //< Test Message Storage Functions with Old Standard PDUs (see CMessStor.h) + EMessStorNewSmsStdScript, //< Test Message Storage Functions with New Standard PDUs (see CMessStor.h) + EFailInitAScript, //< Test Initialization Failure Scenarios (see CFailInits.h) + EInCallScriptA, //< Test Incoming Call Scenarios (see CInCall.h) + EInCallScriptB, //< Test Incoming Call Scenarios with a Nokia (see CInCall.h) + ESmsCancelScript, //< Test SMS Cancel CMT Scenarios (see CSmsCancel.h) + ESmsCancelCmtiScript, //< Test SMS Cancel CMTI Scenarios (see CSmsCancel.h) + EShutdownScript, //< Test Shutdown Scenarios (see CShutdown.h) + EShutdownScriptA, //< Test Shutdown Scenario A (see CShutdown.h) + ESmsStorageDeleteScript, //< Simple SMS Storage Delete Test (see CSmsDelete.h) + ESsFaxScriptA, //< Test Simultaneous Fax Rx and Signal Strength Retrieval (see CSsFax.h) + ESsDataScriptA, //< Test Simultaneous Data Call and Signal Strength Retrieval (see CSsFax.h) + EDataCallCancelScript, //< Test Data Call Cancel Scenarios (see CDataCallCancel.h) + EFaxPremCloseScriptA, //< Test Fax Premature Close Scenarios (see CFaxPremClose.h) + EFaxPremCloseScriptB, //< Test Fax Premature Close Scenarios Part B (see CFaxPremClose.h) + ETwoFaxRxScriptA, //< Test Two Fax Reception Scenarios (see CTwoFaxRx.h) + EVoiceCallScriptA, //< Test Voice Call Scenarios (see CVoiceCall.h) + EDataCallRemoteTermScript, //< Test Data Call Set-up, Data Transfer and Remote Termination (see CDataCallRemoteTerm.H) + EDataCallCallBackScript, //< Test Data Call Dial-up Networking Call-back (see CDataCallCallBack.H) + EDataCallRemoteHangDialScript, //< Test Data Call Answer and Remote Hang-up Closely Followed by a Dial (see CDataCallRemoteHangupDial.H) + EPhoneBookScript, + ENetworkRegistrationScript, + EPhoneLineScript, + EAllCallsScript, + ENoCnmiScript, + ENoCmgfScript, + EOOMVoiceCall, + ECallDiffParamScript, + ECbstParseScript, + ECGQREQResponsesScript, + EUnsolicitedScript + }; + +// TThreadData is a stucture containing the TScriptList value and the Call Delay value +// to be used to pass information to the Responder Thread to identify the scripts and the +// EWait's varialble delay value (i.e., when required) to be used for the test in the regression test harness. +typedef struct threadData_s + { + TScriptList iScriptList; + TInt iVariableDelay; + TRequestStatus** iRestartReqStat; + } TThreadData; + +/** + * This is the base test class, derived from CTestStep, that is the super-class of all test + * specific test classes. This class "glues" the user interface (from RunTest), the ETel API + * (from DriveEtelApi), and the Modem Emulation (from StartEmulator) together. + */ +class CTestBase : public CTestStep + { +public: + CTestBase(); + //> left for backward compatibility + void ConstructL(){}; + ~CTestBase(); + + // Called by the User Interface executable to invoke the selected test. + virtual TInt RunTestL()=0; + virtual TVerdict doTestStepPreambleL( void ); + virtual TVerdict doTestStepPostambleL( void ); + virtual TVerdict doTestStepL( void ) ; + void RestartScript(); + void TerminateScript(); +protected: + TInt StartEmulatorL(); + + // Called by StartEmulator after spawning modem emulator to drive the ETel API in specific test. + virtual TInt DriveETelApiL()=0; + TScriptList iCurrentScript; //< Identifies to emulator which test is being run + TInt iVariableDelay; //< Variable delay value to be used as the timeout by the + //< ...script processing when the iParam value is set -1 in + RTelServer iServer; + RTelServer iServer2; + RMobilePhone iPhone; + RMobilePhone iPhone2; + //< ...a TScript script whose iCommand is an EWait. + TRequestStatus* iRestartReqStat; //< The Request Status of the script restart signal +private: + CActiveScheduler* iTestScheduler; + RThread iScriptThread; + TProcessPriority iOrgProcessPriority; + TThreadPriority iOrgThreadPriority; + }; + +#endif