--- /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 <test/testexecutestepbase.h>
+
+#include <e32base.h>
+#include <e32test.h>
+#include <etelmm.h>
+
+#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