# HG changeset patch # User Dremov Kirill (Nokia-D-MSW/Tampere) # Date 1268401778 -7200 # Node ID 7ef16719d8cb335e4edc69cd4289c607ddd52a40 # Parent 962e6306d9d2b191257fe26b273be61cdde6d8b5 Revision: 201008 Kit: 201008 diff -r 962e6306d9d2 -r 7ef16719d8cb smsprotocols/smsstack/gsmu/inc/gsmupdu.h --- a/smsprotocols/smsstack/gsmu/inc/gsmupdu.h Fri Feb 19 23:59:33 2010 +0200 +++ b/smsprotocols/smsstack/gsmu/inc/gsmupdu.h Fri Mar 12 15:49:38 2010 +0200 @@ -82,6 +82,10 @@ IMPORT_C void SetParsedToFromAddressL(const TGsmSmsTelNumber& aParsedAddress); // Functions on data coding scheme +// The functions available are dependant on bits 7 to 4 in the data coding scheme. +// Functions panic when they are not available. +// This requires the caller to have some knowledge of ETSI GSM 03.38 in order to keep the data coding scheme in a consistent state. + IMPORT_C TSmsDataCodingScheme::TSmsDCSBits7To4 Bits7To4() const; IMPORT_C void SetBits7To4(TSmsDataCodingScheme::TSmsDCSBits7To4 aBits7To4); diff -r 962e6306d9d2 -r 7ef16719d8cb smsprotocols/smsstack/gsmu/inc/gsmustor.h --- a/smsprotocols/smsstack/gsmu/inc/gsmustor.h Fri Feb 19 23:59:33 2010 +0200 +++ b/smsprotocols/smsstack/gsmu/inc/gsmustor.h Fri Mar 12 15:49:38 2010 +0200 @@ -211,7 +211,7 @@ TInt iTotal; //< total number of PDUs in this SMS message TInt iCount; //< number of PDUs sent/received for this SMS message protected: - TInt iData1; // TODO should be TUint32 + TInt iData1; TInt iData2; //< Log server ID TInt iData3; TInt iData4; diff -r 962e6306d9d2 -r 7ef16719d8cb smsprotocols/smsstack/gsmu/src/Gsmuelem.cpp --- a/smsprotocols/smsstack/gsmu/src/Gsmuelem.cpp Fri Feb 19 23:59:33 2010 +0200 +++ b/smsprotocols/smsstack/gsmu/src/Gsmuelem.cpp Fri Mar 12 15:49:38 2010 +0200 @@ -682,15 +682,12 @@ break; } default: + LOGGSMU1("TSmsDataCodingScheme::Alphabet() WARNING! default case has been reached"); break; - // TODO - ahe - Never Panic GSMU !!! - // has to be tested, what happens in this default case - // Panic(KGsmuPanicNotSupportedWithDCSBits7To4); - } + } return (TSmsAlphabet) alphabet; } // TSmsDataCodingScheme::TSmsAlphabet - void TSmsDataCodingScheme::SetAlphabet(TSmsAlphabet aAlphabet) { LOGGSMU1("TSmsDataCodingScheme::SetAlphabet()"); @@ -720,38 +717,40 @@ } case (ESmsDCSMessageWaitingIndicationDiscardMessage): { - // TODO - ahe - Never Panic GSMU !!! - // has to be tested, what happens in this default case - //if (aAlphabet!=ESmsAlphabet7Bit) - //Panic(KGsmuPanicNotSupportedWithDCSBits7To4); + if (aAlphabet!=ESmsAlphabet7Bit) + { + LOGGSMU3("TSmsDataCodingScheme::SetAlphabet() WARNING! Not Supported With Discard Message [Bits7To4=%d], [aAlphabet=%d]", bits7to4, aAlphabet); + } break; } case (ESmsDCSMessageWaitingIndication7Bit): { - // TODO - ahe - Never Panic GSMU !!! - // has to be tested, what happens in this default case - //if (aAlphabet==ESmsAlphabet8Bit) - //Panic(KGsmuPanicNotSupportedWithDCSBits7To4); - if (aAlphabet==ESmsAlphabetUCS2) + if (aAlphabet==ESmsAlphabetUCS2) + { iValue=(TUint8) (ESmsDCSMessageWaitingIndicationUCS2|(iValue&(~ESmsDCSBits7To4Mask))); + } + else + { + LOGGSMU3("TSmsDataCodingScheme::SetAlphabet() WARNING! Not Supported With Discard Message [Bits7To4=%d], [aAlphabet=%d]", bits7to4, aAlphabet); + } break; } case (ESmsDCSMessageWaitingIndicationUCS2): { - // TODO - ahe - Never Panic GSMU !!! - // has to be tested, what happens in this default case - //if (aAlphabet==ESmsAlphabet8Bit) - //Panic(KGsmuPanicNotSupportedWithDCSBits7To4); - if (aAlphabet==ESmsAlphabet7Bit) + if (aAlphabet==ESmsAlphabet7Bit) + { iValue=(TUint8) (ESmsDCSMessageWaitingIndication7Bit|(iValue&(~ESmsDCSBits7To4Mask))); + } + else + { + LOGGSMU3("TSmsDataCodingScheme::SetAlphabet() WARNING! Not Supported With Discard Message [Bits7To4=%d], [aAlphabet=%d]", bits7to4, aAlphabet); + } break; } default: + LOGGSMU1("TSmsDataCodingScheme::SetAlphabet() WARNING! default case has been reached"); break; - // TODO - ahe - Never Panic GSMU !!! - // has to be tested, what happens in this default case - //Panic(KGsmuPanicNotSupportedWithDCSBits7To4); - } + } } // TSmsDataCodingScheme::SetAlphabet @@ -814,10 +813,8 @@ break; } default: + LOGGSMU1("WARNING! default case has been reached"); break; - // TODO - ahe - Never Panic GSMU !!! - // has to be tested, what happens in this default case - //Panic(KGsmuPanicNotSupportedWithDCSBits7To4); } } else @@ -880,11 +877,9 @@ break; } default: + LOGGSMU1("WARNING! default case has been reached"); break; - // TODO - ahe - Never Panic GSMU !!! - // has to be tested, what happens in this default case - //Panic(KGsmuPanicNotSupportedWithDCSBits7To4); - } + } return state; } // TSmsDataCodingScheme::TSmsIndicationState @@ -904,11 +899,9 @@ break; } default: + LOGGSMU1("TSmsDataCodingScheme::SetIndicationState() WARNING! default case has been reached"); break; - // TODO - ahe - Never Panic GSMU !!! - // has to be tested, what happens in this default case - //Panic(KGsmuPanicNotSupportedWithDCSBits7To4); - } + } } // TSmsDataCodingScheme::SetIndicationState @@ -928,10 +921,8 @@ break; } default: + LOGGSMU1("TSmsDataCodingScheme::IndicationType() WARNING default case has been reached"); break; - // TODO - ahe - Never Panic GSMU !!! - // has to be tested, what happens in this default case - //Panic(KGsmuPanicNotSupportedWithDCSBits7To4); } return type; } // TSmsDataCodingScheme::TSmsIndicationType @@ -952,11 +943,9 @@ break; } default: + LOGGSMU1("TSmsDataCodingScheme::SetIndicationType() WARNING! default case has been reached"); break; - // TODO - ahe - Never Panic GSMU !!! - // has to be tested, what happens in this default case - //Panic(KGsmuPanicNotSupportedWithDCSBits7To4); - } + } } // TSmsDataCodingScheme::SetIndicationType @@ -2743,17 +2732,17 @@ { LOGGSMU1("CSmsAddress::NewBufferL()"); - HBufC* buffer=HBufC::NewL(aLength); - delete iBuffer; - iBuffer=buffer; - iBuffer->Des().SetLength(aLength); - iBuffer->Des().FillZ(); - } // CSmsAddress::NewBufferL + HBufC* buffer=HBufC::NewL(aLength); + delete iBuffer; + iBuffer=buffer; + iBuffer->Des().SetLength(aLength); + iBuffer->Des().FillZ(); + } void CSmsAddress::DoSetParsedAddressL(const TDesC& aAddress) { - LOGGSMU1("CSmsAddress::DoSetParsedAddressL()"); + LOGGSMU2("CSmsAddress::DoSetParsedAddressL() the length of the Address [Length = %d", aAddress.Length()); TInt length=aAddress.Length(); if ((iTypeOfAddress.TON()==EGsmSmsTONInternationalNumber) && @@ -3900,11 +3889,9 @@ break; } default: + LOGGSMU1("CSmsUserData::MaxBodyLengthInChars() WARNING! default case has been reached"); break; - // TODO - ahe - Never Panic GSMU !!! - // has to be tested, what happens in this default case - //Panic(KGsmuPanicUnsupportedAlphabet); - } + } } return maxbodylengthinchars; } // CSmsUserData::MaxBodyLengthInChars @@ -4281,10 +4268,8 @@ break; } default: + LOGGSMU1("CSmsUserData::TotalHeaderLengthInUDLUnits() WARNING default case has been reached"); break; - // TODO - ahe - Never Panic GSMU !!! - // has to be tested, what happens in this default case - //Panic(KGsmuPanicUnsupportedAlphabet); } } } diff -r 962e6306d9d2 -r 7ef16719d8cb smsprotocols/smsstack/gsmu/src/gsmupdu.cpp --- a/smsprotocols/smsstack/gsmu/src/gsmupdu.cpp Fri Feb 19 23:59:33 2010 +0200 +++ b/smsprotocols/smsstack/gsmu/src/gsmupdu.cpp Fri Mar 12 15:49:38 2010 +0200 @@ -153,7 +153,6 @@ TGsmuLex8 lex(aGsmSms.Pdu()); smspdu->DecodeL(lex); - // TODO Service centre address should be in rigth format when it comes from TSY smspdu->SetParsedServiceCenterAddressL(aGsmSms.Sca()); CleanupStack::Pop(smspdu); @@ -488,11 +487,6 @@ // -// TODO move this to the DCS descriptions -// Also, the functions available are dependant on bits 7 to 4 in the data coding scheme. -// Functions panic when they are not available. -// This requires the caller to have some knowledge of ETSI GSM 03.38 in order to keep the data coding scheme in a consistent state. -// /** * Updates the three pieces of concatenation data (reference number, * pdu index and max pdu number) in this PDU. @@ -2636,7 +2630,8 @@ { // // Throw away rest of the pdu - some pdus received with this bit set don't appear to conform to 03.40 v7.4.0 spec. - // TODO Will need to review later, though this appears safest option now. + // This appears safest option. + // TODO check new versions of 03.40 to make sre that it is still the right option // ((TSmsOctet&)iParameterIndicator)=TSmsParameterIndicator::ESmsPIDExtension; return; @@ -2852,7 +2847,8 @@ { // // Throw away rest of the pdu - some pdus received with this bit set don't appear to conform to 03.40 v7.4.0 spec. - // TODO Will need to review later, though this appears safest option now. + // This appears safest option. + // TODO check new versions of 03.40 to make sre that it is still the right option // ((TSmsOctet&)iParameterIndicator)=TSmsParameterIndicator::ESmsPIDExtension; return; diff -r 962e6306d9d2 -r 7ef16719d8cb smsprotocols/smsstack/gsmu/src/gsmustor.cpp --- a/smsprotocols/smsstack/gsmu/src/gsmustor.cpp Fri Feb 19 23:59:33 2010 +0200 +++ b/smsprotocols/smsstack/gsmu/src/gsmustor.cpp Fri Mar 12 15:49:38 2010 +0200 @@ -142,7 +142,6 @@ DoOpenL(); // defect fix for EDNJJUN-4WYJGP // Unable to send sms cause sms*.dat is corrupted - // TODO - has to be back ported to higher versions TRAPD(ret, InternalizeEntryArrayL()); if (ret != KErrNone) { @@ -184,8 +183,6 @@ DoCommitAndCompactL(); #endif - //TODO AA: What should we do if err == KErrCorrupt? - CleanupStack::Pop(this); iInTransaction = EFalse; @@ -683,8 +680,11 @@ #endif // _SMS_LOGGING_ENABLED __ASSERT_DEBUG(iFileStore!=NULL,Panic(KGsmuPanicSARStoreNotOpen)); - TRAP_IGNORE(iFileStore->DeleteL(iEntryArray[aIndex].DataStreamId())); - iEntryArray[aIndex].SetIsDeleted(ETrue); // TODO - truth value should be set depending on ret + TRAPD(err, iFileStore->DeleteL(iEntryArray[aIndex].DataStreamId())); + if(err == KErrNone) + { + iEntryArray[aIndex].SetIsDeleted(ETrue); + } } // CSARStore::DoDeleteEntryL @@ -790,7 +790,7 @@ } stream << iExtraStreamId; - stream.CommitL(); // TODO - keep this in your head + stream.CommitL(); CleanupStack::PopAndDestroy(&stream); } // CSARStore::ExternalizeEntryArrayL diff -r 962e6306d9d2 -r 7ef16719d8cb smsprotocols/smsstack/smsprot/Group/bld.inf --- a/smsprotocols/smsstack/smsprot/Group/bld.inf Fri Feb 19 23:59:33 2010 +0200 +++ b/smsprotocols/smsstack/smsprot/Group/bld.inf Fri Mar 12 15:49:38 2010 +0200 @@ -74,8 +74,8 @@ ../../test/configfiles/setupgsmsms.txt z:/sms/setupgsmsms.txt ../../test/configfiles/te_intersetupgsmsms.txt z:/sms/te_intersetupgsmsms.txt -../Test/configfiles/tsmsprtstress_config.txt c:/sms/tsmsprtstress_config.txt -../Test/configfiles/tsmsemsprt_config.txt c:/sms/tsmsemsprt_config.txt +../Test/configfiles/tsmsprtstress_config.txt z:/sms/tsmsprtstress_config.txt +../Test/configfiles/tsmsemsprt_config.txt z:/sms/tsmsemsprt_config.txt ../Test/configfiles/tsmscaps_config.txt z:/testdata/configs/tsmscaps_config.txt ../Test/TE_SMSCAPS/te_smscaps.cfg z:/testdata/configs/te_smscaps.cfg @@ -129,7 +129,6 @@ ../Test/TE_Smsprt/smswap_DontDiscardType0s.esk z:/testdata/configs/smswap_dontdiscardtype0s.esk ../Test/TE_Smsprt/smswap_discardType0s.esk z:/testdata/configs/smswap_discardtype0s.esk ../Test/TE_Smsprt/smswap_MaxFivePDUsInOOD.esk z:/testdata/configs/smswap_maxfivepdusinood.esk -../Test/TE_Smsprt/SIMTSYTestNumbers.ini z:/testdata/configs/simtsytestnumbers.ini ../Test/TE_Smsprt/smswap_Class0DisabledMaxFivePDUsInOOD.esk z:/testdata/configs/smswap_class0disabledmaxfivepdusinood.esk //Class0RegressionTestSuite diff -r 962e6306d9d2 -r 7ef16719d8cb smsprotocols/smsstack/smsprot/Inc/smspproc.h --- a/smsprotocols/smsstack/smsprot/Inc/smspproc.h Fri Feb 19 23:59:33 2010 +0200 +++ b/smsprotocols/smsstack/smsprot/Inc/smspproc.h Fri Mar 12 15:49:38 2010 +0200 @@ -42,7 +42,6 @@ class CSmsPDURead; /** -ToDo What is correct value of KDefaultMaxmumNumberOfCompleteMessagesInReassemblyStore? @internalComponent */ diff -r 962e6306d9d2 -r 7ef16719d8cb smsprotocols/smsstack/smsprot/Inc/smspqueue.h --- a/smsprotocols/smsstack/smsprot/Inc/smspqueue.h Fri Feb 19 23:59:33 2010 +0200 +++ b/smsprotocols/smsstack/smsprot/Inc/smspqueue.h Fri Mar 12 15:49:38 2010 +0200 @@ -11,7 +11,7 @@ // Contributors: // // Description: -// TODO +// This file define the classes for SMS message queues // // diff -r 962e6306d9d2 -r 7ef16719d8cb smsprotocols/smsstack/smsprot/Inc/smsprot.h --- a/smsprotocols/smsstack/smsprot/Inc/smsprot.h Fri Feb 19 23:59:33 2010 +0200 +++ b/smsprotocols/smsstack/smsprot/Inc/smsprot.h Fri Mar 12 15:49:38 2010 +0200 @@ -176,8 +176,7 @@ void NotifyMessageObservers(TInt aStatus); - // TODO - flag - TBool IsWapSMS(const CSmsMessage& smsmessage ); + TBool IsWapSMS(const CSmsMessage& smsmessage ); inline TBool ClosingDown() const; inline void SetClosingDown(TBool aClosingDown); diff -r 962e6306d9d2 -r 7ef16719d8cb smsprotocols/smsstack/smsprot/Src/smspenum.cpp --- a/smsprotocols/smsstack/smsprot/Src/smspenum.cpp Fri Feb 19 23:59:33 2010 +0200 +++ b/smsprotocols/smsstack/smsprot/Src/smspenum.cpp Fri Mar 12 15:49:38 2010 +0200 @@ -937,6 +937,7 @@ { if ((iStoreInfo.iCaps & RMobilePhoneStore::KCapsWriteAccess) == 0) { + LOGSMSPROT2("CSmsMessageWrite::DoRunL left with KErrNotSuported [iState=%d]", iState); User::Leave(KErrNotSupported); } @@ -954,7 +955,8 @@ } else { - User::Leave(KErrNotFound); //< TODO Is this correct? + LOGSMSPROT2("CSmsMessageWrite::DoRunL left with KErrNotFound [iState=%d]", iState); + User::Leave(KErrNotFound); } } } diff -r 962e6306d9d2 -r 7ef16719d8cb smsprotocols/smsstack/smsprot/Src/smspqueue.cpp --- a/smsprotocols/smsstack/smsprot/Src/smspqueue.cpp Fri Feb 19 23:59:33 2010 +0200 +++ b/smsprotocols/smsstack/smsprot/Src/smspqueue.cpp Fri Mar 12 15:49:38 2010 +0200 @@ -88,8 +88,6 @@ void CSmspMessageQueue::Queue(CSmsMessage* aMessage, MSmsMessageObserver& aObserver, TUint aOptions) { - // TODO __ASSERT_DEBUG no item is in the queue for this observer - TRAPD(err, DoQueueL(aMessage, aObserver, aOptions)); LOGSMSPROT4("*** CSmspMessageQueue::Queue [err=%d aObserver=0x%08x IsActive=%d]", err, &aObserver, IsActive()); @@ -313,8 +311,6 @@ void CSmspDeleteQueue::Queue(const CArrayFix& aSlotArray, MSmsMessageObserver* aObserver) { - // TODO __ASSERT_DEBUG no item is in the queue for this observer - TRAPD(err, DoQueueL(aSlotArray, aObserver)); LOGSMSPROT4("*** CSmspDeleteQueue::Queue [err=%d aObserver=0x%X IsActive=%d]", err, aObserver, IsActive()); diff -r 962e6306d9d2 -r 7ef16719d8cb smsprotocols/smsstack/smsprot/Src/smsprov.cpp --- a/smsprotocols/smsstack/smsprot/Src/smsprov.cpp Fri Feb 19 23:59:33 2010 +0200 +++ b/smsprotocols/smsstack/smsprot/Src/smsprov.cpp Fri Mar 12 15:49:38 2010 +0200 @@ -395,16 +395,7 @@ } __ASSERT_DEBUG(iLocalAddress.SmsAddrFamily()!=ESmsAddrSendOnly,SmspPanic(KSmspPanicWrongSmsAddressFamily)); __ASSERT_DEBUG(NumSegments(iSegmentIndex==NumSegments(iRecvBufSegArray->At(0)->Size())),SmspPanic(KSmspPanicBadClientIoctlCall)); - // TODO - flag - // i) delete entry from reassemblystore - // smsmsg = MyInternalize( iRecvBufSegArray ); - // iReasStore->GetIndex( Index, smsmsg ); // iReasStore->DeleteSMS(smsmsg); - // iReasStore->DeleteEntry( Index ); - // ii) looking for more sms left in the store - // iPotocol.ProcessCompleteSMSMessage(); - // @note if this is only called from here the msg stay for a long time - // in the reassembly store if the processmessage fails - // i) + // Delete entry from reassemblystore CSmsMessage*smsmessage=NULL; TRAPD(ret,(smsmessage=InternalizeMessageL(iRecvBufSegArray->At(0)))); if( ret==KErrNone ) @@ -417,9 +408,8 @@ LOGSMSPROT2("-> CSmsProvider::Ioctl - CSmsProvider::InternalizeMessageL [ret=%d]", ret); } delete smsmessage; - // ii) - // this is now down after finishing the readprocess - // it has to be called here o in pdureadprocescompleted??? + // Looking for more sms left in the store + // This is now done after finishing the readprocess iProtocol.MessageReadedSuccessfully(); if( iEnumSocket ) { diff -r 962e6306d9d2 -r 7ef16719d8cb smsprotocols/smsstack/smsprot/Src/smspstor.cpp --- a/smsprotocols/smsstack/smsprot/Src/smspstor.cpp Fri Feb 19 23:59:33 2010 +0200 +++ b/smsprotocols/smsstack/smsprot/Src/smspstor.cpp Fri Mar 12 15:49:38 2010 +0200 @@ -559,7 +559,6 @@ void CSmsReassemblyStore::SetPassedToClientL(TInt aIndex, TBool aPassed) -//TODO CommentThisFunction { LOGSMSPROT1("CSmsReassemblyStore::SetPassedToClientL()"); @@ -774,7 +773,6 @@ BeginTransactionLC(); - //TODO AA: What is it doing here? Please comment for (TInt i=count-1; i>=0; --i) { if ((logid!=KLogNullId) && (logid==Entries()[i].LogServerId())) @@ -818,7 +816,6 @@ ChangeEntryL(j,entry); } - //TODO What is happening here? Seems strange RSmsSegmentationStoreRefStatusArray refStatusTemp; CleanupClosePushL(refStatusTemp); @@ -844,7 +841,6 @@ TBool CSmsSegmentationStore::AddReferenceL(const CSmsMessage& aSmsMessage,TInt aReference) { - TSmsSegmentationEntry entry; // TODO const and inside loop const TInt count=Entries().Count(); LOGSMSPROT3("CSmsSegmentationStore::AddReferenceL [count=%d, ref=%d]", count, aReference); TInt i=0; @@ -853,8 +849,7 @@ { for (i=0; i(tsareenty); + telLen=Min(entry.Description2().Length(),parsedaddress.iTelNumber.Length()); + const CSmsPDU::TSmsPDUType type=entry.PduType(); + if ((type==aSmsMessage.Type()) && (!entry.IsComplete()) && (aSmsMessage.Time()==entry.Time()) && (entry.Description2().Right(telLen)==parsedaddress.iTelNumber.Right(telLen))) + break; + } + } if(i>=count) { LOGSMSPROT3("WARNING! KSmspPanicEntryWithLogServerIdNotFound [i=%d, count=%d]", i, count); + return EFalse; } RSmsSegmentationStoreRefStatusArray refStatusArray; CleanupClosePushL(refStatusArray); + TSAREntry tsareenty = Entries()[i]; + TSmsSegmentationEntry& entry = static_cast(tsareenty); TStreamId streamid=entry.DataStreamId(); TSmsAddr smsaddr; CSmsBuffer* buffer=CSmsBuffer::NewL(); @@ -923,7 +921,6 @@ */ TBool CSmsSegmentationStore::AddReferenceStatusPairL(const CSmsMessage& aSmsMessage,TInt aReference, TUint aSegmentSequenceNumber) { - TSmsSegmentationEntry entry; // TODO const and inside loop const TInt count=Entries().Count(); LOGSMSPROT3("CSmsSegmentationStore::AddReferenceStatusPairL [count=%d, ref=%d]", count, aReference); TInt i=0; @@ -932,8 +929,7 @@ { for (i=0; i(tsareenty); telLen=Min(entry.Description2().Length(),parsedaddress.iTelNumber.Length()); const CSmsPDU::TSmsPDUType type=entry.PduType(); if ((type==aSmsMessage.Type()) && (!entry.IsComplete()) && (aSmsMessage.Time()==entry.Time()) && (entry.Description2().Right(telLen)==parsedaddress.iTelNumber.Right(telLen))) break; } } -// __ASSERT_DEBUG(i=count) { LOGSMSPROT3("WARNING! KSmspPanicEntryWithLogServerIdNotFound [i=%d, count=%d]", i, count); + return EFalse; } RSmsSegmentationStoreRefStatusArray refStatusArray; CleanupClosePushL(refStatusArray); + TSAREntry tsareenty = Entries()[i]; + TSmsSegmentationEntry& entry = static_cast(tsareenty); TStreamId streamid=entry.DataStreamId(); TSmsAddr smsaddr; @@ -1059,7 +1058,6 @@ CleanupStack::PushL(smsmessage); TGsmSmsTelNumber parsedaddress; aStatusReport.ParsedToFromAddress(parsedaddress); - TSmsSegmentationEntry entry; // TODO const ref and inside loop BeginTransactionLC(); @@ -1068,7 +1066,8 @@ TInt telLen; while (!found && aIndex--) { - entry = (TSmsSegmentationEntry&)Entries()[aIndex]; + TSAREntry tsareenty = Entries()[aIndex]; + TSmsSegmentationEntry& entry = static_cast(tsareenty); // Remove leading zeros of national numbers TPtrC trimmedTelNumber(TrimLeadingZeros(entry.Description2())); @@ -1149,7 +1148,8 @@ TInt telLen; for (aIndex=0; aIndex(tsareenty); telLen=Min(entry.Description2().Length(),parsedaddress.iTelNumber.Length()); const CSmsPDU::TSmsPDUType type = entry.PduType(); if ((type==CSmsPDU::ESmsSubmit) && @@ -1176,7 +1176,6 @@ __ASSERT_DEBUG(count2 == refStatusArray2.Count(),SmspPanic(KSmspPanicBadReferenceArray)); for (TInt i=0; i +#include "te_smscapsserver.h" #include // StartC32 -#include "te_smscapsstep.h" -#include "te_smscapsserver.h" #include #include #include -using namespace CommsDat; - - -// +#include "te_smscapsstep.h" _LIT(KSmsCapsServerName,"TE_SMSCAPS_SC"); @@ -51,6 +46,8 @@ CSmsCapsTestServer * server = new (ELeave) CSmsCapsTestServer(); CleanupStack::PushL(server); server->ConstructL(KNullDesC); + // CSmsStackTestServer intermediate base class call + server->InitializeTsyAndPhonesL(); // CServer base class call server->StartL(KSmsCapsServerName); CleanupStack::Pop(server); @@ -105,52 +102,15 @@ return err; } + void CSmsCapsTestServer::ConstructL(const TDesC& /*aName*/) { - TSmsServiceCenterAddress serviceCenterNumber=_L("+358508771010"); //Radiolinja - - // File Server + ////////// File Server User::LeaveIfError(iFs.Connect()); - // - // Create CommDB - // - -#ifdef SYMBIAN_NON_SEAMLESS_NETWORK_BEARER_MOBILITY - CMDBSession* db = CMDBSession::NewL(KCDVersion1_2); -#else - CMDBSession* db = CMDBSession::NewL(KCDVersion1_1); -#endif - - CleanupStack::PushL(db); - db->OpenTransactionL(); - CMDBRecordSet* modemBearerRecordSet = new(ELeave) CMDBRecordSet; - CleanupStack::PushL(modemBearerRecordSet); - modemBearerRecordSet->LoadL(*db); - - _LIT(KDummy0, "DUMMY::0"); - _LIT(KDummy, "DUMMY"); - _LIT(KSim, "SIM"); - - RPointerArray& resultSet = (RPointerArray&) modemBearerRecordSet->iRecords; - CCDModemBearerRecord* modemRecord; - for (TInt i=0; iiPortName = KDummy0; - modemRecord->iCsyName = KDummy; - modemRecord->iTsyName = KSim; - modemRecord->iMessageCentreNumber = serviceCenterNumber; - modemRecord->ModifyL(*db); - modemRecord = NULL; - } - db->CommitTransactionL(); - CleanupStack::PopAndDestroy(); //modemBearerRecordSet - CleanupStack::PopAndDestroy(); //db - - // - // initialise ser-comms - is this really needed ???? - // + ////////////////////////////////////////////////////// + /// initialise ser-comms - TODO: is this really needed ???? + ////////////////////////////////////////////////////// TInt err=User::LoadPhysicalDevice(PDD_NAME); if (err!=KErrNone && err!=KErrAlreadyExists) @@ -159,24 +119,13 @@ if (err!=KErrNone && err!=KErrAlreadyExists) User::Leave(err); + err = StartC32(); if (err!=KErrNone) + { + ERR_PRINTF2(_L("Couldn't start the comms process root server. Error:%d"), err); User::Leave(err); - - // - // turn phone on - // -// User::LeaveIfError(RProperty::Set(KUidSystemCategory,KUidPhonePwr.iUid,ESAPhoneOn)); -// User::After(1000000); - - // - // define test number property - // -// TInt val = RProperty::Define(KUidPSSimTsyCategory, KPSSimTsyTestNumber, RProperty::EInt); -// if ((val != KErrNone) && (val != KErrAlreadyExists)) -// { -// User::Leave(val); -// } + } } CTestStep* CSmsCapsTestServer::CreateTestStep(const TDesC& aStepName) diff -r 962e6306d9d2 -r 7ef16719d8cb smsprotocols/smsstack/smsprot/Test/TE_SMSCAPS/te_smscapsserver.h --- a/smsprotocols/smsstack/smsprot/Test/TE_SMSCAPS/te_smscapsserver.h Fri Feb 19 23:59:33 2010 +0200 +++ b/smsprotocols/smsstack/smsprot/Test/TE_SMSCAPS/te_smscapsserver.h Fri Mar 12 15:49:38 2010 +0200 @@ -15,13 +15,14 @@ // // -#ifndef __TS_SMSCAPSSERVER_H__ +#ifndef TE_SMSCAPSSERVER_H +#define TE_SMSCAPSSERVER_H #include -#include -#include "te_smscapsstep.h" -class CSmsCapsTestServer : public CTestServer +#include "smsstackbasetestserver.h" + +class CSmsCapsTestServer : public CSmsStackTestServer { public: static CSmsCapsTestServer* NewL(); @@ -33,4 +34,4 @@ RFs iFs; }; -#endif +#endif // TE_SMSCAPSSERVER_H diff -r 962e6306d9d2 -r 7ef16719d8cb smsprotocols/smsstack/smsprot/Test/TE_SMSCAPS/te_smscapsstep.h --- a/smsprotocols/smsstack/smsprot/Test/TE_SMSCAPS/te_smscapsstep.h Fri Feb 19 23:59:33 2010 +0200 +++ b/smsprotocols/smsstack/smsprot/Test/TE_SMSCAPS/te_smscapsstep.h Fri Mar 12 15:49:38 2010 +0200 @@ -18,15 +18,11 @@ #ifndef _TE_SMSCAPSSTEP_H_ #define _TE_SMSCAPSSTEP_H_ -#include #include #include - -//#include "networking/teststep.h" #include #include - class CSmsCapsTestStep : public CTestStep { public: diff -r 962e6306d9d2 -r 7ef16719d8cb smsprotocols/smsstack/smsprot/Test/TE_SMSEMSPRT/TE_SMSEMSPRT.cpp --- a/smsprotocols/smsstack/smsprot/Test/TE_SMSEMSPRT/TE_SMSEMSPRT.cpp Fri Feb 19 23:59:33 2010 +0200 +++ b/smsprotocols/smsstack/smsprot/Test/TE_SMSEMSPRT/TE_SMSEMSPRT.cpp Fri Mar 12 15:49:38 2010 +0200 @@ -13,49 +13,14 @@ // Description: // -#include "TE_SMSEMSPRTBASE.h" #include "TE_SMSEMSPRT.h" -#if defined (__WINS__) -#define PDD_NAME _L("ECDRV") -#define LDD_NAME _L("ECOMM") -#else -#define PDD_NAME _L("EUART1") -#define LDD_NAME _L("ECOMM") -#endif - - -TVerdict CTestInit::doTestStepL() -{ - User::LeaveIfError(iFs.Connect()); - - TRAPD( ret, ParseSettingsFromFileL()); - if (ret != KErrNone) - { - INFO_PRINTF2(_L("ParseSettingsFromFileL [err=%d]"), ret); - } - - iSmsStackTestUtils = CSmsStackTestUtils::NewL(this, iFs); - - INFO_PRINTF2(_L("TelNo: [%S]"), &iTelephoneNumber); - INFO_PRINTF2(_L("ScNo: [%S]"), &iServiceCenterNumber); - - CommInit(); - iSmsStackTestUtils->CopyConfigFileL(KTSmsEmsPrtConfigFileName); - - delete iSmsStackTestUtils; - iSmsStackTestUtils = NULL; - - iFs.Close(); - - return TestStepResult(); -} - +_LIT(KBasicSmsText,"abcdefghijklmnopqrstuvwxyz"); // The basic text we send - 26 chars long TVerdict CTestEmsFormatA::doTestStepL() { // send a message 26 characters long - CSmsMessage* smsMessage = ConfigCreateSmsMessageLC(KBasicSmsText); + CSmsMessage* smsMessage = CreateSmsMessageLC(KBasicSmsText, TSmsDataCodingScheme::ESmsAlphabet8Bit); // create the formatting object CEmsFormatIE* object = CEmsFormatIE::NewL(); @@ -72,7 +37,6 @@ return TestStepResult(); } - TVerdict CTestEmsFormatB::doTestStepL() { TBuf<26*8> buf; @@ -83,7 +47,7 @@ buf.Append(KBasicSmsText); } - CSmsMessage* smsMessage = ConfigCreateSmsMessageLC(buf); + CSmsMessage* smsMessage = CreateSmsMessageLC(buf, TSmsDataCodingScheme::ESmsAlphabet8Bit); // create the formatting object CEmsFormatIE* object = CEmsFormatIE::NewL(); @@ -100,7 +64,6 @@ return TestStepResult(); } - TVerdict CTestEmsFormatC::doTestStepL() { TBuf<26*8> buf; @@ -111,7 +74,7 @@ buf.Append(KBasicSmsText); } - CSmsMessage* smsMessage = ConfigCreateSmsMessageLC(buf, TSmsDataCodingScheme::ESmsAlphabet7Bit); + CSmsMessage* smsMessage = CreateSmsMessageLC(buf, TSmsDataCodingScheme::ESmsAlphabet7Bit); // create the formatting object CEmsFormatIE* object = CEmsFormatIE::NewL(); @@ -128,7 +91,6 @@ return TestStepResult(); } - TVerdict CTestEmsFormatD::doTestStepL() { TBuf<26*4> buf; @@ -139,7 +101,7 @@ buf.Append(KBasicSmsText); } - CSmsMessage* smsMessage = ConfigCreateSmsMessageLC(buf, TSmsDataCodingScheme::ESmsAlphabetUCS2); + CSmsMessage* smsMessage = CreateSmsMessageLC(buf, TSmsDataCodingScheme::ESmsAlphabetUCS2); // create the formatting object CEmsFormatIE* object = CEmsFormatIE::NewL(); @@ -156,10 +118,9 @@ return TestStepResult(); } - TVerdict CTestEmsFormatE::doTestStepL() { - CSmsMessage* smsMessage = ConfigCreateSmsMessageLC(KBasicSmsText); + CSmsMessage* smsMessage = CreateSmsMessageLC(KBasicSmsText, TSmsDataCodingScheme::ESmsAlphabet8Bit); // create the formatting object - set the start position to be out of range CEmsFormatIE* object = CEmsFormatIE::NewL(); @@ -189,7 +150,6 @@ return TestStepResult(); } - TVerdict CTestEmsFormatF::doTestStepL() { TBuf<26*8> buf; @@ -201,7 +161,7 @@ } // send a message 26*8 characters long - CSmsMessage* smsMessage = ConfigCreateSmsMessageLC(buf); + CSmsMessage* smsMessage = CreateSmsMessageLC(buf, TSmsDataCodingScheme::ESmsAlphabet8Bit); // create the formatting object CEmsFormatIE* object = CEmsFormatIE::NewL(); @@ -218,10 +178,9 @@ return TestStepResult(); } - TVerdict CTestEmsSoundA::doTestStepL() { - CSmsMessage* smsMessage = ConfigCreateSmsMessageLC(KBasicSmsText); + CSmsMessage* smsMessage = CreateSmsMessageLC(KBasicSmsText, TSmsDataCodingScheme::ESmsAlphabet8Bit); // create the sound object - EChimes at pos 5 CEmsPreDefSoundIE* object = @@ -244,14 +203,13 @@ return TestStepResult(); } - TVerdict CTestEmsSoundB::doTestStepL() { // User melody _LIT8(KUserMelody, "\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f" "\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f"); - CSmsMessage* smsMessage = ConfigCreateSmsMessageLC(KBasicSmsText); + CSmsMessage* smsMessage = CreateSmsMessageLC(KBasicSmsText, TSmsDataCodingScheme::ESmsAlphabet8Bit); // create one melody at position 20 CEmsSoundIE* object = @@ -274,7 +232,6 @@ return TestStepResult(); } - TVerdict CTestEmsSoundC::doTestStepL() { TBuf<26*4> buf; @@ -285,7 +242,7 @@ buf.Append(KBasicSmsText); } - CSmsMessage* smsMessage = ConfigCreateSmsMessageLC(buf); + CSmsMessage* smsMessage = CreateSmsMessageLC(buf, TSmsDataCodingScheme::ESmsAlphabet8Bit); // Create a 128-byte sound - fill it with byte 0x02 TBuf8<128> soundBuf; @@ -312,7 +269,6 @@ return TestStepResult(); } - TVerdict CTestEmsSoundD::doTestStepL() { // Create a 130-byte sound - fill it with byte 0x02 @@ -327,11 +283,10 @@ return TestStepResult(); } - TVerdict CTestEmsPicture::doTestStepL() { // Create a standard message - CSmsMessage* smsMessage = ConfigCreateSmsMessageLC(KBasicSmsText); + CSmsMessage* smsMessage = CreateSmsMessageLC(KBasicSmsText, TSmsDataCodingScheme::ESmsAlphabet8Bit); for (TInt i = 0; i < 3; ++i) { @@ -345,18 +300,16 @@ CleanupStack::PopAndDestroy(picture); } - // Send and receive message SendReceiveMsgL(*smsMessage); CleanupStack::PopAndDestroy(smsMessage); return TestStepResult(); } - TVerdict CTestEmsAnimation::doTestStepL() { // Create a standard message - CSmsMessage* smsMessage = ConfigCreateSmsMessageLC(KBasicSmsText); + CSmsMessage* smsMessage = CreateSmsMessageLC(KBasicSmsText, TSmsDataCodingScheme::ESmsAlphabet8Bit); for (TInt i = 0; i < 2; ++i) { @@ -383,10 +336,9 @@ return TestStepResult(); } - TVerdict CTestEmsUserPromptA::doTestStepL() { - CSmsMessage* smsMessage = ConfigCreateSmsMessageLC(KBasicSmsText); + CSmsMessage* smsMessage = CreateSmsMessageLC(KBasicSmsText, TSmsDataCodingScheme::ESmsAlphabet8Bit); // Create a 32-byte sound - fill it with byte 0x02 TBuf8<32> soundBuf; @@ -420,10 +372,9 @@ return TestStepResult(); } - TVerdict CTestEmsUserPromptB::doTestStepL() { - CSmsMessage* smsMessage = ConfigCreateSmsMessageLC(KBasicSmsText); + CSmsMessage* smsMessage = CreateSmsMessageLC(KBasicSmsText, TSmsDataCodingScheme::ESmsAlphabet8Bit); // Create a 32-byte sound - fill it with byte 0x02 TBuf8<32> soundBuf; @@ -474,7 +425,7 @@ buf.Append(KBasicSmsText); } - CSmsMessage* smsMessage = ConfigCreateSmsMessageLC(buf, aAlphabet); + CSmsMessage* smsMessage = CreateSmsMessageLC(buf, aAlphabet); // Create the format object CEmsFormatIE* format = CEmsFormatIE::NewL(); @@ -507,34 +458,30 @@ CleanupStack::PopAndDestroy(smsMessage); } - TVerdict CTestEmsLongMessageA::doTestStepL() { StepWithCharSetL(TSmsDataCodingScheme::ESmsAlphabet8Bit); return TestStepResult(); } - TVerdict CTestEmsLongMessageB::doTestStepL() { StepWithCharSetL(TSmsDataCodingScheme::ESmsAlphabet7Bit); return TestStepResult(); } - TVerdict CTestEmsLongMessageC::doTestStepL() { StepWithCharSetL(TSmsDataCodingScheme::ESmsAlphabetUCS2); return TestStepResult(); } - TVerdict CTestEmsUnsupportedIE::doTestStepL() { TBuf<10> buf; buf.Fill('A', 10); - CSmsMessage* smsMessage = ConfigCreateSmsMessageLC(buf); + CSmsMessage* smsMessage = CreateSmsMessageLC(buf, TSmsDataCodingScheme::ESmsAlphabet8Bit); // Create a 4-byte sound - fill it with byte 0x02 TBuf8<4> soundBuf; @@ -555,13 +502,12 @@ return TestStepResult(); } - TVerdict CTestEmsUnsorted::doTestStepL() { TBuf<10> buf; buf.Fill('A', 10); - CSmsMessage* smsMessage = ConfigCreateSmsMessageLC(buf); + CSmsMessage* smsMessage = CreateSmsMessageLC(buf, TSmsDataCodingScheme::ESmsAlphabet8Bit); // Create a 4-byte sound - fill it with byte 0x02 TBuf8<4> soundBuf; @@ -615,10 +561,9 @@ return TestStepResult(); } - TVerdict CTestEmsODIA::doTestStepL() { - CSmsMessage* smsMessage = ConfigCreateSmsMessageLC(KBasicSmsText); + CSmsMessage* smsMessage = CreateSmsMessageLC(KBasicSmsText, TSmsDataCodingScheme::ESmsAlphabet8Bit); // Create a 32-byte sound - fill it with byte 0x02 TBuf8<32> soundBuf; @@ -652,10 +597,9 @@ return TestStepResult(); } - TVerdict CTestEmsODIB::doTestStepL() { - CSmsMessage* smsMessage = ConfigCreateSmsMessageLC(KBasicSmsText); + CSmsMessage* smsMessage = CreateSmsMessageLC(KBasicSmsText, TSmsDataCodingScheme::ESmsAlphabet8Bit); // Create a 32-byte sound - fill it with byte 0x02 TBuf8<32> soundBuf; @@ -695,10 +639,9 @@ return TestStepResult(); } - TVerdict CTestEmsODIC::doTestStepL() { - CSmsMessage* smsMessage = ConfigCreateSmsMessageLC(KBasicSmsText); + CSmsMessage* smsMessage = CreateSmsMessageLC(KBasicSmsText, TSmsDataCodingScheme::ESmsAlphabet8Bit); // Create a 32-byte sound - fill it with byte 0x02 TBuf8<32> soundBuf; @@ -752,10 +695,9 @@ return TestStepResult(); } - TVerdict CTestEmsODID::doTestStepL() { - CSmsMessage* smsMessage = ConfigCreateSmsMessageLC(KBasicSmsText); + CSmsMessage* smsMessage = CreateSmsMessageLC(KBasicSmsText, TSmsDataCodingScheme::ESmsAlphabet8Bit); // Create a 32-byte sound - fill it with byte 0x02 TBuf8<32> soundBuf; @@ -788,7 +730,6 @@ return TestStepResult(); } - TVerdict CTestEmsODIE::doTestStepL() { TBuf<26*4> buf; @@ -799,7 +740,7 @@ buf.Append(KBasicSmsText); } - CSmsMessage* smsMessage = ConfigCreateSmsMessageLC(buf, TSmsDataCodingScheme::ESmsAlphabet8Bit); + CSmsMessage* smsMessage = CreateSmsMessageLC(buf, TSmsDataCodingScheme::ESmsAlphabet8Bit); // Create the format object CEmsFormatIE* format = CEmsFormatIE::NewL(); @@ -847,10 +788,9 @@ return TestStepResult(); } - TVerdict CTestEmsODIF::doTestStepL() { - CSmsMessage* smsMessage = ConfigCreateSmsMessageLC(KBasicSmsText); + CSmsMessage* smsMessage = CreateSmsMessageLC(KBasicSmsText, TSmsDataCodingScheme::ESmsAlphabet8Bit); // Create a 32-byte sound - fill it with byte 0x02 TBuf8<32> soundBuf; @@ -882,4 +822,3 @@ CleanupStack::PopAndDestroy(smsMessage); return TestStepResult(); } - diff -r 962e6306d9d2 -r 7ef16719d8cb smsprotocols/smsstack/smsprot/Test/TE_SMSEMSPRT/TE_SMSEMSPRT.h --- a/smsprotocols/smsstack/smsprot/Test/TE_SMSEMSPRT/TE_SMSEMSPRT.h Fri Feb 19 23:59:33 2010 +0200 +++ b/smsprotocols/smsstack/smsprot/Test/TE_SMSEMSPRT/TE_SMSEMSPRT.h Fri Mar 12 15:49:38 2010 +0200 @@ -16,19 +16,7 @@ #ifndef __TE_SMSEMSPRT_H_ #define __TE_SMSEMSPRT_H_ - -// -// Test Initialisation test object - Initializes the members -// -class CTestInit : public CSmsEmsPrtTestStep - { -public: - virtual TVerdict doTestStepPreambleL() { return EPass; } - virtual TVerdict doTestStepPostambleL() { return EPass; } - TInt GetTestNumber() { return -1 ; /* return test order number */ } ; - virtual TVerdict doTestStepL(); - }; - +#include "TE_SMSEMSPRTBASE.h" // // Test EMS FormatA test object - basic Format IE test @@ -36,7 +24,6 @@ class CTestEmsFormatA : public CSmsEmsPrtTestStep { public: - TInt GetTestNumber() { return 1 ; /* return test order number */ } ; virtual TVerdict doTestStepL(); }; @@ -48,7 +35,6 @@ class CTestEmsFormatB : public CSmsEmsPrtTestStep { public: - TInt GetTestNumber() { return 2 ; /* return test order number */ } ; virtual TVerdict doTestStepL(); }; @@ -60,7 +46,6 @@ class CTestEmsFormatC : public CSmsEmsPrtTestStep { public: - TInt GetTestNumber() { return 3 ; /* return test order number */ } ; virtual TVerdict doTestStepL(); }; @@ -72,7 +57,6 @@ class CTestEmsFormatD : public CSmsEmsPrtTestStep { public: - TInt GetTestNumber() { return 4 ; /* return test order number */ } ; virtual TVerdict doTestStepL(); }; @@ -84,7 +68,6 @@ class CTestEmsFormatE : public CSmsEmsPrtTestStep { public: - TInt GetTestNumber() { return 5 ; /* return test order number */ } ; virtual TVerdict doTestStepL(); }; @@ -96,7 +79,6 @@ class CTestEmsFormatF : public CSmsEmsPrtTestStep { public: - TInt GetTestNumber() { return 6 ; /* return test order number */ } ; virtual TVerdict doTestStepL(); }; @@ -107,7 +89,6 @@ class CTestEmsSoundA : public CSmsEmsPrtTestStep { public: - TInt GetTestNumber() { return 7 ; /* return test order number */ } ; virtual TVerdict doTestStepL(); }; @@ -118,7 +99,6 @@ class CTestEmsSoundB : public CSmsEmsPrtTestStep { public: - TInt GetTestNumber() { return 8 ; /* return test order number */ } ; virtual TVerdict doTestStepL(); }; @@ -129,7 +109,6 @@ class CTestEmsSoundC : public CSmsEmsPrtTestStep { public: - TInt GetTestNumber() { return 9 ; /* return test order number */ } ; virtual TVerdict doTestStepL(); }; @@ -140,7 +119,6 @@ class CTestEmsSoundD : public CSmsEmsPrtTestStep { public: - TInt GetTestNumber() { return 10 ; /* return test order number */ } ; virtual TVerdict doTestStepL(); }; @@ -151,7 +129,6 @@ class CTestEmsPicture : public CSmsEmsPrtTestStep { public: - TInt GetTestNumber() { return 11 ; /* return test order number */ } ; virtual TVerdict doTestStepL(); }; @@ -162,7 +139,6 @@ class CTestEmsAnimation : public CSmsEmsPrtTestStep { public: - TInt GetTestNumber() { return 12 ; /* return test order number */ } ; virtual TVerdict doTestStepL(); }; @@ -173,7 +149,6 @@ class CTestEmsUserPromptA : public CSmsEmsPrtTestStep { public: - TInt GetTestNumber() { return 13 ; /* return test order number */ } ; virtual TVerdict doTestStepL(); }; @@ -185,7 +160,6 @@ class CTestEmsUserPromptB : public CSmsEmsPrtTestStep { public: - TInt GetTestNumber() { return 14 ; /* return test order number */ } ; virtual TVerdict doTestStepL(); }; @@ -210,7 +184,6 @@ class CTestEmsLongMessageA : public CTestEmsLongMsgBase { public: - TInt GetTestNumber() { return 15 ; /* return test order number */ } ; virtual TVerdict doTestStepL(); }; @@ -218,7 +191,6 @@ class CTestEmsLongMessageB : public CTestEmsLongMsgBase { public: - TInt GetTestNumber() { return 16 ; /* return test order number */ } ; virtual TVerdict doTestStepL(); }; @@ -226,7 +198,6 @@ class CTestEmsLongMessageC : public CTestEmsLongMsgBase { public: - TInt GetTestNumber() { return 17 ; /* return test order number */ } ; virtual TVerdict doTestStepL(); }; @@ -238,7 +209,6 @@ class CTestEmsUnsupportedIE : public CSmsEmsPrtTestStep { public: - TInt GetTestNumber() { return 18 ; /* return test order number */ } ; virtual TVerdict doTestStepL(); }; @@ -251,7 +221,6 @@ class CTestEmsUnsorted : public CSmsEmsPrtTestStep { public: - TInt GetTestNumber() { return 19 ; /* return test order number */ } ; virtual TVerdict doTestStepL(); }; @@ -262,7 +231,6 @@ class CTestEmsODIA : public CSmsEmsPrtTestStep { public: - TInt GetTestNumber() { return 20 ; /* return test order number */ } ; virtual TVerdict doTestStepL(); }; @@ -274,7 +242,6 @@ class CTestEmsODIB : public CSmsEmsPrtTestStep { public: - TInt GetTestNumber() { return 21 ; /* return test order number */ } ; virtual TVerdict doTestStepL(); }; @@ -286,7 +253,6 @@ class CTestEmsODIC : public CSmsEmsPrtTestStep { public: - TInt GetTestNumber() { return 22 ; /* return test order number */ } ; virtual TVerdict doTestStepL(); }; @@ -297,7 +263,6 @@ class CTestEmsODID : public CSmsEmsPrtTestStep { public: - TInt GetTestNumber() { return 23 ; /* return test order number */ } ; virtual TVerdict doTestStepL(); }; @@ -308,7 +273,6 @@ class CTestEmsODIE : public CSmsEmsPrtTestStep { public: - TInt GetTestNumber() { return 24 ; /* return test order number */ } ; virtual TVerdict doTestStepL(); }; @@ -319,7 +283,6 @@ class CTestEmsODIF : public CSmsEmsPrtTestStep { public: - TInt GetTestNumber() { return 25 ; /* return test order number */ } ; virtual TVerdict doTestStepL(); }; diff -r 962e6306d9d2 -r 7ef16719d8cb smsprotocols/smsstack/smsprot/Test/TE_SMSEMSPRT/TE_SMSEMSPRT.mmp --- a/smsprotocols/smsstack/smsprot/Test/TE_SMSEMSPRT/TE_SMSEMSPRT.mmp Fri Feb 19 23:59:33 2010 +0200 +++ b/smsprotocols/smsstack/smsprot/Test/TE_SMSEMSPRT/TE_SMSEMSPRT.mmp Fri Mar 12 15:49:38 2010 +0200 @@ -16,7 +16,7 @@ // TARGET te_smsemsprt.exe -CAPABILITY ReadDeviceData WriteDeviceData NetworkControl NetworkServices ReadUserData WriteUserData ProtServ AllFiles +CAPABILITY ReadDeviceData WriteDeviceData NetworkControl NetworkServices ReadUserData WriteUserData ProtServ AllFiles PowerMgmt TARGETTYPE exe UID 0x1000007A 0x101FE443 VENDORID 0x70000001 diff -r 962e6306d9d2 -r 7ef16719d8cb smsprotocols/smsstack/smsprot/Test/TE_SMSEMSPRT/TE_SMSEMSPRT.script --- a/smsprotocols/smsstack/smsprot/Test/TE_SMSEMSPRT/TE_SMSEMSPRT.script Fri Feb 19 23:59:33 2010 +0200 +++ b/smsprotocols/smsstack/smsprot/Test/TE_SMSEMSPRT/TE_SMSEMSPRT.script Fri Mar 12 15:49:38 2010 +0200 @@ -16,19 +16,6 @@ RUN_SCRIPT Z:\testdata\scripts\te_smsemsprt_setup.script LOAD_SUITE te_smsemsprt - -START_TESTCASE SMS-SMSStack-NA-7500 -//!@SYMTestCaseID SMS-SMSStack-NA-7500 -//!@SYMREQ REQ0000 -//!@SYMTestCaseDesc Test Init -//!@SYMTestPriority critical -//!@SYMTestActions Test Initialisation -//!@SYMTestExpectedResults Pass -//!@SYMTestType CT -RUN_TEST_STEP 100 te_smsemsprt TestInit - -END_TESTCASE SMS-SMSStack-NA-7500 - START_TESTCASE SMS-SMSStack-NA-7501 //!@SYMTestCaseID SMS-SMSStack-NA-7501 //!@SYMREQ REQ0000 @@ -37,7 +24,7 @@ //!@SYMTestActions Test creationm of an Ems Format A //!@SYMTestExpectedResults Pass //!@SYMTestType CT -RUN_TEST_STEP 100 te_smsemsprt TestEmsFormatA +RUN_TEST_STEP 100 te_smsemsprt TestEmsFormatA z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber1 END_TESTCASE SMS-SMSStack-NA-7501 @@ -49,7 +36,7 @@ //!@SYMTestActions Test creation of an Ems Format B //!@SYMTestExpectedResults Pass //!@SYMTestType CT -RUN_TEST_STEP 100 te_smsemsprt TestEmsFormatB +RUN_TEST_STEP 100 te_smsemsprt TestEmsFormatB z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber2 END_TESTCASE SMS-SMSStack-NA-7502 @@ -61,7 +48,7 @@ //!@SYMTestActions Test cresation of an Ems Format C //!@SYMTestExpectedResults Pass //!@SYMTestType CT -RUN_TEST_STEP 100 te_smsemsprt TestEmsFormatC +RUN_TEST_STEP 100 te_smsemsprt TestEmsFormatC z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber3 END_TESTCASE SMS-SMSStack-NA-7503 @@ -73,7 +60,7 @@ //!@SYMTestActions Test creation of an Ems Format D //!@SYMTestExpectedResults Pass //!@SYMTestType CT -RUN_TEST_STEP 100 te_smsemsprt TestEmsFormatD +RUN_TEST_STEP 100 te_smsemsprt TestEmsFormatD z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber4 END_TESTCASE SMS-SMSStack-NA-7504 @@ -85,7 +72,7 @@ //!@SYMTestActions Test creation of an EMS Format E //!@SYMTestExpectedResults Pass //!@SYMTestType CT -RUN_TEST_STEP 100 te_smsemsprt TestEmsFormatE +RUN_TEST_STEP 100 te_smsemsprt TestEmsFormatE z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber5 END_TESTCASE SMS-SMSStack-NA-7505 @@ -97,7 +84,7 @@ //!@SYMTestActions Tests creation of an EMS Format F //!@SYMTestExpectedResults Pass //!@SYMTestType CT -RUN_TEST_STEP 100 te_smsemsprt TestEmsFormatF +RUN_TEST_STEP 100 te_smsemsprt TestEmsFormatF z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber6 END_TESTCASE SMS-SMSStack-NA-7506 @@ -109,7 +96,7 @@ //!@SYMTestActions Test creation of an Ems sound A //!@SYMTestExpectedResults Pass //!@SYMTestType CT -RUN_TEST_STEP 100 te_smsemsprt TestEmsSoundA +RUN_TEST_STEP 100 te_smsemsprt TestEmsSoundA z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber7 END_TESTCASE SMS-SMSStack-NA-7507 @@ -121,7 +108,7 @@ //!@SYMTestActions Tests Creation of an Ems sound B //!@SYMTestExpectedResults Pass //!@SYMTestType CT -RUN_TEST_STEP 100 te_smsemsprt TestEmsSoundB +RUN_TEST_STEP 100 te_smsemsprt TestEmsSoundB z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber8 END_TESTCASE SMS-SMSStack-NA-7508 @@ -133,7 +120,7 @@ //!@SYMTestActions Test creation of an Ems Sound C //!@SYMTestExpectedResults Pass //!@SYMTestType CT -RUN_TEST_STEP 100 te_smsemsprt TestEmsSoundC +RUN_TEST_STEP 100 te_smsemsprt TestEmsSoundC z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber9 END_TESTCASE SMS-SMSStack-NA-7509 @@ -145,7 +132,7 @@ //!@SYMTestActions Test creation of an Ems Sound C //!@SYMTestExpectedResults Pass //!@SYMTestType CT -RUN_TEST_STEP 100 te_smsemsprt TestEmsSoundD +RUN_TEST_STEP 100 te_smsemsprt TestEmsSoundD z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber10 END_TESTCASE SMS-SMSStack-NA-7510 @@ -157,7 +144,7 @@ //!@SYMTestActions Testcreation of an Ems Picture //!@SYMTestExpectedResults Pass //!@SYMTestType CT -RUN_TEST_STEP 100 te_smsemsprt TestEmsPicture +RUN_TEST_STEP 100 te_smsemsprt TestEmsPicture z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber11 END_TESTCASE SMS-SMSStack-NA-7511 @@ -169,7 +156,7 @@ //!@SYMTestActions Test creation of an Ems Animation //!@SYMTestExpectedResults Pass //!@SYMTestType CT -RUN_TEST_STEP 100 te_smsemsprt TestEmsAnimation +RUN_TEST_STEP 100 te_smsemsprt TestEmsAnimation z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber12 END_TESTCASE SMS-SMSStack-NA-7512 @@ -181,7 +168,7 @@ //!@SYMTestActions Test creation of an Ems User Prompt A //!@SYMTestExpectedResults Pass //!@SYMTestType CT -RUN_TEST_STEP 100 te_smsemsprt TestEmsUserPromptA +RUN_TEST_STEP 100 te_smsemsprt TestEmsUserPromptA z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber13 END_TESTCASE SMS-SMSStack-NA-7513 @@ -193,7 +180,7 @@ //!@SYMTestActions Test creation of an Ems User Prompt B //!@SYMTestExpectedResults Pass //!@SYMTestType CT -RUN_TEST_STEP 100 te_smsemsprt TestEmsUserPromptB +RUN_TEST_STEP 100 te_smsemsprt TestEmsUserPromptB z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber14 END_TESTCASE SMS-SMSStack-NA-7514 @@ -205,7 +192,7 @@ //!@SYMTestActions Test creation of an Ems Long Message A //!@SYMTestExpectedResults Pass //!@SYMTestType CT -RUN_TEST_STEP 100 te_smsemsprt TestEmsLongMessageA +RUN_TEST_STEP 100 te_smsemsprt TestEmsLongMessageA z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber15 END_TESTCASE SMS-SMSStack-NA-7515 @@ -217,7 +204,7 @@ //!@SYMTestActions Test creation of an Ems Long Message B //!@SYMTestExpectedResults Pass //!@SYMTestType CT -RUN_TEST_STEP 100 te_smsemsprt TestEmsLongMessageB +RUN_TEST_STEP 100 te_smsemsprt TestEmsLongMessageB z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber16 END_TESTCASE SMS-SMSStack-NA-7516 @@ -229,7 +216,7 @@ //!@SYMTestActions Test creation of Ems Long Message C //!@SYMTestExpectedResults Pass //!@SYMTestType CT -RUN_TEST_STEP 100 te_smsemsprt TestEmsLongMessageC +RUN_TEST_STEP 100 te_smsemsprt TestEmsLongMessageC z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber17 END_TESTCASE SMS-SMSStack-NA-7517 @@ -241,7 +228,7 @@ //!@SYMTestActions Tests Ems Unsupported IE api's in the TSY //!@SYMTestExpectedResults Pass //!@SYMTestType CT -RUN_TEST_STEP 100 te_smsemsprt TestEmsUnsupportedIE +RUN_TEST_STEP 100 te_smsemsprt TestEmsUnsupportedIE z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber18 END_TESTCASE SMS-SMSStack-NA-7518 @@ -253,7 +240,7 @@ //!@SYMTestActions Test Ems Unsorted API's //!@SYMTestExpectedResults Pass //!@SYMTestType CT -RUN_TEST_STEP 100 te_smsemsprt TestEmsUnsorted +RUN_TEST_STEP 100 te_smsemsprt TestEmsUnsorted z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber19 END_TESTCASE SMS-SMSStack-NA-7519 @@ -265,7 +252,7 @@ //!@SYMTestActions Test Ems ODIA api's //!@SYMTestExpectedResults Pass //!@SYMTestType CT -RUN_TEST_STEP 100 te_smsemsprt TestEmsODIA +RUN_TEST_STEP 100 te_smsemsprt TestEmsODIA z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber20 END_TESTCASE SMS-SMSStack-NA-7520 @@ -277,7 +264,7 @@ //!@SYMTestActions Test Ems ODIB api's //!@SYMTestExpectedResults Pass //!@SYMTestType CT -RUN_TEST_STEP 100 te_smsemsprt TestEmsODIB +RUN_TEST_STEP 100 te_smsemsprt TestEmsODIB z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber21 END_TESTCASE SMS-SMSStack-NA-7521 @@ -289,7 +276,7 @@ //!@SYMTestActions Test Ems ODIC api's //!@SYMTestExpectedResults Pass //!@SYMTestType CT -RUN_TEST_STEP 100 te_smsemsprt TestEmsODIC +RUN_TEST_STEP 100 te_smsemsprt TestEmsODIC z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber22 END_TESTCASE SMS-SMSStack-NA-7522 @@ -301,7 +288,7 @@ //!@SYMTestActions Test Ems ODID api's //!@SYMTestExpectedResults Pass //!@SYMTestType CT -RUN_TEST_STEP 100 te_smsemsprt TestEmsODID +RUN_TEST_STEP 100 te_smsemsprt TestEmsODID z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber23 END_TESTCASE SMS-SMSStack-NA-7523 @@ -313,7 +300,7 @@ //!@SYMTestActions Test Ems ODIE api's //!@SYMTestExpectedResults Pass //!@SYMTestType CT -RUN_TEST_STEP 100 te_smsemsprt TestEmsODIE +RUN_TEST_STEP 100 te_smsemsprt TestEmsODIE z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber24 END_TESTCASE SMS-SMSStack-NA-7524 @@ -325,6 +312,7 @@ //!@SYMTestActions Test Ems ODIF api's //!@SYMTestExpectedResults Pass //!@SYMTestType CT -RUN_TEST_STEP 100 te_smsemsprt TestEmsODIF +RUN_TEST_STEP 100 te_smsemsprt TestEmsODIF z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber25 END_TESTCASE SMS-SMSStack-NA-7525 +RUN_SCRIPT z:\testdata\scripts\smsstackcleanprivatedata.script diff -r 962e6306d9d2 -r 7ef16719d8cb smsprotocols/smsstack/smsprot/Test/TE_SMSEMSPRT/TE_SMSEMSPRTBASE.cpp --- a/smsprotocols/smsstack/smsprot/Test/TE_SMSEMSPRT/TE_SMSEMSPRTBASE.cpp Fri Feb 19 23:59:33 2010 +0200 +++ b/smsprotocols/smsstack/smsprot/Test/TE_SMSEMSPRT/TE_SMSEMSPRTBASE.cpp Fri Mar 12 15:49:38 2010 +0200 @@ -17,284 +17,26 @@ @file */ -#include -#include "metadatabase.h" - #include "TE_SMSEMSPRTBASE.h" -#include -#if defined (__WINS__) -#define PDD_NAME _L("ECDRV") -#define PDD_NAME2 _L("ECDRV") -#define LDD_NAME _L("ECOMM") -#else -#define PDD_NAME _L("EUART1") -#define LDD_NAME _L("ECOMM") -#endif +#include +#include +#include + +#include "smsstacktestconsts.h" using namespace CommsDat; -CSmsMessage* CSmsEmsPrtTestStep::ConfigCreateSmsMessageLC(const TDesC& aDes, - TSmsDataCodingScheme::TSmsAlphabet aAlphabet) - { - _LIT(KRadiolinjaSC,"+358508771010"); // Radiolinja SC - _LIT(KPekka,"+358408415528"); // Pekka's telephone number - - // Set destination and SC numbers - iTelephoneNumber=KPekka; - iServiceCenterNumber=KRadiolinjaSC; - - CSmsMessage* smsMessage = CreateSmsMessageL(aDes, aAlphabet); - CleanupStack::PushL(smsMessage); - return smsMessage; - } - -CSmsMessage* CSmsEmsPrtTestStep::CreateSmsMessageL(const TDesC& aDes, TSmsDataCodingScheme::TSmsAlphabet aAlphabet, CSmsPDU::TSmsPDUType aType) -/** - * Create a uninitialised SMS message - * @param aDes contains text that will be inserted to the pdu - * @param aAlphabet describes the alphabet of the pdu - * @return CSmsMessage* :Pointer to the created CSmsMessage object. - */ - { - CSmsBuffer* buffer=CSmsBuffer::NewL(); - CSmsMessage* smsMessage=CSmsMessage::NewL(iFs, aType, buffer); - CleanupStack::PushL(smsMessage); - - TSmsUserDataSettings smsSettings; - smsSettings.SetAlphabet(aAlphabet); - smsSettings.SetTextCompressed(EFalse); - smsMessage->SetUserDataSettingsL(smsSettings); - - smsMessage->SetToFromAddressL(iTelephoneNumber); - smsMessage->SmsPDU().SetServiceCenterAddressL(iServiceCenterNumber); - buffer->InsertL(0,aDes); - CleanupStack::Pop(smsMessage); - return smsMessage; - } - -TBool CSmsEmsPrtTestStep::SendReceiveMsgL(CSmsMessage& aMsg) - { - // Send SMS - SendSmsL(&aMsg,iSocket); - - CSmsMessage* rxMsg; - - // Now receive and compare - INFO_PRINTF1(_L("waiting for incoming SMS...") ); - WaitForRecvL(iSocket); - rxMsg = RecvSmsL(iSocket); - - CleanupStack::PushL(rxMsg); - TBool comp = EmsTestUtils::CompareEmsMsgL(aMsg, *rxMsg); - TEST(comp); - - // compare OK - INFO_PRINTF1(_L("Sent and received PDUs compare OK...")); - - // Now make sure the received message is valid - this can be - // tested by ensuring that NumMessagePDUsL can be called without - // leaving - rxMsg->NumMessagePDUsL(); - - CleanupStack::PopAndDestroy(rxMsg); - - // return the result of the comparison - return comp; - } - -void CSmsEmsPrtTestStep::SendSmsL(const CSmsMessage* aSms, RSocket& aSocket) -/** - * Stream aSms out to the socket server - * @param aSms contains the sms tpdu that will be streamed to the sms stack - * @param aSocket is used to stream the aSms to the sms stack - * @leave Leaves if streaming the message to the socket server doesn't succeed - * @leave Leaves if sending is completed with error code - */ - { - TBool tryAgain = ETrue; - TInt sendTry (0); - TRequestStatus status = KErrNone; - - while (tryAgain && sendTry < 3) - { - RSmsSocketWriteStream writestream(aSocket); - TRAPD(ret,writestream << *aSms); - - TRAP(ret,writestream.CommitL()); - - TPckgBuf sbuf; - aSocket.Ioctl(KIoctlSendSmsMessage,status,&sbuf, KSolSmsProv); - User::WaitForRequest(status); - INFO_PRINTF2(_L("SendSmsL - sendSmsMessage returned %d"),status.Int()); - if (status.Int() ) - { - tryAgain = ETrue; - INFO_PRINTF1(_L("Try again... ")); - sendTry++; - } - else tryAgain = EFalse; - } - - TEST(status.Int() == KErrNone); - - PrintMessageL(aSms); - } - -void CSmsEmsPrtTestStep::PrintMessageL(const CSmsMessage* aSms) -/** - * Print the content of SMS to the console - */ - { - CSmsBuffer& smsbuffer = (CSmsBuffer&)aSms->Buffer(); - const TInt len = smsbuffer.Length(); - HBufC* hbuf = HBufC::NewL(len); - TPtr ptr = hbuf->Des(); - smsbuffer.Extract(ptr,0,len); - INFO_PRINTF1(_L("SMS contains...")); - - for (TInt j = 0; j < len; j++) - ptr[j]=IsCharDisplayable((TText8)ptr[j]); - - - INFO_PRINTF1(ptr); - INFO_PRINTF1(_L("")); - - delete hbuf; - } - -TText8 CSmsEmsPrtTestStep::IsCharDisplayable( const TText8 aChar ) - { - if(( aChar >= 0x20) && (aChar <= 0x80)) - return aChar; - else - return '.'; - } - - - -void CSmsEmsPrtTestStep::WaitForRecvL(RSocket& aSocket) -/** - * Wait for an Sms to be received - * @param aSocket The status is return to this socket - * @leave Leaves if receiving is completed with error code - */ - { - TPckgBuf sbuf; - sbuf()=KSockSelectRead; - TRequestStatus status; - aSocket.Ioctl(KIOctlSelect,status,&sbuf,KSOLSocket); - User::WaitForRequest(status); - TEST(status.Int() == KErrNone); - } - -CSmsMessage* CSmsEmsPrtTestStep::RecvSmsL(RSocket& aSocket, TInt aIoctl) -/** - * Receive an Sms - * @param aSocket is used to stream the sms message from the socket server - * @return CSmsMessage* :Sms message from Sms stack - * @leave Leaves if streaming the message from the socket server doesn't succeed - */ - { - CSmsBuffer* buffer=CSmsBuffer::NewL(); - CSmsMessage* smsMessage=CSmsMessage::NewL(iFs, CSmsPDU::ESmsSubmit,buffer); - CleanupStack::PushL(smsMessage); - - RSmsSocketReadStream readstream(aSocket); - TRAPD(ret,readstream >> *smsMessage); - TEST(ret == KErrNone); - - TPckgBuf sbuf; - TRequestStatus status; - aSocket.Ioctl(aIoctl, status, &sbuf, KSolSmsProv); - User::WaitForRequest(status); - - CleanupStack::Pop(smsMessage); - return smsMessage; - } - -void CSmsEmsPrtTestStep::PrepareRegTestL() -/** - * Run a specified test. - * The test number is passed via property KUidPSSimTsyCategory. This will notify the SIM tsy - * SIM tsy uses test number to parse correct script from config.txt - * @param aTestNumber The test number corresponding the test case - */ - { - RProperty testNumberProperty; - User::LeaveIfError(testNumberProperty.Attach(KUidPSSimTsyCategory, KPSSimTsyTestNumber)); - CleanupClosePushL(testNumberProperty); - - TRequestStatus status; - testNumberProperty.Subscribe(status); - TInt testNumber = GetTestNumber(); - User::LeaveIfError(testNumberProperty.Set(KUidPSSimTsyCategory,KPSSimTsyTestNumber,testNumber)); - User::WaitForRequest(status); - TEST(status.Int() == KErrNone); - TInt testNumberCheck; - User::LeaveIfError(testNumberProperty.Get(testNumberCheck)); - if (testNumber != testNumberCheck) - User::Leave(KErrNotFound); - - CleanupStack::PopAndDestroy(&testNumberProperty); - - INFO_PRINTF1(_L("Connecting to SocketServer ...")); - TInt ret=iSocketServ.Connect(KSocketMessageSlots); - TEST(ret == KErrNone); - - INFO_PRINTF1(_L("Deleting segmentation and reassembly stores...")); - - // delete segmentation and reassembly store files before the test - _LIT(KReassemblyStoreName,"C:\\Private\\101F7989\\sms\\smsreast.dat"); - _LIT(KSegmentationStoreName,"C:\\Private\\101F7989\\sms\\smssegst.dat"); - - iFs.Delete(KReassemblyStoreName); - iFs.Delete(KSegmentationStoreName); - } - -void CSmsEmsPrtTestStep::EndRegTest() -/** - * Closes objects used at test harness - */ - { - INFO_PRINTF1(_L("Closing Reg Test")); - User::After(2000000); //Wait a couple of seconds to avoid closing the SMS stack too early - iSocketServ.Close(); - User::After(2000000); //Wait a couple of seconds to avoid closing the SMS stack too early - } - TVerdict CSmsEmsPrtTestStep::doTestStepPreambleL() { - __UHEAP_MARK; - - User::LeaveIfError(iFs.Connect()); - - TRAPD(ret, ParseSettingsFromFileL()); - if (ret != KErrNone) - INFO_PRINTF2(_L("ParseSettingsFromFileL [err=%d]"), ret); - - iSmsStackTestUtils = CSmsStackTestUtils::NewL(this, iFs); - - PrepareRegTestL() ; - - iSmsStackTestUtils->OpenSmsSocketL(iSocketServ, iSocket, ESmsAddrRecvAny); + //base class preamble - marks the heap + CSmsBaseTestStep::doTestStepPreambleL(); + + iSmsStackTestUtils->OpenSmsSocketL(iSocketServer, iSocket, ESmsAddrRecvAny); -#ifdef SYMBIAN_NON_SEAMLESS_NETWORK_BEARER_MOBILITY - CMDBSession* db = CMDBSession::NewL(KCDVersion1_2); -#else - CMDBSession* db = CMDBSession::NewL(KCDVersion1_1); -#endif - CleanupStack::PushL(db); - - CMDBField* smsReceiveModeField = new(ELeave) CMDBField(KCDTIdSMSReceiveMode); - CleanupStack::PushL(smsReceiveModeField); - *smsReceiveModeField = RMobileSmsMessaging::EReceiveUnstoredClientAck; - smsReceiveModeField->SetRecordId(1); //it's GlobalSettingsRecord - smsReceiveModeField->ModifyL(*db); - - CleanupStack::PopAndDestroy(smsReceiveModeField); - CleanupStack::PopAndDestroy(db); - + // Set destination and SC numbers + iTelephoneNumber=KPekka; + iServiceCenterNumber=KRadiolinjaSC; return TestStepResult(); } @@ -302,115 +44,37 @@ { iSocket.Close(); - EndRegTest() ; - - delete iSmsStackTestUtils; - iSmsStackTestUtils = NULL; - - iFs.Close(); - - __UHEAP_MARKEND; + //base class postamble - unmarks the heap + CSmsBaseTestStep::doTestStepPostambleL(); return TestStepResult(); } -TInt CSmsEmsPrtTestStep::CommInit() - { - RFs fs; - TInt err=fs.Connect(); // make sure the FileServer is alive (only needed for WINS test code) - fs.Close(); - - INFO_PRINTF1(_L("CommInit: Loading PDD ") ); - INFO_PRINTF1(PDD_NAME); - INFO_PRINTF1(_L("")); - err=User::LoadPhysicalDevice(PDD_NAME); - if (err!=KErrNone && err!=KErrAlreadyExists) - return(err); - - INFO_PRINTF1(_L("CommInit: Loading LDD ") ); - INFO_PRINTF1(LDD_NAME); - INFO_PRINTF1(_L("")); - err=User::LoadLogicalDevice(LDD_NAME ); - if (err!=KErrNone && err!=KErrAlreadyExists) - return(err); - - INFO_PRINTF1(_L("CommInit: Starting C32 ") ); + TBool CSmsEmsPrtTestStep::SendReceiveMsgL(CSmsMessage& aMsg) + { + // Send SMS + SendSmsL(&aMsg,iSocket); - err = StartC32(); - return (err == KErrNone || err == KErrAlreadyExists) ? KErrNone : err; - } - - void CSmsEmsPrtTestStep::CreateCommDBL() -/** - * @test Create a special CommDb Database for this test harness. - */ - { - INFO_PRINTF1(_L("Creating of the commdb for the TE_SmsEmsPrt") ); + CSmsMessage* rxMsg; - -#ifdef SYMBIAN_NON_SEAMLESS_NETWORK_BEARER_MOBILITY - CMDBSession* db = CMDBSession::NewL(KCDVersion1_2); -#else - CMDBSession* db = CMDBSession::NewL(KCDVersion1_1); -#endif - CleanupStack::PushL(db); - db->OpenTransactionL(); - CMDBRecordSet* modemBearerRecordSet = new(ELeave) CMDBRecordSet(KCDTIdModemBearerRecord); - CleanupStack::PushL(modemBearerRecordSet); - modemBearerRecordSet->LoadL(*db); - - _LIT(KDummy0, "DUMMY::0"); - _LIT(KDummy, "DUMMY"); - _LIT(KSim, "SIM"); + // Now receive and compare + WaitForRecvL(iSocket); + rxMsg = RecvSmsL(iSocket); - RPointerArray& resultSet = (RPointerArray&) modemBearerRecordSet->iRecords; - - CCDModemBearerRecord *modemRecord = static_cast(CCDRecordBase::RecordFactoryL(KCDTIdModemBearerRecord)); - CleanupStack::PushL(modemRecord); + CleanupStack::PushL(rxMsg); + TBool comp = EmsTestUtils::CompareEmsMsgL(aMsg, *rxMsg); + TEST(comp); - for (TInt i=0; iiPortName = KDummy0; - modemRecord->iCsyName = KDummy; - modemRecord->iTsyName = KSim; - modemRecord->iMessageCentreNumber = iServiceCenterNumber; - modemRecord->ModifyL(*db); - modemRecord = NULL; - } - db->CommitTransactionL(); - resultSet.Close(); - CleanupStack::PopAndDestroy(2); - CleanupStack::PopAndDestroy(db); - } - - -// Here are the section names -_LIT8(KSetupTelNumbers, "Defaults"); + // compare OK + INFO_PRINTF1(_L("Sent and received PDUs compare OK...")); -// Here are the item names -_LIT8(KServiceCenter, "ServiceCenter"); -_LIT8(KTelefoneNumber, "TelephoneNumber"); - -void CSmsEmsPrtTestStep::ParseSettingsFromFileL() - { - CTestConfig* configFile = CTestConfig::NewLC(iFs,KGmsSmsConfigFileDir,KGmsSmsConfigFileName); - const CTestConfigSection* cfgFile = configFile->Section(KSetupTelNumbers); - if (cfgFile == NULL) - User::Leave(KErrNotFound); + // Now make sure the received message is valid - this can be + // tested by ensuring that NumMessagePDUsL can be called without + // leaving + rxMsg->NumMessagePDUsL(); - const CTestConfigItem* item = cfgFile->Item(KServiceCenter,0); - if (item == NULL) - User::Leave(KErrNotFound); - - iServiceCenterNumber.Copy(item->Value()); + CleanupStack::PopAndDestroy(rxMsg); - item = cfgFile->Item(KTelefoneNumber,0); - if (item == NULL) - User::Leave(KErrNotFound); - - iTelephoneNumber.Copy(item->Value()); - - // beginning of the destruction - CleanupStack::PopAndDestroy(configFile);//configFile - } + // return the result of the comparison + return comp; + } diff -r 962e6306d9d2 -r 7ef16719d8cb smsprotocols/smsstack/smsprot/Test/TE_SMSEMSPRT/TE_SMSEMSPRTBASE.h --- a/smsprotocols/smsstack/smsprot/Test/TE_SMSEMSPRT/TE_SMSEMSPRTBASE.h Fri Feb 19 23:59:33 2010 +0200 +++ b/smsprotocols/smsstack/smsprot/Test/TE_SMSEMSPRT/TE_SMSEMSPRTBASE.h Fri Mar 12 15:49:38 2010 +0200 @@ -13,14 +13,14 @@ // Description: // -#ifndef _TE_SMSEMSPRTBASE_H_ -#define _TE_SMSEMSPRTBASE_H_ - +#ifndef TE_SMSEMSPRTBASE_H +#define TE_SMSEMSPRTBASE_H #include #include #include - +#include +#include #include "gsmubuf.h" #include "Gsmumsg.h" @@ -30,8 +30,7 @@ #include "smsustrm.h" #include "smspdudb.h" #include "smsstacktestutilities.h" -#include -#include +#include "smsstackbaseteststeps.h" #include "attributes.h" #include "smspproc.h" @@ -43,47 +42,16 @@ #include "EmsTestUtils.h" #include "EMSObjectDistributionIE.h" - -const TUint KSocketMessageSlots = 16; // Override the default value of 8 - -// The basic text we send - 26 chars long -_LIT(KBasicSmsText,"abcdefghijklmnopqrstuvwxyz"); -_LIT(KTSmsEmsPrtConfigFileName, "tsmsemsprt_config.txt"); - -_LIT(KGmsSmsConfigFileName,"setupgsmsms.txt"); - -class CSmsEmsPrtTestStep : public CTestStep -{ - +class CSmsEmsPrtTestStep : public CSmsBaseTestStep + { public: - CSmsMessage* ConfigCreateSmsMessageLC(const TDesC& aDes, - TSmsDataCodingScheme::TSmsAlphabet aAlphabet = TSmsDataCodingScheme::ESmsAlphabet8Bit); - CSmsMessage* CreateSmsMessageL(const TDesC& aDes, TSmsDataCodingScheme::TSmsAlphabet aAlphabet, CSmsPDU::TSmsPDUType aType = CSmsPDU::ESmsSubmit) ; + virtual TVerdict doTestStepPreambleL(); + virtual TVerdict doTestStepPostambleL(); + TBool SendReceiveMsgL(CSmsMessage& aMsg); - void SendSmsL(const CSmsMessage* aSms, RSocket& aSocket); - void PrintMessageL(const CSmsMessage* aSms); - void WaitForRecvL(RSocket& aSocket); - CSmsMessage* RecvSmsL(RSocket& aSocket, TInt aIoctl = KIoctlReadMessageSucceeded) ; - TText8 IsCharDisplayable( const TText8 aChar ) ; - void PrepareRegTestL() ; - void EndRegTest(); - TInt CommInit() ; - void CreateCommDBL(); - void ParseSettingsFromFileL(); - + +protected: + RSocket iSocket; + }; - RFs iFs; - TSmsServiceCenterAddress iTelephoneNumber; //Test SIM - TSmsServiceCenterAddress iServiceCenterNumber; //Radiolinja - RSocketServ iSocketServ; - RSocket iSocket; - - virtual TVerdict doTestStepPreambleL(); - virtual TVerdict doTestStepPostambleL(); - virtual TInt GetTestNumber() = 0 ; - - CSmsStackTestUtils* iSmsStackTestUtils; - -}; - -#endif // _TE_SMSEMSPRTBASE_H_ +#endif // TE_SMSEMSPRTBASE_H diff -r 962e6306d9d2 -r 7ef16719d8cb smsprotocols/smsstack/smsprot/Test/TE_SMSEMSPRT/TE_SMSEMSPRTSERVER.cpp --- a/smsprotocols/smsstack/smsprot/Test/TE_SMSEMSPRT/TE_SMSEMSPRTSERVER.cpp Fri Feb 19 23:59:33 2010 +0200 +++ b/smsprotocols/smsstack/smsprot/Test/TE_SMSEMSPRT/TE_SMSEMSPRTSERVER.cpp Fri Mar 12 15:49:38 2010 +0200 @@ -30,6 +30,8 @@ { CSmsEmsPrtTestServer* server = new (ELeave) CSmsEmsPrtTestServer(); CleanupStack::PushL(server); + // CSmsStackTestServer intermediate base class call + server->InitializeTsyAndPhonesL(); // CServer base class call server->StartL(KServerName); CleanupStack::Pop(server); @@ -86,11 +88,7 @@ // the new could return NULL, but that is not a problem as it implies // the test step is missing and this will be marked in the log file. // - if (aStepName == _L("TestInit")) - { - testStep = new CTestInit; - } - else if (aStepName == _L("TestEmsFormatA")) + if (aStepName == _L("TestEmsFormatA")) { testStep = new CTestEmsFormatA ; } diff -r 962e6306d9d2 -r 7ef16719d8cb smsprotocols/smsstack/smsprot/Test/TE_SMSEMSPRT/TE_SMSEMSPRTSERVER.h --- a/smsprotocols/smsstack/smsprot/Test/TE_SMSEMSPRT/TE_SMSEMSPRTSERVER.h Fri Feb 19 23:59:33 2010 +0200 +++ b/smsprotocols/smsstack/smsprot/Test/TE_SMSEMSPRT/TE_SMSEMSPRTSERVER.h Fri Mar 12 15:49:38 2010 +0200 @@ -15,17 +15,16 @@ // // -#ifndef __TE_SMSEMSPRTSERVER_H__ -#define __TE_SMSEMSPRTSERVER_H__ -#include -#include "TE_SMSEMSPRTBASE.h" +#ifndef TE_SMSEMSPRTSERVER_H +#define TE_SMSEMSPRTSERVER_H +#include "smsstackbasetestserver.h" -class CSmsEmsPrtTestServer : public CTestServer +class CSmsEmsPrtTestServer : public CSmsStackTestServer { public: static CSmsEmsPrtTestServer* NewL(); virtual CTestStep* CreateTestStep(const TDesC& aStepName); }; -#endif // __TE_SMSEMSPRTSERVER_H__ +#endif // TE_SMSEMSPRTSERVER_H diff -r 962e6306d9d2 -r 7ef16719d8cb smsprotocols/smsstack/smsprot/Test/TE_SMSEMSPRT/TE_smsemsprt_setup.script --- a/smsprotocols/smsstack/smsprot/Test/TE_SMSEMSPRT/TE_smsemsprt_setup.script Fri Feb 19 23:59:33 2010 +0200 +++ b/smsprotocols/smsstack/smsprot/Test/TE_SMSEMSPRT/TE_smsemsprt_setup.script Fri Mar 12 15:49:38 2010 +0200 @@ -13,5 +13,15 @@ // Description: // +RUN_UTILS MakeReadWrite c:\config.txt +RUN_UTILS DeleteFile c:\config.txt + +RUN_SCRIPT z:\testdata\scripts\smsstackcleanprivatedata.script + +RUN_UTILS MkDir c:\sms\ +RUN_UTILS CopyFile z:\sms\tsmsemsprt_config.txt c:\sms\tsmsemsprt_config.txt + +RUN_UTILS CopyFile c:\sms\tsmsemsprt_config.txt c:\config.txt +RUN_UTILS MakeReadWrite c:\config.txt + ced -i z:\TestData\configs\te_smsemsprt_commdb.cfg ced.log -copyfile z:\sms\tsmsemsprt_config.txt c:\sms\tsmsemsprt_config.txt diff -r 962e6306d9d2 -r 7ef16719d8cb smsprotocols/smsstack/smsprot/Test/TE_SMSINTER/TE_smsinterbase.cpp --- a/smsprotocols/smsstack/smsprot/Test/TE_SMSINTER/TE_smsinterbase.cpp Fri Feb 19 23:59:33 2010 +0200 +++ b/smsprotocols/smsstack/smsprot/Test/TE_SMSINTER/TE_smsinterbase.cpp Fri Mar 12 15:49:38 2010 +0200 @@ -2393,8 +2393,6 @@ sendMessage->AddEMSInformationElementL(*object2); CleanupStack::PopAndDestroy(object2); - iSmsStackTestUtils->WaitForInitializeL(); // load wapprot - // set SMS port addresing for 8 Bit ports CSmsPDU& pdu = sendMessage->SmsPDU(); pdu.SetApplicationPortAddressingL(ETrue, port8, port8, EFalse); @@ -2487,8 +2485,6 @@ sendMessage->AddEMSInformationElementL(*object2); CleanupStack::PopAndDestroy(object2); - iSmsStackTestUtils->WaitForInitializeL(); // load wapprot - // set SMS port addresing for 8 Bit ports CSmsPDU& pdu = sendMessage->SmsPDU(); pdu.SetApplicationPortAddressingL(ETrue, port16, port16, ETrue); @@ -3116,13 +3112,10 @@ SendSmsL(smsMessage,socket); CleanupStack::PopAndDestroy(smsMessage); - INFO_PRINTF1(_L("waiting for incoming SMS...") ); WaitForRecvL(socket); smsMessage = RecvSmsL(socket); - - INFO_PRINTF1(_L("incoming SMS") ); - CleanupStack::PushL(smsMessage); + TestSmsContentsL(smsMessage,testText); CleanupStack::PopAndDestroy(smsMessage); @@ -5566,9 +5559,6 @@ } while (phonePowerCheck==ESAPhoneOff); - // Wait phone initializing - iSmsStackTestUtils->WaitForInitializeL(); - INFO_PRINTF1(_L("Checking that Sms Stack will allow us to send an SMS")); TRAP(ret,SendSmsDontCheckReturnValueL(smsMessage,socket)); TEST(ret==KErrNone); @@ -5613,9 +5603,6 @@ } while (phonePowerCheck==ESAPhoneOff); - // Wait phone initializing - iSmsStackTestUtils->WaitForInitializeL(); - INFO_PRINTF1(_L("Checking that Sms Stack will allow us to send an SMS")); TRAP(ret,SendSmsDontCheckReturnValueL(smsMessage,socket)); TEST(ret==KErrNone); @@ -5694,10 +5681,6 @@ ret = socketany.Open(socketServer, KSMSAddrFamily, KSockDatagram, KSMSDatagramProtocol); TEST(ret==KErrNone); - // Wait phone initializing - iSmsStackTestUtils->WaitForInitializeL(); - - // bind them to ports ret = socket8.Bind(addr8); TEST(ret==KErrNone); @@ -7097,16 +7080,12 @@ */ { //Receive SMS - INFO_PRINTF1(_L("waiting for incoming SMS...") ); WaitForRecvL(aSocket); CSmsMessage* smsMessage = RecvSmsL(aSocket); - - INFO_PRINTF1(_L("incoming SMS") ); + CleanupStack::PushL(smsMessage); //Check the status report - CleanupStack::PushL(smsMessage); TBool isSR = (smsMessage->Type()==CSmsPDU::ESmsStatusReport); - if (isSR) { INFO_PRINTF1(_L("Received status report")); @@ -7117,7 +7096,7 @@ else INFO_PRINTF1(_L("Received SMS is NOT a Status report!")); - TEST(isSR==1); + TEST(isSR); CleanupStack::PopAndDestroy(smsMessage); } @@ -7575,13 +7554,10 @@ SendSmsL(smsMessage, aSocket); CleanupStack::PopAndDestroy(smsMessage); //destroyed because created again in RecvSmsL - INFO_PRINTF1(_L("waiting for incoming SMS...") ); WaitForRecvL( aSocket); smsMessage = RecvSmsL( aSocket); - - INFO_PRINTF1(_L("incoming SMS") ); - CleanupStack::PushL(smsMessage); + TestSmsContentsL(smsMessage,aDes); User::After(1000000); diff -r 962e6306d9d2 -r 7ef16719d8cb smsprotocols/smsstack/smsprot/Test/TE_SMSPRTSTRESS/TE_smsprtstress.cpp --- a/smsprotocols/smsstack/smsprot/Test/TE_SMSPRTSTRESS/TE_smsprtstress.cpp Fri Feb 19 23:59:33 2010 +0200 +++ b/smsprotocols/smsstack/smsprot/Test/TE_SMSPRTSTRESS/TE_smsprtstress.cpp Fri Mar 12 15:49:38 2010 +0200 @@ -13,110 +13,85 @@ // Description: // -#include "TE_smsprtstressbase.h" #include "TE_smsprtstress.h" -#include "TE_smsprtstressutils.h" #include -#include +//#include #include -using namespace conn; - +#include "TE_smsprtstressutils.h" -TVerdict CTestInit::doTestStepL() - { - InitGlobalsL(); - return TestStepResult(); - } - +//using namespace conn; TVerdict CTestRxAndRead::doTestStepL() { - RSocketServ socketServer; - PrepareRegTestLC(socketServer, 0); - - CTestReceiveEnumerateMessages* globalAO = CTestReceiveEnumerateMessages::NewL(KActiveReceiverPriority, socketServer, *iSmsStackTestUtils); - CleanupStack::PushL(globalAO); - - globalAO->Start(2,5,3); - - TEST(globalAO->iStatus.Int() == KErrNone); - - //globalAO->Cancel(); - - CleanupStack::PopAndDestroy(globalAO); - CleanupStack::PopAndDestroy(&socketServer); - +// CTestReceiveEnumerateMessages* globalAO = CTestReceiveEnumerateMessages::NewL(KActiveReceiverPriority, iSocketServer, *iSmsStackTestUtils); +// CleanupStack::PushL(globalAO); +// +// globalAO->Start(2 /*aEnumExpected*/, 5 /*aRecvExpected*/, 3 /*aRecvInitial*/); +// +// TEST(globalAO->iStatus.Int() == KErrNone); +// +// CleanupStack::PopAndDestroy(globalAO); return TestStepResult(); } - TVerdict CTestMultipleSimultaneousRequests::doTestStepL() { - INFO_PRINTF1(_L("Test multiple simultaneous requests handling")); - - RSocketServ socketServer; - PrepareRegTestLC(socketServer, 1); - - TInt ret(KErrNone); - - RPointerArray testSmsActives; - CleanupResetAndDestroyPushL(testSmsActives); - - //Create instance of CTestSmsActiveStop that stops testing activity when tests are completed. - CTestSmsActiveStop* testSmsActiveStop = new (ELeave) CTestSmsActiveStop(testSmsActives,ret); - CleanupStack::PushL(testSmsActiveStop); - - //Create instance of CTestSmsSendActive that makes send requests to the SMS Stack. - CTestSmsSendActive* sendActive = CTestSmsSendActive::NewL(socketServer,*testSmsActiveStop, 16, iFs, iSmsStackTestUtils, this); - CleanupStack::PushL(sendActive); - User::LeaveIfError(testSmsActives.Append(sendActive)); - CleanupStack::Pop(sendActive); - - //Create instance of CTestSmsParametersActive that makes retrieve and store parameters requests to the SMS Stack. - CTestSmsParametersActive* parametersActive = CTestSmsParametersActive::NewL(socketServer,*testSmsActiveStop,70, iSmsStackTestUtils, this); - CleanupStack::PushL(parametersActive); - User::LeaveIfError(testSmsActives.Append(parametersActive)); - CleanupStack::Pop(parametersActive); - - //Create instance of CTestSmsStorageActive that makes enumerate, write and delete requests to the SMS Stack. - CTestSmsStorageActive* storageActive = CTestSmsStorageActive::NewL(socketServer,*testSmsActiveStop,70, iFs,iSmsStackTestUtils, this); - CleanupStack::PushL(storageActive); - User::LeaveIfError(testSmsActives.Append(storageActive)); - CleanupStack::Pop(storageActive); - - //Create instance of CTestSmsReceiveActive that makes retrieve requests to the SMS Stack. - CTestSmsReceiveActive* receiveActive = CTestSmsReceiveActive::NewL(socketServer,*testSmsActiveStop,16, iFs, iSmsStackTestUtils, this); - CleanupStack::PushL(receiveActive); - User::LeaveIfError(testSmsActives.Append(receiveActive)); - CleanupStack::Pop(receiveActive); - - sendActive->StartL(); - parametersActive->StartL(); - storageActive->StartL(); - receiveActive->StartL(); - - //Start active objects - CActiveScheduler::Start(); - - //Checkpoint is called when test are ran through - TEST(ret == KErrNone); - - CleanupStack::PopAndDestroy(testSmsActiveStop); //stopper class - CleanupStack::PopAndDestroy(&testSmsActives); //active objects - - EndRegTest(); - +// INFO_PRINTF1(_L("Test multiple simultaneous requests handling")); +// TInt ret(KErrNone); +// +// RPointerArray testSmsActives; +// CleanupResetAndDestroyPushL(testSmsActives); +// +// //Create instance of CTestSmsActiveStop that stops testing activity when tests are completed. +// CTestSmsActiveStop* testSmsActiveStop = new (ELeave) CTestSmsActiveStop(testSmsActives,ret); +// CleanupStack::PushL(testSmsActiveStop); +// +// //Create instance of CTestSmsSendActive that makes send requests to the SMS Stack. +// CTestSmsSendActive* sendActive = CTestSmsSendActive::NewL(iSocketServer,*testSmsActiveStop, 16, iFs, iSmsStackTestUtils, this); +// CleanupStack::PushL(sendActive); +// User::LeaveIfError(testSmsActives.Append(sendActive)); +// CleanupStack::Pop(sendActive); +// +// //Create instance of CTestSmsParametersActive that makes retrieve and store parameters requests to the SMS Stack. +// CTestSmsParametersActive* parametersActive = CTestSmsParametersActive::NewL(iSocketServer,*testSmsActiveStop,70, iSmsStackTestUtils, this); +// CleanupStack::PushL(parametersActive); +// User::LeaveIfError(testSmsActives.Append(parametersActive)); +// CleanupStack::Pop(parametersActive); +// +// //Create instance of CTestSmsStorageActive that makes enumerate, write and delete requests to the SMS Stack. +// CTestSmsStorageActive* storageActive = CTestSmsStorageActive::NewL(iSocketServer,*testSmsActiveStop,70, iFs,iSmsStackTestUtils, this); +// CleanupStack::PushL(storageActive); +// User::LeaveIfError(testSmsActives.Append(storageActive)); +// CleanupStack::Pop(storageActive); +// +// //Create instance of CTestSmsReceiveActive that makes retrieve requests to the SMS Stack. +// CTestSmsReceiveActive* receiveActive = CTestSmsReceiveActive::NewL(iSocketServer,*testSmsActiveStop,16, iFs, iSmsStackTestUtils, this); +// CleanupStack::PushL(receiveActive); +// User::LeaveIfError(testSmsActives.Append(receiveActive)); +// CleanupStack::Pop(receiveActive); +// +// sendActive->StartL(); +// parametersActive->StartL(); +// storageActive->StartL(); +// receiveActive->StartL(); +// +// //Start active objects +// CActiveScheduler::Start(); +// +// //Checkpoint is called when test are ran through +// TEST(ret == KErrNone); +// +// CleanupStack::PopAndDestroy(testSmsActiveStop); //stopper class +// CleanupStack::PopAndDestroy(&testSmsActives); //active objects return TestStepResult(); } - +// TODO: replace with one from CSmsBaseTestStep TInt CTestSmsPrtBackup::SendSmsL(RSocket& aSocket) { - INFO_PRINTF1(_L("Attempting to send an sms to +358405202000")); - TBuf<32> buf; buf.Append(_L("TestSmsPrtBackup message")); @@ -130,13 +105,10 @@ TPckgBuf sbuf; TRequestStatus status; aSocket.Ioctl(KIoctlSendSmsMessage,status,&sbuf, KSolSmsProv); - - //wait for message to be sent User::WaitForRequest(status); - + INFO_PRINTF2(_L("SendSmsL returning %d"), status.Int()); + CleanupStack::PopAndDestroy(message); - - INFO_PRINTF2(_L("SendSmsL returning %d"), status.Int()); return (status.Int()); } @@ -154,103 +126,98 @@ during backup and restore.*/ TVerdict CTestSmsPrtBackup::doTestStepL() { - PrepareRegTestLC(iSocketServer, 2); - RSocket socket; - iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,socket,ESmsAddrSendOnly); - - INFO_PRINTF1(_L("Expecting SendSmsL to return KErrNone")); - TEST(SendSmsL(socket) == KErrNone); - - // Notify the SMSPROT server that a backup is about to take place and - // that the server should powerdown - INFO_PRINTF1(_L("Simulating a backup notification")); - iSecureBackupEngine->SetBURModeL(TDriveList(_L8("C")), - EBURBackupFull, EBackupBase); - - INFO_PRINTF1(_L("Expecting SendSmsL to return KErrDisconnected")); - TEST(SendSmsL(socket) == KErrDisconnected); - - - // Notify the SMSPROT server that a backup has completed - // that the server should powerup - INFO_PRINTF1(_L("Simulating a backup complete notification")); - iSecureBackupEngine->SetBURModeL(TDriveList(_L8("C")), - EBURNormal, ENoBackup); - - // Required Pause to Allow SMSStack to hande notification and restart - User::After(5*1000*1000); - - INFO_PRINTF1(_L("Expecting SendSmsL to return KErrNone")); - TEST(SendSmsL(socket) == KErrNone); - - // Notify the SMSPROT server that a restore is about to take place and - // that the server should powerdown - INFO_PRINTF1(_L("Simulating a restore notification")); - iSecureBackupEngine->SetBURModeL(TDriveList(_L8("C")), - EBURRestorePartial, EBackupIncrement); - - INFO_PRINTF1(_L("Expecting SendSmsL to return KErrDisconnected")); - TEST(SendSmsL(socket) == KErrDisconnected); - - // Notify the SMSPROT server that a restore has completed - // that the server should powerup - INFO_PRINTF1(_L("Simulating a restore complete notification")); - - iSecureBackupEngine->SetBURModeL(TDriveList(_L8("C")), - EBURNormal, ENoBackup); - - // Required Pause to Allow SMSStack to hande notification and restart - User::After(5*1000*1000); - INFO_PRINTF1(_L("Expecting SendSmsL to return KErrNone")); - TEST(SendSmsL(socket) == KErrNone); - - INFO_PRINTF1(_L("Closing SocketServer ...")); - CleanupStack::PopAndDestroy(&socket); - CleanupStack::PopAndDestroy(&iSocketServer); +// RSocket socket; +// iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,socket,ESmsAddrSendOnly); +// +// INFO_PRINTF1(_L("Expecting SendSmsL to return KErrNone")); +// TEST(SendSmsL(socket) == KErrNone); +// +// // Notify the SMSPROT server that a backup is about to take place and +// // that the server should powerdown +// INFO_PRINTF1(_L("Simulating a backup notification")); +// iSecureBackupEngine->SetBURModeL(TDriveList(_L8("C")), +// EBURBackupFull, EBackupBase); +// +// INFO_PRINTF1(_L("Expecting SendSmsL to return KErrDisconnected")); +// TEST(SendSmsL(socket) == KErrDisconnected); +// +// +// // Notify the SMSPROT server that a backup has completed +// // that the server should powerup +// INFO_PRINTF1(_L("Simulating a backup complete notification")); +// iSecureBackupEngine->SetBURModeL(TDriveList(_L8("C")), +// EBURNormal, ENoBackup); +// +// // Required Pause to Allow SMSStack to hande notification and restart +// User::After(5*1000*1000); +// +// INFO_PRINTF1(_L("Expecting SendSmsL to return KErrNone")); +// TEST(SendSmsL(socket) == KErrNone); +// +// // Notify the SMSPROT server that a restore is about to take place and +// // that the server should powerdown +// INFO_PRINTF1(_L("Simulating a restore notification")); +// iSecureBackupEngine->SetBURModeL(TDriveList(_L8("C")), +// EBURRestorePartial, EBackupIncrement); +// +// INFO_PRINTF1(_L("Expecting SendSmsL to return KErrDisconnected")); +// TEST(SendSmsL(socket) == KErrDisconnected); +// +// // Notify the SMSPROT server that a restore has completed +// // that the server should powerup +// INFO_PRINTF1(_L("Simulating a restore complete notification")); +// +// iSecureBackupEngine->SetBURModeL(TDriveList(_L8("C")), +// EBURNormal, ENoBackup); +// +// // Required Pause to Allow SMSStack to hande notification and restart +// User::After(5*1000*1000); +// INFO_PRINTF1(_L("Expecting SendSmsL to return KErrNone")); +// TEST(SendSmsL(socket) == KErrNone); +// +// INFO_PRINTF1(_L("Closing SocketServer ...")); +// CleanupStack::PopAndDestroy(&socket); return TestStepResult(); } - /** * Tests the Backup and Restore operation when the phone is powered off. */ TVerdict CTestSmsPrtBackupWhenPhoneIsOff::doTestStepL() { - PrepareRegTestLC(iSocketServer, 2); - RSocket socket; - iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,socket,ESmsAddrSendOnly); - - // - // Perform backup abnd restore when the phone is powered down... - // - INFO_PRINTF1(_L("Simulating a backup and restore while the phone is off")); - User::LeaveIfError(RProperty::Set(KUidSystemCategory, KUidPhonePwr.iUid, - ESAPhoneOff)); - - iSecureBackupEngine->SetBURModeL(TDriveList(_L8("C")), - EBURBackupFull, EBackupBase); - - iSecureBackupEngine->SetBURModeL(TDriveList(_L8("C")), - EBURNormal, ENoBackup); - - User::After(5*1000*1000); - - User::LeaveIfError(RProperty::Set(KUidSystemCategory, KUidPhonePwr.iUid, - ESAPhoneOn)); - - INFO_PRINTF1(_L("Closing SocketServer...")); - CleanupStack::PopAndDestroy(&socket); - CleanupStack::PopAndDestroy(&iSocketServer); - - // - // Ensure the SMS Stack has been reloaded, prior to performing the ESock - // memory leak check. - // - PrepareRegTestLC(iSocketServer, 2); - iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,socket,ESmsAddrSendOnly); - - CleanupStack::PopAndDestroy(&socket); - CleanupStack::PopAndDestroy(&iSocketServer); - +// RSocket socket; +// iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,socket,ESmsAddrSendOnly); +// +// // +// // Perform backup abnd restore when the phone is powered down... +// // +// INFO_PRINTF1(_L("Simulating a backup and restore while the phone is off")); +// User::LeaveIfError(RProperty::Set(KUidSystemCategory, KUidPhonePwr.iUid, +// ESAPhoneOff)); +// +// iSecureBackupEngine->SetBURModeL(TDriveList(_L8("C")), +// EBURBackupFull, EBackupBase); +// +// iSecureBackupEngine->SetBURModeL(TDriveList(_L8("C")), +// EBURNormal, ENoBackup); +// +// User::After(5*1000*1000); +// +// User::LeaveIfError(RProperty::Set(KUidSystemCategory, KUidPhonePwr.iUid, +// ESAPhoneOn)); +// +// INFO_PRINTF1(_L("Closing SocketServer...")); +// CleanupStack::PopAndDestroy(&socket); +// iSocketServer.Close(); +// +// // TODO: check if this part is still valid +// // +// // Ensure the SMS Stack has been reloaded, prior to performing the ESock +// // memory leak check. +// // +// ConnectSocketServerL(iSocketServer); +// iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,socket,ESmsAddrSendOnly); +// +// CleanupStack::PopAndDestroy(&socket); return TestStepResult(); - } // CTestSmsPrtBackupWhenPhoneIsOff::doTestStepL + } diff -r 962e6306d9d2 -r 7ef16719d8cb smsprotocols/smsstack/smsprot/Test/TE_SMSPRTSTRESS/TE_smsprtstress.h --- a/smsprotocols/smsstack/smsprot/Test/TE_SMSPRTSTRESS/TE_smsprtstress.h Fri Feb 19 23:59:33 2010 +0200 +++ b/smsprotocols/smsstack/smsprot/Test/TE_SMSPRTSTRESS/TE_smsprtstress.h Fri Mar 12 15:49:38 2010 +0200 @@ -13,16 +13,10 @@ // Description: // - -#ifndef __TE_SMSPRTSTRESS_H_ -#define __TE_SMSPRTSTRESS_H_ - +#ifndef TE_SMSPRTSTRESS_H +#define TE_SMSPRTSTRESS_H -class CTestInit : public CSmsPrtStressTestStep - { -public: - virtual TVerdict doTestStepL(); - }; +#include "TE_smsprtstressbase.h" class CTestRxAndRead : public CSmsPrtStressTestStep { @@ -42,17 +36,14 @@ virtual TVerdict doTestStepL(); private: + // TODO: replace with one from CSmsBaseTestStep TInt SendSmsL(RSocket& aSocket); - RSocketServ iSocketServer; }; class CTestSmsPrtBackupWhenPhoneIsOff : public CSmsPrtStressTestStep { public: virtual TVerdict doTestStepL(); - -private: - RSocketServ iSocketServer; }; -#endif +#endif // TE_SMSPRTSTRESS_H diff -r 962e6306d9d2 -r 7ef16719d8cb smsprotocols/smsstack/smsprot/Test/TE_SMSPRTSTRESS/TE_smsprtstress.mmp --- a/smsprotocols/smsstack/smsprot/Test/TE_SMSPRTSTRESS/TE_smsprtstress.mmp Fri Feb 19 23:59:33 2010 +0200 +++ b/smsprotocols/smsstack/smsprot/Test/TE_SMSPRTSTRESS/TE_smsprtstress.mmp Fri Mar 12 15:49:38 2010 +0200 @@ -14,7 +14,7 @@ // TARGET te_smsprtstress.exe -CAPABILITY ReadDeviceData WriteDeviceData NetworkControl NetworkServices ReadUserData WriteUserData AllFiles PowerMgmt +CAPABILITY ReadDeviceData WriteDeviceData NetworkControl NetworkServices ReadUserData WriteUserData ProtServ AllFiles PowerMgmt TARGETTYPE exe UID 0x1000007A 0x101FE444 VENDORID 0x70000001 @@ -24,10 +24,8 @@ SOURCE TE_smsprtstress.cpp SOURCE TE_smsprtstressserver.cpp SOURCE TE_smsprtstressbase.cpp -SOURCE TE_smsprtstressutils.cpp -SOURCEPATH ../../Test - +SOURCEPATH ../../Test USERINCLUDE ../../../test USERINCLUDE ../../Inc @@ -37,16 +35,17 @@ USERINCLUDE ../../../gsmu/inc USERINCLUDE ../../../smsu/inc -MW_LAYER_SYSTEMINCLUDE_SYMBIAN +OS_LAYER_SYSTEMINCLUDE_SYMBIAN -LIBRARY etelmm.lib LIBRARY smsu.lib gsmu.lib // components under test -LIBRARY esock.lib bafl.lib -LIBRARY euser.lib efsrv.lib estor.lib c32root.lib +LIBRARY esock.lib c32root.lib +LIBRARY euser.lib efsrv.lib estor.lib LIBRARY smsstacktestutilities.lib LIBRARY testexecutelogclient.lib LIBRARY testexecuteutils.lib LIBRARY testconfigfileparser.lib -LIBRARY sbeclient.lib + +LIBRARY commsdat.lib + SMPSAFE diff -r 962e6306d9d2 -r 7ef16719d8cb smsprotocols/smsstack/smsprot/Test/TE_SMSPRTSTRESS/TE_smsprtstress_setup.script --- a/smsprotocols/smsstack/smsprot/Test/TE_SMSPRTSTRESS/TE_smsprtstress_setup.script Fri Feb 19 23:59:33 2010 +0200 +++ b/smsprotocols/smsstack/smsprot/Test/TE_SMSPRTSTRESS/TE_smsprtstress_setup.script Fri Mar 12 15:49:38 2010 +0200 @@ -15,4 +15,15 @@ // // +RUN_UTILS MakeReadWrite c:\config.txt +RUN_UTILS DeleteFile c:\config.txt + +RUN_SCRIPT z:\testdata\scripts\smsstackcleanprivatedata.script + +RUN_UTILS MkDir c:\sms\ +RUN_UTILS CopyFile z:\sms\tsmsprtstress_config.txt c:\sms\tsmsprtstress_config.txt + +RUN_UTILS CopyFile c:\sms\tsmsprtstress_config.txt c:\config.txt +RUN_UTILS MakeReadWrite c:\config.txt + ced -i z:\TestData\configs\te_smsprtstress_commdb.cfg ced.log diff -r 962e6306d9d2 -r 7ef16719d8cb smsprotocols/smsstack/smsprot/Test/TE_SMSPRTSTRESS/TE_smsprtstressbase.cpp --- a/smsprotocols/smsstack/smsprot/Test/TE_SMSPRTSTRESS/TE_smsprtstressbase.cpp Fri Feb 19 23:59:33 2010 +0200 +++ b/smsprotocols/smsstack/smsprot/Test/TE_SMSPRTSTRESS/TE_smsprtstressbase.cpp Fri Mar 12 15:49:38 2010 +0200 @@ -18,310 +18,33 @@ */ #include "TE_smsprtstressbase.h" + #include #include #include - #include -using namespace conn; -TVerdict CSmsPrtStressTestStep::doTestStepPreambleL( void ) - { - __UHEAP_MARK; +//using namespace conn; - iScheduler = new(ELeave) CActiveScheduler; - CActiveScheduler::Install(iScheduler); +TVerdict CSmsPrtStressTestStep::doTestStepPreambleL() + { + //base class preamble - marks the heap +// CSmsBaseTestStep::doTestStepPreambleL(); - iSecureBackupEngine = CSBEClient::NewL(); - iSecureBackupEngine->SetBURModeL(TDriveList(_L8("C")), - EBURNormal, ENoBackup); - - User::LeaveIfError(iFs.Connect()); - - iSmsStackTestUtils = CSmsStackTestUtils::NewL(this, iFs); +// iSecureBackupEngine = CSBEClient::NewL(); +// iSecureBackupEngine->SetBURModeL(TDriveList(_L8("C")), +// EBURNormal, ENoBackup); return TestStepResult() ; } -TVerdict CSmsPrtStressTestStep::doTestStepPostambleL( void ) +TVerdict CSmsPrtStressTestStep::doTestStepPostambleL() { - delete iSmsStackTestUtils; - iSmsStackTestUtils = NULL; - - iFs.Close(); +// delete iSecureBackupEngine; +// iSecureBackupEngine = NULL; - delete iSecureBackupEngine; - iSecureBackupEngine = NULL; - - delete iScheduler; - iScheduler = NULL; - - __UHEAP_MARKEND; - - DoESockMemoryLeakTestL(); + //base class postamble - unmarks the heap +// CSmsBaseTestStep::doTestStepPostambleL(); return TestStepResult() ; } - - -void CSmsPrtStressTestStep::InitGlobalsL() -/** - * Initialise global variables. - */ - { - TRAPD( ret, ParseSettingsFromFileL()); - - if (ret != KErrNone) - INFO_PRINTF2(_L("ParseSettingsFromFileL [err=%d]"), ret); - - GetCmdLineArguments(); - - INFO_PRINTF2(_L("TelNo: [%S]"), &iTelephoneNumber); - INFO_PRINTF2(_L("ScNo: [%S]"), &iServiceCenterNumber); - - CommInit(); - - iSmsStackTestUtils->CopyConfigFileL(KTSmsPrtStressConfigFileName); - } - - -void CSmsPrtStressTestStep::PrepareRegTestLC(RSocketServ& aSocketServer, TInt aTestNumber) -/** - * Run a specified test. - * The test number is passed via property KUidPSSimTsyCategory. This will notify the SIM tsy - * SIM tsy uses test number to parse correct script from config.txt - * @param aTestNumber The test number corresponding the test case - */ - { - RProperty testNumberProperty; - User::LeaveIfError(testNumberProperty.Attach(KUidPSSimTsyCategory, KPSSimTsyTestNumber)); - CleanupClosePushL(testNumberProperty); - - TRequestStatus status; - testNumberProperty.Subscribe(status); - User::LeaveIfError(testNumberProperty.Set(KUidPSSimTsyCategory,KPSSimTsyTestNumber,aTestNumber)); - User::WaitForRequest(status); - TEST(status.Int() == KErrNone); - TInt testNumberCheck; - User::LeaveIfError(testNumberProperty.Get(testNumberCheck)); - if (aTestNumber != testNumberCheck) - User::Leave(KErrNotFound); - - CleanupStack::PopAndDestroy(&testNumberProperty); - - INFO_PRINTF1(_L("Connecting to SocketServer ...")); - TInt ret=aSocketServer.Connect(KSocketMessageSlots); - TEST(ret == KErrNone); - CleanupClosePushL(aSocketServer); - - INFO_PRINTF1(_L("Deleting segmentation and reassembly stores...")); - - // delete segmentation and reassembly store files before the test - _LIT(KReassemblyStoreName,"C:\\Private\\101F7989\\sms\\smsreast.dat"); - _LIT(KSegmentationStoreName,"C:\\Private\\101F7989\\sms\\smssegst.dat"); - - iFs.Delete(KReassemblyStoreName); - iFs.Delete(KSegmentationStoreName); - } - - -TBool CSmsPrtStressTestStep::DoGetCmdLineArguments(TDes& aCmdarg, const TDesC& aToFind, TDes& aCmd) - { - if(( aCmdarg.FindF(aToFind)) != KErrNotFound ) - { - TLex myLex( aCmdarg ); - myLex.Inc(aCmdarg.FindF(_L("="))+1); - myLex.SkipSpace(); - myLex.Mark(); // remember where we are - myLex.SkipCharacters(); // move to end of character token - if (myLex.TokenLength() != 0) // if valid potential token - { - aCmd.Copy(myLex.MarkedToken()); // extract token - return ETrue; - } - } - return EFalse; - } - -void CSmsPrtStressTestStep::GetCmdLineArguments() - { - CCommandLineArguments *cmdLine = NULL; - TRAPD(err, cmdLine = CCommandLineArguments::NewL()); - if (err==KErrNone) - { - TInt numCmds = cmdLine->Count(); - TInt i=0; - while (++i < numCmds) - { - TBuf<256> arg = cmdLine->Arg(i); - - // Reading the Service Centre Number - _LIT( KSCno, "sc="); - _LIT( KSCNO, "SC="); - if( DoGetCmdLineArguments( arg, KSCno, iServiceCenterNumber ) - || DoGetCmdLineArguments( arg, KSCNO, iServiceCenterNumber )) - continue; - - // Reading the Recipient Telephone Number - _LIT( KTELno, "tel="); - _LIT( KTELNO, "TEL="); - if( DoGetCmdLineArguments( arg, KTELno, iTelephoneNumber ) - || DoGetCmdLineArguments( arg, KTELNO, iTelephoneNumber )) - continue; - } - } - delete cmdLine; - cmdLine = NULL; - } - -void CSmsPrtStressTestStep::ParseSettingsFromFileL() - { - CTestConfig* configFile = CTestConfig::NewLC(iFs,KGmsSmsConfigFileDir,KGmsSmsConfigFileName); - const CTestConfigSection* cfgFile = configFile->Section(KSetupTelNumbers); - if (cfgFile == NULL) - User::Leave(KErrNotFound); - - const CTestConfigItem* item = cfgFile->Item(KServiceCenter,0); - if (item == NULL) - User::Leave(KErrNotFound); - - iServiceCenterNumber.Copy(item->Value()); - - item = cfgFile->Item(KTelefoneNumber,0); - if (item == NULL) - User::Leave(KErrNotFound); - - iTelephoneNumber.Copy(item->Value()); - - // beginning of the destruction - CleanupStack::PopAndDestroy(configFile);//configFile - } - -void CSmsPrtStressTestStep::EndRegTest() -/** - * Closes objects used at test harness - */ - { - INFO_PRINTF1(_L("Closing Reg Test")); - User::After(2000000); //Wait a couple of seconds to avoid closing the SMS stack too early - CleanupStack::PopAndDestroy(); //socketServer - User::After(2000000); //Wait a couple of seconds to avoid closing the SMS stack too early - } - - -#if defined (__WINS__) -#define PDD_NAME _L("ECDRV") -#define PDD_NAME2 _L("ECDRV") -#define LDD_NAME _L("ECOMM") -#else -#define PDD_NAME _L("EUART1") -#define LDD_NAME _L("ECOMM") -#endif - - -TInt CSmsPrtStressTestStep::CommInit() - { - RFs fs; - TInt err=fs.Connect(); // make sure the FileServer is alive (only needed for WINS test code) - fs.Close(); - - INFO_PRINTF1(_L("CommInit: Loading PDD ") ); - INFO_PRINTF1(PDD_NAME); - INFO_PRINTF1(_L("")); - err=User::LoadPhysicalDevice(PDD_NAME); - if (err!=KErrNone && err!=KErrAlreadyExists) - return(err); - - INFO_PRINTF1(_L("CommInit: Loading LDD ") ); - INFO_PRINTF1(LDD_NAME); - INFO_PRINTF1(_L("")); - err=User::LoadLogicalDevice(LDD_NAME ); - if (err!=KErrNone && err!=KErrAlreadyExists) - return(err); - - INFO_PRINTF1(_L("CommInit: Starting C32 ") ); - - err = StartC32(); - return (err == KErrNone || err == KErrAlreadyExists) ? KErrNone : err; - } - - -void CSmsPrtStressTestStep::DoESockMemoryLeakTestL() - { - // - // Find the current number of leaked cells in ESock... - // - TInt ret, startLeakCounter; - - ret = RProperty::Get(KUidCommsProcess, KUidCommsModuleLeakCounter, startLeakCounter); - if (ret == KErrNotFound) - { - // No variable to monitor, ESock is probably not in debug mode. - return; - } - else - { - TESTL(ret == KErrNone); - } - - // - // Connect to Rootserver... - // - RRootServ rootserver; - - User::LeaveIfError(rootserver.Connect()); - CleanupClosePushL(rootserver); - - // - // Shutdown all the ESock CPMs gracefully... - // - TRSIter iter; - TCFModuleName modName; - TRSModuleInfo modInfo; - TRequestStatus statusArray[16]; - TInt statusCount = 0; - - while (rootserver.EnumerateModules(iter, modName) == KErrNone) - { - if (rootserver.GetModuleInfo(modName, modInfo) == KErrNone && - modInfo.iParams.iDll.MatchF(_L("*ESOCKSVR.DLL")) >= 0) - { - rootserver.UnloadCpm(statusArray[statusCount++], modInfo.iParams.iName, - EGraceful); - } - } - - while (statusCount > 0) - { - statusCount--; - User::WaitForRequest(statusArray[statusCount]); - TEST(statusArray[statusCount] == KErrNone); - } - - // - // Close Rootserver session... - // - CleanupStack::PopAndDestroy(1, &rootserver); - - // - // Get the latest number of leaked cells in ESock... - // - TInt finalLeakCounter; - - ret = RProperty::Get(KUidCommsProcess, KUidCommsModuleLeakCounter, finalLeakCounter); - TESTL(ret == KErrNone); - - if (finalLeakCounter > startLeakCounter) - { - INFO_PRINTF1(_L("A memory leak has been detected inside ESock - Check SMS Stack!")); - TEST(finalLeakCounter == startLeakCounter); - } - - // - // Restart C32... - // - _LIT(KDummyCMI, ""); - WarmBootC32(KDummyCMI); - } // CSmsPrtStressTestStep::DoESockMemoryLeakTestL - - diff -r 962e6306d9d2 -r 7ef16719d8cb smsprotocols/smsstack/smsprot/Test/TE_SMSPRTSTRESS/TE_smsprtstressbase.h --- a/smsprotocols/smsstack/smsprot/Test/TE_SMSPRTSTRESS/TE_smsprtstressbase.h Fri Feb 19 23:59:33 2010 +0200 +++ b/smsprotocols/smsstack/smsprot/Test/TE_SMSPRTSTRESS/TE_smsprtstressbase.h Fri Mar 12 15:49:38 2010 +0200 @@ -13,69 +13,31 @@ // Description: // -#ifndef _TE_SMSPRTBASE_H_ -#define _TE_SMSPRTBASE_H_ - -#include -#include +#ifndef TE_SMSPRTBASE_H +#define TE_SMSPRTBASE_H -#include -#include -#include -#include "smsuact.h" -#include "gsmubuf.h" +//#include + +#include "smsstacktestutilities.h" +#include "smsstackbaseteststeps.h" #include "Gsmumsg.h" #include "gsmuset.h" -#include "smsuaddr.H" +#include "gsmubuf.h" #include "smsustrm.h" -#include -#include -#include -#include #include "smspdudb.h" -#include "attributes.h" -#include "smspproc.h" -#include "smsstacktestutilities.h" -#include // CCommandLineArguments -#include -using namespace conn; - -_LIT(KTSmsPrtStressConfigFileName, "tsmsprtStress_config.txt"); -_LIT(KSmsMsgStressTestReport, "tsmsprtStress_testreport.txt"); -_LIT8(KSmsCompInfo, "SMSPROT.PRT"); -_LIT(KGmsSmsConfigFileName,"setupgsmsms.txt"); - -// Here are the section names -_LIT8(KSetupTelNumbers, "Defaults"); - -// Here are the item names -_LIT8(KServiceCenter, "ServiceCenter"); -_LIT8(KTelefoneNumber, "TelephoneNumber"); +//using namespace conn; const TInt KActiveReceiverPriority = CActive::EPriorityStandard; -const TUint KSocketMessageSlots = 16; -class CSmsPrtStressTestStep : public CTestStep +class CSmsPrtStressTestStep : public CSmsBaseTestStep { public: - void PrepareRegTestLC(RSocketServ& aSocketServer, TInt aTestNumber) ; - void EndRegTest() ; - void InitGlobalsL(); - void ParseSettingsFromFileL(); - TBool DoGetCmdLineArguments(TDes& aCmdarg, const TDesC& aToFind, TDes& aCmd); - void GetCmdLineArguments(); - TInt CommInit(); TVerdict doTestStepPreambleL(); TVerdict doTestStepPostambleL(); - void DoESockMemoryLeakTestL(); + public: - RFs iFs; - CSmsStackTestUtils* iSmsStackTestUtils; - TSmsServiceCenterAddress iTelephoneNumber; - TSmsServiceCenterAddress iServiceCenterNumber; - CActiveScheduler* iScheduler; - CSBEClient* iSecureBackupEngine; +// CSBEClient* iSecureBackupEngine; }; #endif diff -r 962e6306d9d2 -r 7ef16719d8cb smsprotocols/smsstack/smsprot/Test/TE_SMSPRTSTRESS/TE_smsprtstressserver.cpp --- a/smsprotocols/smsstack/smsprot/Test/TE_SMSPRTSTRESS/TE_smsprtstressserver.cpp Fri Feb 19 23:59:33 2010 +0200 +++ b/smsprotocols/smsstack/smsprot/Test/TE_SMSPRTSTRESS/TE_smsprtstressserver.cpp Fri Mar 12 15:49:38 2010 +0200 @@ -18,12 +18,11 @@ */ #include "TE_smsprtstressserver.h" + #include "TE_smsprtstress.h" - _LIT(KServerName,"TE_SMSPRTSTRESS"); - CSmsPrtStressTestServer* CSmsPrtStressTestServer::NewL() /** * @return - Instance of the test server @@ -33,6 +32,8 @@ { CSmsPrtStressTestServer * server = new (ELeave) CSmsPrtStressTestServer(); CleanupStack::PushL(server); + // CSmsStackTestServer intermediate base class call +// server->InitializeTsyAndPhonesL(); // CServer base class call server->StartL(KServerName); CleanupStack::Pop(server); @@ -89,11 +90,7 @@ // the new could return NULL, but that is not a problem as it implies // the test step is missing and this will be marked in the log file. // - if (aStepName == _L("TestInit")) - { - testStep = new CTestInit ; - } - else if (aStepName == _L("TestRxAndRead")) + if (aStepName == _L("TestRxAndRead")) { testStep = new CTestRxAndRead ; } diff -r 962e6306d9d2 -r 7ef16719d8cb smsprotocols/smsstack/smsprot/Test/TE_SMSPRTSTRESS/TE_smsprtstressserver.h --- a/smsprotocols/smsstack/smsprot/Test/TE_SMSPRTSTRESS/TE_smsprtstressserver.h Fri Feb 19 23:59:33 2010 +0200 +++ b/smsprotocols/smsstack/smsprot/Test/TE_SMSPRTSTRESS/TE_smsprtstressserver.h Fri Mar 12 15:49:38 2010 +0200 @@ -13,16 +13,16 @@ // Description: // -#if (!defined __TE_SMSPRTSTRESSSERVER_H__) -#define __TE_SMSPRTSTRESSSERVER_H__ -#include "TE_smsprtstressbase.h" -#include +#ifndef TE_SMSPRTSTRESSSERVER_H +#define TE_SMSPRTSTRESSSERVER_H -class CSmsPrtStressTestServer : public CTestServer +#include "smsstackbasetestserver.h" + +class CSmsPrtStressTestServer : public CSmsStackTestServer { public: static CSmsPrtStressTestServer* NewL(); virtual CTestStep* CreateTestStep(const TDesC& aStepName); }; -#endif +#endif // TE_SMSPRTSTRESSSERVER_H diff -r 962e6306d9d2 -r 7ef16719d8cb smsprotocols/smsstack/smsprot/Test/TE_SMSPRTSTRESS/TE_smsprtstressutils.h --- a/smsprotocols/smsstack/smsprot/Test/TE_SMSPRTSTRESS/TE_smsprtstressutils.h Fri Feb 19 23:59:33 2010 +0200 +++ b/smsprotocols/smsstack/smsprot/Test/TE_SMSPRTSTRESS/TE_smsprtstressutils.h Fri Mar 12 15:49:38 2010 +0200 @@ -19,8 +19,8 @@ @file */ -#ifndef __TE_SMSPRTSTRESSUTILS_H__ -#define __TE_SMSPRTSTRESSUTILS_H__ +#ifndef TE_SMSPRTSTRESSUTILS_H +#define TE_SMSPRTSTRESSUTILS_H #include "TE_smsprtstressbase.h" @@ -35,6 +35,7 @@ { public: CTestSmsActiveBase(TInt aHowManyRequests); + protected: RSocket iSocket; TPckgBuf iSbuf; @@ -57,13 +58,12 @@ public: CTestSmsActiveStop(RPointerArray& aTestSmsActives,TInt& aRet); void StopTests(TInt aStatus); + private: RPointerArray& iTestSmsActives; TInt& iRet; }; - - /* ------------------------------------------------------------------------------- @@ -82,10 +82,12 @@ void CreateSmsWithStatusReportReqL(const TDesC& aDes, TSmsDataCodingScheme::TSmsAlphabet aAlphabet, RFs& aFs) ; ~CTestSmsSendActive(); void StartL(); + protected: void DoCancel(); void RunL(); TInt RunError(TInt aError); + private: void SendMessageL(); CSmsMessage* CreateSmsMessageL(const TDesC& aDes, TSmsDataCodingScheme::TSmsAlphabet aAlphabet, RFs& aFs, CSmsPDU::TSmsPDUType aType = CSmsPDU::ESmsSubmit); @@ -96,7 +98,6 @@ TSmsServiceCenterAddress iTelephoneNumber; TSmsServiceCenterAddress iServiceCenterNumber; CTestStep* iTestStep; - }; /* @@ -117,14 +118,17 @@ CTestSmsParametersActive(CTestSmsActiveStop& aTestSmsActiveStop,TInt aHowManyRequests, CSmsStackTestUtils* aSmsStackTestUtils, CTestStep* aTestStep); ~CTestSmsParametersActive(); void StartL(); + protected: void DoCancel(); void RunL(); TInt RunError(TInt aError); + private: void StoreParametersL(); void RetrieveParameters(); void GetParametersL(); + private: enum TSmsDeleteAndEnumState { @@ -132,6 +136,7 @@ ESmsNextRetrieveParameters, ESmsNextGetParameters }; + private: TSmsDeleteAndEnumState iState; CMobilePhoneSmspList* iStoreSmspList; @@ -157,10 +162,12 @@ CTestSmsStorageActive(CTestSmsActiveStop& aTestSmsActiveStop,TInt aHowManyRequests, RFs& aFs, CTestStep* aTestStep); ~CTestSmsStorageActive(); void StartL(); + protected: void DoCancel(); void RunL(); TInt RunError(TInt aError); + private: void WriteMessageL(); void DeleteMessageL(); @@ -168,6 +175,7 @@ void GetMessagesL(); CSmsMessage* CreateSmsMessageL(const TDesC& aDes, TSmsDataCodingScheme::TSmsAlphabet aAlphabet, RFs& aFs, CSmsPDU::TSmsPDUType aType = CSmsPDU::ESmsSubmit); void TestSmsListsL(RPointerArray& aLeft,RPointerArray& aRight) ; + private: enum TSmsDeleteAndEnumState { @@ -176,6 +184,7 @@ ESmsNextGetMessages, ESmsNextDeleteMessage }; + private: CTestSmsActiveStop& iTestSmsActiveStop; RPointerArray iEnumeratedMessages; @@ -205,21 +214,25 @@ CTestSmsReceiveActive(CTestSmsActiveStop& aTestSmsActiveStop,TInt aHowManyRequests, RFs& aFs, CTestStep* aTestStep); ~CTestSmsReceiveActive(); void StartL(); + protected: void DoCancel(); void RunL(); TInt RunError(TInt aError); + private: void ReceiveMessage(); void GetMessagesL(); void PrintMessageL(const CSmsMessage* aSms); TText8 IsCharDisplayable( const TText8 aChar ); + private: enum TSmsReceiveState { ESmsNextReceiveMessage, ESmsNextGetMessage, }; + private: TSmsReceiveState iState; CTestSmsActiveStop& iTestSmsActiveStop; @@ -228,4 +241,4 @@ CTestStep* iTestStep ; }; -#endif //__TE_SMSPRTSTRESSUTILS +#endif // TE_SMSPRTSTRESSUTILS_H diff -r 962e6306d9d2 -r 7ef16719d8cb smsprotocols/smsstack/smsprot/Test/TE_SMSPRTSTRESS/te_smsprtstress.script --- a/smsprotocols/smsstack/smsprot/Test/TE_SMSPRTSTRESS/te_smsprtstress.script Fri Feb 19 23:59:33 2010 +0200 +++ b/smsprotocols/smsstack/smsprot/Test/TE_SMSPRTSTRESS/te_smsprtstress.script Fri Mar 12 15:49:38 2010 +0200 @@ -16,18 +16,6 @@ RUN_SCRIPT z:\TestData\Scripts\TE_smsprtstress_setup.script LOAD_SUITE te_smsprtstress -//!@file -START_TESTCASE SMS-SMSStack-NA-4000 -//!@SYMTestCaseID SMS-SMSStack-NA-4000 -//!@SYMREQ REQ0000 -//!@SYMTestCaseDesc Initialises the test -//!@SYMTestPriority critical -//!@SYMTestActions - Parses a config file to retreive phone numbers and initialises comms -//!@SYMTestExpectedResults Pass - If anthing fails the step will leave with error code -//!@SYMTestType CT -RUN_TEST_STEP 100 te_smsprtstress TestInit -END_TESTCASE SMS-SMSStack-NA-4000 - START_TESTCASE SMS-SMSStack-NA-4001 //!@SYMTestCaseID SMS-SMSStack-NA-4001 //!@SYMREQ REQ0000 @@ -36,7 +24,7 @@ //!@SYMTestActions Creates and then uses a CTestReceiveEnumerateMessages to Receive ansd read sms messages //!@SYMTestExpectedResults Pass - If anthing fails the step will leave with error code //!@SYMTestType CT -RUN_TEST_STEP 100 te_smsprtstress TestRxAndRead +RUN_TEST_STEP 100 te_smsprtstress TestRxAndRead z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber1 END_TESTCASE SMS-SMSStack-NA-4001 START_TESTCASE SMS-SMSStack-NA-4002 @@ -47,7 +35,7 @@ //!@SYMTestActions Creates various active objects thewn starts them at same time //!@SYMTestExpectedResults Pass - If anthing fails the step will leave with error code //!@SYMTestType CT -RUN_TEST_STEP 900 te_smsprtstress TestMultipleSimultaneousRequests +RUN_TEST_STEP 900 te_smsprtstress TestMultipleSimultaneousRequests z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber2 END_TESTCASE SMS-SMSStack-NA-4002 START_TESTCASE SMS-SMSStack-NA-4003 @@ -58,7 +46,7 @@ //!@SYMTestActions Test Backup and restore under all conditions //!@SYMTestExpectedResults Pass - If anthing fails the step will leave with error code //!@SYMTestType CT -RUN_TEST_STEP 900 te_smsprtstress TestSmsPrtBackup +RUN_TEST_STEP 900 te_smsprtstress TestSmsPrtBackup z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber3 END_TESTCASE SMS-SMSStack-NA-4003 START_TESTCASE SMS-SMSStack-NA-4004 @@ -69,5 +57,5 @@ //!@SYMTestActions Test Backup and restore when phone is powered off //!@SYMTestExpectedResults Pass - If anthing fails the step will leave with error code //!@SYMTestType CT -RUN_TEST_STEP 900 te_smsprtstress TestSmsPrtBackupWhenPhoneIsOff +RUN_TEST_STEP 900 te_smsprtstress TestSmsPrtBackupWhenPhoneIsOff z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber3 END_TESTCASE SMS-SMSStack-NA-4004 diff -r 962e6306d9d2 -r 7ef16719d8cb smsprotocols/smsstack/smsprot/Test/TE_SMSSTOR/TE_smsstor.cpp --- a/smsprotocols/smsstack/smsprot/Test/TE_SMSSTOR/TE_smsstor.cpp Fri Feb 19 23:59:33 2010 +0200 +++ b/smsprotocols/smsstack/smsprot/Test/TE_SMSSTOR/TE_smsstor.cpp Fri Mar 12 15:49:38 2010 +0200 @@ -13,21 +13,14 @@ // Description: // +#include "TE_smsstor.h" + #include -#include "TE_smsstor.h" +#include + #include "gsmuieoperations.h" -#include "smspclass0stor.h" #include "gsmunonieoperations.h" -#if defined (__WINS__) -#define PDD_NAME _L("ECDRV") -#define LDD_NAME _L("ECOMM") -#else -#define PDD_NAME _L("EUART1") -#define LDD_NAME _L("ECOMM") -#endif - - TVerdict CSmsSegmentionStorePurge::doTestStepL() { _LIT(KSegmentationStoreFileName,"C:\\Private\\101FE442\\smssegst.dat"); @@ -303,6 +296,7 @@ // initialisation of the reassembly store iReassemblyStore=CSmsReassemblyStore::NewL(iFs); + // TODO: check if the correct file is opened (KReassemblyStoreName or KReassemblyStoreFileName) iReassemblyStore->OpenL(KReassemblyStoreName,KReassemblyStoreUid); iReassemblyStore->PurgeL(iSmsSettings.ReassemblyLifetime(), ETrue); @@ -503,12 +497,12 @@ /* enum TSmsPDUType { - ESmsDeliver = 0, //< Deliver, sent from SC to MS - ESmsDeliverReport = 1, //< Deliver report, sent from MS to SC - ESmsSubmit = 2, //< Submit, sent from MS to SC - ESmsSubmitReport = 3, //< Submit report, sent from SC to MS - ESmsStatusReport = 4, //< Status report, sent from SC to MS - ESmsCommand = 5 //< Command, sent from MS to SC + ESmsDeliver = 0, ///< Deliver, sent from SC to MS + ESmsDeliverReport = 1, ///< Deliver report, sent from MS to SC + ESmsSubmit = 2, ///< Submit, sent from MS to SC + ESmsSubmitReport = 3, ///< Submit report, sent from SC to MS + ESmsStatusReport = 4, ///< Status report, sent from SC to MS + ESmsCommand = 5 ///< Command, sent from MS to SC };*/ /* @@ -564,7 +558,6 @@ DoEncodePDUsL( 20, TSmsDataCodingScheme::ESmsAlphabet8Bit,CSmsPDU::ESmsCommand ); DoEncodePDUsL( 20, TSmsDataCodingScheme::ESmsAlphabetUCS2,CSmsPDU::ESmsCommand ); - /* CleanupStack::PopAndDestroy(); //socket ss.Close(); @@ -2913,7 +2906,7 @@ return KErrNone; }; -void CTestMSmsComm2::DeletePDUs(const CArrayFix& /*aSlotArray*/,MSmsMessageObserver* /*aObserver*/) +void CTestMSmsComm2::DeletePDUs(const CArrayFix& /*aSlotArray*/, MSmsMessageObserver* /*aObserver*/) { } diff -r 962e6306d9d2 -r 7ef16719d8cb smsprotocols/smsstack/smsprot/Test/TE_SMSSTOR/TE_smsstor.h --- a/smsprotocols/smsstack/smsprot/Test/TE_SMSSTOR/TE_smsstor.h Fri Feb 19 23:59:33 2010 +0200 +++ b/smsprotocols/smsstack/smsprot/Test/TE_SMSSTOR/TE_smsstor.h Fri Mar 12 15:49:38 2010 +0200 @@ -134,7 +134,7 @@ public: //Implementation of MSmsComm TInt ProcessMessageL(const CSmsMessage& aSmsMessage,const TSmsAddr* aOriginalSmsAddr,const CSmsMessage* aOriginalSmsMessage,TDes& aDes); - void DeletePDUs(const CArrayFix& aSlotArray,MSmsMessageObserver* aObserver); + void DeletePDUs(const CArrayFix& aSlotArray, MSmsMessageObserver* aObserver); void MessageSendCompleted(TInt aStatus); void ModemNotificationCompleted(TInt aStatus,RPhone::TModemDetection aState); void PhoneEnumerationCompleted(TInt aStatus); @@ -262,13 +262,13 @@ return EFalse; }; - virtual const RMobilePhone::TMobilePhoneNetworkInfoV1& NetworkInfo()const - { - User::Invariant(); - return iDummyNetworkInfoV1; - }; - - virtual TBool NetworkInfoAvailable()const + virtual const RMobilePhone::TMobilePhoneNetworkInfoV1& NetworkInfo()const + { + User::Invariant(); + return iDummyNetworkInfoV1; + }; + + virtual TBool NetworkInfoAvailable()const { User::Invariant(); return EFalse; @@ -280,10 +280,10 @@ return EFalse; }; - virtual void DiskSpaceMonitorStateChange(TSmsDiskSpaceMonitorStatus /*aStatus*/) - { - User::Invariant(); - }; + virtual void DiskSpaceMonitorStateChange(TSmsDiskSpaceMonitorStatus /*aStatus*/) + { + User::Invariant(); + }; private: RMobilePhone::TMobilePhoneNetworkInfoV1 iDummyNetworkInfoV1; diff -r 962e6306d9d2 -r 7ef16719d8cb smsprotocols/smsstack/smsprot/Test/TE_SMSSTOR/TE_smsstorbase.cpp --- a/smsprotocols/smsstack/smsprot/Test/TE_SMSSTOR/TE_smsstorbase.cpp Fri Feb 19 23:59:33 2010 +0200 +++ b/smsprotocols/smsstack/smsprot/Test/TE_SMSSTOR/TE_smsstorbase.cpp Fri Mar 12 15:49:38 2010 +0200 @@ -14,19 +14,9 @@ // #include "TE_smsstorbase.h" + #include "TE_smsstor.h" - -#if defined (__WINS__) -#define PDD_NAME _L("ECDRV") -#define PDD_NAME2 _L("ECDRV") -#define LDD_NAME _L("ECOMM") -#else -#define PDD_NAME _L("EUART1") -#define LDD_NAME _L("ECOMM") -#endif - - TVerdict CSmsStorTestStep::doTestStepPreambleL() { __UHEAP_MARK; diff -r 962e6306d9d2 -r 7ef16719d8cb smsprotocols/smsstack/smsprot/Test/TE_SMSSTOR/TE_smsstorbase.h --- a/smsprotocols/smsstack/smsprot/Test/TE_SMSSTOR/TE_smsstorbase.h Fri Feb 19 23:59:33 2010 +0200 +++ b/smsprotocols/smsstack/smsprot/Test/TE_SMSSTOR/TE_smsstorbase.h Fri Mar 12 15:49:38 2010 +0200 @@ -16,24 +16,20 @@ #ifndef _TE_SMSSTORBASE_H_ #define _TE_SMSSTORBASE_H_ +#include +#include +#include +#include + #include "gsmubuf.h" #include "Gsmumsg.h" #include "gsmuset.h" #include "smsuset.h" #include "testconfigfileparser.h" - -#include #include "smsuaddr.H" #include "smsustrm.h" - #include "smsprot.h" -#include - -#include -#include - - const TInt KMaxNumberOfCharsFor7BitSms = 160; class CSmsStorTestStep : public CTestStep diff -r 962e6306d9d2 -r 7ef16719d8cb smsprotocols/smsstack/smsprot/Test/TE_SMSSTOR/te_smsstor.script --- a/smsprotocols/smsstack/smsprot/Test/TE_SMSSTOR/te_smsstor.script Fri Feb 19 23:59:33 2010 +0200 +++ b/smsprotocols/smsstack/smsprot/Test/TE_SMSSTOR/te_smsstor.script Fri Mar 12 15:49:38 2010 +0200 @@ -90,7 +90,7 @@ START_TESTCASE SMS-SMSSTACK-SMSSTOR-1006 //!@SYMTestCaseID SMS-SMSSTACK-SMSSTOR-1006 //!@SYMREQ REQ0000 -//!@SYMTestCaseDesc Test Internalize Externalize SMS +//!@SYMTestCaseDesc Test Internaliz eExternalize SMS //!@SYMTestPriority critical //!@SYMTestActions Test Internalize Externalize SMS //!@SYMTestExpectedResults Pass diff -r 962e6306d9d2 -r 7ef16719d8cb smsprotocols/smsstack/smsprot/Test/TE_Smsprt/SMSOutOfDiskSpace.ini --- a/smsprotocols/smsstack/smsprot/Test/TE_Smsprt/SMSOutOfDiskSpace.ini Fri Feb 19 23:59:33 2010 +0200 +++ b/smsprotocols/smsstack/smsprot/Test/TE_Smsprt/SMSOutOfDiskSpace.ini Fri Mar 12 15:49:38 2010 +0200 @@ -11,9 +11,9 @@ //Disk Space Monitor [DiskMonitorLimits] //4Mb -highDrop = 4 +highDrop = 3 //10Mb -lowDrop = 10 +lowDrop = 8 [DiskSpaceBelowLowLimit] freeDrop = 11 diff -r 962e6306d9d2 -r 7ef16719d8cb smsprotocols/smsstack/smsprot/Test/TE_Smsprt/SMSStackOutOfDiskSpace.txt --- a/smsprotocols/smsstack/smsprot/Test/TE_Smsprt/SMSStackOutOfDiskSpace.txt Fri Feb 19 23:59:33 2010 +0200 +++ b/smsprotocols/smsstack/smsprot/Test/TE_Smsprt/SMSStackOutOfDiskSpace.txt Fri Mar 12 15:49:38 2010 +0200 @@ -1,5 +1,7 @@ # SIM TSY config file for simulating behaviour of TSY for "SMS Out Of Disk Space" Condition # +[test0] + [test1] # class 0, 8 bit SmsRx= 240C915348801455820014108071417314801E74657374206D6573736167652C2038626974732C206C656E677468203330, 358405202000 @@ -9,11 +11,11 @@ //Wait 3 seconds for smsstack to process the received PDUs - This give it time before the second message is sent. SmsTxPause=5 SmsStartRxDelay= 4207, 1, 1 -SmsTx= 150000810004A71E74657374206D6573736167652C2038626974732C206C656E677468203330, +358405202000, 1, 010010807141731480, 0 +SmsTx=15000C914477746085520004A71E74657374206D6573736167652C2038626974732C206C656E677468203330, +447785016005, 1, 010010807141731480, 0 SmsRx= 440C915348801455824110103060019153009F050003000301662028B10AA297E774D0B43905B5CBF379F85C7681662028B10AA297E774D0B43905B5CBF379F85C7681662028B10AA297E774D0B43905B5CBF379F85C7681662028B10AA297E774D0B43905B5CBF379F85C7681662028B10AA297E774D0B43905B5CBF379F85C7681662028B10AA297E774D0B43905B5CBF379F85C7681662028B10AA29701, 358405202000 SmsStartRxDelay= 4207, 2, 2 -SmsTx= 150000810004A71E74657374206D6573736167652C2038626974732C206C656E677468203330, +358405202000, 1, 010010807141731480, 0 +SmsTx=15000C914477746085520004A71E74657374206D6573736167652C2038626974732C206C656E677468203330, +447785016005, 1, 010010807141731480, 0 SmsRx= 440C915348801455824110103060019193009F050003000302E674D0B43905B5CBF379F85C7681662028B10AA297E774D0B43905B5CBF379F85C7681662028B10AA297E774D0B43905B5CBF379F85C7681662028B10AA297E774D0B43905B5CBF379F85C7681662028B10AA297E774D0B43905B5CBF379F85C7681662028B10AA297E774D0B43905B5CBF379F85C7681662028B10AA297E774D0B43905B501, 358405202000 SmsRx= 440C9153488014558241101030600191340077050003000303CAF379F85C7681662028B10AA297E774D0B43905B5CBF379F85C7681662028B10AA297E774D0B43905B5CBF379F85C7681662028B10AA297E774D0B43905B5CBF379F85C7681662028B10AA297E774D0B43905B5CBF379F85C7681A8E832A8E826BB00, 358405202000 @@ -21,21 +23,21 @@ [test2] #Multiple PDU message SmsStartRxDelay= 4207, 1, 3 -SmsTx= 150000810004A71E74657374206D6573736167652C2038626974732C206C656E677468203330, +358405202000, 1, 010010807141731480, 0 +SmsTx=15000C914477746085520004A71E74657374206D6573736167652C2038626974732C206C656E677468203330, +447785016005, 1, 010010807141731480, 0 SmsRx= 440C9153488014558241F410807141731480190500030B03014920616D207468652046495253542050445520, 358405202000 SmsRx= 440C9153488014558241F4108071417314801A0500030B03024920616D20746865205345434F4E442050445520, 358405202000 SmsRx= 440C9153488014558241F410807141731480180500030B03034920616D2074686520544849524420504455, 358405202000 [test4] SmsStartRxDelay= 4207, 1, 1 -SmsTx= 150000810004A71E74657374206D6573736167652C2038626974732C206C656E677468203330, +358405202000, 1, 010010807141731480, 0 +SmsTx=15000C914477746085520004A71E74657374206D6573736167652C2038626974732C206C656E677468203330, +447785016005, 1, 010010807141731480, 0 SmsRx= 440C9153488014558200F410807141731480180500030B03014920616D2074686520464952535420504455, 358405202000 [test5] SmsRxPeriod=1 SmsStartRxDelay= 4207, 1, 10 -SmsTx= 150000810004A71E74657374206D6573736167652C2038626974732C206C656E677468203330, +358405202000, 1, 010010807141731480, 0 +SmsTx=15000C914477746085520004A71E74657374206D6573736167652C2038626974732C206C656E677468203330, +447785016005, 1, 010010807141731480, 0 SmsRx= 440C915348801455824114108071417314801E050003000301546869732069732074657374206D657373616765204F4E45, 358405202000 SmsRx= 440C915348801455824114108071417314801E050003010301546869732069732074657374206D6573736167652054574F, 358405202000 SmsRx= 440C9153488014558241141080714173148020050003020301546869732069732074657374206D657373616765205448524540, 358405202000 @@ -48,15 +50,15 @@ SmsRx= 440C915348801455824114108071417314801E050003090301546869732069732074657374206D6573736167652054454E, 358405202000 SmsStartRxDelay= 4207, 2, 1 -SmsTx= 150000810004A71E74657374206D6573736167652C2038626974732C206C656E677468203330, +358405202000, 1, 010010807141731480, 0 +SmsTx=15000C914477746085520004A71E74657374206D6573736167652C2038626974732C206C656E677468203330, +447785016005, 1, 010010807141731480, 0 SmsRx= 240C915348801455820014108071417314801E74657374206D6573736167652C2038626974732C206C656E677468203330, 358405202000 SmsStartRxDelay= 4207, 3, 1 -SmsTx= 150000810004A71E74657374206D6573736167652C2038626974732C206C656E677468203330, +358405202000, 1, 010010807141731480, 0 +SmsTx=15000C914477746085520004A71E74657374206D6573736167652C2038626974732C206C656E677468203330, +447785016005, 1, 010010807141731480, 0 SmsRx= 440C91534880145582411410807141731480210500030A0301546869732069732074657374206D65737361676520454C4556454E, 358405202000 SmsStartRxDelay= 4207, 4, 1 -SmsTx= 150000810004A71E74657374206D6573736167652C2038626974732C206C656E677468203330, +358405202000, 1, 010010807141731480, 0 +SmsTx=15000C914477746085520004A71E74657374206D6573736167652C2038626974732C206C656E677468203330, +447785016005, 1, 010010807141731480, 0 SmsRx= 440C91534880145582411410807141731480210500030B0301546869732069732074657374206D65737361676520454C4556454E, 358405202000 @@ -69,78 +71,79 @@ SmsRx= 240C915348801455824015108071417314801254797065203020536D73206D657373616765, 358405202000 [test8] SmsStartRxDelay= 4207, 1, 1 -SmsTx= 150000810004A71E74657374206D6573736167652C2038626974732C206C656E677468203330, +358405202000, 1, 010010807141731480, 0 +SmsTx=15000C914477746085520004A71E74657374206D6573736167652C2038626974732C206C656E677468203330, +447785016005, 1, 010010807141731480, 0 + SmsRx= 440C915348801455820014108071417314801E050003000301546869732069732074657374206D657373616765204F4E45, 358405202000 SmsStartRxDelay= 4207, 2, 1 -SmsTx= 150000810004A71E74657374206D6573736167652C2038626974732C206C656E677468203330, +358405202000, 1, 010010807141731480, 0 +SmsTx= 15000C914477746085520004A71E74657374206D6573736167652C2038626974732C206C656E677468203330, +447785016005, 1, 010010807141731480, 0 SmsRx= 240C915348801455820014108071417314801E74657374206D6573736167652C2038626974732C206C656E677468203330, 358405202000 [test9] SmsStartRxDelay= 4207, 1, 2 -SmsTx= 150000810004A71E74657374206D6573736167652C2038626974732C206C656E677468203330, +358405202000, 1, 010010807141731480, 0 +SmsTx=15000C914477746085520004A71E74657374206D6573736167652C2038626974732C206C656E677468203330, +447785016005, 1, 010010807141731480, 0 SmsRx= 440C9153488014558200F410807141731480190500030B03014920616D207468652046495253542050445520, 358405202000 SmsRx= 440C9153488014558200F4108071417314801A0500030B03024920616D20746865205345434F4E442050445520, 358405202000 [test13] SmsStartRxDelay= 4207, 1, 1 -SmsTx= 150000810004A71E74657374206D6573736167652C2038626974732C206C656E677468203330, +358405202000, 1, 010010807141731480, 0 +SmsTx=15000C914477746085520004A71E74657374206D6573736167652C2038626974732C206C656E677468203330, +447785016005, 1, 010010807141731480, 0 SmsRx= 440C9153488014558200F410807141731480180500030B03034920616D2074686520544849524420504455, 358405202000 [test10] SmsStartRxDelay= 4207, 1, 1 -SmsTx= 150000810004A71E74657374206D6573736167652C2038626974732C206C656E677468203330, +358405202000, 1, 010010807141731480, 0 +SmsTx=15000C914477746085520004A71E74657374206D6573736167652C2038626974732C206C656E677468203330, +447785016005, 1, 010010807141731480, 0 SmsRx= 440C9153488014558200F410807141731480190500030B03014920616D207468652046495253542050445520, 358405202000 SmsStartRxDelay= 4207, 2, 1 -SmsTx= 150000810004A71E74657374206D6573736167652C2038626974732C206C656E677468203330, +358405202000, 1, 010010807141731480, 0 +SmsTx=15000C914477746085520004A71E74657374206D6573736167652C2038626974732C206C656E677468203330, +447785016005, 1, 010010807141731480, 0 SmsRx= 440C9153488014558200F4108071417314801A0500030B03024920616D20746865205345434F4E442050445520, 358405202000 SmsStartRxDelay= 4207, 3, 1 -SmsTx= 150000810004A71E74657374206D6573736167652C2038626974732C206C656E677468203330, +358405202000, 1, 010010807141731480, 0 +SmsTx=15000C914477746085520004A71E74657374206D6573736167652C2038626974732C206C656E677468203330, +447785016005, 1, 010010807141731480, 0 SmsRx= 440C9153488014558200F410807141731480180500030B03034920616D2074686520544849524420504455, 358405202000 [test11] SmsStartRxDelay= 4207, 1, 1 -SmsTx= 150000810004A71E74657374206D6573736167652C2038626974732C206C656E677468203330, +358405202000, 1, 010010807141731480, 0 +SmsTx=15000C914477746085520004A71E74657374206D6573736167652C2038626974732C206C656E677468203330, +447785016005, 1, 010010807141731480, 0 SmsRx= 440C9153488014558200F410807141731480190500030B03014920616D207468652046495253542050445520, 358405202000 SmsStartRxDelay= 4207, 2, 1 -SmsTx= 150000810004A71E74657374206D6573736167652C2038626974732C206C656E677468203330, +358405202000, 1, 010010807141731480, 0 +SmsTx=15000C914477746085520004A71E74657374206D6573736167652C2038626974732C206C656E677468203330, +447785016005, 1, 010010807141731480, 0 SmsRx= 440C9153488014558200F4108071417314801A0500030B03024920616D20746865205345434F4E442050445520, 358405202000 [test12] SmsStartRxDelay= 4207, 1, 2 -SmsTx= 150000810004A71E74657374206D6573736167652C2038626974732C206C656E677468203330, +358405202000, 1, 010010807141731480, 0 +SmsTx=15000C914477746085520004A71E74657374206D6573736167652C2038626974732C206C656E677468203330, +447785016005, 1, 010010807141731480, 0 SmsRx= 440C9153488014558200F410807141731480190500030B03014920616D207468652046495253542050445520, 358405202000 SmsRx= 440C9153488014558200F410807141731480190500030B03024920616D20746865205345434F4E4420504455, 358405202000 [test14] SmsStartRxDelay= 4207, 1, 1 -SmsTx= 150000810004A71E74657374206D6573736167652C2038626974732C206C656E677468203330, +358405202000, 1, 010010807141731480, 0 -SmsTx= 150000810004A71E74657374206D6573736167652C2038626974732C206C656E677468203330, +358405202000, 1, 010010807141731480, 0 +SmsTx=15000C914477746085520004A71E74657374206D6573736167652C2038626974732C206C656E677468203330, +447785016005, 1, 010010807141731480, 0 +SmsTx=15000C914477746085520004A71E74657374206D6573736167652C2038626974732C206C656E677468203330, +447785016005, 1, 010010807141731480, 0 SmsRx= 440C9153488014558200F410807141731480180500030B03034920616D2074686520544849524420504455, 358405202000 [test15] SmsStartRxDelay= 4207, 1, 1 -SmsTx= 150000810004A71E74657374206D6573736167652C2038626974732C206C656E677468203330, +358405202000, 1, 010010807141731480, 0 +SmsTx=15000C914477746085520004A71E74657374206D6573736167652C2038626974732C206C656E677468203330, +447785016005, 1, 010010807141731480, 0 SmsRx= 440C9153488014558200F410807141731480190500030B03014920616D207468652046495253542050445520, 358405202000 SmsStartRxDelay= 4207, 2, 1 -SmsTx= 150000810004A71E74657374206D6573736167652C2038626974732C206C656E677468203330, +358405202000, 2, 010010807141731480, 0 +SmsTx=15000C914477746085520004A71E74657374206D6573736167652C2038626974732C206C656E677468203330, +358405202000, 2, 010010807141731480, 0 SmsRx= 440C9153488014558200F410807141731480190500030B03024920616D20746865205345434F4E4420504455, 358405202000 SmsStartRxDelay= 4207, 3, 3 -SmsTx= 150000810004A71E74657374206D6573736167652C2038626974732C206C656E677468203330, +358405202000, 1, 010010807141731480, 0 +SmsTx=15000C914477746085520004A71E74657374206D6573736167652C2038626974732C206C656E677468203330, +447785016005, 1, 010010807141731480, 0 SmsRx= 440C915348801455820014108071417314801E050003000301546869732069732074657374206D657373616765204F4E45, 358405202000 SmsRx= 440C915348801455820014108071417314801E050003010301546869732069732074657374206D6573736167652054574F, 358405202000 SmsRx= 440C9153488014558200141080714173148020050003020301546869732069732074657374206D657373616765205448524540, 358405202000 SmsStartRxDelay= 4207, 4, 1 -SmsTx= 150000810004A71E74657374206D6573736167652C2038626974732C206C656E677468203330, +358405202000, 1, 010010807141731480, 0 +SmsTx=15000C914477746085520004A71E74657374206D6573736167652C2038626974732C206C656E677468203330, +447785016005, 1, 010010807141731480, 0 SmsRx= 440C9153488014558200141080714173148020050003120301546869732069732074657374206D65737361676520534556454E, 358405202000 [test16] SmsStartRxDelay= 4207, 1, 1 -SmsTx= 150000810004A71E74657374206D6573736167652C2038626974732C206C656E677468203330, +358405202000, 1, 010010807141731480, 0 +SmsTx=15000C914477746085520004A71E74657374206D6573736167652C2038626974732C206C656E677468203330, +447785016005, 1, 010010807141731480, 0 SmsRx= 440C915348801455824114108071417314801E050003000301546869732069732074657374206D657373616765204F4E45, 358405202000 SmsRx= 440C915348801455824114108071417314801E050003010301546869732069732074657374206D6573736167652054574F, 358405202000 SmsRx= 440C9153488014558241141080714173148020050003020301546869732069732074657374206D657373616765205448524540, 358405202000 @@ -165,45 +168,65 @@ [test27] SmsRxPeriod=1 -SmsStartRxDelay= 4207, 1, 4 -SmsTx= 150000810004A71E74657374206D6573736167652C2038626974732C206C656E677468203330, +358405202000, 1, 010010807141731480, 0 +SmsStartRxDelay= 4207, 1, 1 +SmsTx=15000C914477746085520004A71E74657374206D6573736167652C2038626974732C206C656E677468203330, +447785016005, 1, 010010807141731480, 0 + SmsRx= 440C915348801455824114108071417314801E050003000301546869732069732074657374206D657373616765204F4E45, 358405202000 + +SmsStartRxDelay= 4207, 2, 1 +SmsTx=15000C914477746085520004A71E74657374206D6573736167652C2038626974732C206C656E677468203330, +447785016005, 1, 010010807141731480, 0 SmsRx= 440C915348801455824114108071417314801E050003010301546869732069732074657374206D6573736167652054574F, 358405202000 + +SmsStartRxDelay= 4207, 3, 1 +SmsTx=15000C914477746085520004A71E74657374206D6573736167652C2038626974732C206C656E677468203330, +447785016005, 1, 010010807141731480, 0 SmsRx= 440C9153488014558241141080714173148020050003020301546869732069732074657374206D657373616765205448524540, 358405202000 + +SmsStartRxDelay= 4207, 4, 1 +SmsTx=15000C914477746085520004A71E74657374206D6573736167652C2038626974732C206C656E677468203330, +447785016005, 1, 010010807141731480, 0 SmsRx= 440C915348801455824114108071417314801F050003030301546869732069732074657374206D65737361676520464F5552, 358405202000 -SmsStartRxDelay= 4207, 2, 1 -SmsTx= 150000810004A71E74657374206D6573736167652C2038626974732C206C656E677468203330, +358405202000, 1, 010010807141731480, 0 +SmsStartRxDelay= 4207, 5, 1 +SmsTx=15000C914477746085520004A71E74657374206D6573736167652C2038626974732C206C656E677468203330, +447785016005, 1, 010010807141731480, 0 SmsRx= 440C915348801455824114108071417314801F050003040301546869732069732074657374206D6573736167652046495645, 358405202000 [test28] #Fill the preallocation file -SmsStartRxDelay= 4207, 1, 4 -SmsTx= 150000810004A71E74657374206D6573736167652C2038626974732C206C656E677468203330, +358405202000, 1, 010010807141731480, 0 +SmsStartRxDelay= 4207, 1, 1 +SmsTx=15000C914477746085520004A71E74657374206D6573736167652C2038626974732C206C656E677468203330, +447785016005, 1, 010010807141731480, 0 SmsRx= 440C915348801455824114108071417314801E050003000301546869732069732074657374206D657373616765204F4E45, 358405202000 + +SmsStartRxDelay= 4207, 2, 1 +SmsTx=15000C914477746085520004A71E74657374206D6573736167652C2038626974732C206C656E677468203330, +447785016005, 1, 010010807141731480, 0 SmsRx= 440C915348801455824114108071417314801E050003010301546869732069732074657374206D6573736167652054574F, 358405202000 + +SmsStartRxDelay= 4207, 3, 1 +SmsTx=15000C914477746085520004A71E74657374206D6573736167652C2038626974732C206C656E677468203330, +447785016005, 1, 010010807141731480, 0 SmsRx= 440C9153488014558241141080714173148020050003020301546869732069732074657374206D657373616765205448524540, 358405202000 + +SmsStartRxDelay= 4207, 4, 1 +SmsTx=15000C914477746085520004A71E74657374206D6573736167652C2038626974732C206C656E677468203330, +447785016005, 1, 010010807141731480, 0 SmsRx= 440C915348801455824114108071417314801F050003030301546869732069732074657374206D65737361676520464F5552, 358405202000 #Receive first PDU when disk space available -SmsStartRxDelay= 4207, 2, 1 -SmsTx= 150000810004A71E74657374206D6573736167652C2038626974732C206C656E677468203330, +358405202000, 1, 010010807141731480, 0 +SmsStartRxDelay= 4207, 5, 1 +SmsTx=15000C914477746085520004A71E74657374206D6573736167652C2038626974732C206C656E677468203330, +447785016005, 1, 010010807141731480, 0 SmsRx= 440C9153488014558200F410807141731480190500030B03014920616D207468652046495253542050445520, 358405202000 #Receive second PDU in OOD -SmsStartRxDelay= 4207, 3, 1 -SmsTx= 150000810004A71E74657374206D6573736167652C2038626974732C206C656E677468203330, +358405202000, 1, 010010807141731480, 0 +SmsStartRxDelay= 4207, 6, 1 +SmsTx=15000C914477746085520004A71E74657374206D6573736167652C2038626974732C206C656E677468203330, +447785016005, 1, 010010807141731480, 0 SmsRx= 440C9153488014558200F4108071417314801A0500030B03024920616D20746865205345434F4E442050445520, 358405202000 #Receive third PDU when disk space available -SmsStartRxDelay= 4207, 4, 1 -SmsTx= 150000810004A71E74657374206D6573736167652C2038626974732C206C656E677468203330, +358405202000, 1, 010010807141731480, 0 +SmsStartRxDelay= 4207, 7, 1 +SmsTx=15000C914477746085520004A71E74657374206D6573736167652C2038626974732C206C656E677468203330, +447785016005, 1, 010010807141731480, 0 SmsRx= 440C9153488014558200F410807141731480180500030B03034920616D2074686520544849524420504455, 358405202000 + [test29] #Fill the preallocation file SmsStartRxDelay= 4207, 1, 4 -SmsTx= 150000810004A71E74657374206D6573736167652C2038626974732C206C656E677468203330, +358405202000, 1, 010010807141731480, 0 +SmsTx=15000C914477746085520004A71E74657374206D6573736167652C2038626974732C206C656E677468203330, +447785016005, 1, 010010807141731480, 0 SmsRx= 440C915348801455824114108071417314801E050003000301546869732069732074657374206D657373616765204F4E45, 358405202000 SmsRx= 440C915348801455824114108071417314801E050003010301546869732069732074657374206D6573736167652054574F, 358405202000 SmsRx= 440C9153488014558241141080714173148020050003020301546869732069732074657374206D657373616765205448524540, 358405202000 @@ -211,23 +234,23 @@ #Receive first PDU in OOD SmsStartRxDelay= 4207, 2, 1 -SmsTx= 150000810004A71E74657374206D6573736167652C2038626974732C206C656E677468203330, +358405202000, 1, 010010807141731480, 0 +SmsTx=15000C914477746085520004A71E74657374206D6573736167652C2038626974732C206C656E677468203330, +447785016005, 1, 010010807141731480, 0 SmsRx= 440C9153488014558200F410807141731480190500030B03014920616D207468652046495253542050445520, 358405202000 #Receive second PDU in OOD SmsStartRxDelay= 4207, 3, 1 -SmsTx= 150000810004A71E74657374206D6573736167652C2038626974732C206C656E677468203330, +358405202000, 1, 010010807141731480, 0 +SmsTx=15000C914477746085520004A71E74657374206D6573736167652C2038626974732C206C656E677468203330, +447785016005, 1, 010010807141731480, 0 SmsRx= 440C9153488014558200F4108071417314801A0500030B03024920616D20746865205345434F4E442050445520, 358405202000 #Receive third PDU in OOD SmsStartRxDelay= 4207, 4, 1 -SmsTx= 150000810004A71E74657374206D6573736167652C2038626974732C206C656E677468203330, +358405202000, 1, 010010807141731480, 0 +SmsTx=15000C914477746085520004A71E74657374206D6573736167652C2038626974732C206C656E677468203330, +447785016005, 1, 010010807141731480, 0 SmsRx= 440C9153488014558200F410807141731480180500030B03034920616D2074686520544849524420504455, 358405202000 [test30] SmsRxPeriod=5 SmsStartRxDelay= 4207, 1, 10 -SmsTx= 150000810004A71E74657374206D6573736167652C2038626974732C206C656E677468203330, +358405202000, 1, 010010807141731480, 0 +SmsTx=15000C914477746085520004A71E74657374206D6573736167652C2038626974732C206C656E677468203330, +447785016005, 1, 010010807141731480, 0 # class 0, 8 bit SmsRx= 240C915348801455820014108071417314801E74657374206D6573736167652C2038626974732C206C656E677468203330, 358405202000 SmsRx= 240C915348801455820014108071417314801E74657374206D6573736167652C2038626974732C206C656E677468203330, 358405202000 @@ -244,14 +267,14 @@ [test31] SmsRxPeriod=2 SmsStartRxDelay= 4207, 1, 3 -SmsTx= 150000810004A71E74657374206D6573736167652C2038626974732C206C656E677468203330, +358405202000, 1, 010010807141731480, 0 +SmsTx=15000C914477746085520004A71E74657374206D6573736167652C2038626974732C206C656E677468203330, +447785016005, 1, 010010807141731480, 0 SmsRx= 440C9153488014558200F410807141731480190500030B03014920616D207468652046495253542050445520, 358405202000 SmsRx= 440C9153488014558200F4108071417314801A0500030B03024920616D20746865205345434F4E442050445520, 358405202000 SmsRx= 440C9153488014558200F410807141731480180500030B03034920616D2074686520544849524420504455, 358405202000 [test32] SmsStartRxDelay= 4207, 1, 5 -SmsTx= 150000810004A71E74657374206D6573736167652C2038626974732C206C656E677468203330, +358405202000, 1, 010010807141731480, 0 +SmsTx=15000C914477746085520004A71E74657374206D6573736167652C2038626974732C206C656E677468203330, +447785016005, 1, 010010807141731480, 0 SmsRx= 440C915348801455824114108071417314801E050003000301546869732069732074657374206D657373616765204F4E45, 358405202000 SmsRx= 440C915348801455824114108071417314801E050003010301546869732069732074657374206D6573736167652054574F, 358405202000 SmsRx= 440C9153488014558241141080714173148020050003020301546869732069732074657374206D657373616765205448524540, 358405202000 diff -r 962e6306d9d2 -r 7ef16719d8cb smsprotocols/smsstack/smsprot/Test/TE_Smsprt/TE_CloseSMSProtocol.cpp --- a/smsprotocols/smsstack/smsprot/Test/TE_Smsprt/TE_CloseSMSProtocol.cpp Fri Feb 19 23:59:33 2010 +0200 +++ b/smsprotocols/smsstack/smsprot/Test/TE_Smsprt/TE_CloseSMSProtocol.cpp Fri Mar 12 15:49:38 2010 +0200 @@ -27,7 +27,7 @@ @param aSocket is the sub-session handle */ { - iSocketServer = &aSocketServer; + iSharedSocketServer = &aSocketServer; } /** @@ -36,10 +36,10 @@ TVerdict CCloseSMSProtocol::doTestStepL() { //Close session - if(iSocketServer) - { - iSocketServer->Close(); - } + if( iSharedSocketServer != NULL ) + { + iSharedSocketServer->Close(); + } #ifdef _DEBUG TInt err = RProperty::Delete(KUidPSSMSStackCategory, KUidPSSMSStackFreeDiskSpaceKey); @@ -51,11 +51,3 @@ return TestStepResult(); } -//----------------------------------------------------------------------------- - - - - - - - diff -r 962e6306d9d2 -r 7ef16719d8cb smsprotocols/smsstack/smsprot/Test/TE_Smsprt/TE_DeleteSARStores.cpp --- a/smsprotocols/smsstack/smsprot/Test/TE_Smsprt/TE_DeleteSARStores.cpp Fri Feb 19 23:59:33 2010 +0200 +++ b/smsprotocols/smsstack/smsprot/Test/TE_Smsprt/TE_DeleteSARStores.cpp Fri Mar 12 15:49:38 2010 +0200 @@ -19,6 +19,13 @@ #include "Te_SmsTestSteps.h" + +CDeleteSARStores::CDeleteSARStores() + { + iPartOfMultiStepTestCase = ETrue; + } + + /** Deletes the SMS and WAP segmentation and reassembly stores */ diff -r 962e6306d9d2 -r 7ef16719d8cb smsprotocols/smsstack/smsprot/Test/TE_Smsprt/TE_DiskSpaceMonitor.ini --- a/smsprotocols/smsstack/smsprot/Test/TE_Smsprt/TE_DiskSpaceMonitor.ini Fri Feb 19 23:59:33 2010 +0200 +++ b/smsprotocols/smsstack/smsprot/Test/TE_Smsprt/TE_DiskSpaceMonitor.ini Fri Mar 12 15:49:38 2010 +0200 @@ -25,7 +25,6 @@ [DiskSpaceInMidRange] -testNumber =131 //7Mb freeDrop = 7 @@ -34,7 +33,6 @@ freeDrop = 2 [DiskSpaceBelowMidRange] -testNumber =132 //11Mb freeDrop = 11 diff -r 962e6306d9d2 -r 7ef16719d8cb smsprotocols/smsstack/smsprot/Test/TE_Smsprt/TE_EnumerateInOODCondition.cpp --- a/smsprotocols/smsstack/smsprot/Test/TE_Smsprt/TE_EnumerateInOODCondition.cpp Fri Feb 19 23:59:33 2010 +0200 +++ b/smsprotocols/smsstack/smsprot/Test/TE_Smsprt/TE_EnumerateInOODCondition.cpp Fri Mar 12 15:49:38 2010 +0200 @@ -24,25 +24,24 @@ Each test step initialises it's own name */ { - iSocketServer = &aSocketServer; + iSharedSocketServer = &aSocketServer; + iPartOfMultiStepTestCase = ETrue; } /** Enumerates SIM messages. - */ + */ TVerdict CEnumerateInOODCondition::doTestStepL() { #ifndef _DEBUG INFO_PRINTF1(_L("This test can only be run when the SMS Stack is in debug mode.")); #else - //PrepareRegTestLC(*iSocketServer, 17); + //Open a socket + RSocket socket; + OpenSmsSocketL(*iSharedSocketServer, socket, ESmsAddrRecvAny); + CleanupClosePushL(socket); - //Open a socket - INFO_PRINTF1(_L("Opening socket...")); - RSocket socket; - OpenSmsSocketL(*iSocketServer, socket, ESmsAddrRecvAny); - TRequestStatus status; TPckgBuf sbuf; sbuf()=0; @@ -50,21 +49,9 @@ //Now enumerate messages from store socket.Ioctl(KIoctlEnumerateSmsMessages,status,&sbuf, KSolSmsProv); User::WaitForRequest(status); + TESTCHECK(status.Int(), KErrDiskFull, "Checking the Enumeration was unsuccessful due to the disk being full"); - //The Enumeration should fail due to the disk being full and returns KErrDiskFull - if(status==KErrDiskFull) - { - INFO_PRINTF1(_L("Status = KErrDiskFull")); - } - else - { - TEST(EFalse); - } - - socket.Close(); + CleanupStack::PopAndDestroy(&socket); #endif return TestStepResult(); } -//-----------------------------------------------------------------------------> - - diff -r 962e6306d9d2 -r 7ef16719d8cb smsprotocols/smsstack/smsprot/Test/TE_Smsprt/TE_FreeDiskSpace.cpp --- a/smsprotocols/smsstack/smsprot/Test/TE_Smsprt/TE_FreeDiskSpace.cpp Fri Feb 19 23:59:33 2010 +0200 +++ b/smsprotocols/smsstack/smsprot/Test/TE_Smsprt/TE_FreeDiskSpace.cpp Fri Mar 12 15:49:38 2010 +0200 @@ -16,6 +16,10 @@ #include "TE_smsmondsk.h" +CFreeDiskSpace::CFreeDiskSpace() + { + iPartOfMultiStepTestCase = ETrue; + } /** Free up disk space by deleting the temp files created diff -r 962e6306d9d2 -r 7ef16719d8cb smsprotocols/smsstack/smsprot/Test/TE_Smsprt/TE_LoadSMSProtocol.cpp --- a/smsprotocols/smsstack/smsprot/Test/TE_Smsprt/TE_LoadSMSProtocol.cpp Fri Feb 19 23:59:33 2010 +0200 +++ b/smsprotocols/smsstack/smsprot/Test/TE_Smsprt/TE_LoadSMSProtocol.cpp Fri Mar 12 15:49:38 2010 +0200 @@ -20,31 +20,26 @@ #include #include "Te_SmsTestSteps.h" +#include "smsstacktestconsts.h" + CLoadSMSProtocol::CLoadSMSProtocol(RSocketServ &aSocketServer) /** Each test step initialises it's own name */ { - iSocketServer = &aSocketServer; + iSharedSocketServer = &aSocketServer; + iPartOfMultiStepTestCase = ETrue; } /** This step is required before using the SMS stack. - It connects with the socket server, opens a socket subsession AND powers-up the phones using - interface to Etel. + It connects with the socket server and opens a socket subsession. */ TVerdict CLoadSMSProtocol::doTestStepL() - { - TInt testNumber; - GetIntFromConfig(ConfigSection(), _L("testNumber"), testNumber); - INFO_PRINTF2(_L("Setting test number, %d"),testNumber ); - SetSimTSYTestNumberL(testNumber); - - WaitForInitializeL(); + { + INFO_PRINTF1(_L("Connecting to SocketServer")); + TInt ret=iSharedSocketServer->Connect(KSocketMessageSlots); + TEST(ret == KErrNone); - INFO_PRINTF1(_L("Connecting to SocketServer")); - TInt ret=iSocketServer->Connect(KSocketMessageSlots); - TEST(ret == KErrNone); - #ifdef _DEBUG TInt err = RProperty::Define(KUidPSSMSStackCategory, KUidPSSMSStackFreeDiskSpaceKey, RProperty::EInt); if ((err != KErrNone) && (err != KErrAlreadyExists)) @@ -53,9 +48,5 @@ User::Leave(err); } #endif - return TestStepResult(); } - - - diff -r 962e6306d9d2 -r 7ef16719d8cb smsprotocols/smsstack/smsprot/Test/TE_Smsprt/TE_ReceiveSMS.cpp --- a/smsprotocols/smsstack/smsprot/Test/TE_Smsprt/TE_ReceiveSMS.cpp Fri Feb 19 23:59:33 2010 +0200 +++ b/smsprotocols/smsstack/smsprot/Test/TE_Smsprt/TE_ReceiveSMS.cpp Fri Mar 12 15:49:38 2010 +0200 @@ -24,7 +24,8 @@ Each test step initialises it's own name */ { - iSocketServer = &aSocketServer; + iSharedSocketServer = &aSocketServer; + iPartOfMultiStepTestCase = ETrue; } /** @@ -35,26 +36,14 @@ #ifndef _DEBUG INFO_PRINTF1(_L("This test can only be run when the SMS Stack is in debug mode.")); #else - - //Read from the INI file. + //Read from the INI file TInt timeout=10; GetIntFromConfig(ConfigSection(), _L("timeout"), timeout); - - TBool isThisADiskSpaceMonitorTest; - GetBoolFromConfig(_L("DiskSpaceMonitor"), _L("diskSpaceMonitor"), isThisADiskSpaceMonitorTest); - TBool isClientExpectingMessage; - GetBoolFromConfig(ConfigSection(), _L("isClientExpectingMessage"), isClientExpectingMessage); + TBool messageExpected; + GetBoolFromConfig(ConfigSection(), _L("isClientExpectingMessage"), messageExpected); - //Disk SpaceMonitor tests are only run in DEBUG builds - if(isThisADiskSpaceMonitorTest) - { -#ifndef _DEBUG - return TestStepResult(); -#endif - } - - if( isClientExpectingMessage && timeout < 40 ) + if( messageExpected && timeout < 40 ) { // Change timeout to be 40 seconds timeout = 40; @@ -63,57 +52,50 @@ INFO_PRINTF1(_L("Receiving SMS message...")); //Open the socket for receiving messages - INFO_PRINTF1(_L("Opening socket and loading SMS Protocol")); RSocket socket; - OpenSmsSocketL(*iSocketServer, socket, ESmsAddrRecvAny); + OpenSmsSocketL(*iSharedSocketServer, socket, ESmsAddrRecvAny); + CleanupClosePushL(socket); //Message must be received in "timeout" else the test will fail INFO_PRINTF2(_L("Wait for message (timeout: %d)..."), timeout); TBool messageReceived = TimedWaitForRecvL(socket, timeout*1000000); - if(messageReceived) - { - INFO_PRINTF1(_L("Message received!")); - } - - //Set the result to "fail" if no message is received in the specified time - if(messageReceived && isClientExpectingMessage ) - { - CSmsMessage *smsMessage=RecvSmsL(socket); //Get the message from the STACK. - CleanupStack::PushL(smsMessage); - - //Get the text from the ini file - TPtrC messageText; - GetStringFromConfig(ConfigSection(), _L("messageExpected"), messageText); + if( !messageReceived ) + { + if( messageExpected ) + { + ERR_PRINTF1(_L("Message expected - not received!")); + TEST(EFalse); + } + else + { + INFO_PRINTF1(_L("No message expected and not received")); + } + } + else + { + CSmsMessage* smsMessage = RecvSmsL(socket); //Get the message from the STACK. + CleanupStack::PushL(smsMessage); + + if( !messageExpected ) + { + ERR_PRINTF1(_L("Message not expected!")); + TEST(EFalse); + } + else + { + //Get the text from the ini file + TPtrC messageText; + GetStringFromConfig(ConfigSection(), _L("messageExpected"), messageText); - if(messageText!=_L("")) - { - TestSmsContentsL(smsMessage,messageText); - } - - CleanupStack::PopAndDestroy(smsMessage); - } - - else if((!messageReceived && isClientExpectingMessage) || - (messageReceived && !isClientExpectingMessage)) - { - if( !messageReceived && isClientExpectingMessage ) - { - INFO_PRINTF1(_L("Message expected - not received")); - } - TEST(EFalse); - } - - socket.Close(); + if(messageText!=_L("")) + { + TestSmsContentsL(smsMessage,messageText); + } + } + CleanupStack::PopAndDestroy(smsMessage); + } + CleanupStack::PopAndDestroy(&socket); #endif return TestStepResult(); } - -//----------------------------------------------------------------------------- - - - - - - - diff -r 962e6306d9d2 -r 7ef16719d8cb smsprotocols/smsstack/smsprot/Test/TE_Smsprt/TE_SendReceiveSMSWhileServerInOOM.cpp --- a/smsprotocols/smsstack/smsprot/Test/TE_Smsprt/TE_SendReceiveSMSWhileServerInOOM.cpp Fri Feb 19 23:59:33 2010 +0200 +++ b/smsprotocols/smsstack/smsprot/Test/TE_Smsprt/TE_SendReceiveSMSWhileServerInOOM.cpp Fri Mar 12 15:49:38 2010 +0200 @@ -26,7 +26,8 @@ Each test step initialises it's own name */ { - iSocketServer = &aSocketServer; + iSharedSocketServer = &aSocketServer; + iPartOfMultiStepTestCase = ETrue; } /** @@ -41,32 +42,31 @@ TInt timeout=10; GetIntFromConfig(ConfigSection(), _L("timeout"), timeout); - //Open the socket for sending messages RSocket socket; - INFO_PRINTF1(_L("Opening socket and loading SMS Protocol")); - OpenSmsSocketL(*iSocketServer, socket, ESmsAddrSendOnly); + OpenSmsSocketL(*iSharedSocketServer, socket, ESmsAddrSendOnly); + CleanupClosePushL(socket); //Create SMS - CSmsMessage* iSms=CreateSMSL(); - CleanupStack::PushL(iSms); + CSmsMessage* sms=CreateSMSL(); + CleanupStack::PushL(sms); TBool isClientExpectingMessage; GetBoolFromConfig(ConfigSection(), _L("isClientExpectingMessage"), isClientExpectingMessage); INFO_PRINTF1(_L("Sending SMS...") ); - PrintMessageL(iSms); + PrintMessageL(sms); //Send SMS - SendSmsL(iSms,socket); - CleanupStack::PopAndDestroy(iSms); - socket.Close(); + SendSmsL(sms,socket); + CleanupStack::PopAndDestroy(sms); + CleanupStack::PopAndDestroy(&socket); //Open the socket for receiving messages - INFO_PRINTF1(_L("Opening socket and loading SMS Protocol")); RSocket recSocket; - OpenSmsSocketL(*iSocketServer, recSocket, ESmsAddrRecvAny); - + OpenSmsSocketL(*iSharedSocketServer, recSocket, ESmsAddrRecvAny); + CleanupClosePushL(recSocket); + //Receive TInt allocFailCount=0; TInt ret=KErrNoMemory; @@ -82,13 +82,13 @@ { INFO_PRINTF1(_L("Message received!")); - iSocketServer->__DbgMarkHeap(); - iSocketServer->__DbgFailNext(allocFailCount); + iSharedSocketServer->__DbgMarkHeap(); + iSharedSocketServer->__DbgFailNext(allocFailCount); CSmsMessage *iSmsMessage=NULL; TRAP(ret,iSmsMessage=RecvSmsL(recSocket)); //Get the message from the STACK. - iSocketServer->__DbgMarkEnd(0); + iSharedSocketServer->__DbgMarkEnd(0); //If a message was retrieved successfully. if(ret==KErrNone) @@ -105,19 +105,15 @@ { TestSmsContentsL(iSmsMessage,messageText); } - CleanupStack::PopAndDestroy(iSmsMessage); } - - allocFailCount++; + ++allocFailCount; } - } - recSocket.Close(); - iSocketServer->__DbgFailNext(-1); // Reset heap + CleanupStack::PopAndDestroy(&recSocket); + iSharedSocketServer->__DbgFailNext(-1); // Reset heap #endif return TestStepResult(); } -//------------------------------------------------------------------------------------- diff -r 962e6306d9d2 -r 7ef16719d8cb smsprotocols/smsstack/smsprot/Test/TE_Smsprt/TE_SendSMS.cpp --- a/smsprotocols/smsstack/smsprot/Test/TE_Smsprt/TE_SendSMS.cpp Fri Feb 19 23:59:33 2010 +0200 +++ b/smsprotocols/smsstack/smsprot/Test/TE_Smsprt/TE_SendSMS.cpp Fri Mar 12 15:49:38 2010 +0200 @@ -24,7 +24,8 @@ Each test step initialises it's own name */ { - iSocketServer = &aSocketServer; + iSharedSocketServer = &aSocketServer; + iPartOfMultiStepTestCase = ETrue; } /** @@ -34,38 +35,28 @@ { #ifndef _DEBUG INFO_PRINTF1(_L("This test can only be run when the SMS Stack is in debug mode.")); -#else +#else //Open the socket for sending messages RSocket socket; - INFO_PRINTF1(_L("Opening socket and loading SMS Protocol")); - OpenSmsSocketL(*iSocketServer, socket, ESmsAddrSendOnly); - + OpenSmsSocketL(*iSharedSocketServer, socket, ESmsAddrSendOnly); + CleanupClosePushL(socket); + //Create SMS - CSmsMessage* iSms=CreateSMSL(); - CleanupStack::PushL(iSms); + CSmsMessage* sms=CreateSMSL(); + CleanupStack::PushL(sms); - if( iSms ) + if( sms ) { - INFO_PRINTF1(_L("Sending SMS...") ); - PrintMessageL(iSms); - SendSmsL(iSms,socket); + SendSmsL(sms,socket); } else { - INFO_PRINTF1(_L("Error creating SMS.") ); - TEST(EFalse); + INFO_PRINTF1(_L("Error creating SMS") ); + SetTestStepResult(EFail); } - - CleanupStack::PopAndDestroy(iSms); - socket.Close(); + + CleanupStack::PopAndDestroy(sms); + CleanupStack::PopAndDestroy(&socket); #endif return TestStepResult(); } -//----------------------------------------------------------------------------- - - - - - - - diff -r 962e6306d9d2 -r 7ef16719d8cb smsprotocols/smsstack/smsprot/Test/TE_Smsprt/TE_SetDiskSpace.cpp --- a/smsprotocols/smsstack/smsprot/Test/TE_Smsprt/TE_SetDiskSpace.cpp Fri Feb 19 23:59:33 2010 +0200 +++ b/smsprotocols/smsstack/smsprot/Test/TE_Smsprt/TE_SetDiskSpace.cpp Fri Mar 12 15:49:38 2010 +0200 @@ -15,6 +15,10 @@ #include "TE_smsmondsk.h" +CSetDiskSpace::CSetDiskSpace() + { + iPartOfMultiStepTestCase = ETrue; + } /** * Set free disk space to the required limit diff -r 962e6306d9d2 -r 7ef16719d8cb smsprotocols/smsstack/smsprot/Test/TE_Smsprt/TE_SetDiskSpaceMonitorLimits.cpp --- a/smsprotocols/smsstack/smsprot/Test/TE_Smsprt/TE_SetDiskSpaceMonitorLimits.cpp Fri Feb 19 23:59:33 2010 +0200 +++ b/smsprotocols/smsstack/smsprot/Test/TE_Smsprt/TE_SetDiskSpaceMonitorLimits.cpp Fri Mar 12 15:49:38 2010 +0200 @@ -16,17 +16,24 @@ #include "TE_smsmondsk.h" +CSetDiskMonitorLimits::CSetDiskMonitorLimits() +/** + Each test step initialises it's own name +*/ + { + iPartOfMultiStepTestCase = ETrue; + } + enum TVerdict CSetDiskMonitorLimits::doTestStepL() /** Creates smsu.rsc file which defines the upper and lower limits for the disk space monitor */ - { #ifndef _DEBUG INFO_PRINTF1(_L("This test can only be run when the SMS Stack is in debug mode.")); #else - TInt highDrop = 4; - TInt lowDrop = 10; + TInt highDrop = 3; + TInt lowDrop = 8; TInt freeDrop = 0; GetIntFromConfig(_L("DiskMonitorLimits"), _L("highDrop"), highDrop); diff -r 962e6306d9d2 -r 7ef16719d8cb smsprotocols/smsstack/smsprot/Test/TE_Smsprt/TE_smsmondsk.h --- a/smsprotocols/smsstack/smsprot/Test/TE_Smsprt/TE_smsmondsk.h Fri Feb 19 23:59:33 2010 +0200 +++ b/smsprotocols/smsstack/smsprot/Test/TE_Smsprt/TE_smsmondsk.h Fri Mar 12 15:49:38 2010 +0200 @@ -13,37 +13,30 @@ // Description: // -#ifndef __TE_SMSMONDSK_H_ -#define __TE_SMSMONDSK_H_ +#ifndef TE_SMSMONDSK_H +#define TE_SMSMONDSK_H #include "Te_SmsTestSteps.h" -/** - - */ -class CSetDiskMonitorLimits : public CSMSTestSteps +class CSetDiskMonitorLimits : public CSmsBaseTestStep { public: - virtual enum TVerdict doTestStepL(); + CSetDiskMonitorLimits(); + virtual TVerdict doTestStepL(); }; -/** - - */ -class CSetDiskSpace : public CSMSTestSteps +class CSetDiskSpace : public CSmsBaseTestStep { public: - virtual enum TVerdict doTestStepL(); + CSetDiskSpace(); + virtual TVerdict doTestStepL(); }; - -/** - - */ -class CFreeDiskSpace : public CSMSTestSteps + +class CFreeDiskSpace : public CSmsBaseTestStep { public: - virtual enum TVerdict doTestStepL(); + CFreeDiskSpace(); + virtual TVerdict doTestStepL(); }; - -#endif // __TE_SMSMONDSK_H_ +#endif // TE_SMSMONDSK_H diff -r 962e6306d9d2 -r 7ef16719d8cb smsprotocols/smsstack/smsprot/Test/TE_Smsprt/TE_smsprt.cpp --- a/smsprotocols/smsstack/smsprot/Test/TE_Smsprt/TE_smsprt.cpp Fri Feb 19 23:59:33 2010 +0200 +++ b/smsprotocols/smsstack/smsprot/Test/TE_Smsprt/TE_smsprt.cpp Fri Mar 12 15:49:38 2010 +0200 @@ -16,95 +16,55 @@ /** @file */ -#include - -#include "TE_smsprtbase.h" -#include "smsulog.h" -#include "logcheck.h" #include "TE_smsprt.h" + #include #include - #include #include #include +#include "smsulog.h" + using namespace CommsDat; -#if defined (__WINS__) -#define PDD_NAME _L("ECDRV") -#define LDD_NAME _L("ECOMM") -#else -#define PDD_NAME _L("EUART1") -#define LDD_NAME _L("ECOMM") -#endif - - TVerdict CTestSimpleTxAndRx::doTestStepL() /** * Test a simple Transmit and Receive of a TPDU */ { INFO_PRINTF1(_L("Test Simple Tx and Rx SMS")); - - RSocketServ socketServer; - PrepareRegTestLC(socketServer, 0); - RSocket socket; - iSmsStackTestUtils->OpenSmsSocketL(socketServer,socket,ESmsAddrRecvAny); - CleanupClosePushL(socket); - - // Create comms database object + iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,socket,ESmsAddrRecvAny); -#ifdef SYMBIAN_NON_SEAMLESS_NETWORK_BEARER_MOBILITY - CMDBSession* db = CMDBSession::NewL(KCDVersion1_2); -#else - CMDBSession* db = CMDBSession::NewL(KCDVersion1_1); -#endif - CleanupStack::PushL(db); - - INFO_PRINTF1(_L("Testing recvMode change to EReceiveUnstoredClientAck")); - - // EReceiveUnstoredClientAck - CMDBField* smsReceiveModeField = new(ELeave) CMDBField(KCDTIdSMSReceiveMode); - CleanupStack::PushL(smsReceiveModeField); - smsReceiveModeField->SetRecordId(1); //it's GlobalSettingsRecord - *smsReceiveModeField = RMobileSmsMessaging::EReceiveUnstoredClientAck; - smsReceiveModeField->ModifyL(*db); - CleanupStack::PopAndDestroy(smsReceiveModeField); - CleanupStack::PopAndDestroy(db); - _LIT(KTestMsg1,"test message, 8bits, length 30"); + ChangeReceiveModeL(RMobileSmsMessaging::EReceiveUnstoredClientAck); + + _LIT(KTestMsg,"test message, 8bits, length 30"); //Set destination and SC numbers iTelephoneNumber=KPekka; iServiceCenterNumber=KRadiolinjaSC; TSmsDataCodingScheme::TSmsAlphabet alphabet=TSmsDataCodingScheme::ESmsAlphabet8Bit; - CSmsMessage* smsMessage=CreateSmsMessageL(KTestMsg1,alphabet); - CleanupStack::PushL(smsMessage); + CSmsMessage* smsMessage=CreateSmsMessageLC(KTestMsg, alphabet); INFO_PRINTF2(_L("Destination number:..... %S"),&iTelephoneNumber); INFO_PRINTF2(_L("ServiceCenter number:... %S"),&iServiceCenterNumber); //Send SMS SendSmsL(smsMessage,socket); - CleanupStack::PopAndDestroy(smsMessage); //Receive SMS - INFO_PRINTF1(_L("waiting for incoming SMS...") ); WaitForRecvL(socket); smsMessage = RecvSmsL(socket); - - INFO_PRINTF1(_L("incoming SMS") ); - - CleanupStack::PushL(smsMessage); - TestSmsContentsL(smsMessage,KTestMsg1); + CleanupStack::PushL(smsMessage); + + TestSmsContentsL(smsMessage, KTestMsg); //Save the received message to the SMS storage smsMessage->SetStorage(CSmsMessage::ESmsSIMStorage); WriteSmsToSimL(*smsMessage, socket); - CleanupStack::PopAndDestroy(smsMessage); // Enumerate messages from Store @@ -113,46 +73,20 @@ messages.ResetAndDestroy(); CleanupStack::PopAndDestroy(&socket); - - CleanupStack::PopAndDestroy(&socketServer); - return TestStepResult() ; } - - + TVerdict CTestBinaryTxAndRx::doTestStepL() /** * Test a binary Transmit and Receive of a TPDU */ { INFO_PRINTF1(_L("Test Binary Tx and Rx SMS")); - - RSocketServ socketServer; - PrepareRegTestLC(socketServer, 142); - RSocket socket; - iSmsStackTestUtils->OpenSmsSocketL(socketServer,socket,ESmsAddrRecvAny); + iSmsStackTestUtils->OpenSmsSocketL(iSocketServer,socket,ESmsAddrRecvAny); CleanupClosePushL(socket); - - // Create comms database object -#ifdef SYMBIAN_NON_SEAMLESS_NETWORK_BEARER_MOBILITY - CMDBSession* db = CMDBSession::NewL(KCDVersion1_2); -#else - CMDBSession* db = CMDBSession::NewL(KCDVersion1_1); -#endif - CleanupStack::PushL(db); - - INFO_PRINTF1(_L("Testing recvMode change to EReceiveUnstoredClientAck")); - - // EReceiveUnstoredClientAck - CMDBField* smsReceiveModeField = new(ELeave) CMDBField(KCDTIdSMSReceiveMode); - CleanupStack::PushL(smsReceiveModeField); - smsReceiveModeField->SetRecordId(1); //it's GlobalSettingsRecord - *smsReceiveModeField = RMobileSmsMessaging::EReceiveUnstoredClientAck; - smsReceiveModeField->ModifyL(*db); - CleanupStack::PopAndDestroy(smsReceiveModeField); - CleanupStack::PopAndDestroy(db); - + + ChangeReceiveModeL(RMobileSmsMessaging::EReceiveUnstoredClientAck); //Set destination and SC numbers iTelephoneNumber=KPekka; @@ -167,8 +101,7 @@ } TSmsDataCodingScheme::TSmsAlphabet alphabet=TSmsDataCodingScheme::ESmsAlphabet8Bit; - CSmsMessage* smsMessage=CreateSmsMessageL(arrBuf, alphabet); - CleanupStack::PushL(smsMessage); + CSmsMessage* smsMessage=CreateSmsMessageLC(arrBuf, alphabet); INFO_PRINTF2(_L("Destination number:..... %S"),&iTelephoneNumber); INFO_PRINTF2(_L("ServiceCenter number:... %S"),&iServiceCenterNumber); @@ -184,43 +117,33 @@ arrBuf2[i] = 128 + i; } - smsMessage=CreateSmsMessageL(arrBuf2, alphabet); - CleanupStack::PushL(smsMessage); - //Send second SMS - SendSmsL(smsMessage,socket); + smsMessage=CreateSmsMessageLC(arrBuf2, alphabet); + SendSmsL(smsMessage,socket); CleanupStack::PopAndDestroy(smsMessage); //Receive first SMS - INFO_PRINTF1(_L("waiting for incoming first SMS...") ); WaitForRecvL(socket); smsMessage = RecvSmsL(socket); - - INFO_PRINTF1(_L("incoming first SMS") ); - CleanupStack::PushL(smsMessage); - TestSmsContentsL(smsMessage, arrBuf, ETrue); + + TestSmsContentsL(smsMessage, arrBuf, ETrue); //Save the received message to the SMS storage smsMessage->SetStorage(CSmsMessage::ESmsSIMStorage); WriteSmsToSimL(*smsMessage, socket); - CleanupStack::PopAndDestroy(smsMessage); //Receive second SMS - INFO_PRINTF1(_L("waiting for incoming second SMS...") ); WaitForRecvL(socket); smsMessage = RecvSmsL(socket); - - INFO_PRINTF1(_L("incoming second SMS") ); - CleanupStack::PushL(smsMessage); - TestSmsContentsL(smsMessage, arrBuf2, ETrue); + + TestSmsContentsL(smsMessage, arrBuf2, ETrue); //Save the received message to the SMS storage smsMessage->SetStorage(CSmsMessage::ESmsSIMStorage); WriteSmsToSimL(*smsMessage, socket); - CleanupStack::PopAndDestroy(smsMessage); // Enumerate messages from Store @@ -229,25 +152,17 @@ messages.ResetAndDestroy(); CleanupStack::PopAndDestroy(&socket); - - CleanupStack::PopAndDestroy(&socketServer); - return TestStepResult() ; } - - + TVerdict CTestStatusReport::doTestStepL() /** * Test a simple Transmit and Receive with status reporting */ { INFO_PRINTF1(_L("Test Tx an SMS and then receive a status report")); - - RSocketServ socketServer; - PrepareRegTestLC(socketServer, 1); - RSocket socket; - iSmsStackTestUtils->OpenSmsSocketLC(socketServer,socket,ESmsAddrRecvAny); + iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,socket,ESmsAddrRecvAny); _LIT(KTestMsg1,"test message, 8bits, length 30"); @@ -264,11 +179,9 @@ //Send SMS SendSmsL(smsMessage,socket); - CleanupStack::PopAndDestroy(smsMessage); //Create and send the second SMS - _LIT(KTest7bitMsg,"test message, length 23"); //7 bits test message, length 23 characters //Set destination number @@ -283,7 +196,6 @@ //Send SMS SendSmsL(smsMessage,socket); - CleanupStack::PopAndDestroy(smsMessage); //Create and send the third SMS @@ -300,7 +212,6 @@ //Send SMS SendSmsL(smsMessage,socket); - CleanupStack::PopAndDestroy(smsMessage); //Create and send the fourth SMS @@ -318,7 +229,6 @@ //Send SMS SendSmsL(smsMessage,socket); - CleanupStack::PopAndDestroy(smsMessage); // Create and send the 5th SMS. Here the submit PDU contains an international number @@ -338,10 +248,9 @@ //Send SMS SendSmsL(smsMessage, socket); - CleanupStack::PopAndDestroy(smsMessage); - // + //////////// // PDEF137451 //Create and send the sixth SMS // @@ -359,7 +268,6 @@ //Send SMS SendSmsL(smsMessage,socket); - CleanupStack::PopAndDestroy(smsMessage); // @@ -378,22 +286,24 @@ //Send SMS SendSmsL(smsMessage,socket); - CleanupStack::PopAndDestroy(smsMessage); - // + /////////////// - //Receive status report TSmsServiceCenterAddress telephoneNumber; telephoneNumber.Copy( KOther ); RecvStatusReportL(telephoneNumber, socket); + telephoneNumber = KLocalNumber; RecvStatusReportL(telephoneNumber, socket); + telephoneNumber = KOther; RecvStatusReportL(telephoneNumber, socket); + telephoneNumber.Copy( KPekka ); RecvStatusReportL(telephoneNumber, socket); + // CSmsPDUProcessor::DecodeAndProcessPDUL sets the address of the SR // to the same as that of the original submit. So we expect the // received SR to have an international number, despite the SR PDU @@ -404,33 +314,26 @@ // truncated user data, 8-bit: telephoneNumber.Copy( KPekka ); RecvStatusReportL(telephoneNumber, socket); + // truncated user data, 7-bit: telephoneNumber.Copy( KOther ); RecvStatusReportL(telephoneNumber, socket); CleanupStack::PopAndDestroy(&socket); - CleanupStack::PopAndDestroy(&socketServer); - - return TestStepResult() ; } - TVerdict CTestTxWithError::doTestStepL() /** * Test a simple Transmit and Receive. This test case tests different errors from TSY. */ { INFO_PRINTF1(_L("Test Tx an SMS, completed with error")); - - RSocketServ socketServer; - PrepareRegTestLC(socketServer, 2); - RSocket socket; - iSmsStackTestUtils->OpenSmsSocketLC(socketServer,socket,ESmsAddrRecvAny); + iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,socket,ESmsAddrRecvAny); RSocket socket2; - iSmsStackTestUtils->OpenSmsSocketLC(socketServer,socket2,ESmsAddrSendOnly); + iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,socket2,ESmsAddrSendOnly); _LIT(KTestMsg1,"test message, 8bits, length 30"); @@ -439,8 +342,7 @@ iServiceCenterNumber=KSoneraSC; TSmsDataCodingScheme::TSmsAlphabet alphabet=TSmsDataCodingScheme::ESmsAlphabet8Bit; - CSmsMessage* smsMessage=CreateSmsMessageL(KTestMsg1,alphabet); - CleanupStack::PushL(smsMessage); + CSmsMessage* smsMessage=CreateSmsMessageLC(KTestMsg1,alphabet); //Set Status report request CSmsSubmit& submitPdu=(CSmsSubmit&)smsMessage->SmsPDU(); @@ -455,8 +357,6 @@ //Try sending, Tsy returns error SendSmsCancelL(smsMessage,socket, socket2); -// SendSmsErrorL(smsMessage,socket); - INFO_PRINTF1(_L("Try again sending the SMS")); //Now sending succeeds KErrNone SendSmsL(smsMessage,socket); @@ -490,37 +390,24 @@ CleanupStack::PopAndDestroy(smsMessage); //Receive SMS - INFO_PRINTF1(_L("waiting for incoming SMS...")); WaitForRecvL(socket); smsMessage = RecvSmsL(socket); - - INFO_PRINTF1(_L("incoming SMS") ); - CleanupStack::PushL(smsMessage); TestSmsContentsL(smsMessage,KTestMsg1); - CleanupStack::PopAndDestroy(3); // socket, socket2, smsMessage - CleanupStack::PopAndDestroy(&socketServer); - + CleanupStack::PopAndDestroy(3, &socket); // socket, socket2, smsMessage return TestStepResult() ; } - TVerdict CTestTxFailed::doTestStepL() /** * Test sending an SMS, transmit will be failed with different error codes */ { INFO_PRINTF1(_L("Test Tx an SMS, failed with different error codes")); - - RSocketServ socketServer; - PrepareRegTestLC(socketServer, 3); - RSocket socket; - TInt ret; - - iSmsStackTestUtils->OpenSmsSocketLC(socketServer,socket,ESmsAddrRecvAny); + iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,socket,ESmsAddrRecvAny); _LIT(KTestMsg1,"test message, 8bits, length 30"); @@ -529,27 +416,28 @@ iServiceCenterNumber=KSoneraSC; TSmsDataCodingScheme::TSmsAlphabet alphabet=TSmsDataCodingScheme::ESmsAlphabet8Bit; - CSmsMessage* smsMessage=CreateSmsMessageL(KTestMsg1,alphabet); - CleanupStack::PushL(smsMessage); + CSmsMessage* smsMessage=CreateSmsMessageLC(KTestMsg1,alphabet); INFO_PRINTF2(_L("Destination number:..... %S"),&iTelephoneNumber); INFO_PRINTF2(_L("ServiceCenter number:... %S"),&iServiceCenterNumber); //Try sending, Dummy Tsy returns RP-error TInt i; - for (i=0; i <25; i++) + TInt ret; + + for (i=0; i < 25; ++i) { ret = SendSmsErrorL(smsMessage,socket); } //Try sending, Dummy Tsy returns RP-error with corrupted or wrong submit report PDU - for (i=0; i <2; i++) + for (i=0; i < 2; ++i) { ret = SendSmsErrorL(smsMessage,socket); } //Try sending, Dummy Tsy returns general error - for (i=0; i <3; i++) + for (i=0; i < 3; ++i) { ret = SendSmsErrorL(smsMessage,socket); } @@ -558,29 +446,23 @@ ret = SendSmsErrorL(smsMessage,socket); TEST(ret== KErrGsmSMSMemCapacityExceeded); - - CleanupStack::PopAndDestroy(2); // socket, smsMessage - CleanupStack::PopAndDestroy(&socketServer); - + CleanupStack::PopAndDestroy(2, &socket); // socket, smsMessage return TestStepResult() ; } - +// TODO: test does not seem to be used in any scripts that are run as part of tests +// only present in TE_smsprtRegressionClass0StoreEnabled.script, check if OK to remove TVerdict CTestMatchingToObserver::doTestStepL() /** * Test a simple Receive of a single TPDU containing a simple text */ { INFO_PRINTF1(_L("Test Messages matching to correct observer")); - - RSocketServ socketServer; - PrepareRegTestLC(socketServer, 4); - RSocket socket1; - iSmsStackTestUtils->OpenSmsSocketLC(socketServer,socket1,ESmsAddrRecvAny); + iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,socket1,ESmsAddrRecvAny); RSocket socket2; - iSmsStackTestUtils->OpenSmsSocketLC(socketServer,socket2,ESmsAddrSendOnly); + iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,socket2,ESmsAddrSendOnly); _LIT(KTestMsg1,"test message, 8bits, length 30"); //8 bits test message, length 30 chars _LIT(KTestMsg2,"test message, length 23"); //7 bits test message, length 23 characters @@ -589,7 +471,7 @@ match.Copy(KTestMsg2); RSocket socket3; - TInt ret=socket3.Open(socketServer,KSMSAddrFamily,KSockDatagram,KSMSDatagramProtocol); + TInt ret=socket3.Open(iSocketServer,KSMSAddrFamily,KSockDatagram,KSMSDatagramProtocol); TEST(ret == KErrNone); CleanupClosePushL(socket3); @@ -603,7 +485,6 @@ ret=socket1.Bind(smsaddr); TEST(ret == KErrNone); -// //Set destination and SC numbers iTelephoneNumber=KPekka; iServiceCenterNumber=KRadiolinjaSC; @@ -617,7 +498,6 @@ //Send SMS SendSmsL(smsMessage,socket2); - CleanupStack::PopAndDestroy(smsMessage); INFO_PRINTF1(_L("waiting for incoming SMS...") ); @@ -631,36 +511,25 @@ TEST(ret == KErrNone); INFO_PRINTF1(_L("waiting for incoming SMS...") ); - smsMessage = RecvSmsL(socket3); - INFO_PRINTF1(_L("incoming SMS") ); - CleanupStack::PushL(smsMessage); TestSmsContentsL(smsMessage,KTestMsg2); CleanupStack::PopAndDestroy(smsMessage); -//Receive a message to socket1 + //Receive a message to socket1 smsMessage = RecvSmsL(socket1); - - INFO_PRINTF1(_L("incoming SMS") ); - CleanupStack::PushL(smsMessage); TestSmsContentsL(smsMessage,KTestMsg1); - CleanupStack::PopAndDestroy(smsMessage); -//Receive a status report message to socket2 - + //Receive a status report message to socket2 smsMessage = RecvSmsL(socket2); - - INFO_PRINTF1(_L("incoming SMS") ); - + CleanupStack::PushL(smsMessage); + //Check the status report - - CleanupStack::PushL(smsMessage); if (smsMessage->Type()==CSmsPDU::ESmsStatusReport) { INFO_PRINTF1(_L("Received status report")); @@ -669,13 +538,10 @@ INFO_PRINTF2(_L("Message delivered to %S"),&telephoneNumber); } - CleanupStack::PopAndDestroy(4); // socket1, socket2, socket3, smsMessage - CleanupStack::PopAndDestroy(&socketServer); - + CleanupStack::PopAndDestroy(4, &socket1); // socket1, socket2, socket3, smsMessage return TestStepResult() ; } - TVerdict CTestCommandMessages::doTestStepL() /** * Test first transmit of a message, then send Command message to enable status reporting to previously sent @@ -683,12 +549,8 @@ */ { INFO_PRINTF1(_L("Test Command messages")); - - RSocketServ socketServer; - PrepareRegTestLC(socketServer, 5); - RSocket socket; - iSmsStackTestUtils->OpenSmsSocketLC(socketServer,socket,ESmsAddrRecvAny); + iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,socket,ESmsAddrRecvAny); _LIT(KTest7bitMsg,"test message, length 23"); //7 bits test message, length 23 characters @@ -697,8 +559,7 @@ iServiceCenterNumber=KSoneraSC; TSmsDataCodingScheme::TSmsAlphabet alphabet=TSmsDataCodingScheme::ESmsAlphabet7Bit; - CSmsMessage* smsMessage=CreateSmsMessageL(KTest7bitMsg,alphabet); - CleanupStack::PushL(smsMessage); + CSmsMessage* smsMessage=CreateSmsMessageLC(KTest7bitMsg,alphabet); INFO_PRINTF2(_L("Destination number:..... %S"),&iTelephoneNumber); INFO_PRINTF2(_L("ServiceCenter number:... %S"),&iServiceCenterNumber); @@ -731,75 +592,54 @@ telephoneNumber.Copy( KPekka ); RecvStatusReportL(telephoneNumber, socket); - CleanupStack::PopAndDestroy(2); // socket, smsMessage - CleanupStack::PopAndDestroy(&socketServer); - + CleanupStack::PopAndDestroy(2, &socket); // socket, smsMessage return TestStepResult() ; } - TVerdict CTestSimpleRx::doTestStepL() /** * Test a simple Receive of a single TPDU containing a simple text */ { INFO_PRINTF1(_L("Test Simple Rx SMS with Client ACK")); - - RSocketServ socketServer; - PrepareRegTestLC(socketServer, 6); - RSocket socket; TSmsAddr smsaddr; smsaddr.SetSmsAddrFamily(ESmsAddrMatchText); smsaddr.SetTextMatch(_L8("test message, 8b")); - iSmsStackTestUtils->OpenSmsSocketLC(socketServer, socket, smsaddr); + iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer, socket, smsaddr); RSocket socketRecvAny; - iSmsStackTestUtils->OpenSmsSocketLC(socketServer, socketRecvAny, ESmsAddrRecvAny); + iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer, socketRecvAny, ESmsAddrRecvAny); INFO_PRINTF1(_L("waiting for incoming SMS No. 1...") ); WaitForRecvL(socket); CSmsMessage* smsMessage = RecvSmsFailedL(socket); - - INFO_PRINTF1(_L("incoming SMS") ); - CleanupStack::PushL(smsMessage); _LIT(KTestMsg1,"Test message, 8bits, length 30"); TestSmsContentsL(smsMessage,KTestMsg1); - CleanupStack::PopAndDestroy(smsMessage); INFO_PRINTF1(_L("waiting for incoming SMS No. 2...") ); WaitForRecvL(socketRecvAny); smsMessage = RecvSmsFailedL(socketRecvAny); - - INFO_PRINTF1(_L("incoming SMS") ); - CleanupStack::PushL(smsMessage); _LIT(KTestMsg2,"Sest message, 8bits, length 30"); TestSmsContentsL(smsMessage,KTestMsg2); - CleanupStack::PopAndDestroy(3); // socket, socketRecvAny, smsMessage - CleanupStack::PopAndDestroy(&socketServer); - + CleanupStack::PopAndDestroy(3, &socket); // socket, socketRecvAny, smsMessage return TestStepResult() ; } - TVerdict CTest7bitMessTest::doTestStepL() /** * Test a simple Transmit and Receive of a single TPDU containing a single character */ { INFO_PRINTF1(_L("Test Tx and Rx 7 bit SMS with Client ACK")); - - RSocketServ socketServer; - PrepareRegTestLC(socketServer, 7); - RSocket socket; - iSmsStackTestUtils->OpenSmsSocketLC(socketServer,socket,ESmsAddrRecvAny); + iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,socket,ESmsAddrRecvAny); _LIT(KTest7bitMsg,"test message, length 23"); //7 bits test message, length 23 characters //Set destination and SC numbers @@ -807,8 +647,7 @@ iServiceCenterNumber=KSoneraSC; TSmsDataCodingScheme::TSmsAlphabet alphabet=TSmsDataCodingScheme::ESmsAlphabet7Bit; - CSmsMessage* smsMessage=CreateSmsMessageL(KTest7bitMsg,alphabet); - CleanupStack::PushL(smsMessage); + CSmsMessage* smsMessage=CreateSmsMessageLC(KTest7bitMsg,alphabet); //Set status report request CSmsSubmit& submitPdu=(CSmsSubmit&)smsMessage->SmsPDU(); @@ -821,36 +660,25 @@ SendSmsL(smsMessage,socket); CleanupStack::PopAndDestroy(smsMessage); - INFO_PRINTF1(_L("waiting for incoming SMS...") ); WaitForRecvL(socket); smsMessage = RecvSmsL(socket); - - INFO_PRINTF1(_L("incoming SMS") ); - CleanupStack::PushL(smsMessage); + TestSmsContentsL(smsMessage,KTest7bitMsg); - CleanupStack::PopAndDestroy(2); // socket, smsMessage - CleanupStack::PopAndDestroy(&socketServer); - - return TestStepResult() ; + CleanupStack::PopAndDestroy(2, &socket); // socket, smsMessage + return TestStepResult() ; } - TVerdict CTestClassMessages::doTestStepL() /** * Test Send and receive messages of different classes * TODO - why do I have to send a class 2 sms before the class 1 and 3 sms */ { - INFO_PRINTF1(_L("Send and receive messages with different classes")); - - RSocketServ socketServer; - PrepareRegTestLC(socketServer, 8); - RSocket socket; - iSmsStackTestUtils->OpenSmsSocketLC(socketServer,socket,ESmsAddrRecvAny); + iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,socket,ESmsAddrRecvAny); iTelephoneNumber=KPekka; iServiceCenterNumber=KSoneraSC; @@ -875,12 +703,9 @@ SendAndRecvTestMessageL(Class3msg,socket); CleanupStack::PopAndDestroy(&socket); - CleanupStack::PopAndDestroy(&socketServer); - return TestStepResult() ; } - TVerdict CTestRxConcatenated::doTestStepL() /** * Test reception of a concatenated SMS message spanning 3 TPDUs @@ -888,46 +713,38 @@ */ { INFO_PRINTF1(_L("Test Rx Three Part Concatenated Message")); - - RSocketServ socketServer; - PrepareRegTestLC(socketServer, 9); - RSocket socket; - iSmsStackTestUtils->OpenSmsSocketLC(socketServer,socket,ESmsAddrRecvAny); - - INFO_PRINTF1(_L("waiting for incoming SMS...") ); + iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,socket,ESmsAddrRecvAny); + WaitForRecvL(socket); CSmsMessage* smsMessage = RecvSmsL(socket); CleanupStack::PushL(smsMessage); - INFO_PRINTF1(_L("incoming SMS") ); _LIT(KLongText,"3 PDU test SMS message. " -L"3 PDU test SMS message. " -L"3 PDU test SMS message. " -L"3 PDU test SMS message. " -L"3 PDU test SMS message. " -L"3 PDU test SMS message. " -L"3 PDU test SMS message. " -L"3 PDU test SMS message. " -L"3 PDU test SMS message. " -L"3 PDU test SMS message. " -L"3 PDU test SMS message. " -L"3 PDU test SMS message. " -L"3 PDU test SMS message. " -L"3 PDU test SMS message. " -L"3 PDU test SMS message. " -L"3 PDU test SMS message. " -L"3 PDU test SMS message. " -L"The End."); + L"3 PDU test SMS message. " + L"3 PDU test SMS message. " + L"3 PDU test SMS message. " + L"3 PDU test SMS message. " + L"3 PDU test SMS message. " + L"3 PDU test SMS message. " + L"3 PDU test SMS message. " + L"3 PDU test SMS message. " + L"3 PDU test SMS message. " + L"3 PDU test SMS message. " + L"3 PDU test SMS message. " + L"3 PDU test SMS message. " + L"3 PDU test SMS message. " + L"3 PDU test SMS message. " + L"3 PDU test SMS message. " + L"3 PDU test SMS message. " + L"The End."); + TestSmsContentsL(smsMessage,KLongText); - CleanupStack::PopAndDestroy(2); // socket, smsMessage - CleanupStack::PopAndDestroy(&socketServer); - + CleanupStack::PopAndDestroy(2, &socket); // socket, smsMessage return TestStepResult() ; } - TVerdict CTestRxDuplicate::doTestStepL() /** * Test reception of a concatenated SMS message spanning 3 TPDUs @@ -936,46 +753,38 @@ */ { INFO_PRINTF1(_L("Test Rx Three Part Concatenated Message with 2nd TPDU Duplicated")); - - RSocketServ socketServer; - PrepareRegTestLC(socketServer, 10); - RSocket socket; - iSmsStackTestUtils->OpenSmsSocketLC(socketServer,socket,ESmsAddrRecvAny); - - INFO_PRINTF1(_L("waiting for incoming SMS...") ); + iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,socket,ESmsAddrRecvAny); + WaitForRecvL(socket); CSmsMessage* smsMessage = RecvSmsL(socket); CleanupStack::PushL(smsMessage); - INFO_PRINTF1(_L("incoming SMS") ); _LIT(KLongText,"3 PDU test SMS message. " -L"3 PDU test SMS message. " -L"3 PDU test SMS message. " -L"3 PDU test SMS message. " -L"3 PDU test SMS message. " -L"3 PDU test SMS message. " -L"3 PDU test SMS message. " -L"3 PDU test SMS message. " -L"3 PDU test SMS message. " -L"3 PDU test SMS message. " -L"3 PDU test SMS message. " -L"3 PDU test SMS message. " -L"3 PDU test SMS message. " -L"3 PDU test SMS message. " -L"3 PDU test SMS message. " -L"3 PDU test SMS message. " -L"3 PDU test SMS message. " -L"The End."); + L"3 PDU test SMS message. " + L"3 PDU test SMS message. " + L"3 PDU test SMS message. " + L"3 PDU test SMS message. " + L"3 PDU test SMS message. " + L"3 PDU test SMS message. " + L"3 PDU test SMS message. " + L"3 PDU test SMS message. " + L"3 PDU test SMS message. " + L"3 PDU test SMS message. " + L"3 PDU test SMS message. " + L"3 PDU test SMS message. " + L"3 PDU test SMS message. " + L"3 PDU test SMS message. " + L"3 PDU test SMS message. " + L"3 PDU test SMS message. " + L"The End."); + TestSmsContentsL(smsMessage,KLongText); - CleanupStack::PopAndDestroy(2); // socket, smsMessage - CleanupStack::PopAndDestroy(&socketServer); - + CleanupStack::PopAndDestroy(2, &socket); // socket, smsMessage return TestStepResult() ; } - TVerdict CTestRxRingToneA::doTestStepL() /** * Test reception of a concatenated SMS Ringing Tone message spanning 3 TPDUs @@ -983,18 +792,12 @@ */ { INFO_PRINTF1(_L("Test Rx Three Part Concatenated SMS Ringing Tone Message")); - - RSocketServ socketServer; - PrepareRegTestLC(socketServer, 11); - RSocket socket; - iSmsStackTestUtils->OpenSmsSocketLC(socketServer,socket,ESmsAddrRecvAny); - - INFO_PRINTF1(_L("waiting for incoming SMS...") ); + iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,socket,ESmsAddrRecvAny); + WaitForRecvL(socket); CSmsMessage* smsMessage = RecvSmsL(socket); CleanupStack::PushL(smsMessage); - INFO_PRINTF1(_L("incoming SMS") ); const TUint16 KRingingTonePDUA[]= { 0x02, 0x4A, 0x3A, 0x75, 0x09, 0x85, 0x91, 0xA5, 0xB9, 0x95, @@ -1033,65 +836,53 @@ TPtrC ringingTonePDUA(KRingingTonePDUA,sizeof(KRingingTonePDUA)/sizeof(TUint16)); TestSmsContentsL(smsMessage,ringingTonePDUA); - CleanupStack::PopAndDestroy(2); // socket, smsMessage - CleanupStack::PopAndDestroy(&socketServer); - - return TestStepResult() ; + CleanupStack::PopAndDestroy(2, &socket); // socket, smsMessage + return TestStepResult() ; } - TVerdict CTestTxRxConcatenated::doTestStepL() /** * Test transmition and reception of a concatenated SMS message spanning 3 TPDUs */ - { INFO_PRINTF1(_L("Test Tx and Rx SMS with 3 PDU message")); - - RSocketServ socketServer; - PrepareRegTestLC(socketServer, 12); - RSocket socket; - iSmsStackTestUtils->OpenSmsSocketLC(socketServer,socket,ESmsAddrRecvAny); + iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,socket,ESmsAddrRecvAny); _LIT(KLongText,"3 PDU test SMS message. " -L"3 PDU test SMS message. " -L"3 PDU test SMS message. " -L"3 PDU test SMS message. " -L"3 PDU test SMS message. " -L"3 PDU test SMS message. " -L"3 PDU test SMS message. " -L"3 PDU test SMS message. " -L"3 PDU test SMS message. " -L"3 PDU test SMS message. " -L"3 PDU test SMS message. " -L"3 PDU test SMS message. " -L"3 PDU test SMS message. " -L"3 PDU test SMS message. " -L"3 PDU test SMS message. " -L"3 PDU test SMS message. " -L"3 PDU test SMS message. " -L"The End."); + L"3 PDU test SMS message. " + L"3 PDU test SMS message. " + L"3 PDU test SMS message. " + L"3 PDU test SMS message. " + L"3 PDU test SMS message. " + L"3 PDU test SMS message. " + L"3 PDU test SMS message. " + L"3 PDU test SMS message. " + L"3 PDU test SMS message. " + L"3 PDU test SMS message. " + L"3 PDU test SMS message. " + L"3 PDU test SMS message. " + L"3 PDU test SMS message. " + L"3 PDU test SMS message. " + L"3 PDU test SMS message. " + L"3 PDU test SMS message. " + L"The End."); //Set destination and SC numbers iTelephoneNumber=KRegTestNumber; iServiceCenterNumber=KVodafoneSC; - TSmsDataCodingScheme::TSmsAlphabet alphabet=TSmsDataCodingScheme::ESmsAlphabet7Bit;//changed to 7 bits -// CSmsMessage* smsMessage=CreateSmsMessageL(KLongText,alphabet); + TSmsDataCodingScheme::TSmsAlphabet alphabet=TSmsDataCodingScheme::ESmsAlphabet7Bit; CSmsMessage* smsMessage=CreateSmsWithStatusReportReqL(KLongText,alphabet); CleanupStack::PushL(smsMessage); SendSmsL(smsMessage,socket); CleanupStack::PopAndDestroy(smsMessage); - INFO_PRINTF1(_L("waiting for incoming SMS...") ); WaitForRecvL(socket); smsMessage = RecvSmsL(socket); - - INFO_PRINTF1(_L("incoming SMS")); - CleanupStack::PushL(smsMessage); + TestSmsContentsL(smsMessage,KLongText); CleanupStack::PopAndDestroy(smsMessage); @@ -1101,74 +892,55 @@ // TX & RX 8 bit conc msg alphabet=TSmsDataCodingScheme::ESmsAlphabet8Bit; - smsMessage=CreateSmsMessageL(KLongText,alphabet); - - CleanupStack::PushL(smsMessage); + smsMessage=CreateSmsMessageLC(KLongText,alphabet); + SendSmsL(smsMessage,socket); CleanupStack::PopAndDestroy(smsMessage); - INFO_PRINTF1(_L("waiting for incoming SMS...")); WaitForRecvL(socket); smsMessage = RecvSmsL(socket); - - INFO_PRINTF1(_L("incoming SMS") ); - CleanupStack::PushL(smsMessage); + TestSmsContentsL(smsMessage,KLongText); CleanupStack::PopAndDestroy(smsMessage); // TX & RX 16 bit conc msg _LIT(KLongText2,"3 PDU test SMS message. " -L"3 PDU test SMS message. " -L"3 PDU test SMS message. " -L"3 PDU test SMS message. " -L"3 PDU test SMS message. " -L"The End."); + L"3 PDU test SMS message. " + L"3 PDU test SMS message. " + L"3 PDU test SMS message. " + L"3 PDU test SMS message. " + L"The End."); alphabet=TSmsDataCodingScheme::ESmsAlphabetUCS2; - smsMessage=CreateSmsMessageL(KLongText2,alphabet); - - CleanupStack::PushL(smsMessage); + smsMessage=CreateSmsMessageLC(KLongText2,alphabet); + SendSmsL(smsMessage,socket); CleanupStack::PopAndDestroy(smsMessage); - INFO_PRINTF1(_L("waiting for incoming SMS...") ); WaitForRecvL(socket); smsMessage = RecvSmsL(socket); - - INFO_PRINTF1(_L("incoming SMS")); - CleanupStack::PushL(smsMessage); + TestSmsContentsL(smsMessage,KLongText2); - CleanupStack::PopAndDestroy(2); // socket, smsMessage - CleanupStack::PopAndDestroy(&socketServer); - - return TestStepResult(); + CleanupStack::PopAndDestroy(2, &socket); // socket, smsMessage + return TestStepResult(); } - TVerdict CTestParamStorage::doTestStepL() /** * Test retrieving and storing the sms parameters */ { INFO_PRINTF1(_L("Test the parameter storage")); - - RSocketServ socketServer; - PrepareRegTestLC(socketServer, 13); - - TInt ret(KErrNone); - TRequestStatus status; - -// -// Retrieve SMS parameters -// - // Open the socket for SIM operations - RSocket socket; - iSmsStackTestUtils->OpenSmsSocketLC(socketServer,socket,ESmsAddrLocalOperation); - - RSmsSocketReadStream readstream(socket); + // Open the socket for SIM operations + RSocket socket; + iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer, socket, ESmsAddrLocalOperation); + + // + // Retrieve SMS parameters + // //Create the smspList CMobilePhoneSmspList* smspList = CMobilePhoneSmspList::NewL(); @@ -1178,12 +950,16 @@ User::After(2000000); // Make read SMS params request to the SMS Stack. + TRequestStatus status; + socket.Ioctl(KIoctlReadSmsParams,status,NULL, KSolSmsProv); INFO_PRINTF1(_L("waiting for SMS parameters...")); User::WaitForRequest(status); TEST(status.Int() == KErrNone); // Read list from stream and make acknowledgement to the SMS Stack + RSmsSocketReadStream readstream(socket); + readstream >> *smspList; socket.Ioctl(KIoctlCompleteReadSmsParams, status, NULL,KSolSmsProv); User::WaitForRequest(status); @@ -1191,9 +967,9 @@ CleanupStack::PopAndDestroy(smspList); -// -// Store SMS parameters -// + // + // Store SMS parameters + // smspList=CMobilePhoneSmspList::NewL(); CleanupStack::PushL(smspList); @@ -1214,7 +990,7 @@ // Add 6 entries to the list TInt i = 0; - for(i=0; i<6; i++) + for(i=0; i<6; ++i) { entryToTsy.iIndex = i; smspList->AddEntryL(entryToTsy); @@ -1223,7 +999,7 @@ INFO_PRINTF1(_L("storing the SMS parameters...")); // Write parameter list to the stream and make write SMS parameters request to the SMS Stack. - ret = iSmsStackTestUtils->StoreParamsL(*smspList,socket,EFalse); + TInt ret = iSmsStackTestUtils->StoreParamsL(*smspList,socket,EFalse); TEST_CHECKL(ret,KErrArgument,_L("Status values doesn't match")); // Writing failed because SIM tsy's SMS parameter store can contain only 5 SMSP sets. @@ -1234,9 +1010,9 @@ ret = iSmsStackTestUtils->StoreParamsL(*smspList,socket,EFalse); TEST(ret == KErrNone); -// -// Retrieve SMS parameters again -// + // + // Retrieve SMS parameters again + // CMobilePhoneSmspList* smspList2=CMobilePhoneSmspList::NewL(); CleanupStack::PushL(smspList2); @@ -1245,7 +1021,7 @@ socket.CancelIoctl(); User::WaitForRequest(status); - // originl code was + // originl code was // GLOBAL_CHECKPOINT_CODE(status.Int()); // thus always assumes that the cancelling will be missed, // but with the change due defect (DEF40029) to smsppara.cpp, @@ -1270,9 +1046,9 @@ CleanupStack::PopAndDestroy(2); //smspList,smspList2 -// -// Store SMS parameters again -// + // + // Store SMS parameters again + // smspList=CMobilePhoneSmspList::NewL(); CleanupStack::PushL(smspList); @@ -1307,32 +1083,23 @@ ret = iSmsStackTestUtils->StoreParamsL(*smspList,socket,EFalse); TEST(ret == KErrNone); - CleanupStack::PopAndDestroy(2); // socket,smspList - CleanupStack::PopAndDestroy(&socketServer); - - return TestStepResult(); + CleanupStack::PopAndDestroy(2, &socket); // socket,smspList + return TestStepResult(); } - TVerdict CTestSmsStore::doTestStepL() /** * Test Sms message storage */ { INFO_PRINTF1(_L("Test the SMS storage")); - - RSocketServ socketServer; - PrepareRegTestLC(socketServer, 14); - - // Open the socket RSocket socket; - iSmsStackTestUtils->OpenSmsSocketLC(socketServer,socket,ESmsAddrRecvAny); + iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,socket,ESmsAddrRecvAny); // Enumerate messages RPointerArray messages; CleanupResetAndDestroyPushL(messages); ReadSmsStoreL(socket, messages); -// const TInt beforeCount = messages.Count(); const CSmsMessage* message = messages[0]; @@ -1353,8 +1120,7 @@ // Create and store the message _LIT(KStoreMsg1,"SIM TEST MESSAGE 1"); TSmsDataCodingScheme::TSmsAlphabet alphabet=TSmsDataCodingScheme::ESmsAlphabet7Bit; - CSmsMessage* smsmessage=CreateSmsMessageL(KStoreMsg1,alphabet); - CleanupStack::PushL(smsmessage); + CSmsMessage* smsmessage=CreateSmsMessageLC(KStoreMsg1,alphabet); smsmessage->SetStorage(CSmsMessage::ESmsSIMStorage); WriteSmsToSimL(*smsmessage, socket); @@ -1363,12 +1129,10 @@ // Create and store another message _LIT(KStoreMsg2,"ME TEST MESSAGE 2"); alphabet=TSmsDataCodingScheme::ESmsAlphabetUCS2; - smsmessage=CreateSmsMessageL(KStoreMsg2,alphabet); - CleanupStack::PushL(smsmessage); + smsmessage=CreateSmsMessageLC(KStoreMsg2,alphabet); smsmessage->SetStorage(CSmsMessage::ESmsPhoneStorage); WriteSmsToSimL(*smsmessage, socket); - CleanupStack::PopAndDestroy(smsmessage); // Enumerate messages @@ -1379,31 +1143,22 @@ CleanupStack::PopAndDestroy(&messages); CleanupStack::PopAndDestroy(&socket); - CleanupStack::PopAndDestroy(&socketServer); - - return TestStepResult() ; + return TestStepResult() ; } - TVerdict CTestSmsStoreList::doTestStepL() /** * Test Sms message storage */ { INFO_PRINTF1(_L("Test the SMS storage - read SmsList")); - - RSocketServ socketServer; - PrepareRegTestLC(socketServer, 15); - - // Open the socket for SIM operations RSocket socket; - iSmsStackTestUtils->OpenSmsSocketLC(socketServer,socket,ESmsAddrRecvAny); + iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,socket,ESmsAddrRecvAny); // Enumerate messages RPointerArray messages; CleanupResetAndDestroyPushL(messages); ReadSmsStoreL(socket, messages); -// const TInt beforeCount = messages.Count(); const CSmsMessage* message = messages[1]; @@ -1425,39 +1180,31 @@ _LIT(KStoreMsg1,"SIM TEST MESSAGE 1"); iTelephoneNumber=KOther; TSmsDataCodingScheme::TSmsAlphabet alphabet=TSmsDataCodingScheme::ESmsAlphabet7Bit; - CSmsMessage* smsmessage=CreateSmsMessageL(KStoreMsg1,alphabet); + CSmsMessage* smsmessage=CreateSmsMessageLC(KStoreMsg1,alphabet); smsmessage->SetStorage(CSmsMessage::ESmsSIMStorage); smsmessage->SetStatus(NMobileSmsStore::EStoredMessageUnsent); - CleanupStack::PushL(smsmessage); - WriteSmsToSimL(*smsmessage, socket); CleanupStack::PopAndDestroy(smsmessage); // Create and store another message _LIT(KStoreMsg2,"COMB TEST MESSAGE 2"); alphabet=TSmsDataCodingScheme::ESmsAlphabetUCS2; - smsmessage=CreateSmsMessageL(KStoreMsg2,alphabet); + smsmessage=CreateSmsMessageLC(KStoreMsg2,alphabet); smsmessage->SetStorage(CSmsMessage::ESmsCombinedStorage); smsmessage->SetStatus(NMobileSmsStore::EStoredMessageUnsent); - CleanupStack::PushL(smsmessage); - WriteSmsToSimL(*smsmessage, socket); CleanupStack::PopAndDestroy(smsmessage); // Create and store third message _LIT(KStoreMsg3,"ME TEST MESSAGE 3"); alphabet=TSmsDataCodingScheme::ESmsAlphabet8Bit; - smsmessage=CreateSmsMessageL(KStoreMsg3,alphabet); + smsmessage=CreateSmsMessageLC(KStoreMsg3,alphabet); smsmessage->SetStorage(CSmsMessage::ESmsPhoneStorage); smsmessage->SetStatus(NMobileSmsStore::EStoredMessageUnsent); - CleanupStack::PushL(smsmessage); - WriteSmsToSimL(*smsmessage, socket); - - CleanupStack::PopAndDestroy(smsmessage); // Enumerate messages @@ -1469,30 +1216,21 @@ CleanupStack::PopAndDestroy(&messages); CleanupStack::PopAndDestroy(&socket); - CleanupStack::PopAndDestroy(&socketServer); - return TestStepResult() ; } - TVerdict CTestDeleteSms::doTestStepL() /** * Try to delete message without enumerating the store before it. */ { INFO_PRINTF1(_L("Test deleting message from SMS storage")); - - RSocketServ socketServer; - PrepareRegTestLC(socketServer, 15); //script number can be this! - - // Open the socket RSocket socket; - iSmsStackTestUtils->OpenSmsSocketLC(socketServer,socket,ESmsAddrRecvAny); + iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,socket,ESmsAddrRecvAny); _LIT(KStoreMsg1,"HELLO CHRIS"); TSmsDataCodingScheme::TSmsAlphabet alphabet=TSmsDataCodingScheme::ESmsAlphabet7Bit; - CSmsMessage* smsmessage=CreateSmsMessageL(KStoreMsg1,alphabet); - CleanupStack::PushL(smsmessage); + CSmsMessage* smsmessage=CreateSmsMessageLC(KStoreMsg1,alphabet); //Try to delete the message without enumerating first! TRequestStatus status; @@ -1501,19 +1239,102 @@ writestream << *smsmessage; writestream.CommitL(); - socket.Ioctl(KIoctlDeleteSmsMessage, status, NULL, KSolSmsProv); - User::WaitForRequest(status); - - INFO_PRINTF2(_L("Delete Sms - returned %d"), status.Int()); + TBool tryAgain = ETrue; + TInt attempts (0); + TInt maxRetries = 3; + + // Delete messages from store. If it fails with KErrNotReady wait for 3 seconds to + // allow sms protocol to fully load and repeat + while( tryAgain && attempts++ < maxRetries ) + { + socket.Ioctl(KIoctlDeleteSmsMessage, status, NULL, KSolSmsProv); + User::WaitForRequest(status); + INFO_PRINTF2(_L("Delete messages from store returned [status=%d]"), status.Int()); + + if ( status.Int() == KErrNotReady ) + { + INFO_PRINTF1(_L("Trying to delete again... ")); + User::After(3000000); + } + else + { + tryAgain = EFalse; + } + } TEST(status.Int() == KErrArgument); - CleanupStack::PopAndDestroy(2); //socket, smsmessage - CleanupStack::PopAndDestroy(&socketServer); - - return TestStepResult() ; + CleanupStack::PopAndDestroy(2, &socket); //socket, smsmessage + return TestStepResult() ; } +/** + * Tests the TSmsAddr class + * + * @return A TVerdict test result. + */ +TVerdict CTestSmsAddr::doTestStepL() + { + TSmsAddr addr1; + + INFO_PRINTF1(_L("Test default values ...")); + + TEST(addr1.SmsAddrFamily() == ESmsAddrUnbound); + + INFO_PRINTF1(_L("Test address family set/get and dual-SIM aware flag ...")); + + addr1.SetSmsAddrFamily(ESmsAddrLocalOperation); + TEST(addr1.SmsAddrFamily() == ESmsAddrLocalOperation); + + + addr1.SetSmsAddrFamily(ESmsAddrEmail); + TEST(addr1.SmsAddrFamily() == ESmsAddrEmail); + + INFO_PRINTF1(_L("Test identifier match set/get ...")); + + addr1.SetSmsAddrFamily(ESmsAddrMatchIEI); + addr1.SetIdentifierMatch(CSmsInformationElement::ESmsIEIApplicationPortAddressing8Bit); + TEST(addr1.IdentifierMatch() == CSmsInformationElement::ESmsIEIApplicationPortAddressing8Bit); + + INFO_PRINTF1(_L("Test text match set/get ...")); + + addr1.SetSmsAddrFamily(ESmsAddrMatchText); + addr1.SetTextMatch(_L8("test message, len")); + TEST(addr1.TextMatch().CompareF(_L8("test message, len")) == 0); + + addr1.SetTextMatch(_L8("test message this is max:extra")); + TEST(addr1.TextMatch().CompareF(_L8("test message this is max")) == 0); + + INFO_PRINTF1(_L("Test compare ...")); + + TSmsAddr addr2; + addr2.SetSmsAddrFamily(ESmsAddrMatchText); + addr2.SetTextMatch(_L8("test message, len")); + + TSmsAddr addr3; + addr3.SetSmsAddrFamily(ESmsAddrMatchText); + addr3.SetTextMatch(_L8("test message, len")); + + TEST((addr2 == addr3)); + + addr3.SetTextMatch(_L8("diff test message")); + TEST(!(addr2 == addr3)); + + addr2.SetSmsAddrFamily(ESmsAddrMatchIEI); + addr2.SetIdentifierMatch(CSmsInformationElement::ESmsIEIApplicationPortAddressing8Bit); + + TEST(!(addr2 == addr3)); + + addr3.SetSmsAddrFamily(ESmsAddrMatchIEI); + addr3.SetIdentifierMatch(CSmsInformationElement::ESmsIEIApplicationPortAddressing8Bit); + + TEST((addr2 == addr3)); + + addr2.SetIdentifierMatch(CSmsInformationElement::ESmsIEIApplicationPortAddressing16Bit); + TEST(!(addr2 == addr3)); + + return TestStepResult(); + } TVerdict CTestSocketBinding::doTestStepL() /** @@ -1521,19 +1342,15 @@ */ { INFO_PRINTF1(_L("Test Open & Bind the Socket")); - - RSocketServ socketServer; - PrepareRegTestLC(socketServer, 16); - RSocket socket1; RSocket socket2; - TInt ret1=socket1.Open(socketServer,KSMSAddrFamily,KSockDatagram,KSMSDatagramProtocol); + TInt ret1=socket1.Open(iSocketServer,KSMSAddrFamily,KSockDatagram,KSMSDatagramProtocol); TEST(ret1 == KErrNone); CleanupClosePushL(socket1); TSmsAddr smsaddr1; - TInt ret2=socket2.Open(socketServer,KSMSAddrFamily,KSockDatagram,KSMSDatagramProtocol); + TInt ret2=socket2.Open(iSocketServer,KSMSAddrFamily,KSockDatagram,KSMSDatagramProtocol); TEST(ret2 == KErrNone); CleanupClosePushL(socket2); TSmsAddr smsaddr2; @@ -1621,32 +1438,26 @@ CleanupStack::Pop(&socket2); CleanupStack::Pop(&socket1); - CleanupStack::PopAndDestroy(&socketServer); - - INFO_PRINTF1(_L("All bindings ok!")); + INFO_PRINTF1(_L("All bindings ok!")); return TestStepResult() ; } - TVerdict CTestSmsEventLogger::doTestStepL() /** * Test SMS event logger */ { INFO_PRINTF1(_L("Test SMS event logger")); - - RSocketServ socketServer; - PrepareRegTestLC(socketServer, 17); - RSocket socket; - iSmsStackTestUtils->OpenSmsSocketLC(socketServer,socket,ESmsAddrRecvAny); + iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,socket,ESmsAddrRecvAny); CLogEvent* logEvent=CLogEvent::NewL(); CleanupStack::PushL(logEvent); -// -// Test logging of sending and receiving events -// + // + // Test logging of sending and receiving events + // + //Set destination and SC numbers iTelephoneNumber=KPekka; iServiceCenterNumber=KRadiolinjaSC; @@ -1654,8 +1465,7 @@ _LIT(KTest7bitMsg,"test message, length 23"); //7 bits test message, length 23 characters TSmsDataCodingScheme::TSmsAlphabet alphabet=TSmsDataCodingScheme::ESmsAlphabet7Bit; - CSmsMessage* sendSmsMessage=CreateSmsMessageL(KTest7bitMsg,alphabet); - CleanupStack::PushL(sendSmsMessage); + CSmsMessage* sendSmsMessage=CreateSmsMessageLC(KTest7bitMsg,alphabet); //Send SMS-SUBMIT SendSmsL(sendSmsMessage,socket); @@ -1769,9 +1579,9 @@ (dateTime.Second() != 18) ) TEST(KErrArgument); -// -// Test logging when senging fails. -// + // + // Test logging when senging fails. + // //Send SMS-SUBMIT SendSmsErrorL(sendSmsMessage,socket); @@ -1791,27 +1601,27 @@ CleanupStack::PopAndDestroy(2); //sendSmsMessage, receiveSmsMessage -// -// Test event logging when an intermittent concatenated message status report received. -// + // + // Test event logging when an intermittent concatenated message status report received. + // _LIT(KLongText,"3 PDU test SMS message. " -L"3 PDU test SMS message. " -L"3 PDU test SMS message. " -L"3 PDU test SMS message. " -L"3 PDU test SMS message. " -L"3 PDU test SMS message. " -L"3 PDU test SMS message. " -L"3 PDU test SMS message. " -L"3 PDU test SMS message. " -L"3 PDU test SMS message. " -L"3 PDU test SMS message. " -L"3 PDU test SMS message. " -L"3 PDU test SMS message. " -L"3 PDU test SMS message. " -L"3 PDU test SMS message. " -L"3 PDU test SMS message. " -L"3 PDU test SMS message. " -L"The End."); + L"3 PDU test SMS message. " + L"3 PDU test SMS message. " + L"3 PDU test SMS message. " + L"3 PDU test SMS message. " + L"3 PDU test SMS message. " + L"3 PDU test SMS message. " + L"3 PDU test SMS message. " + L"3 PDU test SMS message. " + L"3 PDU test SMS message. " + L"3 PDU test SMS message. " + L"3 PDU test SMS message. " + L"3 PDU test SMS message. " + L"3 PDU test SMS message. " + L"3 PDU test SMS message. " + L"3 PDU test SMS message. " + L"3 PDU test SMS message. " + L"The End."); //Set destination and SC numbers iTelephoneNumber=KRegTestNumber; @@ -1865,10 +1675,8 @@ (dateTime.Second() != 18) ) TEST(KErrArgument); - CleanupStack::PopAndDestroy(4); // sendSmsMessage, receiveSmsMessage, logEvent, socket - CleanupStack::PopAndDestroy(&socketServer); - - return TestStepResult() ; + CleanupStack::PopAndDestroy(4, &socket); // sendSmsMessage, receiveSmsMessage, logEvent, socket + return TestStepResult() ; } @@ -1879,12 +1687,10 @@ * message. Buffer size of 500 => 4 PDU message */ { + RSocket socket; + iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,socket,ESmsAddrRecvAny); + INFO_PRINTF1(_L("Testing tx & rx while changing the SMS Bearer")); - - RSocketServ socketServer; - PrepareRegTestLC(socketServer, 18); - - iTelephoneNumber=KPekka; iServiceCenterNumber=KRadiolinjaSC; //maybe not needed... @@ -1894,25 +1700,16 @@ CleanupStack::PushL(messageBuffer); TPtr bufferPtr=messageBuffer->Des(); FillDes(bufferPtr,KTestMessageBufferSize); - CSmsMessage* smsMessage=CreateSmsMessageL(bufferPtr, - TSmsDataCodingScheme::ESmsAlphabet7Bit); - CleanupStack::PushL(smsMessage); - CSmsMessage* rxSmsMessage=NULL; - - // Open socket - RSocket socket; - iSmsStackTestUtils->OpenSmsSocketLC(socketServer,socket,ESmsAddrRecvAny); - - RMobileSmsMessaging::TMobileSmsBearer smsBearer; + CSmsMessage* smsMessage=CreateSmsMessageLC(bufferPtr, TSmsDataCodingScheme::ESmsAlphabet7Bit); INFO_PRINTF1(_L("Testing bearer change to GPRS only setting")); // Send message & change bearer - smsBearer=RMobileSmsMessaging::ESmsBearerPacketOnly; - iSmsStackTestUtils->SendSmsAndChangeBearerL(smsMessage,socket, smsBearer); + RMobileSmsMessaging::TMobileSmsBearer smsBearer = RMobileSmsMessaging::ESmsBearerPacketOnly; + iSmsStackTestUtils->SendSmsAndChangeBearerL(smsMessage, socket, smsBearer); // Receive message - rxSmsMessage=RecvSmsL(socket); + CSmsMessage* rxSmsMessage = RecvSmsL(socket); CleanupStack::PushL(rxSmsMessage); TestSmsContentsL(rxSmsMessage,bufferPtr); CleanupStack::PopAndDestroy(rxSmsMessage); // rxSmsMessage @@ -1920,8 +1717,8 @@ INFO_PRINTF1(_L("Testing bearer change to CSD only setting")); // Send message & change bearer - smsBearer=RMobileSmsMessaging::ESmsBearerCircuitOnly; - iSmsStackTestUtils->SendSmsAndChangeBearerL(smsMessage,socket, smsBearer); + smsBearer = RMobileSmsMessaging::ESmsBearerCircuitOnly; + iSmsStackTestUtils->SendSmsAndChangeBearerL(smsMessage, socket, smsBearer); // Receive message rxSmsMessage=RecvSmsL(socket); @@ -1933,7 +1730,7 @@ // Send message & change bearer smsBearer=RMobileSmsMessaging::ESmsBearerPacketPreferred; - iSmsStackTestUtils->SendSmsAndChangeBearerL(smsMessage,socket, smsBearer); + iSmsStackTestUtils->SendSmsAndChangeBearerL(smsMessage, socket, smsBearer); // Receive message rxSmsMessage=RecvSmsL(socket); @@ -1953,10 +1750,8 @@ TestSmsContentsL(rxSmsMessage,bufferPtr); CleanupStack::PopAndDestroy(rxSmsMessage); // rxSmsMessage - CleanupStack::PopAndDestroy(3); // messageBuffer, smsMessage, CleanupCloseItem - CleanupStack::PopAndDestroy(&socketServer); - - return TestStepResult() ; + CleanupStack::PopAndDestroy(3, &socket); // messageBuffer, smsMessage, CleanupCloseItem + return TestStepResult() ; } @@ -1966,43 +1761,42 @@ the bearer back to the previous setting. */ { - // Set the initial bearer value in CommDB - RMobileSmsMessaging::TMobileSmsBearer newBearer; - newBearer = RMobileSmsMessaging::ESmsBearerCircuitPreferred; - iSmsStackTestUtils->ChangeBearerL(newBearer); - - // Starts the smsstack - RSocketServ socketServer; - INFO_PRINTF1(_L("Connecting to SocketServer ...")); - TInt ret = socketServer.Connect(KSocketMessageSlots); - CleanupClosePushL(socketServer); - - // Open socket + // Get the initial bearer value from CommDB + RMobileSmsMessaging::TMobileSmsBearer retrievedBearer; + RMobileSmsMessaging::TMobileSmsBearer bearer; + iSmsStackTestUtils->GetBearerL(retrievedBearer); + RSocket socket; - iSmsStackTestUtils->OpenSmsSocketL(socketServer,socket,ESmsAddrRecvAny); + iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,socket,ESmsAddrRecvAny); // Attempt to change the bearer - newBearer = RMobileSmsMessaging::ESmsBearerPacketPreferred; - iSmsStackTestUtils->ChangeBearerL(newBearer); - INFO_PRINTF2(_L("Changing bearer in CommDB global settings to %d"), newBearer); + if (retrievedBearer == RMobileSmsMessaging::ESmsBearerPacketPreferred ) + { + bearer = RMobileSmsMessaging::ESmsBearerCircuitPreferred; + } + else + { + bearer = RMobileSmsMessaging::ESmsBearerPacketPreferred; + } + INFO_PRINTF2(_L("Changing bearer in CommDB global settings to %d"), bearer); + iSmsStackTestUtils->ChangeBearerL(bearer); - // Wait 2 seconds for CSmspSetBearer to complete and revert the bearer - User::After(2000000); + // Wait 5 seconds for CSmspSetBearer to complete and revert the bearer + const TInt delay = 5; + User::After(delay*1000000); // With simtsy, setting the bearer to any value is not // supported, therefore the smsstack should revert // back to the previous bearer setting. - INFO_PRINTF1(_L("Bearer should be reverted back to previous supported setting.")); + INFO_PRINTF2(_L("Bearer should be reverted back to previous supported setting after wait for %d seconds"), delay); INFO_PRINTF1(_L("The initial supported setting is obtained from CommDB.")); - RMobileSmsMessaging::TMobileSmsBearer retrievedBearer; - iSmsStackTestUtils->GetBearerL(retrievedBearer); + iSmsStackTestUtils->GetBearerL(bearer); - TEST(retrievedBearer == RMobileSmsMessaging::ESmsBearerCircuitPreferred); + TESTCHECK(retrievedBearer, bearer, "Checking if the Bearer was reverted back to previous supported setting"); - CleanupStack::PopAndDestroy(); //socketServer + CleanupStack::PopAndDestroy(&socket); return TestStepResult(); - } - + } TVerdict CTestRecvModeChange::doTestStepL() /** @@ -2011,11 +1805,9 @@ */ { INFO_PRINTF1(_L("Testing tx & rx while changing the SMS Receive mode")); - - RSocketServ socketServer; - PrepareRegTestLC(socketServer, 19); - - + RSocket socket; + iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,socket,ESmsAddrRecvAny); + _LIT(KTestMsg1,"test message, 8bits, length 30"); //Set destination and SC numbers @@ -2028,28 +1820,24 @@ CleanupStack::PushL(smsMessage); CSmsMessage* rxSmsMessage=NULL; - // Open socket - RSocket socket; - iSmsStackTestUtils->OpenSmsSocketLC(socketServer,socket,ESmsAddrRecvAny); - // Create comms database object #ifdef SYMBIAN_NON_SEAMLESS_NETWORK_BEARER_MOBILITY - CMDBSession* db = CMDBSession::NewL(KCDVersion1_2); + CMDBSession* db = CMDBSession::NewL(KCDVersion1_2); #else - CMDBSession* db = CMDBSession::NewL(KCDVersion1_1); + CMDBSession* db = CMDBSession::NewL(KCDVersion1_1); #endif CleanupStack::PushL(db); - INFO_PRINTF1(_L("Testing recvMode change to EReceiveModeUnspecified")); + INFO_PRINTF1(_L("Testing recvMode change to EReceiveModeUnspecified")); // Send message & wait a sec(!) SendSmsL(smsMessage,socket); // EReceiveModeUnspecified - CMDBField* smsReceiveModeField = new(ELeave) CMDBField(KCDTIdSMSReceiveMode); - CleanupStack::PushL(smsReceiveModeField); - smsReceiveModeField->SetRecordId(1); //it's GlobalSettingsRecord - *smsReceiveModeField = RMobileSmsMessaging::EReceiveModeUnspecified; - smsReceiveModeField->ModifyL(*db); + CMDBField* smsReceiveModeField = new(ELeave) CMDBField(KCDTIdSMSReceiveMode); + CleanupStack::PushL(smsReceiveModeField); + smsReceiveModeField->SetRecordId(1); //it's GlobalSettingsRecord + *smsReceiveModeField = RMobileSmsMessaging::EReceiveModeUnspecified; + smsReceiveModeField->ModifyL(*db); // Receive message rxSmsMessage=RecvSmsL(socket); @@ -2063,8 +1851,8 @@ SendSmsL(smsMessage,socket); // UnstoredPhoneAck - *smsReceiveModeField = RMobileSmsMessaging::EReceiveUnstoredPhoneAck; - smsReceiveModeField->ModifyL(*db); + *smsReceiveModeField = RMobileSmsMessaging::EReceiveUnstoredPhoneAck; + smsReceiveModeField->ModifyL(*db); // Receive message rxSmsMessage=RecvSmsL(socket); @@ -2078,8 +1866,8 @@ SendSmsL(smsMessage,socket); // UnstoredClientAck - *smsReceiveModeField = RMobileSmsMessaging::EReceiveUnstoredClientAck; - smsReceiveModeField->ModifyL(*db); + *smsReceiveModeField = RMobileSmsMessaging::EReceiveUnstoredClientAck; + smsReceiveModeField->ModifyL(*db); // Receive message rxSmsMessage=RecvSmsL(socket); @@ -2093,8 +1881,8 @@ SendSmsL(smsMessage,socket); // Stored - *smsReceiveModeField = RMobileSmsMessaging::EReceiveStored; - smsReceiveModeField->ModifyL(*db); + *smsReceiveModeField = RMobileSmsMessaging::EReceiveStored; + smsReceiveModeField->ModifyL(*db); // Receive message rxSmsMessage=RecvSmsL(socket); @@ -2108,9 +1896,9 @@ SendSmsL(smsMessage,socket); // Either - *smsReceiveModeField = RMobileSmsMessaging::EReceiveEither; - smsReceiveModeField->ModifyL(*db); - CleanupStack::PopAndDestroy(smsReceiveModeField); + *smsReceiveModeField = RMobileSmsMessaging::EReceiveEither; + smsReceiveModeField->ModifyL(*db); + CleanupStack::PopAndDestroy(smsReceiveModeField); // Receive message rxSmsMessage=RecvSmsL(socket); @@ -2120,25 +1908,18 @@ // Cleanup CleanupStack::PopAndDestroy(3); // smsMessage, socket, db - CleanupStack::PopAndDestroy(&socketServer); - - return TestStepResult() ; + + return TestStepResult() ; } - TVerdict CTestTsyCaps::doTestStepL() /** * Test sms stack when tsy doesn't support anything */ { INFO_PRINTF1(_L("Test Sms stack when Tsy supports nothing")); - - RSocketServ socketServer; - PrepareRegTestLC(socketServer, 20); - - RSocket socket; - iSmsStackTestUtils->OpenSmsSocketLC(socketServer,socket,ESmsAddrRecvAny); + iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,socket,ESmsAddrRecvAny); _LIT(KTestMsg1,"test message, 8bits, length 30"); @@ -2147,8 +1928,7 @@ iServiceCenterNumber=KRadiolinjaSC; TSmsDataCodingScheme::TSmsAlphabet alphabet=TSmsDataCodingScheme::ESmsAlphabet8Bit; - CSmsMessage* smsMessage=CreateSmsMessageL(KTestMsg1,alphabet); - CleanupStack::PushL(smsMessage); + CSmsMessage* smsMessage=CreateSmsMessageLC(KTestMsg1,alphabet); INFO_PRINTF2(_L("Destination number:..... %S"),&iTelephoneNumber); INFO_PRINTF2(_L("ServiceCenter number:... %S"),&iServiceCenterNumber); @@ -2200,10 +1980,7 @@ INFO_PRINTF2(_L("Read Sms parameters - returned %d"), status.Int()); TEST(status.Int() == KErrNotSupported); - -// -// Try to store SMS parameters, tsy doesn't support this -// + // Try to store SMS parameters, tsy doesn't support this CMobilePhoneSmspList* smspList=CMobilePhoneSmspList::NewL(); CleanupStack::PushL(smspList); @@ -2236,10 +2013,8 @@ INFO_PRINTF2(_L("Write Sms parameters - returned %d"), status.Int()); TEST(status.Int() == KErrNotSupported); - CleanupStack::PopAndDestroy(2); //socket, smspList - CleanupStack::PopAndDestroy(&socketServer); - - return TestStepResult() ; + CleanupStack::PopAndDestroy(2, &socket); //socket, smspList + return TestStepResult() ; } TVerdict CTestOOMSendSms::doTestStepL() @@ -2251,12 +2026,8 @@ #ifdef _DEBUG INFO_PRINTF1(_L("OOM test: Send Sms")); - RSocketServ socketServer; - PrepareRegTestLC(socketServer, 21); - - RSocket socket; - iSmsStackTestUtils->OpenSmsSocketLC(socketServer,socket,ESmsAddrRecvAny); + iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,socket,ESmsAddrRecvAny); //Set destination and SC numbers iTelephoneNumber=KPekka; @@ -2265,18 +2036,17 @@ _LIT(KTestMsg1,"test message, 8bits, length 30"); TSmsDataCodingScheme::TSmsAlphabet alphabet=TSmsDataCodingScheme::ESmsAlphabet8Bit; - CSmsMessage* smsMessage=CreateSmsMessageL(KTestMsg1,alphabet); - CleanupStack::PushL(smsMessage); + CSmsMessage* smsMessage=CreateSmsMessageLC(KTestMsg1,alphabet); TInt count=0; TInt ret=KErrNoMemory; TInt successfullSends=0; //maximum expected number of succeeded sends is 2 in TSY config file while ((ret==KErrNoMemory || ret==KErrEof || count < 18) && (successfullSends<2)) { - socketServer.__DbgFailNext(count); - socketServer.__DbgMarkHeap(); + iSocketServer.__DbgFailNext(count); + iSocketServer.__DbgMarkHeap(); TRAP(ret,SendSmsDontCheckReturnValueL(smsMessage,socket)); - socketServer.__DbgMarkEnd(0); + iSocketServer.__DbgMarkEnd(0); if(ret==KErrNone) successfullSends++; count++; @@ -2284,11 +2054,9 @@ TEST(ret == KErrNone); - socketServer.__DbgFailNext(-1); // Reset heap - - CleanupStack::PopAndDestroy(2); //smsMessage, socket - - CleanupStack::PopAndDestroy(&socketServer); + iSocketServer.__DbgFailNext(-1); // Reset heap + + CleanupStack::PopAndDestroy(2, &socket); // socket, smsMessage #endif return TestStepResult() ; @@ -2301,19 +2069,13 @@ { INFO_PRINTF1(_L("OOM test: Write Sms to Store")); #ifdef _DEBUG - - RSocketServ socketServer; - PrepareRegTestLC(socketServer, 22); - - RSocket socket; - iSmsStackTestUtils->OpenSmsSocketLC(socketServer,socket,ESmsAddrRecvAny); + iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,socket,ESmsAddrRecvAny); // Create and store the message _LIT(KStoreMsg1,"HELLO CHRIS"); TSmsDataCodingScheme::TSmsAlphabet alphabet=TSmsDataCodingScheme::ESmsAlphabet7Bit; - CSmsMessage* smsMessage=CreateSmsMessageL(KStoreMsg1,alphabet); - CleanupStack::PushL(smsMessage); + CSmsMessage* smsMessage=CreateSmsMessageLC(KStoreMsg1,alphabet); smsMessage->SetStorage(CSmsMessage::ESmsSIMStorage); @@ -2321,25 +2083,20 @@ TInt ret=KErrNoMemory; while (ret==KErrNoMemory || ret==KErrEof || count < 8) { - socketServer.__DbgFailNext(count); - socketServer.__DbgMarkHeap(); + iSocketServer.__DbgFailNext(count); + iSocketServer.__DbgMarkHeap(); TRAP(ret,WriteSmsLeaveIfErrorL(*smsMessage,socket);); - socketServer.__DbgMarkEnd(0); + iSocketServer.__DbgMarkEnd(0); count++; } - socketServer.__DbgFailNext(-1); // Reset heap + iSocketServer.__DbgFailNext(-1); // Reset heap TEST(ret == KErrNone); - CleanupStack::PopAndDestroy(2); //smsMessage, socket - - //Ensure socket server session is closed to remove cache - CleanupStack::PopAndDestroy(&socketServer); - + CleanupStack::PopAndDestroy(2, &socket); // socket, smsMessage #endif return TestStepResult() ; } - TVerdict CTestOOMReadSms::doTestStepL() /** * Test out of memory handling, Read SMS messages @@ -2347,15 +2104,8 @@ { INFO_PRINTF1(_L("OOM test: Read, SMS store ReadAll not supported.")); #ifdef _DEBUG - - RSocketServ socketServer; - PrepareRegTestLC(socketServer, 23); - - RSocket socket; - iSmsStackTestUtils->OpenSmsSocketLC(socketServer,socket,ESmsAddrRecvAny); - - TInt count, i(0); + iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,socket,ESmsAddrRecvAny); RSmsSocketReadStream readstream(socket); TRequestStatus status; @@ -2363,21 +2113,20 @@ CSmsMessage* smsMessage = NULL; TInt numberOfMessages(0); - smsMessage = CreateSmsMessageL(_L(""),TSmsDataCodingScheme::ESmsAlphabet7Bit); - CleanupStack::PushL(smsMessage); - - count=0; + smsMessage = CreateSmsMessageLC(_L(""),TSmsDataCodingScheme::ESmsAlphabet7Bit); + + TInt count=0; TInt ret=KErrNoMemory; while (ret==KErrNoMemory || ret==KErrEof || count < 10) { - socketServer.__DbgFailNext(count); - socketServer.__DbgMarkHeap(); + iSocketServer.__DbgFailNext(count); + iSocketServer.__DbgMarkHeap(); TRAP(ret,numberOfMessages=MakeReadSmsStoreRequestL(socket);); - socketServer.__DbgMarkEnd(0); + iSocketServer.__DbgMarkEnd(0); if (ret==KErrNone) { - for (i=0; i> *smsMessage); TEST(ret == KErrNone); @@ -2385,17 +2134,17 @@ User::WaitForRequest(status); } } - count++; + ++count; } CleanupStack::PopAndDestroy(smsMessage); TEST(ret == KErrNone); - socketServer.__DbgFailNext(-1); // Reset heap + iSocketServer.__DbgFailNext(-1); // Reset heap INFO_PRINTF2(_L("%d enumerated messages"), numberOfMessages); //Check that test client can read all messages from the stream - for(i=0; i< numberOfMessages; i++) + for(TInt i=0; i< numberOfMessages; ++i) { CSmsBuffer* buffer=CSmsBuffer::NewL(); smsMessage=CSmsMessage::NewL(iFs, CSmsPDU::ESmsDeliver,buffer); @@ -2409,16 +2158,11 @@ CleanupStack::PopAndDestroy(smsMessage); } - CleanupStack::PopAndDestroy(&socket); //socket - - //Ensure socket server session is closed to remove cache - CleanupStack::PopAndDestroy(&socketServer); - + CleanupStack::PopAndDestroy(&socket); #endif return TestStepResult() ; } - TVerdict CTestOOMReadSmsList::doTestStepL() /** * Test out of memory handling, Read SMS messages from store @@ -2426,15 +2170,8 @@ { INFO_PRINTF1(_L("OOM test: Read, SMS store ReadAll not supported.")); #ifdef _DEBUG - - RSocketServ socketServer; - PrepareRegTestLC(socketServer, 24); - - RSocket socket; - iSmsStackTestUtils->OpenSmsSocketLC(socketServer,socket,ESmsAddrRecvAny); - - TInt count, i(0); + iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,socket,ESmsAddrRecvAny); RSmsSocketReadStream readstream(socket); TRequestStatus status; @@ -2442,23 +2179,21 @@ CSmsMessage* smsMessage = NULL; TInt numberOfMessages(0); - smsMessage = CreateSmsMessageL(_L(""),TSmsDataCodingScheme::ESmsAlphabet7Bit); - CleanupStack::PushL(smsMessage); - - count=0; + smsMessage = CreateSmsMessageLC(_L(""),TSmsDataCodingScheme::ESmsAlphabet7Bit); + + TInt count=0; TInt ret=KErrNoMemory; while (ret==KErrNoMemory || ret==KErrEof || count < 10) { - - socketServer.__DbgFailNext(count); - socketServer.__DbgMarkHeap(); + iSocketServer.__DbgFailNext(count); + iSocketServer.__DbgMarkHeap(); TRAP(ret,numberOfMessages=MakeReadSmsStoreRequestL(socket);); - socketServer.__DbgMarkEnd(0); + iSocketServer.__DbgMarkEnd(0); if (ret==KErrNone) { //Check that test client can read all messages from the stream - for (i=0; i> *smsMessage); TEST(ret == KErrNone); @@ -2467,27 +2202,22 @@ TEST(status.Int() == KErrNone); } } - count++; + ++count; } CleanupStack::PopAndDestroy(smsMessage); TEST(ret == KErrNone); - socketServer.__DbgFailNext(-1); // Reset heap + iSocketServer.__DbgFailNext(-1); // Reset heap INFO_PRINTF2(_L("%d enumerated messages"), numberOfMessages); - CleanupStack::PopAndDestroy(&socket); //socket - - //Ensure socket server session is closed to remove cache - CleanupStack::PopAndDestroy(&socketServer); - + CleanupStack::PopAndDestroy(&socket); #endif return TestStepResult() ; } - TVerdict CTestOOMDeleteSms::doTestStepL() /** * Test out of memory handling, Delete SMS message @@ -2495,13 +2225,8 @@ { INFO_PRINTF1(_L("OOM test: Delete SMS message.")); #ifdef _DEBUG - - RSocketServ socketServer; - PrepareRegTestLC(socketServer, 25); - - RSocket socket; - iSmsStackTestUtils->OpenSmsSocketLC(socketServer,socket,ESmsAddrLocalOperation); + iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,socket,ESmsAddrLocalOperation); // First get one message from store. RPointerArray messages; @@ -2513,54 +2238,45 @@ TInt ret=0; while (ret==KErrNoMemory || ret==KErrEof || iOpenSmsSocketLC(socketServer,socket,ESmsAddrLocalOperation); - - TInt count; + INFO_PRINTF1(_L("OOM test: Read and Store Sms params.")); + RSocket socket; + iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,socket,ESmsAddrLocalOperation); RSmsSocketReadStream readstream(socket); TRequestStatus status; @@ -2570,17 +2286,17 @@ INFO_PRINTF1(_L("Retrieve SMS parameters.")); - count=0; + TInt count = 0; TInt ret=KErrNoMemory; while (ret==KErrNoMemory || ret==KErrEof || count < 8) { - socketServer.__DbgFailNext(count); - socketServer.__DbgMarkHeap(); + iSocketServer.__DbgFailNext(count); + iSocketServer.__DbgMarkHeap(); TRAP(ret,iSmsStackTestUtils->MakeParametersReadRequestL(socket);); - socketServer.__DbgMarkEnd(0); + iSocketServer.__DbgMarkEnd(0); count++; } - socketServer.__DbgFailNext(-1); // suppress any lurking heap failure + iSocketServer.__DbgFailNext(-1); // suppress any lurking heap failure TEST(ret == KErrNone); @@ -2592,9 +2308,9 @@ CleanupStack::PopAndDestroy(smspList); -// -//Store parameters -// + // + //Store parameters + // smspList=CMobilePhoneSmspList::NewL(); CleanupStack::PushL(smspList); @@ -2621,19 +2337,19 @@ ret=KErrNoMemory; while (ret==KErrNoMemory || count < 10) { - socketServer.__DbgFailNext(count); - socketServer.__DbgMarkHeap(); + iSocketServer.__DbgFailNext(count); + iSocketServer.__DbgMarkHeap(); TRAP(ret,iSmsStackTestUtils->StoreParamsLeaveIfErrorL(*smspList,socket);); - socketServer.__DbgMarkEnd(0); + iSocketServer.__DbgMarkEnd(0); count++; } TEST(ret == KErrNone); - socketServer.__DbgFailNext(-1); // Reset heap -// -// Retrieve SMS parameters again and test the content of params -// + iSocketServer.__DbgFailNext(-1); // Reset heap + // + // Retrieve SMS parameters again and test the content of params + // //Wait a second, OOM macro is still closing!! INFO_PRINTF1(_L("Retrieve parameters again...")); @@ -2656,16 +2372,11 @@ ret = iSmsStackTestUtils->TestParameters(*smspList,*smspList2); TEST(ret == KErrNone); - CleanupStack::PopAndDestroy(3); //smspList2, smspList, socket - - //Ensure socket server session is closed to remove cache - CleanupStack::PopAndDestroy(&socketServer); - + CleanupStack::PopAndDestroy(3, &socket); //smspList2, smspList, socket #endif return TestStepResult(); } - // // Integration test harnesses against SIM tsy // @@ -2676,14 +2387,9 @@ */ { INFO_PRINTF1(_L("Test the ME store containing duplicated and missing pdus")); - - RSocketServ socketServer; - PrepareRegTestLC(socketServer, 27); - - // Open the socket for SIM operations RSocket enumSocket; - iSmsStackTestUtils->OpenSmsSocketLC(socketServer,enumSocket,ESmsAddrRecvAny); + iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer, enumSocket, ESmsAddrLocalOperation); // Enumerate messages RPointerArray messages; @@ -2695,7 +2401,7 @@ CleanupStack::PopAndDestroy(&enumSocket); RSocket socket; - iSmsStackTestUtils->OpenSmsSocketLC(socketServer,socket,ESmsAddrRecvAny); + iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,socket,ESmsAddrRecvAny); INFO_PRINTF1(_L("waiting for 1st incoming SMS...") ); WaitForRecvL(socket); @@ -2718,14 +2424,11 @@ delete smsMessage; CleanupStack::PopAndDestroy(&socket); - CleanupStack::PopAndDestroy(&socketServer); - - INFO_PRINTF1(_L("Additional waiting SMS protocol to get unloaded")); - User::After(20000000); + INFO_PRINTF1(_L("Additional waiting SMS protocol to get unloaded")); + User::After(20000000); // TODO: reviewers - is this needed here? return TestStepResult() ; } - TVerdict CTestSimStoreDupAndMiss::doTestStepL() /** * Test ME store containing concatenated messages when @@ -2733,14 +2436,9 @@ */ { INFO_PRINTF1(_L("Test the ME store containing duplicated and missing pdus")); - - RSocketServ socketServer; - PrepareRegTestLC(socketServer, 28); - - // Open the socket for SIM operations RSocket socket; - iSmsStackTestUtils->OpenSmsSocketLC(socketServer,socket,ESmsAddrRecvAny); + iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer, socket, ESmsAddrLocalOperation); // Enumerate messages RPointerArray messages; @@ -2770,35 +2468,25 @@ message = messages[0]; ret = DeleteSmsL(*message, socket); TEST(ret == KErrNone); - messages.ResetAndDestroy(); ReadSmsStoreL(socket, messages); - TEST(messages.Count() == 4); CleanupStack::PopAndDestroy(&messages); CleanupStack::PopAndDestroy(&socket); - CleanupStack::PopAndDestroy(&socketServer); - - return TestStepResult() ; + return TestStepResult() ; } - TVerdict CTestRxCphs::doTestStepL() /** * Test the reception of a CPHS Message Waiting Indication */ { INFO_PRINTF1(_L("Test Rx Message Waiting Cphs")); - - RSocketServ socketServer; - PrepareRegTestLC(socketServer, 30); - - - // Open the socket for SIM operations + // Open the socket for Address Message Indications RSocket socket; - iSmsStackTestUtils->OpenSmsSocketLC(socketServer,socket,ESmsAddrMessageIndication); + iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer, socket, ESmsAddrMessageIndication); INFO_PRINTF1(_L("...waiting for incoming Message Waiting Indicator Cphs...") ); WaitForRecvL(socket); @@ -2817,19 +2505,15 @@ TEST(((address.iTelNumber[2] & 0x7E) == 0x10)); TEST(((address.iTelNumber[3] & 0x7E) == 0x00)); - //test for the user data: space and then free-format text _LIT(KTestSingleSpace," "); TestSmsContentsL(smsMessage,KTestSingleSpace); INFO_PRINTF1(_L("Successful Match of Message Waiting Indicator Cphs") ); - CleanupStack::PopAndDestroy(2); // socket, smsMessage - CleanupStack::PopAndDestroy(&socketServer); - - return TestStepResult() ; + CleanupStack::PopAndDestroy(2, &socket); // socket, smsMessage + return TestStepResult() ; } - TVerdict CTestInvalidPDUs::doTestStepL() /** * Test receiving invalid pdus. @@ -2837,13 +2521,8 @@ */ { INFO_PRINTF1(_L("Test receiving invalid pdus")); - - RSocketServ socketServer; - PrepareRegTestLC(socketServer, 31); - - RSocket socket; - iSmsStackTestUtils->OpenSmsSocketLC(socketServer,socket,ESmsAddrRecvAny); + iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,socket,ESmsAddrRecvAny); _LIT(KTestMsg1,"test message, 8bits, length 30"); _LIT(KTestMsg2,"Voicemail waiting"); @@ -2855,8 +2534,6 @@ INFO_PRINTF2(_L("waiting for incoming SMS No. %d..."), i); WaitForRecvL(socket); smsMessage = RecvSmsL(socket); - - INFO_PRINTF1(_L("incoming SMS") ); CleanupStack::PushL(smsMessage); if (i!=10 && i!= 16) @@ -2867,29 +2544,21 @@ if (i==12) TestSmsContentsL(smsMessage, KTestMsg2); CleanupStack::PopAndDestroy(smsMessage); - i++; + ++i; } CleanupStack::PopAndDestroy(&socket); - CleanupStack::PopAndDestroy(&socketServer); - - return TestStepResult() ; + return TestStepResult() ; } - TVerdict CTestStress::doTestStepL() /** * Test Transmit and Receive large number of different messages */ { INFO_PRINTF1(_L("Test Tx and Rx large number of messages")); - - RSocketServ socketServer; - PrepareRegTestLC(socketServer, 32); - - RSocket socket; - iSmsStackTestUtils->OpenSmsSocketLC(socketServer,socket,ESmsAddrRecvAny); + iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,socket,ESmsAddrRecvAny); _LIT(KTestMsg1,"test message, 8bits, length 30"); @@ -2898,38 +2567,32 @@ iServiceCenterNumber=KRadiolinjaSC; TSmsDataCodingScheme::TSmsAlphabet alphabet=TSmsDataCodingScheme::ESmsAlphabet8Bit; - CSmsMessage* smsMessage=CreateSmsMessageL(KTestMsg1,alphabet); - CleanupStack::PushL(smsMessage); + CSmsMessage* smsMessage=CreateSmsMessageLC(KTestMsg1,alphabet); INFO_PRINTF2(_L("Destination number:..... %S"),&iTelephoneNumber); INFO_PRINTF2(_L("ServiceCenter number:... %S"),&iServiceCenterNumber); - INFO_PRINTF1(_L("Send large number of messages")); + INFO_PRINTF1(_L("Send large number (20) of messages")); TInt i(0); - //Send SMSes while (i<20) { SendSmsL(smsMessage,socket); - i++; + ++i; } CleanupStack::PopAndDestroy(smsMessage); - INFO_PRINTF1(_L("Receive large number of messages")); - //Receive SMSes + INFO_PRINTF1(_L("Receive large number (20) of messages")); while (i!=0) { - INFO_PRINTF1(_L("waiting for incoming SMS...") ); WaitForRecvL(socket); smsMessage = RecvSmsL(socket); - - INFO_PRINTF1(_L("incoming SMS") ); - CleanupStack::PushL(smsMessage); + TestSmsContentsL(smsMessage,KTestMsg1); CleanupStack::PopAndDestroy(smsMessage); - i--; + --i; } _LIT(KTest7bitMsg,"test message, length 23"); //7 bits test message, length 23 characters @@ -2939,8 +2602,7 @@ iServiceCenterNumber=KSoneraSC; alphabet=TSmsDataCodingScheme::ESmsAlphabet7Bit; - smsMessage=CreateSmsMessageL(KTest7bitMsg,alphabet); - CleanupStack::PushL(smsMessage); + smsMessage=CreateSmsMessageLC(KTest7bitMsg,alphabet); //Set status report request CSmsSubmit& submitPdu=(CSmsSubmit&)smsMessage->SmsPDU(); @@ -2949,55 +2611,50 @@ INFO_PRINTF2(_L("Destination number:..... %S"),&iTelephoneNumber); INFO_PRINTF2(_L("ServiceCenter number:... %S"),&iServiceCenterNumber); - INFO_PRINTF1(_L("Send large number of messages")); - //Send SMSes + INFO_PRINTF1(_L("Send large number (40) of messages")); while (i<40) { SendSmsL(smsMessage,socket); - i++; + ++i; } CleanupStack::PopAndDestroy(smsMessage); //Receive status report TSmsServiceCenterAddress telephoneNumber(KPekka); - INFO_PRINTF1(_L("Receive large number of messages")); - //Receive SMSes + INFO_PRINTF1(_L("Receive large number (40) of messages")); while (i!=0) { - INFO_PRINTF1(_L("waiting for incoming SMS...") ); WaitForRecvL(socket); smsMessage = RecvSmsL(socket); - - INFO_PRINTF1(_L("incoming SMS") ); - CleanupStack::PushL(smsMessage); + TestSmsContentsL(smsMessage,KTest7bitMsg); CleanupStack::PopAndDestroy(smsMessage); - i--; + --i; //Receive status report RecvStatusReportL(telephoneNumber, socket); } -//Tx and rx concatenated message & status report + //Tx and rx concatenated message & status report _LIT(KLongText,"3 PDU test SMS message. " -L"3 PDU test SMS message. " -L"3 PDU test SMS message. " -L"3 PDU test SMS message. " -L"3 PDU test SMS message. " -L"3 PDU test SMS message. " -L"3 PDU test SMS message. " -L"3 PDU test SMS message. " -L"3 PDU test SMS message. " -L"3 PDU test SMS message. " -L"3 PDU test SMS message. " -L"3 PDU test SMS message. " -L"3 PDU test SMS message. " -L"3 PDU test SMS message. " -L"3 PDU test SMS message. " -L"3 PDU test SMS message. " -L"3 PDU test SMS message. " -L"The End."); + L"3 PDU test SMS message. " + L"3 PDU test SMS message. " + L"3 PDU test SMS message. " + L"3 PDU test SMS message. " + L"3 PDU test SMS message. " + L"3 PDU test SMS message. " + L"3 PDU test SMS message. " + L"3 PDU test SMS message. " + L"3 PDU test SMS message. " + L"3 PDU test SMS message. " + L"3 PDU test SMS message. " + L"3 PDU test SMS message. " + L"3 PDU test SMS message. " + L"3 PDU test SMS message. " + L"3 PDU test SMS message. " + L"3 PDU test SMS message. " + L"The End."); //Set destination and SC numbers iTelephoneNumber=KRegTestNumber; @@ -3012,55 +2669,52 @@ CleanupStack::PopAndDestroy(smsMessage); INFO_PRINTF1(_L("Recv concatenated message and status report")); - INFO_PRINTF1(_L("waiting for incoming SMS...") ); WaitForRecvL(socket); smsMessage = RecvSmsL(socket); - - INFO_PRINTF1(_L("incoming SMS") ); - CleanupStack::PushL(smsMessage); + TestSmsContentsL(smsMessage,KLongText); CleanupStack::PopAndDestroy(smsMessage); telephoneNumber.Copy( KRegTestNumber ); RecvStatusReportL(telephoneNumber, socket); -//Tx and rx longer concatenated message & status report + //Tx and rx longer concatenated message & status report _LIT(KLongText2,"7 PDU test SMS message. " -L"7 PDU test SMS message. " -L"7 PDU test SMS message. " -L"7 PDU test SMS message. " -L"7 PDU test SMS message. " -L"7 PDU test SMS message. " -L"7 PDU test SMS message. " -L"7 PDU test SMS message. " -L"7 PDU test SMS message. " -L"7 PDU test SMS message. " -L"7 PDU test SMS message. " -L"7 PDU test SMS message. " -L"7 PDU test SMS message. " -L"7 PDU test SMS message. " -L"7 PDU test SMS message. " -L"7 PDU test SMS message. " -L"7 PDU test SMS message. " -L"7 PDU test SMS message. " -L"7 PDU test SMS message. " -L"7 PDU test SMS message. " -L"7 PDU test SMS message. " -L"7 PDU test SMS message. " -L"7 PDU test SMS message. " -L"7 PDU test SMS message. " -L"7 PDU test SMS message. " -L"7 PDU test SMS message. " -L"7 PDU test SMS message. " -L"7 PDU test SMS message. " -L"7 PDU test SMS message. " -L"7 PDU test SMS message. " -L"7 PDU test SMS message. " -L"7 PDU test SMS message. " -L"7 PDU test SMS message. " -L"7 PDU test SMS message. " -L"The End."); + L"7 PDU test SMS message. " + L"7 PDU test SMS message. " + L"7 PDU test SMS message. " + L"7 PDU test SMS message. " + L"7 PDU test SMS message. " + L"7 PDU test SMS message. " + L"7 PDU test SMS message. " + L"7 PDU test SMS message. " + L"7 PDU test SMS message. " + L"7 PDU test SMS message. " + L"7 PDU test SMS message. " + L"7 PDU test SMS message. " + L"7 PDU test SMS message. " + L"7 PDU test SMS message. " + L"7 PDU test SMS message. " + L"7 PDU test SMS message. " + L"7 PDU test SMS message. " + L"7 PDU test SMS message. " + L"7 PDU test SMS message. " + L"7 PDU test SMS message. " + L"7 PDU test SMS message. " + L"7 PDU test SMS message. " + L"7 PDU test SMS message. " + L"7 PDU test SMS message. " + L"7 PDU test SMS message. " + L"7 PDU test SMS message. " + L"7 PDU test SMS message. " + L"7 PDU test SMS message. " + L"7 PDU test SMS message. " + L"7 PDU test SMS message. " + L"7 PDU test SMS message. " + L"7 PDU test SMS message. " + L"7 PDU test SMS message. " + L"The End."); //Set destination and SC numbers iTelephoneNumber=KPekka; @@ -3068,20 +2722,17 @@ alphabet=TSmsDataCodingScheme::ESmsAlphabet8Bit; smsMessage=CreateSmsWithStatusReportReqL(KLongText2,alphabet); - CleanupStack::PushL(smsMessage); + INFO_PRINTF1(_L("Send concatenated message")); SendSmsL(smsMessage,socket); CleanupStack::PopAndDestroy(smsMessage); INFO_PRINTF1(_L("Recv concatenated message and status report")); - INFO_PRINTF1(_L("waiting for incoming SMS...") ); WaitForRecvL(socket); smsMessage = RecvSmsL(socket); - - INFO_PRINTF1(_L("incoming SMS") ); - CleanupStack::PushL(smsMessage); + TestSmsContentsL(smsMessage,KLongText2); telephoneNumber.Copy( KPekka ); @@ -3125,28 +2776,19 @@ CleanupStack::PopAndDestroy(logEvent); CleanupStack::PopAndDestroy(smsMessage); - CleanupStack::PopAndDestroy(&socket); - CleanupStack::PopAndDestroy(&socketServer); - return TestStepResult() ; } - TVerdict CTestCombinedStore::doTestStepL() /** * Test combined store. */ { INFO_PRINTF1(_L("Test Combined SMS Store")); - - RSocketServ socketServer; - PrepareRegTestLC(socketServer, 33); - - // Open the socket for SIM operations RSocket socket; - iSmsStackTestUtils->OpenSmsSocketLC(socketServer,socket,ESmsAddrRecvAny); + iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer, socket, ESmsAddrLocalOperation); // Enumerate messages. Concatenated message with constituent PDUs is stored to the SIM, Phone store and // Combined store. Also one normal single part message is stored to Combined store. @@ -3178,32 +2820,30 @@ // Create and write message to the Combined store _LIT(KStoreMsg1,"Store MSG to combined store"); TSmsDataCodingScheme::TSmsAlphabet alphabet=TSmsDataCodingScheme::ESmsAlphabet7Bit; - CSmsMessage* smsmessage1=CreateSmsMessageL(KStoreMsg1,alphabet); - CleanupStack::PushL(smsmessage1); + CSmsMessage* smsmessage1=CreateSmsMessageLC(KStoreMsg1,alphabet); smsmessage1->SetStorage(CSmsMessage::ESmsCombinedStorage); WriteSmsToSimL(*smsmessage1, socket); // Create and write concatenated message to the Combined store _LIT(KStoreMsg2,"3 PDU test SMS message. " -L"3 PDU test SMS message. " -L"3 PDU test SMS message. " -L"3 PDU test SMS message. " -L"3 PDU test SMS message. " -L"3 PDU test SMS message. " -L"3 PDU test SMS message. " -L"3 PDU test SMS message. " -L"3 PDU test SMS message. " -L"3 PDU test SMS message. " -L"3 PDU test SMS message. " -L"3 PDU test SMS message. " -L"3 PDU test SMS message. " -L"3 PDU test SMS message. " -L"3 PDU test SMS message. " -L"3 PDU test SMS message. " -L"3 PDU test SMS message. " -L"The End."); - CSmsMessage* smsmessage2=CreateSmsMessageL(KStoreMsg2,alphabet); - CleanupStack::PushL(smsmessage2); + L"3 PDU test SMS message. " + L"3 PDU test SMS message. " + L"3 PDU test SMS message. " + L"3 PDU test SMS message. " + L"3 PDU test SMS message. " + L"3 PDU test SMS message. " + L"3 PDU test SMS message. " + L"3 PDU test SMS message. " + L"3 PDU test SMS message. " + L"3 PDU test SMS message. " + L"3 PDU test SMS message. " + L"3 PDU test SMS message. " + L"3 PDU test SMS message. " + L"3 PDU test SMS message. " + L"3 PDU test SMS message. " + L"3 PDU test SMS message. " + L"The End."); + CSmsMessage* smsmessage2=CreateSmsMessageLC(KStoreMsg2,alphabet); smsmessage2->SetStorage(CSmsMessage::ESmsCombinedStorage); WriteSmsToSimL(*smsmessage2, socket); @@ -3227,13 +2867,10 @@ ReadSmsStoreL(socket, messages); TEST(messages.Count()==0); - CleanupStack::PopAndDestroy(4); //socket, messages, smsmessage1, smsmessage2 - CleanupStack::PopAndDestroy(&socketServer); - - return TestStepResult() ; + CleanupStack::PopAndDestroy(4, &socket); //socket, messages, smsmessage1, smsmessage2 + return TestStepResult() ; } - TVerdict CTestParamsInter::doTestStepL() /** * Test retrieving and storing the sms parameters. @@ -3241,20 +2878,15 @@ */ { INFO_PRINTF1(_L("Parameter storage data testing")); - - RSocketServ socketServer; - PrepareRegTestLC(socketServer, 34); - - TInt ret(KErrNone); TRequestStatus status; -// -// Retrieve SMS parameters -// + // + // Retrieve SMS parameters + // // Open the socket for SIM operations RSocket socket; - iSmsStackTestUtils->OpenSmsSocketLC(socketServer,socket,ESmsAddrLocalOperation); + iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer, socket, ESmsAddrLocalOperation); RSmsSocketReadStream readstream(socket); @@ -3278,9 +2910,9 @@ User::WaitForRequest(status); TEST(status.Int() == KErrNone); -// -// Store SMS parameters -// + // + // Store SMS parameters + // CMobilePhoneSmspList* smspList = CMobilePhoneSmspList::NewL(); CleanupStack::PushL(smspList); @@ -3353,9 +2985,9 @@ ret = iSmsStackTestUtils->StoreParamsL(*smspList,socket,EFalse); TEST(ret == KErrNone); -// -// Retrieve SMS parameters again -// + // + // Retrieve SMS parameters again + // CMobilePhoneSmspList* smspList2=CMobilePhoneSmspList::NewL(); CleanupStack::PushL(smspList2); @@ -3376,9 +3008,9 @@ CleanupStack::PopAndDestroy(2); //smspList,smspList2 -// -// Store original SMS parameters to the SIM -// + // + // Store original SMS parameters to the SIM + // INFO_PRINTF1(_L("storing the original SMS parameters...") ); @@ -3386,26 +3018,18 @@ ret = iSmsStackTestUtils->StoreParamsL(*smspListOriginal,socket,EFalse); TEST(ret == KErrNone); - CleanupStack::PopAndDestroy(2); // socket,smspListOriginal - CleanupStack::PopAndDestroy(&socketServer); - - return TestStepResult() ; + CleanupStack::PopAndDestroy(2, &socket); // socket,smspListOriginal + return TestStepResult() ; } - TVerdict CTestTxRxAlphanumeric::doTestStepL() /** * Test a Tx And Rx of messages with alphanumeric dest/orig addresses */ { INFO_PRINTF1(_L("Test Tx And Rx SMSes with Alphanumeric originator address")); - - RSocketServ socketServer; - PrepareRegTestLC(socketServer, 35); - - RSocket socket; - iSmsStackTestUtils->OpenSmsSocketLC(socketServer,socket,ESmsAddrRecvAny); + iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,socket,ESmsAddrRecvAny); _LIT(KTestMsg1,"test message, 8bits, length 30"); TSmsDataCodingScheme::TSmsAlphabet alphabet=TSmsDataCodingScheme::ESmsAlphabet8Bit; @@ -3431,8 +3055,7 @@ { iTelephoneNumber=destinationNumbers[i]; - txSms=CreateSmsMessageL(KTestMsg1,alphabet); - CleanupStack::PushL(txSms); + txSms=CreateSmsMessageLC(KTestMsg1,alphabet); gsmSmsTelNumber.iTelNumber.Copy(iTelephoneNumber); @@ -3444,17 +3067,19 @@ //Send SMS if(i!=0) - SendSmsL(txSms,socket); + { + SendSmsL(txSms,socket); + } else + { SendSmsErrorL(txSms,socket); - + } + if(i!=0) { INFO_PRINTF2(_L("waiting for incoming SMS No. %d..."), i); WaitForRecvL(socket); rxSms = RecvSmsL(socket); - - INFO_PRINTF1(_L("incoming SMS") ); CleanupStack::PushL(rxSms); TestSmsContentsL(rxSms,KTestMsg1); @@ -3472,29 +3097,26 @@ CleanupStack::PopAndDestroy(rxSms); } CleanupStack::PopAndDestroy(txSms); - i++; + ++i; } - CleanupStack::PopAndDestroy(2); //socket, destinationNumbers - CleanupStack::PopAndDestroy(&socketServer); - - return TestStepResult() ; + CleanupStack::PopAndDestroy(2, &socket); //socket, destinationNumbers + return TestStepResult() ; } - TVerdict CTestRxSuspend::doTestStepL() /** * Test suspend receiving messages */ { const TInt testNumber = 36; - const TInt smsRxCount = KDefaultMaxmumNumberOfCompleteMessagesInReassemblyStore + 1; //< Number of messages that will cause a suspend + const TInt smsRxCount = KDefaultMaxmumNumberOfCompleteMessagesInReassemblyStore + 1; // Number of messages that will cause a suspend //Add smsRxCount SmsRx tags to c:\config.txt, taking KTSmsPrtConfigFileName as input CTestConfig* configFile = CTestConfig::NewLC(iFs, KGmsSmsConfigFileDir, KTSmsPrtConfigFileName); TInt i(0); - for (i = 0; i < smsRxCount; i++) + for (i = 0; i < smsRxCount; ++i) { _LIT(KTestRxSuspendMessage, "TestRxSuspendMessage %d"); TBuf<32> buf; @@ -3515,37 +3137,38 @@ CleanupStack::PopAndDestroy(configFile); - RSocketServ socketServer; - PrepareRegTestLC(socketServer, testNumber); + // Set the test number. SIMTSY will re-configure itself + SetSimTSYTestNumberL(testNumber); - RSocket socket; - iSmsStackTestUtils->OpenSmsSocketLC(socketServer,socket,ESmsAddrRecvAny); + iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,socket,ESmsAddrRecvAny); INFO_PRINTF1(_L("Test suspend receiving messages")); CSmsMessage* smsMessage; - for (i = 0; i < smsRxCount; i++) + for (i = 0; i < smsRxCount; ++i) { INFO_PRINTF2(_L("%d Waiting for incoming SMS..."), i); WaitForRecvL(socket); smsMessage = RecvSmsL(socket, KIoctlReadMessageFailed); - - PrintSmsMessage(*smsMessage); - delete smsMessage; + CleanupStack::PushL(smsMessage); + + PrintMessageL(smsMessage); + CleanupStack::PopAndDestroy(smsMessage); INFO_PRINTF3(_L("%d Waiting %d secs for next message"), i, rxPeriod); User::After(rxPeriod * 1000000); } - for (i = 0; i < smsRxCount; i++) + for (i = 0; i < smsRxCount; ++i) { INFO_PRINTF2(_L("%d Waiting for incoming SMS..."), i); WaitForRecvL(socket); smsMessage = RecvSmsL(socket, KIoctlReadMessageSucceeded); - - PrintSmsMessage(*smsMessage); - delete smsMessage; + CleanupStack::PushL(smsMessage); + + PrintMessageL(smsMessage); + CleanupStack::PopAndDestroy(smsMessage); } INFO_PRINTF2(_L("Waiting %d secs to see if other (unexpected) message received"), rxPeriod * 3); @@ -3555,28 +3178,21 @@ { INFO_PRINTF1(_L("Unexpected message received:")); smsMessage = RecvSmsL(socket, KIoctlReadMessageSucceeded); - PrintSmsMessage(*smsMessage); - delete smsMessage; + CleanupStack::PushL(smsMessage); + PrintMessageL(smsMessage); + CleanupStack::PopAndDestroy(smsMessage); } TEST(!otherReceived); CleanupStack::PopAndDestroy(&socket); - CleanupStack::PopAndDestroy(&socketServer); - - return TestStepResult() ; } - TVerdict CTestEnumerateCorrupted::doTestStepL() { - RSocketServ socketServer; - PrepareRegTestLC(socketServer, 37); - - RSocket socket; - iSmsStackTestUtils->OpenSmsSocketLC(socketServer,socket,ESmsAddrRecvAny); + iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,socket,ESmsAddrRecvAny); // Enumerate messages RPointerArray messages; @@ -3589,12 +3205,9 @@ messages.ResetAndDestroy(); CleanupStack::PopAndDestroy(&messages); CleanupStack::PopAndDestroy(&socket); - CleanupStack::PopAndDestroy(&socketServer); - - return TestStepResult() ; + return TestStepResult() ; } - TVerdict CTestCancelling::doTestStepL() { /*This test harness has been created to reproduce HOE-573FF6 that has been closed @@ -3603,15 +3216,11 @@ note: the message count will keep increasing as the socket is not emptied */ INFO_PRINTF1(_L("Test Cancelling requests")); - RSocketServ socketServer; - PrepareRegTestLC(socketServer, 38); - - RSocket socket; - iSmsStackTestUtils->OpenSmsSocketLC(socketServer,socket,ESmsAddrRecvAny); + iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,socket,ESmsAddrRecvAny); RSocket socket2; - iSmsStackTestUtils->OpenSmsSocketLC(socketServer,socket2,ESmsAddrLocalOperation); + iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,socket2,ESmsAddrLocalOperation); RSmsSocketWriteStream writestream(socket); RPointerArray messages; @@ -3619,27 +3228,24 @@ _LIT(KStoreMsg1,"SIM TEST MESSAGE 1"); TSmsDataCodingScheme::TSmsAlphabet alphabet=TSmsDataCodingScheme::ESmsAlphabet7Bit; - CSmsMessage* smsmessage=CreateSmsMessageL(KStoreMsg1,alphabet); - CleanupStack::PushL(smsmessage); + CSmsMessage* smsmessage=CreateSmsMessageLC(KStoreMsg1,alphabet); smsmessage->SetStorage(CSmsMessage::ESmsSIMStorage); TPckgBuf sbuf; TRequestStatus status; -//*********************************************************** + INFO_PRINTF1(_L("testing cancel send message")); writestream << *smsmessage; writestream.CommitL(); socket.Ioctl(KIoctlSendSmsMessage,status,&sbuf, KSolSmsProv); - INFO_PRINTF1(_L("Cancel")); + INFO_PRINTF1(_L("Cancel send request")); socket.CancelIoctl(); User::WaitForRequest(status); - TEST(status.Int()==KErrCancel); + TESTCHECK(status.Int(), KErrCancel, "Cancel send request"); //need to check here if the message has actually been sent - -//************************************************************ INFO_PRINTF1(_L("testing cancel Delete message")); ReadSmsStoreL(socket, messages); @@ -3653,13 +3259,9 @@ INFO_PRINTF1(_L("Cancel")); User::After(300000); socket.CancelIoctl(); - User::WaitForRequest(status); - TEST(status.Int()==KErrCancel); - INFO_PRINTF1(_L("Cancel successfully")); - - -//**************************************************** + TESTCHECK(status.Int(), KErrCancel, "Cancel delete request"); + INFO_PRINTF1(_L("testing cancel write message")); writestream << *smsmessage; @@ -3673,21 +3275,22 @@ CleanupStack::PopAndDestroy(&messages); CleanupStack::PopAndDestroy(&socket2); CleanupStack::PopAndDestroy(&socket); - CleanupStack::PopAndDestroy(&socketServer); - return TestStepResult() ; } - TVerdict CTestSendAndRecvMsgsWithDifferentTON::doTestStepL() /** * @test Send and receive messages with different type of number */ { + // TODO: replace the following two lines with + // in-script commands(copy file, ParseSettingsFromFileL is called from preample) iSmsStackTestUtils->CopyConfigFileL(KTSmsPrtConfigExtraFileName); ParseSettingsFromFileL(); + TBool found( ETrue ); TInt count( 0 ); + while( found ) { //run the test @@ -3697,7 +3300,6 @@ return TestStepResult() ; } - TVerdict CTestSendAndReceiveIndicatorMsgs::doTestStepL() { iSmsStackTestUtils->CopyConfigFileL(KTSmsPrtConfigExtraFileName); @@ -3713,42 +3315,34 @@ return TestStepResult() ; } - TVerdict CTestSendRecvMaxLengthMsg::doTestStepL() { INFO_PRINTF1(_L("Sending max length SMS can take a while ... get a cup of coffee or two :-)")); iSmsStackTestUtils->CopyConfigFileL(KTSmsPrtConfigTxRxMaxMsgFileName); - ParseSettingsFromFileL(); - - RSocketServ socketServer; - - PrepareRegTestLC(socketServer, 42); + const TInt testNumber = 42; + SetSimTSYTestNumberL(testNumber); RSocket socket; - iSmsStackTestUtils->OpenSmsSocketLC(socketServer,socket,ESmsAddrRecvAny); + iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,socket,ESmsAddrRecvAny); HBufC* textBuf=HBufC::NewL(39015); CleanupStack::PushL(textBuf); TPtr textPtr=textBuf->Des(); TInt i; - for(i=0;i<255;i++) + for(i=0; i<255; ++i) { textPtr.Append(KText); } SendAndRecvSms7BitL(textPtr,socket); - - CleanupStack::PopAndDestroy(2); - CleanupStack::PopAndDestroy(&socketServer); + CleanupStack::PopAndDestroy(2, &socket); // socket, textBuf iSmsStackTestUtils->CopyConfigFileL(KTSmsPrtConfigFileName); - return TestStepResult() ; } - TVerdict CTestSendAndRecvMsgsWithDifferentPID::doTestStepL() /** * @test Send and receive messages with different type of protocol identifier @@ -3758,22 +3352,19 @@ ParseSettingsFromFileL(); INFO_PRINTF1(_L("Send and receive messages with different type of TP-PID")); - - RSocketServ socketServer; - - PrepareRegTestLC(socketServer, 41); - + + const TInt testNumber = 41; + SetSimTSYTestNumberL(testNumber); RSocket sendSocket; - iSmsStackTestUtils->OpenSmsSocketLC(socketServer,sendSocket,ESmsAddrSendOnly); + iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,sendSocket,ESmsAddrSendOnly); _LIT(KTestMsg,"Test message."); TSmsDataCodingScheme::TSmsAlphabet alphabet=TSmsDataCodingScheme::ESmsAlphabet7Bit; - CSmsMessage* sendMessage=CreateSmsMessageL(KTestMsg,alphabet); - CleanupStack::PushL(sendMessage); + CSmsMessage* sendMessage=CreateSmsMessageLC(KTestMsg,alphabet); CSmsSubmit& submitPdu=(CSmsSubmit&)sendMessage->SmsPDU(); -// TP-PID is telex (or teletex reduced to telex format) + // TP-PID is telex (or teletex reduced to telex format) submitPdu.SetPIDType(TSmsProtocolIdentifier::ESmsPIDTelematicInterworking); submitPdu.SetTelematicDeviceIndicator(TSmsProtocolIdentifier::ESmsTelematicDevice); submitPdu.SetTelematicDeviceType(TSmsProtocolIdentifier::ESmsTelex); @@ -3781,9 +3372,8 @@ SendSmsL(sendMessage,sendSocket); RSocket recvSocket; - iSmsStackTestUtils->OpenSmsSocketLC(socketServer,recvSocket,ESmsAddrRecvAny); - - INFO_PRINTF1(_L("Waiting for incoming SMS...") ); + iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,recvSocket,ESmsAddrRecvAny); + WaitForRecvL(recvSocket); CSmsMessage* recvMessage = RecvSmsL(recvSocket); CleanupStack::PushL(recvMessage); @@ -3794,9 +3384,9 @@ TEST(deliverPdu1.TelematicDeviceIndicator() == submitPdu.TelematicDeviceIndicator()); TEST(deliverPdu1.TelematicDeviceType() == submitPdu.TelematicDeviceType()); - CleanupStack::PopAndDestroy(2); //recvSocket,recvMessage - -// TP-PID is Replace Short Message Type 1 + CleanupStack::PopAndDestroy(2, &recvSocket); //recvSocket, recvMessage + + // TP-PID is Replace Short Message Type 1 submitPdu.SetPIDType(TSmsProtocolIdentifier::ESmsPIDShortMessageType); submitPdu.SetShortMessageType(TSmsProtocolIdentifier::ESmsReplaceShortMessageType1); INFO_PRINTF1(_L("Send SMS message. TP-PID is Replace Short Message Type 1") ); @@ -3806,7 +3396,7 @@ SendSmsL(sendMessage,sendSocket); INFO_PRINTF1(_L("Open ESmsAddrRecvAny socket and receive messages") ); - iSmsStackTestUtils->OpenSmsSocketLC(socketServer,recvSocket,ESmsAddrRecvAny); + iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,recvSocket,ESmsAddrRecvAny); INFO_PRINTF1(_L("Waiting for incoming SMS...") ); WaitForRecvL(recvSocket); @@ -3831,7 +3421,6 @@ /*I beleive the above is wrong, the sms stack does not care about the PID and just passes the message it is up to the applicatio to do that check; therefore the 2 replace messages are received -Pierre*/ - WaitForRecvL(recvSocket); recvMessage = RecvSmsL(recvSocket); CleanupStack::PushL(recvMessage); @@ -3842,40 +3431,43 @@ TEST(deliverPdu3.ShortMessageType() == submitPdu.ShortMessageType()); CleanupStack::PopAndDestroy(recvMessage); - CleanupStack::PopAndDestroy(3); //socketServer,sendSocket,sendMessage,recvSocket - CleanupStack::PopAndDestroy(&socketServer); - - iSmsStackTestUtils->CopyConfigFileL(KTSmsPrtConfigFileName); + CleanupStack::PopAndDestroy(3, &sendSocket); // sendSocket,sendMessage,recvSocket + iSmsStackTestUtils->CopyConfigFileL(KTSmsPrtConfigFileName); return TestStepResult() ; } - -TVerdict CSmsParamsErrorCases::doTestStepL() +TVerdict CTestSmsParamsErrorCases::doTestStepL() /** * Test SMS parameters while error returned from TSY. * Manual function moved from t_sms_inter_auto test suite. */ { - INFO_PRINTF1(_L("Test SMS prameters while eror returned from TSY")); + INFO_PRINTF1(_L("Test SMS prameters while error returned from TSY")); iSmsStackTestUtils->CopyConfigFileL(KTSmsPrtConfigExtraFileName); + const TInt testNumber = 43; // or any number it reaches CTestConfig* configFile = CTestConfig::NewLC(iFs, KGmsSmsConfigFileDir, KTSmsPrtConfigExtraFileName); + CTestConfigSection& section = iSmsStackTestUtils->GetSectionL(*configFile, testNumber); TInt param = section.ItemValue(KSmspEntryValidParams, 2); + RMobileSmsMessaging::TMobileSmspStoreValidParams smspEntryValidParams = ( RMobileSmsMessaging::TMobileSmspStoreValidParams )param; param = section.ItemValue(KSmspEntryScTypeOfNumber, 1); + RMobilePhone::TMobileTON smspEntryScTypeOfNumber = ( RMobilePhone::TMobileTON )param; param = section.ItemValue(KSmspEntryScNumberPlan, 1); + RMobilePhone::TMobileNPI smspEntryScNumberPlan = ( RMobilePhone::TMobileNPI )param; const TDesC8& smspEntryScTelNumber = section.ItemValue(KServiceCentreAddress, (_L8("+358508771010"))); TestSmsParamsErrorCasesL(smspEntryValidParams, smspEntryScTypeOfNumber, smspEntryScNumberPlan, smspEntryScTelNumber); + CleanupStack::PopAndDestroy(configFile); iSmsStackTestUtils->CopyConfigFileL(KTSmsPrtConfigFileName); return TestStepResult() ; } -void CSmsParamsErrorCases::TestSmsParamsErrorCasesL( +void CTestSmsParamsErrorCases::TestSmsParamsErrorCasesL( RMobileSmsMessaging::TMobileSmspStoreValidParams aSmspEntryValidParams, RMobilePhone::TMobileTON aSmspEntryScTypeOfNumber, RMobilePhone::TMobileNPI aSmspEntryScNumberPlan, @@ -3885,25 +3477,44 @@ */ { INFO_PRINTF1(_L("TSY returns error to retrieve and store SMSP list requests")); - - RSocketServ socketServer; - PrepareRegTestLC(socketServer,43); - - + + const TInt testNumber = 43; + SetSimTSYTestNumberL(testNumber); + RSocket socket; - iSmsStackTestUtils->OpenSmsSocketLC(socketServer,socket,ESmsAddrLocalOperation); + iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,socket,ESmsAddrLocalOperation); RSmsSocketReadStream readstream(socket); TRequestStatus status; -// -//Retrieve SMSP list -// - // Make read SMS params request to the SMS Stack. - socket.Ioctl(KIoctlReadSmsParams,status,NULL, KSolSmsProv); + TBool tryAgain = ETrue; + TInt attempts (0); + TInt maxRetries = 3; + + // + //Retrieve SMSP list + // + + // Make read SMS params request to the SMS Stack. If it fails with KErrNotReady wait for 3 seconds to + // allow sms protocol to fully load and repeat INFO_PRINTF1(_L("Waiting for SMS parameters...") ); - User::WaitForRequest(status); - INFO_PRINTF2(_L("Read parameters returned %d"), status.Int()); + while( tryAgain && attempts++ < maxRetries ) + { + socket.Ioctl(KIoctlReadSmsParams,status,NULL, KSolSmsProv); + User::WaitForRequest(status); + INFO_PRINTF2(_L("Read parameters returned %d"), status.Int()); + + if ( status.Int() == KErrNotReady ) + { + INFO_PRINTF1(_L("Trying again... ")); + User::After(3000000); + } + else + { + tryAgain = EFalse; + } + } + if(status.Int() == KErrNone) { CMobilePhoneSmspList* smspList = CMobilePhoneSmspList::NewL(); @@ -3914,11 +3525,11 @@ User::WaitForRequest(status); CleanupStack::PopAndDestroy(smspList); } - TEST(status.Int() == KErrNone); - -// -//Store SMSP list -// + TEST(status.Int() == KErrNone); + + // + //Store SMSP list + // // Create the smspList CMobilePhoneSmspList* smspList = CMobilePhoneSmspList::NewL(); CleanupStack::PushL(smspList); @@ -3938,11 +3549,8 @@ CleanupStack::PopAndDestroy(smspList); CleanupStack::PopAndDestroy(&socket); - CleanupStack::PopAndDestroy(&socketServer); - } - TVerdict CTestResendFailedConcatinatedMessage::doTestStepL() /** * Test that sent PDUs in failed concatenated message are not re-sent" @@ -3951,32 +3559,10 @@ INFO_PRINTF1(_L(" Test that sent PDUs in failed concatenated message are not re-sent")); TLogId logid; TLogSmsPduData pduData; - - RSocketServ socketServer; - PrepareRegTestLC(socketServer, 44); - - RSocket socket; - iSmsStackTestUtils->OpenSmsSocketLC(socketServer,socket,ESmsAddrRecvAny); - - // Create comms database object -#ifdef SYMBIAN_NON_SEAMLESS_NETWORK_BEARER_MOBILITY - CMDBSession* db = CMDBSession::NewL(KCDVersion1_2); -#else - CMDBSession* db = CMDBSession::NewL(KCDVersion1_1); -#endif - CleanupStack::PushL(db); - - INFO_PRINTF1(_L("Testing recvMode change to EReceiveUnstoredClientAck")); - - // EReceiveUnstoredClientAck - CMDBField* smsReceiveModeField = new(ELeave) CMDBField(KCDTIdSMSReceiveMode); - CleanupStack::PushL(smsReceiveModeField); - smsReceiveModeField->SetRecordId(1); //it's GlobalSettingsRecord - *smsReceiveModeField = RMobileSmsMessaging::EReceiveUnstoredClientAck; - smsReceiveModeField->ModifyL(*db); - CleanupStack::PopAndDestroy(smsReceiveModeField); - CleanupStack::PopAndDestroy(db); + iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,socket,ESmsAddrRecvAny); + + ChangeReceiveModeL(RMobileSmsMessaging::EReceiveUnstoredClientAck); _LIT(KTestMsg1,"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBCCCCCCC"); @@ -3984,126 +3570,105 @@ iTelephoneNumber=KPekka; iServiceCenterNumber=KRadiolinjaSC; - TSmsDataCodingScheme::TSmsAlphabet alphabet=TSmsDataCodingScheme::ESmsAlphabet8Bit; INFO_PRINTF2(_L("Destination number:..... %S"),&iTelephoneNumber); INFO_PRINTF2(_L("ServiceCenter number:... %S"),&iServiceCenterNumber); //Send SMS - first pdu fails - - CSmsMessage* smsMessage=CreateSmsMessageL(KTestMsg1,alphabet); - CleanupStack::PushL(smsMessage); + CSmsMessage* smsMessage=CreateSmsMessageLC(KTestMsg1,alphabet); pduData.iType=smsMessage->Type(); logid=iSmsStackTestUtils->AddLogEventL(*smsMessage,pduData); smsMessage->SetLogServerId(logid); + INFO_PRINTF2(_L("Sends message with log id %d"),logid); SendSmsErrorL(smsMessage,socket); SendSmsL(smsMessage,socket); CleanupStack::PopAndDestroy(smsMessage); + //Receive SMS - INFO_PRINTF1(_L("waiting for incoming SMS...") ); WaitForRecvL(socket); smsMessage = RecvSmsL(socket); - INFO_PRINTF1(_L("incoming SMS") ); - CleanupStack::PushL(smsMessage); TestSmsContentsL(smsMessage,KTestMsg1); CleanupStack::PopAndDestroy(smsMessage); //Send SMS - second pdu fails - - smsMessage=CreateSmsMessageL(KTestMsg1,alphabet); - CleanupStack::PushL(smsMessage); + smsMessage=CreateSmsMessageLC(KTestMsg1,alphabet); pduData.iType=smsMessage->Type(); logid=iSmsStackTestUtils->AddLogEventL(*smsMessage,pduData); smsMessage->SetLogServerId(logid); + INFO_PRINTF2(_L("Sends message with log id %d"),logid); SendSmsErrorL(smsMessage,socket); SendSmsL(smsMessage,socket); CleanupStack::PopAndDestroy(smsMessage); //Receive SMS - INFO_PRINTF1(_L("waiting for incoming SMS...") ); WaitForRecvL(socket); smsMessage = RecvSmsL(socket); - - INFO_PRINTF1(_L("incoming SMS") ); - CleanupStack::PushL(smsMessage); + TestSmsContentsL(smsMessage,KTestMsg1); CleanupStack::PopAndDestroy(smsMessage); - //Send SMS - third pdu fails - - smsMessage=CreateSmsMessageL(KTestMsg1,alphabet); - CleanupStack::PushL(smsMessage); + smsMessage=CreateSmsMessageLC(KTestMsg1,alphabet); pduData.iType=smsMessage->Type(); logid=iSmsStackTestUtils->AddLogEventL(*smsMessage,pduData); smsMessage->SetLogServerId(logid); + INFO_PRINTF2(_L("Sends message with log id %d"),logid); SendSmsErrorL(smsMessage,socket); SendSmsL(smsMessage,socket); CleanupStack::PopAndDestroy(smsMessage); //Receive SMS - INFO_PRINTF1(_L("waiting for incoming SMS...") ); WaitForRecvL(socket); smsMessage = RecvSmsL(socket); - - INFO_PRINTF1(_L("incoming SMS") ); - CleanupStack::PushL(smsMessage); + TestSmsContentsL(smsMessage,KTestMsg1); CleanupStack::PopAndDestroy(smsMessage); //Send SMS - fourth pdu fails - smsMessage=CreateSmsMessageL(KTestMsg1,alphabet); - CleanupStack::PushL(smsMessage); + smsMessage=CreateSmsMessageLC(KTestMsg1,alphabet); pduData.iType=smsMessage->Type(); logid=iSmsStackTestUtils->AddLogEventL(*smsMessage,pduData); smsMessage->SetLogServerId(logid); + INFO_PRINTF2(_L("Sends message with log id %d"),logid); SendSmsErrorL(smsMessage,socket); smsMessage->SetLogServerId(KLogNullId); + SendSmsL(smsMessage,socket); CleanupStack::PopAndDestroy(smsMessage); //Receive SMS - INFO_PRINTF1(_L("waiting for incoming SMS...") ); WaitForRecvL(socket); smsMessage = RecvSmsL(socket); - - INFO_PRINTF1(_L("incoming SMS") ); - CleanupStack::PushL(smsMessage); + TestSmsContentsL(smsMessage,KTestMsg1); CleanupStack::PopAndDestroy(smsMessage); + CleanupStack::PopAndDestroy(&socket); - CleanupStack::PopAndDestroy(&socketServer); - - return TestStepResult() ; + return TestStepResult() ; } - +// TODO: move to WAP STACK test suite TVerdict CTestMultipartWapMessage::doTestStepL() /** * test multi-part WAP message */ { - INFO_PRINTF1(_L("Test receive multi-part WAP message")); - - RSocketServ socketServer; - PrepareRegTestLC(socketServer, 45); - RSocket socket; - iSmsStackTestUtils->OpenSmsSocketLC(socketServer,socket,ESmsAddrRecvAny); + iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,socket,ESmsAddrRecvAny); RSocket wapsock; - TInt ret=wapsock.Open(socketServer,KWAPSMSAddrFamily,KSockDatagram,KWAPSMSDatagramProtocol); + TInt ret=wapsock.Open(iSocketServer,KWAPSMSAddrFamily,KSockDatagram,KWAPSMSDatagramProtocol); TEST(ret == KErrNone); TWapAddr recvWapAddr; @@ -4134,35 +3699,26 @@ buf.Zero(); const TInt midLen = Min(KMaxPrintLen, len - pos); buf.SetLength(midLen); - for (TInt i=0; iOpenSmsSocketLC(socketServer, socketRecvAny, ESmsAddrRecvAny); - - INFO_PRINTF1(_L("waiting for incoming SMS ...") ); + iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer, socketRecvAny, ESmsAddrRecvAny); WaitForRecvL(socketRecvAny); CSmsMessage* smsMessage = RecvSmsL(socketRecvAny); @@ -4172,46 +3728,20 @@ INFO_PRINTF1(_L("")); CleanupStack::PushL(smsMessage); - - CleanupStack::PopAndDestroy(2); // socketRecvAny, smsMessage - CleanupStack::PopAndDestroy(&socketServer); - - return TestStepResult() ; + CleanupStack::PopAndDestroy(2, &socketRecvAny); // socketRecvAny, smsMessage + return TestStepResult() ; } - TVerdict CTestClockBack::doTestStepL() /** * Test clock back */ -{ + { INFO_PRINTF1(_L(" Test that turning back time does not result in 2 receipts of same messages")); - - RSocketServ socketServer; - PrepareRegTestLC(socketServer, 47); - - RSocket socket; - iSmsStackTestUtils->OpenSmsSocketLC(socketServer,socket,ESmsAddrRecvAny); - - // Create comms database object -#ifdef SYMBIAN_NON_SEAMLESS_NETWORK_BEARER_MOBILITY - CMDBSession* db = CMDBSession::NewL(KCDVersion1_2); -#else - CMDBSession* db = CMDBSession::NewL(KCDVersion1_1); -#endif - CleanupStack::PushL(db); - - INFO_PRINTF1(_L("Testing recvMode change to EReceiveUnstoredClientAck")); - - // EReceiveUnstoredClientAck - CMDBField* smsReceiveModeField = new(ELeave) CMDBField(KCDTIdSMSReceiveMode); - CleanupStack::PushL(smsReceiveModeField); - smsReceiveModeField->SetRecordId(1); //it's GlobalSettingsRecord - *smsReceiveModeField = RMobileSmsMessaging::EReceiveUnstoredClientAck; - smsReceiveModeField->ModifyL(*db); - CleanupStack::PopAndDestroy(smsReceiveModeField); - CleanupStack::PopAndDestroy(db); + iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,socket,ESmsAddrRecvAny); + + ChangeReceiveModeL(RMobileSmsMessaging::EReceiveUnstoredClientAck); _LIT(KTestMsg1,"test message, 8bits, length 30"); @@ -4219,7 +3749,6 @@ iTelephoneNumber=KPekka; iServiceCenterNumber=KRadiolinjaSC; - TSmsDataCodingScheme::TSmsAlphabet alphabet=TSmsDataCodingScheme::ESmsAlphabet8Bit; INFO_PRINTF2(_L("Destination number:..... %S"),&iTelephoneNumber); @@ -4229,19 +3758,15 @@ User::SetUTCOffset(-2*60*60); //Send SMS - - CSmsMessage* smsMessage=CreateSmsMessageL(KTestMsg1,alphabet); - CleanupStack::PushL(smsMessage); + CSmsMessage* smsMessage=CreateSmsMessageLC(KTestMsg1,alphabet); SendSmsL(smsMessage,socket); CleanupStack::PopAndDestroy(smsMessage); + //Receive SMS - INFO_PRINTF1(_L("waiting for incoming SMS...") ); WaitForRecvL(socket); smsMessage = RecvSmsL(socket); - - INFO_PRINTF1(_L("incoming SMS") ); - CleanupStack::PushL(smsMessage); + TestSmsContentsL(smsMessage,KTestMsg1); CleanupStack::PopAndDestroy(smsMessage); @@ -4251,48 +3776,56 @@ TEST(otherReceived ==EFalse); CleanupStack::PopAndDestroy(&socket); - CleanupStack::PopAndDestroy(&socketServer); - - return TestStepResult() ; -} - + return TestStepResult() ; + } TVerdict CTestEnumerateNoMessages::doTestStepL() /** * Test enumerating a message store which has no messages in it. * There are 3 message stores s13 has 0 messages, S14 has 1 message and S15 has 2 messages */ -{ + { INFO_PRINTF1(_L("Test enumerating a message store which has no messages")); - - RSocketServ socketServer; - PrepareRegTestLC(socketServer, 48); - - RSocket socket; - iSmsStackTestUtils->OpenSmsSocketLC(socketServer,socket,ESmsAddrRecvAny); - - // Enumerate messages from Store + iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,socket,ESmsAddrRecvAny); + TRequestStatus status; TPckgBuf sbuf; sbuf()=0; - //Now enumerate messages from store - socket.Ioctl(KIoctlEnumerateSmsMessages,status,&sbuf, KSolSmsProv); - User::WaitForRequest(status); - TEST(status.Int()==KErrNone); - + TBool tryAgain = ETrue; + TInt attempts (0); + TInt maxRetries = 3; + + // Enumerate messages from store. If it fails with KErrNotReady wait for 3 seconds to + // allow sms protocol to fully load and repeat + while( tryAgain && attempts++ < maxRetries ) + { + socket.Ioctl(KIoctlEnumerateSmsMessages,status,&sbuf, KSolSmsProv); + User::WaitForRequest(status); + INFO_PRINTF2(_L("Enumerate messages from store returned [status=%d]"), status.Int()); + + if ( status.Int() == KErrNotReady ) + { + INFO_PRINTF1(_L("Trying to enumerate again... ")); + User::After(3000000); + } + else + { + tryAgain = EFalse; + } + } + + TESTCHECK(status.Int(), KErrNone, "Enumerate messages from store"); + //sbuf() includes the count of messages on Store TInt count = sbuf(); INFO_PRINTF2(_L("%d enumerated messages"), count); TEST(count==3); CleanupStack::PopAndDestroy(&socket); - CleanupStack::PopAndDestroy(&socketServer); - - return TestStepResult() ; -} - + return TestStepResult() ; + } TVerdict CTestIE::doTestStepL() /** @@ -4300,46 +3833,37 @@ */ { INFO_PRINTF1(_L("Test IE")); - - RSocketServ socketServer; - PrepareRegTestLC(socketServer, 52); - - RSocket socket; - iSmsStackTestUtils->OpenSmsSocketLC(socketServer,socket,ESmsAddrRecvAny); - + iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,socket,ESmsAddrRecvAny); //Set destination and SC numbers iTelephoneNumber=KPekka; iServiceCenterNumber=KRadiolinjaSC; CSmsMessage* smsMessage=NULL; - INFO_PRINTF1(_L("waiting for incoming SMS...") ); WaitForRecvL(socket); smsMessage = RecvSmsL(socket); + CleanupStack::PushL(smsMessage); CSmsUserData& recvUserData = smsMessage->SmsPDU().UserData(); TInt numIE=recvUserData.NumInformationElements(); - for(TInt k=0;kOpenSmsSocketLC(socketServer,socket,ESmsAddrEmail); - + iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,socket,ESmsAddrEmail); //Set destination and SC numbers iTelephoneNumber=KPekka; iServiceCenterNumber=KRadiolinjaSC; CSmsMessage* smsMessage=NULL; - TSmsDataCodingScheme::TSmsAlphabet alphabet=TSmsDataCodingScheme::ESmsAlphabet8Bit; - smsMessage=CreateSmsMessageL(KTestMsg1,alphabet); - CleanupStack::PushL(smsMessage); + + smsMessage=CreateSmsMessageLC(KTestMsg1,alphabet); + // case 1 short - one pdu smsMessage->AddEmailHeaderL(KSmsEmailHeaderShort,KSmsEmailBodyShort); - //Send SMS + SendSmsL(smsMessage,socket); CleanupStack::PopAndDestroy(smsMessage); - INFO_PRINTF1(_L("waiting for incoming SMS...") ); + WaitForRecvL(socket); smsMessage = RecvSmsL(socket); CleanupStack::PushL(smsMessage); + CSmsUserData& recvUserData = smsMessage->SmsPDU().UserData(); TInt numIE=recvUserData.NumInformationElements(); - TInt k=0; - for(k=0;kIsEmailHeader(),ETrue,_L("Message does noty contain E-Mail header")); + TEST_CHECKL(smsMessage->IsEmailHeader(),ETrue,_L("Checking if message contains E-Mail header")); HBufC* bd; HBufC* hd; if(smsMessage->GetEmailHeaderL(&hd,&bd)) { - INFO_PRINTF3(_L(" This is e-mail header:len %d %S"),hd->Length(),hd); - INFO_PRINTF3(_L(" This is e-mail body: %d %S"),bd->Length(),bd); - TEST(*hd==KSmsEmailHeaderShort()); - TEST(*bd==KSmsEmailBodyShort()); - logId=smsMessage->LogServerId(); - if(logId!=KLogNullId) + INFO_PRINTF3(_L(" This is e-mail header:len %d %S"),hd->Length(),hd); + INFO_PRINTF3(_L(" This is e-mail body: %d %S"),bd->Length(),bd); + TEST(*hd==KSmsEmailHeaderShort()); + TEST(*bd==KSmsEmailBodyShort()); + logId=smsMessage->LogServerId(); + + if(logId!=KLogNullId) { - TLogSmsPduData pduData; - CLogEvent* logEvent=CLogEvent::NewL(); - CleanupStack::PushL(logEvent); - iSmsStackTestUtils->GetLogEventL(*logEvent,logId); - TPckg packeddata(pduData); - packeddata.Copy(logEvent->Data()); - TEST(packeddata().iTotal==1); - TEST(packeddata().iReceived==1); - CleanupStack::PopAndDestroy(logEvent); + TLogSmsPduData pduData; + CLogEvent* logEvent=CLogEvent::NewL(); + CleanupStack::PushL(logEvent); + iSmsStackTestUtils->GetLogEventL(*logEvent,logId); + TPckg packeddata(pduData); + packeddata.Copy(logEvent->Data()); + TEST(packeddata().iTotal==1); + TEST(packeddata().iReceived==1); + CleanupStack::PopAndDestroy(logEvent); } - delete hd; - delete bd; + delete hd; + delete bd; } - // CleanupStack::PopAndDestroy(smsMessage); // case 2 - long header - - smsMessage=CreateSmsMessageL(KTestMsg1,alphabet); - CleanupStack::PushL(smsMessage); + smsMessage=CreateSmsMessageLC(KTestMsg1,alphabet); smsMessage->AddEmailHeaderL(KSmsEmailHeaderLong,KSmsEmailBodyShort); - //Send SMS SendSmsL(smsMessage,socket); CleanupStack::PopAndDestroy(smsMessage); - INFO_PRINTF1(_L("waiting for incoming SMS...") ); WaitForRecvL(socket); smsMessage = RecvSmsL(socket); CleanupStack::PushL(smsMessage); + + CSmsUserData& recvUserData2 = smsMessage->SmsPDU().UserData(); + numIE=recvUserData2.NumInformationElements(); + + for(TInt i=0; iSmsPDU().UserData(); - TInt numIE=recvUserData2.NumInformationElements(); - for(TInt k=0;kIsEmailHeader(),ETrue,_L("Message does noty contain E-Mail header")); if(smsMessage->GetEmailHeaderL(&hd,&bd)) + { + INFO_PRINTF3(_L(" This is e-mail header:len %d %S"),hd->Length(),hd); + INFO_PRINTF3(_L(" This is e-mail body: %d %S"),bd->Length(),bd); + TEST(*hd==KSmsEmailHeaderLong()); + TEST(*bd==KSmsEmailBodyShort()); + logId=smsMessage->LogServerId(); + if(logId!=KLogNullId) { - INFO_PRINTF3(_L(" This is e-mail header:len %d %S"),hd->Length(),hd); - INFO_PRINTF3(_L(" This is e-mail body: %d %S"),bd->Length(),bd); - TEST(*hd==KSmsEmailHeaderLong()); - TEST(*bd==KSmsEmailBodyShort()); - logId=smsMessage->LogServerId(); - if(logId!=KLogNullId) - { - TLogSmsPduData pduData; - CLogEvent* logEvent=CLogEvent::NewL(); - CleanupStack::PushL(logEvent); - iSmsStackTestUtils->GetLogEventL(*logEvent,logId); - TPckg packeddata(pduData); - packeddata.Copy(logEvent->Data()); - TEST(packeddata().iTotal==2); - TEST(packeddata().iReceived==2); - CleanupStack::PopAndDestroy(logEvent); - } - delete hd; - delete bd; + TLogSmsPduData pduData; + CLogEvent* logEvent=CLogEvent::NewL(); + CleanupStack::PushL(logEvent); + iSmsStackTestUtils->GetLogEventL(*logEvent,logId); + TPckg packeddata(pduData); + packeddata.Copy(logEvent->Data()); + TEST(packeddata().iTotal==2); + TEST(packeddata().iReceived==2); + CleanupStack::PopAndDestroy(logEvent); } - // + delete hd; + delete bd; + } CleanupStack::PopAndDestroy(smsMessage); // case 3 - short header long body - smsMessage=CreateSmsMessageL(KTestMsg1,alphabet); - CleanupStack::PushL(smsMessage); + smsMessage=CreateSmsMessageLC(KTestMsg1,alphabet); smsMessage->AddEmailHeaderL(KSmsEmailHeaderShort,KSmsEmailBodyLong); @@ -4482,249 +3996,214 @@ WaitForRecvL(socket); smsMessage = RecvSmsL(socket); CleanupStack::PushL(smsMessage); + + CSmsUserData& recvUserData3 = smsMessage->SmsPDU().UserData(); + numIE = recvUserData3.NumInformationElements(); + for(TInt i=0; iSmsPDU().UserData(); - TInt numIE=recvUserData3.NumInformationElements(); - for(TInt k=0;kIsEmailHeader(),ETrue,_L("Message does noty contain E-Mail header")); - if(smsMessage->GetEmailHeaderL(&hd,&bd)) - { - INFO_PRINTF3(_L(" This is e-mail header:len %d %S"),hd->Length(),hd); - INFO_PRINTF3(_L(" This is e-mail body: %d %S"),bd->Length(),bd); - TEST(*hd==KSmsEmailHeaderShort()); - TEST(*bd==KSmsEmailBodyLong()); - logId=smsMessage->LogServerId(); - if(logId!=KLogNullId) - { - TLogSmsPduData pduData; - CLogEvent* logEvent=CLogEvent::NewL(); - CleanupStack::PushL(logEvent); - iSmsStackTestUtils->GetLogEventL(*logEvent,logId); - TPckg packeddata(pduData); - packeddata.Copy(logEvent->Data()); - TEST(packeddata().iTotal==2); - TEST(packeddata().iReceived==2); - CleanupStack::PopAndDestroy(logEvent); - } - delete hd; - delete bd; - } - // - CleanupStack::PopAndDestroy(smsMessage); - - - // case 4 - long header long body - - smsMessage=CreateSmsMessageL(KTestMsg1,alphabet); - CleanupStack::PushL(smsMessage); - - smsMessage->AddEmailHeaderL(KSmsEmailHeaderLong,KSmsEmailBodyLong); - - //Send SMS - SendSmsL(smsMessage,socket); - CleanupStack::PopAndDestroy(smsMessage); - - INFO_PRINTF1(_L("waiting for incoming SMS...") ); - WaitForRecvL(socket); - smsMessage = RecvSmsL(socket); - CleanupStack::PushL(smsMessage); - { - CSmsUserData& recvUserData4 = smsMessage->SmsPDU().UserData(); - TInt numIE=recvUserData4.NumInformationElements(); - for(TInt k=0;kIsEmailHeader(),ETrue,_L("Message does noty contain E-Mail header")); if(smsMessage->GetEmailHeaderL(&hd,&bd)) + { + INFO_PRINTF3(_L(" This is e-mail header:len %d %S"),hd->Length(),hd); + INFO_PRINTF3(_L(" This is e-mail body: %d %S"),bd->Length(),bd); + TEST(*hd==KSmsEmailHeaderShort()); + TEST(*bd==KSmsEmailBodyLong()); + logId=smsMessage->LogServerId(); + if(logId!=KLogNullId) { - INFO_PRINTF3(_L(" This is e-mail header:len %d %S"),hd->Length(),hd); - INFO_PRINTF3(_L(" This is e-mail body: %d %S"),bd->Length(),bd); - TEST(*hd==KSmsEmailHeaderLong()); - TEST(*bd==KSmsEmailBodyLong()); - logId=smsMessage->LogServerId(); - if(logId!=KLogNullId) - { - TLogSmsPduData pduData; - CLogEvent* logEvent=CLogEvent::NewL(); - CleanupStack::PushL(logEvent); - iSmsStackTestUtils->GetLogEventL(*logEvent,logId); - TPckg packeddata(pduData); - packeddata.Copy(logEvent->Data()); - TEST(packeddata().iTotal==3); - TEST(packeddata().iReceived==3); - CleanupStack::PopAndDestroy(logEvent); - } - delete hd; - delete bd; + TLogSmsPduData pduData; + CLogEvent* logEvent=CLogEvent::NewL(); + CleanupStack::PushL(logEvent); + iSmsStackTestUtils->GetLogEventL(*logEvent,logId); + TPckg packeddata(pduData); + packeddata.Copy(logEvent->Data()); + TEST(packeddata().iTotal==2); + TEST(packeddata().iReceived==2); + CleanupStack::PopAndDestroy(logEvent); } - // + delete hd; + delete bd; + } CleanupStack::PopAndDestroy(smsMessage); - - // case 5 - long header long body, unicode - - smsMessage=CreateSmsMessageL(KTestMsg1,TSmsDataCodingScheme::ESmsAlphabetUCS2); - CleanupStack::PushL(smsMessage); + // case 4 - long header long body + smsMessage=CreateSmsMessageLC(KTestMsg1,alphabet); smsMessage->AddEmailHeaderL(KSmsEmailHeaderLong,KSmsEmailBodyLong); - //Send SMS SendSmsL(smsMessage,socket); CleanupStack::PopAndDestroy(smsMessage); - INFO_PRINTF1(_L("waiting for incoming SMS...") ); WaitForRecvL(socket); smsMessage = RecvSmsL(socket); CleanupStack::PushL(smsMessage); + + CSmsUserData& recvUserData4 = smsMessage->SmsPDU().UserData(); + numIE=recvUserData4.NumInformationElements(); + + for(TInt i=0; iSmsPDU().UserData(); - TInt numIE=recvUserData4.NumInformationElements(); - for(TInt k=0;kIsEmailHeader(),ETrue,_L("Message does noty contain E-Mail header")); + if(smsMessage->GetEmailHeaderL(&hd,&bd)) + { + INFO_PRINTF3(_L(" This is e-mail header:len %d %S"),hd->Length(),hd); + INFO_PRINTF3(_L(" This is e-mail body: %d %S"),bd->Length(),bd); + TEST(*hd==KSmsEmailHeaderLong()); + TEST(*bd==KSmsEmailBodyLong()); + logId=smsMessage->LogServerId(); + if(logId!=KLogNullId) { - CSmsInformationElement& ie=recvUserData4.InformationElement(k); - TPtr8 ptr(ie.Data()); - INFO_PRINTF4(_L(" %d. ie is %d %S"),k,ie.Identifier(),&ptr); + TLogSmsPduData pduData; + CLogEvent* logEvent=CLogEvent::NewL(); + CleanupStack::PushL(logEvent); + iSmsStackTestUtils->GetLogEventL(*logEvent,logId); + TPckg packeddata(pduData); + packeddata.Copy(logEvent->Data()); + TEST(packeddata().iTotal==3); + TEST(packeddata().iReceived==3); + CleanupStack::PopAndDestroy(logEvent); } + delete hd; + delete bd; + } + + CleanupStack::PopAndDestroy(smsMessage); + + // case 5 - long header, long body, unicode + smsMessage=CreateSmsMessageLC(KTestMsg1,TSmsDataCodingScheme::ESmsAlphabetUCS2); + + smsMessage->AddEmailHeaderL(KSmsEmailHeaderLong,KSmsEmailBodyLong); + + SendSmsL(smsMessage,socket); + CleanupStack::PopAndDestroy(smsMessage); + + WaitForRecvL(socket); + smsMessage = RecvSmsL(socket); + CleanupStack::PushL(smsMessage); + + CSmsUserData& recvUserData5 = smsMessage->SmsPDU().UserData(); + numIE=recvUserData5.NumInformationElements(); + for(TInt i=0; iIsEmailHeader(),ETrue,_L("Message does noty contain E-Mail header")); if(smsMessage->GetEmailHeaderL(&hd,&bd)) + { + INFO_PRINTF3(_L(" This is e-mail header:len %d %S"),hd->Length(),hd); + INFO_PRINTF3(_L(" This is e-mail body: %d %S"),bd->Length(),bd); + TEST(*hd==KSmsEmailHeaderLong()); + TEST(*bd==KSmsEmailBodyLong()); + logId=smsMessage->LogServerId(); + if(logId!=KLogNullId) { - INFO_PRINTF3(_L(" This is e-mail header:len %d %S"),hd->Length(),hd); - INFO_PRINTF3(_L(" This is e-mail body: %d %S"),bd->Length(),bd); - TEST(*hd==KSmsEmailHeaderLong()); - TEST(*bd==KSmsEmailBodyLong()); - logId=smsMessage->LogServerId(); - if(logId!=KLogNullId) - { - TLogSmsPduData pduData; - CLogEvent* logEvent=CLogEvent::NewL(); - CleanupStack::PushL(logEvent); - iSmsStackTestUtils->GetLogEventL(*logEvent,logId); - TPckg packeddata(pduData); - packeddata.Copy(logEvent->Data()); - TEST(packeddata().iTotal==6); - TEST(packeddata().iReceived==6); - CleanupStack::PopAndDestroy(logEvent); - } - delete hd; - delete bd; + TLogSmsPduData pduData; + CLogEvent* logEvent=CLogEvent::NewL(); + CleanupStack::PushL(logEvent); + iSmsStackTestUtils->GetLogEventL(*logEvent,logId); + TPckg packeddata(pduData); + packeddata.Copy(logEvent->Data()); + TEST(packeddata().iTotal==6); + TEST(packeddata().iReceived==6); + CleanupStack::PopAndDestroy(logEvent); } - // + delete hd; + delete bd; + } CleanupStack::PopAndDestroy(smsMessage); - // case 6 - long header long body, 7bit - - smsMessage=CreateSmsMessageL(KTestMsg1,TSmsDataCodingScheme::ESmsAlphabet7Bit); - CleanupStack::PushL(smsMessage); + smsMessage=CreateSmsMessageLC(KTestMsg1,TSmsDataCodingScheme::ESmsAlphabet7Bit); smsMessage->AddEmailHeaderL(KSmsEmailHeaderLong,KSmsEmailBodyLong); - //Send SMS SendSmsL(smsMessage,socket); CleanupStack::PopAndDestroy(smsMessage); - INFO_PRINTF1(_L("waiting for incoming SMS...") ); WaitForRecvL(socket); smsMessage = RecvSmsL(socket); CleanupStack::PushL(smsMessage); + + CSmsUserData& recvUserData6 = smsMessage->SmsPDU().UserData(); + numIE=recvUserData6.NumInformationElements(); + + for(TInt i=0; iSmsPDU().UserData(); - TInt numIE=recvUserData4.NumInformationElements(); - for(TInt k=0;kIsEmailHeader(),ETrue,_L("Message does noty contain E-Mail header")); if(smsMessage->GetEmailHeaderL(&hd,&bd)) + { + INFO_PRINTF3(_L(" This is e-mail header:len %d %S"),hd->Length(),hd); + INFO_PRINTF3(_L(" This is e-mail body: %d %S"),bd->Length(),bd); + TEST(*hd==KSmsEmailHeaderLong()); + TEST(*bd==KSmsEmailBodyLong()); + logId=smsMessage->LogServerId(); + if(logId!=KLogNullId) { - INFO_PRINTF3(_L(" This is e-mail header:len %d %S"),hd->Length(),hd); - INFO_PRINTF3(_L(" This is e-mail body: %d %S"),bd->Length(),bd); - TEST(*hd==KSmsEmailHeaderLong()); - TEST(*bd==KSmsEmailBodyLong()); - logId=smsMessage->LogServerId(); - if(logId!=KLogNullId) - { - TLogSmsPduData pduData; - CLogEvent* logEvent=CLogEvent::NewL(); - CleanupStack::PushL(logEvent); - iSmsStackTestUtils->GetLogEventL(*logEvent,logId); - TPckg packeddata(pduData); - packeddata.Copy(logEvent->Data()); - TEST(packeddata().iTotal==3); - TEST(packeddata().iReceived==3); - CleanupStack::PopAndDestroy(logEvent); - } - delete hd; - delete bd; + TLogSmsPduData pduData; + CLogEvent* logEvent=CLogEvent::NewL(); + CleanupStack::PushL(logEvent); + iSmsStackTestUtils->GetLogEventL(*logEvent,logId); + TPckg packeddata(pduData); + packeddata.Copy(logEvent->Data()); + TEST(packeddata().iTotal==3); + TEST(packeddata().iReceived==3); + CleanupStack::PopAndDestroy(logEvent); } - // + delete hd; + delete bd; + } + CleanupStack::PopAndDestroy(smsMessage); CleanupStack::PopAndDestroy(&socket); - CleanupStack::PopAndDestroy(&socketServer); - return TestStepResult() ; } - - TVerdict CTestMaxReadTimeForSmsStoreList::doTestStepL() /** * Test Sms message storage */ { INFO_PRINTF1(_L("Enumerating a phone store list that takes 254 seconds")); - - RSocketServ socketServer; - PrepareRegTestLC(socketServer, 54); - - // Open the socket for SIM operations RSocket socket; - iSmsStackTestUtils->OpenSmsSocketLC(socketServer,socket,ESmsAddrRecvAny); + iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer, socket, ESmsAddrLocalOperation); // Enumerate messages - RPointerArray messages; CleanupResetAndDestroyPushL(messages); ReadSmsStoreL(socket, messages); + const TInt count = messages.Count(); - - // Check that request successfully retrieved 2 messages - // after 254 seconds. - - TEST(count == 2); + TESTCHECK(count, 2, "Request retrieved 2 messages after 254 seconds"); CleanupStack::PopAndDestroy(&messages); CleanupStack::PopAndDestroy(&socket); - CleanupStack::PopAndDestroy(&socketServer); - return TestStepResult(); } - TVerdict CTestSameLogIdMultiplePDU::doTestStepL() /** * Resend Multi PDU SMS message with same log id" @@ -4752,32 +4231,10 @@ INFO_PRINTF1(_L(" Test that sent SMS consisting of Multiple PDUs with the same logId")); TLogId logid; TLogSmsPduData pduData; - - RSocketServ socketServer; - PrepareRegTestLC(socketServer, 57); - - RSocket socket; - iSmsStackTestUtils->OpenSmsSocketLC(socketServer,socket,ESmsAddrRecvAny); - - // Create comms database object -#ifdef SYMBIAN_NON_SEAMLESS_NETWORK_BEARER_MOBILITY - CMDBSession* db = CMDBSession::NewL(KCDVersion1_2); -#else - CMDBSession* db = CMDBSession::NewL(KCDVersion1_1); -#endif - CleanupStack::PushL(db); - - INFO_PRINTF1(_L("Testing recvMode change to EReceiveUnstoredClientAck")); - - // EReceiveUnstoredClientAck - CMDBField* smsReceiveModeField = new(ELeave) CMDBField(KCDTIdSMSReceiveMode); - CleanupStack::PushL(smsReceiveModeField); - smsReceiveModeField->SetRecordId(1); //it's GlobalSettingsRecord - *smsReceiveModeField = RMobileSmsMessaging::EReceiveUnstoredClientAck; - smsReceiveModeField->ModifyL(*db); - CleanupStack::PopAndDestroy(smsReceiveModeField); - CleanupStack::PopAndDestroy(db); + iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,socket,ESmsAddrRecvAny); + + ChangeReceiveModeL(RMobileSmsMessaging::EReceiveUnstoredClientAck); // Initialization // Message String @@ -4794,9 +4251,30 @@ INFO_PRINTF2(_L("ServiceCenter number:... %S"),&iServiceCenterNumber); // Twice send an Sms with the same logid - step 1 - // Create a Message - CSmsMessage* smsMessage=CreateSmsMessageL(KTestMsg1,alphabet); + CSmsMessage* smsMessage=CreateSmsMessageLC(KTestMsg1,alphabet); + pduData.iType=smsMessage->Type(); + + // Get a log Id + logid=iSmsStackTestUtils->AddLogEventL(*smsMessage,pduData); + smsMessage->SetLogServerId(logid); + INFO_PRINTF2(_L("Sends message with log id %d"),logid); + + SendSmsL(smsMessage,socket); + // Send SMS again + SendSmsL(smsMessage,socket); + + CleanupStack::PopAndDestroy(smsMessage); + + WaitForRecvL(socket); + smsMessage = RecvSmsL(socket); + CleanupStack::PushL(smsMessage); + TestSmsContentsL(smsMessage,KTestMsg1); + CleanupStack::PopAndDestroy(smsMessage); + + // Twice send an Sms with the same logid - step 2 + // Create a Message + smsMessage=CreateSmsMessageLC(KTestMsg1,alphabet); pduData.iType=smsMessage->Type(); // Get a log Id @@ -4812,49 +4290,17 @@ CleanupStack::PopAndDestroy(smsMessage); //Receive SMS - INFO_PRINTF1(_L("waiting for incoming SMS...") ); WaitForRecvL(socket); smsMessage = RecvSmsL(socket); - INFO_PRINTF1(_L("incoming SMS arrived") ); CleanupStack::PushL(smsMessage); TestSmsContentsL(smsMessage,KTestMsg1); - CleanupStack::PopAndDestroy(smsMessage); - - // Twice send an Sms with the same logid - step 2 - // Create a Message - smsMessage=CreateSmsMessageL(KTestMsg1,alphabet); - CleanupStack::PushL(smsMessage); - pduData.iType=smsMessage->Type(); - - // Get a log Id - logid=iSmsStackTestUtils->AddLogEventL(*smsMessage,pduData); - smsMessage->SetLogServerId(logid); - INFO_PRINTF2(_L("Sends message with log id %d"),logid); - - // Send SMS - SendSmsL(smsMessage,socket); - // Send SMS again - SendSmsL(smsMessage,socket); CleanupStack::PopAndDestroy(smsMessage); - - //Receive SMS - INFO_PRINTF1(_L("waiting for incoming SMS...") ); - WaitForRecvL(socket); - smsMessage = RecvSmsL(socket); - INFO_PRINTF1(_L("incoming SMS arrived") ); - - CleanupStack::PushL(smsMessage); - TestSmsContentsL(smsMessage,KTestMsg1); - CleanupStack::PopAndDestroy(smsMessage); CleanupStack::PopAndDestroy(&socket); - CleanupStack::PopAndDestroy(&socketServer); - return TestStepResult(); } - TVerdict CTestSameLogIdSinglePDU::doTestStepL() /** * Resend Single PDU SMS message with same log id" @@ -4882,34 +4328,11 @@ INFO_PRINTF1(_L(" Test that sent SMS consisting of single PDUs with the same logId")); TLogId logid; TLogSmsPduData pduData; - - RSocketServ socketServer; - PrepareRegTestLC(socketServer, 58); + RSocket socket; + iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,socket,ESmsAddrRecvAny); - - RSocket socket; - iSmsStackTestUtils->OpenSmsSocketLC(socketServer,socket,ESmsAddrRecvAny); - - // Create comms database object -#ifdef SYMBIAN_NON_SEAMLESS_NETWORK_BEARER_MOBILITY - CMDBSession* db = CMDBSession::NewL(KCDVersion1_2); -#else - CMDBSession* db = CMDBSession::NewL(KCDVersion1_1); -#endif - CleanupStack::PushL(db); - - INFO_PRINTF1(_L("Testing recvMode change to EReceiveUnstoredClientAck")); - - // EReceiveUnstoredClientAck - CMDBField* smsReceiveModeField = new(ELeave) CMDBField(KCDTIdSMSReceiveMode); - CleanupStack::PushL(smsReceiveModeField); - smsReceiveModeField->SetRecordId(1); //it's GlobalSettingsRecord - *smsReceiveModeField = RMobileSmsMessaging::EReceiveUnstoredClientAck; - smsReceiveModeField->ModifyL(*db); - CleanupStack::PopAndDestroy(smsReceiveModeField); - CleanupStack::PopAndDestroy(db); - // Initialization - // Message String + ChangeReceiveModeL(RMobileSmsMessaging::EReceiveUnstoredClientAck); + _LIT(KTestMsg1,"CCCCCCC"); //Set destination and SC numbers @@ -4934,8 +4357,7 @@ // Twice send an Sms with the same logid - step 1 // Create a Message - smsMessage=CreateSmsMessageL(KTestMsg1,alphabet); - CleanupStack::PushL(smsMessage); + smsMessage=CreateSmsMessageLC(KTestMsg1,alphabet); pduData.iType=smsMessage->Type(); // Get a log Id @@ -4951,19 +4373,15 @@ CleanupStack::PopAndDestroy(smsMessage); // Receive SMS - INFO_PRINTF1(_L("waiting for incoming SMS...") ); WaitForRecvL(socket); smsMessage = RecvSmsL(socket); - INFO_PRINTF1(_L("incoming SMS arrived") ); CleanupStack::PushL(smsMessage); TestSmsContentsL(smsMessage,KTestMsg1); CleanupStack::PopAndDestroy(smsMessage); // Twice send an Sms with the same logid - step 2 - // Create a Message - smsMessage=CreateSmsMessageL(KTestMsg1,alphabet); - CleanupStack::PushL(smsMessage); + smsMessage=CreateSmsMessageLC(KTestMsg1,alphabet); pduData.iType=smsMessage->Type(); // Get a log Id @@ -4979,10 +4397,8 @@ CleanupStack::PopAndDestroy(smsMessage); //Receive SMS - INFO_PRINTF1(_L("waiting for incoming SMS...") ); WaitForRecvL(socket); smsMessage = RecvSmsL(socket); - INFO_PRINTF1(_L("incoming SMS arrived") ); CleanupStack::PushL(smsMessage); TestSmsContentsL(smsMessage,KTestMsg1); @@ -4990,14 +4406,10 @@ } CleanupStack::PopAndDestroy(&socket); - CleanupStack::PopAndDestroy(&socketServer); - - return TestStepResult(); } - -CTestLog* CTestLog::NewLC(CSmsStackTestUtils& aUtils, RFs& aFs, CSmsPrtTestStep* aTest, TInt aPriority) +CTestLog* CTestLog::NewLC(CSmsStackTestUtils& aUtils, RFs& aFs, CSmsBaseTestStep* aTest, TInt aPriority) { CTestLog* self = new (ELeave) CTestLog(aUtils, aTest, aPriority); CleanupStack::PushL(self); @@ -5005,7 +4417,7 @@ return self; } -CTestLog::CTestLog(CSmsStackTestUtils& aUtils, CSmsPrtTestStep* aTest, TInt aPriority) +CTestLog::CTestLog(CSmsStackTestUtils& aUtils, CSmsBaseTestStep* aTest, TInt aPriority) : CActive(aPriority), iUtils(aUtils), iTest(aTest) { CActiveScheduler::Add(this); @@ -5014,15 +4426,15 @@ CTestLog::~CTestLog() { Cancel(); - delete iMessage; + iSocket.Close(); delete iLogChecker; delete iEventLogger; + delete iMessage; iAddedIds.Close(); } void CTestLog::StartOriginalL() { - iAddedIds.Reset(); iLogChecker->CountOriginalIdsL(iStatus); @@ -5032,8 +4444,6 @@ //TEST(KErrNone == iStatus.Int()); iTest->testBooleanTrue(KErrNone == iStatus.Int(),(TText8*)__FILE__, __LINE__); - - } void CTestLog::StartCompareL(TInt aExpectError) @@ -5047,23 +4457,23 @@ } _LIT(KLongText,"3 PDU test SMS message. " -L"3 PDU test SMS message. " -L"3 PDU test SMS message. " -L"3 PDU test SMS message. " -L"3 PDU test SMS message. " -L"3 PDU test SMS message. " -L"3 PDU test SMS message. " -L"3 PDU test SMS message. " -L"3 PDU test SMS message. " -L"3 PDU test SMS message. " -L"3 PDU test SMS message. " -L"3 PDU test SMS message. " -L"3 PDU test SMS message. " -L"3 PDU test SMS message. " -L"3 PDU test SMS message. " -L"3 PDU test SMS message. " -L"3 PDU test SMS message. " -L"The End."); + L"3 PDU test SMS message. " + L"3 PDU test SMS message. " + L"3 PDU test SMS message. " + L"3 PDU test SMS message. " + L"3 PDU test SMS message. " + L"3 PDU test SMS message. " + L"3 PDU test SMS message. " + L"3 PDU test SMS message. " + L"3 PDU test SMS message. " + L"3 PDU test SMS message. " + L"3 PDU test SMS message. " + L"3 PDU test SMS message. " + L"3 PDU test SMS message. " + L"3 PDU test SMS message. " + L"3 PDU test SMS message. " + L"3 PDU test SMS message. " + L"The End."); void CTestLog::StartL() { @@ -5072,38 +4482,28 @@ iTest->SendSmsL(iMessage,iSocket); - //INFO_PRINTF1(_L("waiting for incoming SMS...") ); - iTest->Logger().LogExtra(((TText8*)__FILE__), __LINE__, ESevrInfo, (_L("waiting for incoming SMS...\n"))); - delete iMessage; iMessage = NULL; iTest->WaitForRecvL(iSocket); iMessage = iTest->RecvSmsL(iSocket); - //INFO_PRINTF1(_L("incoming SMS") ); - iTest->Logger().LogExtra(((TText8*)__FILE__), __LINE__, ESevrInfo, (_L("incoming SMS\n"))); - iTest->TestSmsContentsL(iMessage,KLongText); + iTest->TestSmsContentsL(iMessage, KLongText); User::LeaveIfError(iAddedIds.Append(iMessage->LogServerId())); StartCompareL(KErrNone); - delete iMessage; iMessage = NULL; - - CleanupStack::PopAndDestroy(&iSocket); - CleanupStack::PopAndDestroy(&iSocketServer); } void CTestLog::ConstructL(RFs& aFs) { iLogChecker = CSmsLogChecker::NewL(aFs, iTest, Priority()); iEventLogger = CSmsEventLogger::NewL(aFs, Priority()); - - iTest->PrepareRegTestLC(iSocketServer, 50); - - iTest->iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,iSocket,ESmsAddrRecvAny); + +// iTest->ConnectSocketServerL(iSocketServer); + iTest->iSmsStackTestUtils->OpenSmsSocketL(iTest->iSocketServer,iSocket,ESmsAddrRecvAny); //Set destination and SC numbers iTest->iTelephoneNumber=KRegTestNumber; @@ -5134,12 +4534,10 @@ { INFO_PRINTF1(_L("Test Tx and Rx SMS with 3 PDU message")); - CTestLog* testLog = CTestLog::NewLC(*iSmsStackTestUtils, iFs,this, CActive::EPriorityStandard); testLog->StartL(); CleanupStack::PopAndDestroy(testLog); - return TestStepResult(); } @@ -5147,19 +4545,14 @@ TVerdict CTestEnumerationOfStatusReport::doTestStepL() { INFO_PRINTF1(_L("Test enumeration of status report")); - - RSocketServ socketServer; - PrepareRegTestLC(socketServer, 51); - - RSocket socket; - iSmsStackTestUtils->OpenSmsSocketLC(socketServer,socket,ESmsAddrLocalOperation); + iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,socket,ESmsAddrLocalOperation); CSmsMessage* smsMessage = CreateSmsMessageLC(CSmsPDU::ESmsStatusReport, CSmsBuffer::NewL(), iTelephoneNumber); smsMessage->SetStorage(CSmsMessage::ESmsSIMStorage); - WriteToSIML(socket, *smsMessage); + WriteSmsToSimL(*smsMessage, socket); // Enumerate messages from Store TRequestStatus status; @@ -5169,7 +4562,7 @@ //Now enumerate messages from store socket.Ioctl(KIoctlEnumerateSmsMessages,status,&sbuf, KSolSmsProv); User::WaitForRequest(status); - TEST(status.Int() == KErrNone); + TESTCHECK(status.Int(), KErrNone, "Enumerate messages from store"); //sbuf() includes the count of messages on Store TInt count = sbuf(); @@ -5178,37 +4571,26 @@ CleanupStack::PopAndDestroy(smsMessage); CleanupStack::PopAndDestroy(&socket); - CleanupStack::PopAndDestroy(&socketServer); - - return TestStepResult(); + return TestStepResult(); } - TVerdict CTestWriteStatusReportToSIM::doTestStepL() { INFO_PRINTF1(_L("Test write of status report to SIM")); - - RSocketServ socketServer; - PrepareRegTestLC(socketServer, 49); - - RSocket socket; - iSmsStackTestUtils->OpenSmsSocketLC(socketServer,socket,ESmsAddrLocalOperation); + iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,socket,ESmsAddrLocalOperation); CSmsMessage* smsMessage = CreateSmsMessageLC(CSmsPDU::ESmsStatusReport, CSmsBuffer::NewL(), iTelephoneNumber); smsMessage->SetStorage(CSmsMessage::ESmsSIMStorage); - WriteToSIML(socket, *smsMessage); + WriteSmsToSimL(*smsMessage, socket); CleanupStack::PopAndDestroy(smsMessage); CleanupStack::PopAndDestroy(&socket); - CleanupStack::PopAndDestroy(&socketServer); - return TestStepResult(); } - TVerdict CTestTxSmsWithDelayedCompletion::doTestStepL() { /** @@ -5218,34 +4600,11 @@ * and adding a delay to the SIM TSY's completion time in tsms_config.txt. * DEF047240 - read sendTryTimeout from ESK file */ - INFO_PRINTF1(_L("Test Simple Tx SMS")); - - RSocketServ socketServer; - PrepareRegTestLC(socketServer, 60); - - RSocket socket; - iSmsStackTestUtils->OpenSmsSocketLC(socketServer,socket,ESmsAddrRecvAny); - - // Create comms database object -#ifdef SYMBIAN_NON_SEAMLESS_NETWORK_BEARER_MOBILITY - CMDBSession* db = CMDBSession::NewL(KCDVersion1_2); -#else - CMDBSession* db = CMDBSession::NewL(KCDVersion1_1); -#endif - CleanupStack::PushL(db); - - INFO_PRINTF1(_L("Testing recvMode change to EReceiveUnstoredClientAck")); - - // EReceiveUnstoredClientAck - CMDBField* smsReceiveModeField = new(ELeave) CMDBField(KCDTIdSMSReceiveMode); - CleanupStack::PushL(smsReceiveModeField); - smsReceiveModeField->SetRecordId(1); //it's GlobalSettingsRecord - *smsReceiveModeField = RMobileSmsMessaging::EReceiveUnstoredClientAck; - smsReceiveModeField->ModifyL(*db); - CleanupStack::PopAndDestroy(smsReceiveModeField); - CleanupStack::PopAndDestroy(db); + iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,socket,ESmsAddrRecvAny); + + ChangeReceiveModeL(RMobileSmsMessaging::EReceiveUnstoredClientAck); _LIT(KTestMsg1,"test message, 8bits, length 30"); @@ -5254,26 +4613,21 @@ iServiceCenterNumber=KRadiolinjaSC; TSmsDataCodingScheme::TSmsAlphabet alphabet=TSmsDataCodingScheme::ESmsAlphabet8Bit; - CSmsMessage* smsMessage=CreateSmsMessageL(KTestMsg1,alphabet); - CleanupStack::PushL(smsMessage); + CSmsMessage* smsMessage=CreateSmsMessageLC(KTestMsg1,alphabet); INFO_PRINTF2(_L("Destination number:..... %S"),&iTelephoneNumber); INFO_PRINTF2(_L("ServiceCenter number:... %S"),&iServiceCenterNumber); //Send SMS SendSmsL(smsMessage,socket); - CleanupStack::PopAndDestroy(smsMessage); INFO_PRINTF1(_L("SMS message sent successfully") ); CleanupStack::PopAndDestroy(&socket); - CleanupStack::PopAndDestroy(&socketServer); - return TestStepResult(); }; - TVerdict CTestSmsStoreReadCancel::doTestStepL() /** * Test Sms message storage - cancel during read @@ -5282,7 +4636,6 @@ return TestStepResult() ; } - TVerdict CTestBindWhenPoweredDownWithPublishSubscribe::doTestStepL() /** * Test bind()ing when powered-down, and subsequent dequeueing of messages upon power-up @@ -5291,14 +4644,7 @@ { INFO_PRINTF1(_L("Test bind() when powered-down with Publish and Subscribe")); - RSocketServ socketServer; - TInt ret = socketServer.Connect(KSocketMessageSlots); - TESTL(ret == KErrNone); - CleanupClosePushL(socketServer); - - // Now switch phone off INFO_PRINTF1(_L("switching phone off") ); - RProperty phonePowerProperty; User::LeaveIfError(phonePowerProperty.Attach(KUidSystemCategory, KUidPhonePwr.iUid)); CleanupClosePushL(phonePowerProperty); @@ -5306,21 +4652,10 @@ // Create the socket and open for SIM operations RSocket socket; INFO_PRINTF1(_L("binding socket") ); - iSmsStackTestUtils->OpenSmsSocketLC(socketServer,socket,ESmsAddrRecvAny); + iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,socket,ESmsAddrRecvAny); // knock power off because opening of socket brought it up - TRequestStatus status; - TInt phonePowerCheck; - do - { - phonePowerProperty.Subscribe(status); - User::LeaveIfError(phonePowerProperty.Set(KUidSystemCategory,KUidPhonePwr.iUid,ESAPhoneOff)); - User::After(5 * 1000000); // sleep 5 secs; - User::WaitForRequest(status); - TEST(status.Int() == KErrNone); - User::LeaveIfError(phonePowerProperty.Get(phonePowerCheck)); - } - while (phonePowerCheck==ESAPhoneOn); + UpdatePhonePowerStatusL(phonePowerProperty, ESAPhoneOff); // Set the SimTSY config. SetSimTSYTestNumberL(29); @@ -5330,17 +4665,8 @@ TEST_CHECKL(bRcv, EFalse, _L("Receive should fail with phone off")); // Power on & wait for rx again - do - { - phonePowerProperty.Subscribe(status); - User::LeaveIfError(phonePowerProperty.Set(KUidSystemCategory,KUidPhonePwr.iUid,ESAPhoneOn)); - User::After(5 * 1000000); // sleep 5 secs; - User::WaitForRequest(status); - TEST(status.Int() == KErrNone); - User::LeaveIfError(phonePowerProperty.Get(phonePowerCheck)); - } - while (phonePowerCheck==ESAPhoneOff); - + UpdatePhonePowerStatusL(phonePowerProperty, ESAPhoneOn); + // Briefly wait for receipt on it - this should now happen bRcv = TimedWaitForRecvL(socket, 5 * 1000000); TEST_CHECKL(bRcv, ETrue, _L("Receive should now succeed with phone on again")); @@ -5350,16 +4676,13 @@ TPtrC fromAddr = smsMessage->ToFromAddress(); INFO_PRINTF2(_L("Received SMS from: %S"), &fromAddr); + CleanupStack::PopAndDestroy(smsMessage); - CleanupStack::PopAndDestroy(&socket); CleanupStack::PopAndDestroy(&phonePowerProperty); - CleanupStack::PopAndDestroy(&socketServer); - - return TestStepResult() ; + return TestStepResult() ; } - TVerdict CTestObserverNotifiedWhenPoweredDownWithPublishSubscribe::doTestStepL() /** * Fix Defect 42937 @@ -5381,11 +4704,6 @@ */ { INFO_PRINTF1(_L("Test observer when powered-down")); - - RSocketServ socketServer; - PrepareRegTestLC(socketServer, 59); - - // Open the socket and bind it to ESmsAddrApplication16BitPort 245 RSocket socket; TSmsAddr addr16; @@ -5393,7 +4711,7 @@ TInt port(245); addr16.SetPort(port); - iSmsStackTestUtils->OpenSmsSocketLC(socketServer,socket,addr16); + iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,socket,addr16); // Switch phone off, causing the stack to notify the observer // corresponding to ESmsAddrApplication16BitPort 245 @@ -5404,39 +4722,16 @@ CleanupClosePushL(phonePowerProperty); // knock power off because opening of socket brought it up - TInt phonePowerCheck; - TRequestStatus status; - do - { - phonePowerProperty.Subscribe(status); - User::LeaveIfError(phonePowerProperty.Set(KUidSystemCategory,KUidPhonePwr.iUid,ESAPhoneOff)); - User::After(5 * 1000000); // sleep 5 secs; - User::WaitForRequest(status); - TEST(status.Int() == KErrNone); - User::LeaveIfError(phonePowerProperty.Get(phonePowerCheck)); - } - while (phonePowerCheck==ESAPhoneOn); + UpdatePhonePowerStatusL(phonePowerProperty, ESAPhoneOff); // bring power back up - do - { - phonePowerProperty.Subscribe(status); - User::LeaveIfError(phonePowerProperty.Set(KUidSystemCategory,KUidPhonePwr.iUid,ESAPhoneOn)); - User::After(5 * 1000000); // sleep 5 secs; - User::WaitForRequest(status); - TEST(status.Int() == KErrNone); - User::LeaveIfError(phonePowerProperty.Get(phonePowerCheck)); - } - while (phonePowerCheck==ESAPhoneOff); + UpdatePhonePowerStatusL(phonePowerProperty, ESAPhoneOn); CleanupStack::PopAndDestroy(&phonePowerProperty); CleanupStack::PopAndDestroy(&socket); - CleanupStack::PopAndDestroy(&socketServer); - - return TestStepResult(); + return TestStepResult(); } - TVerdict CTestSmsCNumberChangeWithPublishSubscribe::doTestStepL() /** * Test SMSC number change @@ -5459,15 +4754,9 @@ */ { INFO_PRINTF1(_L("Test SMSC Number Change with Publish and Subscribe")); - - RSocketServ socketServer; - TRequestStatus status; - PrepareRegTestLC(socketServer, 55); - - // Open the socket for SIM operations RSocket socket1; - iSmsStackTestUtils->OpenSmsSocketLC(socketServer,socket1,ESmsAddrLocalOperation); + iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer, socket1, ESmsAddrLocalOperation); RSmsSocketReadStream readstream1(socket1); // Create the smspList @@ -5475,20 +4764,38 @@ CleanupStack::PushL(smspList1); // Make read SMS params request to the SMS Stack - socket1.Ioctl(KIoctlReadSmsParams,status,NULL,KSolSmsProv); - INFO_PRINTF1(_L("waiting for SMS parameters...") ); - User::WaitForRequest(status); - TEST(status.Int() == KErrNone); - INFO_PRINTF1(_L("Received SMS parameters...")); + TRequestStatus status; + TBool tryAgain = ETrue; + TInt attempts (0); + TInt maxRetries = 3; + + // Enumerate messages from store. If it fails with KErrNotReady wait for 3 seconds to + // allow sms protocol to fully load and repeat + while( tryAgain && attempts++ < maxRetries ) + { + socket1.Ioctl(KIoctlReadSmsParams,status,NULL,KSolSmsProv); + User::WaitForRequest(status); + INFO_PRINTF2(_L("Reading SMS parameters returned [status=%d]"), status.Int()); + if ( status.Int() == KErrNotReady ) + { + INFO_PRINTF1(_L("Trying to enumerate again... ")); + User::After(3000000); + } + else + { + tryAgain = EFalse; + } + } + + TESTCHECK(status.Int(), KErrNone, "Reading SMS parameters"); // Read list from stream and make acknowledgement to the SMS Stack - INFO_PRINTF1(_L("About to write to smspList1...")); readstream1 >> *smspList1; INFO_PRINTF1(_L("written to smspList1...")); socket1.Ioctl(KIoctlCompleteReadSmsParams,status,NULL,KSolSmsProv); User::WaitForRequest(status); - TEST(status.Int() == KErrNone); + TESTCHECK(status.Int(), KErrNone, "Completing Read SMS parameters..."); iSmsStackTestUtils->PrintSmspList(*smspList1); @@ -5499,18 +4806,7 @@ CleanupClosePushL(phonePowerProperty); // knock power off - INFO_PRINTF1(_L("switching phone off")); - TInt phonePowerCheck; - do - { - phonePowerProperty.Subscribe(status); - User::LeaveIfError(phonePowerProperty.Set(KUidSystemCategory,KUidPhonePwr.iUid,ESAPhoneOff)); - User::After(5 * 1000000); // sleep 5 secs; - User::WaitForRequest(status); - TEST(status.Int() == KErrNone); - User::LeaveIfError(phonePowerProperty.Get(phonePowerCheck)); - } - while (phonePowerCheck==ESAPhoneOn); + UpdatePhonePowerStatusL(phonePowerProperty, ESAPhoneOff); // Move to new test RProperty testNumberProperty; @@ -5529,24 +4825,14 @@ User::Leave(KErrNotFound); // Power back on - INFO_PRINTF1(_L("switching phone on") ); - do - { - phonePowerProperty.Subscribe(status); - User::LeaveIfError(phonePowerProperty.Set(KUidSystemCategory,KUidPhonePwr.iUid,ESAPhoneOn)); - User::After(5 * 1000000); // sleep 5 secs; - User::WaitForRequest(status); - TEST(status.Int() == KErrNone); - User::LeaveIfError(phonePowerProperty.Get(phonePowerCheck)); - } - while (phonePowerCheck==ESAPhoneOff); + UpdatePhonePowerStatusL(phonePowerProperty, ESAPhoneOn); CleanupStack::PopAndDestroy(&testNumberProperty); CleanupStack::PopAndDestroy(&phonePowerProperty); // Open the second socket for SIM operations RSocket socket2; - iSmsStackTestUtils->OpenSmsSocketLC(socketServer,socket2,ESmsAddrLocalOperation); + iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,socket2,ESmsAddrLocalOperation); RSmsSocketReadStream readstream2(socket2); @@ -5558,13 +4844,13 @@ socket2.Ioctl(KIoctlReadSmsParams,status,NULL,KSolSmsProv); INFO_PRINTF1(_L("waiting for SMS parameters...") ); User::WaitForRequest(status); - TEST(status.Int() == KErrNone); + TESTCHECK(status.Int(), KErrNone, "Receiving SMS parameters..."); // Read list from stream and make acknowledgement to the SMS Stack readstream2 >> *smspList2; socket2.Ioctl(KIoctlCompleteReadSmsParams,status,NULL,KSolSmsProv); User::WaitForRequest(status); - TEST(status.Int() == KErrNone); + TESTCHECK(status.Int(), KErrNone, "Completing Read SMS parameters..."); iSmsStackTestUtils->PrintSmspList(*smspList2); @@ -5579,36 +4865,25 @@ &entryToTsy2.iServiceCentre.iTelNumber); // Real test - both parameters have a vaild SC number and they are different - it leaves if error - TEST( - (entryToTsy1.iValidParams & RMobileSmsMessaging::KSCAIncluded) && - (entryToTsy2.iValidParams & RMobileSmsMessaging::KSCAIncluded) && - (entryToTsy1.iServiceCentre.iTelNumber != entryToTsy2.iServiceCentre.iTelNumber) - ); - - // Give memory back + TEST((entryToTsy1.iValidParams & RMobileSmsMessaging::KSCAIncluded) && + (entryToTsy2.iValidParams & RMobileSmsMessaging::KSCAIncluded) && + (entryToTsy1.iServiceCentre.iTelNumber != entryToTsy2.iServiceCentre.iTelNumber)); + CleanupStack::PopAndDestroy(smspList2); CleanupStack::PopAndDestroy(&socket2); CleanupStack::PopAndDestroy(smspList1); CleanupStack::PopAndDestroy(&socket1); - CleanupStack::PopAndDestroy(&socketServer); - - return TestStepResult(); + return TestStepResult(); } - TVerdict CTestStatusReportTime::doTestStepL() /** * Test a simple Transmit and Receive with status reporting, check time stamp */ { INFO_PRINTF1(_L("Test Tx an SMS and then receive a status report")); - - RSocketServ socketServer; - PrepareRegTestLC(socketServer, 62); - - RSocket socket; - iSmsStackTestUtils->OpenSmsSocketLC(socketServer,socket,ESmsAddrRecvAny); + iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,socket,ESmsAddrRecvAny); _LIT(KTestMsg1,"test message, 8bits, length 30"); @@ -5629,7 +4904,6 @@ //Send SMS SendSmsL(smsMessageSend,socket); - CleanupStack::PopAndDestroy(smsMessageSend); //Receive status report @@ -5637,12 +4911,9 @@ telephoneNumberSC.Copy( KPekka ); //Receive SMS - INFO_PRINTF1(_L("waiting for incoming SMS...") ); WaitForRecvL(socket); CSmsMessage* smsMessageRecv = RecvSmsL(socket); - INFO_PRINTF1(_L("incoming SMS") ); - //Check the status report (timestamp should be 10 seconds later) CleanupStack::PushL(smsMessageRecv); TBool isSR = (smsMessageRecv->Type()==CSmsPDU::ESmsStatusReport); @@ -5661,34 +4932,32 @@ if (timeRecv < timeSend) { // fail condition - INFO_PRINTF1(_L("Timestamp of received status report earlier than sent SMS!")); + ERR_PRINTF1(_L("Timestamp of received status report earlier than sent SMS!")); + SetTestStepResult(EFail); } else if (timeRecv == timeSend) { // fail condition - INFO_PRINTF1(_L("Timestamp of received status report same as sent SMS!")); + ERR_PRINTF1(_L("Timestamp of received status report same as sent SMS!")); + SetTestStepResult(EFail); } else { // pass condition INFO_PRINTF1(_L("Timestamp of received status report later than sent SMS!")); } - - TEST(timeRecv > timeSend); } else - INFO_PRINTF1(_L("Received SMS is NOT a Status report!")); - - TEST(isSR==1); - - CleanupStack::PopAndDestroy(smsMessageRecv); - CleanupStack::PopAndDestroy(); // socket - CleanupStack::PopAndDestroy(&socketServer); - + { + ERR_PRINTF1(_L("Received SMS is NOT a Status report!")); + SetTestStepResult(EFail); + } + + CleanupStack::PopAndDestroy(2, &socket); // smsMessageRecv, socket return TestStepResult() ; } - +//TODO: move to WAPPROT test suite TVerdict CTestTx8BitWapWithStatus::doTestStepL() // Fix Defect 42714 // This test case verifies that 8 Bit Wap messages can @@ -5709,21 +4978,11 @@ // access to the log id. This will be fixed in defect 42716. // { - INFO_PRINTF1(_L("Test sending a 8 Bit Wap Message")); - INFO_PRINTF1(_L("and receiving a status message")); - - RSocketServ socketServer; - RSocket socket; - TRequestStatus status; - - PrepareRegTestLC(socketServer, 63); - - - socketServer.StartProtocol(KSMSAddrFamily,KSockDatagram,KSMSDatagramProtocol, - status); + INFO_PRINTF1(_L("Test sending a 8 Bit Wap Message and receiving a status message")); // (1) Create a Socket for sending wap messages - TInt ret=socket.Open(socketServer,KWAPSMSAddrFamily,KSockDatagram,KWAPSMSDatagramProtocol); + RSocket socket; + TInt ret=socket.Open(iSocketServer,KWAPSMSAddrFamily,KSockDatagram,KWAPSMSDatagramProtocol); INFO_PRINTF2(_L("Socket return code is %d"),ret); TESTL(ret == KErrNone); CleanupClosePushL(socket); @@ -5734,7 +4993,7 @@ // (2) Create a socket for receiving status reports RSocket statusSocket; - iSmsStackTestUtils->OpenSmsSocketLC(socketServer,statusSocket,ESmsAddrStatusReport); + iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,statusSocket,ESmsAddrStatusReport); // socket pushed onto stack inside method call. // (3) Create a Wap address and bind it to the socket @@ -5750,7 +5009,9 @@ // (4) Send a test message to address specified in setupgsmsms.txt // and the port specified above - _LIT8(KWapTestMsg,"BEGIN:VCARD\r\nVERSION:2.1\r\nFN:Jal\r\nN:Jal\r\nORG:PanSoftware\r\nTITLE:Director\r\nLABEL:Islington\r\nEND:VCARD\r\n"); + TRequestStatus status; + _LIT8(KWapTestMsg,"BEGIN:VCARD\r\nVERSION:2.1\r\nFN:Jal\r\nN:Jal\r\nORG:PanSoftware\r\nTITLE:Director\r\nLABEL:Islington\r\nEND:VCARD\r\n"); + socket.SendTo(KWapTestMsg,wapAddr,0,status); User::WaitForRequest(status); TESTL(status.Int()==KErrNone); @@ -5758,20 +5019,15 @@ // (5) Message has been sent successfully, now check that // status report is received for that address. - INFO_PRINTF1(_L("waiting for incoming SMS...") ); WaitForRecvL(statusSocket); INFO_PRINTF1(_L("received status report...") ); User::After(200000); - CleanupStack::PopAndDestroy(&statusSocket); CleanupStack::PopAndDestroy(&socket); - CleanupStack::PopAndDestroy(&socketServer); - return TestStepResult(); } - TVerdict CTestSimStoreCorruptMessage::doTestStepL() /** * Added to verify fix for DEF039913 @@ -5784,33 +5040,22 @@ */ { INFO_PRINTF1(_L("Test to see whether RMobileSimStore ignores corrupted SMSs")); - - RSocketServ socketServer; - PrepareRegTestLC(socketServer, 64); - - - // Open the socket RSocket socket; - iSmsStackTestUtils->OpenSmsSocketLC(socketServer,socket,ESmsAddrRecvAny); - - TRequestStatus status; + iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,socket,ESmsAddrRecvAny); // Enumerate messages + TRequestStatus status; RPointerArray messages; CleanupResetAndDestroyPushL(messages); + ReadSmsStoreL(socket, messages, status); - - TEST(status.Int() == KErrNone); - - TEST(messages.Count()==2); + TESTCHECK(status.Int(), KErrNone, "Enumerate messages"); + TESTCHECK(messages.Count(), 2, "CHecking message count equals to 2"); CleanupStack::PopAndDestroy(&messages); CleanupStack::PopAndDestroy(&socket); - CleanupStack::PopAndDestroy(&socketServer); - - return TestStepResult() ; + return TestStepResult() ; } - TVerdict CTestCorruptPduWithNegativeResponse::doTestStepL() /** @@ -5822,50 +5067,37 @@ */ { INFO_PRINTF1(_L("TestCorruptPduWithNegativeResponse")); - - RSocketServ socketServer; - PrepareRegTestLC(socketServer, 65); - - RSocket socket; - iSmsStackTestUtils->OpenSmsSocketLC(socketServer,socket,ESmsAddrRecvAny); + iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,socket,ESmsAddrRecvAny); _LIT(KTestMsg1,"test message, 8bits, length 30"); //Set destination and SC numbers iTelephoneNumber=KPekka; iServiceCenterNumber=KRadiolinjaSC; - TSmsDataCodingScheme::TSmsAlphabet alphabet=TSmsDataCodingScheme::ESmsAlphabet8Bit; - CSmsMessage* smsMessage=CreateSmsMessageL(KTestMsg1,alphabet); - CleanupStack::PushL(smsMessage); + + CSmsMessage* smsMessage=CreateSmsMessageLC(KTestMsg1,alphabet); INFO_PRINTF2(_L("Destination number:..... %S"),&iTelephoneNumber); INFO_PRINTF2(_L("ServiceCenter number:... %S"),&iServiceCenterNumber); //Send SMS SendSmsL(smsMessage,socket); - CleanupStack::PopAndDestroy(smsMessage); //Receive SMS - INFO_PRINTF1(_L("waiting for incoming SMS...") ); WaitForRecvL(socket); smsMessage = RecvSmsL(socket); - - INFO_PRINTF1(_L("incoming SMS") ); - CleanupStack::PushL(smsMessage); + TestSmsContentsL(smsMessage,KTestMsg1); CleanupStack::PopAndDestroy(smsMessage); CleanupStack::PopAndDestroy(&socket); - CleanupStack::PopAndDestroy(&socketServer); - - return TestStepResult(); + return TestStepResult(); } - TVerdict CTestBootTimer::doTestStepL() /** * Test for DEF054033: @@ -5888,39 +5120,30 @@ */ { INFO_PRINTF1(_L("Test receive multi-part WAP message")); - - RSocketServ socketServer; - PrepareRegTestLC(socketServer, 45); - - RSocket socket; - iSmsStackTestUtils->OpenSmsSocketLC(socketServer,socket,ESmsAddrRecvAny); + iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,socket,ESmsAddrRecvAny); TBool msgRcvd = TimedWaitForRecvL(socket, 40000000); if (msgRcvd) - { + { INFO_PRINTF1(_L("WAP message delivered to messaging application")); INFO_PRINTF1(_L("on default watcher")); - } + } else - { + { INFO_PRINTF1(_L("Boot Time did not timeout - Test Failed")); User::Leave(KErrGeneral); - } + } CleanupStack::PopAndDestroy(&socket); - CleanupStack::PopAndDestroy(&socketServer); - return TestStepResult() ; } - TVerdict CTestCSmsMessageTimeStamp::doTestStepL() /** * Creating a CSmsMessage object, checking it's timestamp is set to UTC time */ - { //Get the current UTC offset TTime currUTCTime; @@ -5950,8 +5173,7 @@ //Create a message TSmsDataCodingScheme::TSmsAlphabet alphabet=TSmsDataCodingScheme::ESmsAlphabet8Bit; - CSmsMessage* smsMessage=CreateSmsMessageL(KTestMsg,alphabet); - CleanupStack::PushL(smsMessage); + CSmsMessage* smsMessage=CreateSmsMessageLC(KTestMsg,alphabet); // Test time stamp, Time() // Time must be = UTC, we allow 1 second for Message to be created. @@ -6062,11 +5284,9 @@ CleanupStack::PopAndDestroy(smsMessage); User::SetUTCTimeAndOffset(currUTCTime,currUTCOffset); - return TestStepResult(); } - TVerdict CTestCSmsMessageWithDeliverPDU::doTestStepL() { /** @@ -6077,15 +5297,9 @@ TTimeIntervalSeconds allowableDelay(KMaxAllowanceSeconds); TTimeIntervalSeconds rxPeriod(KMaxRxPeriod); - INFO_PRINTF1(_L("Test Simple Tx and Rx SMS")); - - RSocketServ socketServer; - PrepareRegTestLC(socketServer, 66); - - RSocket socket; - iSmsStackTestUtils->OpenSmsSocketLC(socketServer,socket,ESmsAddrRecvAny); + iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,socket,ESmsAddrRecvAny); _LIT(KTestMsg1,"test message, 8bits, length 30"); @@ -6095,20 +5309,14 @@ //Create the message TSmsDataCodingScheme::TSmsAlphabet alphabet=TSmsDataCodingScheme::ESmsAlphabet8Bit; - CSmsMessage* smsMessage=CreateSmsMessageL(KTestMsg1,alphabet); - CleanupStack::PushL(smsMessage); + CSmsMessage* smsMessage=CreateSmsMessageLC(KTestMsg1,alphabet); INFO_PRINTF2(_L("Destination number:..... %S"),&iTelephoneNumber); INFO_PRINTF2(_L("ServiceCenter number:... %S"),&iServiceCenterNumber); - //Send SMS SendSmsL(smsMessage,socket); - CleanupStack::PopAndDestroy(smsMessage); - //Receive SMS - INFO_PRINTF1(_L("waiting for incoming SMS...") ); - //Wait for first SMS WaitForRecvL(socket); @@ -6148,15 +5356,12 @@ CleanupStack::PopAndDestroy(smsMessage); - INFO_PRINTF1(_L("waiting for incoming SMS...") ); - // Wait for second message to arrive. Must be round 60 seconds WaitForRecvL(socket); //Receive second message smsMessage = RecvSmsL(socket); CleanupStack::PushL(smsMessage); - INFO_PRINTF1(_L("incoming second SMS") ); //Checks make on message @@ -6199,9 +5404,7 @@ CleanupStack::PopAndDestroy(smsMessage); CleanupStack::PopAndDestroy(&socket); - CleanupStack::PopAndDestroy(&socketServer); - - return TestStepResult(); + return TestStepResult(); } @@ -6211,13 +5414,8 @@ */ { INFO_PRINTF1(_L("Test Tx an SMS and then receive a status report")); - - RSocketServ socketServer; - PrepareRegTestLC(socketServer, 67); - - RSocket socket; - iSmsStackTestUtils->OpenSmsSocketLC(socketServer,socket,ESmsAddrRecvAny); + iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,socket,ESmsAddrRecvAny); _LIT(KTestMsg1,"test message, 8bits, length 30"); @@ -6232,18 +5430,14 @@ INFO_PRINTF2(_L("Destination number:..... %S"),&iTelephoneNumber); INFO_PRINTF2(_L("ServiceCenter number:... %S"),&iServiceCenterNumber); - //Send SMS SendSmsL(smsMessage,socket); CleanupStack::PopAndDestroy(smsMessage); - //Receive status report TSmsServiceCenterAddress telephoneNumber; telephoneNumber.Copy( KPekka ); - //Wait for status report + // Receive status report WaitForRecvL(socket); - - //Get message from socket smsMessage = RecvSmsL(socket); //Get the status report @@ -6292,9 +5486,7 @@ CleanupStack::PopAndDestroy(smsMessage); CleanupStack::PopAndDestroy(&socket); - CleanupStack::PopAndDestroy(&socketServer); - - return TestStepResult() ; + return TestStepResult() ; } TVerdict CTestCSmsMessageWithSubmitPDU::doTestStepL() @@ -6303,14 +5495,9 @@ * UTC value, offset and validity period. */ { - _LIT(KTestMsg,"test message, 8bits, length 30"); INFO_PRINTF1(_L("Test Tx an SMS and let SIMTSY validate the validityPeriod in the submit pdu")); - - RSocketServ socketServer; - PrepareRegTestLC(socketServer, 68); - RSocket socket; - iSmsStackTestUtils->OpenSmsSocketLC(socketServer,socket,ESmsAddrRecvAny); + iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,socket,ESmsAddrRecvAny); //-------------------------------------------------------- // Set the universal time @@ -6333,9 +5520,9 @@ //-------------------------------------------------------- //Create a message + _LIT(KTestMsg,"test message, 8bits, length 30"); TSmsDataCodingScheme::TSmsAlphabet alphabet=TSmsDataCodingScheme::ESmsAlphabet8Bit; - CSmsMessage* smsMessage=CreateSmsMessageL(KTestMsg,alphabet); - CleanupStack::PushL(smsMessage); + CSmsMessage* smsMessage=CreateSmsMessageLC(KTestMsg,alphabet); // Test validity period of submit pdu TEST(smsMessage->Type()==CSmsPDU::ESmsSubmit); @@ -6353,17 +5540,12 @@ //Send the message SendSmsL(smsMessage,socket); - TEST(ETrue); CleanupStack::PopAndDestroy(smsMessage); - //-------------------------------------------------------- CleanupStack::PopAndDestroy(&socket); - CleanupStack::PopAndDestroy(&socketServer); - return TestStepResult() ; } - TVerdict CTestHandlePID40h::doTestStepL() /** * Test for DEF055800 @@ -6372,12 +5554,8 @@ */ { INFO_PRINTF1(_L("Check that PDUs with PID = 0x40 are acknowledged but not forwarded to the inbox.")); - - RSocketServ socketServer; - PrepareRegTestLC(socketServer, 69); - RSocket socket; - iSmsStackTestUtils->OpenSmsSocketLC(socketServer,socket,ESmsAddrRecvAny); + iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,socket,ESmsAddrRecvAny); _LIT(KTestMsg1,"test message, 8bits, length 30"); @@ -6386,8 +5564,7 @@ iServiceCenterNumber=KRadiolinjaSC; TSmsDataCodingScheme::TSmsAlphabet alphabet=TSmsDataCodingScheme::ESmsAlphabet8Bit; - CSmsMessage* smsMessage=CreateSmsMessageL(KTestMsg1,alphabet); - CleanupStack::PushL(smsMessage); + CSmsMessage* smsMessage=CreateSmsMessageLC(KTestMsg1,alphabet); INFO_PRINTF2(_L("Destination number:..... %S"),&iTelephoneNumber); INFO_PRINTF2(_L("ServiceCenter number:... %S"),&iServiceCenterNumber); @@ -6398,13 +5575,10 @@ CleanupStack::PopAndDestroy(smsMessage); //Receive 2 PDUs - INFO_PRINTF1(_L("waiting for incoming SMS...") ); WaitForRecvL(socket); smsMessage = RecvSmsL(socket); - - INFO_PRINTF1(_L("incoming SMS") ); - CleanupStack::PushL(smsMessage); + TestSmsContentsL(smsMessage,KTestMsg1); //Save the received message to the SMS storage @@ -6417,20 +5591,16 @@ ReadSmsStoreL(socket, messages); // The standard PDU should be in the SIM store, along with two other messages // The PDU with PID 0x40 should be NOT be present - TInt count = messages.Count(); - TEST(count==3); - INFO_PRINTF2(_L("Expecting 3 messages in SIM Store, found %d."),count); + TESTCHECK(messages.Count(), 3, "Expecting 3 messages in SIM Store" ); messages.ResetAndDestroy(); CleanupStack::PopAndDestroy(&socket); - CleanupStack::PopAndDestroy(&socketServer); - return TestStepResult() ; } TVerdict CTestDiskSpaceMidRangeClass0Class2::doTestStepPreambleL() { - CSmsPrtTestStep::doTestStepPreambleL(); + CSmsBaseTestStep::doTestStepPreambleL(); #ifdef _DEBUG TInt err = RProperty::Define(KUidPSSMSStackCategory, KUidPSSMSStackFreeDiskSpaceKey, RProperty::EInt); @@ -6457,7 +5627,6 @@ #ifndef _DEBUG INFO_PRINTF1(_L("This test can only be run when the SMS Stack is in debug mode.")); #else - // // Disk space should be available at the start... // @@ -6481,21 +5650,22 @@ // // Load the SMS Stack... // - RSocketServ socketServer; - PrepareRegTestLC(socketServer, 131); - RSocket socket; - iSmsStackTestUtils->OpenSmsSocketLC(socketServer, socket, ESmsAddrRecvAny); + iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer, socket, ESmsAddrRecvAny); // // Attempt to receive an SMS - Class 0 message should arrive... // INFO_PRINTF1(_L("Receiving SMS message - Class 0 message should arrive...")); + + CSmsMessage* message1 = CreateSMSL(); + CleanupStack::PushL(message1); + SendSmsL(message1, socket); + CleanupStack::PopAndDestroy(message1); TBool messageReceived; - messageReceived = TimedWaitForRecvL(socket, 10*1000000); - if (messageReceived) + if( messageReceived ) { CSmsMessage* sms = RecvSmsL(socket); @@ -6507,39 +5677,52 @@ !sms->SmsPDU().Class(msgClass) || msgClass != TSmsDataCodingScheme::ESmsClass0) { - INFO_PRINTF1(_L("Message was not Class 0!")); - TEST(EFalse); + ERR_PRINTF1(_L("Message was not Class 0!")); + SetTestStepResult(EFail); } delete sms; } else { - INFO_PRINTF1(_L("Message not received!")); - TEST(EFalse); + ERR_PRINTF1(_L("Message not received!")); + SetTestStepResult(EFail); } - - // + + // 1 - rx now triggered from tx; more deterministic + // 2 - if class 0 received, disk space available. + // + // But I agree with comment below - this seems like a defect in disk monitor + // as it depends on order of received messages and not actuall OOD situation! + // Disk monitor needs to be updated to give diskfull status when below high + // but above low. + // + // Old comment below; // Disk space should not be available, even though the Class 0 came through okay. // Potentially I think this maybe a defect in the Disk Space Monitor class. // ret = RProperty::Get(KUidPSSMSStackCategory, KUidPSSMSStackDiskSpaceMonitorKey, diskSpaceStatus); TEST(ret == KErrNone); - TEST(diskSpaceStatus == ESmsDiskSpaceFull); + TEST(diskSpaceStatus == ESmsDiskSpaceAvailable); // // Attempt to receive an SMS - Class 2 message should not arrive... // INFO_PRINTF1(_L("Receiving SMS message - Class 2 message should not arrive...")); - - messageReceived = TimedWaitForRecvL(socket, 10*1000000); + + CSmsMessage* message2 = CreateSMSL(); + CleanupStack::PushL(message2); + SendSmsL(message2, socket); + CleanupStack::PopAndDestroy(message2); + + messageReceived = TimedWaitForRecvL(socket, 10*1000000); if (messageReceived) { CSmsMessage* sms = RecvSmsL(socket); - INFO_PRINTF1(_L("Message received!")); - TEST(EFalse); + ERR_PRINTF1(_L("Message received!")); + SetTestStepResult(EFail); delete sms; } @@ -6559,6 +5742,8 @@ // // Raise the disk space to above the high limit... // + INFO_PRINTF1(_L("Raise the disk space to above the high limit")); + freeDrop = 2; ReleaseDiskSpaceL(); SetFreeDiskSpaceFromDropLevelL(freeDrop); @@ -6567,8 +5752,13 @@ // Attempt to receive an SMS - Class 2 message should arrive... // INFO_PRINTF1(_L("Receiving SMS message - Class 2 message should arrive...")); - - messageReceived = TimedWaitForRecvL(socket, 10*1000000); + + CSmsMessage* message3 = CreateSMSL(); + CleanupStack::PushL(message3); + SendSmsL(message3, socket); + CleanupStack::PopAndDestroy(message3); + + messageReceived = TimedWaitForRecvL(socket, 10*1000000); if (messageReceived) { CSmsMessage* sms = RecvSmsL(socket); @@ -6581,16 +5771,16 @@ !sms->SmsPDU().Class(msgClass) || msgClass != TSmsDataCodingScheme::ESmsClass2) { - INFO_PRINTF1(_L("Message was not Class 2!")); - TEST(EFalse); + ERR_PRINTF1(_L("Message was not Class 2!")); + SetTestStepResult(EFail); } delete sms; } else { - INFO_PRINTF1(_L("Message not received!")); - TEST(EFalse); + ERR_PRINTF1(_L("Message not received!")); + SetTestStepResult(EFail); } // @@ -6605,21 +5795,19 @@ // Close the SMS Stack... // ReleaseDiskSpaceL(); - CleanupStack::PopAndDestroy(&socket); - CleanupStack::PopAndDestroy(&socketServer); #endif return TestStepResult() ; - } // CTestDiskSpaceMidRangeClass0Class2::doTestStepL + } /** * Post-amble funtion to ensure the environment is reverted to normal. */ TVerdict CTestDiskSpaceMidRangeClass0Class2::doTestStepPostambleL() - { -#ifdef _DEBUG + { +#ifdef _DEBUG TInt err = RProperty::Delete(KUidPSSMSStackCategory, KUidPSSMSStackFreeDiskSpaceKey); if (err != KErrNone && err != KErrNotFound) { @@ -6627,20 +5815,20 @@ } #endif - // - // Restore the environment to normal and then call the previous post-amble - // function. - // - RemoveLowHighLimitsFromSmsuRscL(); - - CSmsPrtTestStep::doTestStepPostambleL(); - - return TestStepResult() ; - } // CTestDiskSpaceMidRangeClass0Class2::doTestStepPostambleL + // + // Restore the environment to normal and then call the previous post-amble + // function. + // + RemoveLowHighLimitsFromSmsuRscL(); + + CSmsBaseTestStep::doTestStepPostambleL(); + + return TestStepResult() ; + } TVerdict CTestDiskSpaceLowRangeClass0Class2::doTestStepPreambleL() { - CSmsPrtTestStep::doTestStepPreambleL(); + CSmsBaseTestStep::doTestStepPreambleL(); #ifdef _DEBUG TInt err = RProperty::Define(KUidPSSMSStackCategory, KUidPSSMSStackFreeDiskSpaceKey, RProperty::EInt); @@ -6668,7 +5856,6 @@ #ifndef _DEBUG INFO_PRINTF1(_L("This test can only be run when the SMS Stack is in debug mode.")); #else - // // Disk space should be available at the start... // @@ -6689,14 +5876,8 @@ SetHighLowLimitsAndDiskSpaceLevelL(highDrop, lowDrop, freeDrop); - // - // Load the SMS Stack... - // - RSocketServ socketServer; - PrepareRegTestLC(socketServer, 132); - RSocket socket; - iSmsStackTestUtils->OpenSmsSocketLC(socketServer, socket, ESmsAddrRecvAny); + iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer, socket, ESmsAddrRecvAny); // // Attempt to receive an SMS - Class 0 message should not arrive... @@ -6709,9 +5890,8 @@ { CSmsMessage* sms = RecvSmsL(socket); - INFO_PRINTF1(_L("Message received!")); - TEST(EFalse); - + ERR_PRINTF1(_L("Message received!")); + SetTestStepResult(EFail); delete sms; } else @@ -6737,9 +5917,8 @@ { CSmsMessage* sms = RecvSmsL(socket); - INFO_PRINTF1(_L("Message received!")); - TEST(EFalse); - + ERR_PRINTF1(_L("Message received!")); + SetTestStepResult(EFail); delete sms; } else @@ -6780,16 +5959,16 @@ !sms->SmsPDU().Class(msgClass) || msgClass != TSmsDataCodingScheme::ESmsClass0) { - INFO_PRINTF1(_L("Message was not Class 0!")); - TEST(EFalse); + ERR_PRINTF1(_L("Message was not Class 0!")); + SetTestStepResult(EFail); } delete sms; } else { - INFO_PRINTF1(_L("Message not received!")); - TEST(EFalse); + ERR_PRINTF1(_L("Message not received!")); + SetTestStepResult(EFail); } // @@ -6818,16 +5997,16 @@ !sms->SmsPDU().Class(msgClass) || msgClass != TSmsDataCodingScheme::ESmsClass2) { - INFO_PRINTF1(_L("Message was not Class 2!")); - TEST(EFalse); + ERR_PRINTF1(_L("Message was not Class 2!")); + SetTestStepResult(EFail); } delete sms; } else { - INFO_PRINTF1(_L("Message not received!")); - TEST(EFalse); + ERR_PRINTF1(_L("Message not received!")); + SetTestStepResult(EFail); } // @@ -6842,74 +6021,52 @@ // Close the SMS Stack... // ReleaseDiskSpaceL(); - CleanupStack::PopAndDestroy(&socket); - CleanupStack::PopAndDestroy(&socketServer); + #endif return TestStepResult() ; } // CTestDiskSpaceLowRangeClass0Class2::doTestStepL - /** * Post-amble funtion to ensure the environment is reverted to normal. */ TVerdict CTestDiskSpaceLowRangeClass0Class2::doTestStepPostambleL() { -#ifdef _DEBUG +#ifdef _DEBUG TInt err = RProperty::Delete(KUidPSSMSStackCategory, KUidPSSMSStackFreeDiskSpaceKey); if (err != KErrNone && err != KErrNotFound) { ERR_PRINTF2(_L("RProperty::Delete() failure [err=%d]"), err); } #endif - // // Restore the environment to normal and then call the previous post-amble // function. // RemoveLowHighLimitsFromSmsuRscL(); - CSmsPrtTestStep::doTestStepPostambleL(); + CSmsBaseTestStep::doTestStepPostambleL(); return TestStepResult() ; } // CTestDiskSpaceLowRangeClass0Class2::doTestStepPostambleL - /** * Simple test of receiving a few corrupt PDUs and then one good one. */ TVerdict CTestCorruptPDUs::doTestStepL() { - // - // Load the SMS Stack... - // - RSocketServ socketServer; - PrepareRegTestLC(socketServer, 133); - RSocket socket; - iSmsStackTestUtils->OpenSmsSocketLC(socketServer, socket, ESmsAddrRecvAny); + iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer, socket, ESmsAddrRecvAny); - // // Attempt to receive the valid SMS... - // WaitForRecvL(socket); - CSmsMessage* sms = RecvSmsL(socket); - - INFO_PRINTF1(_L("Message received!")); - delete sms; - // - // Close the SMS Stack... - // CleanupStack::PopAndDestroy(&socket); - CleanupStack::PopAndDestroy(&socketServer); - return TestStepResult() ; - } // CTestCorruptPDUs::doTestStepL() - + } /** * Tests the reception of a series of messages which cause the assembly to become full, @@ -6917,15 +6074,12 @@ */ TVerdict CTestCongestedReceive::doTestStepL() { - RSocketServ socketServer; - PrepareRegTestLC(socketServer, 141); - RSocket socket; TSmsAddr smsaddr; smsaddr.SetSmsAddrFamily(ESmsAddrRecvAny); - iSmsStackTestUtils->OpenSmsSocketLC(socketServer, socket, smsaddr); - - for (TInt count = 1; count <= 30; count++) + iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer, socket, smsaddr); + + for (TInt count = 1; count <= 30; ++count) { INFO_PRINTF2(_L("Waiting for incoming SMS %d..."), count); @@ -6937,11 +6091,8 @@ } CleanupStack::PopAndDestroy(&socket); - CleanupStack::PopAndDestroy(&socketServer); - - return TestStepResult(); - } // CTestCongestedReceive::doTestStepL() - + return TestStepResult(); + } enum TVerdict CTestEncodingPDUonBoundary::doTestStepL() /** @@ -6953,30 +6104,10 @@ */ { INFO_PRINTF1(_L("Test Encoding PDU on Boundary")); - - RSocketServ socketServer; - PrepareRegTestLC(socketServer, 143); RSocket socket; - iSmsStackTestUtils->OpenSmsSocketLC(socketServer,socket,ESmsAddrRecvAny); - - // Create comms database object -#ifdef SYMBIAN_NON_SEAMLESS_NETWORK_BEARER_MOBILITY - CMDBSession* db = CMDBSession::NewL(KCDVersion1_2); -#else - CMDBSession* db = CMDBSession::NewL(KCDVersion1_1); -#endif - CleanupStack::PushL(db); - - INFO_PRINTF1(_L("Testing recvMode change to EReceiveUnstoredClientAck")); - - // EReceiveUnstoredClientAck - CMDBField* smsReceiveModeField = new(ELeave) CMDBField(KCDTIdSMSReceiveMode); - CleanupStack::PushL(smsReceiveModeField); - smsReceiveModeField->SetRecordId(1); //it's GlobalSettingsRecord - *smsReceiveModeField = RMobileSmsMessaging::EReceiveUnstoredClientAck; - smsReceiveModeField->ModifyL(*db); - CleanupStack::PopAndDestroy(smsReceiveModeField); - CleanupStack::PopAndDestroy(db); + iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,socket,ESmsAddrRecvAny); + + ChangeReceiveModeL(RMobileSmsMessaging::EReceiveUnstoredClientAck); // Create a 149 character message (from 4 30 character messages + 1 29 character message). // Set the encoding to 7 bit encoding. There should be sufficient space in the PDU to @@ -6990,10 +6121,8 @@ TSmsDataCodingScheme::TSmsAlphabet alphabet7Bit=TSmsDataCodingScheme::ESmsAlphabet7Bit; - CSmsMessage* smsMessage=CreateSmsMessageL(KTestMsg1,alphabet7Bit); - CleanupStack::PushL(smsMessage); - - + CSmsMessage* smsMessage=CreateSmsMessageLC(KTestMsg1,alphabet7Bit); + // Create the format object CEmsFormatIE* format = CEmsFormatIE::NewL(); format->SetStartPosition(147); @@ -7020,17 +6149,13 @@ //Send SMS SendSmsL(smsMessage,socket); - CleanupStack::PopAndDestroy(smsMessage); //Receive SMS - INFO_PRINTF1(_L("waiting for incoming SMS...") ); WaitForRecvL(socket); smsMessage = RecvSmsL(socket); - - INFO_PRINTF1(_L("incoming SMS") ); - CleanupStack::PushL(smsMessage); + TestSmsContentsL(smsMessage,KTestMsg1); num = smsMessage->NumMessagePDUsL(); @@ -7039,7 +6164,6 @@ //Save the received message to the SMS storage smsMessage->SetStorage(CSmsMessage::ESmsSIMStorage); WriteSmsToSimL(*smsMessage, socket); - CleanupStack::PopAndDestroy(smsMessage); // Enumerate messages from Store @@ -7048,30 +6172,19 @@ messages.ResetAndDestroy(); CleanupStack::PopAndDestroy(&socket); - CleanupStack::PopAndDestroy(&socketServer); - return TestStepResult() ; } - /** * Tests that a PDU can be received if it has an invalid or reserved IE number. */ TVerdict CTestReceiveInvalidOrReservedIE::doTestStepL() { - // - // Open a socket to receive an SMS with SIMTSY... - // - RSocketServ socketServer; - PrepareRegTestLC(socketServer, 144); - RSocket socket; - iSmsStackTestUtils->OpenSmsSocketL(socketServer, socket, ESmsAddrRecvAny); + iSmsStackTestUtils->OpenSmsSocketL(iSocketServer, socket, ESmsAddrRecvAny); CleanupClosePushL(socket); - // // Receive the SMS with the reserved IE value. - // WaitForRecvL(socket); CSmsMessage* smsMessage = RecvSmsL(socket); CleanupStack::PushL(smsMessage); @@ -7080,16 +6193,9 @@ TestSmsContentsL(smsMessage, KTestMsg); CleanupStack::PopAndDestroy(smsMessage); - - // - // Close the socket. - // CleanupStack::PopAndDestroy(&socket); - CleanupStack::PopAndDestroy(&socketServer); - return TestStepResult() ; - } // CTestReceiveInvalidOrReservedIE::doTestStepL - + } /** * Tests that standard GSM characters can be sent and received using 7bit @@ -7097,11 +6203,8 @@ */ TVerdict CTestEncoding7bitStandardGSM::doTestStepL() { - RSocketServ socketServer; - PrepareRegTestLC(socketServer, 150); - RSocket socket; - iSmsStackTestUtils->OpenSmsSocketL(socketServer, socket, ESmsAddrRecvAny); + iSmsStackTestUtils->OpenSmsSocketL(iSocketServer, socket, ESmsAddrRecvAny); CleanupClosePushL(socket); // @@ -7132,16 +6235,10 @@ /* Encoding to use */ ESmsEncodingNone, /* Encoding expected */ ESmsEncodingNone); iCharSets.Reset(); - - // - // Clean up and finish... - // + CleanupStack::PopAndDestroy(&socket); - CleanupStack::PopAndDestroy(&socketServer); - return TestStepResult(); - } // CTestEncoding7bitStandardGSM::doTestStepL - + } /** * Tests that standard 8bit characters can be sent and received without @@ -7149,11 +6246,8 @@ */ TVerdict CTestEncoding8bitCodePage1252::doTestStepL() { - RSocketServ socketServer; - PrepareRegTestLC(socketServer, 151); - RSocket socket; - iSmsStackTestUtils->OpenSmsSocketL(socketServer, socket, ESmsAddrRecvAny); + iSmsStackTestUtils->OpenSmsSocketL(iSocketServer, socket, ESmsAddrRecvAny); CleanupClosePushL(socket); // @@ -7170,15 +6264,9 @@ /* Encoding expected */ ESmsEncodingNone); iCharSets.Reset(); - // - // Clean up and finish... - // CleanupStack::PopAndDestroy(&socket); - CleanupStack::PopAndDestroy(&socketServer); - return TestStepResult(); - } // CTestEncoding8bitCodePage1252::doTestStepL - + } /** * Tests that standard unicode characters can be sent and received without @@ -7186,11 +6274,8 @@ */ TVerdict CTestEncodingUnicode::doTestStepL() { - RSocketServ socketServer; - PrepareRegTestLC(socketServer, 152); - RSocket socket; - iSmsStackTestUtils->OpenSmsSocketL(socketServer, socket, ESmsAddrRecvAny); + iSmsStackTestUtils->OpenSmsSocketL(iSocketServer, socket, ESmsAddrRecvAny); CleanupClosePushL(socket); // @@ -7207,15 +6292,9 @@ /* Encoding expected */ ESmsEncodingNone); iCharSets.Reset(); - // - // Clean up and finish... - // CleanupStack::PopAndDestroy(&socket); - CleanupStack::PopAndDestroy(&socketServer); - return TestStepResult(); - } // CTestEncodingUnicode::doTestStepL - + } /** * Tests that unconvertible GSM characters can be sent using 7bit by being @@ -7223,11 +6302,8 @@ */ TVerdict CTestEncoding7bitUnconvertibleGSM::doTestStepL() { - RSocketServ socketServer; - PrepareRegTestLC(socketServer, 153); - RSocket socket; - iSmsStackTestUtils->OpenSmsSocketL(socketServer, socket, ESmsAddrRecvAny); + iSmsStackTestUtils->OpenSmsSocketL(iSocketServer, socket, ESmsAddrRecvAny); CleanupClosePushL(socket); // @@ -7246,15 +6322,9 @@ /* Encoding expected */ ESmsEncodingNone); iCharSets.Reset(); - // - // Clean up and finish... - // CleanupStack::PopAndDestroy(&socket); - CleanupStack::PopAndDestroy(&socketServer); - return TestStepResult(); - } // CTestEncoding7bitUnconvertibleGSM::doTestStepL - + } /** * Tests that non-standard GSM characters can be sent and received using 7bit @@ -7262,11 +6332,8 @@ */ TVerdict CTestEncoding7bitNonStandardGSM::doTestStepL() { - RSocketServ socketServer; - PrepareRegTestLC(socketServer, 154); - RSocket socket; - iSmsStackTestUtils->OpenSmsSocketL(socketServer, socket, ESmsAddrRecvAny); + iSmsStackTestUtils->OpenSmsSocketL(iSocketServer, socket, ESmsAddrRecvAny); CleanupClosePushL(socket); // @@ -7298,15 +6365,9 @@ /* Encoding expected */ ESmsEncodingNone); iCharSets.Reset(); - // - // Clean up and finish... - // CleanupStack::PopAndDestroy(&socket); - CleanupStack::PopAndDestroy(&socketServer); - return TestStepResult(); - } // CTestEncoding7bitNonStandardGSM::doTestStepL - + } /** * Tests that Turkish characters can be sent and received using 7bit without @@ -7314,11 +6375,8 @@ */ TVerdict CTestEncoding7bitTurkishNationalLanguage::doTestStepL() { - RSocketServ socketServer; - PrepareRegTestLC(socketServer, 155); - RSocket socket; - iSmsStackTestUtils->OpenSmsSocketL(socketServer, socket, ESmsAddrRecvAny); + iSmsStackTestUtils->OpenSmsSocketL(iSocketServer, socket, ESmsAddrRecvAny); CleanupClosePushL(socket); // @@ -7410,15 +6468,9 @@ /* Encoding expected */ ESmsEncodingTurkishSingleShift); iCharSets.Reset(); - // - // Clean up and finish... - // CleanupStack::PopAndDestroy(&socket); - CleanupStack::PopAndDestroy(&socketServer); - return TestStepResult(); - } // CTestEncoding7bitTurkishNationalLanguage::doTestStepL - + } /** * Generates various messages with some Turkish and unconvertible characters, @@ -7426,11 +6478,8 @@ */ TVerdict CTestEncoding7bitTurkishAndUnconvertible::doTestStepL() { - RSocketServ socketServer; - PrepareRegTestLC(socketServer, 156); - RSocket socket; - iSmsStackTestUtils->OpenSmsSocketL(socketServer, socket, ESmsAddrRecvAny); + iSmsStackTestUtils->OpenSmsSocketL(iSocketServer, socket, ESmsAddrRecvAny); CleanupClosePushL(socket); // @@ -7449,12 +6498,7 @@ /* Encoding expected */ ESmsEncodingTurkishSingleShift); iCharSets.Reset(); - // - // Clean up and finish... - // CleanupStack::PopAndDestroy(&socket); - CleanupStack::PopAndDestroy(&socketServer); - return TestStepResult(); } // CTestEncoding7bitTurkishAndUnconvertible::doTestStepL @@ -7467,11 +6511,8 @@ */ TVerdict CTestReceivingMessageWithDifferentEncodings::doTestStepL() { - RSocketServ socketServer; - PrepareRegTestLC(socketServer, 157); - RSocket socket; - iSmsStackTestUtils->OpenSmsSocketL(socketServer, socket, ESmsAddrRecvAny); + iSmsStackTestUtils->OpenSmsSocketL(iSocketServer, socket, ESmsAddrRecvAny); CleanupClosePushL(socket); // @@ -7515,12 +6556,11 @@ CSmsMessage* smsMessage; TInt pdus; - smsMessage = CreateSmsMessageL(msg7BitPtr, TSmsDataCodingScheme::ESmsAlphabet7Bit); - CleanupStack::PushL(smsMessage); + smsMessage = CreateSmsMessageLC(msg7BitPtr, TSmsDataCodingScheme::ESmsAlphabet7Bit); pdus = smsMessage->NumMessagePDUsL(); - TESTCHECK(pdus, 3); + TESTCHECK(pdus, 3, "Expected 3 PDUs"); TRAPD(sendErr, SendSmsL(smsMessage, socket)); - TESTCHECK(sendErr, KErrNone); + TESTCHECK(sendErr, KErrNone, "Sending SMS"); CleanupStack::PopAndDestroy(smsMessage); smsMessage = RecvSmsL(socket); @@ -7528,12 +6568,12 @@ TestSmsContentsL(smsMessage, msg7BitPtr); CleanupStack::PopAndDestroy(smsMessage); - smsMessage = CreateSmsMessageL(msg8BitPtr, TSmsDataCodingScheme::ESmsAlphabet8Bit); - CleanupStack::PushL(smsMessage); + smsMessage = CreateSmsMessageLC(msg8BitPtr, TSmsDataCodingScheme::ESmsAlphabet8Bit); pdus = smsMessage->NumMessagePDUsL(); - TESTCHECK(pdus, 3); + TESTCHECK(pdus, 3, "Expected 3 PDUs"); + TRAP(sendErr, SendSmsL(smsMessage, socket)); - TESTCHECK(sendErr, KErrNone); + TESTCHECK(sendErr, KErrNone, "Sending SMS"); CleanupStack::PopAndDestroy(smsMessage); smsMessage = RecvSmsL(socket); @@ -7541,12 +6581,13 @@ TestSmsContentsL(smsMessage, msg8BitPtr); CleanupStack::PopAndDestroy(smsMessage); - smsMessage = CreateSmsMessageL(msg16BitPtr, TSmsDataCodingScheme::ESmsAlphabetUCS2); - CleanupStack::PushL(smsMessage); + smsMessage = CreateSmsMessageLC(msg16BitPtr, TSmsDataCodingScheme::ESmsAlphabetUCS2); pdus = smsMessage->NumMessagePDUsL(); - TESTCHECK(pdus, 3); + TESTCHECK(pdus, 3, "Expected 3 PDUs"); + TRAP(sendErr, SendSmsL(smsMessage, socket)); - TESTCHECK(sendErr, KErrNone); + TESTCHECK(sendErr, KErrNone, "Sending SMS"); + CleanupStack::PopAndDestroy(smsMessage); smsMessage = RecvSmsL(socket); @@ -7596,16 +6637,11 @@ TestSmsContentsL(smsMessage, incomingPtr); CleanupStack::PopAndDestroy(smsMessage); - // - // Clean up and finish... - // CleanupStack::PopAndDestroy(incomingBuf); CleanupStack::PopAndDestroy(msg16BitBuf); CleanupStack::PopAndDestroy(msg8BitBuf); CleanupStack::PopAndDestroy(msg7BitBuf); CleanupStack::PopAndDestroy(&socket); - CleanupStack::PopAndDestroy(&socketServer); - return TestStepResult(); } // CTestReceivingMessageWithDifferentEncodings::doTestStepL @@ -7617,16 +6653,10 @@ TVerdict CTestReceivingMessageAfterSocketClosure::doTestStepL() { INFO_PRINTF1(_L("Test re-requesting to receive a message after socket closure.")); - - RSocketServ socketServer; - PrepareRegTestLC(socketServer, 159); - - // Open the socket for SIM operations. RSocket socket; - iSmsStackTestUtils->OpenSmsSocketLC(socketServer,socket,ESmsAddrRecvAny); + iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,socket,ESmsAddrRecvAny); // Wait for SMS message receipt. - INFO_PRINTF1(_L("waiting for incoming SMS...") ); WaitForRecvL(socket); // Close socket before reading the message. @@ -7634,7 +6664,7 @@ // Bind the socket again INFO_PRINTF1(_L("binding socket again; checking for receipt") ); - iSmsStackTestUtils->OpenSmsSocketLC(socketServer,socket,ESmsAddrRecvAny); + iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,socket,ESmsAddrRecvAny); // Briefly wait for receipt on it - this should now happen again. TBool bRcv = TimedWaitForRecvL(socket, 5 * 1000000); @@ -7642,7 +6672,6 @@ // Read the 1st SMS. CSmsMessage* smsMessage1 = RecvSmsL(socket); - CleanupStack::PushL(smsMessage1); TPtrC fromAddr1 = smsMessage1->ToFromAddress(); @@ -7653,7 +6682,6 @@ TEST_CHECKL(bRcv, ETrue, _L("Receive after reading 1st message should also succeed.")); CSmsMessage* smsMessage2 = RecvSmsL(socket); - CleanupStack::PushL(smsMessage2); TPtrC fromAddr2 = smsMessage2->ToFromAddress(); @@ -7662,10 +6690,8 @@ CleanupStack::PopAndDestroy(smsMessage2); CleanupStack::PopAndDestroy(smsMessage1); CleanupStack::PopAndDestroy(&socket); - CleanupStack::PopAndDestroy(&socketServer); - return TestStepResult() ; - } // CTestReceivingMessageAfterSocketClosure::doTestStepL + } TVerdict CTestSimpleTxAndRxWithLoggingDisabled::doTestStepL() /** @@ -7674,12 +6700,8 @@ */ { INFO_PRINTF1(_L("Test Simple Tx and Rx SMS")); - - RSocketServ socketServer; - PrepareRegTestLC(socketServer, 158); - - RSocket socket; - iSmsStackTestUtils->OpenSmsSocketL(socketServer,socket,ESmsAddrRecvAny); + RSocket socket; + iSmsStackTestUtils->OpenSmsSocketL(iSocketServer,socket,ESmsAddrRecvAny); CleanupClosePushL(socket); iSmsStackTestUtils->DisableLogging(); @@ -7691,34 +6713,25 @@ iServiceCenterNumber=KRadiolinjaSC; TSmsDataCodingScheme::TSmsAlphabet alphabet=TSmsDataCodingScheme::ESmsAlphabet8Bit; - CSmsMessage* smsMessage=CreateSmsMessageL(KTestMsg1,alphabet); - CleanupStack::PushL(smsMessage); + CSmsMessage* smsMessage=CreateSmsMessageLC(KTestMsg1,alphabet); INFO_PRINTF2(_L("Destination number:..... %S"),&iTelephoneNumber); INFO_PRINTF2(_L("ServiceCenter number:... %S"),&iServiceCenterNumber); //Send SMS SendSmsL(smsMessage,socket); - CleanupStack::PopAndDestroy(smsMessage); //Receive SMS - INFO_PRINTF1(_L("waiting for incoming SMS...") ); WaitForRecvL(socket); smsMessage = RecvSmsL(socket); - - INFO_PRINTF1(_L("incoming SMS") ); - CleanupStack::PushL(smsMessage); + TestSmsContentsL(smsMessage,KTestMsg1); CleanupStack::PopAndDestroy(smsMessage); iSmsStackTestUtils->EnableLogging(); - CleanupStack::PopAndDestroy(&socket); - - CleanupStack::PopAndDestroy(&socketServer); - return TestStepResult() ; } @@ -7727,11 +6740,8 @@ */ TVerdict CTestEncoding7bitNationalLanguages::doTestStepL() { - RSocketServ socketServer; - PrepareRegTestLC(socketServer, 160); - RSocket socket; - iSmsStackTestUtils->OpenSmsSocketL(socketServer, socket, ESmsAddrRecvAny); + iSmsStackTestUtils->OpenSmsSocketL(iSocketServer, socket, ESmsAddrRecvAny); CleanupClosePushL(socket); // @@ -7808,26 +6818,18 @@ /* Encoding to use */ ESmsEncodingTurkishLockingShift, /* Encoding expected */ ESmsEncodingTurkishLockingShift); iCharSets.Reset(); - - // - // Clean up and finish... - // + CleanupStack::PopAndDestroy(&socket); - CleanupStack::PopAndDestroy(&socketServer); - return TestStepResult(); - } // CTestEncoding7bitNationalLanguages::doTestStepL + } /** * Tests that Portuguese character converters creates a multi PDU SMS message correctly. */ TVerdict CTestEncodingMultiPDUwith7bitNationalLanguages::doTestStepL() { - RSocketServ socketServer; - PrepareRegTestLC(socketServer, 161); - RSocket socket; - iSmsStackTestUtils->OpenSmsSocketL(socketServer, socket, ESmsAddrRecvAny); + iSmsStackTestUtils->OpenSmsSocketL(iSocketServer, socket, ESmsAddrRecvAny); CleanupClosePushL(socket); // @@ -7855,26 +6857,17 @@ iCharSets.Reset(); iAdditionalCharSets.Reset(); - // - // Clean up and finish... - // CleanupStack::PopAndDestroy(&socket); - CleanupStack::PopAndDestroy(&socketServer); - return TestStepResult(); - } // CTestEncodingMultiPDUwith7bitNationalLanguages::doTestStepL + } /** * Test Turkish, Portuguese and Spanish Character Downgrading */ TVerdict CTestEncodingDowngradedWith7bitNationalLanguages::doTestStepL() { - - RSocketServ socketServer; - PrepareRegTestLC(socketServer, 162); - RSocket socket; - iSmsStackTestUtils->OpenSmsSocketL(socketServer, socket, ESmsAddrRecvAny); + iSmsStackTestUtils->OpenSmsSocketL(iSocketServer, socket, ESmsAddrRecvAny); CleanupClosePushL(socket); // @@ -7919,26 +6912,17 @@ /* Encoding expected */ ESmsEncodingNone); iCharSets.Reset(); - // - // Clean up and finish... - // CleanupStack::PopAndDestroy(&socket); - CleanupStack::PopAndDestroy(&socketServer); - return TestStepResult(); - } // CTestEncodingDowngradedWith7bitNationalLanguages::doTestStepL() + } /** * Test Portuguese GSM text (Portuguese locking and shift table)... */ TVerdict CTestOptimumEncodingWithLockingAndShift7bitNationalLanguages::doTestStepL() { - - RSocketServ socketServer; - PrepareRegTestLC(socketServer, 163); - RSocket socket; - iSmsStackTestUtils->OpenSmsSocketL(socketServer, socket, ESmsAddrRecvAny); + iSmsStackTestUtils->OpenSmsSocketL(iSocketServer, socket, ESmsAddrRecvAny); CleanupClosePushL(socket); // Test to ensure ESmsEncodingPortugueseSingleShift is selected @@ -7959,26 +6943,17 @@ /* Encoding expected */ ESmsEncodingPortugueseSingleShift); iCharSets.Reset(); - // - // Clean up and finish... - // CleanupStack::PopAndDestroy(&socket); - CleanupStack::PopAndDestroy(&socketServer); - return TestStepResult(); - } // CTestOptimumEncodingWithLockingAndShift7bitNationalLanguages::doTestStepL() + } /** * Test normal GSM text but with Turkish locking and shift table... */ TVerdict CTestOptimumEncodingWithLockingAndDowngrade7bitNationalLanguages::doTestStepL() { - - RSocketServ socketServer; - PrepareRegTestLC(socketServer, 164); - RSocket socket; - iSmsStackTestUtils->OpenSmsSocketL(socketServer, socket, ESmsAddrRecvAny); + iSmsStackTestUtils->OpenSmsSocketL(iSocketServer, socket, ESmsAddrRecvAny); CleanupClosePushL(socket); // Add characters in the standard table, but request ESmsEncodingTurkishLockingAndSingleShift @@ -7994,26 +6969,17 @@ /* Encoding expected */ ESmsEncodingNone); iCharSets.Reset(); - // - // Clean up and finish... - // CleanupStack::PopAndDestroy(&socket); - CleanupStack::PopAndDestroy(&socketServer); - return TestStepResult(); - } // CTestOptimumEncodingWithLockingAndDowngrade7bitNationalLanguages::doTestStepL() + } /** * Test Turkish GSM text with other downgrades (Turkish locking and shift table)... */ TVerdict CTestOptimumEncodingWithLockingAndUnconvertible7bitNationalLanguages::doTestStepL() { - - RSocketServ socketServer; - PrepareRegTestLC(socketServer, 165); - RSocket socket; - iSmsStackTestUtils->OpenSmsSocketL(socketServer, socket, ESmsAddrRecvAny); + iSmsStackTestUtils->OpenSmsSocketL(iSocketServer, socket, ESmsAddrRecvAny); CleanupClosePushL(socket); // Add Turkish shift characters @@ -8030,12 +6996,6 @@ /* Encoding expected */ ESmsEncodingTurkishSingleShift); iCharSets.Reset(); - // - // Clean up and finish... - // CleanupStack::PopAndDestroy(&socket); - CleanupStack::PopAndDestroy(&socketServer); - return TestStepResult(); - } // CTestOptimumEncodingWithLockingAndUnconvertible7bitNationalLanguages::doTestStepL - + } diff -r 962e6306d9d2 -r 7ef16719d8cb smsprotocols/smsstack/smsprot/Test/TE_Smsprt/TE_smsprt.h --- a/smsprotocols/smsstack/smsprot/Test/TE_Smsprt/TE_smsprt.h Fri Feb 19 23:59:33 2010 +0200 +++ b/smsprotocols/smsstack/smsprot/Test/TE_Smsprt/TE_smsprt.h Fri Mar 12 15:49:38 2010 +0200 @@ -13,330 +13,334 @@ // Description: // - -#ifndef __TE_SMSPRT_H_ -#define __TE_SMSPRT_H_ - +#ifndef TE_SMSPRT_H +#define TE_SMSPRT_H #include "TE_smsprtbase.h" #include "logcheck.h" +class CSmsEventLogger; -class CTestSimpleTxAndRx : public CSmsPrtTestStep +class CTestSimpleTxAndRx : public CSmsBaseTestStep { public: virtual TVerdict doTestStepL(); }; - - -class CTestBinaryTxAndRx : public CSmsPrtTestStep + + +class CTestBinaryTxAndRx : public CSmsBaseTestStep { public: virtual TVerdict doTestStepL(); - }; + }; -class CTestStatusReport : public CSmsPrtTestStep +class CTestStatusReport : public CSmsBaseTestStep { public: virtual TVerdict doTestStepL(); }; -class CTestTxWithError : public CSmsPrtTestStep +class CTestTxWithError : public CSmsBaseTestStep { public: virtual TVerdict doTestStepL(); }; -class CTestTxFailed : public CSmsPrtTestStep +class CTestTxFailed : public CSmsBaseTestStep { public: virtual TVerdict doTestStepL(); }; -class CTestMatchingToObserver : public CSmsPrtTestStep +class CTestMatchingToObserver : public CSmsBaseTestStep { public: virtual TVerdict doTestStepL(); }; -class CTestCommandMessages : public CSmsPrtTestStep +class CTestCommandMessages : public CSmsBaseTestStep { public: virtual TVerdict doTestStepL(); }; -class CTestSimpleRx : public CSmsPrtTestStep +class CTestSimpleRx : public CSmsBaseTestStep { public: virtual TVerdict doTestStepL(); }; -class CTest7bitMessTest : public CSmsPrtTestStep +class CTest7bitMessTest : public CSmsBaseTestStep { public: virtual TVerdict doTestStepL(); }; -class CTestClassMessages : public CSmsPrtTestStep +class CTestClassMessages : public CSmsBaseTestStep { public: virtual TVerdict doTestStepL(); }; -class CTestRxConcatenated : public CSmsPrtTestStep +class CTestRxConcatenated : public CSmsBaseTestStep { public: virtual TVerdict doTestStepL(); }; -class CTestRxDuplicate : public CSmsPrtTestStep +class CTestRxDuplicate : public CSmsBaseTestStep { public: virtual TVerdict doTestStepL(); }; -class CTestRxRingToneA : public CSmsPrtTestStep +class CTestRxRingToneA : public CSmsBaseTestStep { public: virtual TVerdict doTestStepL(); }; -class CTestTxRxConcatenated : public CSmsPrtTestStep +class CTestTxRxConcatenated : public CSmsBaseTestStep + { +public: + virtual TVerdict doTestStepL(); + }; + + +class CTestParamStorage : public CSmsBaseTestStep { public: virtual TVerdict doTestStepL(); }; -class CTestParamStorage : public CSmsPrtTestStep +class CTestSmsStore : public CSmsBaseTestStep { public: virtual TVerdict doTestStepL(); }; -class CTestSmsStore : public CSmsPrtTestStep - { -public: - virtual TVerdict doTestStepL(); - }; - - -class CTestSmsStoreList : public CSmsPrtTestStep +class CTestSmsStoreList : public CSmsBaseTestStep { public: virtual TVerdict doTestStepL(); }; -class CTestDeleteSms : public CSmsPrtTestStep +class CTestDeleteSms : public CSmsBaseTestStep + { +public: + virtual TVerdict doTestStepL(); + }; + +class CTestSmsAddr : public CSmsBaseTestStep + { +public: + virtual TVerdict doTestStepL(); + }; + +class CTestSocketBinding : public CSmsBaseTestStep { public: virtual TVerdict doTestStepL(); }; -class CTestSocketBinding : public CSmsPrtTestStep +class CTestSmsEventLogger : public CSmsBaseTestStep { public: virtual TVerdict doTestStepL(); }; -class CTestSmsEventLogger : public CSmsPrtTestStep - { -public: - virtual TVerdict doTestStepL(); - }; - - -class CTestBearerChange : public CSmsPrtTestStep +class CTestBearerChange : public CSmsBaseTestStep { public: virtual TVerdict doTestStepL(); }; -class CTestRestoreBearer : public CSmsPrtTestStep +class CTestRestoreBearer : public CSmsBaseTestStep { public: virtual TVerdict doTestStepL(); }; -class CTestRecvModeChange : public CSmsPrtTestStep +class CTestRecvModeChange : public CSmsBaseTestStep { public: virtual TVerdict doTestStepL(); }; -class CTestTsyCaps : public CSmsPrtTestStep +class CTestTsyCaps : public CSmsBaseTestStep { public: virtual TVerdict doTestStepL(); }; -class CTestOOMSendSms : public CSmsPrtTestStep +class CTestOOMSendSms : public CSmsBaseTestStep { public: virtual TVerdict doTestStepL(); }; -class CTestOOMWriteSms : public CSmsPrtTestStep +class CTestOOMWriteSms : public CSmsBaseTestStep { public: virtual TVerdict doTestStepL(); }; -class CTestOOMReadSms : public CSmsPrtTestStep +class CTestOOMReadSms : public CSmsBaseTestStep { public: virtual TVerdict doTestStepL(); }; -class CTestOOMReadSmsList : public CSmsPrtTestStep +class CTestOOMReadSmsList : public CSmsBaseTestStep { public: virtual TVerdict doTestStepL(); }; -class CTestOOMDeleteSms : public CSmsPrtTestStep +class CTestOOMDeleteSms : public CSmsBaseTestStep { public: virtual TVerdict doTestStepL(); }; -class CTestOOMSmsParams : public CSmsPrtTestStep +class CTestOOMSmsParams : public CSmsBaseTestStep { public: virtual TVerdict doTestStepL(); }; -class CTestMeStoreDupAndMiss : public CSmsPrtTestStep +class CTestMeStoreDupAndMiss : public CSmsBaseTestStep { public: virtual TVerdict doTestStepL(); }; -class CTestSimStoreDupAndMiss : public CSmsPrtTestStep +class CTestSimStoreDupAndMiss : public CSmsBaseTestStep { public: virtual TVerdict doTestStepL(); }; -class CTestRxCphs : public CSmsPrtTestStep +class CTestRxCphs : public CSmsBaseTestStep { public: virtual TVerdict doTestStepL(); }; -class CTestInvalidPDUs : public CSmsPrtTestStep +class CTestInvalidPDUs : public CSmsBaseTestStep { public: virtual TVerdict doTestStepL(); }; -class CTestStress : public CSmsPrtTestStep +class CTestStress : public CSmsBaseTestStep { public: virtual TVerdict doTestStepL(); }; -class CTestCombinedStore : public CSmsPrtTestStep +class CTestCombinedStore : public CSmsBaseTestStep { public: virtual TVerdict doTestStepL(); }; -class CTestParamsInter : public CSmsPrtTestStep +class CTestParamsInter : public CSmsBaseTestStep { public: virtual TVerdict doTestStepL(); }; -class CTestTxRxAlphanumeric : public CSmsPrtTestStep +class CTestTxRxAlphanumeric : public CSmsBaseTestStep { public: virtual TVerdict doTestStepL(); }; -class CTestRxSuspend : public CSmsPrtTestStep +class CTestRxSuspend : public CSmsBaseTestStep { public: virtual TVerdict doTestStepL(); }; -class CTestEnumerateCorrupted : public CSmsPrtTestStep +class CTestEnumerateCorrupted : public CSmsBaseTestStep { public: virtual TVerdict doTestStepL(); }; -class CTestCancelling : public CSmsPrtTestStep +class CTestCancelling : public CSmsBaseTestStep { public: virtual TVerdict doTestStepL(); }; -class CTestSendAndRecvMsgsWithDifferentTON : public CSmsPrtTestStep +class CTestSendAndRecvMsgsWithDifferentTON : public CSmsBaseTestStep { public: virtual TVerdict doTestStepL(); }; -class CTestSendAndReceiveIndicatorMsgs : public CSmsPrtTestStep +class CTestSendAndReceiveIndicatorMsgs : public CSmsBaseTestStep { public: virtual TVerdict doTestStepL(); }; -class CTestSendRecvMaxLengthMsg : public CSmsPrtTestStep +class CTestSendRecvMaxLengthMsg : public CSmsBaseTestStep { public: virtual TVerdict doTestStepL(); }; -class CTestSendAndRecvMsgsWithDifferentPID : public CSmsPrtTestStep +class CTestSendAndRecvMsgsWithDifferentPID : public CSmsBaseTestStep { public: virtual TVerdict doTestStepL(); }; -class CSmsParamsErrorCases : public CSmsPrtTestStep +class CTestSmsParamsErrorCases : public CSmsBaseTestStep { public: virtual TVerdict doTestStepL(); @@ -350,255 +354,243 @@ }; -class CTestResendFailedConcatinatedMessage : public CSmsPrtTestStep - { -public: - virtual TVerdict doTestStepL(); - }; - - -class CTestMultipartWapMessage : public CSmsPrtTestStep +class CTestResendFailedConcatinatedMessage : public CSmsBaseTestStep { public: virtual TVerdict doTestStepL(); }; -class CTestMOSESMessage : public CSmsPrtTestStep +class CTestMultipartWapMessage : public CSmsBaseTestStep { public: virtual TVerdict doTestStepL(); }; -class CTestClockBack : public CSmsPrtTestStep +class CTestMOSESMessage : public CSmsBaseTestStep { public: virtual TVerdict doTestStepL(); }; -class CTestEnumerateNoMessages : public CSmsPrtTestStep +class CTestClockBack : public CSmsBaseTestStep { public: virtual TVerdict doTestStepL(); }; -class CTestIE : public CSmsPrtTestStep +class CTestEnumerateNoMessages : public CSmsBaseTestStep { public: virtual TVerdict doTestStepL(); }; -class CTestEmailIE : public CSmsPrtTestStep +class CTestIE : public CSmsBaseTestStep { public: virtual TVerdict doTestStepL(); }; -class CTestMaxReadTimeForSmsStoreList : public CSmsPrtTestStep +class CTestEmailIE : public CSmsBaseTestStep { public: virtual TVerdict doTestStepL(); }; -class CTestSameLogIdMultiplePDU : public CSmsPrtTestStep +class CTestMaxReadTimeForSmsStoreList : public CSmsBaseTestStep { public: virtual TVerdict doTestStepL(); }; -class CTestSameLogIdSinglePDU : public CSmsPrtTestStep +class CTestSameLogIdMultiplePDU : public CSmsBaseTestStep { public: virtual TVerdict doTestStepL(); }; -class CTestConcatenatedMessageLogging : public CSmsPrtTestStep +class CTestSameLogIdSinglePDU : public CSmsBaseTestStep { public: virtual TVerdict doTestStepL(); }; +class CTestConcatenatedMessageLogging : public CSmsBaseTestStep + { +public: + virtual TVerdict doTestStepL(); + }; + + class CSmsLogChecker; class CTestLog : public CActive - { - public: - static CTestLog* NewLC(CSmsStackTestUtils& aUtils, RFs& aFs, CSmsPrtTestStep* aTest, TInt aPriority); - ~CTestLog(); + { +public: + static CTestLog* NewLC(CSmsStackTestUtils& aUtils, RFs& aFs, CSmsBaseTestStep* aTest, TInt aPriority); + ~CTestLog(); - void StartL(); - - private: + void StartL(); - void ConstructL(RFs& aFs); - CTestLog(CSmsStackTestUtils& aUtils, CSmsPrtTestStep* aTest, TInt aPriority); - void RunL(); - void DoCancel() {}; - TInt RunError(TInt aError) {Complete(aError); return KErrNone;} - void Complete(TInt aError) {iStatus = aError; CActiveScheduler::Stop();} - void StartOriginalL(); - void StartCompareL(TInt aExpectError); +private: + void ConstructL(RFs& aFs); + CTestLog(CSmsStackTestUtils& aUtils, CSmsBaseTestStep* aTest, TInt aPriority); + void RunL(); + void DoCancel() {}; + TInt RunError(TInt aError) {Complete(aError); return KErrNone;} + void Complete(TInt aError) {iStatus = aError; CActiveScheduler::Stop();} + void StartOriginalL(); + void StartCompareL(TInt aExpectError); + +private: + enum TState + { + EOriginal + } iState; - private: + CSmsStackTestUtils& iUtils; + CSmsBaseTestStep* iTest; - enum TState - { - EOriginal - } iState; + CSmsLogChecker* iLogChecker; + CSmsEventLogger* iEventLogger; + CSmsMessage* iMessage; + RSocket iSocket; - CSmsStackTestUtils& iUtils; - CSmsPrtTestStep* iTest; + RArray iAddedIds; + TInt iNumberToAdd; + TLogSmsPduData iData; + }; - CSmsLogChecker* iLogChecker; - CSmsEventLogger* iEventLogger; - CSmsMessage* iMessage; - RSocketServ iSocketServer; - RSocket iSocket; - RArray iAddedIds; - TInt iNumberToAdd; - TLogSmsPduData iData; +class CTestEnumerationOfStatusReport : public CSmsBaseTestStep + { +public: + TVerdict doTestStepL(); + }; + + +class CTestWriteStatusReportToSIM : public CSmsBaseTestStep + { +public: + TVerdict doTestStepL(); }; -class CTestEnumerationOfStatusReport : public CSmsPrtTestStep +class CTestTxSmsWithDelayedCompletion : public CSmsBaseTestStep { public: TVerdict doTestStepL(); }; -class CTestWriteStatusReportToSIM : public CSmsPrtTestStep - { -public: - TVerdict doTestStepL(); - }; - - -class CTestTxSmsWithDelayedCompletion : public CSmsPrtTestStep +class CTestSmsStoreReadCancel : public CSmsBaseTestStep { public: TVerdict doTestStepL(); }; -class CTestSmsStoreReadCancel : public CSmsPrtTestStep - { -public: - TVerdict doTestStepL(); - }; - - -class CTestBindWhenPoweredDownWithPublishSubscribe : public CSmsPrtTestStep - { -public : - TVerdict doTestStepL(); - }; - - -class CTestObserverNotifiedWhenPoweredDownWithPublishSubscribe : public CSmsPrtTestStep +class CTestBindWhenPoweredDownWithPublishSubscribe : public CSmsBaseTestStep { public : TVerdict doTestStepL(); }; -class CTestSmsCNumberChangeWithPublishSubscribe : public CSmsPrtTestStep +class CTestObserverNotifiedWhenPoweredDownWithPublishSubscribe : public CSmsBaseTestStep { public : TVerdict doTestStepL(); }; -class CTestStatusReportTime : public CSmsPrtTestStep +class CTestSmsCNumberChangeWithPublishSubscribe : public CSmsBaseTestStep + { +public : + TVerdict doTestStepL(); + }; + + +class CTestStatusReportTime : public CSmsBaseTestStep { public: TVerdict doTestStepL(); }; -class CTestTx8BitWapWithStatus : public CSmsPrtTestStep +class CTestTx8BitWapWithStatus : public CSmsBaseTestStep { public: TVerdict doTestStepL(); }; -class CTestSimStoreCorruptMessage : public CSmsPrtTestStep +class CTestSimStoreCorruptMessage : public CSmsBaseTestStep { public: virtual TVerdict doTestStepL(); }; -class CTestCorruptPduWithNegativeResponse : public CSmsPrtTestStep - { -public: - TVerdict doTestStepL(); - }; - - -class CTestBootTimer : public CSmsPrtTestStep +class CTestCorruptPduWithNegativeResponse : public CSmsBaseTestStep { public: TVerdict doTestStepL(); }; -class CTestCSmsMessageTimeStamp : public CSmsPrtTestStep +class CTestBootTimer : public CSmsBaseTestStep { public: TVerdict doTestStepL(); }; -class CTestCSmsMessageWithDeliverPDU : public CSmsPrtTestStep +class CTestCSmsMessageTimeStamp : public CSmsBaseTestStep { public: TVerdict doTestStepL(); }; -class CTestCSmsMessageWithStatusReportPDU : public CSmsPrtTestStep +class CTestCSmsMessageWithDeliverPDU : public CSmsBaseTestStep { public: TVerdict doTestStepL(); }; -class CTestCSmsMessageWithSubmitPDU : public CSmsPrtTestStep +class CTestCSmsMessageWithStatusReportPDU : public CSmsBaseTestStep { public: TVerdict doTestStepL(); }; -class CTestHandlePID40h : public CSmsPrtTestStep +class CTestCSmsMessageWithSubmitPDU : public CSmsBaseTestStep + { +public: + TVerdict doTestStepL(); + }; + + +class CTestHandlePID40h : public CSmsBaseTestStep { public: TVerdict doTestStepL(); }; -class CTestDiskSpaceMidRangeClass0Class2 : public CSmsPrtTestStep - { -public: - TVerdict doTestStepPreambleL(); - TVerdict doTestStepL(); - TVerdict doTestStepPostambleL(); - }; - - -class CTestDiskSpaceLowRangeClass0Class2 : public CSmsPrtTestStep +class CTestDiskSpaceMidRangeClass0Class2 : public CSmsBaseTestStep { public: TVerdict doTestStepPreambleL(); @@ -607,28 +599,37 @@ }; -class CTestCorruptPDUs : public CSmsPrtTestStep +class CTestDiskSpaceLowRangeClass0Class2 : public CSmsBaseTestStep + { +public: + TVerdict doTestStepPreambleL(); + TVerdict doTestStepL(); + TVerdict doTestStepPostambleL(); + }; + + +class CTestCorruptPDUs : public CSmsBaseTestStep { public: TVerdict doTestStepL(); }; -class CTestCongestedReceive : public CSmsPrtTestStep +class CTestCongestedReceive : public CSmsBaseTestStep { public: TVerdict doTestStepL(); }; -class CTestEncodingPDUonBoundary : public CSmsPrtTestStep +class CTestEncodingPDUonBoundary : public CSmsBaseTestStep { public: virtual enum TVerdict doTestStepL(); }; -class CTestReceiveInvalidOrReservedIE : public CSmsPrtTestStep +class CTestReceiveInvalidOrReservedIE : public CSmsBaseTestStep { public: virtual enum TVerdict doTestStepL(); @@ -676,25 +677,27 @@ virtual enum TVerdict doTestStepL(); }; + class CTestEncoding7bitTurkishAndUnconvertible : public CSmsPrtEncodingTestStep { public: virtual enum TVerdict doTestStepL(); }; -class CTestReceivingMessageWithDifferentEncodings : public CSmsPrtTestStep + +class CTestReceivingMessageWithDifferentEncodings : public CSmsBaseTestStep { public: virtual enum TVerdict doTestStepL(); }; -class CTestReceivingMessageAfterSocketClosure : public CSmsPrtTestStep +class CTestReceivingMessageAfterSocketClosure : public CSmsBaseTestStep { public: virtual enum TVerdict doTestStepL(); }; -class CTestSimpleTxAndRxWithLoggingDisabled : public CSmsPrtTestStep +class CTestSimpleTxAndRxWithLoggingDisabled : public CSmsBaseTestStep { public: virtual TVerdict doTestStepL(); @@ -736,4 +739,4 @@ virtual enum TVerdict doTestStepL(); }; -#endif +#endif // TE_SMSPRT_H diff -r 962e6306d9d2 -r 7ef16719d8cb smsprotocols/smsstack/smsprot/Test/TE_Smsprt/TE_smsprt.mmp --- a/smsprotocols/smsstack/smsprot/Test/TE_Smsprt/TE_smsprt.mmp Fri Feb 19 23:59:33 2010 +0200 +++ b/smsprotocols/smsstack/smsprot/Test/TE_Smsprt/TE_smsprt.mmp Fri Mar 12 15:49:38 2010 +0200 @@ -24,7 +24,6 @@ SOURCE TE_smsprt.cpp SOURCE TE_smsprtserver.cpp SOURCE TE_smsprtbase.cpp -SOURCE te_smsprttestcase.cpp SOURCE logcheck.cpp SOURCE te_smsprt_R6.cpp SOURCE Te_StatusReportScheme.cpp @@ -35,7 +34,6 @@ SOURCE TE_DeleteSARStores.cpp SOURCE TE_ReceiveSMS.cpp SOURCE TE_SendSMS.cpp -SOURCE Te_SmsTestSteps.cpp SOURCE TE_FreeDiskSpace.cpp SOURCE TE_SetDiskSpace.cpp SOURCE TE_SetDiskSpaceMonitorLimits.cpp @@ -43,7 +41,6 @@ SOURCE TE_SendReceiveSMSWhileServerInOOM.cpp SOURCE Te_Class0StoreEnabled.cpp SOURCE TE_EnumerateInOODCondition.cpp -SOURCE TE_DoESockMemoryLeakTest.cpp SOURCE TE_smsprt_alphabet.cpp SOURCEPATH ../../Test diff -r 962e6306d9d2 -r 7ef16719d8cb smsprotocols/smsstack/smsprot/Test/TE_Smsprt/TE_smsprt.script --- a/smsprotocols/smsstack/smsprot/Test/TE_Smsprt/TE_smsprt.script Fri Feb 19 23:59:33 2010 +0200 +++ b/smsprotocols/smsstack/smsprot/Test/TE_Smsprt/TE_smsprt.script Fri Mar 12 15:49:38 2010 +0200 @@ -15,11 +15,10 @@ RUN_SCRIPT z:\TestData\Scripts\TE_smsprt_setup.script - - LOAD_SUITE TE_smsprt -SharedData //!@file + START_TESTCASE SMS-SMSStack-NA-3001 //!@SYMTestCaseID SMS-SMSStack-NA-3001 //!@SYMREQ REQ0000 @@ -28,7 +27,7 @@ //!@SYMTestActions Test simple transmit and receive //!@SYMTestExpectedResults Pass //!@SYMTestType CT -RUN_TEST_STEP 500 TE_smsprt TestSimpleTxAndRx +RUN_TEST_STEP 500 TE_smsprt TestSimpleTxAndRx z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber0 END_TESTCASE SMS-SMSStack-NA-3001 START_TESTCASE SMS-SMSS-SMSPROT-0158 @@ -39,7 +38,7 @@ //!@SYMTestActions Sets the Log Server to "No Log", then sends and receives a SMS, both operations should be completed successfully. //!@SYMTestExpectedResults Pass //!@SYMTestType CT -RUN_TEST_STEP 600 TE_smsprt TestSimpleTxAndRxWithLoggingDisabled +RUN_TEST_STEP 600 TE_smsprt TestSimpleTxAndRxWithLoggingDisabled z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber158 END_TESTCASE SMS-SMSS-SMSPROT-0158 START_TESTCASE SMS-SMSStack-NA-3002 @@ -50,7 +49,7 @@ //!@SYMTestActions Test status report //!@SYMTestExpectedResults Pass //!@SYMTestType CT -RUN_TEST_STEP 500 TE_smsprt TestStatusReport +RUN_TEST_STEP 500 TE_smsprt TestStatusReport z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber1 END_TESTCASE SMS-SMSStack-NA-3002 @@ -62,7 +61,7 @@ //!@SYMTestActions Test Transmit with Error //!@SYMTestExpectedResults Pass //!@SYMTestType CT -RUN_TEST_STEP 500 TE_smsprt TestTxWithError +RUN_TEST_STEP 500 TE_smsprt TestTxWithError z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber2 END_TESTCASE SMS-SMSStack-NA-3003 @@ -74,7 +73,7 @@ //!@SYMTestActions Test Transmit with failure //!@SYMTestExpectedResults Pass //!@SYMTestType CT -RUN_TEST_STEP 500 TE_smsprt TestTxFailed +RUN_TEST_STEP 500 TE_smsprt TestTxFailed z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber3 END_TESTCASE SMS-SMSStack-NA-3004 @@ -86,7 +85,7 @@ //!@SYMTestActions Test Matching To Observer //!@SYMTestExpectedResults Pass //!@SYMTestType CT -RUN_TEST_STEP 500 TE_smsprt TestMatchingToObserver +RUN_TEST_STEP 500 TE_smsprt TestMatchingToObserver z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber4 END_TESTCASE SMS-SMSStack-NA-3005 @@ -98,7 +97,7 @@ //!@SYMTestActions Test Command Messages //!@SYMTestExpectedResults Pass //!@SYMTestType CT -RUN_TEST_STEP 500 TE_smsprt TestCommandMessages +RUN_TEST_STEP 500 TE_smsprt TestCommandMessages z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber5 END_TESTCASE SMS-SMSStack-NA-3006 @@ -110,7 +109,7 @@ //!@SYMTestActions Test Simple Receive //!@SYMTestExpectedResults Pass //!@SYMTestType CT -RUN_TEST_STEP 500 TE_smsprt TestSimpleRx +RUN_TEST_STEP 500 TE_smsprt TestSimpleRx z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber6 END_TESTCASE SMS-SMSStack-NA-3007 @@ -122,7 +121,7 @@ //!@SYMTestActions Test 7bit Mess Test //!@SYMTestExpectedResults Pass //!@SYMTestType CT -RUN_TEST_STEP 500 TE_smsprt Test7bitMessTest +RUN_TEST_STEP 500 TE_smsprt Test7bitMessTest z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber7 END_TESTCASE SMS-SMSStack-NA-3008 @@ -134,7 +133,7 @@ //!@SYMTestActions Test Class Messages //!@SYMTestExpectedResults Pass //!@SYMTestType CT -RUN_TEST_STEP 500 TE_smsprt TestClassMessages +RUN_TEST_STEP 500 TE_smsprt TestClassMessages z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber8 END_TESTCASE SMS-SMSStack-NA-3009 @@ -146,7 +145,7 @@ //!@SYMTestActions Test receive concatenated //!@SYMTestExpectedResults Pass //!@SYMTestType CT -RUN_TEST_STEP 500 TE_smsprt TestRxConcatenated +RUN_TEST_STEP 500 TE_smsprt TestRxConcatenated z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber9 END_TESTCASE SMS-SMSStack-NA-3010 @@ -158,7 +157,7 @@ //!@SYMTestActions Test receive duplicate //!@SYMTestExpectedResults Pass //!@SYMTestType CT -RUN_TEST_STEP 500 TE_smsprt TestRxDuplicate +RUN_TEST_STEP 500 TE_smsprt TestRxDuplicate z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber10 END_TESTCASE SMS-SMSStack-NA-3011 @@ -170,7 +169,7 @@ //!@SYMTestActions Test receive ring tone A //!@SYMTestExpectedResults Pass //!@SYMTestType CT -RUN_TEST_STEP 500 TE_smsprt TestRxRingToneA +RUN_TEST_STEP 500 TE_smsprt TestRxRingToneA z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber11 END_TESTCASE SMS-SMSStack-NA-3012 @@ -182,7 +181,7 @@ //!@SYMTestActions Test Transmit/receive concatenated messages //!@SYMTestExpectedResults Pass //!@SYMTestType CT -RUN_TEST_STEP 500 TE_smsprt TestTxRxConcatenated +RUN_TEST_STEP 500 TE_smsprt TestTxRxConcatenated z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber12 END_TESTCASE SMS-SMSStack-NA-3013 @@ -194,7 +193,7 @@ //!@SYMTestActions Test storage of parameters //!@SYMTestExpectedResults Pass //!@SYMTestType CT -RUN_TEST_STEP 500 TE_smsprt TestParamStorage +RUN_TEST_STEP 500 TE_smsprt TestParamStorage z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber13 END_TESTCASE SMS-SMSStack-NA-3014 @@ -206,7 +205,7 @@ //!@SYMTestActions Test Sms Store //!@SYMTestExpectedResults Pass //!@SYMTestType CT -RUN_TEST_STEP 500 TE_smsprt TestSmsStore +RUN_TEST_STEP 500 TE_smsprt TestSmsStore z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber14 END_TESTCASE SMS-SMSStack-NA-3015 @@ -218,7 +217,7 @@ //!@SYMTestActions Test Sms Store List //!@SYMTestExpectedResults Pass //!@SYMTestType CT -RUN_TEST_STEP 500 TE_smsprt TestSmsStoreList +RUN_TEST_STEP 500 TE_smsprt TestSmsStoreList z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber15 END_TESTCASE SMS-SMSStack-NA-3016 @@ -230,7 +229,7 @@ //!@SYMTestActions Test Delete Sms //!@SYMTestExpectedResults Pass //!@SYMTestType CT -RUN_TEST_STEP 500 TE_smsprt TestDeleteSms +RUN_TEST_STEP 500 TE_smsprt TestDeleteSms z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber15 END_TESTCASE SMS-SMSStack-NA-3017 @@ -242,9 +241,19 @@ //!@SYMTestActions Test Socket Binding //!@SYMTestExpectedResults Pass //!@SYMTestType CT -RUN_TEST_STEP 500 TE_smsprt TestSocketBinding +RUN_TEST_STEP 500 TE_smsprt TestSocketBinding z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber16 END_TESTCASE SMS-SMSStack-NA-3018 +START_TESTCASE SMS-SMSStack-NA-3098 +//!@SYMTestCaseID SMS-SMSStack-NA-3098 +//!@SYMREQ REQ0000 +//!@SYMTestCaseDesc Test SMS address class +//!@SYMTestPriority High +//!@SYMTestActions Test SMS address class +//!@SYMTestExpectedResults Pass +//!@SYMTestType CT +RUN_TEST_STEP 500 TE_smsprt TestSmsAddr +END_TESTCASE SMS-SMSStack-NA-3098 START_TESTCASE SMS-SMSStack-NA-3019 //!@SYMTestCaseID SMS-SMSStack-NA-3019 @@ -254,7 +263,7 @@ //!@SYMTestActions Test Sms Event Logger //!@SYMTestExpectedResults Pass //!@SYMTestType CT -RUN_TEST_STEP 500 TE_smsprt TestSmsEventLogger +RUN_TEST_STEP 500 TE_smsprt TestSmsEventLogger z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber17 END_TESTCASE SMS-SMSStack-NA-3019 @@ -266,7 +275,7 @@ //!@SYMTestActions Test Bearer Change //!@SYMTestExpectedResults Pass //!@SYMTestType CT -RUN_TEST_STEP 500 TE_smsprt TestBearerChange +RUN_TEST_STEP 500 TE_smsprt TestBearerChange z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber18 END_TESTCASE SMS-SMSStack-NA-3020 @@ -278,7 +287,7 @@ //!@SYMTestActions Test Restore Bearer //!@SYMTestExpectedResults Pass //!@SYMTestType CT -RUN_TEST_STEP 500 TE_smsprt TestRestoreBearer +RUN_TEST_STEP 500 TE_smsprt TestRestoreBearer END_TESTCASE SMS-SMSStack-NA-3094 @@ -290,7 +299,7 @@ //!@SYMTestActions Test Recieve Mode Change //!@SYMTestExpectedResults Pass //!@SYMTestType CT -RUN_TEST_STEP 500 TE_smsprt TestRecvModeChange +RUN_TEST_STEP 500 TE_smsprt TestRecvModeChange z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber19 END_TESTCASE SMS-SMSStack-NA-3021 @@ -302,7 +311,7 @@ //!@SYMTestActions Test Tsy Capabilities //!@SYMTestExpectedResults Pass //!@SYMTestType CT -RUN_TEST_STEP 500 TE_smsprt TestTsyCaps +RUN_TEST_STEP 500 TE_smsprt TestTsyCaps z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber20 END_TESTCASE SMS-SMSStack-NA-3022 @@ -314,7 +323,7 @@ //!@SYMTestActions Test send sms with out of memory conditions //!@SYMTestExpectedResults Pass //!@SYMTestType CT -RUN_TEST_STEP 500 TE_smsprt TestOOMSendSms +RUN_TEST_STEP 500 TE_smsprt TestOOMSendSms z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber21 END_TESTCASE SMS-SMSStack-NA-3023 @@ -326,7 +335,7 @@ //!@SYMTestActions Test write sms with out of memory conditions //!@SYMTestExpectedResults Pass //!@SYMTestType CT -RUN_TEST_STEP 500 TE_smsprt TestOOMWriteSms +RUN_TEST_STEP 500 TE_smsprt TestOOMWriteSms z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber22 END_TESTCASE SMS-SMSStack-NA-3024 @@ -338,7 +347,7 @@ //!@SYMTestActions Test Read Sms with out of memory conditions //!@SYMTestExpectedResults Pass //!@SYMTestType CT -RUN_TEST_STEP 500 TE_smsprt TestOOMReadSms +RUN_TEST_STEP 500 TE_smsprt TestOOMReadSms z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber23 END_TESTCASE SMS-SMSStack-NA-3025 @@ -350,7 +359,7 @@ //!@SYMTestActions Test read sms list with out of memory conditions //!@SYMTestExpectedResults Pass //!@SYMTestType CT -RUN_TEST_STEP 1000 TE_smsprt TestOOMReadSmsList +RUN_TEST_STEP 1000 TE_smsprt TestOOMReadSmsList z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber24 END_TESTCASE SMS-SMSStack-NA-3026 @@ -362,7 +371,7 @@ //!@SYMTestActions Test delete sms with out of memory conditions //!@SYMTestExpectedResults Pass //!@SYMTestType CT -RUN_TEST_STEP 500 TE_smsprt TestOOMDeleteSms +RUN_TEST_STEP 500 TE_smsprt TestOOMDeleteSms z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber25 END_TESTCASE SMS-SMSStack-NA-3027 @@ -374,7 +383,7 @@ //!@SYMTestActions Test sms params with out of memory conditions //!@SYMTestExpectedResults Pass //!@SYMTestType CT -RUN_TEST_STEP 500 TE_smsprt TestOOMSmsParams +RUN_TEST_STEP 500 TE_smsprt TestOOMSmsParams z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber26 END_TESTCASE SMS-SMSStack-NA-3028 @@ -386,7 +395,7 @@ //!@SYMTestActions Test Me store with duplicate and missing pdus' //!@SYMTestExpectedResults Pass //!@SYMTestType CT -RUN_TEST_STEP 500 TE_smsprt TestMeStoreDupAndMiss +RUN_TEST_STEP 500 TE_smsprt TestMeStoreDupAndMiss z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber27 END_TESTCASE SMS-SMSStack-NA-3029 @@ -398,7 +407,7 @@ //!@SYMTestActions Test Sim Store with duplicate and Missing pdus' //!@SYMTestExpectedResults Pass //!@SYMTestType CT -RUN_TEST_STEP 500 TE_smsprt TestSimStoreDupAndMiss +RUN_TEST_STEP 500 TE_smsprt TestSimStoreDupAndMiss z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber28 END_TESTCASE SMS-SMSStack-NA-3030 @@ -410,7 +419,7 @@ //!@SYMTestActions Test the reception of a CPHS Message Waiting Indication //!@SYMTestExpectedResults Pass //!@SYMTestType CT -RUN_TEST_STEP 500 TE_smsprt TestRxCphs +RUN_TEST_STEP 500 TE_smsprt TestRxCphs z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber30 END_TESTCASE SMS-SMSStack-NA-3031 @@ -422,7 +431,7 @@ //!@SYMTestActions Test receiving invalid pdus //!@SYMTestExpectedResults Pass //!@SYMTestType CT -RUN_TEST_STEP 500 TE_smsprt TestInvalidPDUs +RUN_TEST_STEP 500 TE_smsprt TestInvalidPDUs z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber31 END_TESTCASE SMS-SMSStack-NA-3032 @@ -434,7 +443,7 @@ //!@SYMTestActions Test Transmit and Receive large number of different messages //!@SYMTestExpectedResults Pass //!@SYMTestType CT -RUN_TEST_STEP 700 TE_smsprt TestStress +RUN_TEST_STEP 700 TE_smsprt TestStress z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber32 END_TESTCASE SMS-SMSStack-NA-3033 @@ -446,7 +455,7 @@ //!@SYMTestActions Test Combined Store //!@SYMTestExpectedResults Pass //!@SYMTestType CT -RUN_TEST_STEP 500 TE_smsprt TestCombinedStore +RUN_TEST_STEP 500 TE_smsprt TestCombinedStore z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber33 END_TESTCASE SMS-SMSStack-NA-3034 @@ -458,7 +467,7 @@ //!@SYMTestActions Test retrieving and storing the sms parameters //!@SYMTestExpectedResults Pass //!@SYMTestType CT -RUN_TEST_STEP 500 TE_smsprt TestParamsInter +RUN_TEST_STEP 500 TE_smsprt TestParamsInter z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber34 END_TESTCASE SMS-SMSStack-NA-3035 @@ -470,7 +479,7 @@ //!@SYMTestActions est a Transmit And receive of messages with alphanumeric dest/orig addresses //!@SYMTestExpectedResults Pass //!@SYMTestType CT -RUN_TEST_STEP 500 TE_smsprt TestTxRxAlphanumeric +RUN_TEST_STEP 500 TE_smsprt TestTxRxAlphanumeric z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber35 END_TESTCASE SMS-SMSStack-NA-3036 @@ -482,7 +491,7 @@ //!@SYMTestActions Test Receive Suspension //!@SYMTestExpectedResults Pass //!@SYMTestType CT -RUN_TEST_STEP 500 TE_smsprt TestRxSuspend +RUN_TEST_STEP 500 TE_smsprt TestRxSuspend END_TESTCASE SMS-SMSStack-NA-3037 @@ -494,7 +503,7 @@ //!@SYMTestActions Test Enumeration of Corrupted messages //!@SYMTestExpectedResults Pass //!@SYMTestType CT -RUN_TEST_STEP 500 TE_smsprt TestEnumerateCorrupted +RUN_TEST_STEP 500 TE_smsprt TestEnumerateCorrupted z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber37 END_TESTCASE SMS-SMSStack-NA-3038 @@ -506,7 +515,7 @@ //!@SYMTestActions Test Cancellacion of an sms operation //!@SYMTestExpectedResults Pass //!@SYMTestType CT -RUN_TEST_STEP 500 TE_smsprt TestCancelling +RUN_TEST_STEP 500 TE_smsprt TestCancelling z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber38 END_TESTCASE SMS-SMSStack-NA-3039 @@ -518,7 +527,7 @@ //!@SYMTestActions Test send And recieve messages with different TON //!@SYMTestExpectedResults Pass //!@SYMTestType CT -RUN_TEST_STEP 500 TE_smsprt TestSendAndRecvMsgsWithDifferentTON +RUN_TEST_STEP 500 TE_smsprt TestSendAndRecvMsgsWithDifferentTON END_TESTCASE SMS-SMSStack-NA-3040 @@ -578,7 +587,7 @@ //!@SYMTestActions Test Resend Failed Concatinated Message //!@SYMTestExpectedResults Pass //!@SYMTestType CT -RUN_TEST_STEP 500 TE_smsprt TestResendFailedConcatinatedMessage +RUN_TEST_STEP 500 TE_smsprt TestResendFailedConcatinatedMessage z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber44 END_TESTCASE SMS-SMSStack-NA-3097 @@ -590,7 +599,7 @@ //!@SYMTestActions Test Multipart Wap Message //!@SYMTestExpectedResults Pass //!@SYMTestType CT -RUN_TEST_STEP 500 TE_smsprt TestMultipartWapMessage +RUN_TEST_STEP 500 TE_smsprt TestMultipartWapMessage z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber45 END_TESTCASE SMS-SMSStack-NA-3045 @@ -602,7 +611,7 @@ //!@SYMTestActions Test MOSES Message //!@SYMTestExpectedResults Pass //!@SYMTestType CT -RUN_TEST_STEP 500 TE_smsprt TestMOSESMessage +RUN_TEST_STEP 500 TE_smsprt TestMOSESMessage z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber46 END_TESTCASE SMS-SMSStack-NA-3046 @@ -614,7 +623,7 @@ //!@SYMTestActions Test Clock Back //!@SYMTestExpectedResults Pass //!@SYMTestType CT -RUN_TEST_STEP 500 TE_smsprt TestClockBack +RUN_TEST_STEP 500 TE_smsprt TestClockBack z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber47 END_TESTCASE SMS-SMSStack-NA-3047 @@ -626,7 +635,7 @@ //!@SYMTestActions Test enumeration of no messages //!@SYMTestExpectedResults Pass //!@SYMTestType CT -RUN_TEST_STEP 500 TE_smsprt TestEnumerateNoMessages +RUN_TEST_STEP 500 TE_smsprt TestEnumerateNoMessages z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber48 END_TESTCASE SMS-SMSStack-NA-3048 @@ -638,7 +647,7 @@ //!@SYMTestActions Test Concatenated Message Logging //!@SYMTestExpectedResults Pass //!@SYMTestType CT -RUN_TEST_STEP 500 TE_smsprt TestConcatenatedMessageLogging +RUN_TEST_STEP 500 TE_smsprt TestConcatenatedMessageLogging z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber50 END_TESTCASE SMS-SMSStack-NA-3049 @@ -650,7 +659,7 @@ //!@SYMTestActions Test Enumeration Of Status Report //!@SYMTestExpectedResults Pass //!@SYMTestType CT -RUN_TEST_STEP 500 TE_smsprt TestEnumerationOfStatusReport +RUN_TEST_STEP 500 TE_smsprt TestEnumerationOfStatusReport z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber51 END_TESTCASE SMS-SMSStack-NA-3050 @@ -662,7 +671,7 @@ //!@SYMTestActions Test IE //!@SYMTestExpectedResults Pass //!@SYMTestType CT -RUN_TEST_STEP 500 TE_smsprt TestIE +RUN_TEST_STEP 500 TE_smsprt TestIE z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber52 END_TESTCASE SMS-SMSStack-NA-3051 @@ -674,7 +683,7 @@ //!@SYMTestActions Test Email IE //!@SYMTestExpectedResults Pass //!@SYMTestType CT -RUN_TEST_STEP 500 TE_smsprt TestEmailIE +RUN_TEST_STEP 500 TE_smsprt TestEmailIE z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber53 END_TESTCASE SMS-SMSStack-NA-3052 @@ -686,7 +695,7 @@ //!@SYMTestActions Test Maximim Read Time For Sms Store List //!@SYMTestExpectedResults Pass //!@SYMTestType CT -RUN_TEST_STEP 500 TE_smsprt TestMaxReadTimeForSmsStoreList +RUN_TEST_STEP 500 TE_smsprt TestMaxReadTimeForSmsStoreList z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber54 END_TESTCASE SMS-SMSStack-NA-3053 @@ -698,7 +707,7 @@ //!@SYMTestActions Test same log id multiple pdu //!@SYMTestExpectedResults Pass //!@SYMTestType CT -RUN_TEST_STEP 500 TE_smsprt TestSameLogIdMultiplePDU +RUN_TEST_STEP 500 TE_smsprt TestSameLogIdMultiplePDU z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber57 END_TESTCASE SMS-SMSStack-NA-3054 @@ -710,7 +719,7 @@ //!@SYMTestActions Test Same Log Id Single PDU //!@SYMTestExpectedResults Pass //!@SYMTestType CT -RUN_TEST_STEP 500 TE_smsprt TestSameLogIdSinglePDU +RUN_TEST_STEP 500 TE_smsprt TestSameLogIdSinglePDU z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber58 END_TESTCASE SMS-SMSStack-NA-3055 @@ -722,7 +731,7 @@ //!@SYMTestActions Test Writing of a status report to the sim //!@SYMTestExpectedResults Pass //!@SYMTestType CT -RUN_TEST_STEP 500 TE_smsprt TestWriteStatusReportToSIM +RUN_TEST_STEP 500 TE_smsprt TestWriteStatusReportToSIM z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber49 END_TESTCASE SMS-SMSStack-NA-3056 @@ -740,7 +749,7 @@ RUN_UTILS copyfile z:\sms\smswap.sms-sendTryTimeout.esk c:\private\101F7989\esock\smswap.sms.esk RUN_UTILS MakeReadWrite c:\private\101F7989\esock\smswap.sms.esk -RUN_TEST_STEP 500 TE_smsprt TestTxSmsWithDelayedCompletion +RUN_TEST_STEP 500 TE_smsprt TestTxSmsWithDelayedCompletion z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber60 RUN_UTILS DeleteFile c:\private\101F7989\esock\smswap.sms.esk RUN_UTILS copyfile c:\private\101F7989\esock\smswap.sms.bak c:\private\101F7989\esock\smswap.sms.esk @@ -780,7 +789,7 @@ //!@SYMTestActions Test observer notified when powered down with publish and subscribe //!@SYMTestExpectedResults Pass //!@SYMTestType CT -RUN_TEST_STEP 500 TE_smsprt TestObserverNotifiedWhenPoweredDownWithPublishSubscribe +RUN_TEST_STEP 500 TE_smsprt TestObserverNotifiedWhenPoweredDownWithPublishSubscribe z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber59 END_TESTCASE SMS-SMSStack-NA-3060 @@ -792,7 +801,7 @@ //!@SYMTestActions Test sms CNumber change with publish and subscribe //!@SYMTestExpectedResults Pass //!@SYMTestType CT -RUN_TEST_STEP 500 TE_smsprt TestSmsCNumberChangeWithPublishSubscribe +RUN_TEST_STEP 500 TE_smsprt TestSmsCNumberChangeWithPublishSubscribe z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber55 END_TESTCASE SMS-SMSStack-NA-3061 @@ -804,7 +813,7 @@ //!@SYMTestActions Test Status Report Time //!@SYMTestExpectedResults Pass //!@SYMTestType CT -RUN_TEST_STEP 500 TE_smsprt TestStatusReportTime +RUN_TEST_STEP 500 TE_smsprt TestStatusReportTime z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber62 END_TESTCASE SMS-SMSStack-NA-3062 @@ -816,7 +825,7 @@ //!@SYMTestActions Test Transmit 8Bit wap message with status //!@SYMTestExpectedResults Pass //!@SYMTestType CT -RUN_TEST_STEP 500 TE_smsprt TestTx8BitWapWithStatus +RUN_TEST_STEP 500 TE_smsprt TestTx8BitWapWithStatus z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber63 END_TESTCASE SMS-SMSStack-NA-3063 @@ -828,7 +837,7 @@ //!@SYMTestActions Test sim store with corrupt message //!@SYMTestExpectedResults Pass //!@SYMTestType CT -RUN_TEST_STEP 500 TE_smsprt TestSimStoreCorruptMessage +RUN_TEST_STEP 500 TE_smsprt TestSimStoreCorruptMessage z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber64 END_TESTCASE SMS-SMSStack-NA-3064 @@ -846,7 +855,7 @@ RUN_UTILS MakeReadWrite c:\private\101F7989\esock\smswap.sms.esk RUN_UTILS copyfile z:\sms\testsmswap.sms.esk c:\private\101F7989\esock\smswap.sms.esk RUN_UTILS MakeReadWrite c:\private\101F7989\esock\smswap.sms.esk -RUN_TEST_STEP 500 TE_smsprt TestCorruptPduWithNegativeResponse +RUN_TEST_STEP 500 TE_smsprt TestCorruptPduWithNegativeResponse z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber65 RUN_UTILS DeleteFile c:\private\101F7989\esock\smswap.sms.esk RUN_UTILS copyfile c:\private\101F7989\esock\smswap.sms.bak c:\private\101F7989\esock\smswap.sms.esk RUN_UTILS DeleteFile c:\private\101F7989\esock\smswap.sms.bak @@ -866,7 +875,7 @@ RUN_UTILS MakeReadWrite c:\private\101F7989\esock\smswap.sms.esk RUN_UTILS copyfile z:\sms\smswap.sms-bootTimerTimeout.esk c:\private\101F7989\esock\smswap.sms.esk RUN_UTILS MakeReadWrite c:\private\101F7989\esock\smswap.sms.esk -RUN_TEST_STEP 500 TE_smsprt TestBootTimer +RUN_TEST_STEP 500 TE_smsprt TestBootTimer z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber45 RUN_UTILS DeleteFile c:\private\101F7989\esock\smswap.sms.esk RUN_UTILS copyfile c:\private\101F7989\esock\smswap.sms.bak c:\private\101F7989\esock\smswap.sms.esk RUN_UTILS DeleteFile c:\private\101F7989\esock\smswap.sms.bak @@ -892,7 +901,7 @@ //!@SYMTestActions Simulate receiving deliver PDU's. Create message and interogate PDU and check time stamp and validity period. //!@SYMTestExpectedResults Pass //!@SYMTestType CT -RUN_TEST_STEP 500 TE_smsprt TestCSmsMessageWithDeliverPDU +RUN_TEST_STEP 500 TE_smsprt TestCSmsMessageWithDeliverPDU z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber66 END_TESTCASE SMS-SMSStack-NA-3068 START_TESTCASE SMS-SMSStack-NA-3069 @@ -903,7 +912,7 @@ //!@SYMTestActions Test status report //!@SYMTestExpectedResults Pass //!@SYMTestType CT -RUN_TEST_STEP 500 TE_smsprt TestCSmsMessageWithStatusReportPDU +RUN_TEST_STEP 500 TE_smsprt TestCSmsMessageWithStatusReportPDU z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber67 END_TESTCASE SMS-SMSStack-NA-3069 START_TESTCASE SMS-SMSStack-NA-3070 @@ -914,7 +923,7 @@ //!@SYMTestActions Create a submit message. Send it using SimTSY. SimTSY will validate the PDU to what is expected. Status=0 //!@SYMTestExpectedResults Pass //!@SYMTestType CT -RUN_TEST_STEP 500 TE_smsprt TestCSmsMessageWithSubmitPDU +RUN_TEST_STEP 500 TE_smsprt TestCSmsMessageWithSubmitPDU z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber68 END_TESTCASE SMS-SMSStack-NA-3070 START_TESTCASE SMS-SMSStack-NA-3071 @@ -925,7 +934,7 @@ //!@SYMTestActions Check that PDUs with PID 0x40 are acknowledged but not forwarded to the client //!@SYMTestExpectedResults Pass //!@SYMTestType CT -RUN_TEST_STEP 500 TE_smsprt TestHandlePID40h +RUN_TEST_STEP 500 TE_smsprt TestHandlePID40h z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber69 END_TESTCASE SMS-SMSStack-NA-3071 START_TESTCASE SMS-SMSS-SMSPROT-I-3072 @@ -937,7 +946,7 @@ //!@SYMTestExpectedResults //!@SYMTestCaseDependencies Sim.tsy, smsstacktestutilities.dll //!@SYMTestType IT -RUN_TEST_STEP 180 TE_smsprt TestSinglePDUHyperLinks +RUN_TEST_STEP 180 TE_smsprt TestSinglePDUHyperLinks z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber70 END_TESTCASE SMS-SMSS-SMSPROT-I-3072 START_TESTCASE SMS-SMSS-SMSPROT-I-3073 @@ -948,7 +957,7 @@ //!@SYMTestActions Transmit and receive of multiple PDU message with and without hyperlinks //!@SYMTestExpectedResults Pass //!@SYMTestType IT -RUN_TEST_STEP 60 TE_smsprt TestMultiplePDUHyperLinks +RUN_TEST_STEP 60 TE_smsprt TestMultiplePDUHyperLinks z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber71 END_TESTCASE SMS-SMSS-SMSPROT-I-3073 START_TESTCASE SMS-SMSS-SMSPROT-I-3074 @@ -992,7 +1001,7 @@ //!@SYMTestActions Transmit and receive single PDU message with and without special messages //!@SYMTestExpectedResults Pass //!@SYMTestType IT -RUN_TEST_STEP 120 TE_smsprt TestSinglePDUSpecialMessageWaiting +RUN_TEST_STEP 120 TE_smsprt TestSinglePDUSpecialMessageWaiting z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber73 END_TESTCASE SMS-SMSS-SMSPROT-I-3077 START_TESTCASE SMS-SMSS-SMSPROT-I-3078 @@ -1058,7 +1067,7 @@ //!@SYMTestActions Transmit and receive single PDU message with and without enhanced voice mail delete confirmations //!@SYMTestExpectedResults Pass //!@SYMTestType IT -RUN_TEST_STEP 120 TE_smsprt TestSinglePDUEnhancedVoiceMailDeleteConfirmation +RUN_TEST_STEP 120 TE_smsprt TestSinglePDUEnhancedVoiceMailDeleteConfirmation z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber75 END_TESTCASE SMS-SMSS-SMSPROT-I-3083 START_TESTCASE SMS-SMSS-SMSPROT-I-3084 @@ -1080,7 +1089,7 @@ //!@SYMTestActions Transmit and receive multiple PDU message with and without enhanced voice mail delete confirmations //!@SYMTestExpectedResults SMS stack will handle received SMS as a 7 Bit coded message, KErrNone //!@SYMTestType IT -RUN_TEST_STEP 180 TE_smsprt Test7BitDefaultAlphabet +RUN_TEST_STEP 180 TE_smsprt Test7BitDefaultAlphabet z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber76 END_TESTCASE SMS-SMSS-SMSPROT-I-3085 START_TESTCASE SMS-SMSS-SMSPROT-I-3086 @@ -1092,7 +1101,7 @@ //!@SYMTestExpectedResults Stack will accept zero length IE, add it to the list. KErrNone //!@SYMTestType IT //!@SYMTestCaseDependencies SIM.TSY -RUN_TEST_STEP 180 TE_smsprt TestZeroLengthIE +RUN_TEST_STEP 180 TE_smsprt TestZeroLengthIE z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber77 END_TESTCASE SMS-SMSS-SMSPROT-I-3086 START_TESTCASE SMS-SMSS-SMSPROT-I-3087 @@ -1104,7 +1113,7 @@ //!@SYMTestExpectedResults Messages are deleted from the phone store and SIM store. Exception for class 2 messages, messages remains in the SIM store. //!@SYMTestType CIT //!@SYMTestCaseDependencies SIM.TSY -RUN_TEST_STEP 180 TE_smsprt TestAutomaticDeletionInDCS +RUN_TEST_STEP 180 TE_smsprt TestAutomaticDeletionInDCS z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber78 END_TESTCASE SMS-SMSS-SMSPROT-I-3087 START_TESTCASE SMS-SMSS-SMSPROT-I-3088 @@ -1126,7 +1135,7 @@ RUN_UTILS MakeReadWrite c:\private\101F7989\esock\smswap.sms.esk RUN_UTILS copyfile z:\sms\smswap.sms-AutoDeletionClass2.esk c:\private\101F7989\esock\smswap.sms.esk RUN_UTILS MakeReadWrite c:\private\101F7989\esock\smswap.sms.esk -RUN_TEST_STEP 500 TE_smsprt TestAutomaticDeletionInDCSAndInEsk +RUN_TEST_STEP 500 TE_smsprt TestAutomaticDeletionInDCSAndInEsk z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber79 RUN_UTILS DeleteFile c:\private\101F7989\esock\smswap.sms.esk RUN_UTILS copyfile c:\private\101F7989\esock\smswap.sms.bak c:\private\101F7989\esock\smswap.sms.esk RUN_UTILS DeleteFile c:\private\101F7989\esock\smswap.sms.bak @@ -1142,7 +1151,7 @@ //!@SYMTestExpectedResults Stack will send messages marked as type 0. Messages are deleted from the phone store and SIM store. Exception for class 2 messages, messages remains in the SIM store. //!@SYMTestType CIT //!@SYMTestCaseDependencies SIM.TSY -RUN_TEST_STEP 300 TE_smsprt TestAutomaticDeletionTypeZeroSMS +RUN_TEST_STEP 300 TE_smsprt TestAutomaticDeletionTypeZeroSMS z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber80 END_TESTCASE SMS-SMSS-SMSPROT-I-3089 @@ -1163,7 +1172,7 @@ RUN_UTILS copyfile z:\sms\smswap.sms-AutomaticDeletionOfType0.esk c:\private\101F7989\esock\smswap.sms.esk RUN_UTILS MakeReadWrite c:\private\101F7989\esock\smswap.sms.esk //Run the test step -RUN_TEST_STEP 180 TE_smsprt TestAutomaticDeletionTypeZeroAndSetInESK +RUN_TEST_STEP 180 TE_smsprt TestAutomaticDeletionTypeZeroAndSetInESK z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber81 //restore orig esk file RUN_UTILS DeleteFile c:\private\101F7989\esock\smswap.sms.esk RUN_UTILS copyfile c:\private\101F7989\esock\smswap.sms.bak c:\private\101F7989\esock\smswap.sms.esk @@ -1180,7 +1189,7 @@ //!@SYMTestExpectedResults The message is sent successfully. //!@SYMTestType CIT //!@SYMTestCaseDependencies SIM.TSY -RUN_TEST_STEP 120 TE_smsprt EnhancedVoiceMessageBoundaryTest +RUN_TEST_STEP 120 TE_smsprt EnhancedVoiceMessageBoundaryTest z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber83 END_TESTCASE SMS-SMSS-SMSPROT-I-3091 START_TESTCASE SMS-SMSS-SMSPROT-I-3092 @@ -1192,7 +1201,7 @@ //!@SYMTestExpectedResults The message is sent successfully. //!@SYMTestType CIT //!@SYMTestCaseDependencies SIM.TSY -RUN_TEST_STEP 120 TE_smsprt EnhancedVoiceMessageBoundaryTest1 +RUN_TEST_STEP 120 TE_smsprt EnhancedVoiceMessageBoundaryTest1 z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber84 END_TESTCASE SMS-SMSS-SMSPROT-I-3092 START_TESTCASE SMS-SMSS-SMSPROT-I-3093 @@ -1204,7 +1213,7 @@ //!@SYMTestExpectedResults Assume that sending a R6 SMS requires 'M' heap allocations. The stack should return an Out of Memory error when heap allocation request fails because 'n' has a value in the range 1..m. When 'n' has value m+1, the message should be sent successfully and the test should exit. //!@SYMTestType CIT //!@SYMTestCaseDependencies SIM.TSY -RUN_TEST_STEP 120 TE_smsprt TestOOMSendR6Sms +RUN_TEST_STEP 120 TE_smsprt TestOOMSendR6Sms z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber82 END_TESTCASE SMS-SMSS-SMSPROT-I-3093 START_TESTCASE SMS-SMSS-SMSPROT-I-3094 @@ -1990,48 +1999,6 @@ END_TESTCASE SMS-GSMU-0074 -START_TESTCASE SMS-SMSS-SMSPROT-0121 -//!@SYMTestCaseID SMS-SMSS-SMSPROT-0121 -//!@SYMEC EC015 -//!@SYMTestPriority Critical -//!@SYMTestCaseDesc Receive class0 and class2 messages when DiskSpace in mid range -//!@SYMTestActions Set the disk space to below the high limit, receive class 0, attempt to receive class 2, raise disk space and receive class 2. -//!@SYMTestExpectedResults Class0 message received, class2 rejected until disk space is increased. -RUN_TEST_STEP 60 TE_smsprt LoadSMSProtocol z:\testdata\configs\TE_DiskSpaceMonitor.ini DiskSpaceInMidRange -RUN_TEST_STEP 60 TE_smsprt SetDiskMonitorLimits z:\testdata\configs\TE_DiskSpaceMonitor.ini DiskMonitorLimits -RUN_TEST_STEP 120 TE_smsprt SetDiskSpace z:\testdata\configs\TE_DiskSpaceMonitor.ini DiskSpaceInMidRange -RUN_TEST_STEP 60 TE_smsprt ReceiveSMS z:\testdata\configs\TE_DiskSpaceMonitor.ini MessageExpected -RUN_TEST_STEP 60 TE_smsprt ReceiveSMS z:\testdata\configs\TE_DiskSpaceMonitor.ini MessageNotExpected -RUN_TEST_STEP 120 TE_smsprt FreeDiskSpace -RUN_TEST_STEP 120 TE_smsprt SetDiskSpace z:\testdata\configs\TE_DiskSpaceMonitor.ini DiskSpaceAboveMidRange -RUN_TEST_STEP 60 TE_smsprt ReceiveSMS z:\testdata\configs\TE_DiskSpaceMonitor.ini MessageExpected -RUN_TEST_STEP 120 TE_smsprt FreeDiskSpace -RUN_TEST_STEP 60 TE_smsprt CloseSMSProtocol -RUN_UTILS DeleteFile c:\private\101F7989\sms\smsu.rsc -END_TESTCASE SMS-SMSS-SMSPROT-0121 - - -START_TESTCASE SMS-SMSS-SMSPROT-0122 -//!@SYMTestCaseID SMS-SMSS-SMSPROT-0122 -//!@SYMEC EC015 -//!@SYMTestPriority Critical -//!@SYMTestCaseDesc Receive class0 and class2 messages when DiskSpace below the mid range. -//!@SYMTestActions Set the disk space to below the low limit, attempt to receive class 0 and class 2, raise disk space and receive class 0 and class 2. -//!@SYMTestExpectedResults Class0 and class2 messages rejected when disk space below the low limit, received when disk space increases. -RUN_TEST_STEP 60 TE_smsprt LoadSMSProtocol z:\testdata\configs\TE_DiskSpaceMonitor.ini DiskSpaceBelowMidRange -RUN_TEST_STEP 60 TE_smsprt SetDiskMonitorLimits z:\testdata\configs\TE_DiskSpaceMonitor.ini DiskMonitorLimits -RUN_TEST_STEP 120 TE_smsprt SetDiskSpace z:\testdata\configs\TE_DiskSpaceMonitor.ini DiskSpaceBelowMidRange -RUN_TEST_STEP 60 TE_smsprt ReceiveSMS z:\testdata\configs\TE_DiskSpaceMonitor.ini MessageNotExpected -RUN_TEST_STEP 60 TE_smsprt ReceiveSMS z:\testdata\configs\TE_DiskSpaceMonitor.ini MessageNotExpected -RUN_TEST_STEP 120 TE_smsprt FreeDiskSpace -RUN_TEST_STEP 120 TE_smsprt SetDiskSpace z:\testdata\configs\TE_DiskSpaceMonitor.ini DiskSpaceAboveMidRange -RUN_TEST_STEP 60 TE_smsprt ReceiveSMS z:\testdata\configs\TE_DiskSpaceMonitor.ini MessageExpected -RUN_TEST_STEP 60 TE_smsprt ReceiveSMS z:\testdata\configs\TE_DiskSpaceMonitor.ini MessageExpected -RUN_TEST_STEP 120 TE_smsprt FreeDiskSpace -RUN_TEST_STEP 60 TE_smsprt CloseSMSProtocol -RUN_UTILS DeleteFile c:\private\101F7989\sms\smsu.rsc -END_TESTCASE SMS-SMSS-SMSPROT-0122 - START_TESTCASE SMS-SMSS-SMSPROT-0123 //!@SYMTestCaseID SMS-SMSS-SMSPROT-0123 //!@SYMDEF INC091449 @@ -2039,9 +2006,10 @@ //!@SYMTestCaseDesc Receive class0 and class2 messages when DiskSpace in mid range //!@SYMTestActions Set the disk space to below the high limit, receive class 0, attempt to receive class 2, raise disk space and receive class 2. //!@SYMTestExpectedResults Class0 message received, class2 rejected until disk space is increased. -RUN_TEST_STEP 600 TE_smsprt TestDiskSpaceMidRangeClass0Class2 +RUN_TEST_STEP 600 TE_smsprt TestDiskSpaceMidRangeClass0Class2 z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber131 END_TESTCASE SMS-SMSS-SMSPROT-0123 + START_TESTCASE SMS-SMSS-SMSPROT-0124 //!@SYMTestCaseID SMS-SMSS-SMSPROT-0124 //!@SYMDEF INC091449 @@ -2049,9 +2017,10 @@ //!@SYMTestCaseDesc Receive class0 and class2 messages when DiskSpace below the mid range. //!@SYMTestActions Set the disk space to below the low limit, attempt to receive class 0 and class 2, raise disk space and receive class 0 and class 2. //!@SYMTestExpectedResults Class0 and class2 messages rejected when disk space below the low limit, received when disk space increases. -RUN_TEST_STEP 600 TE_smsprt TestDiskSpaceLowRangeClass0Class2 +RUN_TEST_STEP 600 TE_smsprt TestDiskSpaceLowRangeClass0Class2 z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber132 END_TESTCASE SMS-SMSS-SMSPROT-0124 + START_TESTCASE SMS-SMSS-SMSPROT-0125 //!@SYMTestCaseID SMS-SMSS-SMSPROT-0125 //!@SYMDEF INC100061 @@ -2060,7 +2029,7 @@ //!@SYMTestActions Receives SMSs that are invalid and then 1 that is valid. //!@SYMTestExpectedResults Pass //!@SYMTestType CT -RUN_TEST_STEP 500 TE_smsprt TestCorruptPDUs +RUN_TEST_STEP 500 TE_smsprt TestCorruptPDUs z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber133 END_TESTCASE SMS-SMSS-SMSPROT-0125 START_TESTCASE SMS-SMSS-SMSPROT-0126 @@ -2071,7 +2040,7 @@ //!@SYMTestActions Ensures that the resume code can restart reception when the store has been full. //!@SYMTestExpectedResults Pass //!@SYMTestType CT -RUN_TEST_STEP 500 TE_smsprt TestCongestedReceive +RUN_TEST_STEP 500 TE_smsprt TestCongestedReceive z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber141 END_TESTCASE SMS-SMSS-SMSPROT-0126 START_TESTCASE SMS-SMSS-SMSPROT-0127 @@ -2082,7 +2051,7 @@ //!@SYMTestActions Test binary transmit and receive //!@SYMTestExpectedResults Pass //!@SYMTestType CT -RUN_TEST_STEP 500 TE_smsprt TestBinaryTxAndRx +RUN_TEST_STEP 500 TE_smsprt TestBinaryTxAndRx z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber142 END_TESTCASE SMS-SMSS-SMSPROT-0127 @@ -2094,7 +2063,7 @@ //!@SYMTestActions GSMU encodes a PDU until it is full, then attempts to add an format IE, the format IE and its associated text should be encoded in a new PDU. //!@SYMTestExpectedResults Pass //!@SYMTestType CT -RUN_TEST_STEP 500 TE_smsprt TestEncodingPDUonBoundary +RUN_TEST_STEP 500 TE_smsprt TestEncodingPDUonBoundary z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber143 END_TESTCASE SMS-SMSS-SMSPROT-0128 @@ -2106,7 +2075,7 @@ //!@SYMTestActions Receives the PDU which has a reserved IE number. //!@SYMTestExpectedResults Pass //!@SYMTestType CT -RUN_TEST_STEP 500 TE_smsprt TestReceiveInvalidOrReservedIE +RUN_TEST_STEP 500 TE_smsprt TestReceiveInvalidOrReservedIE z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber144 END_TESTCASE SMS-SMSS-SMSPROT-0129 @@ -2118,7 +2087,7 @@ //!@SYMTestActions Generates various messages based on standard GSM characters, sends/receives them and compares the contents. //!@SYMTestExpectedResults Pass //!@SYMTestType CT -RUN_TEST_STEP 1200 TE_smsprt TestEncoding7bitStandardGSM +RUN_TEST_STEP 1200 TE_smsprt TestEncoding7bitStandardGSM z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber150 END_TESTCASE SMS-SMSS-SMSPROT-0150 @@ -2130,7 +2099,7 @@ //!@SYMTestActions Generates various messages based on Code Page 1252 characters, sends/receives them and compares the contents. //!@SYMTestExpectedResults Pass //!@SYMTestType CT -RUN_TEST_STEP 1200 TE_smsprt TestEncoding8bitCodePage1252 +RUN_TEST_STEP 1200 TE_smsprt TestEncoding8bitCodePage1252 z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber151 END_TESTCASE SMS-SMSS-SMSPROT-0151 @@ -2142,7 +2111,7 @@ //!@SYMTestActions Generates various messages based various characters, sends/receives them and compares the contents. //!@SYMTestExpectedResults Pass //!@SYMTestType CT -RUN_TEST_STEP 1800 TE_smsprt TestEncodingUnicode +RUN_TEST_STEP 1800 TE_smsprt TestEncodingUnicode z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber152 END_TESTCASE SMS-SMSS-SMSPROT-0152 @@ -2154,9 +2123,10 @@ //!@SYMTestActions Generates various messages based on unconvertible GSM characters, sends/receives them and compares the contents. //!@SYMTestExpectedResults Pass //!@SYMTestType CT -RUN_TEST_STEP 1200 TE_smsprt TestEncoding7bitUnconvertibleGSM +RUN_TEST_STEP 1200 TE_smsprt TestEncoding7bitUnconvertibleGSM z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber153 END_TESTCASE SMS-SMSS-SMSPROT-0153 + START_TESTCASE SMS-SMSS-SMSPROT-0154 //!@SYMTestCaseID SMS-SMSS-SMSPROT-0154 //!@SYMREQ PREQ2265 @@ -2165,9 +2135,21 @@ //!@SYMTestActions Generates various messages based on standard GSM characters, sends/receives them and compares the contents. //!@SYMTestExpectedResults Pass //!@SYMTestType CT -RUN_TEST_STEP 1200 TE_smsprt TestEncoding7bitNonStandardGSM +RUN_TEST_STEP 1200 TE_smsprt TestEncoding7bitNonStandardGSM z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber154 END_TESTCASE SMS-SMSS-SMSPROT-0154 + +START_TESTCASE SMS-SMSS-SMSPROT-0155 +//!@SYMTestCaseID SMS-SMSS-SMSPROT-0155 +//!@SYMREQ PREQ2265 +//!@SYMTestCaseDesc Tests that Turkish characters can be sent and received using 7bit without loss of characters. +//!@SYMTestPriority Critical +//!@SYMTestActions Generates various messages based on Turkish characters, sends/receives them and compares the contents. +//!@SYMTestExpectedResults Pass +//!@SYMTestType CT +RUN_TEST_STEP 4500 TE_smsprt TestEncoding7bitTurkishNationalLanguage z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber155 +END_TESTCASE SMS-SMSS-SMSPROT-0155 + START_TESTCASE SMS-SMSS-SMSPROT-0156 //!@SYMTestCaseID SMS-SMSS-SMSPROT-0156 //!@SYMDEF DEF129817 @@ -2176,9 +2158,10 @@ //!@SYMTestActions Generates various messages with some Turkish and unconvertible characters, sends/receives them and compares the contents. //!@SYMTestExpectedResults Pass //!@SYMTestType CT -RUN_TEST_STEP 1200 TE_smsprt TestEncoding7bitTurkishAndUnconvertible +RUN_TEST_STEP 600 TE_smsprt TestEncoding7bitTurkishAndUnconvertible z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber156 END_TESTCASE SMS-SMSS-SMSPROT-0156 + START_TESTCASE SMS-SMSS-SMSPROT-0157 //!@SYMTestCaseID SMS-SMSS-SMSPROT-0157 //!@SYMDEF DEF128736 @@ -2187,7 +2170,7 @@ //!@SYMTestActions Generates 3 messages with each DCS and then receives 3 mixed DCS messages. //!@SYMTestExpectedResults Pass //!@SYMTestType CT -RUN_TEST_STEP 600 TE_smsprt TestReceivingMessageWithDifferentEncodings +RUN_TEST_STEP 600 TE_smsprt TestReceivingMessageWithDifferentEncodings z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber157 END_TESTCASE SMS-SMSS-SMSPROT-0157 START_TESTCASE SMS-SMSS-SMSPROT-0159 @@ -2198,7 +2181,7 @@ //!@SYMTestActions Generates a message which is requested by client before and after closure of socket. //!@SYMTestExpectedResults The message should be able to be requested and read after closure of socket. //!@SYMTestType CT -RUN_TEST_STEP 600 TE_smsprt TestReceivingMessageAfterSocketClosure +RUN_TEST_STEP 600 TE_smsprt TestReceivingMessageAfterSocketClosure z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber159 END_TESTCASE SMS-SMSS-SMSPROT-0159 START_TESTCASE SMS-SMSS-SMSPROT-0160 @@ -2211,7 +2194,7 @@ //! @SYMTestExpectedResults Pass //! @SYMTestDesignTechnique Error Guessing //! @SYMCR CR2040 -RUN_TEST_STEP 100 TE_smsprt TestEncoding7bitNationalLanguages +RUN_TEST_STEP 100 TE_smsprt TestEncoding7bitNationalLanguages z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber160 END_TESTCASE SMS-SMSS-SMSPROT-0160 START_TESTCASE SMS-SMSS-SMSPROT-0161 @@ -2224,7 +2207,7 @@ //! @SYMTestExpectedResults Pass //! @SYMTestDesignTechnique Boundary Value Analysis //! @SYMCR CR2040 -RUN_TEST_STEP 100 TE_smsprt TestEncodingMultiPDUwith7bitNationalLanguages +RUN_TEST_STEP 100 TE_smsprt TestEncodingMultiPDUwith7bitNationalLanguages z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber161 END_TESTCASE SMS-SMSS-SMSPROT-0161 START_TESTCASE SMS-SMSS-SMSPROT-0162 @@ -2237,7 +2220,7 @@ //! @SYMTestExpectedResults Pass //! @SYMTestDesignTechnique Error Guessing //! @SYMCR CR2040 -RUN_TEST_STEP 100 TE_smsprt TestEncodingDowngradedWith7bitNationalLanguages +RUN_TEST_STEP 100 TE_smsprt TestEncodingDowngradedWith7bitNationalLanguages z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber162 END_TESTCASE SMS-SMSS-SMSPROT-0162 START_TESTCASE SMS-SMSS-SMSPROT-0163 @@ -2250,7 +2233,7 @@ //! @SYMTestExpectedResults Pass //! @SYMTestDesignTechnique Error Guessing //! @SYMCR CR2040 -RUN_TEST_STEP 100 TE_smsprt TestOptimumEncodingWithLockingAndShift7bitNationalLanguages +RUN_TEST_STEP 100 TE_smsprt TestOptimumEncodingWithLockingAndShift7bitNationalLanguages z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber163 END_TESTCASE SMS-SMSS-SMSPROT-0163 START_TESTCASE SMS-SMSS-SMSPROT-0164 @@ -2263,7 +2246,7 @@ //! @SYMTestExpectedResults Pass //! @SYMTestDesignTechnique Error Guessing //! @SYMCR CR2040 -RUN_TEST_STEP 100 TE_smsprt TestOptimumEncodingWithLockingAndDowngrade7bitNationalLanguages +RUN_TEST_STEP 100 TE_smsprt TestOptimumEncodingWithLockingAndDowngrade7bitNationalLanguages z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber164 END_TESTCASE SMS-SMSS-SMSPROT-0164 START_TESTCASE SMS-SMSS-SMSPROT-0165 @@ -2276,7 +2259,7 @@ //! @SYMTestExpectedResults Pass //! @SYMTestDesignTechnique Error Guessing //! @SYMCR CR2040 -RUN_TEST_STEP 100 TE_smsprt TestOptimumEncodingWithLockingAndUnconvertible7bitNationalLanguages +RUN_TEST_STEP 100 TE_smsprt TestOptimumEncodingWithLockingAndUnconvertible7bitNationalLanguages z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber165 END_TESTCASE SMS-SMSS-SMSPROT-0165 - +RUN_SCRIPT z:\testdata\scripts\smsstackcleanprivatedata.script diff -r 962e6306d9d2 -r 7ef16719d8cb smsprotocols/smsstack/smsprot/Test/TE_Smsprt/TE_smsprt_setup.script --- a/smsprotocols/smsstack/smsprot/Test/TE_Smsprt/TE_smsprt_setup.script Fri Feb 19 23:59:33 2010 +0200 +++ b/smsprotocols/smsstack/smsprot/Test/TE_Smsprt/TE_smsprt_setup.script Fri Mar 12 15:49:38 2010 +0200 @@ -17,6 +17,8 @@ RUN_UTILS DeleteFile c:\config.txt +RUN_SCRIPT z:\testdata\scripts\smsstackcleanprivatedata.script + RUN_UTILS MkDir c:\sms\ RUN_UTILS CopyFile z:\sms\setupgsmsms.txt c:\sms\setupgsmsms.txt RUN_UTILS CopyFile z:\sms\tsmsprt_config.txt c:\sms\tsmsprt_config.txt diff -r 962e6306d9d2 -r 7ef16719d8cb smsprotocols/smsstack/smsprot/Test/TE_Smsprt/TE_smsprtbase.cpp --- a/smsprotocols/smsstack/smsprot/Test/TE_Smsprt/TE_smsprtbase.cpp Fri Feb 19 23:59:33 2010 +0200 +++ b/smsprotocols/smsstack/smsprot/Test/TE_Smsprt/TE_smsprtbase.cpp Fri Mar 12 15:49:38 2010 +0200 @@ -14,138 +14,12 @@ // /** - @file + @file + @test */ -#include -#include -#include -#include #include "TE_smsprtbase.h" - -/** - Preamble for all CSmsPrtTestStep -*/ -TVerdict CSmsPrtTestStep::doTestStepPreambleL() - { - //base class preamble - marks the heap - CSMSTestSteps::doTestStepPreambleL(); - - iScheduler = new(ELeave) CActiveScheduler; - CActiveScheduler::Install(iScheduler); - - - TRAPD(ret, ParseSettingsFromFileL()); - if (ret != KErrNone) - { - INFO_PRINTF2(_L("ParseSettingsFromFileL [err=%d]"), ret); - } - - iSmsStackTestUtils = CSmsStackTestUtils::NewL(this, iFs); - - return TestStepResult() ; - } - -/** - Cleanup SmsStackTestUtils, close the filer server session and delete the scheduler -*/ -TVerdict CSmsPrtTestStep::doTestStepPostambleL() - { - delete iSmsStackTestUtils; - iSmsStackTestUtils = NULL; - - delete iScheduler; - iScheduler = NULL; - - //base class postamble - unmarks the heap - CSMSTestSteps::doTestStepPostambleL(); - - //DoESockMemoryLeakTestL(); - - return CSMSTestSteps::doTestStepPostambleL() ; - } // CSmsPrtTestStep::doTestStepPostambleL - - -void CSmsPrtTestStep::DoESockMemoryLeakTestL() - { - // - // Find the current number of leaked cells in ESock... - // - TInt ret, startLeakCounter; - - ret = RProperty::Get(KUidCommsProcess, KUidCommsModuleLeakCounter, startLeakCounter); - if (ret == KErrNotFound) - { - // No variable to monitor, ESock is probably not in debug mode. - return; - } - else - { - TESTL(ret == KErrNone); - } - - // - // Connect to Rootserver... - // - RRootServ rootserver; - - User::LeaveIfError(rootserver.Connect()); - CleanupClosePushL(rootserver); - - // - // Shutdown all the ESock CPMs gracefully... - // - TRSIter iter; - TCFModuleName modName; - TRSModuleInfo modInfo; - TRequestStatus statusArray[16]; - TInt statusCount = 0; - - while (rootserver.EnumerateModules(iter, modName) == KErrNone) - { - if (rootserver.GetModuleInfo(modName, modInfo) == KErrNone && - modInfo.iParams.iDll.MatchF(_L("*ESOCKSVR.DLL")) >= 0) - { - rootserver.UnloadCpm(statusArray[statusCount++], modInfo.iParams.iName, - EGraceful); - } - } - - while (statusCount > 0) - { - statusCount--; - User::WaitForRequest(statusArray[statusCount]); - TEST(statusArray[statusCount] == KErrNone); - } - - // - // Close Rootserver session... - // - CleanupStack::PopAndDestroy(1, &rootserver); - - // - // Get the latest number of leaked cells in ESock... - // - TInt finalLeakCounter; - - ret = RProperty::Get(KUidCommsProcess, KUidCommsModuleLeakCounter, finalLeakCounter); - TESTL(ret == KErrNone); - - if (finalLeakCounter > startLeakCounter) - { - INFO_PRINTF1(_L("A memory leak has been detected inside ESock - Check SMS Stack!")); - TEST(finalLeakCounter == startLeakCounter); - } - - // - // Restart C32... - // - _LIT(KDummyCMI, ""); - WarmBootC32(KDummyCMI); - } // CSmsPrtTestStep::DoESockMemoryLeakTestL - - /** * Pre-test step function for Encoding tests. * @@ -153,13 +27,12 @@ */ TVerdict CSmsPrtEncodingTestStep::doTestStepPreambleL() { - CSmsPrtTestStep::doTestStepPreambleL(); + CSmsBaseTestStep::doTestStepPreambleL(); iTestAlphabet = CSmsPrtTestAlphabet::NewL(); - return TestStepResult() ; - } // CSmsPrtEncodingTestStep::doTestStepPreambleL - + return TestStepResult(); + } /** * Post-test step function for Encoding tests. @@ -174,8 +47,8 @@ iCharSets.Reset(); iAdditionalCharSets.Reset(); - return CSmsPrtTestStep::doTestStepPostambleL(); - } // CSmsPrtEncodingTestStep::doTestStepPostambleL + return CSmsBaseTestStep::doTestStepPostambleL(); + } /** * Computes the expected number of PDUs and expected number of free characters @@ -474,7 +347,7 @@ TInt charSetSize = 0; TInt countTestCharSetNames = aTestCharSetNames.Count(); - for (TInt charSet = 0; charSet < countTestCharSetNames; ++charSet) + for (TInt charSet = 0; charSet < countTestCharSetNames ; ++charSet) { TInt charactersInCharSet = iTestAlphabet->GetCharacterSetSizeL(aTestCharSetNames[charSet]); charSetSize += charactersInCharSet; @@ -498,11 +371,13 @@ TSmsDataCodingScheme::TSmsAlphabet aAlphabet, TSmsEncoding aEncodingToUse, TSmsEncoding aEncodingExpected) - { + { + // // Display the test name and details... // TInt countTestCharSetNames = aTestCharSetNames.Count(); + for (TInt charSet = 0; charSet < countTestCharSetNames; ++charSet) { TInt charactersInCharSet = iTestAlphabet->GetCharacterSetSizeL(aTestCharSetNames[charSet]); @@ -512,6 +387,7 @@ INFO_PRINTF2(_L("Testing encode functions starting with %d characters."), aTestCharacters); TInt countAdditionalTestCharSetNames = aAdditionalTestCharSetNames.Count(); + for (TInt charSet = 0; charSet < countAdditionalTestCharSetNames; ++charSet) { TInt charactersInCharSet = iTestAlphabet->GetCharacterSetSizeL(aAdditionalTestCharSetNames[charSet]); @@ -591,11 +467,7 @@ lastOctetCountTested = octetsCount; - // - // Create a CSmsMessage... - // - CSmsMessage* smsMessage = CreateSmsMessageL(originalPtr, aAlphabet); - CleanupStack::PushL(smsMessage); + CSmsMessage* smsMessage = CreateSmsMessageLC(originalPtr, aAlphabet); // // Perform various character tests on the smsMessage @@ -663,7 +535,7 @@ originalPtr.Length()); TRAPD(sendErr, SendSmsL(smsMessage, aSocket)); - TESTCHECK(sendErr, KErrNone); + TESTCHECK(sendErr, KErrNone, "Sending SMS"); } CleanupStack::PopAndDestroy(smsMessage); @@ -678,18 +550,17 @@ CSmsMessage* smsMessage = RecvSmsL(aSocket); CleanupStack::PushL(smsMessage); TestSmsContentsL(smsMessage, expectedPtr); - TESTCHECK(smsMessage->Alternative7bitEncoding(), aEncodingExpected); + TESTCHECK(smsMessage->Alternative7bitEncoding(), aEncodingExpected, "Getting the Alternative7bitEncoding"); CleanupStack::PopAndDestroy(smsMessage); } else { - INFO_PRINTF1(_L("Failed: No SMS message received.")); + ERR_PRINTF1(_L("Failed: No SMS message received.")); SetTestStepResult(EFail); } - CleanupStack::PopAndDestroy(expectedBuf); - CleanupStack::PopAndDestroy(originalBuf); - } // CSmsPrtEncodingTestStep::DoEncodingTestL + CleanupStack::PopAndDestroy(2, originalBuf); // originalBuf, expectedBuf + } TInt CSmsPrtEncodingTestStep::PerformCharacterTestsL( CSmsMessage* aSmsMessage, @@ -701,10 +572,7 @@ TBool aExtendedCharAdded ) { - // - // Switch on Alternative 7Bit Encoding if required... - // - TESTCHECK(aSmsMessage->SetAlternative7bitEncoding(aEncodingToUse), KErrNone); + TESTCHECK(aSmsMessage->SetAlternative7bitEncoding(aEncodingToUse), KErrNone, "Switch on Alternative 7Bit Encoding if required"); // // Find the expected number of supported characters that would have @@ -727,9 +595,10 @@ if (aAlphabet != TSmsDataCodingScheme::ESmsAlphabetUCS2) { TESTCHECKCONDITION(aSmsMessage->IsSupportedL(aOriginalPtr, numberOfUnconvertibleCharacters, - indexOfFirstUnconvertibleCharacter) == msgSupported); - TESTCHECK(numberOfUnconvertibleCharacters, expectedUnconvertibleChars); - TESTCHECK(indexOfFirstUnconvertibleCharacter, expectedFirstUnconvertibleChar); + indexOfFirstUnconvertibleCharacter) == msgSupported, + "Checking if a buffer can be encoded without loss of information"); + TESTCHECK(numberOfUnconvertibleCharacters, expectedUnconvertibleChars, "Checking number of unconvertable charachters"); + TESTCHECK(indexOfFirstUnconvertibleCharacter, expectedFirstUnconvertibleChar, "Checking index of the first unconvertable charachter"); } // @@ -757,11 +626,12 @@ TESTCHECKCONDITION(aSmsMessage->IsSupportedL(aOriginalPtr, numberOfUnconvertibleCharacters, numberOfDowngradedCharacters, numberRequiringAlternativeEncoding, - indexOfFirstUnconvertibleCharacter) == msgSupported); - TESTCHECK(numberOfUnconvertibleCharacters, expectedUnconvertibleChars); - TESTCHECK(numberOfDowngradedCharacters, expectedDowngradedChars); - TESTCHECK(numberRequiringAlternativeEncoding, expectedAlternativeEncodingChars); - TESTCHECK(indexOfFirstUnconvertibleCharacter, expectedFirstUnconvertibleChar); + indexOfFirstUnconvertibleCharacter) == msgSupported, + "Checking if a buffer can be encoded without loss of information"); + TESTCHECK(numberOfUnconvertibleCharacters, expectedUnconvertibleChars, "Checking number of unconvertable charachters"); + TESTCHECK(numberOfDowngradedCharacters, expectedDowngradedChars, "Checking number of Downgraded charachters"); + TESTCHECK(numberRequiringAlternativeEncoding, expectedAlternativeEncodingChars, "Checking number requiring alternative encoding charachters"); + TESTCHECK(indexOfFirstUnconvertibleCharacter, expectedFirstUnconvertibleChar, "Checking index of the first unconvertable charachter"); } // @@ -799,17 +669,16 @@ expectedPDUs, expectedFreeUDUnitsInLastPDU); } - TESTCHECK(pdus, expectedPDUs); - TESTCHECK(numberOfUnconvertibleCharacters, expectedUnconvertibleChars); - TESTCHECK(numberOfDowngradedCharacters, expectedDowngradedChars); - TESTCHECK(freeUDUnitsInLastPDU, expectedFreeUDUnitsInLastPDU); + TESTCHECK(pdus, expectedPDUs, "Checking number of expected PDUs"); + TESTCHECK(numberOfUnconvertibleCharacters, expectedUnconvertibleChars, "Checking number of unconvertable charachters"); + TESTCHECK(numberOfDowngradedCharacters, expectedDowngradedChars, "Checking number of Downgraded charachters"); + TESTCHECK(freeUDUnitsInLastPDU, expectedFreeUDUnitsInLastPDU, "Checking freeUDUnitsInLastPDU"); // // Check the old PDU count function... // pdus = aSmsMessage->NumMessagePDUsL(); - TESTCHECK(pdus, expectedPDUs); + TESTCHECK(pdus, expectedPDUs, "Checking number of expected PDUs"); return octetsCount; } - diff -r 962e6306d9d2 -r 7ef16719d8cb smsprotocols/smsstack/smsprot/Test/TE_Smsprt/TE_smsprtbase.h --- a/smsprotocols/smsstack/smsprot/Test/TE_Smsprt/TE_smsprtbase.h Fri Feb 19 23:59:33 2010 +0200 +++ b/smsprotocols/smsstack/smsprot/Test/TE_Smsprt/TE_smsprtbase.h Fri Mar 12 15:49:38 2010 +0200 @@ -21,9 +21,6 @@ #define _TE_SMSPRTBASE_H_ #include -#include "Te_smsprttestcase.h" -#include "TE_smsprt_alphabet.h" -#include "smsstacktestutilities.h" #include #include #include @@ -34,230 +31,25 @@ #include #include #include -#include "smspdudb.h" -#include "smspproc.h" -#include "attributes.h" #include #include #include -#define DSTDNC_NEWCALL_FULLNAME _L("DummyNc::PotsNc::") - -_LIT(KGmsSmsConfigFileName,"setupgsmsms.txt"); -_LIT(KTSmsPrtConfigFileName, "tsmsprt_config.txt"); -_LIT(KTSmsPrtConfigExtraFileName, "tsmsprt_config_extra.txt"); -_LIT(KTSmsPrtConfigTxRxMaxMsgFileName, "tsmsprt_config_tx_rx_maxmsg.txt"); - -_LIT8(KServiceCentreAddress, "ServiceCentreAddress"); -_LIT8(KSmspEntryValidParams, "SmspEntryValidParams"); -_LIT8(KSmspEntryScTypeOfNumber, "SmspEntryScTypeOfNumber"); -_LIT8(KSmspEntryScNumberPlan, "SmspEntryScNumberPlan"); - -_LIT(KVodafoneSC,"+447785016005"); //Vodafone SC -_LIT(KRegTestNumber,"+447747065548"); //Number used with regtest -_LIT(KTestNumber,"+447747065825"); //Number used with regtest - -_LIT(KSoneraSC,"+358405202000"); //Sonera SC -_LIT(KRadiolinjaSC,"+358508771010"); //Radiolinja SC - -_LIT(KPekka,"+358408415528"); //Pekka's telephone number -_LIT(KOther,"+358408415582"); // Other test number -_LIT(KLocalNumber, "08408415528"); //Local test number to verify local/international switching -_LIT(KInternationalTestNumber, "+819021710979"); // International number to be used with a status - // report containing local version of this number - -_LIT8(KTestSendAndRecvMsgsWithDifferentTON, "SendAndRecvMsgsWithDifferentTON"); -_LIT8(KTestSendAndReceiveIndicatorMsgs, "SendAndReceiveIndicatorMsgs"); -_LIT(KConfigFileDir,"sms"); -_LIT8(KAlphabet, "Alphabet"); -_LIT8(KTypeOfNumber, "TypeOfNumber"); -_LIT8(KIndicationType, "IndicationType"); -_LIT8(KDCSBits7To4, "DCSBits7To4"); -_LIT8(KIndicationState, "IndicationState"); - -_LIT(KText, "123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123"); - - -const TUint KSocketMessageSlots = 16; // Override the default value of 8 +#include "smsstacktestcase.h" +#include "TE_smsprt_alphabet.h" +#include "smsstacktestutilities.h" +#include "smsstackbaseteststeps.h" +#include "smsstacktestconsts.h" +#include "smspdudb.h" +#include "smspproc.h" +#include "attributes.h" using namespace CommsDat; - -// -// Test macros -// -#define TESTCHECKL(a, b) \ - { \ - if((a)!=(b)) \ - { \ - INFO_PRINTF3(_L("Failed: Got %d while expecting %d."),a,b); \ - SetTestStepResult(EFail); \ - User::Leave(EFail); \ - } \ - } - -#define TESTCHECKCONDITIONL(a) \ - { \ - if (!(a)) \ - { \ - INFO_PRINTF1(_L("Failed: Condition was false.")); \ - SetTestStepResult(EFail); \ - User::Leave(EFail); \ - } \ - } - -#define TESTCHECKSTRL(a, b) \ - { \ - if((a)!=(b)) \ - { \ - TBuf<255> temp = a ; \ - INFO_PRINTF3(_L("Failed: Got \"%S\" while expecting \"%S\"."), &temp,&(b)); \ - SetTestStepResult(EFail); \ - User::Leave(EFail); \ - } \ - } - -#define TESTCHECK(a, b) \ - { \ - if((a)!=(b)) \ - { \ - INFO_PRINTF3(_L("Failed: Got %d while expecting %d."),a,b); \ - SetTestStepResult(EFail); \ - } \ - } - -#define TESTCHECKCONDITION(a) \ - { \ - if (!(a)) \ - { \ - INFO_PRINTF1(_L("Failed: Condition was false.")); \ - SetTestStepResult(EFail); \ - } \ - } - -#define TESTCHECKSTR(a, b) \ - { \ - if((a)!=(b)) \ - { \ - TBuf<255> temp = a ; \ - INFO_PRINTF3(_L("Failed: Got \"%S\" while expecting \"%S\"."), &temp,&(b)); \ - SetTestStepResult(EFail); \ - } \ - } - - -/** - Base class housing SMS test Steps -*/ -class CSMSTestSteps : public CTestStep -{ -public: - -// static CSMSTestSteps* NewL(); - ~CSMSTestSteps(); - - - enum TCodingScheme{ESevenBit=7, EEightBit}; - - /* Functions grabbed from SMS Stack Test Utils */ - //Socket utils - void OpenSmsSocketL(RSocketServ& aSocketServer, RSocket& aSocket, TSmsAddr& aSmsAddr); - void OpenSmsSocketL(RSocketServ& aSocketServer, RSocket& aSocket, TSmsAddrFamily aFamily); - void WaitForInitializeL(); - void SetSimTSYTestNumberL(TInt aTestNumber); - void ParseSettingsFromFileL(); - void PrepareRegTestLC(RSocketServ& aSocketServer, TInt aTestNumber); - CSmsMessage* CreateSmsMessageL(const TDesC& aDes, TSmsDataCodingScheme::TSmsAlphabet aAlphabet, CSmsPDU::TSmsPDUType aType = CSmsPDU::ESmsSubmit); - CSmsMessage* RecvSmsL(RSocket& aSocket, TInt aIoctl = KIoctlReadMessageSucceeded); - CSmsMessage* CreateSmsWithStatusReportReqL(const TDesC& aDes, TSmsDataCodingScheme::TSmsAlphabet aAlphabet); - CSmsMessage* RecvSmsFailedL(RSocket& aSocket); - CSmsMessage* CreateSmsMessageLC(CSmsPDU::TSmsPDUType aType, CSmsBuffer* aBuffer, const TDesC& aAddress); - //This method is used to create SMS message from test data - CSmsMessage* CreateSMSL(); - void SetFreeDiskSpaceL(TInt64 aNewFreeValue); - void ReleaseDiskSpaceL(); - TUint64 SetHighLowLimitsAndDiskSpaceLevelL(TUint aHighDrop, TUint aLowDrop, TUint aFreeDrop, TUint64 aMax=0x7fffffff); - void SetFreeDiskSpaceFromDropLevelL(TUint aFreeDrop); - void SetLowHighLimitsInSmsuRscL(TInt64 aLowLimit, TInt64 aHighLimit); - void RemoveLowHighLimitsFromSmsuRscL(); - void SendSmsL(const CSmsMessage* aSms, RSocket& aSocket); - void SendSmsCancelL(CSmsMessage* aSms, RSocket& aSocket1, RSocket& aSocket2); - TInt SendSmsErrorL(CSmsMessage* aSms, RSocket& aSocket); - void SendCommandSmsL(CSmsMessage* aSms, RSocket& aSocket); - void SendAndRecvTestMessageL(const TTestCase& aTestCase, RSocket& aSocket); - void SendTestMessageL(const TTestCase& aTestCase, RSocket& aSocket); - void SendSmsDontCheckReturnValueL(CSmsMessage* aSms, RSocket& aSocket); - void SendAndRecvSms7BitL(const TDesC& aDes, RSocket& aSocket); - void DoSendAndRecvSmsL(const TDesC& aDes, TSmsDataCodingScheme::TSmsAlphabet aAlphabet, RSocket& aSocket); - void PrintMessageL(const CSmsMessage* aSms); - void PrintSmsMessage(const CSmsMessage& aMessage); - TSmsStatus::TSmsStatusValue RecvStatusReportL(TSmsServiceCenterAddress& aRecipientNumber, RSocket& aSocket); - void WaitForRecvL(RSocket& aSocket); - void TestSmsContentsL(CSmsMessage* aSms, const TDesC& aDes, TBool aIgnorePrintOutput = EFalse); - void TestMessageContentsL(CSmsMessage* aSms, const TTestCase& aTestCase); - void WriteSmsToSimL(CSmsMessage& aSms, RSocket& aSocket); - void WriteSmsLeaveIfErrorL(const CSmsMessage& aSms, RSocket& aSocket); - void ReadSmsStoreL(RSocket& aSocket, RPointerArray& aMessages); - void ReadSmsStoreL(RSocket& aSocket, RPointerArray& aMessages, TRequestStatus &aStatus); - TInt DeleteSmsL(const CSmsMessage& aSms, RSocket& aSocket); - void DeleteSmsLeaveIfErrorL(const CSmsMessage& aSms, RSocket& aSocket); - void SetIndicatorL(const TTestCase& aTestCase, CSmsMessage* aSms); - void FillDes(TDes& aDes,TInt aLength); - TInt MakeReadSmsStoreRequestL(RSocket& aSocket); - TBool TimedWaitForRecvL(RSocket& aSocket, TUint aDelay); - TInt CancelWriteSmsToSimL(CSmsMessage& aSms, RSocket& aSocket, TInt aDelay); - TBool DoSingleTestCaseL( const TDesC8& aSection, TInt aCount ); - void ReadPduL( TBuf8<64> aSectionName, RPointerArray& aArray ); - void TestSendAndRecvMsgsWithDifferentTONL( const RPointerArray& aArray, - const CArrayFixFlat* aAlphabetArray, - const CArrayFixFlat* aTypeOfNumberArray ); - void TestSendAndReceiveIndicatorMsgsL( const RPointerArray& aArray, - const CArrayFixFlat* aIndicationStateArray, - const CArrayFixFlat* aDcsBits7To4Array, - const CArrayFixFlat* aIndicationTypeArray ); - RFs iFs; - RSocketServ *iSocketServer; - - TSmsServiceCenterAddress iTelephoneNumber; //Test SIM - TSmsServiceCenterAddress iServiceCenterNumber; //Radiolinja - - void WriteToSIML(RSocket& aSocket, const CSmsMessage& aMsg); - - CSmsStackTestUtils* iSmsStackTestUtils; - - virtual TVerdict doTestStepPreambleL(); - virtual TVerdict doTestStepPostambleL(); - -protected: - CSmsMessage *iSms; -}; - - -/** - Legacy base class. This was the original base class. It has a dependency with SmsStackTestUtils. - Its preamble and postamble steps create and destroy the socket server session and socket - subsession - This is limiting as it only allows one test step to execute within a session. - - The CSmsTestSteps was abstracted from this class. This has effectively removed this constraint. - The CSmsTestSteps share the socket session and subsession, which establishes re-usable test steps. -*/ -class CSmsPrtTestStep : public CSMSTestSteps -{ - -public: - virtual TVerdict doTestStepPreambleL(); - virtual TVerdict doTestStepPostambleL(); - void DoESockMemoryLeakTestL(); - -public: - CActiveScheduler* iScheduler; -}; - - /** * Test Step base case for all encoding tests. */ -class CSmsPrtEncodingTestStep : public CSmsPrtTestStep +class CSmsPrtEncodingTestStep : public CSmsBaseTestStep { public: virtual TVerdict doTestStepPreambleL(); diff -r 962e6306d9d2 -r 7ef16719d8cb smsprotocols/smsstack/smsprot/Test/TE_Smsprt/TE_smsprtserver.cpp --- a/smsprotocols/smsstack/smsprot/Test/TE_Smsprt/TE_smsprtserver.cpp Fri Feb 19 23:59:33 2010 +0200 +++ b/smsprotocols/smsstack/smsprot/Test/TE_Smsprt/TE_smsprtserver.cpp Fri Mar 12 15:49:38 2010 +0200 @@ -21,7 +21,7 @@ #include "TE_smsprtserver.h" #include "TE_smsprt.h" -#include "Te_smsprttestcase.h" +#include "smsstacktestcase.h" #include "te_smsprt_R6.h" #include "Te_StatusReportSchemeSteps.h" #include "Te_SmsTestSteps.h" @@ -39,22 +39,14 @@ { CSmsPrtTestServer * server = new (ELeave) CSmsPrtTestServer(); CleanupStack::PushL(server); + // CSmsStackTestServer intermediate base class call + server->InitializeTsyAndPhonesL(); // CServer base class call server->StartL(KServerName); CleanupStack::Pop(server); return server; } -/** - Server destructor ensures SocketServer and Socket session and subsession are closed -*/ -CSmsPrtTestServer::~CSmsPrtTestServer() - { - iSocketServer.Close(); - - } - - LOCAL_C void MainL() /** * Much simpler, uses the new Rendezvous() call to sync with the client @@ -186,6 +178,10 @@ { testStep = new CTestDeleteSms ; } + else if (aStepName == _L("TestSmsAddr")) + { + testStep = new CTestSmsAddr; + } else if (aStepName == _L("TestSocketBinding")) { testStep = new CTestSocketBinding ; @@ -296,7 +292,7 @@ } else if (aStepName == _L("SmsParamsErrorCases")) { - testStep = new CSmsParamsErrorCases ; + testStep = new CTestSmsParamsErrorCases ; } else if (aStepName == _L("TestResendFailedConcatinatedMessage")) { @@ -493,23 +489,23 @@ } else if (aStepName== _L("EnhancedVoiceMessageBoundaryTest")) { - testStep = new CEnhancedVoiceMessageBoundaryTest(); + testStep = new CTestEnhancedVoiceMessageBoundary(); } else if (aStepName== _L("EnhancedVoiceMessageBoundaryTest1")) { - testStep = new CEnhancedVoiceMessageBoundaryTest1(); + testStep = new CTestEnhancedVoiceMessageBoundary1(); } else if (aStepName== _L("CSubmitReportDefaultsTo7BitDecoding")) { - testStep = new CSubmitReportDefaultsTo7BitDecoding(); + testStep = new CTestSubmitReportDefaultsTo7BitDecoding(); } else if (aStepName== _L("CDeliverReportDefaultsTo7BitDecoding")) { - testStep = new CDeliverReportDefaultsTo7BitDecoding(); + testStep = new CTestDeliverReportDefaultsTo7BitDecoding(); } else if (aStepName== _L("CStatusReportDefaultsTo7BitDecoding")) { - testStep = new CStatusReportDefaultsTo7BitDecoding(); + testStep = new CTestStatusReportDefaultsTo7BitDecoding(); } else if (aStepName== _L("TestSendingTPSRRSchemeInAllPDUs")) { @@ -639,10 +635,6 @@ { testStep = new CEnumerateInOODCondition(iSocketServer); } - else if (aStepName== _L("ESockMemoryLeakTest")) - { - testStep = new CESockMemoryLeakTest(); - } else if (aStepName== _L("TestEncodingPDUonBoundary")) { testStep = new CTestEncodingPDUonBoundary(); diff -r 962e6306d9d2 -r 7ef16719d8cb smsprotocols/smsstack/smsprot/Test/TE_Smsprt/TE_smsprtserver.h --- a/smsprotocols/smsstack/smsprot/Test/TE_Smsprt/TE_smsprtserver.h Fri Feb 19 23:59:33 2010 +0200 +++ b/smsprotocols/smsstack/smsprot/Test/TE_Smsprt/TE_smsprtserver.h Fri Mar 12 15:49:38 2010 +0200 @@ -15,22 +15,21 @@ // // -#if (!defined __TE_SMSPRTSERVER_H__) -#define __TE_SMSPRTSERVER_H__ -#include "TE_smsprtbase.h" -#include +#ifndef TE_SMSPRTSERVER_H +#define TE_SMSPRTSERVER_H +#include -class CSmsPrtTestServer : public CTestServer +#include "smsstackbasetestserver.h" + +class CSmsPrtTestServer : public CSmsStackTestServer { public: static CSmsPrtTestServer* NewL(); virtual CTestStep* CreateTestStep(const TDesC& aStepName); - ~CSmsPrtTestServer(); +private: RSocketServ iSocketServer; - RSocket iSocket; - }; -#endif +#endif // TE_SMSPRTSERVER_H diff -r 962e6306d9d2 -r 7ef16719d8cb smsprotocols/smsstack/smsprot/Test/TE_Smsprt/Te_Class0StoreEnabled.cpp --- a/smsprotocols/smsstack/smsprot/Test/TE_Smsprt/Te_Class0StoreEnabled.cpp Fri Feb 19 23:59:33 2010 +0200 +++ b/smsprotocols/smsstack/smsprot/Test/TE_Smsprt/Te_Class0StoreEnabled.cpp Fri Mar 12 15:49:38 2010 +0200 @@ -24,22 +24,23 @@ Each test step initialises it's own name */ { - iSocketServer = &aSocketServer; + iSharedSocketServer = &aSocketServer; + iPartOfMultiStepTestCase = ETrue; } /** Checks wheather the CLASS0 store has in fact been enabled. - */ + */ TVerdict CClass0StoreEnabled::doTestStepL() { TBool isClass0StoreEnabled = EFalse; GetBoolFromConfig(ConfigSection(), _L("isClass0StoreEnabled"), isClass0StoreEnabled); //Open a socket - INFO_PRINTF1(_L("Opening socket...")); RSocket socket; - OpenSmsSocketL(*iSocketServer, socket, ESmsAddrRecvAny); + OpenSmsSocketL(*iSharedSocketServer, socket, ESmsAddrRecvAny); + CleanupClosePushL(socket); TRequestStatus status; socket.Ioctl(KIoctlSupportOODClass0SmsMessages, status, NULL, KSolSmsProv); @@ -48,15 +49,6 @@ TEST((isClass0StoreEnabled && status == KErrNone) || (!isClass0StoreEnabled && status == KErrNotSupported)); - socket.Close(); - + CleanupStack::PopAndDestroy(&socket); return TestStepResult(); } -//----------------------------------------------------------------------------- - - - - - - - diff -r 962e6306d9d2 -r 7ef16719d8cb smsprotocols/smsstack/smsprot/Test/TE_Smsprt/Te_ForwardSystemTime.cpp --- a/smsprotocols/smsstack/smsprot/Test/TE_Smsprt/Te_ForwardSystemTime.cpp Fri Feb 19 23:59:33 2010 +0200 +++ b/smsprotocols/smsstack/smsprot/Test/TE_Smsprt/Te_ForwardSystemTime.cpp Fri Mar 12 15:49:38 2010 +0200 @@ -19,6 +19,11 @@ #include "Te_SmsTestSteps.h" +CForwardSystemTime::CForwardSystemTime() + { + iPartOfMultiStepTestCase = ETrue; + } + /** Forwards the system time in minutes. */ diff -r 962e6306d9d2 -r 7ef16719d8cb smsprotocols/smsstack/smsprot/Test/TE_Smsprt/Te_SMSStackOutOfDiskSpace.script --- a/smsprotocols/smsstack/smsprot/Test/TE_Smsprt/Te_SMSStackOutOfDiskSpace.script Fri Feb 19 23:59:33 2010 +0200 +++ b/smsprotocols/smsstack/smsprot/Test/TE_Smsprt/Te_SMSStackOutOfDiskSpace.script Fri Mar 12 15:49:38 2010 +0200 @@ -36,7 +36,7 @@ //! @SYMAuthor donalclerkin RUN_UTILS DeleteFile c:\private\101F7989\sms\smsclass0preallocated.dat RUN_UTILS DeleteFile c:\private\101F7989\sms\smsclass0reast.dat -RUN_TEST_STEP 60 TE_smsprt LoadSMSProtocol z:\testdata\configs\SIMTSYTestNumbers.ini TestNumber8 +RUN_TEST_STEP 60 TE_smsprt LoadSMSProtocol z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber8 RUN_TEST_STEP 60 TE_smsprt SetDiskMonitorLimits z:\testdata\configs\SMSOutOfDiskSpace.ini DiskMonitorLimits RUN_TEST_STEP 120 TE_smsprt SetDiskSpace z:\testdata\configs\SMSOutOfDiskSpace.ini DiskSpaceBelowLowLimit RUN_TEST_STEP 120 TE_smsprt SendSMS z:\testdata\configs\SMSOutOfDiskSpace.ini SinglePDU8BitMessage @@ -46,7 +46,6 @@ RUN_TEST_STEP 120 TE_smsprt FreeDiskSpace RUN_TEST_STEP 60 TE_smsprt CloseSMSProtocol RUN_UTILS DeleteFile c:\private\101F7989\sms\smsu.rsc -RUN_TEST_STEP 60 TE_smsprt ESockMemoryLeakTest END_TESTCASE TEL-SMS-SMSPRT-0125 @@ -63,13 +62,12 @@ //! @SYMCreationDate 29/11/2006 //! @SYMAuthor danieldu //! @SYMTestStatus 2. Development -RUN_TEST_STEP 60 TE_smsprt LoadSMSProtocol z:\testdata\configs\SIMTSYTestNumbers.ini TestNumber1 +RUN_TEST_STEP 60 TE_smsprt LoadSMSProtocol z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber1 RUN_TEST_STEP 60 TE_smsprt SetDiskMonitorLimits z:\testdata\configs\SMSOutOfDiskSpace.ini DiskMonitorLimits RUN_TEST_STEP 120 TE_smsprt SetDiskSpace z:\testdata\configs\SMSOutOfDiskSpace.ini DiskSpaceBelowLowLimit RUN_TEST_STEP 60 TE_smsprt ReceiveSMS z:\testdata\configs\SMSOutOfDiskSpace.ini MessageExpected RUN_TEST_STEP 120 TE_smsprt FreeDiskSpace RUN_TEST_STEP 60 TE_smsprt CloseSMSProtocol -RUN_TEST_STEP 60 TE_smsprt ESockMemoryLeakTest RUN_UTILS DeleteFile c:\private\101F7989\sms\smsu.rsc END_TESTCASE TEL-SMS-SMSPRT-0126 @@ -91,14 +89,13 @@ //! @SYMTestStatus 2. Development RUN_UTILS DeleteFile c:\private\101F7989\sms\smsclass0preallocated.dat RUN_UTILS DeleteFile c:\private\101F7989\sms\smsclass0reast.dat -RUN_TEST_STEP 60 TE_smsprt LoadSMSProtocol z:\testdata\configs\SIMTSYTestNumbers.ini TestNumber2 +RUN_TEST_STEP 60 TE_smsprt LoadSMSProtocol z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber2 RUN_TEST_STEP 60 TE_smsprt SetDiskMonitorLimits z:\testdata\configs\SMSOutOfDiskSpace.ini DiskMonitorLimits RUN_TEST_STEP 120 TE_smsprt SetDiskSpace z:\testdata\configs\SMSOutOfDiskSpace.ini DiskSpaceBelowLowLimit RUN_TEST_STEP 120 TE_smsprt SendSMS z:\testdata\configs\SMSOutOfDiskSpace.ini SinglePDU8BitMessage RUN_TEST_STEP 60 TE_smsprt ReceiveSMS z:\testdata\configs\SMSOutOfDiskSpace.ini MessageExpected RUN_TEST_STEP 120 TE_smsprt FreeDiskSpace RUN_TEST_STEP 60 TE_smsprt CloseSMSProtocol -RUN_TEST_STEP 60 TE_smsprt ESockMemoryLeakTest RUN_UTILS DeleteFile c:\private\101F7989\sms\smsu.rsc END_TESTCASE TEL-SMS-SMSPRT-0128 @@ -125,20 +122,26 @@ RUN_UTILS copyfile c:\private\101F7989\esock\smswap.sms.esk c:\private\101F7989\esock\smswap.sms.bak RUN_UTILS MakeReadWrite c:\private\101F7989\esock\smswap.sms.esk RUN_UTILS copyfile z:\testdata\configs\smswap_MaxFivePDUsInOOD.esk c:\private\101F7989\esock\smswap.sms.esk -RUN_TEST_STEP 60 TE_smsprt LoadSMSProtocol z:\testdata\configs\SIMTSYTestNumbers.ini TestNumber27 +RUN_TEST_STEP 60 TE_smsprt LoadSMSProtocol z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber27 RUN_TEST_STEP 60 TE_smsprt SetDiskMonitorLimits z:\testdata\configs\SMSOutOfDiskSpace.ini DiskMonitorLimits RUN_TEST_STEP 120 TE_smsprt SetDiskSpace z:\testdata\configs\SMSOutOfDiskSpace.ini DiskSpaceBelowLowLimit + +//Wait for 4 PDUs to be received - trigger each from a send - no message expected RUN_TEST_STEP 120 TE_smsprt SendSMS z:\testdata\configs\SMSOutOfDiskSpace.ini SinglePDU8BitMessage -//Wait for 4 PDUs to be received - -DELAY 60000 -//Trigger receipt of another PDU to fill the last slot +RUN_TEST_STEP 60 TE_smsprt ReceiveSMS z:\testdata\configs\SMSOutOfDiskSpace.ini MessageNotExpected +RUN_TEST_STEP 120 TE_smsprt SendSMS z:\testdata\configs\SMSOutOfDiskSpace.ini SinglePDU8BitMessage +RUN_TEST_STEP 60 TE_smsprt ReceiveSMS z:\testdata\configs\SMSOutOfDiskSpace.ini MessageNotExpected +RUN_TEST_STEP 120 TE_smsprt SendSMS z:\testdata\configs\SMSOutOfDiskSpace.ini SinglePDU8BitMessage RUN_TEST_STEP 60 TE_smsprt ReceiveSMS z:\testdata\configs\SMSOutOfDiskSpace.ini MessageNotExpected RUN_TEST_STEP 120 TE_smsprt SendSMS z:\testdata\configs\SMSOutOfDiskSpace.ini SinglePDU8BitMessage -//Check that the oldest PDU is delivered +RUN_TEST_STEP 60 TE_smsprt ReceiveSMS z:\testdata\configs\SMSOutOfDiskSpace.ini MessageNotExpected + +// Trigger receipt of another PDU to fill the last slot - check that the oldest PDU is delivered +RUN_TEST_STEP 120 TE_smsprt SendSMS z:\testdata\configs\SMSOutOfDiskSpace.ini SinglePDU8BitMessage RUN_TEST_STEP 60 TE_smsprt ReceiveSMS z:\testdata\configs\SMSOutOfDiskSpace.ini MessageExpectedPartOf8Bit + RUN_TEST_STEP 120 TE_smsprt FreeDiskSpace RUN_TEST_STEP 60 TE_smsprt CloseSMSProtocol -RUN_TEST_STEP 60 TE_smsprt ESockMemoryLeakTest RUN_UTILS DeleteFile c:\private\101F7989\sms\smsu.rsc RUN_UTILS MakeReadWrite c:\private\101F7989\esock\smswap.sms.esk RUN_UTILS copyfile c:\private\101F7989\esock\smswap.sms.bak c:\private\101F7989\esock\smswap.sms.esk @@ -162,30 +165,39 @@ //! @SYMTestStatus 2. Development RUN_UTILS DeleteFile c:\private\101F7989\sms\smsclass0preallocated.dat RUN_UTILS DeleteFile c:\private\101F7989\sms\smsclass0reast.dat + //Copy esk file with MAX PDUs = 5 RUN_UTILS DeleteFile c:\private\101F7989\esock\smswap.sms.bak RUN_UTILS copyfile c:\private\101F7989\esock\smswap.sms.esk c:\private\101F7989\esock\smswap.sms.bak RUN_UTILS MakeReadWrite c:\private\101F7989\esock\smswap.sms.esk RUN_UTILS copyfile z:\testdata\configs\smswap_MaxFivePDUsInOOD.esk c:\private\101F7989\esock\smswap.sms.esk -RUN_TEST_STEP 60 TE_smsprt LoadSMSProtocol z:\testdata\configs\SIMTSYTestNumbers.ini TestNumber28 +RUN_TEST_STEP 60 TE_smsprt LoadSMSProtocol z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber28 RUN_TEST_STEP 60 TE_smsprt SetDiskMonitorLimits z:\testdata\configs\SMSOutOfDiskSpace.ini DiskMonitorLimits -//Fill the preallocation file RUN_TEST_STEP 120 TE_smsprt SetDiskSpace z:\testdata\configs\SMSOutOfDiskSpace.ini DiskSpaceBelowLowLimit + +//Wait for 4 PDUs to be received - trigger each from a send - no message expected RUN_TEST_STEP 120 TE_smsprt SendSMS z:\testdata\configs\SMSOutOfDiskSpace.ini SinglePDU8BitMessage -//Wait for 4 PDUs to be received -DELAY 60000 -RUN_TEST_STEP 120 TE_smsprt FreeDiskSpace -//Recieve the first of the three +RUN_TEST_STEP 60 TE_smsprt ReceiveSMS z:\testdata\configs\SMSOutOfDiskSpace.ini MessageNotExpected RUN_TEST_STEP 120 TE_smsprt SendSMS z:\testdata\configs\SMSOutOfDiskSpace.ini SinglePDU8BitMessage RUN_TEST_STEP 60 TE_smsprt ReceiveSMS z:\testdata\configs\SMSOutOfDiskSpace.ini MessageNotExpected +RUN_TEST_STEP 120 TE_smsprt SendSMS z:\testdata\configs\SMSOutOfDiskSpace.ini SinglePDU8BitMessage +RUN_TEST_STEP 60 TE_smsprt ReceiveSMS z:\testdata\configs\SMSOutOfDiskSpace.ini MessageNotExpected +RUN_TEST_STEP 120 TE_smsprt SendSMS z:\testdata\configs\SMSOutOfDiskSpace.ini SinglePDU8BitMessage +RUN_TEST_STEP 60 TE_smsprt ReceiveSMS z:\testdata\configs\SMSOutOfDiskSpace.ini MessageNotExpected + +RUN_TEST_STEP 120 TE_smsprt FreeDiskSpace +RUN_TEST_STEP 120 TE_smsprt SendSMS z:\testdata\configs\SMSOutOfDiskSpace.ini SinglePDU8BitMessage +RUN_TEST_STEP 60 TE_smsprt ReceiveSMS z:\testdata\configs\SMSOutOfDiskSpace.ini MessageNotExpected + RUN_TEST_STEP 120 TE_smsprt SetDiskSpace z:\testdata\configs\SMSOutOfDiskSpace.ini DiskSpaceBelowLowLimit RUN_TEST_STEP 120 TE_smsprt SendSMS z:\testdata\configs\SMSOutOfDiskSpace.ini SinglePDU8BitMessage RUN_TEST_STEP 60 TE_smsprt ReceiveSMS z:\testdata\configs\SMSOutOfDiskSpace.ini MessageExpectedPartOf8Bit + RUN_TEST_STEP 120 TE_smsprt FreeDiskSpace RUN_TEST_STEP 120 TE_smsprt SendSMS z:\testdata\configs\SMSOutOfDiskSpace.ini SinglePDU8BitMessage RUN_TEST_STEP 60 TE_smsprt ReceiveSMS z:\testdata\configs\SMSOutOfDiskSpace.ini MessageExpectedThreePDUs + RUN_TEST_STEP 60 TE_smsprt CloseSMSProtocol -RUN_TEST_STEP 60 TE_smsprt ESockMemoryLeakTest RUN_UTILS DeleteFile c:\private\101F7989\sms\smsu.rsc RUN_UTILS MakeReadWrite c:\private\101F7989\esock\smswap.sms.esk RUN_UTILS copyfile c:\private\101F7989\esock\smswap.sms.bak c:\private\101F7989\esock\smswap.sms.esk @@ -214,7 +226,7 @@ RUN_UTILS copyfile c:\private\101F7989\esock\smswap.sms.esk c:\private\101F7989\esock\smswap.sms.bak RUN_UTILS MakeReadWrite c:\private\101F7989\esock\smswap.sms.esk RUN_UTILS copyfile z:\testdata\configs\smswap_MaxFivePDUsInOOD.esk c:\private\101F7989\esock\smswap.sms.esk -RUN_TEST_STEP 60 TE_smsprt LoadSMSProtocol z:\testdata\configs\SIMTSYTestNumbers.ini TestNumber29 +RUN_TEST_STEP 60 TE_smsprt LoadSMSProtocol z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber29 RUN_TEST_STEP 60 TE_smsprt SetDiskMonitorLimits z:\testdata\configs\SMSOutOfDiskSpace.ini DiskMonitorLimits //Fill the preallocation file RUN_TEST_STEP 120 TE_smsprt SetDiskSpace z:\testdata\configs\SMSOutOfDiskSpace.ini DiskSpaceBelowLowLimit @@ -233,7 +245,6 @@ RUN_TEST_STEP 60 TE_smsprt ReceiveSMS z:\testdata\configs\SMSOutOfDiskSpace.ini MessageExpectedThreePDUs RUN_TEST_STEP 120 TE_smsprt FreeDiskSpace RUN_TEST_STEP 60 TE_smsprt CloseSMSProtocol -RUN_TEST_STEP 60 TE_smsprt ESockMemoryLeakTest RUN_UTILS DeleteFile c:\private\101F7989\sms\smsu.rsc RUN_UTILS MakeReadWrite c:\private\101F7989\esock\smswap.sms.esk RUN_UTILS copyfile c:\private\101F7989\esock\smswap.sms.bak c:\private\101F7989\esock\smswap.sms.esk @@ -256,7 +267,7 @@ //! @SYMAuthor danieldu RUN_UTILS DeleteFile c:\private\101F7989\sms\smsclass0preallocated.dat RUN_UTILS DeleteFile c:\private\101F7989\sms\smsclass0reast.dat -RUN_TEST_STEP 60 TE_smsprt LoadSMSProtocol z:\testdata\configs\SIMTSYTestNumbers.ini TestNumber4 +RUN_TEST_STEP 60 TE_smsprt LoadSMSProtocol z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber4 RUN_TEST_STEP 60 TE_smsprt SetDiskMonitorLimits z:\testdata\configs\SMSOutOfDiskSpace.ini DiskMonitorLimits RUN_TEST_STEP 120 TE_smsprt SetDiskSpace z:\testdata\configs\SMSOutOfDiskSpace.ini DiskSpaceBelowLowLimit RUN_TEST_STEP 120 TE_smsprt SendSMS z:\testdata\configs\SMSOutOfDiskSpace.ini SinglePDU8BitMessage @@ -267,7 +278,6 @@ RUN_TEST_STEP 60 TE_smsprt ReceiveSMS z:\testdata\configs\SMSOutOfDiskSpace.ini MessageExpectedFirstPDU RUN_TEST_STEP 120 TE_smsprt FreeDiskSpace RUN_TEST_STEP 60 TE_smsprt CloseSMSProtocol -RUN_TEST_STEP 60 TE_smsprt ESockMemoryLeakTest RUN_UTILS DeleteFile c:\private\101F7989\sms\smsu.rsc END_TESTCASE TEL-SMS-SMSPRT-0132 @@ -289,14 +299,13 @@ //! @SYMTestStatus 2. Development RUN_UTILS DeleteFile c:\private\101F7989\sms\smsclass0preallocated.dat RUN_UTILS DeleteFile c:\private\101F7989\sms\smsclass0reast.dat -RUN_TEST_STEP 60 TE_smsprt LoadSMSProtocol z:\testdata\configs\SIMTSYTestNumbers.ini TestNumber12 +RUN_TEST_STEP 60 TE_smsprt LoadSMSProtocol z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber12 RUN_TEST_STEP 60 TE_smsprt SetDiskMonitorLimits z:\testdata\configs\SMSOutOfDiskSpace.ini DiskMonitorLimits RUN_TEST_STEP 120 TE_smsprt SetDiskSpace z:\testdata\configs\SMSOutOfDiskSpace.ini DiskSpaceBelowLowLimit RUN_TEST_STEP 120 TE_smsprt SendSMS z:\testdata\configs\SMSOutOfDiskSpace.ini SinglePDU8BitMessage RUN_TEST_STEP 120 TE_smsprt ReceiveSMS z:\testdata\configs\SMSOutOfDiskSpace.ini MessageNotExpected RUN_TEST_STEP 60 TE_smsprt CloseSMSProtocol -RUN_TEST_STEP 60 TE_smsprt LoadSMSProtocol z:\testdata\configs\SIMTSYTestNumbers.ini TestNumber14 -RUN_TEST_STEP 120 TE_smsprt SetDiskSpace z:\testdata\configs\SMSOutOfDiskSpace.ini DiskSpaceBelowLowLimit +RUN_TEST_STEP 60 TE_smsprt LoadSMSProtocol z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber14 RUN_TEST_STEP 30 TE_smsprt ForwardSystemTime z:\testdata\configs\SMSOutOfDiskSpace.ini TwelveHours RUN_TEST_STEP 120 TE_smsprt ReceiveSMS z:\testdata\configs\SMSOutOfDiskSpace.ini MessageExpectedTwoPDUs RUN_TEST_STEP 120 TE_smsprt SendSMS z:\testdata\configs\SMSOutOfDiskSpace.ini SinglePDU8BitMessage @@ -305,7 +314,6 @@ RUN_TEST_STEP 120 TE_smsprt ReceiveSMS z:\testdata\configs\SMSOutOfDiskSpace.ini MessageExpectedThirdPDU RUN_TEST_STEP 120 TE_smsprt FreeDiskSpace RUN_TEST_STEP 60 TE_smsprt CloseSMSProtocol -RUN_TEST_STEP 60 TE_smsprt ESockMemoryLeakTest RUN_UTILS DeleteFile c:\private\101F7989\sms\smsu.rsc END_TESTCASE TEL-SMS-SMSPRT-0133 @@ -328,19 +336,17 @@ RUN_UTILS DeleteFile c:\private\101F7989\sms\smsclass0preallocated.dat RUN_UTILS DeleteFile c:\private\101F7989\sms\smsclass0reast.dat RUN_TEST_STEP 60 TE_smsprt DeleteSARStores -RUN_TEST_STEP 60 TE_smsprt LoadSMSProtocol z:\testdata\configs\SIMTSYTestNumbers.ini TestNumber9 +RUN_TEST_STEP 60 TE_smsprt LoadSMSProtocol z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber9 RUN_TEST_STEP 60 TE_smsprt SetDiskMonitorLimits z:\testdata\configs\SMSOutOfDiskSpace.ini DiskMonitorLimits RUN_TEST_STEP 120 TE_smsprt SetDiskSpace z:\testdata\configs\SMSOutOfDiskSpace.ini DiskSpaceBelowLowLimit RUN_TEST_STEP 120 TE_smsprt SendSMS z:\testdata\configs\SMSOutOfDiskSpace.ini SinglePDU8BitMessage RUN_TEST_STEP 60 TE_smsprt ReceiveSMS z:\testdata\configs\SMSOutOfDiskSpace.ini MessageNotExpected RUN_TEST_STEP 60 TE_smsprt CloseSMSProtocol -RUN_TEST_STEP 60 TE_smsprt LoadSMSProtocol z:\testdata\configs\SIMTSYTestNumbers.ini TestNumber13 -RUN_TEST_STEP 120 TE_smsprt SetDiskSpace z:\testdata\configs\SMSOutOfDiskSpace.ini DiskSpaceBelowLowLimit +RUN_TEST_STEP 60 TE_smsprt LoadSMSProtocol z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber13 RUN_TEST_STEP 120 TE_smsprt SendSMS z:\testdata\configs\SMSOutOfDiskSpace.ini SinglePDU8BitMessage RUN_TEST_STEP 60 TE_smsprt ReceiveSMS z:\testdata\configs\SMSOutOfDiskSpace.ini MessageExpectedThreePDUs RUN_TEST_STEP 120 TE_smsprt FreeDiskSpace RUN_TEST_STEP 60 TE_smsprt CloseSMSProtocol -RUN_TEST_STEP 60 TE_smsprt ESockMemoryLeakTest RUN_UTILS DeleteFile c:\private\101F7989\sms\smsu.rsc END_TESTCASE TEL-SMS-SMSPRT-0134 @@ -363,7 +369,7 @@ RUN_TEST_STEP 60 TE_smsprt DeleteSARStores RUN_UTILS DeleteFile c:\private\101F7989\sms\smsclass0preallocated.dat RUN_UTILS DeleteFile c:\private\101F7989\sms\smsclass0reast.dat -RUN_TEST_STEP 60 TE_smsprt LoadSMSProtocol z:\testdata\configs\SIMTSYTestNumbers.ini TestNumber10 +RUN_TEST_STEP 60 TE_smsprt LoadSMSProtocol z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber10 RUN_TEST_STEP 60 TE_smsprt SetDiskMonitorLimits z:\testdata\configs\SMSOutOfDiskSpace.ini DiskMonitorLimits RUN_TEST_STEP 120 TE_smsprt SendSMS z:\testdata\configs\SMSOutOfDiskSpace.ini SinglePDU8BitMessage RUN_TEST_STEP 60 TE_smsprt ReceiveSMS z:\testdata\configs\SMSOutOfDiskSpace.ini MessageNotExpected @@ -375,7 +381,6 @@ RUN_TEST_STEP 60 TE_smsprt ReceiveSMS z:\testdata\configs\SMSOutOfDiskSpace.ini MessageExpectedThreePDUs RUN_TEST_STEP 120 TE_smsprt FreeDiskSpace RUN_TEST_STEP 60 TE_smsprt CloseSMSProtocol -RUN_TEST_STEP 60 TE_smsprt ESockMemoryLeakTest RUN_UTILS DeleteFile c:\private\101F7989\sms\smsu.rsc END_TESTCASE TEL-SMS-SMSPRT-0135 @@ -396,8 +401,8 @@ //! @SYMTestStatus 3. Under Execution RUN_UTILS DeleteFile c:\private\101F7989\sms\smsclass0preallocated.dat RUN_UTILS DeleteFile c:\private\101F7989\sms\smsclass0reast.dat +RUN_TEST_STEP 60 TE_smsprt LoadSMSProtocol z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber5 RUN_TEST_STEP 60 TE_smsprt DeleteSARStores -RUN_TEST_STEP 60 TE_smsprt LoadSMSProtocol z:\testdata\configs\SIMTSYTestNumbers.ini TestNumber5 RUN_TEST_STEP 60 TE_smsprt SetDiskMonitorLimits z:\testdata\configs\SMSOutOfDiskSpace.ini DiskMonitorLimits RUN_TEST_STEP 120 TE_smsprt SendSMS z:\testdata\configs\SMSOutOfDiskSpace.ini SinglePDU8BitMessage //Wait for all PDUs to be received @@ -413,7 +418,6 @@ RUN_TEST_STEP 60 TE_smsprt ReceiveSMS z:\testdata\configs\SMSOutOfDiskSpace.ini MessageExpectedSecondMessage RUN_TEST_STEP 120 TE_smsprt FreeDiskSpace RUN_TEST_STEP 60 TE_smsprt CloseSMSProtocol -RUN_TEST_STEP 60 TE_smsprt ESockMemoryLeakTest END_TESTCASE TEL-SMS-SMSPRT-0136 @@ -437,13 +441,12 @@ RUN_UTILS MakeReadWrite c:\private\101F7989\esock\smsclass0preallocated.dat RUN_UTILS copyfile z:\testdata\configs\smsclass0reast.dat c:\private\101F7989\esock\smsclass0reast.dat RUN_UTILS MakeReadWrite c:\private\101F7989\esock\smsclass0reast.dat -RUN_TEST_STEP 60 TE_smsprt LoadSMSProtocol z:\testdata\configs\SIMTSYTestNumbers.ini TestNumber1 +RUN_TEST_STEP 60 TE_smsprt LoadSMSProtocol z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber1 RUN_TEST_STEP 60 TE_smsprt SetDiskMonitorLimits z:\testdata\configs\SMSOutOfDiskSpace.ini DiskMonitorLimits RUN_TEST_STEP 120 TE_smsprt SetDiskSpace z:\testdata\configs\SMSOutOfDiskSpace.ini DiskSpaceBelowLowLimit RUN_TEST_STEP 60 TE_smsprt ReceiveSMS z:\testdata\configs\SMSOutOfDiskSpace.ini MessageExpected RUN_TEST_STEP 120 TE_smsprt FreeDiskSpace RUN_TEST_STEP 60 TE_smsprt CloseSMSProtocol -RUN_TEST_STEP 60 TE_smsprt ESockMemoryLeakTest RUN_UTILS DeleteFile c:\private\101F7989\sms\smsu.rsc END_TESTCASE TEL-SMS-SMSPRT-0137 @@ -471,13 +474,12 @@ RUN_UTILS MakeReadWrite c:\private\101F7989\esock\smswap.sms.esk RUN_UTILS copyfile z:\testdata\configs\smswap_DontDiscardType0s.esk c:\private\101F7989\esock\smswap.sms.esk //Run Steps -RUN_TEST_STEP 60 TE_smsprt LoadSMSProtocol z:\testdata\configs\SIMTSYTestNumbers.ini TestNumber25 +RUN_TEST_STEP 60 TE_smsprt LoadSMSProtocol z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber25 RUN_TEST_STEP 60 TE_smsprt SetDiskMonitorLimits z:\testdata\configs\SMSOutOfDiskSpace.ini DiskMonitorLimits RUN_TEST_STEP 120 TE_smsprt SetDiskSpace z:\testdata\configs\SMSOutOfDiskSpace.ini DiskSpaceBelowLowLimit RUN_TEST_STEP 60 TE_smsprt ReceiveSMS z:\testdata\configs\SMSOutOfDiskSpace.ini MessageExpected RUN_TEST_STEP 120 TE_smsprt FreeDiskSpace RUN_TEST_STEP 60 TE_smsprt CloseSMSProtocol -RUN_TEST_STEP 60 TE_smsprt ESockMemoryLeakTest //Tear Down RUN_UTILS DeleteFile c:\private\101F7989\sms\smsu.rsc RUN_UTILS MakeReadWrite c:\private\101F7989\esock\smswap.sms.esk @@ -508,13 +510,12 @@ RUN_UTILS MakeReadWrite c:\private\101F7989\esock\smswap.sms.esk RUN_UTILS copyfile z:\testdata\configs\smswap_discardType0s.esk c:\private\101F7989\esock\smswap.sms.esk //Run Steps -RUN_TEST_STEP 60 TE_smsprt LoadSMSProtocol z:\testdata\configs\SIMTSYTestNumbers.ini TestNumber25 +RUN_TEST_STEP 60 TE_smsprt LoadSMSProtocol z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber25 RUN_TEST_STEP 60 TE_smsprt SetDiskMonitorLimits z:\testdata\configs\SMSOutOfDiskSpace.ini DiskMonitorLimits RUN_TEST_STEP 120 TE_smsprt SetDiskSpace z:\testdata\configs\SMSOutOfDiskSpace.ini DiskSpaceBelowLowLimit RUN_TEST_STEP 60 TE_smsprt ReceiveSMS z:\testdata\configs\SMSOutOfDiskSpace.ini MessageNotExpected RUN_TEST_STEP 120 TE_smsprt FreeDiskSpace RUN_TEST_STEP 60 TE_smsprt CloseSMSProtocol -RUN_TEST_STEP 60 TE_smsprt ESockMemoryLeakTest //Tear Down RUN_UTILS DeleteFile c:\private\101F7989\sms\smsu.rsc RUN_UTILS MakeReadWrite c:\private\101F7989\esock\smswap.sms.esk @@ -522,41 +523,40 @@ END_TESTCASE TEL-SMS-SMSPRT-0139 -START_TESTCASE TEL-SMS-SMSPRT-0140 -//! @SYMTestCaseID TEL-SMS-SMSPRT-0140 -//! @SYMTestCaseDesc Receive a type 0 class 2 single PDU message when there is NO availale disk space. SMS Stack is configured Not to discard type 0 messages. I.e. Class Takes precedence. -//! @SYMFssID 3.1.10.3 -//! @SYMREQ 7232 -//! @SYMPREQ 1736 -//! @SYMComponent SMSStack -//! @SYMTestPriority Critical -//! @SYMTestActions Fill the disk. Receive a single PDU Class 0 type 0 message. -//! @SYMTestExpectedResults No message is delivered to the client, message is negatively Ack'd. -//! @SYMTestType CIT -//! @SYMTestCaseDependencies SIM TSY -//! @SYMCreationDate 1/12/2006 -//! @SYMAuthor danieldu -//! @SYMTestStatus 2. Development -//Setup -RUN_UTILS DeleteFile c:\private\101F7989\sms\smsclass0preallocated.dat -RUN_UTILS DeleteFile c:\private\101F7989\sms\smsclass0reast.dat -RUN_UTILS DeleteFile c:\private\101F7989\esock\smswap.sms.bak -RUN_UTILS copyfile c:\private\101F7989\esock\smswap.sms.esk c:\private\101F7989\esock\smswap.sms.bak -RUN_UTILS MakeReadWrite c:\private\101F7989\esock\smswap.sms.esk -RUN_UTILS copyfile z:\testdata\configs\smswap_DontDiscardType0s.esk c:\private\101F7989\esock\smswap.sms.esk -//Run Steps -RUN_TEST_STEP 60 TE_smsprt LoadSMSProtocol z:\testdata\configs\SIMTSYTestNumbers.ini TestNumber26 -RUN_TEST_STEP 60 TE_smsprt SetDiskMonitorLimits z:\testdata\configs\SMSOutOfDiskSpace.ini DiskMonitorLimits -RUN_TEST_STEP 120 TE_smsprt SetDiskSpace z:\testdata\configs\SMSOutOfDiskSpace.ini DiskSpaceBelowLowLimit -RUN_TEST_STEP 60 TE_smsprt ReceiveSMS z:\testdata\configs\SMSOutOfDiskSpace.ini MessageNotExpected -RUN_TEST_STEP 120 TE_smsprt FreeDiskSpace -RUN_TEST_STEP 60 TE_smsprt CloseSMSProtocol -RUN_TEST_STEP 60 TE_smsprt ESockMemoryLeakTest -//Tear Down -RUN_UTILS DeleteFile c:\private\101F7989\sms\smsu.rsc -RUN_UTILS MakeReadWrite c:\private\101F7989\esock\smswap.sms.esk -RUN_UTILS copyfile c:\private\101F7989\esock\smswap.sms.bak c:\private\101F7989\esock\smswap.sms.esk -END_TESTCASE TEL-SMS-SMSPRT-0140 +//START_TESTCASE TEL-SMS-SMSPRT-0140 +////! @SYMTestCaseID TEL-SMS-SMSPRT-0140 +////! @SYMTestCaseDesc Receive a type 0 class 2 single PDU message when there is NO availale disk space. SMS Stack is configured Not to discard type 0 messages. I.e. Class Takes precedence. +////! @SYMFssID 3.1.10.3 +////! @SYMREQ 7232 +////! @SYMPREQ 1736 +////! @SYMComponent SMSStack +////! @SYMTestPriority Critical +////! @SYMTestActions Fill the disk. Receive a single PDU Class 0 type 0 message. +////! @SYMTestExpectedResults No message is delivered to the client, message is negatively Ack'd. +////! @SYMTestType CIT +////! @SYMTestCaseDependencies SIM TSY +////! @SYMCreationDate 1/12/2006 +////! @SYMAuthor danieldu +////! @SYMTestStatus 2. Development +////Setup +//RUN_UTILS DeleteFile c:\private\101F7989\sms\smsclass0preallocated.dat +//RUN_UTILS DeleteFile c:\private\101F7989\sms\smsclass0reast.dat +//RUN_UTILS DeleteFile c:\private\101F7989\esock\smswap.sms.bak +//RUN_UTILS copyfile c:\private\101F7989\esock\smswap.sms.esk c:\private\101F7989\esock\smswap.sms.bak +//RUN_UTILS MakeReadWrite c:\private\101F7989\esock\smswap.sms.esk +//RUN_UTILS copyfile z:\testdata\configs\smswap_DontDiscardType0s.esk c:\private\101F7989\esock\smswap.sms.esk +////Run Steps +//RUN_TEST_STEP 60 TE_smsprt LoadSMSProtocol z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber26 +//RUN_TEST_STEP 60 TE_smsprt SetDiskMonitorLimits z:\testdata\configs\SMSOutOfDiskSpace.ini DiskMonitorLimits +//RUN_TEST_STEP 120 TE_smsprt SetDiskSpace z:\testdata\configs\SMSOutOfDiskSpace.ini DiskSpaceBelowLowLimit +//RUN_TEST_STEP 60 TE_smsprt ReceiveSMS z:\testdata\configs\SMSOutOfDiskSpace.ini MessageNotExpected +//RUN_TEST_STEP 120 TE_smsprt FreeDiskSpace +//RUN_TEST_STEP 60 TE_smsprt CloseSMSProtocol +////Tear Down +//RUN_UTILS DeleteFile c:\private\101F7989\sms\smsu.rsc +//RUN_UTILS MakeReadWrite c:\private\101F7989\esock\smswap.sms.esk +//RUN_UTILS copyfile c:\private\101F7989\esock\smswap.sms.bak c:\private\101F7989\esock\smswap.sms.esk +//END_TESTCASE TEL-SMS-SMSPRT-0140 START_TESTCASE TEL-SMS-SMSPRT-0141 @@ -576,13 +576,12 @@ //! @SYMTestStatus 2. Development RUN_UTILS DeleteFile c:\private\101F7989\sms\smsclass0preallocated.dat RUN_UTILS DeleteFile c:\private\101F7989\sms\smsclass0reast.dat -RUN_TEST_STEP 60 TE_smsprt LoadSMSProtocol z:\testdata\configs\SIMTSYTestNumbers.ini TestNumber7 +RUN_TEST_STEP 60 TE_smsprt LoadSMSProtocol z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber7 RUN_TEST_STEP 60 TE_smsprt SetDiskMonitorLimits z:\testdata\configs\SMSOutOfDiskSpace.ini DiskMonitorLimits RUN_TEST_STEP 120 TE_smsprt SetDiskSpace z:\testdata\configs\SMSOutOfDiskSpace.ini DiskSpaceBelowLowLimit RUN_TEST_STEP 60 TE_smsprt ReceiveSMS z:\testdata\configs\SMSOutOfDiskSpace.ini MessageNotExpected RUN_TEST_STEP 120 TE_smsprt FreeDiskSpace RUN_TEST_STEP 60 TE_smsprt CloseSMSProtocol -RUN_TEST_STEP 60 TE_smsprt ESockMemoryLeakTest RUN_UTILS DeleteFile c:\private\101F7989\sms\smsu.rsc END_TESTCASE TEL-SMS-SMSPRT-0141 @@ -602,13 +601,12 @@ //! @SYMTestStatus 2. Development RUN_UTILS DeleteFile c:\private\101F7989\sms\smsclass0preallocated.dat RUN_UTILS DeleteFile c:\private\101F7989\sms\smsclass0reast.dat -RUN_TEST_STEP 60 TE_smsprt LoadSMSProtocol z:\testdata\configs\SIMTSYTestNumbers.ini TestNumber17 +RUN_TEST_STEP 60 TE_smsprt LoadSMSProtocol z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber17 RUN_TEST_STEP 60 TE_smsprt SetDiskMonitorLimits z:\testdata\configs\SMSOutOfDiskSpace.ini DiskMonitorLimits RUN_TEST_STEP 120 TE_smsprt SetDiskSpace z:\testdata\configs\SMSOutOfDiskSpace.ini DiskSpaceBelowLowLimit RUN_TEST_STEP 60 TE_smsprt EnumerateInOODCondition RUN_TEST_STEP 120 TE_smsprt FreeDiskSpace RUN_TEST_STEP 60 TE_smsprt CloseSMSProtocol -RUN_TEST_STEP 60 TE_smsprt ESockMemoryLeakTest RUN_UTILS DeleteFile c:\private\101F7989\sms\smsu.rsc END_TESTCASE TEL-SMS-SMSPRT-0146 @@ -630,13 +628,12 @@ //! @SYMTestStatus 2. Development RUN_UTILS DeleteFile c:\private\101F7989\sms\smsclass0preallocated.dat RUN_UTILS DeleteFile c:\private\101F7989\sms\smsclass0reast.dat -RUN_TEST_STEP 60 TE_smsprt LoadSMSProtocol z:\testdata\configs\SIMTSYTestNumbers.ini TestNumber30 +RUN_TEST_STEP 60 TE_smsprt LoadSMSProtocol z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber30 RUN_TEST_STEP 60 TE_smsprt SetDiskMonitorLimits z:\testdata\configs\SMSOutOfDiskSpace.ini DiskMonitorLimits RUN_TEST_STEP 120 TE_smsprt SetDiskSpace z:\testdata\configs\SMSOutOfDiskSpace.ini DiskSpaceBelowLowLimit RUN_TEST_STEP 60 TE_smsprt SendReceiveSMSWhileServerInOOM z:\testdata\configs\SMSOutOfDiskSpace.ini SendSinglePDU8BitMessageReceiveInOOM RUN_TEST_STEP 120 TE_smsprt FreeDiskSpace RUN_TEST_STEP 60 TE_smsprt CloseSMSProtocol -RUN_TEST_STEP 60 TE_smsprt ESockMemoryLeakTest RUN_UTILS DeleteFile c:\private\101F7989\sms\smsu.rsc END_TESTCASE TEL-SMS-SMSPRT-0151 @@ -660,7 +657,7 @@ RUN_UTILS DeleteFile c:\private\101F7989\sms\smsclass0reast.dat RUN_UTILS MakeReadWrite c:\private\101F7989\esock\smswap.sms.esk RUN_UTILS copyfile z:\testdata\configs\smswap_MaxFivePDUsInOOD.esk c:\private\101F7989\esock\smswap.sms.esk -RUN_TEST_STEP 60 TE_smsprt LoadSMSProtocol z:\testdata\configs\SIMTSYTestNumbers.ini TestNumber15 +RUN_TEST_STEP 60 TE_smsprt LoadSMSProtocol z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber15 RUN_TEST_STEP 60 TE_smsprt SetDiskMonitorLimits z:\testdata\configs\SMSOutOfDiskSpace.ini DiskMonitorLimits RUN_TEST_STEP 120 TE_smsprt SendSMS z:\testdata\configs\SMSOutOfDiskSpace.ini SinglePDU8BitMessage RUN_TEST_STEP 120 TE_smsprt ReceiveSMS z:\testdata\configs\SMSOutOfDiskSpace.ini MessageNotExpected @@ -675,7 +672,6 @@ RUN_TEST_STEP 120 TE_smsprt ReceiveSMS z:\testdata\configs\SMSOutOfDiskSpace.ini MessageExpectedTwoPDUs RUN_TEST_STEP 120 TE_smsprt FreeDiskSpace RUN_TEST_STEP 60 TE_smsprt CloseSMSProtocol -RUN_TEST_STEP 60 TE_smsprt ESockMemoryLeakTest RUN_UTILS DeleteFile c:\private\101F7989\sms\smsu.rsc RUN_UTILS MakeReadWrite c:\private\101F7989\esock\smswap.sms.esk RUN_UTILS copyfile c:\private\101F7989\esock\smswap.sms.bak c:\private\101F7989\esock\smswap.sms.esk @@ -704,13 +700,12 @@ RUN_UTILS copyfile c:\private\101F7989\esock\smswap.sms.esk c:\private\101F7989\esock\smswap.sms.bak RUN_UTILS MakeReadWrite c:\private\101F7989\esock\smswap.sms.esk RUN_UTILS copyfile z:\testdata\configs\smswap_discardType0s.esk c:\private\101F7989\esock\smswap.sms.esk -RUN_TEST_STEP 60 TE_smsprt LoadSMSProtocol z:\testdata\configs\SIMTSYTestNumbers.ini TestNumber6 +RUN_TEST_STEP 60 TE_smsprt LoadSMSProtocol z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber6 RUN_TEST_STEP 60 TE_smsprt SetDiskMonitorLimits z:\testdata\configs\SMSOutOfDiskSpace.ini DiskMonitorLimits RUN_TEST_STEP 120 TE_smsprt SetDiskSpace z:\testdata\configs\SMSOutOfDiskSpace.ini DiskSpaceBelowLowLimit RUN_TEST_STEP 60 TE_smsprt ReceiveSMS z:\testdata\configs\SMSOutOfDiskSpace.ini MessageNotExpected RUN_TEST_STEP 120 TE_smsprt FreeDiskSpace RUN_TEST_STEP 60 TE_smsprt CloseSMSProtocol -RUN_TEST_STEP 60 TE_smsprt ESockMemoryLeakTest RUN_UTILS DeleteFile c:\private\101F7989\sms\smsu.rsc RUN_UTILS MakeReadWrite c:\private\101F7989\esock\smswap.sms.esk RUN_UTILS copyfile c:\private\101F7989\esock\smswap.sms.bak c:\private\101F7989\esock\smswap.sms.esk @@ -739,7 +734,7 @@ RUN_UTILS copyfile c:\private\101F7989\esock\smswap.sms.esk c:\private\101F7989\esock\smswap.sms.bak RUN_UTILS MakeReadWrite c:\private\101F7989\esock\smswap.sms.esk RUN_UTILS copyfile z:\testdata\configs\smswap_MaxFivePDUsInOOD.esk c:\private\101F7989\esock\smswap.sms.esk -RUN_TEST_STEP 60 TE_smsprt LoadSMSProtocol z:\testdata\configs\SIMTSYTestNumbers.ini TestNumber32 +RUN_TEST_STEP 60 TE_smsprt LoadSMSProtocol z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber32 RUN_TEST_STEP 60 TE_smsprt SetDiskMonitorLimits z:\testdata\configs\SMSOutOfDiskSpace.ini DiskMonitorLimits RUN_TEST_STEP 60 TE_smsprt Class0StoreEnabled z:\testdata\configs\SMSOutOfDiskSpace.ini EnableClass0Store //Fill the preallocation file @@ -749,7 +744,6 @@ RUN_TEST_STEP 120 TE_smsprt ReceiveSMS z:\testdata\configs\SMSOutOfDiskSpace.ini MessageExpectedFirstMessage RUN_TEST_STEP 120 TE_smsprt FreeDiskSpace RUN_TEST_STEP 60 TE_smsprt CloseSMSProtocol -RUN_TEST_STEP 60 TE_smsprt ESockMemoryLeakTest RUN_UTILS DeleteFile c:\private\101F7989\sms\smsu.rsc RUN_UTILS MakeReadWrite c:\private\101F7989\esock\smswap.sms.esk RUN_UTILS copyfile c:\private\101F7989\esock\smswap.sms.bak c:\private\101F7989\esock\smswap.sms.esk @@ -777,7 +771,7 @@ RUN_UTILS copyfile c:\private\101F7989\esock\smswap.sms.esk c:\private\101F7989\esock\smswap.sms.bak RUN_UTILS MakeReadWrite c:\private\101F7989\esock\smswap.sms.esk RUN_UTILS copyfile z:\testdata\configs\smswap_Class0DisabledMaxFivePDUsInOOD.esk c:\private\101F7989\esock\smswap.sms.esk -RUN_TEST_STEP 60 TE_smsprt LoadSMSProtocol z:\testdata\configs\SIMTSYTestNumbers.ini TestNumber16 +RUN_TEST_STEP 60 TE_smsprt LoadSMSProtocol z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber16 RUN_TEST_STEP 60 TE_smsprt Class0StoreEnabled z:\testdata\configs\SMSOutOfDiskSpace.ini DisableClass0Store //Fill the preallocation file RUN_TEST_STEP 120 TE_smsprt SetDiskSpace z:\testdata\configs\SMSOutOfDiskSpace.ini DiskSpaceBelowLowLimit @@ -787,7 +781,6 @@ RUN_TEST_STEP 60 TE_smsprt ReceiveSMS z:\testdata\configs\SMSOutOfDiskSpace.ini MessageNotExpected RUN_TEST_STEP 120 TE_smsprt FreeDiskSpace RUN_TEST_STEP 60 TE_smsprt CloseSMSProtocol -RUN_TEST_STEP 60 TE_smsprt ESockMemoryLeakTest RUN_UTILS DeleteFile c:\private\101F7989\sms\smsu.rsc RUN_UTILS MakeReadWrite c:\private\101F7989\esock\smswap.sms.esk RUN_UTILS copyfile c:\private\101F7989\esock\smswap.sms.bak c:\private\101F7989\esock\smswap.sms.esk @@ -810,7 +803,7 @@ //! @SYMTestStatus 2. Development RUN_UTILS DeleteFile c:\private\101F7989\sms\smsclass0preallocated.dat RUN_UTILS DeleteFile c:\private\101F7989\sms\smsclass0reast.dat -RUN_TEST_STEP 60 TE_smsprt LoadSMSProtocol z:\testdata\configs\SIMTSYTestNumbers.ini TestNumber3 +RUN_TEST_STEP 60 TE_smsprt LoadSMSProtocol z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber3 RUN_TEST_STEP 60 TE_smsprt SetDiskMonitorLimits z:\testdata\configs\SMSOutOfDiskSpace.ini DiskMonitorLimits RUN_TEST_STEP 120 TE_smsprt SendSMS z:\testdata\configs\SMSOutOfDiskSpace.ini SinglePDU8BitMessage RUN_TEST_STEP 120 TE_smsprt SetDiskSpace z:\testdata\configs\SMSOutOfDiskSpace.ini DiskSpaceBelowLowLimit @@ -818,7 +811,6 @@ RUN_TEST_STEP 60 TE_smsprt ReceiveSMS z:\testdata\configs\SMSOutOfDiskSpace.ini MessageExpected RUN_TEST_STEP 120 TE_smsprt FreeDiskSpace RUN_TEST_STEP 60 TE_smsprt CloseSMSProtocol -RUN_TEST_STEP 60 TE_smsprt ESockMemoryLeakTest RUN_UTILS DeleteFile c:\private\101F7989\sms\smsu.rsc END_TESTCASE TEL-SMS-SMSPRT-0127 @@ -840,13 +832,12 @@ //! @SYMTestStatus 2. Development RUN_UTILS DeleteFile c:\private\101F7989\sms\smsclass0preallocated.dat RUN_UTILS DeleteFile c:\private\101F7989\sms\smsclass0reast.dat -RUN_TEST_STEP 60 TE_smsprt LoadSMSProtocol z:\testdata\configs\SIMTSYTestNumbers.ini TestNumber31 +RUN_TEST_STEP 60 TE_smsprt LoadSMSProtocol z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber31 RUN_TEST_STEP 60 TE_smsprt SetDiskMonitorLimits z:\testdata\configs\SMSOutOfDiskSpace.ini DiskMonitorLimits RUN_TEST_STEP 120 TE_smsprt SetDiskSpace z:\testdata\configs\SMSOutOfDiskSpace.ini DiskSpaceBelowLowLimit RUN_TEST_STEP 60 TE_smsprt SendReceiveSMSWhileServerInOOM z:\testdata\configs\SMSOutOfDiskSpace.ini SendSinglePDU8BitMessageReceiveMultipleInOOM RUN_TEST_STEP 120 TE_smsprt FreeDiskSpace RUN_TEST_STEP 60 TE_smsprt CloseSMSProtocol -RUN_TEST_STEP 60 TE_smsprt ESockMemoryLeakTest RUN_UTILS DeleteFile c:\private\101F7989\sms\smsu.rsc END_TESTCASE TEL-SMS-SMSPRT-0152 @@ -868,7 +859,7 @@ //! @SYMTestStatus 2. Development RUN_UTILS DeleteFile c:\private\101F7989\sms\smsclass0preallocated.dat RUN_UTILS DeleteFile c:\private\101F7989\sms\smsclass0reast.dat -RUN_TEST_STEP 60 TE_smsprt LoadSMSProtocol z:\testdata\configs\SIMTSYTestNumbers.ini TestNumber11 +RUN_TEST_STEP 60 TE_smsprt LoadSMSProtocol z:\testdata\configs\smsstacksimtsytestnumbers.ini TestNumber11 RUN_TEST_STEP 60 TE_smsprt SetDiskMonitorLimits z:\testdata\configs\SMSOutOfDiskSpace.ini DiskMonitorLimits RUN_TEST_STEP 120 TE_smsprt SetDiskSpace z:\testdata\configs\SMSOutOfDiskSpace.ini DiskSpaceBelowLowLimit RUN_TEST_STEP 120 TE_smsprt SendSMS z:\testdata\configs\SMSOutOfDiskSpace.ini SinglePDU8BitMessage @@ -877,7 +868,6 @@ RUN_TEST_STEP 60 TE_smsprt ReceiveSMS z:\testdata\configs\SMSOutOfDiskSpace.ini MessageNotExpected RUN_TEST_STEP 120 TE_smsprt FreeDiskSpace RUN_TEST_STEP 60 TE_smsprt CloseSMSProtocol -RUN_TEST_STEP 60 TE_smsprt ESockMemoryLeakTest RUN_UTILS DeleteFile c:\private\101F7989\sms\smsu.rsc END_TESTCASE TEL-SMS-SMSPRT-0153 diff -r 962e6306d9d2 -r 7ef16719d8cb smsprotocols/smsstack/smsprot/Test/TE_Smsprt/Te_SmsTestSteps.h --- a/smsprotocols/smsstack/smsprot/Test/TE_Smsprt/Te_SmsTestSteps.h Fri Feb 19 23:59:33 2010 +0200 +++ b/smsprotocols/smsstack/smsprot/Test/TE_Smsprt/Te_SmsTestSteps.h Fri Mar 12 15:49:38 2010 +0200 @@ -17,143 +17,154 @@ @file */ -#ifndef __TE_SMS_TEST_STEPS_H__ -#define __TE_SMS_TEST_STEPS_H__ - -#include "TE_smsprtbase.h" +#ifndef TE_SMSTESTSTEPS_H +#define TE_SMSTESTSTEPS_H + +#include +#include + +#include "smsstackbaseteststeps.h" /** Test Step to Load SMS Protocol */ -class CLoadSMSProtocol : public CSMSTestSteps +class CLoadSMSProtocol : public CSmsBaseTestStep { public: CLoadSMSProtocol(RSocketServ &aSocketServer); //From CTestStep - virtual enum TVerdict doTestStepL(); - + virtual TVerdict doTestStepL(); + +public: + RSocketServ* iSharedSocketServer; }; /** Test Step to receive a SMS message */ -class CReceiveSMS : public CSMSTestSteps +class CReceiveSMS : public CSmsBaseTestStep { public: CReceiveSMS(RSocketServ &aSocketServer); //From CTestStep - virtual enum TVerdict doTestStepL(); + virtual TVerdict doTestStepL(); + +public: + RSocketServ* iSharedSocketServer; }; /** Test Step to send a SMS message */ -class CSendSMS : public CSMSTestSteps +class CSendSMS : public CSmsBaseTestStep { public: CSendSMS(RSocketServ &aSocketServer); //From CTestStep - virtual enum TVerdict doTestStepL(); + virtual TVerdict doTestStepL(); + +public: + RSocketServ* iSharedSocketServer; }; /** Close the socket and the socket server session */ -class CCloseSMSProtocol : public CSMSTestSteps +class CCloseSMSProtocol : public CSmsBaseTestStep { public: CCloseSMSProtocol(RSocketServ &aSocketServer); //From CTestStep - virtual enum TVerdict doTestStepL(); + virtual TVerdict doTestStepL(); + +public: + RSocketServ* iSharedSocketServer; }; /** Delete segmentation and reasembly stores */ -class CDeleteSARStores : public CSMSTestSteps +class CDeleteSARStores : public CSmsBaseTestStep { public: //From CTestStep - virtual enum TVerdict doTestStepL(); + CDeleteSARStores(); + virtual TVerdict doTestStepL(); }; /** Forwards system time by x number of minutes */ -class CForwardSystemTime : public CSMSTestSteps +class CForwardSystemTime : public CSmsBaseTestStep { public: + CForwardSystemTime(); //From CTestStep - virtual enum TVerdict doTestStepL(); + virtual TVerdict doTestStepL(); }; /** Tests receive of SMS message while SMSStack Out of Memory (OOM) */ -class CSendReceiveSMSWhileServerInOOM : public CSMSTestSteps +class CSendReceiveSMSWhileServerInOOM : public CSmsBaseTestStep { public: CSendReceiveSMSWhileServerInOOM(RSocketServ &aSocketServer); //From CTestStep - virtual enum TVerdict doTestStepL(); + virtual TVerdict doTestStepL(); + +public: + RSocketServ* iSharedSocketServer; }; /** Compares the text contents of a SMS message with some text */ -class CCompareSMS : public CSMSTestSteps +class CCompareSMS : public CSmsBaseTestStep { public: CCompareSMS(CSmsMessage &aSmsMessage); //From CTestStep - virtual enum TVerdict doTestStepL(); + virtual TVerdict doTestStepL(); }; /** Checks if the Class0 Stores have been enabled */ -class CClass0StoreEnabled : public CSMSTestSteps +class CClass0StoreEnabled : public CSmsBaseTestStep { public: CClass0StoreEnabled(RSocketServ &aSocketServer); //From CTestStep - virtual enum TVerdict doTestStepL(); + virtual TVerdict doTestStepL(); + +public: + RSocketServ* iSharedSocketServer; }; /** Test for Enumeration in an OOD Condition */ -class CEnumerateInOODCondition : public CSMSTestSteps +class CEnumerateInOODCondition : public CSmsBaseTestStep { public: CEnumerateInOODCondition(RSocketServ &aSocketServer); //From CTestStep - virtual enum TVerdict doTestStepL(); -}; - -/** - Test Esock for any memory leaks -*/ -class CESockMemoryLeakTest : public CSMSTestSteps -{ -public: - //From CTestStep - virtual enum TVerdict doTestStepL(); + virtual TVerdict doTestStepL(); + +public: + RSocketServ* iSharedSocketServer; }; - -#endif - - - +#endif // TE_SMSTESTSTEPS_H diff -r 962e6306d9d2 -r 7ef16719d8cb smsprotocols/smsstack/smsprot/Test/TE_Smsprt/Te_StatusReportScheme.cpp --- a/smsprotocols/smsstack/smsprot/Test/TE_Smsprt/Te_StatusReportScheme.cpp Fri Feb 19 23:59:33 2010 +0200 +++ b/smsprotocols/smsstack/smsprot/Test/TE_Smsprt/Te_StatusReportScheme.cpp Fri Mar 12 15:49:38 2010 +0200 @@ -18,89 +18,52 @@ */ #include "Te_StatusReportScheme.h" + #include -CTestStatusReportScheme::CTestStatusReportScheme() -{ - -} +CSmsStatusReportSchemeTestStep::CSmsStatusReportSchemeTestStep() + { -CTestStatusReportScheme::~CTestStatusReportScheme() -{ - -} + } -TVerdict CTestStatusReportScheme::doTestStepPreambleL() -{ - //Call base class preamble - CSmsPrtTestStep::doTestStepPreambleL(); +CSmsStatusReportSchemeTestStep::~CSmsStatusReportSchemeTestStep() + { - // delete segmentation and reassembly store files before the test - _LIT(KReassemblyStoreName,"C:\\Private\\101F7989\\sms\\smsreast.dat"); - _LIT(KSegmentationStoreName,"C:\\Private\\101F7989\\sms\\smssegst.dat"); - _LIT(KWapReassemblyStoreName,"C:\\Private\\101F7989\\sms\\wapreast.dat"); + } - iFs.Delete(KWapReassemblyStoreName); - iFs.Delete(KReassemblyStoreName); - iFs.Delete(KSegmentationStoreName); +TVerdict CSmsStatusReportSchemeTestStep::doTestStepPreambleL() + { + //Call base class preamble + CSmsBaseTestStep::doTestStepPreambleL(); - SetTestNumberL(); - OpenSocketServerL(); - SetCodingScheme(); - GetNumberOfPDUs(); - - return TestStepResult() ; -} + iSmsStackTestUtils->OpenSmsSocketL(iSocketServer,iSocket,ESmsAddrRecvAny); -TVerdict CTestStatusReportScheme::doTestStepPostambleL() -{ - iSocket.Close(); - iSocketServer.Close(); - - //Call base class postamble - CSmsPrtTestStep::doTestStepPostambleL(); - - return TestStepResult() ; -} + SetCodingScheme(); + GetNumberOfPDUs(); -void CTestStatusReportScheme::SetTestNumberL() -{ - TInt testNumber; - GetIntFromConfig(ConfigSection(), _L("testNumber"), testNumber); + return TestStepResult() ; + } - RProperty testNumberProperty; - User::LeaveIfError(testNumberProperty.Attach(KUidPSSimTsyCategory, KPSSimTsyTestNumber)); - CleanupClosePushL(testNumberProperty); +TVerdict CSmsStatusReportSchemeTestStep::doTestStepPostambleL() + { + iSocket.Close(); - TRequestStatus status; - testNumberProperty.Subscribe(status); - INFO_PRINTF1(_L("Setting Sim.Tsy test number P&S property")); - User::LeaveIfError(testNumberProperty.Set(KUidPSSimTsyCategory,KPSSimTsyTestNumber,testNumber)); - User::WaitForRequest(status); - TEST(status.Int() == KErrNone); - TInt testNumberCheck; - User::LeaveIfError(testNumberProperty.Get(testNumberCheck)); - if (testNumber != testNumberCheck) - { - INFO_PRINTF3(_L("Test number property set to [%d], but value returned is [%d]"),testNumber,testNumberCheck); - User::Leave(KErrNotFound); - } + CSmsBaseTestStep::doTestStepPostambleL(); - CleanupStack::PopAndDestroy(&testNumberProperty); -} + return TestStepResult() ; + } -void CTestStatusReportScheme::OpenSocketServerL() +void CSmsStatusReportSchemeTestStep::OpenSocketServerL() { INFO_PRINTF1(_L("Connecting to SocketServer ...")); TInt ret=iSocketServer.Connect(KSocketMessageSlots); TEST(ret == KErrNone); - iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,iSocket,ESmsAddrRecvAny); - CleanupStack::Pop(); // Pop off iSocket which is a member variable! + iSmsStackTestUtils->OpenSmsSocketL(iSocketServer,iSocket,ESmsAddrRecvAny); } -void CTestStatusReportScheme::CreateSmsL(TCodingScheme aCodingScheme ,TPtrC aConfigSectionEntry) +void CSmsStatusReportSchemeTestStep::CreateSmsL(TCodingScheme aCodingScheme ,TPtrC aConfigSectionEntry) { TSmsDataCodingScheme::TSmsAlphabet alphabet; @@ -119,154 +82,149 @@ GetStringFromConfig(ConfigSection(), aConfigSectionEntry, messageText); iSmsMessage=CreateSmsMessageL(messageText,alphabet); - } // CTestStatusReportScheme::CreateSmsL - + } -void CTestStatusReportScheme::TriggerReceiveL() -{ - CreateSmsL(EEightBit,_L("trigger")); - SendSmsMessageL(); -} +void CSmsStatusReportSchemeTestStep::TriggerReceiveL() + { + CreateSmsL(EEightBit,_L("trigger")); + SendSmsMessageL(); + } + +void CSmsStatusReportSchemeTestStep::SendSmsMessageL() + { + SendSmsL(iSmsMessage,iSocket); + } -void CTestStatusReportScheme::SendSmsMessageL() -{ - SendSmsL(iSmsMessage,iSocket); -} +void CSmsStatusReportSchemeTestStep::SetCodingScheme() + { + TInt codingScheme; + GetIntFromConfig(ConfigSection(), _L("messageCoding"), codingScheme); + iDataCodingScheme = (TCodingScheme)codingScheme; -void CTestStatusReportScheme::SetCodingScheme() -{ - TInt codingScheme; - GetIntFromConfig(ConfigSection(), _L("messageCoding"), codingScheme); - iDataCodingScheme = (TCodingScheme)codingScheme; + } -} - -void CTestStatusReportScheme::GetNumberOfPDUs() -{ - GetIntFromConfig(ConfigSection(), _L("numberOfPDUs"), iNumberOfPDUs); -} +void CSmsStatusReportSchemeTestStep::GetNumberOfPDUs() + { + GetIntFromConfig(ConfigSection(), _L("numberOfPDUs"), iNumberOfPDUs); + } /** Sets the TP-SRR bit in every PDU -*/ -void CTestStatusReportScheme::SetAllTPSRRsL() -{ - CSmsTPSRROperations& TPSRROperations = static_cast(iSmsMessage->GetOperationsForNonIEL(ESmsTPSRRParameter)); - TPSRROperations.SetSchemeL(); + */ +void CSmsStatusReportSchemeTestStep::SetAllTPSRRsL() + { + CSmsTPSRROperations& TPSRROperations = static_cast(iSmsMessage->GetOperationsForNonIEL(ESmsTPSRRParameter)); + TPSRROperations.SetSchemeL(); - //Set TPSRR for all PDUs - for(TInt i=0; i< iNumberOfPDUs; i++) - { - TPSRROperations.SetSegmentStatusReportL(i,ETrue); - } - -} + //Set TPSRR for all PDUs + for(TInt i=0; i< iNumberOfPDUs; ++i) + { + TPSRROperations.SetSegmentStatusReportL(i,ETrue); + } + } /** Set TPSRR bit for the last segment of message */ -void CTestStatusReportScheme::SetLastTPSRRL() -{ - CSmsTPSRROperations& TPSRROperations = static_cast(iSmsMessage->GetOperationsForNonIEL(ESmsTPSRRParameter)); - TPSRROperations.SetSchemeL(); - TPSRROperations.SetLastSegmentStatusReportL(ETrue); -} +void CSmsStatusReportSchemeTestStep::SetLastTPSRRL() + { + CSmsTPSRROperations& TPSRROperations = static_cast(iSmsMessage->GetOperationsForNonIEL(ESmsTPSRRParameter)); + TPSRROperations.SetSchemeL(); + TPSRROperations.SetLastSegmentStatusReportL(ETrue); + } /** Set TPSRR bit for some segments */ -void CTestStatusReportScheme::SetSomeTPSRRL(TInt aFirstIndex, TInt aSecondIndex, TInt aThirdIndex) -{ - CSmsTPSRROperations& TPSRROperations = static_cast(iSmsMessage->GetOperationsForNonIEL(ESmsTPSRRParameter)); - TPSRROperations.SetSchemeL(); - - if(aFirstIndex) - { - TPSRROperations.SetSegmentStatusReportL(0,ETrue); - } - else - { - TPSRROperations.SetSegmentStatusReportL(0,EFalse); - } - - if(aSecondIndex) - { - TPSRROperations.SetSegmentStatusReportL(1,ETrue); - } - else - { - TPSRROperations.SetSegmentStatusReportL(1,EFalse); - } - if(aThirdIndex) - { - TPSRROperations.SetSegmentStatusReportL(2,ETrue); - } - else - { - TPSRROperations.SetSegmentStatusReportL(2,EFalse); - } - -} +void CSmsStatusReportSchemeTestStep::SetSomeTPSRRL(TInt aFirstIndex, TInt aSecondIndex, TInt aThirdIndex) + { + CSmsTPSRROperations& TPSRROperations = static_cast(iSmsMessage->GetOperationsForNonIEL(ESmsTPSRRParameter)); + TPSRROperations.SetSchemeL(); + + if(aFirstIndex) + { + TPSRROperations.SetSegmentStatusReportL(0,ETrue); + } + else + { + TPSRROperations.SetSegmentStatusReportL(0,EFalse); + } + + if(aSecondIndex) + { + TPSRROperations.SetSegmentStatusReportL(1,ETrue); + } + else + { + TPSRROperations.SetSegmentStatusReportL(1,EFalse); + } + if(aThirdIndex) + { + TPSRROperations.SetSegmentStatusReportL(2,ETrue); + } + else + { + TPSRROperations.SetSegmentStatusReportL(2,EFalse); + } + + } /** Set the last segment SMSC value to 0x01 */ -void CTestStatusReportScheme::SetLastSMSCL() -{ - CSmsSMSCCtrlParameterOperations& SMSCOperations = static_cast(iSmsMessage->GetOperationsForIEL(CSmsInformationElement::ESmsIEISMSCControlParameters)); - SMSCOperations.SetSchemeL(); - SMSCOperations.SetStatusReportL(iNumberOfPDUs-1, 0x01); -} +void CSmsStatusReportSchemeTestStep::SetLastSMSCL() + { + CSmsSMSCCtrlParameterOperations& SMSCOperations = static_cast(iSmsMessage->GetOperationsForIEL(CSmsInformationElement::ESmsIEISMSCControlParameters)); + SMSCOperations.SetSchemeL(); + SMSCOperations.SetStatusReportL(iNumberOfPDUs-1, 0x01); + } /** Set all segments SMSC value to 0x01 */ -void CTestStatusReportScheme::SetAllSMSCL() -{ - CSmsSMSCCtrlParameterOperations& SMSCOperations = static_cast(iSmsMessage->GetOperationsForIEL(CSmsInformationElement::ESmsIEISMSCControlParameters)); - SMSCOperations.SetSchemeL(); - - for(TInt i = 0; i < iNumberOfPDUs; i++) - { - SMSCOperations.SetStatusReportL(i, 0x01); - } - -} +void CSmsStatusReportSchemeTestStep::SetAllSMSCL() + { + CSmsSMSCCtrlParameterOperations& SMSCOperations = static_cast(iSmsMessage->GetOperationsForIEL(CSmsInformationElement::ESmsIEISMSCControlParameters)); + SMSCOperations.SetSchemeL(); + for(TInt i = 0; i < iNumberOfPDUs; ++i) + { + SMSCOperations.SetStatusReportL(i, 0x01); + } + } /** Set SMSC bit for some segments */ -void CTestStatusReportScheme::SetSomeSMSCL(TInt aFirstIndex, TInt aSecondIndex, TInt aThirdIndex) -{ - CSmsSMSCCtrlParameterOperations& SMSCOperations = static_cast(iSmsMessage->GetOperationsForIEL(CSmsInformationElement::ESmsIEISMSCControlParameters)); - SMSCOperations.SetSchemeL(); - - if(aFirstIndex) - { - SMSCOperations.SetStatusReportL(0,0x01); - } - else - { - SMSCOperations.SetStatusReportL(0,0x00); - } - - if(aSecondIndex) - { - SMSCOperations.SetStatusReportL(1,0x01); - } - else - { - SMSCOperations.SetStatusReportL(1,0x00); - } - if(aThirdIndex) - { - SMSCOperations.SetStatusReportL(2,0x01); - } - else - { - SMSCOperations.SetStatusReportL(2,0x00); - } - -} +void CSmsStatusReportSchemeTestStep::SetSomeSMSCL(TInt aFirstIndex, TInt aSecondIndex, TInt aThirdIndex) + { + CSmsSMSCCtrlParameterOperations& SMSCOperations = static_cast(iSmsMessage->GetOperationsForIEL(CSmsInformationElement::ESmsIEISMSCControlParameters)); + SMSCOperations.SetSchemeL(); + + if(aFirstIndex) + { + SMSCOperations.SetStatusReportL(0,0x01); + } + else + { + SMSCOperations.SetStatusReportL(0,0x00); + } + if(aSecondIndex) + { + SMSCOperations.SetStatusReportL(1,0x01); + } + else + { + SMSCOperations.SetStatusReportL(1,0x00); + } + + if(aThirdIndex) + { + SMSCOperations.SetStatusReportL(2,0x01); + } + else + { + SMSCOperations.SetStatusReportL(2,0x00); + } + } diff -r 962e6306d9d2 -r 7ef16719d8cb smsprotocols/smsstack/smsprot/Test/TE_Smsprt/Te_StatusReportScheme.h --- a/smsprotocols/smsstack/smsprot/Test/TE_Smsprt/Te_StatusReportScheme.h Fri Feb 19 23:59:33 2010 +0200 +++ b/smsprotocols/smsstack/smsprot/Test/TE_Smsprt/Te_StatusReportScheme.h Fri Mar 12 15:49:38 2010 +0200 @@ -14,63 +14,54 @@ // -#ifndef __TE_STATUS_REPORT_SCHEME_H__ -#define __TE_STATUS_REPORT_SCHEME_H__ +#ifndef TE_STATUSREPORTSCHEME_H +#define TE_STATUSREPORTSCHEME_H +#include "smsstackbaseteststeps.h" +#include "smsstacktestutilities.h" +#include "smsstacktestconsts.h" #include "gsmuieoperations.h" #include "gsmunonieoperations.h" -#include "TE_smsprt.h" /** Base class housing common functionality used by all test steps exercising status report functionality */ -class CTestStatusReportScheme : public CSmsPrtTestStep -{ +class CSmsStatusReportSchemeTestStep : public CSmsBaseTestStep + { public: - enum TCodingScheme{ESevenBit=7, EEightBit}; + virtual TVerdict doTestStepPreambleL(); + virtual TVerdict doTestStepPostambleL(); - CTestStatusReportScheme(); - ~CTestStatusReportScheme(); - - //Utilites - void CreateSmsL(TCodingScheme, TPtrC); - void SendSmsMessageL(); - void TriggerReceiveL(); - void GetNumberOfPDUs(); + CSmsStatusReportSchemeTestStep(); + ~CSmsStatusReportSchemeTestStep(); - //TPSRR - void SetAllTPSRRsL(); - void SetLastTPSRRL(); - void SetSomeTPSRRL(TInt, TInt, TInt); - - //SMS - void SetAllSMSCL(); - void SetLastSMSCL(); - void SetSomeSMSCL(TInt, TInt, TInt); - - //TEF framework - //virtual TVerdict doTestStepL(); - virtual TVerdict doTestStepPreambleL(); - virtual TVerdict doTestStepPostambleL(); + //Utilites - legacy methods, will be replaced by ones from the base class + void CreateSmsL(TCodingScheme, TPtrC); + void SendSmsMessageL(); + void TriggerReceiveL(); + void GetNumberOfPDUs(); + + //TPSRR + void SetAllTPSRRsL(); + void SetLastTPSRRL(); + void SetSomeTPSRRL(TInt, TInt, TInt); + + //SMS + void SetAllSMSCL(); + void SetLastSMSCL(); + void SetSomeSMSCL(TInt, TInt, TInt); protected: - TCodingScheme iDataCodingScheme; - CSmsMessage* iSmsMessage; - TInt iNumberOfPDUs; - -private: - void SetTestNumberL(); - void OpenSocketServerL(); - void SetCodingScheme(); + RSocket iSocket; + TCodingScheme iDataCodingScheme; + CSmsMessage* iSmsMessage; + TInt iNumberOfPDUs; -protected: - RSocketServ iSocketServer; - RSocket iSocket; -}; +private: + void OpenSocketServerL(); + void SetCodingScheme(); + }; -#endif - - - +#endif // TE_STATUSREPORTSCHEME_H diff -r 962e6306d9d2 -r 7ef16719d8cb smsprotocols/smsstack/smsprot/Test/TE_Smsprt/Te_StatusReportSchemeSteps.cpp --- a/smsprotocols/smsstack/smsprot/Test/TE_Smsprt/Te_StatusReportSchemeSteps.cpp Fri Feb 19 23:59:33 2010 +0200 +++ b/smsprotocols/smsstack/smsprot/Test/TE_Smsprt/Te_StatusReportSchemeSteps.cpp Fri Mar 12 15:49:38 2010 +0200 @@ -390,9 +390,3 @@ } //----------------------------------------------------------------------------- - - - - - - diff -r 962e6306d9d2 -r 7ef16719d8cb smsprotocols/smsstack/smsprot/Test/TE_Smsprt/Te_StatusReportSchemeTransfer.cpp --- a/smsprotocols/smsstack/smsprot/Test/TE_Smsprt/Te_StatusReportSchemeTransfer.cpp Fri Feb 19 23:59:33 2010 +0200 +++ b/smsprotocols/smsstack/smsprot/Test/TE_Smsprt/Te_StatusReportSchemeTransfer.cpp Fri Mar 12 15:49:38 2010 +0200 @@ -18,15 +18,14 @@ */ #include "Te_StatusReportSchemeTransfer.h" + /** Create a SMS and get the SMSC and TPSRR operations */ TVerdict CTestSchemeSending::doTestStepPreambleL() { //Call the base class preamble - CTestStatusReportScheme::doTestStepPreambleL(); - - __UHEAP_MARK; + CSmsStatusReportSchemeTestStep::doTestStepPreambleL(); //Create SMS message from ini file specified as "message" CreateSmsL(iDataCodingScheme ,_L("message")); @@ -41,89 +40,80 @@ { delete iSmsMessage; iSmsMessage = NULL; - - __UHEAP_MARKEND; - CTestStatusReportScheme::doTestStepPostambleL(); + CSmsStatusReportSchemeTestStep::doTestStepPostambleL(); return TestStepResult(); } - /** Get the TP-SRR operations on the SMS */ TVerdict CTestSendingTPSRRScheme::doTestStepPreambleL() -{ - //Call the base class preamble - CTestSchemeSending::doTestStepPreambleL(); - - INFO_PRINTF1(_L("Test sending a message with TP-SRR scheme")); - - return TestStepResult(); -} + { + //Call the base class preamble + CTestSchemeSending::doTestStepPreambleL(); + INFO_PRINTF1(_L("Test sending a message with TP-SRR scheme")); + return TestStepResult(); + } /** SIM TSY verifies the message sent */ TVerdict CTestSendingTPSRRScheme::doTestStepL() -{ - SendSmsMessageL(); - - return TestStepResult(); -} + { + SendSmsMessageL(); + return TestStepResult(); + } /** Send the message */ TVerdict CTestSendingTPSRRScheme::doTestStepPostambleL() -{ - //Call the base class preamble - CTestSchemeSending::doTestStepPostambleL(); - - return TestStepResult(); -} + { + //Call the base class preamble + CTestSchemeSending::doTestStepPostambleL(); + return TestStepResult(); + } /** Get the SMSC operations on the SMS */ TVerdict CTestSendingSMSCScheme::doTestStepPreambleL() -{ - //Call the base class preamble - CTestSchemeSending::doTestStepPreambleL(); - - INFO_PRINTF1(_L("Test sending a message with SMSC scheme")); - - return TestStepResult(); -} + { + //Call the base class preamble + CTestSchemeSending::doTestStepPreambleL(); + INFO_PRINTF1(_L("Test sending a message with SMSC scheme")); + return TestStepResult(); + } /** SIM TSY verifies the message sent */ TVerdict CTestSendingSMSCScheme::doTestStepL() -{ - SendSmsMessageL(); - - return TestStepResult(); -} + { + SendSmsMessageL(); + + return TestStepResult(); + } /** Send the message */ TVerdict CTestSendingSMSCScheme::doTestStepPostambleL() -{ - //Call the base class preamble - CTestSchemeSending::doTestStepPostambleL(); - - return TestStepResult(); -} + { + //Call the base class preamble + CTestSchemeSending::doTestStepPostambleL(); + + return TestStepResult(); + } /** Preamble for all receiving test cases @@ -131,12 +121,11 @@ TVerdict CTestSchemeReceiving::doTestStepPreambleL() { //Call base class preamble - CTestStatusReportScheme::doTestStepPreambleL(); + CSmsStatusReportSchemeTestStep::doTestStepPreambleL(); return TestStepResult(); } - /** All receiving of status reports */ @@ -145,93 +134,80 @@ //Call base class preamble CTestSchemeReceiving::doTestStepPreambleL(); - //Create a message - __UHEAP_MARK; - //Create SMS message from ini file specified as "message" CreateSmsL(iDataCodingScheme ,_L("message")); return TestStepResult(); } - /** Receive a status report and return its status */ void CTestReceivingStatusReports::ReceiveStatusReportL(TSmsStatus::TSmsStatusValue& aStatus ) -{ - //Get the expectd status - TInt intStatus; - GetIntFromConfig(ConfigSection(), _L("status"), intStatus); - iExpectedStatus = (TSmsStatus::TSmsStatusValue)intStatus; + { + //Get the expectd status + TInt intStatus; + GetIntFromConfig(ConfigSection(), _L("status"), intStatus); + iExpectedStatus = (TSmsStatus::TSmsStatusValue)intStatus; - //Get the service center - TSmsServiceCenterAddress telephoneNumber; - telephoneNumber.Copy( KTestNumber ); + //Get the service center + TSmsServiceCenterAddress telephoneNumber; + telephoneNumber.Copy( KTestNumber ); - //Receive status report and return the status - aStatus = RecvStatusReportL(telephoneNumber, iSocket); -} + //Receive status report and return the status + aStatus = RecvStatusReportL(telephoneNumber, iSocket); + } /** All receiving status reports tests do the same steps */ TVerdict CTestReceivingStatusReports::doTestStepL() -{ - SendSmsMessageL(); - TSmsStatus::TSmsStatusValue status; - ReceiveStatusReportL(status); - TESTL(status == iExpectedStatus); - - return TestStepResult(); -} + { + SendSmsMessageL(); + TSmsStatus::TSmsStatusValue status; + ReceiveStatusReportL(status); + TESTL(status == iExpectedStatus); + + return TestStepResult(); + } /** Delete the SMS */ TVerdict CTestReceivingStatusReports::doTestStepPostambleL() -{ - delete iSmsMessage; - iSmsMessage = NULL; - - __UHEAP_MARKEND; + { + delete iSmsMessage; + iSmsMessage = NULL; - CTestSchemeReceiving::doTestStepPostambleL(); - - return TestStepResult(); -} + CTestSchemeReceiving::doTestStepPostambleL(); + return TestStepResult(); + } /** All receiving of status reports */ TVerdict CTestReceivingMessages::doTestStepPreambleL() -{ - //Call base class preamble - CTestSchemeReceiving::doTestStepPreambleL(); - - //Create a message - __UHEAP_MARK; + { + //Call base class preamble + CTestSchemeReceiving::doTestStepPreambleL(); - //Receive an SMS Message - WaitForRecvL(iSocket); - iSmsMessage = RecvSmsL(iSocket); - - return TestStepResult(); -} + //Receive an SMS Message + WaitForRecvL(iSocket); + iSmsMessage = RecvSmsL(iSocket); + return TestStepResult(); + } /** Delete the SMS */ TVerdict CTestReceivingMessages::doTestStepPostambleL() -{ - delete iSmsMessage; - iSmsMessage = NULL; + { + delete iSmsMessage; + iSmsMessage = NULL; - __UHEAP_MARKEND; + CTestSchemeReceiving::doTestStepPostambleL(); - CTestSchemeReceiving::doTestStepPostambleL(); - - return TestStepResult(); -} + return TestStepResult(); + } diff -r 962e6306d9d2 -r 7ef16719d8cb smsprotocols/smsstack/smsprot/Test/TE_Smsprt/Te_StatusReportSchemeTransfer.h --- a/smsprotocols/smsstack/smsprot/Test/TE_Smsprt/Te_StatusReportSchemeTransfer.h Fri Feb 19 23:59:33 2010 +0200 +++ b/smsprotocols/smsstack/smsprot/Test/TE_Smsprt/Te_StatusReportSchemeTransfer.h Fri Mar 12 15:49:38 2010 +0200 @@ -14,87 +14,81 @@ // -#ifndef __TE_STATUS_REPORT_SCHEME_SENDING_H__ -#define __TE_STATUS_REPORT_SCHEME_SENDING_H__ +#ifndef TE_STATUSREPORTSCHEMETRANSFER_H +#define TE_STATUSREPORTSCHEMETRANSFER_H #include "Te_StatusReportScheme.h" /** Base class for all sending test cases -*/ -class CTestSchemeSending : public CTestStatusReportScheme -{ + */ +class CTestSchemeSending : public CSmsStatusReportSchemeTestStep + { public: - virtual TVerdict doTestStepPreambleL(); - virtual TVerdict doTestStepPostambleL(); -}; + virtual TVerdict doTestStepPreambleL(); + virtual TVerdict doTestStepPostambleL(); + }; /** Base class for all sending of messages with TP-SRR -*/ + */ class CTestSendingTPSRRScheme : public CTestSchemeSending -{ + { public: - virtual TVerdict doTestStepPreambleL(); - virtual TVerdict doTestStepPostambleL(); - virtual TVerdict doTestStepL(); -}; + virtual TVerdict doTestStepPreambleL(); + virtual TVerdict doTestStepPostambleL(); + virtual TVerdict doTestStepL(); + }; /** Base class for all sending of messages with SMSC -*/ + */ class CTestSendingSMSCScheme : public CTestSchemeSending -{ + { public: - virtual TVerdict doTestStepPreambleL(); - virtual TVerdict doTestStepPostambleL(); - virtual TVerdict doTestStepL(); -}; - + virtual TVerdict doTestStepPreambleL(); + virtual TVerdict doTestStepPostambleL(); + virtual TVerdict doTestStepL(); + }; /** Base class for all receiving test cases -*/ -class CTestSchemeReceiving : public CTestStatusReportScheme -{ + */ +class CTestSchemeReceiving : public CSmsStatusReportSchemeTestStep + { public: - virtual TVerdict doTestStepPreambleL(); - -}; - + virtual TVerdict doTestStepPreambleL(); + }; /** Base class for receiving status reports -*/ + */ class CTestReceivingStatusReports : public CTestSchemeReceiving -{ + { public: - virtual TVerdict doTestStepPreambleL(); - virtual TVerdict doTestStepPostambleL(); - void ReceiveStatusReportL(TSmsStatus::TSmsStatusValue&); - virtual TVerdict doTestStepL(); - + virtual TVerdict doTestStepPreambleL(); + virtual TVerdict doTestStepPostambleL(); + void ReceiveStatusReportL(TSmsStatus::TSmsStatusValue&); + virtual TVerdict doTestStepL(); + private: - void GetExpectedStatus(); - + void GetExpectedStatus(); + protected: - TSmsStatus::TSmsStatusValue iExpectedStatus; - -}; + TSmsStatus::TSmsStatusValue iExpectedStatus; + }; /** Base class for receiving Delivered messages -*/ + */ class CTestReceivingMessages : public CTestSchemeReceiving -{ + { public: - virtual TVerdict doTestStepPreambleL(); - virtual TVerdict doTestStepPostambleL(); - + virtual TVerdict doTestStepPreambleL(); + virtual TVerdict doTestStepPostambleL(); + protected: - TSmsStatusReportScheme iExpectedScheme; - -}; + TSmsStatusReportScheme iExpectedScheme; + }; - -#endif +#endif // TE_STATUSREPORTSCHEMETRANSFER_H diff -r 962e6306d9d2 -r 7ef16719d8cb smsprotocols/smsstack/smsprot/Test/TE_Smsprt/Te_smsprt_data.ini --- a/smsprotocols/smsstack/smsprot/Test/TE_Smsprt/Te_smsprt_data.ini Fri Feb 19 23:59:33 2010 +0200 +++ b/smsprotocols/smsstack/smsprot/Test/TE_Smsprt/Te_smsprt_data.ini Fri Mar 12 15:49:38 2010 +0200 @@ -2,7 +2,7 @@ //-- Test data for reply addresses //--------------------------------------- [ReplyAddress] - +testNumber=72 replyAddressInternational =+447583927594 //--------------------------------------- @@ -20,6 +20,7 @@ //-- Test data for enhanced voice mail //--------------------------------------- [EnhancedVoiceMail] +testNumber=74 accessAddress =447582354212 callingLineIdentity =44999DCBA8 boundaryAccessAddress =441234AB diff -r 962e6306d9d2 -r 7ef16719d8cb smsprotocols/smsstack/smsprot/Test/TE_Smsprt/logcheck.cpp --- a/smsprotocols/smsstack/smsprot/Test/TE_Smsprt/logcheck.cpp Fri Feb 19 23:59:33 2010 +0200 +++ b/smsprotocols/smsstack/smsprot/Test/TE_Smsprt/logcheck.cpp Fri Mar 12 15:49:38 2010 +0200 @@ -19,7 +19,7 @@ #include "logcheck.h" -CSmsLogChecker* CSmsLogChecker::NewL(RFs& aFs, CSmsPrtTestStep* aTest, TInt aPriority) +CSmsLogChecker* CSmsLogChecker::NewL(RFs& aFs, CSmsBaseTestStep* aTest, TInt aPriority) { CSmsLogChecker* self = new (ELeave) CSmsLogChecker(aFs, aTest, aPriority); CleanupStack::PushL(self); @@ -42,7 +42,7 @@ iFilter->SetDirection(iDirection); } -CSmsLogChecker::CSmsLogChecker(RFs& aFs, CSmsPrtTestStep* aTest, TInt aPriority) +CSmsLogChecker::CSmsLogChecker(RFs& aFs, CSmsBaseTestStep* aTest, TInt aPriority) :CActive(aPriority), iFs(aFs), iTest(aTest) { CActiveScheduler::Add(this); diff -r 962e6306d9d2 -r 7ef16719d8cb smsprotocols/smsstack/smsprot/Test/TE_Smsprt/logcheck.h --- a/smsprotocols/smsstack/smsprot/Test/TE_Smsprt/logcheck.h Fri Feb 19 23:59:33 2010 +0200 +++ b/smsprotocols/smsstack/smsprot/Test/TE_Smsprt/logcheck.h Fri Mar 12 15:49:38 2010 +0200 @@ -18,21 +18,20 @@ @internalComponent */ -#ifndef LOGCHECK_H__ -#define LOGCHECK_H__ - +#ifndef LOGCHECK_H +#define LOGCHECK_H #include #include #include #include -#include "TE_smsprt.h" +#include "smsstackbaseteststeps.h" class CSmsLogChecker : public CActive { public: - static CSmsLogChecker* NewL(RFs& aFs, CSmsPrtTestStep* aTest, TInt aPriority); + static CSmsLogChecker* NewL(RFs& aFs, CSmsBaseTestStep* aTest, TInt aPriority); ~CSmsLogChecker(); void CountOriginalIdsL(TRequestStatus& aStatus); @@ -54,7 +53,7 @@ ENext } iState; - CSmsLogChecker(RFs& aFs, CSmsPrtTestStep* aTest, TInt aPriority); + CSmsLogChecker(RFs& aFs, CSmsBaseTestStep* aTest, TInt aPriority); void ConstructL(); void RunL(); TInt RunError(TInt aError); @@ -67,7 +66,7 @@ private: RFs& iFs; - CSmsPrtTestStep* iTest; + CSmsBaseTestStep* iTest; const RArray* iMessageLogIds; RArray iOriginalIds; diff -r 962e6306d9d2 -r 7ef16719d8cb smsprotocols/smsstack/smsprot/Test/TE_Smsprt/te_smsprt_R6.cpp --- a/smsprotocols/smsstack/smsprot/Test/TE_Smsprt/te_smsprt_R6.cpp Fri Feb 19 23:59:33 2010 +0200 +++ b/smsprotocols/smsstack/smsprot/Test/TE_Smsprt/te_smsprt_R6.cpp Fri Mar 12 15:49:38 2010 +0200 @@ -18,9 +18,14 @@ */ #include "te_smsprt_R6.h" -#include "e32def.h" -#include "gsmunonieoperations.h" - + +#include +#include +#include +#include + +#include "smsstacktestconsts.h" +#include "smsstacktestutilities.h" TVerdict CTestSinglePDUHyperLinks::doTestStepL() /** @@ -28,14 +33,8 @@ */ { INFO_PRINTF1(_L("Test HyperLinks in SMS message")); - - __UHEAP_MARK; - - RSocketServ socketServer; - PrepareRegTestLC(socketServer, 70); - RSocket socket; - iSmsStackTestUtils->OpenSmsSocketLC(socketServer,socket,ESmsAddrRecvAny); + iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,socket,ESmsAddrRecvAny); //This is a 95 character msg. _LIT(KTestMsg,"HyperLink message, Symbian. http://www.symbian.com Some content Intranet http://web.intra/homes"); @@ -46,8 +45,7 @@ //8 bit coding scheme TSmsDataCodingScheme::TSmsAlphabet alphabet=TSmsDataCodingScheme::ESmsAlphabet8Bit; - CSmsMessage* smsMessage=CreateSmsMessageL(KTestMsg,alphabet); - CleanupStack::PushL(smsMessage); + CSmsMessage* smsMessage=CreateSmsMessageLC(KTestMsg,alphabet); INFO_PRINTF2(_L("Destination number:..... %S "),&iTelephoneNumber); INFO_PRINTF2(_L("ServiceCenter number:... %S "),&iServiceCenterNumber); @@ -176,6 +174,7 @@ WaitForRecvL(socket); smsMessage = RecvSmsL(socket); CleanupStack::PushL(smsMessage); + TestSmsContentsL(smsMessage,KTestMsg); //Get the operations @@ -196,6 +195,7 @@ WaitForRecvL(socket); smsMessage = RecvSmsL(socket); CleanupStack::PushL(smsMessage); + TestSmsContentsL(smsMessage,KTestMsg); //Get the operations CSmsHyperLinkOperations& multipleHyperLinkOperations = static_cast(smsMessage->GetOperationsForIEL(CSmsInformationElement::ESmsHyperLinkFormat)); @@ -229,30 +229,17 @@ CleanupStack::PopAndDestroy(smsMessage); CleanupStack::PopAndDestroy(&socket); - CleanupStack::PopAndDestroy(&socketServer); - - __UHEAP_MARKEND; - return TestStepResult() ; } - -//Multiple PDU's - TVerdict CTestMultiplePDUHyperLinks::doTestStepL() /** * Test a simple Transmit and Receive of a TPDU */ { INFO_PRINTF1(_L("Test multiple PDUs with hyperLinks in SMS message")); - - __UHEAP_MARK; - - RSocketServ socketServer; - PrepareRegTestLC(socketServer, 71); - RSocket socket; - iSmsStackTestUtils->OpenSmsSocketLC(socketServer,socket,ESmsAddrRecvAny); + iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,socket,ESmsAddrRecvAny); _LIT(KLongText,"YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBCCCCCCC"); @@ -261,9 +248,7 @@ iServiceCenterNumber=KRadiolinjaSC; TSmsDataCodingScheme::TSmsAlphabet alphabet=TSmsDataCodingScheme::ESmsAlphabet8Bit; - CSmsMessage* smsMessage=CreateSmsMessageL(KLongText,alphabet); - - CleanupStack::PushL(smsMessage); + CSmsMessage* smsMessage=CreateSmsMessageLC(KLongText,alphabet); //Check number of hyperlinks //Get the operations @@ -443,10 +428,6 @@ CleanupStack::PopAndDestroy(smsMessage); CleanupStack::PopAndDestroy(&socket); - CleanupStack::PopAndDestroy(&socketServer); - - __UHEAP_MARKEND; - return TestStepResult() ; } @@ -456,15 +437,9 @@ * Test reply address can be different to the senders address */ { - __UHEAP_MARK; - INFO_PRINTF1(_L("Test reply address in SMS message")); - - RSocketServ socketServer; - PrepareRegTestLC(socketServer, 72); - RSocket socket; - iSmsStackTestUtils->OpenSmsSocketLC(socketServer,socket,ESmsAddrRecvAny); + iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,socket,ESmsAddrRecvAny); //This is character msg _LIT(KTestMsg,"Reply address message. Message will be sent to other address than sender"); @@ -475,8 +450,7 @@ //8 bit coding scheme TSmsDataCodingScheme::TSmsAlphabet alphabet=TSmsDataCodingScheme::ESmsAlphabet8Bit; - CSmsMessage* specialMessageAndReplyAddresMessage=CreateSmsMessageL(KEmptyMsg,alphabet); - CleanupStack::PushL(specialMessageAndReplyAddresMessage); + CSmsMessage* specialMessageAndReplyAddresMessage=CreateSmsMessageLC(KEmptyMsg,alphabet); //Get the operations CSmsReplyAddressOperations& replyAddressOperations = @@ -514,21 +488,19 @@ //Each special message is 4 octects. //Maximum variations on the type of messages for 5 bits is 32 for(TInt indicationType=EGsmSmsVoiceMessageWaiting; indicationType<=EGsmSmsExtendedMessageTypeWaiting; - indicationType++) + ++indicationType) { TBool toStore=EFalse; TSmsMessageProfileType messageProfileType=EGsmSmsProfileId1; TUint8 messageCount=5; for(TUint extendedType=EGsmSmsNoExtendedMessageTypeIndication; - extendedType<=EGsmSmsExtendedIndicationType7; extendedType++) + extendedType<=EGsmSmsExtendedIndicationType7; ++extendedType) { TRAP(err,specialMessageOperations.AddSpecialMessageIndicationL(toStore,TSmsMessageIndicationType(indicationType), TExtendedSmsIndicationType(extendedType),messageProfileType,messageCount)); TEST(err==KErrNone); - } - } //Add six zero length information elements @@ -536,19 +508,17 @@ CSmsPDU &pdu=specialMessageAndReplyAddresMessage->SmsPDU(); //Get the UserData CSmsUserData &userData=pdu.UserData(); - _LIT8(KEmptyString,""); + //Add the information element //TSmsId for(TUint informationElement=CSmsInformationElement::ESmsIEISIMToolkitSecurityHeaders1; - informationElement<=CSmsInformationElement::ESmsIEISIMToolkitSecurityHeaders5; - informationElement++) - { - //CSmsInformationElement::TSmsInformationElementIdentifier informationElement; + informationElement<=CSmsInformationElement::ESmsIEISIMToolkitSecurityHeaders5; + ++informationElement) + { TRAP(err,userData.AddInformationElementL( - CSmsInformationElement::TSmsInformationElementIdentifier(informationElement),KEmptyString())); + CSmsInformationElement::TSmsInformationElementIdentifier(informationElement),KNullDesC8())); TEST(err==KErrNone); - } - + } //Add address TPtrC replyAddress; @@ -678,8 +648,7 @@ CleanupStack::PopAndDestroy(specialMessageAndReplyAddresMessage); //Create a new message - CSmsMessage* smsMessage=CreateSmsMessageL(KTestMsg,alphabet); - CleanupStack::PushL(smsMessage); + CSmsMessage* smsMessage=CreateSmsMessageLC(KTestMsg,alphabet); //Get the operations CSmsReplyAddressOperations& operations = @@ -821,8 +790,6 @@ WaitForRecvL(socket); smsMessage = RecvSmsL(socket); - INFO_PRINTF1(_L("incoming SMS") ); - CleanupStack::PushL(smsMessage); TestSmsContentsL(smsMessage,KTestMsg); @@ -850,10 +817,8 @@ INFO_PRINTF1(_L("waiting for incoming SMS with reply address...") ); WaitForRecvL(socket); smsMessage = RecvSmsL(socket); - - INFO_PRINTF1(_L("incoming SMS") ); - CleanupStack::PushL(smsMessage); + TestSmsContentsL(smsMessage,KTestMsg); //Get the operations @@ -879,10 +844,8 @@ INFO_PRINTF1(_L("waiting for incoming SMS with parsed reply address...") ); WaitForRecvL(socket); smsMessage = RecvSmsL(socket); - - INFO_PRINTF1(_L("incoming SMS") ); - CleanupStack::PushL(smsMessage); + TestSmsContentsL(smsMessage,KTestMsg); //Get the operations @@ -907,9 +870,6 @@ INFO_PRINTF1(_L("waiting for incoming SMS with three reply addresses...") ); WaitForRecvL(socket); smsMessage = RecvSmsL(socket); - - INFO_PRINTF1(_L("incoming SMS") ); - CleanupStack::PushL(smsMessage); //TestSmsContentsL(smsMessage,KTestMsg); @@ -952,12 +912,7 @@ //-------- END receive with corrupt reply address //-------- END receive CleanupStack::PopAndDestroy(&socket); - CleanupStack::PopAndDestroy(&socketServer); - - __UHEAP_MARKEND; - return TestStepResult(); - } @@ -966,6 +921,7 @@ * Test a simple Transmit and Receive of a TPDU */ { + // TODO: redundant test case??? INFO_PRINTF1(_L("Test multiple PDUs with reply address in SMS message")); return TestStepResult(); @@ -978,16 +934,12 @@ */ { INFO_PRINTF1(_L("Test special message waiting operations")); - - __UHEAP_MARK; - //This is character msg - 96 characters _LIT(KTestMsg,"This message is a special message waiting message. You have a special message waiting for you :)"); //8 bit coding scheme TSmsDataCodingScheme::TSmsAlphabet alphabet=TSmsDataCodingScheme::ESmsAlphabet8Bit; - CSmsMessage* smsMessage=CreateSmsMessageL(KTestMsg,alphabet); - CleanupStack::PushL(smsMessage); + CSmsMessage* smsMessage=CreateSmsMessageLC(KTestMsg,alphabet); //Get the operations for a version 0 message i.e. before operations for IE were added smsMessage->SetVersion(CSmsMessage::ESmsMessageV0); @@ -1299,27 +1251,17 @@ CleanupStack::PopAndDestroy(smsMessage); //-------- END API Test for special message operations - - __UHEAP_MARKEND; - return TestStepResult(); } - TVerdict CTestSinglePDUSpecialMessageWaiting::doTestStepL() /** * Test a simple Transmit and Receive of a TPDU */ { INFO_PRINTF1(_L("Test special message waiting in single PDU SMS message")); - - __UHEAP_MARK; - - RSocketServ socketServer; - PrepareRegTestLC(socketServer, 73); - RSocket socket; - iSmsStackTestUtils->OpenSmsSocketLC(socketServer,socket,ESmsAddrRecvAny); + iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,socket,ESmsAddrRecvAny); //This is a 95 character msg. _LIT(KTestMsg,"This message is a special message waiting message. You have a special message waiting for you :)"); @@ -1330,8 +1272,7 @@ //8 bit coding scheme TSmsDataCodingScheme::TSmsAlphabet alphabet=TSmsDataCodingScheme::ESmsAlphabet8Bit; - CSmsMessage* smsMessage=CreateSmsMessageL(KTestMsg,alphabet); - CleanupStack::PushL(smsMessage); + CSmsMessage* smsMessage=CreateSmsMessageLC(KTestMsg,alphabet); INFO_PRINTF2(_L("Destination number:..... %S "),&iTelephoneNumber); INFO_PRINTF2(_L("ServiceCenter number:... %S "),&iServiceCenterNumber); @@ -1412,10 +1353,8 @@ //-------- END Sending Single PDU //-------- START receiving - INFO_PRINTF1(_L("waiting for incoming SMS...") ); WaitForRecvL(socket); smsMessage = RecvSmsL(socket); - CleanupStack::PushL(smsMessage); //Get the operations @@ -1597,14 +1536,9 @@ //-------- END receive CleanupStack::PopAndDestroy(&socket); - CleanupStack::PopAndDestroy(&socketServer); - - __UHEAP_MARKEND; - return TestStepResult(); } - TVerdict CTestMultiplePDUSpecialMessageWaiting::doTestStepL() /** * Test a simple Transmit and Receive of a TPDU @@ -1615,23 +1549,18 @@ return TestStepResult(); } - TVerdict CTestEnhancedVoiceMailOperations::doTestStepL() /** * Test the operations available for special message waiting */ { INFO_PRINTF1(_L("Test enhanced voice mail message operations")); - - __UHEAP_MARK; - //This is character msg - 96 characters _LIT(KTestMsg,"This is a enhanced voice mail information message!"); //8 bit coding scheme TSmsDataCodingScheme::TSmsAlphabet alphabet=TSmsDataCodingScheme::ESmsAlphabet8Bit; - CSmsMessage* smsMessage=CreateSmsMessageL(KTestMsg,alphabet); - CleanupStack::PushL(smsMessage); + CSmsMessage* smsMessage=CreateSmsMessageLC(KTestMsg,alphabet); //Get the operations CSmsEnhancedVoiceMailOperations& operations = @@ -1683,9 +1612,9 @@ //Test the boundary values for calling line identity TUint count=0; //Do this test for both parsed address and international numbers - for (TUint addressType=EInternational;addressType<=EParsed;addressType++) + for (TUint addressType=EInternational; addressType<=EParsed; ++addressType) { - for(TUint boundaryCheck=EInside; boundaryCheck<=EOutside;boundaryCheck++) + for(TUint boundaryCheck=EInside; boundaryCheck<=EOutside; ++boundaryCheck) { //Just before the boundary TPtrC boundaryCallingLineIdentity; @@ -1757,12 +1686,9 @@ delete notNeededEnhancedVoiceMailNotification; } - - } } - voiceMailNotification->SetParsedCallingLineIdentityL(accessAddressTGsm); //Get the notifications in the enhanced message @@ -1772,9 +1698,9 @@ count=newNotificationsList.Count(); //Remove all pointers to notifications if(count) - { - newNotificationsList.Reset(); - } + { + newNotificationsList.Reset(); + } result=newNotificationsList.Append(voiceMailNotification); TEST(result==KErrNone); @@ -1846,19 +1772,15 @@ CleanupStack::PopAndDestroy(retrievedNotification); CleanupStack::PopAndDestroy(enhancedVoiceMailNotification); CleanupStack::PopAndDestroy(smsMessage); - - __UHEAP_MARKEND; - return TestStepResult(); } - //Helper function: Adds the address to a notification void CTestEnhancedVoiceMailOperations::AddAddressToNotifcationL( CEnhancedVoiceMailNotification* aEnhancedVoiceMailNotification, CVoiceMailNotification* aVoiceMailNotification, TPtrC aCallingLineIdentity,TUint aAddressType) -{ + { //Get the notifications in the enhanced message RPointerArray& notificationsList= aEnhancedVoiceMailNotification->GetVoiceMailNotifications(); @@ -1866,44 +1788,37 @@ TUint count=notificationsList.Count(); if(count==1) - { + { notificationsList.Remove(0); - } + } //Add the address if(aAddressType==EParsed) - { + { //Create Calling Line Identity TGsmSmsTelNumber callingLineIdentityTGsm; callingLineIdentityTGsm.iTelNumber=aCallingLineIdentity; callingLineIdentityTGsm.iTypeOfAddress=EGsmSmsTONAlphaNumeric; aVoiceMailNotification->SetParsedCallingLineIdentityL(callingLineIdentityTGsm); - } + } else - { - aVoiceMailNotification->SetCallingLineIdentityL(aCallingLineIdentity); - } + { + aVoiceMailNotification->SetCallingLineIdentityL(aCallingLineIdentity); + } //Add the notification to the voice mail TInt result=notificationsList.Append(aVoiceMailNotification); TEST(result==KErrNone); } - TVerdict CTestSinglePDUEnhancedVoiceMailInformation::doTestStepL() /** * Test the sending and receiving of enhanced voice mail */ { INFO_PRINTF1(_L("Test enhanced voice mail information with a single PDU message")); - - __UHEAP_MARK; - - RSocketServ socketServer; - PrepareRegTestLC(socketServer, 74); - RSocket socket; - iSmsStackTestUtils->OpenSmsSocketLC(socketServer,socket,ESmsAddrRecvAny); + iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,socket,ESmsAddrRecvAny); //This is an enhanced voice mail character msg. _LIT(KTestMsg,""); @@ -1914,8 +1829,7 @@ //8 bit coding scheme TSmsDataCodingScheme::TSmsAlphabet alphabet=TSmsDataCodingScheme::ESmsAlphabet8Bit; - CSmsMessage* smsMessage=CreateSmsMessageL(KTestMsg,alphabet); - CleanupStack::PushL(smsMessage); + CSmsMessage* smsMessage=CreateSmsMessageLC(KTestMsg,alphabet); INFO_PRINTF2(_L("Destination number:..... %S "),&iTelephoneNumber); INFO_PRINTF2(_L("ServiceCenter number:... %S "),&iServiceCenterNumber); @@ -1985,11 +1899,10 @@ //Single pdu, max size = 137. That is 140-2(UDHL) -1(IEId) = 137 //User data = 8C //Make a new message - for (TUint i = 0; i < enhancedVoiceMailNotification->NumberOfVoiceMails(); i++) + for (TUint i = 0; i < enhancedVoiceMailNotification->NumberOfVoiceMails(); ++i) { delete notificationsList[i]; } - notificationsList.Reset(); CSmsMessage* boundaryValueVoiceMessage=CreateSmsMessageL(KTestMsg,alphabet); @@ -2002,12 +1915,12 @@ //Add five more notifications const TUint KNumNotifications=4; - for(count=0;countOpenSmsSocketLC(socketServer,socket,ESmsAddrRecvAny); + iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,socket,ESmsAddrRecvAny); //This is an enhanced voice mail character msg. _LIT(KTestMsg,""); @@ -2318,8 +2211,7 @@ //8 bit coding scheme TSmsDataCodingScheme::TSmsAlphabet alphabet=TSmsDataCodingScheme::ESmsAlphabet8Bit; - CSmsMessage* smsMessage=CreateSmsMessageL(KTestMsg,alphabet); - CleanupStack::PushL(smsMessage); + CSmsMessage* smsMessage=CreateSmsMessageLC(KTestMsg,alphabet); INFO_PRINTF2(_L("Destination number:..... %S "),&iTelephoneNumber); INFO_PRINTF2(_L("ServiceCenter number:... %S "),&iServiceCenterNumber); @@ -2453,14 +2345,9 @@ TEST(count==1); CleanupStack::PopAndDestroy(retrievedNotification); - CleanupStack::PopAndDestroy(smsMessage); //---------- END receiving CleanupStack::PopAndDestroy(&socket); - CleanupStack::PopAndDestroy(&socketServer); - - __UHEAP_MARKEND; - return TestStepResult(); } @@ -2470,12 +2357,12 @@ * Test the enhanced voice mail delete confirmation */ { + // TODO: redundant test case??? INFO_PRINTF1(_L("Test enhanced voice mail multiple PDU message delete confirmation")); return TestStepResult(); } - TVerdict CTest7BitDefaultAlphabet::doTestStepL() /** * Test the enhanced voice mail delete confirmation @@ -2483,14 +2370,9 @@ { INFO_PRINTF1(_L("Test 7 bit default alphabet")); - __UHEAP_MARK; - //Send a message with no alphabet set - RSocketServ socketServer; - PrepareRegTestLC(socketServer, 76); - RSocket socket; - iSmsStackTestUtils->OpenSmsSocketLC(socketServer,socket,ESmsAddrRecvAny); + iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,socket,ESmsAddrRecvAny); //This is a msg. _LIT(KTestMsg,"This message has no coding scheme set. Assume 7 bit default."); @@ -2544,16 +2426,10 @@ TEST(alphabet==TSmsDataCodingScheme::ESmsAlphabet7Bit); CleanupStack::PopAndDestroy(smsMessage); - CleanupStack::PopAndDestroy(&socket); - CleanupStack::PopAndDestroy(&socketServer); - - __UHEAP_MARKEND; - return TestStepResult(); } - TVerdict CTestZeroLengthIE::doTestStepL() /** * Test the enhanced voice mail delete confirmation @@ -2561,14 +2437,9 @@ { INFO_PRINTF1(_L("Test zero length IE, USIM toolkit IE")); - __UHEAP_MARK; - //Send a message with no alphabet set - RSocketServ socketServer; - PrepareRegTestLC(socketServer, 77); - RSocket socket; - iSmsStackTestUtils->OpenSmsSocketLC(socketServer,socket,ESmsAddrRecvAny); + iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,socket,ESmsAddrRecvAny); _LIT(KTestMsg,"This message has a zero length information element. USIM toolkit security header."); @@ -2579,8 +2450,7 @@ //Create message //8 bit coding scheme TSmsDataCodingScheme::TSmsAlphabet alphabet=TSmsDataCodingScheme::ESmsAlphabet8Bit; - CSmsMessage* smsMessage=CreateSmsMessageL(KTestMsg,alphabet); - CleanupStack::PushL(smsMessage); + CSmsMessage* smsMessage=CreateSmsMessageLC(KTestMsg,alphabet); INFO_PRINTF2(_L("Destination number:..... %S "),&iTelephoneNumber); INFO_PRINTF2(_L("ServiceCenter number:... %S "),&iServiceCenterNumber); @@ -2632,7 +2502,7 @@ //----------- //Receive message with multiple USIM security headers - 7F and 70, with zero length - INFO_PRINTF1(_L("waiting for incoming SMS with multiple USIM security headers, 7F and 70, with zero length...") ); + INFO_PRINTF1(_L("Receive SMS with multiple USIM security headers, 7F and 70, with zero length...") ); WaitForRecvL(socket); smsMessage = RecvSmsL(socket); @@ -2651,7 +2521,7 @@ //----------- //Receive message with multiple USIM security headers - 7F and 7F, with zero length //This is a duplicate information element - INFO_PRINTF1(_L("waiting for incoming SMS with multiple USIM security headers, 7F and 7F, with zero length...") ); + INFO_PRINTF1(_L("Receive SMS with multiple USIM security headers, 7F and 7F, with zero length...") ); WaitForRecvL(socket); smsMessage = RecvSmsL(socket); @@ -2670,8 +2540,7 @@ //-----Send multiple PDU message with one zero length IE = 0x70 _LIT(KLongMessage,"We might as well use our SMS stack in these phones. It is by far the most robust, and it performs well under stress. We have built a stack that is worth being inside a phone, processing messages for the wireless communnity :)"); - CSmsMessage *longSmsMessage=CreateSmsMessageL(KLongMessage,alphabet); - CleanupStack::PushL(longSmsMessage); + CSmsMessage *longSmsMessage=CreateSmsMessageLC(KLongMessage,alphabet); //Get the PDU CSmsPDU &multiplePdu=longSmsMessage->SmsPDU(); @@ -2797,14 +2666,9 @@ CleanupStack::PopAndDestroy(longSmsMessage); CleanupStack::PopAndDestroy(&socket); - CleanupStack::PopAndDestroy(&socketServer); - - __UHEAP_MARKEND; - return TestStepResult(); } - /* Class 2 Messages are stored on the SIM. Automatic deletion in the DCS does not delete these messages from the SIM. This is the default behaviour. This behaviour can be changed and it is done in @@ -2816,14 +2680,8 @@ */ { INFO_PRINTF1(_L("Test automatic deletion of messages marked as such in the code data segment(cds)")); - - __UHEAP_MARK; - - RSocketServ socketServer; - PrepareRegTestLC(socketServer, 78); - RSocket socket; - iSmsStackTestUtils->OpenSmsSocketLC(socketServer,socket,ESmsAddrRecvAny); + iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,socket,ESmsAddrRecvAny); _LIT(KTestMsg,""); @@ -2833,8 +2691,7 @@ //8 bit coding scheme TSmsDataCodingScheme::TSmsAlphabet alphabet=TSmsDataCodingScheme::ESmsAlphabet8Bit; - CSmsMessage* smsMessage=CreateSmsMessageL(KTestMsg,alphabet); - CleanupStack::PushL(smsMessage); + CSmsMessage* smsMessage=CreateSmsMessageLC(KTestMsg,alphabet); //Set message to class 2 TSmsDataCodingScheme::TSmsClass pduClass=TSmsDataCodingScheme::ESmsClass2; @@ -2867,15 +2724,14 @@ pdu.SetBits7To4(TSmsDataCodingScheme::TSmsDCSBits7To4(autoDeleteHexValue)); //Send this message SendSmsL(smsMessage,socket); - CleanupStack::PopAndDestroy(smsMessage); //----------End Sending - //Receive a message of class 2 - message will be stored on the SIM - INFO_PRINTF1(_L("waiting for incoming SMS...") ); + INFO_PRINTF1(_L("Receive a message of class 2 - message will be stored on the SIM...")); WaitForRecvL(socket); smsMessage = RecvSmsL(socket); CleanupStack::PushL(smsMessage); + //Get PDU CSmsPDU& classTwoPdu = smsMessage->SmsPDU(); //Class @@ -2890,11 +2746,9 @@ TEST(count==1); TGsmSmsSlotEntry smsSlot=smsMessage->iSlotArray[0]; TEST(smsSlot.iStore.Compare(_L("S14"))==0); - CleanupStack::PopAndDestroy(smsMessage); - //Receive a message of class 2 with automatic delete - message will be stored on the SIM - INFO_PRINTF1(_L("waiting for incoming SMS class 2 with automatic delete...") ); + INFO_PRINTF1(_L("Receive a message of class 2 with automatic delete - message will be stored on the SIM...")); WaitForRecvL(socket); smsMessage = RecvSmsL(socket); CleanupStack::PushL(smsMessage); @@ -2913,46 +2767,49 @@ TEST(smsSlot.iStore.Compare(_L("S14"))==0); CleanupStack::PopAndDestroy(smsMessage); - //Receive a message of class 1 with automatic delete - INFO_PRINTF1(_L("waiting for incoming SMS class 1 with automatic delete...") ); + INFO_PRINTF1(_L("Receive a message of class 1 with automatic delete...") ); WaitForRecvL(socket); smsMessage = RecvSmsL(socket); CleanupStack::PushL(smsMessage); + //Get PDU CSmsPDU& pduClass1 = smsMessage->SmsPDU(); //Class pduClass1.Class(pduClass); TEST(pduClass==TSmsDataCodingScheme::ESmsClass1); + //Test the storage storage=smsMessage->Storage(); TEST(storage==CSmsMessage::ESmsNoStorage); CleanupStack::PopAndDestroy(smsMessage); - //Receive a message of class 3 with automatic delete - INFO_PRINTF1(_L("waiting for incoming SMS class 3 with automatic delete...") ); + INFO_PRINTF1(_L("Receive a message of class 3 with automatic delete...") ); WaitForRecvL(socket); smsMessage = RecvSmsL(socket); CleanupStack::PushL(smsMessage); + //Get PDU CSmsPDU& pduClass3 = smsMessage->SmsPDU(); //Class pduClass3.Class(pduClass); TEST(pduClass==TSmsDataCodingScheme::ESmsClass3); + //Test the storage storage=smsMessage->Storage(); TEST(storage==CSmsMessage::ESmsNoStorage); CleanupStack::PopAndDestroy(smsMessage); - //Receive a message of class 0 with automatic delete - INFO_PRINTF1(_L("waiting for incoming SMS class 0 with automatic delete...") ); + INFO_PRINTF1(_L("Receive a message of class 0 with automatic delete...") ); WaitForRecvL(socket); smsMessage = RecvSmsL(socket); CleanupStack::PushL(smsMessage); + //Get PDU CSmsPDU& pduClass0 = smsMessage->SmsPDU(); //Class pduClass0.Class(pduClass); TEST(pduClass==TSmsDataCodingScheme::ESmsClass0); + //Test the storage storage=smsMessage->Storage(); TEST(storage==CSmsMessage::ESmsNoStorage); @@ -2982,14 +2839,9 @@ TEST(count==2); CleanupStack::PopAndDestroy(&socket); - CleanupStack::PopAndDestroy(&socketServer); - - __UHEAP_MARKEND; - return TestStepResult(); } - /* Class 2 Messages are stored on the SIM. Automatic deletion in the DCS does not delete these messages from the SIM. This is the default behaviour. This behaviour can be changed and it is done in @@ -3001,14 +2853,8 @@ */ { INFO_PRINTF1(_L("Test automatic deletion of messages marked in dcs, and set for delete in the ESK file")); - - __UHEAP_MARK; - - RSocketServ socketServer; - PrepareRegTestLC(socketServer, 79); - RSocket socket; - iSmsStackTestUtils->OpenSmsSocketLC(socketServer,socket,ESmsAddrRecvAny); + iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,socket,ESmsAddrRecvAny); _LIT(KTestMsg,"Esk file has been set to delete class 2 messages marked for automatic deletion"); @@ -3018,8 +2864,7 @@ //8 bit coding scheme - create message TSmsDataCodingScheme::TSmsAlphabet alphabet=TSmsDataCodingScheme::ESmsAlphabet8Bit; - CSmsMessage* smsMessage=CreateSmsMessageL(KTestMsg,alphabet); - CleanupStack::PushL(smsMessage); + CSmsMessage* smsMessage=CreateSmsMessageLC(KTestMsg,alphabet); //Set message to class 2 TSmsDataCodingScheme::TSmsClass pduClass=TSmsDataCodingScheme::ESmsClass2; @@ -3128,11 +2973,7 @@ TEST(count==0); CleanupStack::PopAndDestroy(&socket); - CleanupStack::PopAndDestroy(&socketServer); - - __UHEAP_MARKEND; - - return TestStepResult(); + return TestStepResult(); } @@ -3142,14 +2983,8 @@ */ { INFO_PRINTF1(_L("Test automatic deletion of messages of type zero")); - - __UHEAP_MARK; - - RSocketServ socketServer; - PrepareRegTestLC(socketServer, 80); - RSocket socket; - iSmsStackTestUtils->OpenSmsSocketLC(socketServer,socket,ESmsAddrRecvAny); + iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,socket,ESmsAddrRecvAny); _LIT(KTestMsg,"Type 0 Sms message"); @@ -3159,8 +2994,7 @@ //8 bit coding scheme - create message TSmsDataCodingScheme::TSmsAlphabet alphabet=TSmsDataCodingScheme::ESmsAlphabet8Bit; - CSmsMessage* smsMessage=CreateSmsMessageL(KTestMsg,alphabet); - CleanupStack::PushL(smsMessage); + CSmsMessage* smsMessage=CreateSmsMessageLC(KTestMsg,alphabet); //Set message to type 0 CSmsPDU& pdu = smsMessage->SmsPDU(); @@ -3276,29 +3110,17 @@ TEST(count==2); CleanupStack::PopAndDestroy(&socket); - CleanupStack::PopAndDestroy(&socketServer); - - __UHEAP_MARKEND; - - return TestStepResult(); + return TestStepResult(); } - - TVerdict CTestAutomaticDeletionTypeZeroAndSetInESK::doTestStepL() /** * Test the enhanced voice mail delete confirmation */ { INFO_PRINTF1(_L("Test automatic deletion of messages of type zero, and set for deletion for Class 0 in ESK file.")); - - __UHEAP_MARK; - - RSocketServ socketServer; - PrepareRegTestLC(socketServer, 81); - RSocket socket; - iSmsStackTestUtils->OpenSmsSocketLC(socketServer,socket,ESmsAddrRecvAny); + iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,socket,ESmsAddrRecvAny); _LIT(KTestMsg,"Type 0 Sms message"); @@ -3308,8 +3130,7 @@ //8 bit coding scheme - create message TSmsDataCodingScheme::TSmsAlphabet alphabet=TSmsDataCodingScheme::ESmsAlphabet8Bit; - CSmsMessage* smsMessage=CreateSmsMessageL(KTestMsg,alphabet); - CleanupStack::PushL(smsMessage); + CSmsMessage* smsMessage=CreateSmsMessageLC(KTestMsg,alphabet); //Set message to type 0 CSmsPDU& pdu = smsMessage->SmsPDU(); @@ -3394,14 +3215,9 @@ TEST(count==2); CleanupStack::PopAndDestroy(&socket); - CleanupStack::PopAndDestroy(&socketServer); - - __UHEAP_MARKEND; - - return TestStepResult(); + return TestStepResult(); } - TVerdict CTestOOMSendR6Sms::doTestStepL() /** * Intent: @@ -3422,11 +3238,8 @@ */ { INFO_PRINTF1(_L("Test out of memory handling")); - RSocketServ socketServer; - PrepareRegTestLC(socketServer, 82); - RSocket socket; - iSmsStackTestUtils->OpenSmsSocketLC(socketServer,socket,ESmsAddrRecvAny); + iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,socket,ESmsAddrRecvAny); //Set destination and SC numbers iTelephoneNumber=KPekka; @@ -3435,8 +3248,7 @@ _LIT(KTestMsg1,"test message, 8bits, length 30"); TSmsDataCodingScheme::TSmsAlphabet alphabet=TSmsDataCodingScheme::ESmsAlphabet8Bit; - CSmsMessage* smsMessage=CreateSmsMessageL(KTestMsg1,alphabet); - CleanupStack::PushL(smsMessage); + CSmsMessage* smsMessage=CreateSmsMessageLC(KTestMsg1,alphabet); //Get the operations CSmsHyperLinkOperations& hyperLinkOperations = static_cast(smsMessage->GetOperationsForIEL(CSmsInformationElement::ESmsHyperLinkFormat)); @@ -3554,17 +3366,19 @@ TInt successfullSends=0; //maximum expected number of succeeded sends is 2 in TSY config file while (successfullSends<8) { - socketServer.__DbgFailNext(count); - socketServer.__DbgMarkHeap(); + iSocketServer.__DbgFailNext(count); + iSocketServer.__DbgMarkHeap(); TRAP(ret,SendSmsDontCheckReturnValueL(smsMessage,socket)); - socketServer.__DbgMarkEnd(0); + iSocketServer.__DbgMarkEnd(0); if(ret==KErrNone) - successfullSends++; - count++; + { + ++successfullSends; + } + ++count; } TEST(ret == KErrNone); - socketServer.__DbgFailNext(-1); // Reset heap + iSocketServer.__DbgFailNext(-1); // Reset heap INFO_PRINTF1(_L("TPSRR Scheme")); @@ -3578,39 +3392,33 @@ successfullSends=0; //maximum expected number of succeeded sends is 2 in TSY config file while (successfullSends<12) { - socketServer.__DbgFailNext(count); + iSocketServer.__DbgFailNext(count); - socketServer.__DbgMarkHeap(); + iSocketServer.__DbgMarkHeap(); TRAP(ret,SendSmsDontCheckReturnValueL(smsMessage,socket)); - socketServer.__DbgMarkEnd(0); + iSocketServer.__DbgMarkEnd(0); if(ret==KErrNone) - successfullSends++; - count++; + { + ++successfullSends; + } + ++count; } TEST(ret == KErrNone); - socketServer.__DbgFailNext(-1); // Reset heap - - CleanupStack::PopAndDestroy(2); //smsMessage, socket - - //Ensure socket server session is closed to remove cache - CleanupStack::PopAndDestroy(&socketServer); - + iSocketServer.__DbgFailNext(-1); // Reset heap + + CleanupStack::PopAndDestroy(2, &socket); // socket, smsMessage return TestStepResult() ; } - -TVerdict CEnhancedVoiceMessageBoundaryTest::doTestStepL() +TVerdict CTestEnhancedVoiceMessageBoundary::doTestStepL() { /** * Create a Enhanced Voice Mail Information Element that occupies 139 bytes. * 139 bytes is the maximum that fit into a single segment message. */ - RSocketServ socketServer; - PrepareRegTestLC(socketServer, 83); - RSocket socket; - iSmsStackTestUtils->OpenSmsSocketLC(socketServer,socket,ESmsAddrRecvAny); + iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,socket,ESmsAddrRecvAny); CEnhancedVoiceMailNotification* enhancedVoiceMailNotification = CEnhancedVoiceMailNotification::NewL(); @@ -3626,7 +3434,7 @@ enhancedVoiceMailNotification->SetNumberOfVoiceMessages(0xFF); RPointerArray& voiceMailNotificationArray = enhancedVoiceMailNotification->GetVoiceMailNotifications(); - for (TUint i = 0; i < 8; i++) + for (TUint i = 0; i < 8; ++i) { // Set up notification 1 CVoiceMailNotification* voiceMailNotification = CVoiceMailNotification::NewL(); @@ -3647,8 +3455,7 @@ _LIT(KTestMsg1,""); TSmsDataCodingScheme::TSmsAlphabet alphabet=TSmsDataCodingScheme::ESmsAlphabet8Bit; - CSmsMessage* smsMessage=CreateSmsMessageL(KTestMsg1,alphabet); - CleanupStack::PushL(smsMessage); + CSmsMessage* smsMessage=CreateSmsMessageLC(KTestMsg1,alphabet); TSmsUserDataSettings userDataSettings; userDataSettings.SetAlphabet(TSmsDataCodingScheme::ESmsAlphabet8Bit); @@ -3661,25 +3468,18 @@ //Send the message SendSmsL(smsMessage,socket); - CleanupStack::PopAndDestroy(smsMessage); - CleanupStack::PopAndDestroy(&socket); - CleanupStack::PopAndDestroy(&socketServer); - - return TestStepResult(); + CleanupStack::PopAndDestroy(2, &socket); // socket, smsMessage + return TestStepResult(); } - -TVerdict CEnhancedVoiceMessageBoundaryTest1::doTestStepL() +TVerdict CTestEnhancedVoiceMessageBoundary1::doTestStepL() { /*Creates the maximum size enhanced voice message ie that will fit * into a concatenated message, size 134 bytes, allowing 5 bytes for * a concatenation ie in the PDU. */ - RSocketServ socketServer; - PrepareRegTestLC(socketServer, 84); - RSocket socket; - iSmsStackTestUtils->OpenSmsSocketLC(socketServer,socket,ESmsAddrRecvAny); + iSmsStackTestUtils->OpenSmsSocketLC(iSocketServer,socket,ESmsAddrRecvAny); CEnhancedVoiceMailNotification* enhancedVoiceMailNotification = CEnhancedVoiceMailNotification::NewL(); @@ -3695,7 +3495,7 @@ enhancedVoiceMailNotification->SetNumberOfVoiceMessages(0xFF); RPointerArray& voiceMailNotificationArray = enhancedVoiceMailNotification->GetVoiceMailNotifications(); - for (TUint i = 0; i < 8; i++) + for (TUint i = 0; i < 8; ++i) { // Set up notification 1 CVoiceMailNotification* voiceMailNotification = CVoiceMailNotification::NewL(); @@ -3725,8 +3525,7 @@ _LIT(KTestMsg1,"Dundee United"); TSmsDataCodingScheme::TSmsAlphabet alphabet=TSmsDataCodingScheme::ESmsAlphabet8Bit; - CSmsMessage* smsMessage=CreateSmsMessageL(KTestMsg1,alphabet); - CleanupStack::PushL(smsMessage); + CSmsMessage* smsMessage=CreateSmsMessageLC(KTestMsg1,alphabet); TSmsUserDataSettings userDataSettings; userDataSettings.SetAlphabet(TSmsDataCodingScheme::ESmsAlphabet8Bit); @@ -3739,15 +3538,11 @@ //Send the message SendSmsL(smsMessage,socket); - CleanupStack::PopAndDestroy(smsMessage); - CleanupStack::PopAndDestroy(&socket); - CleanupStack::PopAndDestroy(&socketServer); - - return TestStepResult(); + CleanupStack::PopAndDestroy(2, &socket); // socket, smsMessage + return TestStepResult(); } - -TVerdict CSubmitReportDefaultsTo7BitDecoding::doTestStepL() +TVerdict CTestSubmitReportDefaultsTo7BitDecoding::doTestStepL() { TBuf8<30> buff; buff.SetLength(30); @@ -3791,14 +3586,11 @@ _LIT(KTestMsg,"David Narey"); TestSmsContentsL(decodedMessage,KTestMsg); - CleanupStack::PopAndDestroy(decodedMessage); - return TestStepResult(); } - -TVerdict CDeliverReportDefaultsTo7BitDecoding::doTestStepL() +TVerdict CTestDeliverReportDefaultsTo7BitDecoding::doTestStepL() { TBuf8<30> buff; buff.SetLength(30); @@ -3835,14 +3627,11 @@ _LIT(KTestMsg,"David Narey"); TestSmsContentsL(decodedMessage,KTestMsg); - CleanupStack::PopAndDestroy(decodedMessage); - return TestStepResult(); } - -TVerdict CStatusReportDefaultsTo7BitDecoding::doTestStepL() +TVerdict CTestStatusReportDefaultsTo7BitDecoding::doTestStepL() { TBuf8<40> buff; buff.SetLength(40); @@ -3898,8 +3687,6 @@ _LIT(KTestMsg,"David Narey"); TestSmsContentsL(decodedMessage,KTestMsg); - CleanupStack::PopAndDestroy(decodedMessage); - return TestStepResult(); } diff -r 962e6306d9d2 -r 7ef16719d8cb smsprotocols/smsstack/smsprot/Test/TE_Smsprt/te_smsprt_R6.h --- a/smsprotocols/smsstack/smsprot/Test/TE_Smsprt/te_smsprt_R6.h Fri Feb 19 23:59:33 2010 +0200 +++ b/smsprotocols/smsstack/smsprot/Test/TE_Smsprt/te_smsprt_R6.h Fri Mar 12 15:49:38 2010 +0200 @@ -13,65 +13,64 @@ // Description: // -#ifndef __TE_SMSPRT_R6_H_ -#define __TE_SMSPRT_R6_H_ +#ifndef TE_SMSPRT_R6_H +#define TE_SMSPRT_R6_H + -#include "TE_smsprt.h" -#include "Gsmuelem.h" -#include "gsmuieoperations.h" +#include "smsstackbaseteststeps.h" -class CTestSinglePDUHyperLinks : public CSmsPrtTestStep +class CTestSinglePDUHyperLinks : public CSmsBaseTestStep { public: virtual TVerdict doTestStepL(); }; -class CTestMultiplePDUHyperLinks : public CSmsPrtTestStep +class CTestMultiplePDUHyperLinks : public CSmsBaseTestStep { public: virtual TVerdict doTestStepL(); }; -class CTestSinglePDUReplyAddress : public CSmsPrtTestStep +class CTestSinglePDUReplyAddress : public CSmsBaseTestStep { public: virtual TVerdict doTestStepL(); }; -class CTestMultiplePDUReplyAddress : public CSmsPrtTestStep +class CTestMultiplePDUReplyAddress : public CSmsBaseTestStep { public: virtual TVerdict doTestStepL(); }; -class CTestSpecialMessageOperations : public CSmsPrtTestStep +class CTestSpecialMessageOperations : public CSmsBaseTestStep { public: virtual TVerdict doTestStepL(); }; -class CTestSinglePDUSpecialMessageWaiting : public CSmsPrtTestStep +class CTestSinglePDUSpecialMessageWaiting : public CSmsBaseTestStep { public: virtual TVerdict doTestStepL(); }; -class CTestMultiplePDUSpecialMessageWaiting : public CSmsPrtTestStep +class CTestMultiplePDUSpecialMessageWaiting : public CSmsBaseTestStep { public: virtual TVerdict doTestStepL(); }; -class CTestEnhancedVoiceMail : public CSmsPrtTestStep +class CSmsEnhancedVoiceMailTestStep : public CSmsBaseTestStep { protected: CEnhancedVoiceMailNotification* CreateEnhancedVoiceMailNotificationL(TGsmSmsTelNumber aAccessAddress); @@ -79,7 +78,7 @@ }; -class CTestEnhancedVoiceMailOperations : public CTestEnhancedVoiceMail +class CTestEnhancedVoiceMailOperations : public CSmsEnhancedVoiceMailTestStep { public: enum TBoundaries {EInside=0,EOn,EOutside}; @@ -94,122 +93,122 @@ }; -class CTestSinglePDUEnhancedVoiceMailInformation : public CTestEnhancedVoiceMail +class CTestSinglePDUEnhancedVoiceMailInformation : public CSmsEnhancedVoiceMailTestStep { public: virtual TVerdict doTestStepL(); }; -class CTestMultiplePDUEnhancedVoiceMailInformation : public CTestEnhancedVoiceMail +class CTestMultiplePDUEnhancedVoiceMailInformation : public CSmsEnhancedVoiceMailTestStep { public: virtual TVerdict doTestStepL(); }; -class CTestEnhancedVoiceMailDeleteOperations : public CSmsPrtTestStep +class CTestEnhancedVoiceMailDeleteOperations : public CSmsBaseTestStep { public: virtual TVerdict doTestStepL(); }; -class CTestSinglePDUEnhancedVoiceMailDeleteConfirmation : public CSmsPrtTestStep +class CTestSinglePDUEnhancedVoiceMailDeleteConfirmation : public CSmsBaseTestStep { public: virtual TVerdict doTestStepL(); }; -class CTestMultiplePDUEnhancedVoiceMailDeleteConfirmation : public CSmsPrtTestStep +class CTestMultiplePDUEnhancedVoiceMailDeleteConfirmation : public CSmsBaseTestStep { public: virtual TVerdict doTestStepL(); }; -class CTest7BitDefaultAlphabet : public CSmsPrtTestStep +class CTest7BitDefaultAlphabet : public CSmsBaseTestStep { public: virtual TVerdict doTestStepL(); }; -class CTestZeroLengthIE : public CSmsPrtTestStep +class CTestZeroLengthIE : public CSmsBaseTestStep { public: virtual TVerdict doTestStepL(); }; -class CTestAutomaticDeletionInDCS : public CSmsPrtTestStep +class CTestAutomaticDeletionInDCS : public CSmsBaseTestStep { public: virtual TVerdict doTestStepL(); }; -class CTestAutomaticDeletionInDCSAndInESK : public CSmsPrtTestStep +class CTestAutomaticDeletionInDCSAndInESK : public CSmsBaseTestStep { public: virtual TVerdict doTestStepL(); }; -class CTestAutomaticDeletionTypeZeroSMS : public CSmsPrtTestStep +class CTestAutomaticDeletionTypeZeroSMS : public CSmsBaseTestStep { public: virtual TVerdict doTestStepL(); }; -class CTestAutomaticDeletionTypeZeroAndSetInESK : public CSmsPrtTestStep +class CTestAutomaticDeletionTypeZeroAndSetInESK : public CSmsBaseTestStep { public: virtual TVerdict doTestStepL(); }; -class CTestOOMSendR6Sms : public CSmsPrtTestStep +class CTestOOMSendR6Sms : public CSmsBaseTestStep { public: virtual TVerdict doTestStepL(); }; -class CEnhancedVoiceMessageBoundaryTest : public CSmsPrtTestStep +class CTestEnhancedVoiceMessageBoundary : public CSmsBaseTestStep { public: virtual TVerdict doTestStepL(); }; -class CEnhancedVoiceMessageBoundaryTest1 : public CSmsPrtTestStep +class CTestEnhancedVoiceMessageBoundary1 : public CSmsBaseTestStep { public: virtual TVerdict doTestStepL(); }; -class CSubmitReportDefaultsTo7BitDecoding : public CSmsPrtTestStep +class CTestSubmitReportDefaultsTo7BitDecoding : public CSmsBaseTestStep { public: virtual TVerdict doTestStepL(); }; -class CDeliverReportDefaultsTo7BitDecoding : public CSmsPrtTestStep +class CTestDeliverReportDefaultsTo7BitDecoding : public CSmsBaseTestStep { public: virtual TVerdict doTestStepL(); }; -class CStatusReportDefaultsTo7BitDecoding : public CSmsPrtTestStep +class CTestStatusReportDefaultsTo7BitDecoding : public CSmsBaseTestStep { public: virtual TVerdict doTestStepL(); }; -#endif +#endif // TE_SMSPRT_R6_H diff -r 962e6306d9d2 -r 7ef16719d8cb smsprotocols/smsstack/smsprot/Test/TE_Smsprt/tsmsprt_config.txt --- a/smsprotocols/smsstack/smsprot/Test/TE_Smsprt/tsmsprt_config.txt Fri Feb 19 23:59:33 2010 +0200 +++ b/smsprotocols/smsstack/smsprot/Test/TE_Smsprt/tsmsprt_config.txt Fri Mar 12 15:49:38 2010 +0200 @@ -1498,27 +1498,27 @@ SmsResumePause= 1 #First case first PDU fails, -SmsTx= 55000C915348801455820004A78C0500030003014141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141, +358405202000, 1, 010010807141731480, -4520 +SmsTx= 55000C915348801455820004A78C0500030003014141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141, +358405202000, 1, 01080010112211221180, -4520 SmsTx= 55000C915348801455820004A78C0500030003014141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141, +358405202000, 2, 010010807141731480, 0 SmsTx= 55000C915348801455820004A78C0500030003024242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242, +358405202000, 3, 010010807141731480, 0 SmsTx= 55000C915348801455820004A70D05000300030343434343434343, +358405202000, 4, 010010807141731480, 0 #Second case second PDU fails, SmsTx= 55000C915348801455820004A78C0500030103014141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141, +358405202000, 5, 010010807141731480, 0 -SmsTx= 55000C915348801455820004A78C0500030103024242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242, +358405202000, 6, 010010807141731480, -4520 +SmsTx= 55000C915348801455820004A78C0500030103024242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242, +358405202000, 6, 01080010112211221180, -4520 SmsTx= 55000C915348801455820004A78C0500030103024242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242, +358405202000, 7, 010010807141731480, 0 SmsTx= 55000C915348801455820004A70D05000301030343434343434343, +358405202000, 8, 010010807141731480, 0 #Third case third PDU fails, SmsTx= 55000C915348801455820004A78C0500030203014141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141, +358405202000, 9, 010010807141731480, 0 SmsTx= 55000C915348801455820004A78C0500030203024242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242, +358405202000, 10, 010010807141731480, 0 -SmsTx= 55000C915348801455820004A70D05000302030343434343434343, +358405202000, 11, 010010807141731480, -4520 +SmsTx= 55000C915348801455820004A70D05000302030343434343434343, +358405202000, 11, 01080010112211221180, -4520 SmsTx= 55000C915348801455820004A70D05000302030343434343434343, +358405202000, 12, 010010807141731480, 0 #Fourth case third PDU fails, SmsTx= 55000C915348801455820004A78C0500030303014141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141, +358405202000, 13, 010010807141731480, 0 SmsTx= 55000C915348801455820004A78C0500030303024242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242, +358405202000, 14, 010010807141731480, 0 -SmsTx= 55000C915348801455820004A70D05000303030343434343434343, +358405202000, 15, 010010807141731480, -4520 +SmsTx= 55000C915348801455820004A70D05000303030343434343434343, +358405202000, 15, 01080010112211221180, -4520 SmsTx= 55000C915348801455820004A78C0500030403014141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141, +358405202000, 16, 010010807141731480, 0 SmsTx= 55000C915348801455820004A78C0500030403024242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242, +358405202000, 17, 010010807141731480, 0 @@ -3000,11 +3000,20 @@ SmsRx=640C915348801455820000103060019134002C0806018000030403034028140A8542A15028140A8542A15028140A8542A15028140A8542A15008, +358405202000, 18, 010010807141731480, 0 [test131] +SmsTx= 00, +358405202000, 0, 010010807141731480, 0 +SmsTx= 00, +358405202000, 1, 010010807141731480, 0 +SmsTx= 00, +358405202000, 2, 010010807141731480, 0 + # class 0, 8 bit +SmsStartRxDelay= 4207, 1, 1 SmsRx= 240C915348801455824014108071417314801254797065203020536D73206D657373616765, 358405202000 + # class 2, 8 bit (will be N'Ack'd) +SmsStartRxDelay= 4207, 2, 1 SmsRx= 240C915348801455824016108071417314801254797065203020536D73206D657373616765, 358405202000 + # class 2, 8 bit +SmsStartRxDelay= 4207, 3, 1 SmsRx= 240C915348801455824016108071417314801254797065203020536D73206D657373616765, 358405202000 [test132] @@ -3023,6 +3032,28 @@ SmsRx= 240C915348801455824016108071417314801254797065203020536D73206D657373616765, 358405202000 +[test134] +# class 0, 8 bit +SmsRx= 240C915348801455824014108071417314801254797065203020536D73206D657373616765, 358405202000 + +# class 2, 8 bit (will be N'Ack'd) +SmsRx= 240C915348801455824016108071417314801254797065203020536D73206D657373616765, 358405202000 + +# class 2, 8 bit +SmsRx= 240C915348801455824016108071417314801254797065203020536D73206D657373616765, 358405202000 + + +[test135] +# class 0, 8 bit (will be N'Ack'd) +SmsRx= 240C915348801455824014108071417314801254797065203020536D73206D657373616765, 358405202000 + +# class 0, 8 bit +SmsRx= 240C915348801455824014108071417314801254797065203020536D73206D657373616765, 358405202000 + +# class 2, 8 bit +SmsRx= 240C915348801455824016108071417314801254797065203020536D73206D657373616765, 358405202000 + + #TestCongestedReceive [test141] # Rx 30 PDUs at 1 second intervals... @@ -3303,6 +3334,7 @@ SmsRx=400C91447774608552000080704151006440A00500030103024EA0B1681C16B5E46FD9EC5477B1626F11514525BFE8C170301C0C0FC7C3F1703C1C13C94472B15C2C17CBC572B17C3C1FCFC7F3F18C4423D1C974329D4C27D3C9B452BD5CAF996C269BC966B2996CA7DBE976BADD4EF7F3FD7C73F9CFB7542E954BE5D3F9743E9D4FE7543A954EA557EBD57AB55EAD7BFDD5FAF59ECD67B57AAD5EABDF9D4E, 358405202000, 02B0 SmsRx=440C91447774608552000080704151000540A00500030103034EA0B1681C16B5E46FD9EC5477B1626F11514525BFE8C170301C0C0FC7C3F1703C1C13C94472B15C2C17CBC572B17C3C1FCFC7F3F18C4423D1C974329D4C27D3C9B452BD5CAF996C269BC966B2996CA7DBE976BADD4EF7F3FD7C73F9CFB7542E954BE5D3F9743E9D4FE7543A954EA557EBD57AB55EAD7BFDD5FAF59ECD67B57AAD5EABDF9D4E, 358405202000, 02B0 + #TestEncoding7bitTurkishNationalLanguage [test155] SmsControlCaps= 68 @@ -3553,6 +3585,3 @@ # Test Turkish GSM text (Turkish shift table)... SmsRx=440C914477746085520000808060813431409B03240101D81C839B6470330D6EC6C1CDB9B8491737F3E2E698DC24939B6972334E6ECECF4DFAB9993F37C7E72659DD4CAB9B717573CE6ED2E1CD3CBC398637C9F2665ADE8CD39B737A934E6FE6EFCDF1BD49BE37D3FA665CDF9CF39B747E330F6E8EC54D12B9992637E3E7E69CDDA42B9B7972730C6E92C2CDB4B8196B3767E4269DDCCC979B6313, 358405202000, 02B0 - - - diff -r 962e6306d9d2 -r 7ef16719d8cb smsprotocols/smsstack/smsprot/Test/configfiles/tsmsemsprt_config.txt --- a/smsprotocols/smsstack/smsprot/Test/configfiles/tsmsemsprt_config.txt Fri Feb 19 23:59:33 2010 +0200 +++ b/smsprotocols/smsstack/smsprot/Test/configfiles/tsmsemsprt_config.txt Fri Mar 12 15:49:38 2010 +0200 @@ -1,4 +1,5 @@ #This config file describes SIM tsy requests for SMS Stack unit testing (T_SmsPrt) +[test0] #TestFormatIEA [test1] diff -r 962e6306d9d2 -r 7ef16719d8cb smsprotocols/smsstack/smsprot/Test/configfiles/tsmsprtstress_config.txt --- a/smsprotocols/smsstack/smsprot/Test/configfiles/tsmsprtstress_config.txt Fri Feb 19 23:59:33 2010 +0200 +++ b/smsprotocols/smsstack/smsprot/Test/configfiles/tsmsprtstress_config.txt Fri Mar 12 15:49:38 2010 +0200 @@ -1,160 +1,12 @@ #This config file describes SIM tsy requests for SMS Stack Stress testing (T_SmsPrtStress) - - - [test0] -SmsRxPeriod= 5 -SmsRx= 240C915348801455820004108071417314801E74657374206D6573736167652C2038626974732C206C656E677468203330, 358405202000 -SmsRx= 240C915348801455820004108071417314801E74657374206D6573736167652C2038626974732C206C656E677468203330, 358405202000 -SmsRx= 240C915348801455820004108071417314801E74657374206D6573736167652C2038626974732C206C656E677468203330, 358405202000 -SmsRx= 240C915348801455820004108071417314801E74657374206D6573736167652C2038626974732C206C656E677468203330, 358405202000 -SmsRx= 240C915348801455820004108071417314801E74657374206D6573736167652C2038626974732C206C656E677468203330, 358405202000 -SmsStore= S14, 10 -SmsStoreEntry= S14, 1, 1, 240C9153488014558200001011919111228013D3641334A53EA54550B3389D068F45500C, +358405202000 -SmsStoreEntry= S14, 2, 2, 240C9153488014558200001011919191228013D3641334A53EA54550B3389D068F45900C, +358405202000 - - - +#TestRxAndRead [test1] -msControlCaps= 452 -#SmsControlCaps= caps in DECIMAL -SmsPhoneStoreCaps= 0xFC000000 -#SmsPhoneStoreCaps= TMobilePhoneCaps in the smsStore in hexadecimal - -SmsAckNackPause= 1 -SmsResumePause= 1 -SmsTx= 75000C914477746055840000A7A0050003000301662028B10AA297E774D0B43905B5CBF379F85C7681662028B10AA297E774D0B43905B5CBF379F85C7681662028B10AA297E774D0B43905B5CBF379F85C7681662028B10AA297E774D0B43905B5CBF379F85C7681662028B10AA297E774D0B43905B5CBF379F85C7681662028B10AA297E774D0B43905B5CBF379F85C7681662028B10AA297E7, +358405202000, 0, 010010807141731480, 0 -SmsTx= 75000C914477746055840000A7A0050003000302E8A069730A6A97E7F3F0B9EC02CD40506215442FCFE9A069730A6A97E7F3F0B9EC02CD40506215442FCFE9A069730A6A97E7F3F0B9EC02CD40506215442FCFE9A069730A6A97E7F3F0B9EC02CD40506215442FCFE9A069730A6A97E7F3F0B9EC02CD40506215442FCFE9A069730A6A97E7F3F0B9EC02CD40506215442FCFE9A069730A6A97E7, +358405202000, 1, 010010807141731480, 0 -SmsTx= 75000C914477746055840000A775050003000303E6E173D9059A81A0C42A885E9ED341D3E614D42ECFE7E173D9059A81A0C42A885E9ED341D3E614D42ECFE7E173D9059A81A0C42A885E9ED341D3E614D42ECFE7E173D9059A81A0C42A885E9ED341D3E614D42ECFE7E173D905A2A2CBA0A29BEC02, +358405202000, 2, 010010807141731480, 0 -SmsTx= 75000C914477746055840000A7A0050003010301662028B10AA297E774D0B43905B5CBF379F85C7681662028B10AA297E774D0B43905B5CBF379F85C7681662028B10AA297E774D0B43905B5CBF379F85C7681662028B10AA297E774D0B43905B5CBF379F85C7681662028B10AA297E774D0B43905B5CBF379F85C7681662028B10AA297E774D0B43905B5CBF379F85C7681662028B10AA297E7, +358405202000, 0, 010010807141731480, 0 -SmsTx= 75000C914477746055840000A7A0050003010302E8A069730A6A97E7F3F0B9EC02CD40506215442FCFE9A069730A6A97E7F3F0B9EC02CD40506215442FCFE9A069730A6A97E7F3F0B9EC02CD40506215442FCFE9A069730A6A97E7F3F0B9EC02CD40506215442FCFE9A069730A6A97E7F3F0B9EC02CD40506215442FCFE9A069730A6A97E7F3F0B9EC02CD40506215442FCFE9A069730A6A97E7, +358405202000, 1, 010010807141731480, 0 -SmsTx= 75000C914477746055840000A775050003010303E6E173D9059A81A0C42A885E9ED341D3E614D42ECFE7E173D9059A81A0C42A885E9ED341D3E614D42ECFE7E173D9059A81A0C42A885E9ED341D3E614D42ECFE7E173D9059A81A0C42A885E9ED341D3E614D42ECFE7E173D905A2A2CBA0A29BEC02, +358405202000, 2, 010010807141731480, 0 -SmsTx= 75000C914477746055840000A7A0050003020301662028B10AA297E774D0B43905B5CBF379F85C7681662028B10AA297E774D0B43905B5CBF379F85C7681662028B10AA297E774D0B43905B5CBF379F85C7681662028B10AA297E774D0B43905B5CBF379F85C7681662028B10AA297E774D0B43905B5CBF379F85C7681662028B10AA297E774D0B43905B5CBF379F85C7681662028B10AA297E7, +358405202000, 0, 010010807141731480, 0 -SmsTx= 75000C914477746055840000A7A0050003020302E8A069730A6A97E7F3F0B9EC02CD40506215442FCFE9A069730A6A97E7F3F0B9EC02CD40506215442FCFE9A069730A6A97E7F3F0B9EC02CD40506215442FCFE9A069730A6A97E7F3F0B9EC02CD40506215442FCFE9A069730A6A97E7F3F0B9EC02CD40506215442FCFE9A069730A6A97E7F3F0B9EC02CD40506215442FCFE9A069730A6A97E7, +358405202000, 1, 010010807141731480, 0 -SmsTx= 75000C914477746055840000A775050003020303E6E173D9059A81A0C42A885E9ED341D3E614D42ECFE7E173D9059A81A0C42A885E9ED341D3E614D42ECFE7E173D9059A81A0C42A885E9ED341D3E614D42ECFE7E173D9059A81A0C42A885E9ED341D3E614D42ECFE7E173D905A2A2CBA0A29BEC02, +358405202000, 2, 010010807141731480, 0 -SmsTx= 75000C914477746055840000A7A0050003030301662028B10AA297E774D0B43905B5CBF379F85C7681662028B10AA297E774D0B43905B5CBF379F85C7681662028B10AA297E774D0B43905B5CBF379F85C7681662028B10AA297E774D0B43905B5CBF379F85C7681662028B10AA297E774D0B43905B5CBF379F85C7681662028B10AA297E774D0B43905B5CBF379F85C7681662028B10AA297E7, +358405202000, 0, 010010807141731480, 0 -SmsTx= 75000C914477746055840000A7A0050003030302E8A069730A6A97E7F3F0B9EC02CD40506215442FCFE9A069730A6A97E7F3F0B9EC02CD40506215442FCFE9A069730A6A97E7F3F0B9EC02CD40506215442FCFE9A069730A6A97E7F3F0B9EC02CD40506215442FCFE9A069730A6A97E7F3F0B9EC02CD40506215442FCFE9A069730A6A97E7F3F0B9EC02CD40506215442FCFE9A069730A6A97E7, +358405202000, 1, 010010807141731480, 0 -SmsTx= 75000C914477746055840000A775050003030303E6E173D9059A81A0C42A885E9ED341D3E614D42ECFE7E173D9059A81A0C42A885E9ED341D3E614D42ECFE7E173D9059A81A0C42A885E9ED341D3E614D42ECFE7E173D9059A81A0C42A885E9ED341D3E614D42ECFE7E173D905A2A2CBA0A29BEC02, +358405202000, 2, 010010807141731480, 0 -SmsTx= 75000C914477746055840000A7A0050003040301662028B10AA297E774D0B43905B5CBF379F85C7681662028B10AA297E774D0B43905B5CBF379F85C7681662028B10AA297E774D0B43905B5CBF379F85C7681662028B10AA297E774D0B43905B5CBF379F85C7681662028B10AA297E774D0B43905B5CBF379F85C7681662028B10AA297E774D0B43905B5CBF379F85C7681662028B10AA297E7, +358405202000, 0, 010010807141731480, 0 -SmsTx= 75000C914477746055840000A7A0050003040302E8A069730A6A97E7F3F0B9EC02CD40506215442FCFE9A069730A6A97E7F3F0B9EC02CD40506215442FCFE9A069730A6A97E7F3F0B9EC02CD40506215442FCFE9A069730A6A97E7F3F0B9EC02CD40506215442FCFE9A069730A6A97E7F3F0B9EC02CD40506215442FCFE9A069730A6A97E7F3F0B9EC02CD40506215442FCFE9A069730A6A97E7, +358405202000, 1, 010010807141731480, 0 -SmsTx= 75000C914477746055840000A775050003040303E6E173D9059A81A0C42A885E9ED341D3E614D42ECFE7E173D9059A81A0C42A885E9ED341D3E614D42ECFE7E173D9059A81A0C42A885E9ED341D3E614D42ECFE7E173D9059A81A0C42A885E9ED341D3E614D42ECFE7E173D905A2A2CBA0A29BEC02, +358405202000, 2, 010010807141731480, 0 -SmsTx= 75000C914477746055840000A7A0050003050301662028B10AA297E774D0B43905B5CBF379F85C7681662028B10AA297E774D0B43905B5CBF379F85C7681662028B10AA297E774D0B43905B5CBF379F85C7681662028B10AA297E774D0B43905B5CBF379F85C7681662028B10AA297E774D0B43905B5CBF379F85C7681662028B10AA297E774D0B43905B5CBF379F85C7681662028B10AA297E7, +358405202000, 0, 010010807141731480, 0 -SmsTx= 75000C914477746055840000A7A0050003050302E8A069730A6A97E7F3F0B9EC02CD40506215442FCFE9A069730A6A97E7F3F0B9EC02CD40506215442FCFE9A069730A6A97E7F3F0B9EC02CD40506215442FCFE9A069730A6A97E7F3F0B9EC02CD40506215442FCFE9A069730A6A97E7F3F0B9EC02CD40506215442FCFE9A069730A6A97E7F3F0B9EC02CD40506215442FCFE9A069730A6A97E7, +358405202000, 1, 010010807141731480, 0 -SmsTx= 75000C914477746055840000A775050003050303E6E173D9059A81A0C42A885E9ED341D3E614D42ECFE7E173D9059A81A0C42A885E9ED341D3E614D42ECFE7E173D9059A81A0C42A885E9ED341D3E614D42ECFE7E173D9059A81A0C42A885E9ED341D3E614D42ECFE7E173D905A2A2CBA0A29BEC02, +358405202000, 2, 010010807141731480, 0 -SmsTx= 75000C914477746055840000A7A0050003060301662028B10AA297E774D0B43905B5CBF379F85C7681662028B10AA297E774D0B43905B5CBF379F85C7681662028B10AA297E774D0B43905B5CBF379F85C7681662028B10AA297E774D0B43905B5CBF379F85C7681662028B10AA297E774D0B43905B5CBF379F85C7681662028B10AA297E774D0B43905B5CBF379F85C7681662028B10AA297E7, +358405202000, 0, 010010807141731480, 0 -SmsTx= 75000C914477746055840000A7A0050003060302E8A069730A6A97E7F3F0B9EC02CD40506215442FCFE9A069730A6A97E7F3F0B9EC02CD40506215442FCFE9A069730A6A97E7F3F0B9EC02CD40506215442FCFE9A069730A6A97E7F3F0B9EC02CD40506215442FCFE9A069730A6A97E7F3F0B9EC02CD40506215442FCFE9A069730A6A97E7F3F0B9EC02CD40506215442FCFE9A069730A6A97E7, +358405202000, 1, 010010807141731480, 0 -SmsTx= 75000C914477746055840000A775050003060303E6E173D9059A81A0C42A885E9ED341D3E614D42ECFE7E173D9059A81A0C42A885E9ED341D3E614D42ECFE7E173D9059A81A0C42A885E9ED341D3E614D42ECFE7E173D9059A81A0C42A885E9ED341D3E614D42ECFE7E173D905A2A2CBA0A29BEC02, +358405202000, 2, 010010807141731480, 0 -SmsTx= 75000C914477746055840000A7A0050003070301662028B10AA297E774D0B43905B5CBF379F85C7681662028B10AA297E774D0B43905B5CBF379F85C7681662028B10AA297E774D0B43905B5CBF379F85C7681662028B10AA297E774D0B43905B5CBF379F85C7681662028B10AA297E774D0B43905B5CBF379F85C7681662028B10AA297E774D0B43905B5CBF379F85C7681662028B10AA297E7, +358405202000, 0, 010010807141731480, 0 -SmsTx= 75000C914477746055840000A7A0050003070302E8A069730A6A97E7F3F0B9EC02CD40506215442FCFE9A069730A6A97E7F3F0B9EC02CD40506215442FCFE9A069730A6A97E7F3F0B9EC02CD40506215442FCFE9A069730A6A97E7F3F0B9EC02CD40506215442FCFE9A069730A6A97E7F3F0B9EC02CD40506215442FCFE9A069730A6A97E7F3F0B9EC02CD40506215442FCFE9A069730A6A97E7, +358405202000, 1, 010010807141731480, 0 -SmsTx= 75000C914477746055840000A775050003070303E6E173D9059A81A0C42A885E9ED341D3E614D42ECFE7E173D9059A81A0C42A885E9ED341D3E614D42ECFE7E173D9059A81A0C42A885E9ED341D3E614D42ECFE7E173D9059A81A0C42A885E9ED341D3E614D42ECFE7E173D905A2A2CBA0A29BEC02, +358405202000, 2, 010010807141731480, 0 -SmsTx= 75000C914477746055840000A7A0050003080301662028B10AA297E774D0B43905B5CBF379F85C7681662028B10AA297E774D0B43905B5CBF379F85C7681662028B10AA297E774D0B43905B5CBF379F85C7681662028B10AA297E774D0B43905B5CBF379F85C7681662028B10AA297E774D0B43905B5CBF379F85C7681662028B10AA297E774D0B43905B5CBF379F85C7681662028B10AA297E7, +358405202000, 0, 010010807141731480, 0 -SmsTx= 75000C914477746055840000A7A0050003080302E8A069730A6A97E7F3F0B9EC02CD40506215442FCFE9A069730A6A97E7F3F0B9EC02CD40506215442FCFE9A069730A6A97E7F3F0B9EC02CD40506215442FCFE9A069730A6A97E7F3F0B9EC02CD40506215442FCFE9A069730A6A97E7F3F0B9EC02CD40506215442FCFE9A069730A6A97E7F3F0B9EC02CD40506215442FCFE9A069730A6A97E7, +358405202000, 1, 010010807141731480, 0 -SmsTx= 75000C914477746055840000A775050003080303E6E173D9059A81A0C42A885E9ED341D3E614D42ECFE7E173D9059A81A0C42A885E9ED341D3E614D42ECFE7E173D9059A81A0C42A885E9ED341D3E614D42ECFE7E173D9059A81A0C42A885E9ED341D3E614D42ECFE7E173D905A2A2CBA0A29BEC02, +358405202000, 2, 010010807141731480, 0 -SmsTx= 75000C914477746055840000A7A0050003090301662028B10AA297E774D0B43905B5CBF379F85C7681662028B10AA297E774D0B43905B5CBF379F85C7681662028B10AA297E774D0B43905B5CBF379F85C7681662028B10AA297E774D0B43905B5CBF379F85C7681662028B10AA297E774D0B43905B5CBF379F85C7681662028B10AA297E774D0B43905B5CBF379F85C7681662028B10AA297E7, +358405202000, 0, 010010807141731480, 0 -SmsTx= 75000C914477746055840000A7A0050003090302E8A069730A6A97E7F3F0B9EC02CD40506215442FCFE9A069730A6A97E7F3F0B9EC02CD40506215442FCFE9A069730A6A97E7F3F0B9EC02CD40506215442FCFE9A069730A6A97E7F3F0B9EC02CD40506215442FCFE9A069730A6A97E7F3F0B9EC02CD40506215442FCFE9A069730A6A97E7F3F0B9EC02CD40506215442FCFE9A069730A6A97E7, +358405202000, 1, 010010807141731480, 0 -SmsTx= 75000C914477746055840000A775050003090303E6E173D9059A81A0C42A885E9ED341D3E614D42ECFE7E173D9059A81A0C42A885E9ED341D3E614D42ECFE7E173D9059A81A0C42A885E9ED341D3E614D42ECFE7E173D9059A81A0C42A885E9ED341D3E614D42ECFE7E173D905A2A2CBA0A29BEC02, +358405202000, 2, 010010807141731480, 0 -SmsTx= 75000C914477746055840000A7A00500030A0301662028B10AA297E774D0B43905B5CBF379F85C7681662028B10AA297E774D0B43905B5CBF379F85C7681662028B10AA297E774D0B43905B5CBF379F85C7681662028B10AA297E774D0B43905B5CBF379F85C7681662028B10AA297E774D0B43905B5CBF379F85C7681662028B10AA297E774D0B43905B5CBF379F85C7681662028B10AA297E7, +358405202000, 0, 010010807141731480, 0 -SmsTx= 75000C914477746055840000A7A00500030A0302E8A069730A6A97E7F3F0B9EC02CD40506215442FCFE9A069730A6A97E7F3F0B9EC02CD40506215442FCFE9A069730A6A97E7F3F0B9EC02CD40506215442FCFE9A069730A6A97E7F3F0B9EC02CD40506215442FCFE9A069730A6A97E7F3F0B9EC02CD40506215442FCFE9A069730A6A97E7F3F0B9EC02CD40506215442FCFE9A069730A6A97E7, +358405202000, 1, 010010807141731480, 0 -SmsTx= 75000C914477746055840000A7750500030A0303E6E173D9059A81A0C42A885E9ED341D3E614D42ECFE7E173D9059A81A0C42A885E9ED341D3E614D42ECFE7E173D9059A81A0C42A885E9ED341D3E614D42ECFE7E173D9059A81A0C42A885E9ED341D3E614D42ECFE7E173D905A2A2CBA0A29BEC02, +358405202000, 2, 010010807141731480, 0 -SmsTx= 75000C914477746055840000A7A00500030B0301662028B10AA297E774D0B43905B5CBF379F85C7681662028B10AA297E774D0B43905B5CBF379F85C7681662028B10AA297E774D0B43905B5CBF379F85C7681662028B10AA297E774D0B43905B5CBF379F85C7681662028B10AA297E774D0B43905B5CBF379F85C7681662028B10AA297E774D0B43905B5CBF379F85C7681662028B10AA297E7, +358405202000, 0, 010010807141731480, 0 -SmsTx= 75000C914477746055840000A7A00500030B0302E8A069730A6A97E7F3F0B9EC02CD40506215442FCFE9A069730A6A97E7F3F0B9EC02CD40506215442FCFE9A069730A6A97E7F3F0B9EC02CD40506215442FCFE9A069730A6A97E7F3F0B9EC02CD40506215442FCFE9A069730A6A97E7F3F0B9EC02CD40506215442FCFE9A069730A6A97E7F3F0B9EC02CD40506215442FCFE9A069730A6A97E7, +358405202000, 1, 010010807141731480, 0 -SmsTx= 75000C914477746055840000A7750500030B0303E6E173D9059A81A0C42A885E9ED341D3E614D42ECFE7E173D9059A81A0C42A885E9ED341D3E614D42ECFE7E173D9059A81A0C42A885E9ED341D3E614D42ECFE7E173D9059A81A0C42A885E9ED341D3E614D42ECFE7E173D905A2A2CBA0A29BEC02, +358405202000, 2, 010010807141731480, 0 -SmsTx= 75000C914477746055840000A7A00500030C0301662028B10AA297E774D0B43905B5CBF379F85C7681662028B10AA297E774D0B43905B5CBF379F85C7681662028B10AA297E774D0B43905B5CBF379F85C7681662028B10AA297E774D0B43905B5CBF379F85C7681662028B10AA297E774D0B43905B5CBF379F85C7681662028B10AA297E774D0B43905B5CBF379F85C7681662028B10AA297E7, +358405202000, 0, 010010807141731480, 0 -SmsTx= 75000C914477746055840000A7A00500030C0302E8A069730A6A97E7F3F0B9EC02CD40506215442FCFE9A069730A6A97E7F3F0B9EC02CD40506215442FCFE9A069730A6A97E7F3F0B9EC02CD40506215442FCFE9A069730A6A97E7F3F0B9EC02CD40506215442FCFE9A069730A6A97E7F3F0B9EC02CD40506215442FCFE9A069730A6A97E7F3F0B9EC02CD40506215442FCFE9A069730A6A97E7, +358405202000, 1, 010010807141731480, 0 -SmsTx= 75000C914477746055840000A7750500030C0303E6E173D9059A81A0C42A885E9ED341D3E614D42ECFE7E173D9059A81A0C42A885E9ED341D3E614D42ECFE7E173D9059A81A0C42A885E9ED341D3E614D42ECFE7E173D9059A81A0C42A885E9ED341D3E614D42ECFE7E173D905A2A2CBA0A29BEC02, +358405202000, 2, 010010807141731480, 0 -SmsTx= 75000C914477746055840000A7A00500030D0301662028B10AA297E774D0B43905B5CBF379F85C7681662028B10AA297E774D0B43905B5CBF379F85C7681662028B10AA297E774D0B43905B5CBF379F85C7681662028B10AA297E774D0B43905B5CBF379F85C7681662028B10AA297E774D0B43905B5CBF379F85C7681662028B10AA297E774D0B43905B5CBF379F85C7681662028B10AA297E7, +358405202000, 0, 010010807141731480, 0 -SmsTx= 75000C914477746055840000A7A00500030D0302E8A069730A6A97E7F3F0B9EC02CD40506215442FCFE9A069730A6A97E7F3F0B9EC02CD40506215442FCFE9A069730A6A97E7F3F0B9EC02CD40506215442FCFE9A069730A6A97E7F3F0B9EC02CD40506215442FCFE9A069730A6A97E7F3F0B9EC02CD40506215442FCFE9A069730A6A97E7F3F0B9EC02CD40506215442FCFE9A069730A6A97E7, +358405202000, 1, 010010807141731480, 0 -SmsTx= 75000C914477746055840000A7750500030D0303E6E173D9059A81A0C42A885E9ED341D3E614D42ECFE7E173D9059A81A0C42A885E9ED341D3E614D42ECFE7E173D9059A81A0C42A885E9ED341D3E614D42ECFE7E173D9059A81A0C42A885E9ED341D3E614D42ECFE7E173D905A2A2CBA0A29BEC02, +358405202000, 2, 010010807141731480, 0 -SmsTx= 75000C914477746055840000A7A00500030E0301662028B10AA297E774D0B43905B5CBF379F85C7681662028B10AA297E774D0B43905B5CBF379F85C7681662028B10AA297E774D0B43905B5CBF379F85C7681662028B10AA297E774D0B43905B5CBF379F85C7681662028B10AA297E774D0B43905B5CBF379F85C7681662028B10AA297E774D0B43905B5CBF379F85C7681662028B10AA297E7, +358405202000, 0, 010010807141731480, 0 -SmsTx= 75000C914477746055840000A7A00500030E0302E8A069730A6A97E7F3F0B9EC02CD40506215442FCFE9A069730A6A97E7F3F0B9EC02CD40506215442FCFE9A069730A6A97E7F3F0B9EC02CD40506215442FCFE9A069730A6A97E7F3F0B9EC02CD40506215442FCFE9A069730A6A97E7F3F0B9EC02CD40506215442FCFE9A069730A6A97E7F3F0B9EC02CD40506215442FCFE9A069730A6A97E7, +358405202000, 1, 010010807141731480, 0 -SmsTx= 75000C914477746055840000A7750500030E0303E6E173D9059A81A0C42A885E9ED341D3E614D42ECFE7E173D9059A81A0C42A885E9ED341D3E614D42ECFE7E173D9059A81A0C42A885E9ED341D3E614D42ECFE7E173D9059A81A0C42A885E9ED341D3E614D42ECFE7E173D905A2A2CBA0A29BEC02, +358405202000, 2, 010010807141731480, 0 -SmsTx= 75000C914477746055840000A7A00500030F0301662028B10AA297E774D0B43905B5CBF379F85C7681662028B10AA297E774D0B43905B5CBF379F85C7681662028B10AA297E774D0B43905B5CBF379F85C7681662028B10AA297E774D0B43905B5CBF379F85C7681662028B10AA297E774D0B43905B5CBF379F85C7681662028B10AA297E774D0B43905B5CBF379F85C7681662028B10AA297E7, +358405202000, 0, 010010807141731480, 0 -SmsTx= 75000C914477746055840000A7A00500030F0302E8A069730A6A97E7F3F0B9EC02CD40506215442FCFE9A069730A6A97E7F3F0B9EC02CD40506215442FCFE9A069730A6A97E7F3F0B9EC02CD40506215442FCFE9A069730A6A97E7F3F0B9EC02CD40506215442FCFE9A069730A6A97E7F3F0B9EC02CD40506215442FCFE9A069730A6A97E7F3F0B9EC02CD40506215442FCFE9A069730A6A97E7, +358405202000, 1, 010010807141731480, 0 -SmsTx= 75000C914477746055840000A7750500030F0303E6E173D9059A81A0C42A885E9ED341D3E614D42ECFE7E173D9059A81A0C42A885E9ED341D3E614D42ECFE7E173D9059A81A0C42A885E9ED341D3E614D42ECFE7E173D9059A81A0C42A885E9ED341D3E614D42ECFE7E173D905A2A2CBA0A29BEC02, +358405202000, 2, 010010807141731480, 0 -SmsTx= 75000C914477746055840000A7A0050003100301662028B10AA297E774D0B43905B5CBF379F85C7681662028B10AA297E774D0B43905B5CBF379F85C7681662028B10AA297E774D0B43905B5CBF379F85C7681662028B10AA297E774D0B43905B5CBF379F85C7681662028B10AA297E774D0B43905B5CBF379F85C7681662028B10AA297E774D0B43905B5CBF379F85C7681662028B10AA297E7, +358405202000, 0, 010010807141731480, 0 -SmsTx= 75000C914477746055840000A7A0050003100302E8A069730A6A97E7F3F0B9EC02CD40506215442FCFE9A069730A6A97E7F3F0B9EC02CD40506215442FCFE9A069730A6A97E7F3F0B9EC02CD40506215442FCFE9A069730A6A97E7F3F0B9EC02CD40506215442FCFE9A069730A6A97E7F3F0B9EC02CD40506215442FCFE9A069730A6A97E7F3F0B9EC02CD40506215442FCFE9A069730A6A97E7, +358405202000, 1, 010010807141731480, 0 -SmsTx= 75000C914477746055840000A775050003100303E6E173D9059A81A0C42A885E9ED341D3E614D42ECFE7E173D9059A81A0C42A885E9ED341D3E614D42ECFE7E173D9059A81A0C42A885E9ED341D3E614D42ECFE7E173D9059A81A0C42A885E9ED341D3E614D42ECFE7E173D905A2A2CBA0A29BEC02, +358405202000, 2, 010010807141731480, 0 -SmsTx= 75000C914477746055840000A7A0050003110301662028B10AA297E774D0B43905B5CBF379F85C7681662028B10AA297E774D0B43905B5CBF379F85C7681662028B10AA297E774D0B43905B5CBF379F85C7681662028B10AA297E774D0B43905B5CBF379F85C7681662028B10AA297E774D0B43905B5CBF379F85C7681662028B10AA297E774D0B43905B5CBF379F85C7681662028B10AA297E7, +358405202000, 0, 010010807141731480, 0 -SmsTx= 75000C914477746055840000A7A0050003110302E8A069730A6A97E7F3F0B9EC02CD40506215442FCFE9A069730A6A97E7F3F0B9EC02CD40506215442FCFE9A069730A6A97E7F3F0B9EC02CD40506215442FCFE9A069730A6A97E7F3F0B9EC02CD40506215442FCFE9A069730A6A97E7F3F0B9EC02CD40506215442FCFE9A069730A6A97E7F3F0B9EC02CD40506215442FCFE9A069730A6A97E7, +358405202000, 1, 010010807141731480, 0 -SmsTx= 75000C914477746055840000A775050003110303E6E173D9059A81A0C42A885E9ED341D3E614D42ECFE7E173D9059A81A0C42A885E9ED341D3E614D42ECFE7E173D9059A81A0C42A885E9ED341D3E614D42ECFE7E173D9059A81A0C42A885E9ED341D3E614D42ECFE7E173D905A2A2CBA0A29BEC02, +358405202000, 2, 010010807141731480, 0 -SmsTx= 75000C914477746055840000A7A0050003120301662028B10AA297E774D0B43905B5CBF379F85C7681662028B10AA297E774D0B43905B5CBF379F85C7681662028B10AA297E774D0B43905B5CBF379F85C7681662028B10AA297E774D0B43905B5CBF379F85C7681662028B10AA297E774D0B43905B5CBF379F85C7681662028B10AA297E774D0B43905B5CBF379F85C7681662028B10AA297E7, +358405202000, 0, 010010807141731480, 0 -SmsTx= 75000C914477746055840000A7A0050003120302E8A069730A6A97E7F3F0B9EC02CD40506215442FCFE9A069730A6A97E7F3F0B9EC02CD40506215442FCFE9A069730A6A97E7F3F0B9EC02CD40506215442FCFE9A069730A6A97E7F3F0B9EC02CD40506215442FCFE9A069730A6A97E7F3F0B9EC02CD40506215442FCFE9A069730A6A97E7F3F0B9EC02CD40506215442FCFE9A069730A6A97E7, +358405202000, 1, 010010807141731480, 0 -SmsTx= 75000C914477746055840000A775050003120303E6E173D9059A81A0C42A885E9ED341D3E614D42ECFE7E173D9059A81A0C42A885E9ED341D3E614D42ECFE7E173D9059A81A0C42A885E9ED341D3E614D42ECFE7E173D9059A81A0C42A885E9ED341D3E614D42ECFE7E173D905A2A2CBA0A29BEC02, +358405202000, 2, 010010807141731480, 0 -SmsTx= 75000C914477746055840000A7A0050003130301662028B10AA297E774D0B43905B5CBF379F85C7681662028B10AA297E774D0B43905B5CBF379F85C7681662028B10AA297E774D0B43905B5CBF379F85C7681662028B10AA297E774D0B43905B5CBF379F85C7681662028B10AA297E774D0B43905B5CBF379F85C7681662028B10AA297E774D0B43905B5CBF379F85C7681662028B10AA297E7, +358405202000, 0, 010010807141731480, 0 -SmsTx= 75000C914477746055840000A7A0050003130302E8A069730A6A97E7F3F0B9EC02CD40506215442FCFE9A069730A6A97E7F3F0B9EC02CD40506215442FCFE9A069730A6A97E7F3F0B9EC02CD40506215442FCFE9A069730A6A97E7F3F0B9EC02CD40506215442FCFE9A069730A6A97E7F3F0B9EC02CD40506215442FCFE9A069730A6A97E7F3F0B9EC02CD40506215442FCFE9A069730A6A97E7, +358405202000, 1, 010010807141731480, 0 -SmsTx= 75000C914477746055840000A775050003130303E6E173D9059A81A0C42A885E9ED341D3E614D42ECFE7E173D9059A81A0C42A885E9ED341D3E614D42ECFE7E173D9059A81A0C42A885E9ED341D3E614D42ECFE7E173D9059A81A0C42A885E9ED341D3E614D42ECFE7E173D905A2A2CBA0A29BEC02, +358405202000, 2, 010010807141731480, 0 -SmsTx= 75000C914477746055840000A7A0050003140301662028B10AA297E774D0B43905B5CBF379F85C7681662028B10AA297E774D0B43905B5CBF379F85C7681662028B10AA297E774D0B43905B5CBF379F85C7681662028B10AA297E774D0B43905B5CBF379F85C7681662028B10AA297E774D0B43905B5CBF379F85C7681662028B10AA297E774D0B43905B5CBF379F85C7681662028B10AA297E7, +358405202000, 0, 010010807141731480, 0 -SmsTx= 75000C914477746055840000A7A0050003140302E8A069730A6A97E7F3F0B9EC02CD40506215442FCFE9A069730A6A97E7F3F0B9EC02CD40506215442FCFE9A069730A6A97E7F3F0B9EC02CD40506215442FCFE9A069730A6A97E7F3F0B9EC02CD40506215442FCFE9A069730A6A97E7F3F0B9EC02CD40506215442FCFE9A069730A6A97E7F3F0B9EC02CD40506215442FCFE9A069730A6A97E7, +358405202000, 1, 010010807141731480, 0 -SmsTx= 75000C914477746055840000A775050003140303E6E173D9059A81A0C42A885E9ED341D3E614D42ECFE7E173D9059A81A0C42A885E9ED341D3E614D42ECFE7E173D9059A81A0C42A885E9ED341D3E614D42ECFE7E173D9059A81A0C42A885E9ED341D3E614D42ECFE7E173D905A2A2CBA0A29BEC02, +358405202000, 2, 010010807141731480, 0 -SmsTx= 75000C914477746055840000A7A0050003150301662028B10AA297E774D0B43905B5CBF379F85C7681662028B10AA297E774D0B43905B5CBF379F85C7681662028B10AA297E774D0B43905B5CBF379F85C7681662028B10AA297E774D0B43905B5CBF379F85C7681662028B10AA297E774D0B43905B5CBF379F85C7681662028B10AA297E774D0B43905B5CBF379F85C7681662028B10AA297E7, +358405202000, 0, 010010807141731480, 0 -SmsTx= 75000C914477746055840000A7A0050003150302E8A069730A6A97E7F3F0B9EC02CD40506215442FCFE9A069730A6A97E7F3F0B9EC02CD40506215442FCFE9A069730A6A97E7F3F0B9EC02CD40506215442FCFE9A069730A6A97E7F3F0B9EC02CD40506215442FCFE9A069730A6A97E7F3F0B9EC02CD40506215442FCFE9A069730A6A97E7F3F0B9EC02CD40506215442FCFE9A069730A6A97E7, +358405202000, 1, 010010807141731480, 0 -SmsTx= 75000C914477746055840000A775050003150303E6E173D9059A81A0C42A885E9ED341D3E614D42ECFE7E173D9059A81A0C42A885E9ED341D3E614D42ECFE7E173D9059A81A0C42A885E9ED341D3E614D42ECFE7E173D9059A81A0C42A885E9ED341D3E614D42ECFE7E173D905A2A2CBA0A29BEC02, +358405202000, 2, 010010807141731480, 0 -SmsTxPause= 3 +#TestMultipleSimultaneousRequests +[test2] -SmsRx= 440C914477746055840008101112919081808C050003020201003300200050004400550020007400650073007400200053004D00530020006D006500730073006100670065002E0020003300200050004400550020007400650073007400200053004D00530020006D006500730073006100670065002E0020003300200050004400550020007400650073007400200053004D00530020006D006500730073, 358405202000 -SmsRx= 440C9144777460558400081011129190328080050003020202006100670065002E0020003300200050004400550020007400650073007400200053004D00530020006D006500730073006100670065002E0020003300200050004400550020007400650073007400200053004D00530020006D006500730073006100670065002E002000540068006500200045006E0064002E, 358405202000 -SmsRx= 440C914477746055840008101112919081808C050003020201003300200050004400550020007400650073007400200053004D00530020006D006500730073006100670065002E0020003300200050004400550020007400650073007400200053004D00530020006D006500730073006100670065002E0020003300200050004400550020007400650073007400200053004D00530020006D006500730073, 358405202000 -SmsRx= 440C9144777460558400081011129190328080050003020202006100670065002E0020003300200050004400550020007400650073007400200053004D00530020006D006500730073006100670065002E0020003300200050004400550020007400650073007400200053004D00530020006D006500730073006100670065002E002000540068006500200045006E0064002E, 358405202000 -SmsRx= 440C914477746055840008101112919081808C050003020201003300200050004400550020007400650073007400200053004D00530020006D006500730073006100670065002E0020003300200050004400550020007400650073007400200053004D00530020006D006500730073006100670065002E0020003300200050004400550020007400650073007400200053004D00530020006D006500730073, 358405202000 -SmsRx= 440C9144777460558400081011129190328080050003020202006100670065002E0020003300200050004400550020007400650073007400200053004D00530020006D006500730073006100670065002E0020003300200050004400550020007400650073007400200053004D00530020006D006500730073006100670065002E002000540068006500200045006E0064002E, 358405202000 -SmsRx= 440C914477746055840008101112919081808C050003020201003300200050004400550020007400650073007400200053004D00530020006D006500730073006100670065002E0020003300200050004400550020007400650073007400200053004D00530020006D006500730073006100670065002E0020003300200050004400550020007400650073007400200053004D00530020006D006500730073, 358405202000 -SmsRx= 440C9144777460558400081011129190328080050003020202006100670065002E0020003300200050004400550020007400650073007400200053004D00530020006D006500730073006100670065002E0020003300200050004400550020007400650073007400200053004D00530020006D006500730073006100670065002E002000540068006500200045006E0064002E, 358405202000 -SmsRx= 440C914477746055840008101112919081808C050003020201003300200050004400550020007400650073007400200053004D00530020006D006500730073006100670065002E0020003300200050004400550020007400650073007400200053004D00530020006D006500730073006100670065002E0020003300200050004400550020007400650073007400200053004D00530020006D006500730073, 358405202000 -SmsRx= 440C9144777460558400081011129190328080050003020202006100670065002E0020003300200050004400550020007400650073007400200053004D00530020006D006500730073006100670065002E0020003300200050004400550020007400650073007400200053004D00530020006D006500730073006100670065002E002000540068006500200045006E0064002E, 358405202000 -SmsRx= 440C914477746055840008101112919081808C050003020201003300200050004400550020007400650073007400200053004D00530020006D006500730073006100670065002E0020003300200050004400550020007400650073007400200053004D00530020006D006500730073006100670065002E0020003300200050004400550020007400650073007400200053004D00530020006D006500730073, 358405202000 -SmsRx= 440C9144777460558400081011129190328080050003020202006100670065002E0020003300200050004400550020007400650073007400200053004D00530020006D006500730073006100670065002E0020003300200050004400550020007400650073007400200053004D00530020006D006500730073006100670065002E002000540068006500200045006E0064002E, 358405202000 -SmsRx= 440C914477746055840008101112919081808C050003020201003300200050004400550020007400650073007400200053004D00530020006D006500730073006100670065002E0020003300200050004400550020007400650073007400200053004D00530020006D006500730073006100670065002E0020003300200050004400550020007400650073007400200053004D00530020006D006500730073, 358405202000 -SmsRx= 440C9144777460558400081011129190328080050003020202006100670065002E0020003300200050004400550020007400650073007400200053004D00530020006D006500730073006100670065002E0020003300200050004400550020007400650073007400200053004D00530020006D006500730073006100670065002E002000540068006500200045006E0064002E, 358405202000 -SmsRx= 440C914477746055840008101112919081808C050003020201003300200050004400550020007400650073007400200053004D00530020006D006500730073006100670065002E0020003300200050004400550020007400650073007400200053004D00530020006D006500730073006100670065002E0020003300200050004400550020007400650073007400200053004D00530020006D006500730073, 358405202000 -SmsRx= 440C9144777460558400081011129190328080050003020202006100670065002E0020003300200050004400550020007400650073007400200053004D00530020006D006500730073006100670065002E0020003300200050004400550020007400650073007400200053004D00530020006D006500730073006100670065002E002000540068006500200045006E0064002E, 358405202000 -SmsRx= 440C914477746055840008101112919081808C050003020201003300200050004400550020007400650073007400200053004D00530020006D006500730073006100670065002E0020003300200050004400550020007400650073007400200053004D00530020006D006500730073006100670065002E0020003300200050004400550020007400650073007400200053004D00530020006D006500730073, 358405202000 -SmsRx= 440C9144777460558400081011129190328080050003020202006100670065002E0020003300200050004400550020007400650073007400200053004D00530020006D006500730073006100670065002E0020003300200050004400550020007400650073007400200053004D00530020006D006500730073006100670065002E002000540068006500200045006E0064002E, 358405202000 -SmsRx= 440C914477746055840008101112919081808C050003020201003300200050004400550020007400650073007400200053004D00530020006D006500730073006100670065002E0020003300200050004400550020007400650073007400200053004D00530020006D006500730073006100670065002E0020003300200050004400550020007400650073007400200053004D00530020006D006500730073, 358405202000 -SmsRx= 440C9144777460558400081011129190328080050003020202006100670065002E0020003300200050004400550020007400650073007400200053004D00530020006D006500730073006100670065002E0020003300200050004400550020007400650073007400200053004D00530020006D006500730073006100670065002E002000540068006500200045006E0064002E, 358405202000 -SmsRx= 440C914477746055840008101112919081808C050003020201003300200050004400550020007400650073007400200053004D00530020006D006500730073006100670065002E0020003300200050004400550020007400650073007400200053004D00530020006D006500730073006100670065002E0020003300200050004400550020007400650073007400200053004D00530020006D006500730073, 358405202000 -SmsRx= 440C9144777460558400081011129190328080050003020202006100670065002E0020003300200050004400550020007400650073007400200053004D00530020006D006500730073006100670065002E0020003300200050004400550020007400650073007400200053004D00530020006D006500730073006100670065002E002000540068006500200045006E0064002E, 358405202000 -SmsRx= 440C914477746055840008101112919081808C050003020201003300200050004400550020007400650073007400200053004D00530020006D006500730073006100670065002E0020003300200050004400550020007400650073007400200053004D00530020006D006500730073006100670065002E0020003300200050004400550020007400650073007400200053004D00530020006D006500730073, 358405202000 -SmsRx= 440C9144777460558400081011129190328080050003020202006100670065002E0020003300200050004400550020007400650073007400200053004D00530020006D006500730073006100670065002E0020003300200050004400550020007400650073007400200053004D00530020006D006500730073006100670065002E002000540068006500200045006E0064002E, 358405202000 -SmsRx= 440C914477746055840008101112919081808C050003020201003300200050004400550020007400650073007400200053004D00530020006D006500730073006100670065002E0020003300200050004400550020007400650073007400200053004D00530020006D006500730073006100670065002E0020003300200050004400550020007400650073007400200053004D00530020006D006500730073, 358405202000 -SmsRx= 440C9144777460558400081011129190328080050003020202006100670065002E0020003300200050004400550020007400650073007400200053004D00530020006D006500730073006100670065002E0020003300200050004400550020007400650073007400200053004D00530020006D006500730073006100670065002E002000540068006500200045006E0064002E, 358405202000 -SmsRx= 440C914477746055840008101112919081808C050003020201003300200050004400550020007400650073007400200053004D00530020006D006500730073006100670065002E0020003300200050004400550020007400650073007400200053004D00530020006D006500730073006100670065002E0020003300200050004400550020007400650073007400200053004D00530020006D006500730073, 358405202000 -SmsRx= 440C9144777460558400081011129190328080050003020202006100670065002E0020003300200050004400550020007400650073007400200053004D00530020006D006500730073006100670065002E0020003300200050004400550020007400650073007400200053004D00530020006D006500730073006100670065002E002000540068006500200045006E0064002E, 358405202000 -SmsRx= 440C914477746055840008101112919081808C050003020201003300200050004400550020007400650073007400200053004D00530020006D006500730073006100670065002E0020003300200050004400550020007400650073007400200053004D00530020006D006500730073006100670065002E0020003300200050004400550020007400650073007400200053004D00530020006D006500730073, 358405202000 -SmsRx= 440C9144777460558400081011129190328080050003020202006100670065002E0020003300200050004400550020007400650073007400200053004D00530020006D006500730073006100670065002E0020003300200050004400550020007400650073007400200053004D00530020006D006500730073006100670065002E002000540068006500200045006E0064002E, 358405202000 -SmsRx= 440C914477746055840008101112919081808C050003020201003300200050004400550020007400650073007400200053004D00530020006D006500730073006100670065002E0020003300200050004400550020007400650073007400200053004D00530020006D006500730073006100670065002E0020003300200050004400550020007400650073007400200053004D00530020006D006500730073, 358405202000 -SmsRx= 440C9144777460558400081011129190328080050003020202006100670065002E0020003300200050004400550020007400650073007400200053004D00530020006D006500730073006100670065002E0020003300200050004400550020007400650073007400200053004D00530020006D006500730073006100670065002E002000540068006500200045006E0064002E, 358405202000 -SmsRx= 440C914477746055840008101112919081808C050003020201003300200050004400550020007400650073007400200053004D00530020006D006500730073006100670065002E0020003300200050004400550020007400650073007400200053004D00530020006D006500730073006100670065002E0020003300200050004400550020007400650073007400200053004D00530020006D006500730073, 358405202000 -SmsRx= 440C9144777460558400081011129190328080050003020202006100670065002E0020003300200050004400550020007400650073007400200053004D00530020006D006500730073006100670065002E0020003300200050004400550020007400650073007400200053004D00530020006D006500730073006100670065002E002000540068006500200045006E0064002E, 358405202000 -SmsRx= 440C914477746055840008101112919081808C050003020201003300200050004400550020007400650073007400200053004D00530020006D006500730073006100670065002E0020003300200050004400550020007400650073007400200053004D00530020006D006500730073006100670065002E0020003300200050004400550020007400650073007400200053004D00530020006D006500730073, 358405202000 -SmsRx= 440C9144777460558400081011129190328080050003020202006100670065002E0020003300200050004400550020007400650073007400200053004D00530020006D006500730073006100670065002E0020003300200050004400550020007400650073007400200053004D00530020006D006500730073006100670065002E002000540068006500200045006E0064002E, 358405202000 -SmsRx= 440C914477746055840008101112919081808C050003020201003300200050004400550020007400650073007400200053004D00530020006D006500730073006100670065002E0020003300200050004400550020007400650073007400200053004D00530020006D006500730073006100670065002E0020003300200050004400550020007400650073007400200053004D00530020006D006500730073, 358405202000 -SmsRx= 440C9144777460558400081011129190328080050003020202006100670065002E0020003300200050004400550020007400650073007400200053004D00530020006D006500730073006100670065002E0020003300200050004400550020007400650073007400200053004D00530020006D006500730073006100670065002E002000540068006500200045006E0064002E, 358405202000 -SmsRx= 440C914477746055840008101112919081808C050003020201003300200050004400550020007400650073007400200053004D00530020006D006500730073006100670065002E0020003300200050004400550020007400650073007400200053004D00530020006D006500730073006100670065002E0020003300200050004400550020007400650073007400200053004D00530020006D006500730073, 358405202000 -SmsRx= 440C9144777460558400081011129190328080050003020202006100670065002E0020003300200050004400550020007400650073007400200053004D00530020006D006500730073006100670065002E0020003300200050004400550020007400650073007400200053004D00530020006D006500730073006100670065002E002000540068006500200045006E0064002E, 358405202000 -SmsRx= 440C914477746055840008101112919081808C050003020201003300200050004400550020007400650073007400200053004D00530020006D006500730073006100670065002E0020003300200050004400550020007400650073007400200053004D00530020006D006500730073006100670065002E0020003300200050004400550020007400650073007400200053004D00530020006D006500730073, 358405202000 -SmsRx= 440C9144777460558400081011129190328080050003020202006100670065002E0020003300200050004400550020007400650073007400200053004D00530020006D006500730073006100670065002E0020003300200050004400550020007400650073007400200053004D00530020006D006500730073006100670065002E002000540068006500200045006E0064002E, 358405202000 -SmsRx= 440C914477746055840008101112919081808C050003020201003300200050004400550020007400650073007400200053004D00530020006D006500730073006100670065002E0020003300200050004400550020007400650073007400200053004D00530020006D006500730073006100670065002E0020003300200050004400550020007400650073007400200053004D00530020006D006500730073, 358405202000 -SmsRx= 440C9144777460558400081011129190328080050003020202006100670065002E0020003300200050004400550020007400650073007400200053004D00530020006D006500730073006100670065002E0020003300200050004400550020007400650073007400200053004D00530020006D006500730073006100670065002E002000540068006500200045006E0064002E, 358405202000 -SmsRxPeriod= 4 +#TestSmsPrtBackup and TestSmsPrtBackupWhenPhoneIsOff +[test3] -SmsStore= S14, 20 - -SmsParamMaxNumSlots= 1 -SmspBatchReqPause= 4 -SmsParamEntry= 1, SMSP_SET1, 00, 00, 24, 35850123456789, 358405202000 - -SmsStoreIndividualReqPause= 2 -SmsStoreBatchReqPause= 1 - -[test2] -msControlCaps= 452 -#SmsControlCaps= caps in DECIMAL -SmsPhoneStoreCaps= 0xFC000000 -#SmsPhoneStoreCaps= TMobilePhoneCaps in the smsStore in hexadecimal - -SmsAckNackPause= 1 -SmsResumePause= 1 - -SmsTx= 00, +358405202000, 0, 010010807141731480, 0 diff -r 962e6306d9d2 -r 7ef16719d8cb smsprotocols/smsstack/smsu/inc/smsuaddr.H --- a/smsprotocols/smsstack/smsu/inc/smsuaddr.H Fri Feb 19 23:59:33 2010 +0200 +++ b/smsprotocols/smsstack/smsu/inc/smsuaddr.H Fri Mar 12 15:49:38 2010 +0200 @@ -207,11 +207,9 @@ }; -//ahe TODO -//typedef TBuf TSmsServiceCenterAddress; - +const TInt KMaxServiceCenterAddressLength = 14; /** Buffer to hold Service Center address. */ -typedef TBuf<14> TSmsServiceCenterAddress; +typedef TBuf TSmsServiceCenterAddress; /** Package buffer for TSmsServiceCenterAddress objects. */ typedef TPckgBuf TSmsServiceCenterAddressBuf; diff -r 962e6306d9d2 -r 7ef16719d8cb smsprotocols/smsstack/smsu/src/smsustrm.cpp --- a/smsprotocols/smsstack/smsu/src/smsustrm.cpp Fri Feb 19 23:59:33 2010 +0200 +++ b/smsprotocols/smsstack/smsu/src/smsustrm.cpp Fri Mar 12 15:49:38 2010 +0200 @@ -59,7 +59,7 @@ TPtr8 ptr(iBuffer,sizeof(iBuffer)); // iSocket.RecvOneOrMore(ptr,0,s,l); iSocket.Recv(ptr,0,s,l); - User::WaitForRequest(s); // TODO check this + User::WaitForRequest(s); User::LeaveIfError(s.Int()); TInt len=ptr.Length(); SetBuf(ERead,iBuffer,iBuffer+len); @@ -110,7 +110,7 @@ // TRequestStatus s; iSocket.Write(TPtrC8(iBuffer,length),s); - User::WaitForRequest(s); // TODO check this + User::WaitForRequest(s); User::LeaveIfError(s.Int()); } // RSmsSocketBuf::SocketWriteL diff -r 962e6306d9d2 -r 7ef16719d8cb smsprotocols/smsstack/test/TE_R6SMS/TE_testR6SMS.cpp --- a/smsprotocols/smsstack/test/TE_R6SMS/TE_testR6SMS.cpp Fri Feb 19 23:59:33 2010 +0200 +++ b/smsprotocols/smsstack/test/TE_R6SMS/TE_testR6SMS.cpp Fri Mar 12 15:49:38 2010 +0200 @@ -16,19 +16,16 @@ // // -#include "TE_R6SMSbase.h" #include "TE_testR6SMS.h" +#include "TE_R6SMSbase.h" #include "Gsmumsg.h" #include "gsmumsgadditionalattributes.h" #include "Gsmuelem.h" #include "gsmuset.h" - #include "EMSInformationElement.h" #include "EMSFormatIE.h" - - TVerdict CTestCSmsMessageAdditionalAttributes1::doTestStepL() { /** diff -r 962e6306d9d2 -r 7ef16719d8cb smsprotocols/smsstack/test/TE_R6SMS/TE_testR6SMS.h --- a/smsprotocols/smsstack/test/TE_R6SMS/TE_testR6SMS.h Fri Feb 19 23:59:33 2010 +0200 +++ b/smsprotocols/smsstack/test/TE_R6SMS/TE_testR6SMS.h Fri Mar 12 15:49:38 2010 +0200 @@ -15,10 +15,10 @@ // // +#ifndef TE_TESTR6SMS_H +#define TE_TESTR6SMS_H -#ifndef _TE_TESTR6SMS_H_ -#define _TE_TESTR6SMS_H_ - +#include class CTestCSmsMessageAdditionalAttributes1 : public CTestStep { @@ -26,47 +26,40 @@ virtual TVerdict doTestStepL(); }; - class CTestCSmsMessageAdditionalAttributes2 : public CTestStep { public: virtual TVerdict doTestStepL(); }; - class CTestCSmsMessageAdditionalAttributes3 : public CTestStep { public: virtual TVerdict doTestStepL(); }; - class CTestR6CSmsMessage : public CTestStep { public: virtual TVerdict doTestStepL(); }; - class CTestAddingIEsViaNewAndExistingInterfaces : public CTestStep { public: virtual TVerdict doTestStepL(); }; - class CTestIECategoryDefinitions : public CTestStep { public: virtual TVerdict doTestStepL(); }; - class CTestR6DCS : public CTestStep { public: virtual TVerdict doTestStepL(); }; - #endif diff -r 962e6306d9d2 -r 7ef16719d8cb smsprotocols/smsstack/test/bld.inf --- a/smsprotocols/smsstack/test/bld.inf Fri Feb 19 23:59:33 2010 +0200 +++ b/smsprotocols/smsstack/test/bld.inf Fri Mar 12 15:49:38 2010 +0200 @@ -49,6 +49,11 @@ //Class0 Store Regresssion Test Suite ./Te_Class0StoreRegressionSuite.script z:/testdata/scripts/te_class0storeregressionsuite.script +./smsstackcleanprivatedata.script z:/testdata/scripts/smsstackcleanprivatedata.script +./smsstackbackupeskfile.script z:/testdata/scripts/smsstackbackupeskfile.script +./smsstackrestoreeskfile.script z:/testdata/scripts/smsstackrestoreeskfile.script + +./smsstacksimtsytestnumbers.ini z:/testdata/configs/smsstacksimtsytestnumbers.ini PRJ_MMPFILES diff -r 962e6306d9d2 -r 7ef16719d8cb smsprotocols/smsstack/test/bwins/SMSSTACKTESTUTILITIESU.DEF --- a/smsprotocols/smsstack/test/bwins/SMSSTACKTESTUTILITIESU.DEF Fri Feb 19 23:59:33 2010 +0200 +++ b/smsprotocols/smsstack/test/bwins/SMSSTACKTESTUTILITIESU.DEF Fri Mar 12 15:49:38 2010 +0200 @@ -1,207 +1,280 @@ EXPORTS - ??0CTestGetSmsList@@IAE@HAAVRSocketServ@@AAVCSmsStackTestUtils@@@Z @ 1 NONAME ; CTestGetSmsList::CTestGetSmsList(int, class RSocketServ &, class CSmsStackTestUtils &) - ??0CTestReceiveEnumerateMessages@@IAE@HAAVRSocketServ@@AAVCSmsStackTestUtils@@@Z @ 2 NONAME ; CTestReceiveEnumerateMessages::CTestReceiveEnumerateMessages(int, class RSocketServ &, class CSmsStackTestUtils &) - ??0CTestReceiveMessages@@IAE@HAAVRSocketServ@@AAVCSmsStackTestUtils@@@Z @ 3 NONAME ; CTestReceiveMessages::CTestReceiveMessages(int, class RSocketServ &, class CSmsStackTestUtils &) - ??1CEmsAnimationIE@@UAE@XZ @ 4 NONAME ; CEmsAnimationIE::~CEmsAnimationIE(void) - ??1CEmsPictureIE@@UAE@XZ @ 5 NONAME ; CEmsPictureIE::~CEmsPictureIE(void) - ??1CEmsSoundIE@@UAE@XZ @ 6 NONAME ; CEmsSoundIE::~CEmsSoundIE(void) - ??1CEnhancedVoiceMailDeleteConfirmations@@UAE@XZ @ 7 NONAME ; CEnhancedVoiceMailDeleteConfirmations::~CEnhancedVoiceMailDeleteConfirmations(void) - ??1CEnhancedVoiceMailNotification@@UAE@XZ @ 8 NONAME ; CEnhancedVoiceMailNotification::~CEnhancedVoiceMailNotification(void) - ??1CSmsAlphabetConverter@@UAE@XZ @ 9 NONAME ; CSmsAlphabetConverter::~CSmsAlphabetConverter(void) - ??1CSmsPduDatabase@@UAE@XZ @ 10 NONAME ; CSmsPduDatabase::~CSmsPduDatabase(void) - ??1CSmsPduDbBase@@UAE@XZ @ 11 NONAME ; CSmsPduDbBase::~CSmsPduDbBase(void) - ??1CSmsPduDbConcat@@UAE@XZ @ 12 NONAME ; CSmsPduDbConcat::~CSmsPduDbConcat(void) - ??1CSmsStackTestUtils@@UAE@XZ @ 13 NONAME ; CSmsStackTestUtils::~CSmsStackTestUtils(void) - ??1CTestReceiveEnumerateMessages@@UAE@XZ @ 14 NONAME ; CTestReceiveEnumerateMessages::~CTestReceiveEnumerateMessages(void) - ??1CVoiceMailDeletion@@UAE@XZ @ 15 NONAME ; CVoiceMailDeletion::~CVoiceMailDeletion(void) - ??1CVoiceMailNotification@@UAE@XZ @ 16 NONAME ; CVoiceMailNotification::~CVoiceMailNotification(void) - ?AccessAddress@CEnhancedVoiceMailBoxInformation@@QBE?AVTPtrC16@@XZ @ 17 NONAME ; class TPtrC16 CEnhancedVoiceMailBoxInformation::AccessAddress(void) const - ?AddInformationElementL@CSmsUserData@@QAEXW4TSmsInformationElementIdentifier@CSmsInformationElement@@ABVTDesC8@@@Z @ 18 NONAME ; void CSmsUserData::AddInformationElementL(enum CSmsInformationElement::TSmsInformationElementIdentifier, class TDesC8 const &) - ?AddLogEventL@CSmsStackTestUtils@@QAEJAAVCSmsMessage@@AAVTLogSmsPduData@@@Z @ 19 NONAME ; long CSmsStackTestUtils::AddLogEventL(class CSmsMessage &, class TLogSmsPduData &) - ?AddSmsRxL@CSmsStackTestUtils@@QBEXAAVCTestConfig@@HAAVCSmsMessage@@ABVTDesC16@@@Z @ 20 NONAME ; void CSmsStackTestUtils::AddSmsRxL(class CTestConfig &, int, class CSmsMessage &, class TDesC16 const &) const - ?AddSmsTxL@CSmsStackTestUtils@@QBEXAAVCTestConfig@@HAAVCSmsMessage@@ABVTDesC16@@HPAV3@H@Z @ 21 NONAME ; void CSmsStackTestUtils::AddSmsTxL(class CTestConfig &, int, class CSmsMessage &, class TDesC16 const &, int, class CSmsMessage *, int) const - ?Alignment@CEmsFormatIE@@QBE?AW4TAlignment@1@XZ @ 22 NONAME ; enum CEmsFormatIE::TAlignment CEmsFormatIE::Alignment(void) const - ?AlmostMaximumCapacity@CEnhancedVoiceMailBoxInformation@@QBEHXZ @ 23 NONAME ; int CEnhancedVoiceMailBoxInformation::AlmostMaximumCapacity(void) const - ?Animation@CEmsPreDefAnimationIE@@QBE?AW4TAnimType@1@XZ @ 24 NONAME ; enum CEmsPreDefAnimationIE::TAnimType CEmsPreDefAnimationIE::Animation(void) const - ?AppendUserDataL@CSmsStackTestUtils@@QAEXAAVTGsmSms@@ABVCSmsUserData@@H@Z @ 25 NONAME ; void CSmsStackTestUtils::AppendUserDataL(class TGsmSms &, class CSmsUserData const &, int) - ?Body@CSmsUserData@@QBE?AVTPtrC8@@XZ @ 26 NONAME ; class TPtrC8 CSmsUserData::Body(void) const - ?Bold@CEmsFormatIE@@QBEHXZ @ 27 NONAME ; int CEmsFormatIE::Bold(void) const - ?CallingLineIdentity@CVoiceMailNotification@@QBE?AVTPtrC16@@XZ @ 28 NONAME ; class TPtrC16 CVoiceMailNotification::CallingLineIdentity(void) const - ?ChangeBearerL@CSmsStackTestUtils@@QAEXW4TMobileSmsBearer@RMobileSmsMessaging@@@Z @ 29 NONAME ; void CSmsStackTestUtils::ChangeBearerL(enum RMobileSmsMessaging::TMobileSmsBearer) - ?CompareDCSL@CSmsStackTestUtils@@QAEXABVCSmsPDU@@VTSmsDataCodingScheme@@@Z @ 30 NONAME ; void CSmsStackTestUtils::CompareDCSL(class CSmsPDU const &, class TSmsDataCodingScheme) - ?CompareEmsIE@EmsTestUtils@@YAHABVCEmsInformationElement@@0@Z @ 31 NONAME ; int EmsTestUtils::CompareEmsIE(class CEmsInformationElement const &, class CEmsInformationElement const &) - ?CompareEmsMsgL@EmsTestUtils@@YAHABVCSmsMessage@@0@Z @ 32 NONAME ; int EmsTestUtils::CompareEmsMsgL(class CSmsMessage const &, class CSmsMessage const &) - ?ComparePIDL@CSmsStackTestUtils@@QAEXABVCSmsPDU@@VTSmsProtocolIdentifier@@@Z @ 33 NONAME ; void CSmsStackTestUtils::ComparePIDL(class CSmsPDU const &, class TSmsProtocolIdentifier) - ?CompareUDL@CSmsStackTestUtils@@QAEXABVCSmsPDU@@ABVCSmsUserData@@@Z @ 34 NONAME ; void CSmsStackTestUtils::CompareUDL(class CSmsPDU const &, class CSmsUserData const &) - ?ConvertFromNativeL@CSmsAlphabetConverter@@QAE?AVTPtrC8@@ABVTDesC16@@@Z @ 35 NONAME ; class TPtrC8 CSmsAlphabetConverter::ConvertFromNativeL(class TDesC16 const &) - ?ConvertToETelMM@TGsmSmsTypeOfAddress@@QBEXAAW4TMobileTON@NMobilePhone@@AAW4TMobileNPI@3@@Z @ 36 NONAME ; void TGsmSmsTypeOfAddress::ConvertToETelMM(enum NMobilePhone::TMobileTON &, enum NMobilePhone::TMobileNPI &) const - ?ConvertToHexLC@CSmsStackTestUtils@@QBEPAVHBufC8@@ABVTDesC8@@@Z @ 37 NONAME ; class HBufC8 * CSmsStackTestUtils::ConvertToHexLC(class TDesC8 const &) const - ?ConvertToNativeL@CSmsAlphabetConverter@@QAE?AVTPtrC16@@ABVTDesC8@@@Z @ 38 NONAME ; class TPtrC16 CSmsAlphabetConverter::ConvertToNativeL(class TDesC8 const &) - ?CopyConfigFileL@CSmsStackTestUtils@@QAEXABVTDesC16@@PAVCSmsPduDatabase@@@Z @ 39 NONAME ; void CSmsStackTestUtils::CopyConfigFileL(class TDesC16 const &, class CSmsPduDatabase *) - ?CopyL@CEmsAnimationIE@@QAEXABV1@@Z @ 40 NONAME ; void CEmsAnimationIE::CopyL(class CEmsAnimationIE const &) - ?CopyL@CEmsFormatIE@@QAEXABV1@@Z @ 41 NONAME ; void CEmsFormatIE::CopyL(class CEmsFormatIE const &) - ?CopyL@CEmsObjectDistribution@@QAEXABV1@@Z @ 42 NONAME ; void CEmsObjectDistribution::CopyL(class CEmsObjectDistribution const &) - ?CopyL@CEmsPictureIE@@QAEXABV1@@Z @ 43 NONAME ; void CEmsPictureIE::CopyL(class CEmsPictureIE const &) - ?CopyL@CEmsPreDefAnimationIE@@QAEXABV1@@Z @ 44 NONAME ; void CEmsPreDefAnimationIE::CopyL(class CEmsPreDefAnimationIE const &) - ?CopyL@CEmsPreDefSoundIE@@QAEXABV1@@Z @ 45 NONAME ; void CEmsPreDefSoundIE::CopyL(class CEmsPreDefSoundIE const &) - ?CopyL@CEmsSoundIE@@QAEXABV1@@Z @ 46 NONAME ; void CEmsSoundIE::CopyL(class CEmsSoundIE const &) - ?CopyL@CEmsUserPrompt@@QAEXABV1@@Z @ 47 NONAME ; void CEmsUserPrompt::CopyL(class CEmsUserPrompt const &) - ?CreateAnimationL@EmsTestUtils@@YAPAVCEmsAnimationIE@@H@Z @ 48 NONAME ; class CEmsAnimationIE * EmsTestUtils::CreateAnimationL(int) - ?CreatePictureL@EmsTestUtils@@YAPAVCEmsPictureIE@@H@Z @ 49 NONAME ; class CEmsPictureIE * EmsTestUtils::CreatePictureL(int) - ?CreateSmsMessageLC@CSmsStackTestUtils@@QAEPAVCSmsMessage@@W4TSmsPDUType@CSmsPDU@@ABVTDesC16@@1@Z @ 50 NONAME ; class CSmsMessage * CSmsStackTestUtils::CreateSmsMessageLC(enum CSmsPDU::TSmsPDUType, class TDesC16 const &, class TDesC16 const &) - ?CreateTSmsServiceCenterTimeStampL@CSmsStackTestUtils@@QAEXXZ @ 51 NONAME ; void CSmsStackTestUtils::CreateTSmsServiceCenterTimeStampL(void) - ?CreateTSmsValidityPeriodL@CSmsStackTestUtils@@QAEXXZ @ 52 NONAME ; void CSmsStackTestUtils::CreateTSmsValidityPeriodL(void) - ?Data@CSmsInformationElement@@QAE?AVTPtr8@@XZ @ 53 NONAME ; class TPtr8 CSmsInformationElement::Data(void) - ?Data@CSmsInformationElement@@QBEABVTDesC8@@XZ @ 54 NONAME ; class TDesC8 const & CSmsInformationElement::Data(void) const - ?DecodeL@CSmsPduDbConcat@@QAEXAAVRFs@@@Z @ 55 NONAME ; void CSmsPduDbConcat::DecodeL(class RFs &) - ?DecodeTSmsServiceCenterTimeStampL@CSmsStackTestUtils@@QAEXXZ @ 56 NONAME ; void CSmsStackTestUtils::DecodeTSmsServiceCenterTimeStampL(void) - ?DecodeTSmsValidityPeriodL@CSmsStackTestUtils@@QAEXXZ @ 57 NONAME ; void CSmsStackTestUtils::DecodeTSmsValidityPeriodL(void) - ?DeliverWithoutUserDataL@CSmsStackTestUtils@@QAEXAAVTGsmSms@@VTSmsFirstOctet@@ABVTGsmSmsTelNumber@@VTSmsProtocolIdentifier@@VTSmsDataCodingScheme@@ABVTTime@@H@Z @ 58 NONAME ; void CSmsStackTestUtils::DeliverWithoutUserDataL(class TGsmSms &, class TSmsFirstOctet, class TGsmSmsTelNumber const &, class TSmsProtocolIdentifier, class TSmsDataCodingScheme, class TTime const &, int) - ?DuplicateL@CEmsAnimationIE@@UBEPAVCEmsInformationElement@@XZ @ 59 NONAME ; class CEmsInformationElement * CEmsAnimationIE::DuplicateL(void) const - ?DuplicateL@CEmsFormatIE@@UBEPAVCEmsInformationElement@@XZ @ 60 NONAME ; class CEmsInformationElement * CEmsFormatIE::DuplicateL(void) const - ?DuplicateL@CEmsObjectDistribution@@UBEPAVCEmsInformationElement@@XZ @ 61 NONAME ; class CEmsInformationElement * CEmsObjectDistribution::DuplicateL(void) const - ?DuplicateL@CEmsPictureIE@@UBEPAVCEmsInformationElement@@XZ @ 62 NONAME ; class CEmsInformationElement * CEmsPictureIE::DuplicateL(void) const - ?DuplicateL@CEmsPreDefAnimationIE@@UBEPAVCEmsInformationElement@@XZ @ 63 NONAME ; class CEmsInformationElement * CEmsPreDefAnimationIE::DuplicateL(void) const - ?DuplicateL@CEmsPreDefSoundIE@@UBEPAVCEmsInformationElement@@XZ @ 64 NONAME ; class CEmsInformationElement * CEmsPreDefSoundIE::DuplicateL(void) const - ?DuplicateL@CEmsSoundIE@@UBEPAVCEmsInformationElement@@XZ @ 65 NONAME ; class CEmsInformationElement * CEmsSoundIE::DuplicateL(void) const - ?DuplicateL@CEmsUserPrompt@@UBEPAVCEmsInformationElement@@XZ @ 66 NONAME ; class CEmsInformationElement * CEmsUserPrompt::DuplicateL(void) const - ?EncodeInformationElementL@CEmsInformationElement@@QAEXXZ @ 67 NONAME ; void CEmsInformationElement::EncodeInformationElementL(void) - ?EncodeTSmsServiceCenterTimeStampL@CSmsStackTestUtils@@QAEXXZ @ 68 NONAME ; void CSmsStackTestUtils::EncodeTSmsServiceCenterTimeStampL(void) - ?EncodeTSmsValidityPeriodL@CSmsStackTestUtils@@QAEXXZ @ 69 NONAME ; void CSmsStackTestUtils::EncodeTSmsValidityPeriodL(void) - ?ExtensionIndicator@CEnhancedVoiceMailBoxInformation@@QBEHXZ @ 70 NONAME ; int CEnhancedVoiceMailBoxInformation::ExtensionIndicator(void) const - ?FindElementL@EmsTestUtils@@YAPBVCEmsInformationElement@@ABVCSmsMessage@@W4TSmsInformationElementIdentifier@CSmsInformationElement@@@Z @ 71 NONAME ; class CEmsInformationElement const * EmsTestUtils::FindElementL(class CSmsMessage const &, enum CSmsInformationElement::TSmsInformationElementIdentifier) - ?FirstDeliverOctet@CSmsStackTestUtils@@QAE?AVTSmsFirstOctet@@HHHH@Z @ 72 NONAME ; class TSmsFirstOctet CSmsStackTestUtils::FirstDeliverOctet(int, int, int, int) - ?FontSize@CEmsFormatIE@@QBE?AW4TFontSize@1@XZ @ 73 NONAME ; enum CEmsFormatIE::TFontSize CEmsFormatIE::FontSize(void) const - ?FormatLength@CEmsFormatIE@@QBEIXZ @ 74 NONAME ; unsigned int CEmsFormatIE::FormatLength(void) const - ?Forwarding@CEmsObjectDistribution@@QBE?AW4TAttrs@1@XZ @ 75 NONAME ; enum CEmsObjectDistribution::TAttrs CEmsObjectDistribution::Forwarding(void) const - ?GetBearerL@CSmsStackTestUtils@@QAEXAAW4TMobileSmsBearer@RMobileSmsMessaging@@@Z @ 76 NONAME ; void CSmsStackTestUtils::GetBearerL(enum RMobileSmsMessaging::TMobileSmsBearer &) - ?GetBitmapL@CEmsAnimationIE@@QBEPAVCFbsBitmap@@XZ @ 77 NONAME ; class CFbsBitmap * CEmsAnimationIE::GetBitmapL(void) const - ?GetBitmapL@CEmsPictureIE@@QBEPAVCFbsBitmap@@XZ @ 78 NONAME ; class CFbsBitmap * CEmsPictureIE::GetBitmapL(void) const - ?GetConcatL@CSmsPduDatabase@@QBEXAAV?$RPointerArray@VCSmsPduDbConcat@@@@W4TSmsPDUType@CSmsPDU@@@Z @ 79 NONAME ; void CSmsPduDatabase::GetConcatL(class RPointerArray &, enum CSmsPDU::TSmsPDUType) const - ?GetConcatLC@CSmsPduDatabase@@QBEPAVCSmsPduDbConcat@@W4TSmsPDUType@CSmsPDU@@H@Z @ 80 NONAME ; class CSmsPduDbConcat * CSmsPduDatabase::GetConcatLC(enum CSmsPDU::TSmsPDUType, int) const - ?GetConcatSegmentLC@CSmsPduDatabase@@QBEPAVCSmsPduDbConcatSegment@@W4TSmsPDUType@CSmsPDU@@HH@Z @ 81 NONAME ; class CSmsPduDbConcatSegment * CSmsPduDatabase::GetConcatSegmentLC(enum CSmsPDU::TSmsPDUType, int, int) const - ?GetHexPdu@CSmsPduDbPdu@@QBEXAAVTDes8@@@Z @ 82 NONAME ; void CSmsPduDbPdu::GetHexPdu(class TDes8 &) const - ?GetLogEventL@CSmsStackTestUtils@@QAEXAAVCLogEvent@@H@Z @ 83 NONAME ; void CSmsStackTestUtils::GetLogEventL(class CLogEvent &, int) - ?GetMessageL@CSmsPduDatabase@@QBEXAAV?$RPointerArray@VCSmsPduDbMessage@@@@W4TSmsPDUType@CSmsPDU@@@Z @ 84 NONAME ; void CSmsPduDatabase::GetMessageL(class RPointerArray &, enum CSmsPDU::TSmsPDUType) const - ?GetMessageLC@CSmsPduDatabase@@QBEPAVCSmsPduDbMessage@@W4TSmsPDUType@CSmsPDU@@H@Z @ 85 NONAME ; class CSmsPduDbMessage * CSmsPduDatabase::GetMessageLC(enum CSmsPDU::TSmsPDUType, int) const - ?GetPduL@CSmsPduDatabase@@QBEXAAV?$RPointerArray@VCSmsPduDbPdu@@@@W4TSmsPDUType@CSmsPDU@@@Z @ 86 NONAME ; void CSmsPduDatabase::GetPduL(class RPointerArray &, enum CSmsPDU::TSmsPDUType) const - ?GetPduLC@CSmsPduDatabase@@QBEPAVCSmsPduDbPdu@@W4TSmsPDUType@CSmsPDU@@H@Z @ 87 NONAME ; class CSmsPduDbPdu * CSmsPduDatabase::GetPduLC(enum CSmsPDU::TSmsPDUType, int) const - ?GetSectionL@CSmsStackTestUtils@@QBEAAVCTestConfigSection@@AAVCTestConfig@@H@Z @ 88 NONAME ; class CTestConfigSection & CSmsStackTestUtils::GetSectionL(class CTestConfig &, int) const - ?GetSmsList@CTestGetSmsList@@QAEXAAVTRequestStatus@@@Z @ 89 NONAME ; void CTestGetSmsList::GetSmsList(class TRequestStatus &) - ?GetVoiceMailDeletions@CEnhancedVoiceMailDeleteConfirmations@@QAEAAV?$RPointerArray@VCVoiceMailDeletion@@@@XZ @ 90 NONAME ; class RPointerArray & CEnhancedVoiceMailDeleteConfirmations::GetVoiceMailDeletions(void) - ?GetVoiceMailNotifications@CEnhancedVoiceMailNotification@@QAEAAV?$RPointerArray@VCVoiceMailNotification@@@@XZ @ 91 NONAME ; class RPointerArray & CEnhancedVoiceMailNotification::GetVoiceMailNotifications(void) - ?Identifier@CSmsInformationElement@@QBE?AW4TSmsInformationElementIdentifier@1@XZ @ 92 NONAME ; enum CSmsInformationElement::TSmsInformationElementIdentifier CSmsInformationElement::Identifier(void) const - ?InformationElement@CSmsUserData@@QBEAAVCSmsInformationElement@@H@Z @ 93 NONAME ; class CSmsInformationElement & CSmsUserData::InformationElement(int) const - ?InformationElementIndex@CSmsUserData@@QBEHW4TSmsInformationElementIdentifier@CSmsInformationElement@@AAH@Z @ 94 NONAME ; int CSmsUserData::InformationElementIndex(enum CSmsInformationElement::TSmsInformationElementIdentifier, int &) const - ?IsInstanceOf@TGsmSmsTelNumber@@QAEHW4TTypeOfIndicator@1@@Z @ 95 NONAME ; int TGsmSmsTelNumber::IsInstanceOf(enum TGsmSmsTelNumber::TTypeOfIndicator) - ?IsSupportedL@CSmsUserData@@QAEHVTChar@@@Z @ 96 NONAME ; int CSmsUserData::IsSupportedL(class TChar) - ?Italic@CEmsFormatIE@@QBEHXZ @ 97 NONAME ; int CEmsFormatIE::Italic(void) const + ?SendSmsCancelL@CSmsBaseTestStep@@QAEXPAVCSmsMessage@@AAVRSocket@@1@Z @ 1 NONAME ; void CSmsBaseTestStep::SendSmsCancelL(class CSmsMessage *, class RSocket &, class RSocket &) + ?DuplicateL@CEmsObjectDistribution@@UBEPAVCEmsInformationElement@@XZ @ 2 NONAME ; class CEmsInformationElement * CEmsObjectDistribution::DuplicateL(void) const + ?GetStringFromConfigL@CSmsBaseTestStep@@QAE?AVTPtrC16@@ABVTDesC16@@@Z @ 3 NONAME ; class TPtrC16 CSmsBaseTestStep::GetStringFromConfigL(class TDesC16 const &) + ?NewL@CEmsObjectDistribution@@SAPAV1@IW4TAttrs@1@@Z @ 4 NONAME ; class CEmsObjectDistribution * CEmsObjectDistribution::NewL(unsigned int, enum CEmsObjectDistribution::TAttrs) + ?AccessAddress@CEnhancedVoiceMailBoxInformation@@QBE?AVTPtrC16@@XZ @ 5 NONAME ; class TPtrC16 CEnhancedVoiceMailBoxInformation::AccessAddress(void) const + ?CreateSmsMessageLC@CSmsBaseTestStep@@QAEPAVCSmsMessage@@ABVTDesC16@@W4TSmsAlphabet@TSmsDataCodingScheme@@W4TSmsPDUType@CSmsPDU@@@Z @ 6 NONAME ; class CSmsMessage * CSmsBaseTestStep::CreateSmsMessageLC(class TDesC16 const &, enum TSmsDataCodingScheme::TSmsAlphabet, enum CSmsPDU::TSmsPDUType) + ?CreateSmsMessageLC@CSmsBaseTestStep@@QAEPAVCSmsMessage@@W4TSmsPDUType@CSmsPDU@@PAVCSmsBuffer@@ABVTDesC16@@@Z @ 7 NONAME ; class CSmsMessage * CSmsBaseTestStep::CreateSmsMessageLC(enum CSmsPDU::TSmsPDUType, class CSmsBuffer *, class TDesC16 const &) + ?SetObjectCount@CEmsUserPrompt@@QAEXI@Z @ 8 NONAME ; void CEmsUserPrompt::SetObjectCount(unsigned int) + ?SendSmsErrorL@CSmsBaseTestStep@@QAEHPAVCSmsMessage@@AAVRSocket@@@Z @ 9 NONAME ; int CSmsBaseTestStep::SendSmsErrorL(class CSmsMessage *, class RSocket &) + ?DeleteSmsLeaveIfErrorL@CSmsBaseTestStep@@QAEXABVCSmsMessage@@AAVRSocket@@@Z @ 10 NONAME ; void CSmsBaseTestStep::DeleteSmsLeaveIfErrorL(class CSmsMessage const &, class RSocket &) + ?AddLogEventL@CSmsStackTestUtils@@QAEJAAVCSmsMessage@@AAVTLogSmsPduData@@@Z @ 11 NONAME ; long CSmsStackTestUtils::AddLogEventL(class CSmsMessage &, class TLogSmsPduData &) + ?FormatLength@CEmsFormatIE@@QBEIXZ @ 12 NONAME ; unsigned int CEmsFormatIE::FormatLength(void) const + ?FindElementL@EmsTestUtils@@YAPBVCEmsInformationElement@@ABVCSmsMessage@@W4TSmsInformationElementIdentifier@CSmsInformationElement@@@Z @ 13 NONAME ; class CEmsInformationElement const * EmsTestUtils::FindElementL(class CSmsMessage const &, enum CSmsInformationElement::TSmsInformationElementIdentifier) + ?Melody@CEmsSoundIE@@QBEPBVHBufC8@@XZ @ 14 NONAME ; class HBufC8 const * CEmsSoundIE::Melody(void) const + ?Bold@CEmsFormatIE@@QBEHXZ @ 15 NONAME ; int CEmsFormatIE::Bold(void) const + ?Receive@CTestReceiveMessages@@QAEXAAVTRequestStatus@@H@Z @ 16 NONAME ; void CTestReceiveMessages::Receive(class TRequestStatus &, int) + ?doTestStepPreambleL@CSmsBaseTestStep@@UAE?AW4TVerdict@@XZ @ 17 NONAME ; enum TVerdict CSmsBaseTestStep::doTestStepPreambleL(void) + ?ObjectCount@CEmsUserPrompt@@QBEIXZ @ 18 NONAME ; unsigned int CEmsUserPrompt::ObjectCount(void) const + ?SendTestMessageL@CSmsBaseTestStep@@QAEXABVTTestCase@@AAVRSocket@@@Z @ 19 NONAME ; void CSmsBaseTestStep::SendTestMessageL(class TTestCase const &, class RSocket &) + ?WaitForRecvL@CSmsBaseTestStep@@QAEXAAVRSocket@@@Z @ 20 NONAME ; void CSmsBaseTestStep::WaitForRecvL(class RSocket &) + ?ConvertToHexLC@CSmsStackTestUtils@@QBEPAVHBufC8@@ABVTDesC8@@@Z @ 21 NONAME ; class HBufC8 * CSmsStackTestUtils::ConvertToHexLC(class TDesC8 const &) const + ?CopyL@CEmsPreDefSoundIE@@QAEXABV1@@Z @ 22 NONAME ; void CEmsPreDefSoundIE::CopyL(class CEmsPreDefSoundIE const &) + ?NewL@CEmsPreDefAnimationIE@@SAPAV1@W4TAnimType@1@@Z @ 23 NONAME ; class CEmsPreDefAnimationIE * CEmsPreDefAnimationIE::NewL(enum CEmsPreDefAnimationIE::TAnimType) + ?Strikethrough@CEmsFormatIE@@QBEHXZ @ 24 NONAME ; int CEmsFormatIE::Strikethrough(void) const + ?UpdatePhonePowerStatusL@CSmsBaseTestStep@@QAEXAAVRProperty@@W4TSAPhoneStatus@@@Z @ 25 NONAME ; void CSmsBaseTestStep::UpdatePhonePowerStatusL(class RProperty &, enum TSAPhoneStatus) + ?SetStartPosition@CEmsInformationElement@@QAEXI@Z @ 26 NONAME ; void CEmsInformationElement::SetStartPosition(unsigned int) + ?SendSmsDontCheckReturnValueL@CSmsBaseTestStep@@QAEXPAVCSmsMessage@@AAVRSocket@@@Z @ 27 NONAME ; void CSmsBaseTestStep::SendSmsDontCheckReturnValueL(class CSmsMessage *, class RSocket &) + ?PrintSmspList@CSmsStackTestUtils@@QAEXAAVCMobilePhoneSmspList@@@Z @ 28 NONAME ; void CSmsStackTestUtils::PrintSmspList(class CMobilePhoneSmspList &) + ??1CEmsAnimationIE@@UAE@XZ @ 29 NONAME ; CEmsAnimationIE::~CEmsAnimationIE(void) + ?CompareUDL@CSmsStackTestUtils@@QAEXABVCSmsPDU@@ABVCSmsUserData@@@Z @ 30 NONAME ; void CSmsStackTestUtils::CompareUDL(class CSmsPDU const &, class CSmsUserData const &) + ?RecvSmsFailedL@CSmsBaseTestStep@@QAEPAVCSmsMessage@@AAVRSocket@@@Z @ 31 NONAME ; class CSmsMessage * CSmsBaseTestStep::RecvSmsFailedL(class RSocket &) + ?TestSendAndReceiveIndicatorMsgsL@CSmsBaseTestStep@@QAEXABV?$RPointerArray@VCSmsPduDbMessage@@@@PBV?$CArrayFixFlat@H@@11@Z @ 32 NONAME ; void CSmsBaseTestStep::TestSendAndReceiveIndicatorMsgsL(class RPointerArray const &, class CArrayFixFlat const *, class CArrayFixFlat const *, class CArrayFixFlat const *) + ?SetAlignment@CEmsFormatIE@@QAEXW4TAlignment@1@@Z @ 33 NONAME ; void CEmsFormatIE::SetAlignment(enum CEmsFormatIE::TAlignment) + ?CreateSmsMessageL@CSmsBaseTestStep@@QAEPAVCSmsMessage@@ABVTDesC16@@W4TSmsAlphabet@TSmsDataCodingScheme@@W4TSmsPDUType@CSmsPDU@@@Z @ 34 NONAME ; class CSmsMessage * CSmsBaseTestStep::CreateSmsMessageL(class TDesC16 const &, enum TSmsDataCodingScheme::TSmsAlphabet, enum CSmsPDU::TSmsPDUType) + ?SetTestNumberL@CSmsBaseTestStep@@QAEXHH@Z @ 35 NONAME ; void CSmsBaseTestStep::SetTestNumberL(int, int) + ?Body@CSmsUserData@@QBE?AVTPtrC8@@XZ @ 36 NONAME ; class TPtrC8 CSmsUserData::Body(void) const + ?Type@CEnhancedVoiceMailBoxInformation@@QBE?AW4TVoiceMailInfoType@@XZ @ 37 NONAME ; enum TVoiceMailInfoType CEnhancedVoiceMailBoxInformation::Type(void) const + ?MaximumCapacity@CEnhancedVoiceMailBoxInformation@@QBEHXZ @ 38 NONAME ; int CEnhancedVoiceMailBoxInformation::MaximumCapacity(void) const + ??0CSmsStackTestServer@@IAE@XZ @ 39 NONAME ; CSmsStackTestServer::CSmsStackTestServer(void) + ?CompareEmsMsgL@EmsTestUtils@@YAHABVCSmsMessage@@0@Z @ 40 NONAME ; int EmsTestUtils::CompareEmsMsgL(class CSmsMessage const &, class CSmsMessage const &) + ?RecvStatusReportL@CSmsBaseTestStep@@QAE?AW4TSmsStatusValue@TSmsStatus@@AAV?$TBuf@$0O@@@AAVRSocket@@@Z @ 41 NONAME ; enum TSmsStatus::TSmsStatusValue CSmsBaseTestStep::RecvStatusReportL(class TBuf<14> &, class RSocket &) + ?AddSmsRxL@CSmsStackTestUtils@@QBEXAAVCTestConfig@@HAAVCSmsMessage@@ABVTDesC16@@@Z @ 42 NONAME ; void CSmsStackTestUtils::AddSmsRxL(class CTestConfig &, int, class CSmsMessage &, class TDesC16 const &) const + ?ConvertToNativeL@CSmsAlphabetConverter@@QAE?AVTPtrC16@@ABVTDesC8@@@Z @ 43 NONAME ; class TPtrC16 CSmsAlphabetConverter::ConvertToNativeL(class TDesC8 const &) + ?NewL@CEnhancedVoiceMailDeleteConfirmations@@SAPAV1@XZ @ 44 NONAME ; class CEnhancedVoiceMailDeleteConfirmations * CEnhancedVoiceMailDeleteConfirmations::NewL(void) + ?StartPosition@CEmsInformationElement@@QBEIXZ @ 45 NONAME ; unsigned int CEmsInformationElement::StartPosition(void) const + ?ParsedAccessAddress@CEnhancedVoiceMailBoxInformation@@QBEXAAVTGsmSmsTelNumber@@@Z @ 46 NONAME ; void CEnhancedVoiceMailBoxInformation::ParsedAccessAddress(class TGsmSmsTelNumber &) const + ?ObjectCount@CEmsObjectDistribution@@QBEIXZ @ 47 NONAME ; unsigned int CEmsObjectDistribution::ObjectCount(void) const + ?SetStorage@CEnhancedVoiceMailBoxInformation@@QAEXH@Z @ 48 NONAME ; void CEnhancedVoiceMailBoxInformation::SetStorage(int) + ?SetItalic@CEmsFormatIE@@QAEXH@Z @ 49 NONAME ; void CEmsFormatIE::SetItalic(int) + ?SendCommandSmsL@CSmsBaseTestStep@@QAEXPAVCSmsMessage@@AAVRSocket@@@Z @ 50 NONAME ; void CSmsBaseTestStep::SendCommandSmsL(class CSmsMessage *, class RSocket &) + ?NewL@CSmsPduDatabase@@SAPAV1@AAVRFs@@ABVCTestConfigSection@@@Z @ 51 NONAME ; class CSmsPduDatabase * CSmsPduDatabase::NewL(class RFs &, class CTestConfigSection const &) + ?ReadSmsStoreL@CSmsBaseTestStep@@QAEXAAVRSocket@@AAV?$RPointerArray@VCSmsMessage@@@@AAVTRequestStatus@@@Z @ 52 NONAME ; void CSmsBaseTestStep::ReadSmsStoreL(class RSocket &, class RPointerArray &, class TRequestStatus &) + ?GetSmsList@CTestGetSmsList@@QAEXAAVTRequestStatus@@@Z @ 53 NONAME ; void CTestGetSmsList::GetSmsList(class TRequestStatus &) + ?CreatePictureL@EmsTestUtils@@YAPAVCEmsPictureIE@@H@Z @ 54 NONAME ; class CEmsPictureIE * EmsTestUtils::CreatePictureL(int) + ?OpenSmsSocketL@CSmsBaseTestStep@@QAEXAAVRSocketServ@@AAVRSocket@@AAVTSmsAddr@@@Z @ 55 NONAME ; void CSmsBaseTestStep::OpenSmsSocketL(class RSocketServ &, class RSocket &, class TSmsAddr &) + ?NewL@CEnhancedVoiceMailNotification@@SAPAV1@XZ @ 56 NONAME ; class CEnhancedVoiceMailNotification * CEnhancedVoiceMailNotification::NewL(void) + ?SetFreeDiskSpaceL@CSmsBaseTestStep@@QAEX_J@Z @ 57 NONAME ; void CSmsBaseTestStep::SetFreeDiskSpaceL(long long) + ?NewL@CSmsPduDbPdu@@SAPAV1@AAVRFs@@ABVCTestConfigItem@@W4TSmsPDUType@CSmsPDU@@@Z @ 58 NONAME ; class CSmsPduDbPdu * CSmsPduDbPdu::NewL(class RFs &, class CTestConfigItem const &, enum CSmsPDU::TSmsPDUType) + ?ConnectSocketServerL@CSmsBaseTestStep@@QAEXAAVRSocketServ@@@Z @ 59 NONAME ; void CSmsBaseTestStep::ConnectSocketServerL(class RSocketServ &) + ??1CSmsStackTestServer@@UAE@XZ @ 60 NONAME ; CSmsStackTestServer::~CSmsStackTestServer(void) + ?AppendUserDataL@CSmsStackTestUtils@@QAEXAAVTGsmSms@@ABVCSmsUserData@@H@Z @ 61 NONAME ; void CSmsStackTestUtils::AppendUserDataL(class TGsmSms &, class CSmsUserData const &, int) + ?SetCallingLineIdentityL@CVoiceMailNotification@@QAEXAAVTDesC16@@@Z @ 62 NONAME ; void CVoiceMailNotification::SetCallingLineIdentityL(class TDesC16 &) + ?Italic@CEmsFormatIE@@QBEHXZ @ 63 NONAME ; int CEmsFormatIE::Italic(void) const + ?SetObjectCount@CEmsObjectDistribution@@QAEXI@Z @ 64 NONAME ; void CEmsObjectDistribution::SetObjectCount(unsigned int) + ?RemoveLowHighLimitsFromSmsuRscL@CSmsBaseTestStep@@QAEXXZ @ 65 NONAME ; void CSmsBaseTestStep::RemoveLowHighLimitsFromSmsuRscL(void) + ?TestPhoneNumbers@CSmsStackTestUtils@@QAEHABVTMobileAddress@RMobilePhone@@0@Z @ 66 NONAME ; int CSmsStackTestUtils::TestPhoneNumbers(class RMobilePhone::TMobileAddress const &, class RMobilePhone::TMobileAddress const &) + ?SetUnderline@CEmsFormatIE@@QAEXH@Z @ 67 NONAME ; void CEmsFormatIE::SetUnderline(int) + ?CopyL@CEmsSoundIE@@QAEXABV1@@Z @ 68 NONAME ; void CEmsSoundIE::CopyL(class CEmsSoundIE const &) + ?NewLC@CSmsAlphabetConverter@@SAPAV1@AAVCCnvCharacterSetConverter@@AAVRFs@@W4TSmsAlphabet@TSmsDataCodingScheme@@H@Z @ 69 NONAME ; class CSmsAlphabetConverter * CSmsAlphabetConverter::NewLC(class CCnvCharacterSetConverter &, class RFs &, enum TSmsDataCodingScheme::TSmsAlphabet, int) + ?NewL@CSmsStackTestUtils@@SAPAV1@PAVCTestStep@@AAVRFs@@@Z @ 70 NONAME ; class CSmsStackTestUtils * CSmsStackTestUtils::NewL(class CTestStep *, class RFs &) + ?NewL@CEmsPreDefSoundIE@@SAPAV1@W4TPredefinedSound@1@@Z @ 71 NONAME ; class CEmsPreDefSoundIE * CEmsPreDefSoundIE::NewL(enum CEmsPreDefSoundIE::TPredefinedSound) + ?AddInformationElementL@CSmsUserData@@QAEXW4TSmsInformationElementIdentifier@CSmsInformationElement@@ABVTDesC8@@@Z @ 72 NONAME ; void CSmsUserData::AddInformationElementL(enum CSmsInformationElement::TSmsInformationElementIdentifier, class TDesC8 const &) + ?NewL@CVoiceMailNotification@@SAPAV1@XZ @ 73 NONAME ; class CVoiceMailNotification * CVoiceMailNotification::NewL(void) + ?NewL@CEmsSoundIE@@SAPAV1@ABVTDesC8@@@Z @ 74 NONAME ; class CEmsSoundIE * CEmsSoundIE::NewL(class TDesC8 const &) + ?PriorityIndication@CVoiceMailNotification@@QBEHXZ @ 75 NONAME ; int CVoiceMailNotification::PriorityIndication(void) const + ?Animation@CEmsPreDefAnimationIE@@QBE?AW4TAnimType@1@XZ @ 76 NONAME ; enum CEmsPreDefAnimationIE::TAnimType CEmsPreDefAnimationIE::Animation(void) const + ?InformationElementIndex@CSmsUserData@@QBEHW4TSmsInformationElementIdentifier@CSmsInformationElement@@AAH@Z @ 77 NONAME ; int CSmsUserData::InformationElementIndex(enum CSmsInformationElement::TSmsInformationElementIdentifier, int &) const + ?IsSupportedL@CSmsUserData@@QBEHABVTDesC16@@W4TSmsEncoding@@AAH222@Z @ 78 NONAME ; int CSmsUserData::IsSupportedL(class TDesC16 const &, enum TSmsEncoding, int &, int &, int &, int &) const + ?DoSendAndRecvSmsL@CSmsBaseTestStep@@QAEXABVTDesC16@@W4TSmsAlphabet@TSmsDataCodingScheme@@AAVRSocket@@@Z @ 79 NONAME ; void CSmsBaseTestStep::DoSendAndRecvSmsL(class TDesC16 const &, enum TSmsDataCodingScheme::TSmsAlphabet, class RSocket &) + ?doTestStepPostambleL@CSmsBaseTestStep@@UAE?AW4TVerdict@@XZ @ 80 NONAME ; enum TVerdict CSmsBaseTestStep::doTestStepPostambleL(void) + ??0TTestCase@@QAE@ABVTDesC16@@W4TSmsStatusReportRequest@TSmsFirstOctet@@@Z @ 81 NONAME ; TTestCase::TTestCase(class TDesC16 const &, enum TSmsFirstOctet::TSmsStatusReportRequest) + ?RewriteFileL@CSmsPduDatabase@@QBEXABVTDesC16@@00@Z @ 82 NONAME ; void CSmsPduDatabase::RewriteFileL(class TDesC16 const &, class TDesC16 const &, class TDesC16 const &) const + ?NewL@CEmsPictureIE@@SAPAV1@ABVCFbsBitmap@@@Z @ 83 NONAME ; class CEmsPictureIE * CEmsPictureIE::NewL(class CFbsBitmap const &) + ?SetLowHighLimitsInSmsuRscL@CSmsBaseTestStep@@QAEX_J0@Z @ 84 NONAME ; void CSmsBaseTestStep::SetLowHighLimitsInSmsuRscL(long long, long long) + ?ReleaseDiskSpaceL@CSmsBaseTestStep@@QAEXXZ @ 85 NONAME ; void CSmsBaseTestStep::ReleaseDiskSpaceL(void) + ?CopyConfigFileL@CSmsStackTestUtils@@QAEXABVTDesC16@@PAVCSmsPduDatabase@@@Z @ 86 NONAME ; void CSmsStackTestUtils::CopyConfigFileL(class TDesC16 const &, class CSmsPduDatabase *) + ?NewL@CSmsPduDatabase@@SAPAV1@AAVRFs@@ABVTDesC8@@ABVTDesC16@@2@Z @ 87 NONAME ; class CSmsPduDatabase * CSmsPduDatabase::NewL(class RFs &, class TDesC8 const &, class TDesC16 const &, class TDesC16 const &) + ?ParseSettingsFromFileL@CSmsBaseTestStep@@QAEXXZ @ 88 NONAME ; void CSmsBaseTestStep::ParseSettingsFromFileL(void) + ?NewL@CEmsFormatIE@@SAPAV1@XZ @ 89 NONAME ; class CEmsFormatIE * CEmsFormatIE::NewL(void) + ?SetProfile@CEnhancedVoiceMailBoxInformation@@QAEXW4TSmsMessageProfileType@@@Z @ 90 NONAME ; void CEnhancedVoiceMailBoxInformation::SetProfile(enum TSmsMessageProfileType) + ?MaxBodyLengthInChars@CSmsUserData@@QBEHXZ @ 91 NONAME ; int CSmsUserData::MaxBodyLengthInChars(void) const + ?DecodeTSmsServiceCenterTimeStampL@CSmsStackTestUtils@@QAEXXZ @ 92 NONAME ; void CSmsStackTestUtils::DecodeTSmsServiceCenterTimeStampL(void) + ?GetConcatL@CSmsPduDatabase@@QBEXAAV?$RPointerArray@VCSmsPduDbConcat@@@@W4TSmsPDUType@CSmsPDU@@@Z @ 93 NONAME ; void CSmsPduDatabase::GetConcatL(class RPointerArray &, enum CSmsPDU::TSmsPDUType) const + ?SetHighLowLimitsAndDiskSpaceLevelL@CSmsBaseTestStep@@QAE_KIII_K@Z @ 94 NONAME ; unsigned long long CSmsBaseTestStep::SetHighLowLimitsAndDiskSpaceLevelL(unsigned int, unsigned int, unsigned int, unsigned long long) + ?SetBodyL@CSmsUserData@@QAEXABVTDesC8@@@Z @ 95 NONAME ; void CSmsUserData::SetBodyL(class TDesC8 const &) + ??0CSmsBaseTestStep@@IAE@XZ @ 96 NONAME ; CSmsBaseTestStep::CSmsBaseTestStep(void) + ?ParsedCallingLineIdentity@CVoiceMailNotification@@QBEXAAVTGsmSmsTelNumber@@@Z @ 97 NONAME ; void CVoiceMailNotification::ParsedCallingLineIdentity(class TGsmSmsTelNumber &) const ?Length@CEmsInformationElement@@QBEHXZ @ 98 NONAME ; int CEmsInformationElement::Length(void) const - ?MakeParametersReadRequestL@CSmsStackTestUtils@@QAEXAAVRSocket@@@Z @ 99 NONAME ; void CSmsStackTestUtils::MakeParametersReadRequestL(class RSocket &) - ?MaxBodyLengthInChars@CSmsUserData@@QBEHXZ @ 100 NONAME ; int CSmsUserData::MaxBodyLengthInChars(void) const - ?MaximumCapacity@CEnhancedVoiceMailBoxInformation@@QBEHXZ @ 101 NONAME ; int CEnhancedVoiceMailBoxInformation::MaximumCapacity(void) const - ?Melody@CEmsSoundIE@@QBEPBVHBufC8@@XZ @ 102 NONAME ; class HBufC8 const * CEmsSoundIE::Melody(void) const - ?MessageExtensionIndication@CVoiceMailDeletion@@QBEHXZ @ 103 NONAME ; int CVoiceMailDeletion::MessageExtensionIndication(void) const - ?MessageExtensionIndication@CVoiceMailNotification@@QBEHXZ @ 104 NONAME ; int CVoiceMailNotification::MessageExtensionIndication(void) const - ?MessageId@CVoiceMailDeletion@@QBEGXZ @ 105 NONAME ; unsigned short CVoiceMailDeletion::MessageId(void) const - ?MessageId@CVoiceMailNotification@@QBEGXZ @ 106 NONAME ; unsigned short CVoiceMailNotification::MessageId(void) const - ?MessageLength@CVoiceMailNotification@@QBEEXZ @ 107 NONAME ; unsigned char CVoiceMailNotification::MessageLength(void) const - ?NewL@CEmsAnimationIE@@SAPAV1@ABVCFbsBitmap@@@Z @ 108 NONAME ; class CEmsAnimationIE * CEmsAnimationIE::NewL(class CFbsBitmap const &) - ?NewL@CEmsFormatIE@@SAPAV1@XZ @ 109 NONAME ; class CEmsFormatIE * CEmsFormatIE::NewL(void) - ?NewL@CEmsObjectDistribution@@SAPAV1@IW4TAttrs@1@@Z @ 110 NONAME ; class CEmsObjectDistribution * CEmsObjectDistribution::NewL(unsigned int, enum CEmsObjectDistribution::TAttrs) - ?NewL@CEmsPictureIE@@SAPAV1@ABVCFbsBitmap@@@Z @ 111 NONAME ; class CEmsPictureIE * CEmsPictureIE::NewL(class CFbsBitmap const &) - ?NewL@CEmsPreDefAnimationIE@@SAPAV1@W4TAnimType@1@@Z @ 112 NONAME ; class CEmsPreDefAnimationIE * CEmsPreDefAnimationIE::NewL(enum CEmsPreDefAnimationIE::TAnimType) - ?NewL@CEmsPreDefSoundIE@@SAPAV1@W4TPredefinedSound@1@@Z @ 113 NONAME ; class CEmsPreDefSoundIE * CEmsPreDefSoundIE::NewL(enum CEmsPreDefSoundIE::TPredefinedSound) - ?NewL@CEmsSoundIE@@SAPAV1@ABVTDesC8@@@Z @ 114 NONAME ; class CEmsSoundIE * CEmsSoundIE::NewL(class TDesC8 const &) - ?NewL@CEmsUserPrompt@@SAPAV1@I@Z @ 115 NONAME ; class CEmsUserPrompt * CEmsUserPrompt::NewL(unsigned int) - ?NewL@CEnhancedVoiceMailDeleteConfirmations@@SAPAV1@XZ @ 116 NONAME ; class CEnhancedVoiceMailDeleteConfirmations * CEnhancedVoiceMailDeleteConfirmations::NewL(void) - ?NewL@CEnhancedVoiceMailNotification@@SAPAV1@XZ @ 117 NONAME ; class CEnhancedVoiceMailNotification * CEnhancedVoiceMailNotification::NewL(void) - ?NewL@CSmsPduDatabase@@SAPAV1@AAVRFs@@@Z @ 118 NONAME ; class CSmsPduDatabase * CSmsPduDatabase::NewL(class RFs &) - ?NewL@CSmsPduDatabase@@SAPAV1@AAVRFs@@ABVCTestConfigSection@@@Z @ 119 NONAME ; class CSmsPduDatabase * CSmsPduDatabase::NewL(class RFs &, class CTestConfigSection const &) - ?NewL@CSmsPduDatabase@@SAPAV1@AAVRFs@@ABVTDesC8@@ABVTDesC16@@2@Z @ 120 NONAME ; class CSmsPduDatabase * CSmsPduDatabase::NewL(class RFs &, class TDesC8 const &, class TDesC16 const &, class TDesC16 const &) - ?NewL@CSmsPduDbConcatSegment@@SAPAV1@AAVRFs@@ABVCTestConfigItem@@W4TSmsPDUType@CSmsPDU@@@Z @ 121 NONAME ; class CSmsPduDbConcatSegment * CSmsPduDbConcatSegment::NewL(class RFs &, class CTestConfigItem const &, enum CSmsPDU::TSmsPDUType) - ?NewL@CSmsPduDbMessage@@SAPAV1@AAVRFs@@ABVCTestConfigItem@@W4TSmsPDUType@CSmsPDU@@@Z @ 122 NONAME ; class CSmsPduDbMessage * CSmsPduDbMessage::NewL(class RFs &, class CTestConfigItem const &, enum CSmsPDU::TSmsPDUType) - ?NewL@CSmsPduDbPdu@@SAPAV1@AAVRFs@@ABVCTestConfigItem@@W4TSmsPDUType@CSmsPDU@@@Z @ 123 NONAME ; class CSmsPduDbPdu * CSmsPduDbPdu::NewL(class RFs &, class CTestConfigItem const &, enum CSmsPDU::TSmsPDUType) - ?NewL@CSmsStackTestUtils@@SAPAV1@PAVCTestStep@@AAVRFs@@@Z @ 124 NONAME ; class CSmsStackTestUtils * CSmsStackTestUtils::NewL(class CTestStep *, class RFs &) - ?NewL@CTestGetSmsList@@SAPAV1@HAAVRSocketServ@@AAVCSmsStackTestUtils@@@Z @ 125 NONAME ; class CTestGetSmsList * CTestGetSmsList::NewL(int, class RSocketServ &, class CSmsStackTestUtils &) - ?NewL@CTestReceiveEnumerateMessages@@SAPAV1@HAAVRSocketServ@@AAVCSmsStackTestUtils@@@Z @ 126 NONAME ; class CTestReceiveEnumerateMessages * CTestReceiveEnumerateMessages::NewL(int, class RSocketServ &, class CSmsStackTestUtils &) - ?NewL@CTestReceiveMessages@@SAPAV1@HAAVRSocketServ@@AAVCSmsStackTestUtils@@@Z @ 127 NONAME ; class CTestReceiveMessages * CTestReceiveMessages::NewL(int, class RSocketServ &, class CSmsStackTestUtils &) - ?NewL@CVoiceMailDeletion@@SAPAV1@XZ @ 128 NONAME ; class CVoiceMailDeletion * CVoiceMailDeletion::NewL(void) - ?NewL@CVoiceMailNotification@@SAPAV1@XZ @ 129 NONAME ; class CVoiceMailNotification * CVoiceMailNotification::NewL(void) - ?NewLC@CSmsAlphabetConverter@@SAPAV1@AAVCCnvCharacterSetConverter@@AAVRFs@@W4TSmsAlphabet@TSmsDataCodingScheme@@H@Z @ 130 NONAME ; class CSmsAlphabetConverter * CSmsAlphabetConverter::NewLC(class CCnvCharacterSetConverter &, class RFs &, enum TSmsDataCodingScheme::TSmsAlphabet, int) - ?NumberOfDeletes@CEnhancedVoiceMailDeleteConfirmations@@QAEEXZ @ 131 NONAME ; unsigned char CEnhancedVoiceMailDeleteConfirmations::NumberOfDeletes(void) - ?NumberOfVoiceMails@CEnhancedVoiceMailNotification@@QAEEXZ @ 132 NONAME ; unsigned char CEnhancedVoiceMailNotification::NumberOfVoiceMails(void) - ?NumberOfVoiceMessages@CEnhancedVoiceMailBoxInformation@@QBEEXZ @ 133 NONAME ; unsigned char CEnhancedVoiceMailBoxInformation::NumberOfVoiceMessages(void) const - ?ObjectCount@CEmsObjectDistribution@@QBEIXZ @ 134 NONAME ; unsigned int CEmsObjectDistribution::ObjectCount(void) const - ?ObjectCount@CEmsUserPrompt@@QBEIXZ @ 135 NONAME ; unsigned int CEmsUserPrompt::ObjectCount(void) const - ?OpenSmsSocketL@CSmsStackTestUtils@@QAEXAAVRSocketServ@@AAVRSocket@@AAVTSmsAddr@@@Z @ 136 NONAME ; void CSmsStackTestUtils::OpenSmsSocketL(class RSocketServ &, class RSocket &, class TSmsAddr &) - ?OpenSmsSocketL@CSmsStackTestUtils@@QAEXAAVRSocketServ@@AAVRSocket@@W4TSmsAddrFamily@@@Z @ 137 NONAME ; void CSmsStackTestUtils::OpenSmsSocketL(class RSocketServ &, class RSocket &, enum TSmsAddrFamily) - ?OpenSmsSocketLC@CSmsStackTestUtils@@QAEXAAVRSocketServ@@AAVRSocket@@AAVTSmsAddr@@@Z @ 138 NONAME ; void CSmsStackTestUtils::OpenSmsSocketLC(class RSocketServ &, class RSocket &, class TSmsAddr &) - ?OpenSmsSocketLC@CSmsStackTestUtils@@QAEXAAVRSocketServ@@AAVRSocket@@W4TSmsAddrFamily@@@Z @ 139 NONAME ; void CSmsStackTestUtils::OpenSmsSocketLC(class RSocketServ &, class RSocket &, enum TSmsAddrFamily) - ?ParsedAccessAddress@CEnhancedVoiceMailBoxInformation@@QBEXAAVTGsmSmsTelNumber@@@Z @ 140 NONAME ; void CEnhancedVoiceMailBoxInformation::ParsedAccessAddress(class TGsmSmsTelNumber &) const - ?ParsedCallingLineIdentity@CVoiceMailNotification@@QBEXAAVTGsmSmsTelNumber@@@Z @ 141 NONAME ; void CVoiceMailNotification::ParsedCallingLineIdentity(class TGsmSmsTelNumber &) const - ?PduFactory@CSmsPduDatabase@@QBEPAVCSmsPduDbPdu@@ABVCTestConfigItem@@W4TSmsPDUType@CSmsPDU@@@Z @ 142 NONAME ; class CSmsPduDbPdu * CSmsPduDatabase::PduFactory(class CTestConfigItem const &, enum CSmsPDU::TSmsPDUType) const - ?PduFactory@CSmsPduDatabase@@QBEPAVCSmsPduDbPdu@@ABVTDesC8@@W4TSmsPDUType@CSmsPDU@@@Z @ 143 NONAME ; class CSmsPduDbPdu * CSmsPduDatabase::PduFactory(class TDesC8 const &, enum CSmsPDU::TSmsPDUType) const - ?PduFactoryL@CSmsPduDatabase@@QBEPAVCSmsPduDbPdu@@ABVCTestConfigItem@@W4TSmsPDUType@CSmsPDU@@@Z @ 144 NONAME ; class CSmsPduDbPdu * CSmsPduDatabase::PduFactoryL(class CTestConfigItem const &, enum CSmsPDU::TSmsPDUType) const - ?PduFactoryL@CSmsPduDatabase@@QBEPAVCSmsPduDbPdu@@ABVTDesC8@@W4TSmsPDUType@CSmsPDU@@@Z @ 145 NONAME ; class CSmsPduDbPdu * CSmsPduDatabase::PduFactoryL(class TDesC8 const &, enum CSmsPDU::TSmsPDUType) const - ?PredefinedSound@CEmsPreDefSoundIE@@QBE?AW4TPredefinedSound@1@XZ @ 146 NONAME ; enum CEmsPreDefSoundIE::TPredefinedSound CEmsPreDefSoundIE::PredefinedSound(void) const - ?PrintAndTestDecodeL@CSmsStackTestUtils@@QAEXABVTGsmSms@@VTSmsDataCodingScheme@@VTSmsProtocolIdentifier@@ABVCSmsUserData@@HH@Z @ 147 NONAME ; void CSmsStackTestUtils::PrintAndTestDecodeL(class TGsmSms const &, class TSmsDataCodingScheme, class TSmsProtocolIdentifier, class CSmsUserData const &, int, int) - ?PrintSmspEntry@CSmsStackTestUtils@@QAEXAAVTMobileSmspEntryV1@RMobileSmsMessaging@@@Z @ 148 NONAME ; void CSmsStackTestUtils::PrintSmspEntry(class RMobileSmsMessaging::TMobileSmspEntryV1 &) - ?PrintSmspList@CSmsStackTestUtils@@QAEXAAVCMobilePhoneSmspList@@@Z @ 149 NONAME ; void CSmsStackTestUtils::PrintSmspList(class CMobilePhoneSmspList &) - ?PriorityIndication@CVoiceMailNotification@@QBEHXZ @ 150 NONAME ; int CVoiceMailNotification::PriorityIndication(void) const - ?Profile@CEnhancedVoiceMailBoxInformation@@QBE?AW4TSmsMessageProfileType@@XZ @ 151 NONAME ; enum TSmsMessageProfileType CEnhancedVoiceMailBoxInformation::Profile(void) const - ?Receive@CTestReceiveMessages@@QAEXAAVTRequestStatus@@H@Z @ 152 NONAME ; void CTestReceiveMessages::Receive(class TRequestStatus &, int) - ?Receive@CTestReceiveMessages@@QAEXXZ @ 153 NONAME ; void CTestReceiveMessages::Receive(void) - ?RemoveInformationElement@CSmsUserData@@QAEXH@Z @ 154 NONAME ; void CSmsUserData::RemoveInformationElement(int) - ?RetentionDays@CVoiceMailNotification@@QBEEXZ @ 155 NONAME ; unsigned char CVoiceMailNotification::RetentionDays(void) const - ?RetrieveParamsL@CSmsStackTestUtils@@QAEHAAVCMobilePhoneSmspList@@AAVRSocket@@H@Z @ 156 NONAME ; int CSmsStackTestUtils::RetrieveParamsL(class CMobilePhoneSmspList &, class RSocket &, int) - ?RewriteFileL@CSmsPduDatabase@@QBEXABVTDesC16@@00@Z @ 157 NONAME ; void CSmsPduDatabase::RewriteFileL(class TDesC16 const &, class TDesC16 const &, class TDesC16 const &) const - ?SendSmsAndChangeBearerL@CSmsStackTestUtils@@QAEXPAVCSmsMessage@@AAVRSocket@@W4TMobileSmsBearer@RMobileSmsMessaging@@@Z @ 158 NONAME ; void CSmsStackTestUtils::SendSmsAndChangeBearerL(class CSmsMessage *, class RSocket &, enum RMobileSmsMessaging::TMobileSmsBearer) - ?SetAccessAddressL@CEnhancedVoiceMailBoxInformation@@QAEXABVTDesC16@@@Z @ 159 NONAME ; void CEnhancedVoiceMailBoxInformation::SetAccessAddressL(class TDesC16 const &) - ?SetAlignment@CEmsFormatIE@@QAEXW4TAlignment@1@@Z @ 160 NONAME ; void CEmsFormatIE::SetAlignment(enum CEmsFormatIE::TAlignment) - ?SetAlmostMaximumCapacity@CEnhancedVoiceMailBoxInformation@@QAEXH@Z @ 161 NONAME ; void CEnhancedVoiceMailBoxInformation::SetAlmostMaximumCapacity(int) - ?SetAnimationL@CEmsPreDefAnimationIE@@QAEXW4TAnimType@1@@Z @ 162 NONAME ; void CEmsPreDefAnimationIE::SetAnimationL(enum CEmsPreDefAnimationIE::TAnimType) - ?SetBodyL@CSmsUserData@@QAEXABVTDesC8@@@Z @ 163 NONAME ; void CSmsUserData::SetBodyL(class TDesC8 const &) - ?SetBold@CEmsFormatIE@@QAEXH@Z @ 164 NONAME ; void CEmsFormatIE::SetBold(int) - ?SetCallingLineIdentityL@CVoiceMailNotification@@QAEXAAVTDesC16@@@Z @ 165 NONAME ; void CVoiceMailNotification::SetCallingLineIdentityL(class TDesC16 &) - ?SetFontSize@CEmsFormatIE@@QAEXW4TFontSize@1@@Z @ 166 NONAME ; void CEmsFormatIE::SetFontSize(enum CEmsFormatIE::TFontSize) - ?SetFormatLength@CEmsFormatIE@@QAEXI@Z @ 167 NONAME ; void CEmsFormatIE::SetFormatLength(unsigned int) - ?SetForwarding@CEmsObjectDistribution@@QAEXW4TAttrs@1@@Z @ 168 NONAME ; void CEmsObjectDistribution::SetForwarding(enum CEmsObjectDistribution::TAttrs) - ?SetFromETelMM@TGsmSmsTypeOfAddress@@QAEXW4TMobileTON@NMobilePhone@@W4TMobileNPI@3@@Z @ 169 NONAME ; void TGsmSmsTypeOfAddress::SetFromETelMM(enum NMobilePhone::TMobileTON, enum NMobilePhone::TMobileNPI) - ?SetItalic@CEmsFormatIE@@QAEXH@Z @ 170 NONAME ; void CEmsFormatIE::SetItalic(int) - ?SetMaximumCapacity@CEnhancedVoiceMailBoxInformation@@QAEXH@Z @ 171 NONAME ; void CEnhancedVoiceMailBoxInformation::SetMaximumCapacity(int) - ?SetMessageId@CVoiceMailDeletion@@QAEXG@Z @ 172 NONAME ; void CVoiceMailDeletion::SetMessageId(unsigned short) - ?SetMessageId@CVoiceMailNotification@@QAEXG@Z @ 173 NONAME ; void CVoiceMailNotification::SetMessageId(unsigned short) - ?SetMessageLength@CVoiceMailNotification@@QAEXE@Z @ 174 NONAME ; void CVoiceMailNotification::SetMessageLength(unsigned char) - ?SetNumberOfVoiceMessages@CEnhancedVoiceMailBoxInformation@@QAEXE@Z @ 175 NONAME ; void CEnhancedVoiceMailBoxInformation::SetNumberOfVoiceMessages(unsigned char) - ?SetObjectCount@CEmsObjectDistribution@@QAEXI@Z @ 176 NONAME ; void CEmsObjectDistribution::SetObjectCount(unsigned int) - ?SetObjectCount@CEmsUserPrompt@@QAEXI@Z @ 177 NONAME ; void CEmsUserPrompt::SetObjectCount(unsigned int) - ?SetParsedAccessAddressL@CEnhancedVoiceMailBoxInformation@@QAEXABVTGsmSmsTelNumber@@@Z @ 178 NONAME ; void CEnhancedVoiceMailBoxInformation::SetParsedAccessAddressL(class TGsmSmsTelNumber const &) - ?SetParsedCallingLineIdentityL@CVoiceMailNotification@@QAEXAAVTGsmSmsTelNumber@@@Z @ 179 NONAME ; void CVoiceMailNotification::SetParsedCallingLineIdentityL(class TGsmSmsTelNumber &) - ?SetPriorityIndication@CVoiceMailNotification@@QAEXH@Z @ 180 NONAME ; void CVoiceMailNotification::SetPriorityIndication(int) - ?SetProfile@CEnhancedVoiceMailBoxInformation@@QAEXW4TSmsMessageProfileType@@@Z @ 181 NONAME ; void CEnhancedVoiceMailBoxInformation::SetProfile(enum TSmsMessageProfileType) - ?SetRetentionDays@CVoiceMailNotification@@QAEXE@Z @ 182 NONAME ; void CVoiceMailNotification::SetRetentionDays(unsigned char) - ?SetStartPosition@CEmsInformationElement@@QAEXI@Z @ 183 NONAME ; void CEmsInformationElement::SetStartPosition(unsigned int) - ?SetStorage@CEnhancedVoiceMailBoxInformation@@QAEXH@Z @ 184 NONAME ; void CEnhancedVoiceMailBoxInformation::SetStorage(int) - ?SetStrikethrough@CEmsFormatIE@@QAEXH@Z @ 185 NONAME ; void CEmsFormatIE::SetStrikethrough(int) - ?SetUnderline@CEmsFormatIE@@QAEXH@Z @ 186 NONAME ; void CEmsFormatIE::SetUnderline(int) - ?SizeInPixels@CEmsPictureIE@@QBE?AVTSize@@XZ @ 187 NONAME ; class TSize CEmsPictureIE::SizeInPixels(void) const - ?Start@CTestReceiveEnumerateMessages@@QAEXHHH@Z @ 188 NONAME ; void CTestReceiveEnumerateMessages::Start(int, int, int) - ?StartPosition@CEmsInformationElement@@QBEIXZ @ 189 NONAME ; unsigned int CEmsInformationElement::StartPosition(void) const - ?Store@CEnhancedVoiceMailBoxInformation@@QBEHXZ @ 190 NONAME ; int CEnhancedVoiceMailBoxInformation::Store(void) const - ?StoreParamsL@CSmsStackTestUtils@@QAEHAAVCMobilePhoneSmspList@@AAVRSocket@@H@Z @ 191 NONAME ; int CSmsStackTestUtils::StoreParamsL(class CMobilePhoneSmspList &, class RSocket &, int) - ?StoreParamsLeaveIfErrorL@CSmsStackTestUtils@@QAEXAAVCMobilePhoneSmspList@@AAVRSocket@@@Z @ 192 NONAME ; void CSmsStackTestUtils::StoreParamsLeaveIfErrorL(class CMobilePhoneSmspList &, class RSocket &) - ?Strikethrough@CEmsFormatIE@@QBEHXZ @ 193 NONAME ; int CEmsFormatIE::Strikethrough(void) const - ?TestParameters@CSmsStackTestUtils@@QAEHAAVCMobilePhoneSmspList@@0@Z @ 194 NONAME ; int CSmsStackTestUtils::TestParameters(class CMobilePhoneSmspList &, class CMobilePhoneSmspList &) - ?TestPhoneNumbers@CSmsStackTestUtils@@QAEHABVTMobileAddress@RMobilePhone@@0@Z @ 195 NONAME ; int CSmsStackTestUtils::TestPhoneNumbers(class RMobilePhone::TMobileAddress const &, class RMobilePhone::TMobileAddress const &) - ?Type@CEnhancedVoiceMailBoxInformation@@QBE?AW4TVoiceMailInfoType@@XZ @ 196 NONAME ; enum TVoiceMailInfoType CEnhancedVoiceMailBoxInformation::Type(void) const - ?Underline@CEmsFormatIE@@QBEHXZ @ 197 NONAME ; int CEmsFormatIE::Underline(void) const - ?WaitForInitializeL@CSmsStackTestUtils@@QAEXXZ @ 198 NONAME ; void CSmsStackTestUtils::WaitForInitializeL(void) - ?ConvertFromNativeL@CSmsAlphabetConverter@@QAE?AVTPtrC8@@ABVTDesC16@@W4TSmsEncoding@@AAH2@Z @ 199 NONAME ; class TPtrC8 CSmsAlphabetConverter::ConvertFromNativeL(class TDesC16 const &, enum TSmsEncoding, int &, int &) - ?ConvertToNativeL@CSmsAlphabetConverter@@QAE?AVTPtrC16@@ABVTDesC8@@W4TSmsEncoding@@@Z @ 200 NONAME ; class TPtrC16 CSmsAlphabetConverter::ConvertToNativeL(class TDesC8 const &, enum TSmsEncoding) - ?IsSupportedL@CSmsUserData@@QBEHABVTDesC16@@W4TSmsEncoding@@AAH222@Z @ 201 NONAME ; int CSmsUserData::IsSupportedL(class TDesC16 const &, enum TSmsEncoding, int &, int &, int &, int &) const - ?IsSupportedL@CSmsUserData@@QBEHABVTDesC16@@AAH1@Z @ 202 NONAME ; int CSmsUserData::IsSupportedL(class TDesC16 const &, int &, int &) const - ?InformationElementLastIndex@CSmsUserData@@QBEHW4TSmsInformationElementIdentifier@CSmsInformationElement@@AAH@Z @ 203 NONAME ; int CSmsUserData::InformationElementLastIndex(enum CSmsInformationElement::TSmsInformationElementIdentifier, int &) const - ?EnableLogging@CSmsStackTestUtils@@QAEXXZ @ 204 NONAME ; void CSmsStackTestUtils::EnableLogging(void) - ?DisableLogging@CSmsStackTestUtils@@QAEXXZ @ 205 NONAME ; void CSmsStackTestUtils::DisableLogging(void) + ?OpenSmsSocketL@CSmsStackTestUtils@@QAEXAAVRSocketServ@@AAVRSocket@@W4TSmsAddrFamily@@@Z @ 99 NONAME ; void CSmsStackTestUtils::OpenSmsSocketL(class RSocketServ &, class RSocket &, enum TSmsAddrFamily) + ?Profile@CEnhancedVoiceMailBoxInformation@@QBE?AW4TSmsMessageProfileType@@XZ @ 100 NONAME ; enum TSmsMessageProfileType CEnhancedVoiceMailBoxInformation::Profile(void) const + ?SetBold@CEmsFormatIE@@QAEXH@Z @ 101 NONAME ; void CEmsFormatIE::SetBold(int) + ?GetBitmapL@CEmsPictureIE@@QBEPAVCFbsBitmap@@XZ @ 102 NONAME ; class CFbsBitmap * CEmsPictureIE::GetBitmapL(void) const + ?MessageExtensionIndication@CVoiceMailNotification@@QBEHXZ @ 103 NONAME ; int CVoiceMailNotification::MessageExtensionIndication(void) const + ?SetSimTSYTestNumberL@CSmsBaseTestStep@@QAEXH@Z @ 104 NONAME ; void CSmsBaseTestStep::SetSimTSYTestNumberL(int) + ?OpenSmsSocketL@CSmsStackTestUtils@@QAEXAAVRSocketServ@@AAVRSocket@@AAVTSmsAddr@@@Z @ 105 NONAME ; void CSmsStackTestUtils::OpenSmsSocketL(class RSocketServ &, class RSocket &, class TSmsAddr &) + ?GetPduL@CSmsPduDatabase@@QBEXAAV?$RPointerArray@VCSmsPduDbPdu@@@@W4TSmsPDUType@CSmsPDU@@@Z @ 106 NONAME ; void CSmsPduDatabase::GetPduL(class RPointerArray &, enum CSmsPDU::TSmsPDUType) const + ?RemoveInformationElement@CSmsUserData@@QAEXH@Z @ 107 NONAME ; void CSmsUserData::RemoveInformationElement(int) + ?Identifier@CSmsInformationElement@@QBE?AW4TSmsInformationElementIdentifier@1@XZ @ 108 NONAME ; enum CSmsInformationElement::TSmsInformationElementIdentifier CSmsInformationElement::Identifier(void) const + ?SetMessageId@CVoiceMailDeletion@@QAEXG@Z @ 109 NONAME ; void CVoiceMailDeletion::SetMessageId(unsigned short) + ?NewL@CEmsUserPrompt@@SAPAV1@I@Z @ 110 NONAME ; class CEmsUserPrompt * CEmsUserPrompt::NewL(unsigned int) + ?MessageId@CVoiceMailDeletion@@QBEGXZ @ 111 NONAME ; unsigned short CVoiceMailDeletion::MessageId(void) const + ?WriteSmsToSimL@CSmsBaseTestStep@@QAEXAAVCSmsMessage@@AAVRSocket@@@Z @ 112 NONAME ; void CSmsBaseTestStep::WriteSmsToSimL(class CSmsMessage &, class RSocket &) + ?SetAnimationL@CEmsPreDefAnimationIE@@QAEXW4TAnimType@1@@Z @ 113 NONAME ; void CEmsPreDefAnimationIE::SetAnimationL(enum CEmsPreDefAnimationIE::TAnimType) + ?SetValidityPeriod@TTestCase@@QAEXABVTTimeIntervalMinutes@@@Z @ 114 NONAME ; void TTestCase::SetValidityPeriod(class TTimeIntervalMinutes const &) + ?CompareEmsIE@EmsTestUtils@@YAHABVCEmsInformationElement@@0@Z @ 115 NONAME ; int EmsTestUtils::CompareEmsIE(class CEmsInformationElement const &, class CEmsInformationElement const &) + ?CreateSmsMessageLC@CSmsStackTestUtils@@QAEPAVCSmsMessage@@W4TSmsPDUType@CSmsPDU@@ABVTDesC16@@1@Z @ 116 NONAME ; class CSmsMessage * CSmsStackTestUtils::CreateSmsMessageLC(enum CSmsPDU::TSmsPDUType, class TDesC16 const &, class TDesC16 const &) + ?GetPduLC@CSmsPduDatabase@@QBEPAVCSmsPduDbPdu@@W4TSmsPDUType@CSmsPDU@@H@Z @ 117 NONAME ; class CSmsPduDbPdu * CSmsPduDatabase::GetPduLC(enum CSmsPDU::TSmsPDUType, int) const + ?PrintMessageL@CSmsBaseTestStep@@QAEXPBVCSmsMessage@@@Z @ 118 NONAME ; void CSmsBaseTestStep::PrintMessageL(class CSmsMessage const *) + ?CopyL@CEmsFormatIE@@QAEXABV1@@Z @ 119 NONAME ; void CEmsFormatIE::CopyL(class CEmsFormatIE const &) + ?WriteSmsLeaveIfErrorL@CSmsBaseTestStep@@QAEXABVCSmsMessage@@AAVRSocket@@@Z @ 120 NONAME ; void CSmsBaseTestStep::WriteSmsLeaveIfErrorL(class CSmsMessage const &, class RSocket &) + ?SizeInPixels@CEmsPictureIE@@QBE?AVTSize@@XZ @ 121 NONAME ; class TSize CEmsPictureIE::SizeInPixels(void) const + ?DeleteSmsL@CSmsBaseTestStep@@QAEHABVCSmsMessage@@AAVRSocket@@H@Z @ 122 NONAME ; int CSmsBaseTestStep::DeleteSmsL(class CSmsMessage const &, class RSocket &, int) + ?TestParameters@CSmsStackTestUtils@@QAEHAAVCMobilePhoneSmspList@@0@Z @ 123 NONAME ; int CSmsStackTestUtils::TestParameters(class CMobilePhoneSmspList &, class CMobilePhoneSmspList &) + ??1CSmsStackTestUtils@@UAE@XZ @ 124 NONAME ; CSmsStackTestUtils::~CSmsStackTestUtils(void) + ?GetLogEventL@CSmsStackTestUtils@@QAEXAAVCLogEvent@@H@Z @ 125 NONAME ; void CSmsStackTestUtils::GetLogEventL(class CLogEvent &, int) + ?PrintMessageDetailedL@CSmsBaseTestStep@@QAEXPBVCSmsMessage@@@Z @ 126 NONAME ; void CSmsBaseTestStep::PrintMessageDetailedL(class CSmsMessage const *) + ?DisableLogging@CSmsStackTestUtils@@QAEXXZ @ 127 NONAME ; void CSmsStackTestUtils::DisableLogging(void) + ?CreateAnimationL@EmsTestUtils@@YAPAVCEmsAnimationIE@@H@Z @ 128 NONAME ; class CEmsAnimationIE * EmsTestUtils::CreateAnimationL(int) + ?ChangeReceiveModeL@CSmsBaseTestStep@@QAEXW4TMobileSmsReceiveMode@RMobileSmsMessaging@@@Z @ 129 NONAME ; void CSmsBaseTestStep::ChangeReceiveModeL(enum RMobileSmsMessaging::TMobileSmsReceiveMode) + ?DeliverWithoutUserDataL@CSmsStackTestUtils@@QAEXAAVTGsmSms@@VTSmsFirstOctet@@ABVTGsmSmsTelNumber@@VTSmsProtocolIdentifier@@VTSmsDataCodingScheme@@ABVTTime@@H@Z @ 130 NONAME ; void CSmsStackTestUtils::DeliverWithoutUserDataL(class TGsmSms &, class TSmsFirstOctet, class TGsmSmsTelNumber const &, class TSmsProtocolIdentifier, class TSmsDataCodingScheme, class TTime const &, int) + ?OpenSmsSocketLC@CSmsStackTestUtils@@QAEXAAVRSocketServ@@AAVRSocket@@W4TSmsAddrFamily@@@Z @ 131 NONAME ; void CSmsStackTestUtils::OpenSmsSocketLC(class RSocketServ &, class RSocket &, enum TSmsAddrFamily) + ?OpenSmsSocketLC@CSmsStackTestUtils@@QAEXAAVRSocketServ@@AAVRSocket@@AAVTSmsAddr@@@Z @ 132 NONAME ; void CSmsStackTestUtils::OpenSmsSocketLC(class RSocketServ &, class RSocket &, class TSmsAddr &) + ?InformationElementLastIndex@CSmsUserData@@QBEHW4TSmsInformationElementIdentifier@CSmsInformationElement@@AAH@Z @ 133 NONAME ; int CSmsUserData::InformationElementLastIndex(enum CSmsInformationElement::TSmsInformationElementIdentifier, int &) const + ??1CEnhancedVoiceMailNotification@@UAE@XZ @ 134 NONAME ; CEnhancedVoiceMailNotification::~CEnhancedVoiceMailNotification(void) + ?GetVoiceMailNotifications@CEnhancedVoiceMailNotification@@QAEAAV?$RPointerArray@VCVoiceMailNotification@@@@XZ @ 135 NONAME ; class RPointerArray & CEnhancedVoiceMailNotification::GetVoiceMailNotifications(void) + ?SetMessageLength@CVoiceMailNotification@@QAEXE@Z @ 136 NONAME ; void CVoiceMailNotification::SetMessageLength(unsigned char) + ?CompareDCSL@CSmsStackTestUtils@@QAEXABVCSmsPDU@@VTSmsDataCodingScheme@@@Z @ 137 NONAME ; void CSmsStackTestUtils::CompareDCSL(class CSmsPDU const &, class TSmsDataCodingScheme) + ?Receive@CTestReceiveMessages@@QAEXXZ @ 138 NONAME ; void CTestReceiveMessages::Receive(void) + ?CreateSmsWithStatusReportReqL@CSmsBaseTestStep@@QAEPAVCSmsMessage@@ABVTDesC16@@W4TSmsAlphabet@TSmsDataCodingScheme@@@Z @ 139 NONAME ; class CSmsMessage * CSmsBaseTestStep::CreateSmsWithStatusReportReqL(class TDesC16 const &, enum TSmsDataCodingScheme::TSmsAlphabet) + ??0CTestReceiveMessages@@IAE@HAAVRSocketServ@@AAVCSmsStackTestUtils@@@Z @ 140 NONAME ; CTestReceiveMessages::CTestReceiveMessages(int, class RSocketServ &, class CSmsStackTestUtils &) + ?NewL@CTestReceiveEnumerateMessages@@SAPAV1@HAAVRSocketServ@@AAVCSmsStackTestUtils@@@Z @ 141 NONAME ; class CTestReceiveEnumerateMessages * CTestReceiveEnumerateMessages::NewL(int, class RSocketServ &, class CSmsStackTestUtils &) + ?GetIntegerFromConfigL@CSmsBaseTestStep@@QAEHABVTDesC16@@@Z @ 142 NONAME ; int CSmsBaseTestStep::GetIntegerFromConfigL(class TDesC16 const &) + ??1CEmsSoundIE@@UAE@XZ @ 143 NONAME ; CEmsSoundIE::~CEmsSoundIE(void) + ?DoSingleTestCaseL@CSmsBaseTestStep@@QAEHABVTDesC8@@H@Z @ 144 NONAME ; int CSmsBaseTestStep::DoSingleTestCaseL(class TDesC8 const &, int) + ??0TTestCase@@QAE@ABVTDesC16@@0@Z @ 145 NONAME ; TTestCase::TTestCase(class TDesC16 const &, class TDesC16 const &) + ?Data@CSmsInformationElement@@QBEABVTDesC8@@XZ @ 146 NONAME ; class TDesC8 const & CSmsInformationElement::Data(void) const + ?SetMessageId@CVoiceMailNotification@@QAEXG@Z @ 147 NONAME ; void CVoiceMailNotification::SetMessageId(unsigned short) + ?MessageExtensionIndication@CVoiceMailDeletion@@QBEHXZ @ 148 NONAME ; int CVoiceMailDeletion::MessageExtensionIndication(void) const + ??1CSmsBaseTestStep@@UAE@XZ @ 149 NONAME ; CSmsBaseTestStep::~CSmsBaseTestStep(void) + ?ConvertFromNativeL@CSmsAlphabetConverter@@QAE?AVTPtrC8@@ABVTDesC16@@W4TSmsEncoding@@AAH2@Z @ 150 NONAME ; class TPtrC8 CSmsAlphabetConverter::ConvertFromNativeL(class TDesC16 const &, enum TSmsEncoding, int &, int &) + ?Store@CEnhancedVoiceMailBoxInformation@@QBEHXZ @ 151 NONAME ; int CEnhancedVoiceMailBoxInformation::Store(void) const + ?PduFactory@CSmsPduDatabase@@QBEPAVCSmsPduDbPdu@@ABVTDesC8@@W4TSmsPDUType@CSmsPDU@@@Z @ 152 NONAME ; class CSmsPduDbPdu * CSmsPduDatabase::PduFactory(class TDesC8 const &, enum CSmsPDU::TSmsPDUType) const + ?Alignment@CEmsFormatIE@@QBE?AW4TAlignment@1@XZ @ 153 NONAME ; enum CEmsFormatIE::TAlignment CEmsFormatIE::Alignment(void) const + ?GetConcatSegmentLC@CSmsPduDatabase@@QBEPAVCSmsPduDbConcatSegment@@W4TSmsPDUType@CSmsPDU@@HH@Z @ 154 NONAME ; class CSmsPduDbConcatSegment * CSmsPduDatabase::GetConcatSegmentLC(enum CSmsPDU::TSmsPDUType, int, int) const + ?DecodeL@CSmsPduDbConcat@@QAEXAAVRFs@@@Z @ 155 NONAME ; void CSmsPduDbConcat::DecodeL(class RFs &) + ?DuplicateL@CEmsPreDefAnimationIE@@UBEPAVCEmsInformationElement@@XZ @ 156 NONAME ; class CEmsInformationElement * CEmsPreDefAnimationIE::DuplicateL(void) const + ?EncodeTSmsServiceCenterTimeStampL@CSmsStackTestUtils@@QAEXXZ @ 157 NONAME ; void CSmsStackTestUtils::EncodeTSmsServiceCenterTimeStampL(void) + ?RetrieveParamsL@CSmsStackTestUtils@@QAEHAAVCMobilePhoneSmspList@@AAVRSocket@@H@Z @ 158 NONAME ; int CSmsStackTestUtils::RetrieveParamsL(class CMobilePhoneSmspList &, class RSocket &, int) + ?PduFactoryL@CSmsPduDatabase@@QBEPAVCSmsPduDbPdu@@ABVCTestConfigItem@@W4TSmsPDUType@CSmsPDU@@@Z @ 159 NONAME ; class CSmsPduDbPdu * CSmsPduDatabase::PduFactoryL(class CTestConfigItem const &, enum CSmsPDU::TSmsPDUType) const + ?NumberOfDeletes@CEnhancedVoiceMailDeleteConfirmations@@QAEEXZ @ 160 NONAME ; unsigned char CEnhancedVoiceMailDeleteConfirmations::NumberOfDeletes(void) + ?SetIndicatorL@CSmsBaseTestStep@@QAEXABVTTestCase@@PAVCSmsMessage@@@Z @ 161 NONAME ; void CSmsBaseTestStep::SetIndicatorL(class TTestCase const &, class CSmsMessage *) + ?Start@CTestReceiveEnumerateMessages@@QAEXHHH@Z @ 162 NONAME ; void CTestReceiveEnumerateMessages::Start(int, int, int) + ?MessageId@CVoiceMailNotification@@QBEGXZ @ 163 NONAME ; unsigned short CVoiceMailNotification::MessageId(void) const + ?StoreParamsL@CSmsStackTestUtils@@QAEHAAVCMobilePhoneSmspList@@AAVRSocket@@H@Z @ 164 NONAME ; int CSmsStackTestUtils::StoreParamsL(class CMobilePhoneSmspList &, class RSocket &, int) + ??1CSmsAlphabetConverter@@UAE@XZ @ 165 NONAME ; CSmsAlphabetConverter::~CSmsAlphabetConverter(void) + ?CopyL@CEmsObjectDistribution@@QAEXABV1@@Z @ 166 NONAME ; void CEmsObjectDistribution::CopyL(class CEmsObjectDistribution const &) + ?GetVoiceMailDeletions@CEnhancedVoiceMailDeleteConfirmations@@QAEAAV?$RPointerArray@VCVoiceMailDeletion@@@@XZ @ 167 NONAME ; class RPointerArray & CEnhancedVoiceMailDeleteConfirmations::GetVoiceMailDeletions(void) + ??0CTestReceiveEnumerateMessages@@IAE@HAAVRSocketServ@@AAVCSmsStackTestUtils@@@Z @ 168 NONAME ; CTestReceiveEnumerateMessages::CTestReceiveEnumerateMessages(int, class RSocketServ &, class CSmsStackTestUtils &) + ??1CTestReceiveEnumerateMessages@@UAE@XZ @ 169 NONAME ; CTestReceiveEnumerateMessages::~CTestReceiveEnumerateMessages(void) + ?NewL@CSmsPduDatabase@@SAPAV1@AAVRFs@@@Z @ 170 NONAME ; class CSmsPduDatabase * CSmsPduDatabase::NewL(class RFs &) + ?CreateSMSL@CSmsBaseTestStep@@QAEPAVCSmsMessage@@XZ @ 171 NONAME ; class CSmsMessage * CSmsBaseTestStep::CreateSMSL(void) + ?IsSupportedL@CSmsUserData@@QAEHVTChar@@@Z @ 172 NONAME ; int CSmsUserData::IsSupportedL(class TChar) + ?SetSmsClass@TTestCase@@QAEXW4TSmsClass@TSmsDataCodingScheme@@@Z @ 173 NONAME ; void TTestCase::SetSmsClass(enum TSmsDataCodingScheme::TSmsClass) + ?SendSmsL@CSmsBaseTestStep@@QAEXPBVCSmsMessage@@AAVRSocket@@HH@Z @ 174 NONAME ; void CSmsBaseTestStep::SendSmsL(class CSmsMessage const *, class RSocket &, int, int) + ??1CVoiceMailNotification@@UAE@XZ @ 175 NONAME ; CVoiceMailNotification::~CVoiceMailNotification(void) + ?DuplicateL@CEmsPreDefSoundIE@@UBEPAVCEmsInformationElement@@XZ @ 176 NONAME ; class CEmsInformationElement * CEmsPreDefSoundIE::DuplicateL(void) const + ?CreateTSmsValidityPeriodL@CSmsStackTestUtils@@QAEXXZ @ 177 NONAME ; void CSmsStackTestUtils::CreateTSmsValidityPeriodL(void) + ?TestSmsContentsL@CSmsBaseTestStep@@QAEXPAVCSmsMessage@@ABVTDesC16@@H@Z @ 178 NONAME ; void CSmsBaseTestStep::TestSmsContentsL(class CSmsMessage *, class TDesC16 const &, int) + ?SetParsedAccessAddressL@CEnhancedVoiceMailBoxInformation@@QAEXABVTGsmSmsTelNumber@@@Z @ 179 NONAME ; void CEnhancedVoiceMailBoxInformation::SetParsedAccessAddressL(class TGsmSmsTelNumber const &) + ??1CSmsPduDbBase@@UAE@XZ @ 180 NONAME ; CSmsPduDbBase::~CSmsPduDbBase(void) + ?SetFreeDiskSpaceFromDropLevelL@CSmsBaseTestStep@@QAEXI_K@Z @ 181 NONAME ; void CSmsBaseTestStep::SetFreeDiskSpaceFromDropLevelL(unsigned int, unsigned long long) + ?GetHexPdu@CSmsPduDbPdu@@QBEXAAVTDes8@@@Z @ 182 NONAME ; void CSmsPduDbPdu::GetHexPdu(class TDes8 &) const + ?Forwarding@CEmsObjectDistribution@@QBE?AW4TAttrs@1@XZ @ 183 NONAME ; enum CEmsObjectDistribution::TAttrs CEmsObjectDistribution::Forwarding(void) const + ?SetParsedCallingLineIdentityL@CVoiceMailNotification@@QAEXAAVTGsmSmsTelNumber@@@Z @ 184 NONAME ; void CVoiceMailNotification::SetParsedCallingLineIdentityL(class TGsmSmsTelNumber &) + ?PrintSmspEntry@CSmsStackTestUtils@@QAEXAAVTMobileSmspEntryV1@RMobileSmsMessaging@@@Z @ 185 NONAME ; void CSmsStackTestUtils::PrintSmspEntry(class RMobileSmsMessaging::TMobileSmspEntryV1 &) + ?Data@CSmsInformationElement@@QAE?AVTPtr8@@XZ @ 186 NONAME ; class TPtr8 CSmsInformationElement::Data(void) + ?StoreParamsLeaveIfErrorL@CSmsStackTestUtils@@QAEXAAVCMobilePhoneSmspList@@AAVRSocket@@@Z @ 187 NONAME ; void CSmsStackTestUtils::StoreParamsLeaveIfErrorL(class CMobilePhoneSmspList &, class RSocket &) + ?FirstDeliverOctet@CSmsStackTestUtils@@QAE?AVTSmsFirstOctet@@HHHH@Z @ 188 NONAME ; class TSmsFirstOctet CSmsStackTestUtils::FirstDeliverOctet(int, int, int, int) + ?CopyL@CEmsPreDefAnimationIE@@QAEXABV1@@Z @ 189 NONAME ; void CEmsPreDefAnimationIE::CopyL(class CEmsPreDefAnimationIE const &) + ?CopyL@CEmsAnimationIE@@QAEXABV1@@Z @ 190 NONAME ; void CEmsAnimationIE::CopyL(class CEmsAnimationIE const &) + ?DuplicateL@CEmsFormatIE@@UBEPAVCEmsInformationElement@@XZ @ 191 NONAME ; class CEmsInformationElement * CEmsFormatIE::DuplicateL(void) const + ?MessageLength@CVoiceMailNotification@@QBEEXZ @ 192 NONAME ; unsigned char CVoiceMailNotification::MessageLength(void) const + ??1CSmsPduDbConcat@@UAE@XZ @ 193 NONAME ; CSmsPduDbConcat::~CSmsPduDbConcat(void) + ?EnableLogging@CSmsStackTestUtils@@QAEXXZ @ 194 NONAME ; void CSmsStackTestUtils::EnableLogging(void) + ?CommonInit@TTestCase@@AAEXXZ @ 195 NONAME ; void TTestCase::CommonInit(void) + ?PduFactoryL@CSmsPduDatabase@@QBEPAVCSmsPduDbPdu@@ABVTDesC8@@W4TSmsPDUType@CSmsPDU@@@Z @ 196 NONAME ; class CSmsPduDbPdu * CSmsPduDatabase::PduFactoryL(class TDesC8 const &, enum CSmsPDU::TSmsPDUType) const + ?AlmostMaximumCapacity@CEnhancedVoiceMailBoxInformation@@QBEHXZ @ 197 NONAME ; int CEnhancedVoiceMailBoxInformation::AlmostMaximumCapacity(void) const + ?ReadSmsStoreL@CSmsBaseTestStep@@QAEXAAVRSocket@@AAV?$RPointerArray@VCSmsMessage@@@@@Z @ 198 NONAME ; void CSmsBaseTestStep::ReadSmsStoreL(class RSocket &, class RPointerArray &) + ??0TTestCase@@QAE@ABVTDesC16@@W4TSmsInformationElementIdentifier@CSmsInformationElement@@@Z @ 199 NONAME ; TTestCase::TTestCase(class TDesC16 const &, enum CSmsInformationElement::TSmsInformationElementIdentifier) + ?ComparePIDL@CSmsStackTestUtils@@QAEXABVCSmsPDU@@VTSmsProtocolIdentifier@@@Z @ 200 NONAME ; void CSmsStackTestUtils::ComparePIDL(class CSmsPDU const &, class TSmsProtocolIdentifier) + ??4TTestCase@@QAEABV0@ABV0@@Z @ 201 NONAME ; class TTestCase const & TTestCase::operator=(class TTestCase const &) + ?NewL@CSmsPduDbMessage@@SAPAV1@AAVRFs@@ABVCTestConfigItem@@W4TSmsPDUType@CSmsPDU@@@Z @ 202 NONAME ; class CSmsPduDbMessage * CSmsPduDbMessage::NewL(class RFs &, class CTestConfigItem const &, enum CSmsPDU::TSmsPDUType) + ?InformationElement@CSmsUserData@@QBEAAVCSmsInformationElement@@H@Z @ 203 NONAME ; class CSmsInformationElement & CSmsUserData::InformationElement(int) const + ?DuplicateL@CEmsSoundIE@@UBEPAVCEmsInformationElement@@XZ @ 204 NONAME ; class CEmsInformationElement * CEmsSoundIE::DuplicateL(void) const + ?NewL@CVoiceMailDeletion@@SAPAV1@XZ @ 205 NONAME ; class CVoiceMailDeletion * CVoiceMailDeletion::NewL(void) + ?TestMessageContentsL@CSmsBaseTestStep@@QAEXPAVCSmsMessage@@ABVTTestCase@@@Z @ 206 NONAME ; void CSmsBaseTestStep::TestMessageContentsL(class CSmsMessage *, class TTestCase const &) + ??1CEmsPictureIE@@UAE@XZ @ 207 NONAME ; CEmsPictureIE::~CEmsPictureIE(void) + ?PrintAndTestDecodeL@CSmsStackTestUtils@@QAEXABVTGsmSms@@VTSmsDataCodingScheme@@VTSmsProtocolIdentifier@@ABVCSmsUserData@@HH@Z @ 208 NONAME ; void CSmsStackTestUtils::PrintAndTestDecodeL(class TGsmSms const &, class TSmsDataCodingScheme, class TSmsProtocolIdentifier, class CSmsUserData const &, int, int) + ?SetRetentionDays@CVoiceMailNotification@@QAEXE@Z @ 209 NONAME ; void CVoiceMailNotification::SetRetentionDays(unsigned char) + ?Underline@CEmsFormatIE@@QBEHXZ @ 210 NONAME ; int CEmsFormatIE::Underline(void) const + ?TimedWaitForRecvL@CSmsBaseTestStep@@QAEHAAVRSocket@@I@Z @ 211 NONAME ; int CSmsBaseTestStep::TimedWaitForRecvL(class RSocket &, unsigned int) + ?PredefinedSound@CEmsPreDefSoundIE@@QBE?AW4TPredefinedSound@1@XZ @ 212 NONAME ; enum CEmsPreDefSoundIE::TPredefinedSound CEmsPreDefSoundIE::PredefinedSound(void) const + ?EncodeInformationElementL@CEmsInformationElement@@QAEXXZ @ 213 NONAME ; void CEmsInformationElement::EncodeInformationElementL(void) + ?TestSendAndRecvMsgsWithDifferentTONL@CSmsBaseTestStep@@QAEXABV?$RPointerArray@VCSmsPduDbMessage@@@@PBV?$CArrayFixFlat@H@@1@Z @ 214 NONAME ; void CSmsBaseTestStep::TestSendAndRecvMsgsWithDifferentTONL(class RPointerArray const &, class CArrayFixFlat const *, class CArrayFixFlat const *) + ?RecvSmsL@CSmsBaseTestStep@@QAEPAVCSmsMessage@@AAVRSocket@@H@Z @ 215 NONAME ; class CSmsMessage * CSmsBaseTestStep::RecvSmsL(class RSocket &, int) + ?SetFormatLength@CEmsFormatIE@@QAEXI@Z @ 216 NONAME ; void CEmsFormatIE::SetFormatLength(unsigned int) + ?GetSectionL@CSmsStackTestUtils@@QBEAAVCTestConfigSection@@AAVCTestConfig@@H@Z @ 217 NONAME ; class CTestConfigSection & CSmsStackTestUtils::GetSectionL(class CTestConfig &, int) const + ?NumberOfVoiceMails@CEnhancedVoiceMailNotification@@QAEEXZ @ 218 NONAME ; unsigned char CEnhancedVoiceMailNotification::NumberOfVoiceMails(void) + ?ReadPduL@CSmsBaseTestStep@@QAEXV?$TBuf8@$0EA@@@AAV?$RPointerArray@VCSmsPduDbMessage@@@@@Z @ 219 NONAME ; void CSmsBaseTestStep::ReadPduL(class TBuf8<64>, class RPointerArray &) + ?SetNumberOfVoiceMessages@CEnhancedVoiceMailBoxInformation@@QAEXE@Z @ 220 NONAME ; void CEnhancedVoiceMailBoxInformation::SetNumberOfVoiceMessages(unsigned char) + ?NewL@CEmsAnimationIE@@SAPAV1@ABVCFbsBitmap@@@Z @ 221 NONAME ; class CEmsAnimationIE * CEmsAnimationIE::NewL(class CFbsBitmap const &) + ?RetentionDays@CVoiceMailNotification@@QBEEXZ @ 222 NONAME ; unsigned char CVoiceMailNotification::RetentionDays(void) const + ??1CSmsPduDatabase@@UAE@XZ @ 223 NONAME ; CSmsPduDatabase::~CSmsPduDatabase(void) + ?SetRecvForever@TTestCase@@QAEXXZ @ 224 NONAME ; void TTestCase::SetRecvForever(void) + ?ExtensionIndicator@CEnhancedVoiceMailBoxInformation@@QBEHXZ @ 225 NONAME ; int CEnhancedVoiceMailBoxInformation::ExtensionIndicator(void) const + ?ConvertToETelMM@TGsmSmsTypeOfAddress@@QBEXAAW4TMobileTON@NMobilePhone@@AAW4TMobileNPI@3@@Z @ 226 NONAME ; void TGsmSmsTypeOfAddress::ConvertToETelMM(enum NMobilePhone::TMobileTON &, enum NMobilePhone::TMobileNPI &) const + ?ConvertFromNativeL@CSmsAlphabetConverter@@QAE?AVTPtrC8@@ABVTDesC16@@@Z @ 227 NONAME ; class TPtrC8 CSmsAlphabetConverter::ConvertFromNativeL(class TDesC16 const &) + ??0CTestGetSmsList@@IAE@HAAVRSocketServ@@AAVCSmsStackTestUtils@@@Z @ 228 NONAME ; CTestGetSmsList::CTestGetSmsList(int, class RSocketServ &, class CSmsStackTestUtils &) + ?CopyL@CEmsUserPrompt@@QAEXABV1@@Z @ 229 NONAME ; void CEmsUserPrompt::CopyL(class CEmsUserPrompt const &) + ?InitializeTsyAndPhonesL@CSmsStackTestServer@@IAEXXZ @ 230 NONAME ; void CSmsStackTestServer::InitializeTsyAndPhonesL(void) + ?SetFromETelMM@TGsmSmsTypeOfAddress@@QAEXW4TMobileTON@NMobilePhone@@W4TMobileNPI@3@@Z @ 231 NONAME ; void TGsmSmsTypeOfAddress::SetFromETelMM(enum NMobilePhone::TMobileTON, enum NMobilePhone::TMobileNPI) + ??1CEnhancedVoiceMailDeleteConfirmations@@UAE@XZ @ 232 NONAME ; CEnhancedVoiceMailDeleteConfirmations::~CEnhancedVoiceMailDeleteConfirmations(void) + ?ConvertToNativeL@CSmsAlphabetConverter@@QAE?AVTPtrC16@@ABVTDesC8@@W4TSmsEncoding@@@Z @ 233 NONAME ; class TPtrC16 CSmsAlphabetConverter::ConvertToNativeL(class TDesC8 const &, enum TSmsEncoding) + ?SetAccessAddressL@CEnhancedVoiceMailBoxInformation@@QAEXABVTDesC16@@@Z @ 234 NONAME ; void CEnhancedVoiceMailBoxInformation::SetAccessAddressL(class TDesC16 const &) + ?IsSupportedL@CSmsUserData@@QBEHABVTDesC16@@AAH1@Z @ 235 NONAME ; int CSmsUserData::IsSupportedL(class TDesC16 const &, int &, int &) const + ?SendAndRecvTestMessageL@CSmsBaseTestStep@@QAEXABVTTestCase@@AAVRSocket@@@Z @ 236 NONAME ; void CSmsBaseTestStep::SendAndRecvTestMessageL(class TTestCase const &, class RSocket &) + ?NumberOfVoiceMessages@CEnhancedVoiceMailBoxInformation@@QBEEXZ @ 237 NONAME ; unsigned char CEnhancedVoiceMailBoxInformation::NumberOfVoiceMessages(void) const + ?DuplicateL@CEmsUserPrompt@@UBEPAVCEmsInformationElement@@XZ @ 238 NONAME ; class CEmsInformationElement * CEmsUserPrompt::DuplicateL(void) const + ?NewL@CTestReceiveMessages@@SAPAV1@HAAVRSocketServ@@AAVCSmsStackTestUtils@@@Z @ 239 NONAME ; class CTestReceiveMessages * CTestReceiveMessages::NewL(int, class RSocketServ &, class CSmsStackTestUtils &) + ?SetFontSize@CEmsFormatIE@@QAEXW4TFontSize@1@@Z @ 240 NONAME ; void CEmsFormatIE::SetFontSize(enum CEmsFormatIE::TFontSize) + ?IsInstanceOf@TGsmSmsTelNumber@@QAEHW4TTypeOfIndicator@1@@Z @ 241 NONAME ; int TGsmSmsTelNumber::IsInstanceOf(enum TGsmSmsTelNumber::TTypeOfIndicator) + ?CreateTSmsServiceCenterTimeStampL@CSmsStackTestUtils@@QAEXXZ @ 242 NONAME ; void CSmsStackTestUtils::CreateTSmsServiceCenterTimeStampL(void) + ?DuplicateL@CEmsPictureIE@@UBEPAVCEmsInformationElement@@XZ @ 243 NONAME ; class CEmsInformationElement * CEmsPictureIE::DuplicateL(void) const + ?PduFactory@CSmsPduDatabase@@QBEPAVCSmsPduDbPdu@@ABVCTestConfigItem@@W4TSmsPDUType@CSmsPDU@@@Z @ 244 NONAME ; class CSmsPduDbPdu * CSmsPduDatabase::PduFactory(class CTestConfigItem const &, enum CSmsPDU::TSmsPDUType) const + ??0TTestCase@@QAE@ABVTDesC16@@@Z @ 245 NONAME ; TTestCase::TTestCase(class TDesC16 const &) + ?FillDes@CSmsBaseTestStep@@QAEXAAVTDes16@@H@Z @ 246 NONAME ; void CSmsBaseTestStep::FillDes(class TDes16 &, int) + ?SendSmsAndChangeBearerL@CSmsStackTestUtils@@QAEXPAVCSmsMessage@@AAVRSocket@@W4TMobileSmsBearer@RMobileSmsMessaging@@@Z @ 247 NONAME ; void CSmsStackTestUtils::SendSmsAndChangeBearerL(class CSmsMessage *, class RSocket &, enum RMobileSmsMessaging::TMobileSmsBearer) + ?SetTestNumberFromConfigurationFileL@CSmsBaseTestStep@@QAEXXZ @ 248 NONAME ; void CSmsBaseTestStep::SetTestNumberFromConfigurationFileL(void) + ?ChangeBearerL@CSmsStackTestUtils@@QAEXW4TMobileSmsBearer@RMobileSmsMessaging@@@Z @ 249 NONAME ; void CSmsStackTestUtils::ChangeBearerL(enum RMobileSmsMessaging::TMobileSmsBearer) + ?CopyL@CEmsPictureIE@@QAEXABV1@@Z @ 250 NONAME ; void CEmsPictureIE::CopyL(class CEmsPictureIE const &) + ?DecodeTSmsValidityPeriodL@CSmsStackTestUtils@@QAEXXZ @ 251 NONAME ; void CSmsStackTestUtils::DecodeTSmsValidityPeriodL(void) + ?SendAndRecvSms7BitL@CSmsBaseTestStep@@QAEXABVTDesC16@@AAVRSocket@@@Z @ 252 NONAME ; void CSmsBaseTestStep::SendAndRecvSms7BitL(class TDesC16 const &, class RSocket &) + ??0TTestCase@@QAE@XZ @ 253 NONAME ; TTestCase::TTestCase(void) + ?CancelWriteSmsToSimL@CSmsBaseTestStep@@QAEHAAVCSmsMessage@@AAVRSocket@@H@Z @ 254 NONAME ; int CSmsBaseTestStep::CancelWriteSmsToSimL(class CSmsMessage &, class RSocket &, int) + ?SetAlmostMaximumCapacity@CEnhancedVoiceMailBoxInformation@@QAEXH@Z @ 255 NONAME ; void CEnhancedVoiceMailBoxInformation::SetAlmostMaximumCapacity(int) + ?GetBitmapL@CEmsAnimationIE@@QBEPAVCFbsBitmap@@XZ @ 256 NONAME ; class CFbsBitmap * CEmsAnimationIE::GetBitmapL(void) const + ?SetPriorityIndication@CVoiceMailNotification@@QAEXH@Z @ 257 NONAME ; void CVoiceMailNotification::SetPriorityIndication(int) + ?FontSize@CEmsFormatIE@@QBE?AW4TFontSize@1@XZ @ 258 NONAME ; enum CEmsFormatIE::TFontSize CEmsFormatIE::FontSize(void) const + ?GetBearerL@CSmsStackTestUtils@@QAEXAAW4TMobileSmsBearer@RMobileSmsMessaging@@@Z @ 259 NONAME ; void CSmsStackTestUtils::GetBearerL(enum RMobileSmsMessaging::TMobileSmsBearer &) + ??0TTestCase@@QAE@ABVTDesC16@@W4TSmsIndicationType@TSmsDataCodingScheme@@W4TSmsDCSBits7To4@3@W4TSmsIndicationState@3@@Z @ 260 NONAME ; TTestCase::TTestCase(class TDesC16 const &, enum TSmsDataCodingScheme::TSmsIndicationType, enum TSmsDataCodingScheme::TSmsDCSBits7To4, enum TSmsDataCodingScheme::TSmsIndicationState) + ?GetMessageL@CSmsPduDatabase@@QBEXAAV?$RPointerArray@VCSmsPduDbMessage@@@@W4TSmsPDUType@CSmsPDU@@@Z @ 261 NONAME ; void CSmsPduDatabase::GetMessageL(class RPointerArray &, enum CSmsPDU::TSmsPDUType) const + ?MakeReadSmsStoreRequestL@CSmsBaseTestStep@@QAEHAAVRSocket@@@Z @ 262 NONAME ; int CSmsBaseTestStep::MakeReadSmsStoreRequestL(class RSocket &) + ??1CVoiceMailDeletion@@UAE@XZ @ 263 NONAME ; CVoiceMailDeletion::~CVoiceMailDeletion(void) + ?EncodeTSmsValidityPeriodL@CSmsStackTestUtils@@QAEXXZ @ 264 NONAME ; void CSmsStackTestUtils::EncodeTSmsValidityPeriodL(void) + ?MakeParametersReadRequestL@CSmsStackTestUtils@@QAEXAAVRSocket@@@Z @ 265 NONAME ; void CSmsStackTestUtils::MakeParametersReadRequestL(class RSocket &) + ?NewL@CTestGetSmsList@@SAPAV1@HAAVRSocketServ@@AAVCSmsStackTestUtils@@@Z @ 266 NONAME ; class CTestGetSmsList * CTestGetSmsList::NewL(int, class RSocketServ &, class CSmsStackTestUtils &) + ?GetConcatLC@CSmsPduDatabase@@QBEPAVCSmsPduDbConcat@@W4TSmsPDUType@CSmsPDU@@H@Z @ 267 NONAME ; class CSmsPduDbConcat * CSmsPduDatabase::GetConcatLC(enum CSmsPDU::TSmsPDUType, int) const + ?SetMaximumCapacity@CEnhancedVoiceMailBoxInformation@@QAEXH@Z @ 268 NONAME ; void CEnhancedVoiceMailBoxInformation::SetMaximumCapacity(int) + ?SetStrikethrough@CEmsFormatIE@@QAEXH@Z @ 269 NONAME ; void CEmsFormatIE::SetStrikethrough(int) + ?DuplicateL@CEmsAnimationIE@@UBEPAVCEmsInformationElement@@XZ @ 270 NONAME ; class CEmsInformationElement * CEmsAnimationIE::DuplicateL(void) const + ?ConnectSocketServerLC@CSmsBaseTestStep@@QAEXAAVRSocketServ@@@Z @ 271 NONAME ; void CSmsBaseTestStep::ConnectSocketServerLC(class RSocketServ &) + ?DoESockMemoryLeakTestL@CSmsBaseTestStep@@QAEXXZ @ 272 NONAME ; void CSmsBaseTestStep::DoESockMemoryLeakTestL(void) + ?GetMessageLC@CSmsPduDatabase@@QBEPAVCSmsPduDbMessage@@W4TSmsPDUType@CSmsPDU@@H@Z @ 273 NONAME ; class CSmsPduDbMessage * CSmsPduDatabase::GetMessageLC(enum CSmsPDU::TSmsPDUType, int) const + ?OpenSmsSocketL@CSmsBaseTestStep@@QAEXAAVRSocketServ@@AAVRSocket@@W4TSmsAddrFamily@@@Z @ 274 NONAME ; void CSmsBaseTestStep::OpenSmsSocketL(class RSocketServ &, class RSocket &, enum TSmsAddrFamily) + ?SetForwarding@CEmsObjectDistribution@@QAEXW4TAttrs@1@@Z @ 275 NONAME ; void CEmsObjectDistribution::SetForwarding(enum CEmsObjectDistribution::TAttrs) + ?CallingLineIdentity@CVoiceMailNotification@@QBE?AVTPtrC16@@XZ @ 276 NONAME ; class TPtrC16 CVoiceMailNotification::CallingLineIdentity(void) const + ?NewL@CSmsPduDbConcatSegment@@SAPAV1@AAVRFs@@ABVCTestConfigItem@@W4TSmsPDUType@CSmsPDU@@@Z @ 277 NONAME ; class CSmsPduDbConcatSegment * CSmsPduDbConcatSegment::NewL(class RFs &, class CTestConfigItem const &, enum CSmsPDU::TSmsPDUType) + ?AddSmsTxL@CSmsStackTestUtils@@QBEXAAVCTestConfig@@HAAVCSmsMessage@@ABVTDesC16@@HPAV3@H@Z @ 278 NONAME ; void CSmsStackTestUtils::AddSmsTxL(class CTestConfig &, int, class CSmsMessage &, class TDesC16 const &, int, class CSmsMessage *, int) const diff -r 962e6306d9d2 -r 7ef16719d8cb smsprotocols/smsstack/test/eabi/smsstacktestutilitiesU.def --- a/smsprotocols/smsstack/test/eabi/smsstacktestutilitiesU.def Fri Feb 19 23:59:33 2010 +0200 +++ b/smsprotocols/smsstack/test/eabi/smsstacktestutilitiesU.def Fri Mar 12 15:49:38 2010 +0200 @@ -51,240 +51,329 @@ _ZN15CSmsPduDbConcatD2Ev @ 50 NONAME _ZN15CTestGetSmsList10GetSmsListER14TRequestStatus @ 51 NONAME _ZN15CTestGetSmsList4NewLEiR11RSocketServR18CSmsStackTestUtils @ 52 NONAME - _ZN16CSmsPduDbMessage4NewLER3RFsRK15CTestConfigItemN7CSmsPDU11TSmsPDUTypeE @ 53 NONAME - _ZN16TGsmSmsTelNumber12IsInstanceOfENS_16TTypeOfIndicatorE @ 54 NONAME - _ZN17CEmsPreDefSoundIE4NewLENS_16TPredefinedSoundE @ 55 NONAME - _ZN17CEmsPreDefSoundIE5CopyLERKS_ @ 56 NONAME - _ZN18CSmsStackTestUtils10CompareUDLERK7CSmsPDURK12CSmsUserData @ 57 NONAME - _ZN18CSmsStackTestUtils10GetBearerLERN19RMobileSmsMessaging16TMobileSmsBearerE @ 58 NONAME - _ZN18CSmsStackTestUtils11CompareDCSLERK7CSmsPDU20TSmsDataCodingScheme @ 59 NONAME - _ZN18CSmsStackTestUtils11ComparePIDLERK7CSmsPDU22TSmsProtocolIdentifier @ 60 NONAME - _ZN18CSmsStackTestUtils12AddLogEventLER11CSmsMessageR14TLogSmsPduData @ 61 NONAME - _ZN18CSmsStackTestUtils12GetLogEventLER9CLogEventi @ 62 NONAME - _ZN18CSmsStackTestUtils12StoreParamsLER20CMobilePhoneSmspListR7RSocketi @ 63 NONAME - _ZN18CSmsStackTestUtils13ChangeBearerLEN19RMobileSmsMessaging16TMobileSmsBearerE @ 64 NONAME - _ZN18CSmsStackTestUtils13PrintSmspListER20CMobilePhoneSmspList @ 65 NONAME - _ZN18CSmsStackTestUtils14OpenSmsSocketLER11RSocketServR7RSocket14TSmsAddrFamily @ 66 NONAME - _ZN18CSmsStackTestUtils14OpenSmsSocketLER11RSocketServR7RSocketR8TSmsAddr @ 67 NONAME - _ZN18CSmsStackTestUtils14PrintSmspEntryERN19RMobileSmsMessaging18TMobileSmspEntryV1E @ 68 NONAME - _ZN18CSmsStackTestUtils14TestParametersER20CMobilePhoneSmspListS1_ @ 69 NONAME - _ZN18CSmsStackTestUtils15AppendUserDataLER7TGsmSmsRK12CSmsUserDatai @ 70 NONAME - _ZN18CSmsStackTestUtils15CopyConfigFileLERK7TDesC16P15CSmsPduDatabase @ 71 NONAME - _ZN18CSmsStackTestUtils15OpenSmsSocketLCER11RSocketServR7RSocket14TSmsAddrFamily @ 72 NONAME - _ZN18CSmsStackTestUtils15OpenSmsSocketLCER11RSocketServR7RSocketR8TSmsAddr @ 73 NONAME - _ZN18CSmsStackTestUtils15RetrieveParamsLER20CMobilePhoneSmspListR7RSocketi @ 74 NONAME - _ZN18CSmsStackTestUtils16TestPhoneNumbersERKN12RMobilePhone14TMobileAddressES3_ @ 75 NONAME - _ZN18CSmsStackTestUtils17FirstDeliverOctetEiiii @ 76 NONAME - _ZN18CSmsStackTestUtils18CreateSmsMessageLCEN7CSmsPDU11TSmsPDUTypeERK7TDesC16S4_ @ 77 NONAME - _ZN18CSmsStackTestUtils18WaitForInitializeLEv @ 78 NONAME - _ZN18CSmsStackTestUtils19PrintAndTestDecodeLERK7TGsmSms20TSmsDataCodingScheme22TSmsProtocolIdentifierRK12CSmsUserDataii @ 79 NONAME - _ZN18CSmsStackTestUtils23DeliverWithoutUserDataLER7TGsmSms14TSmsFirstOctetRK16TGsmSmsTelNumber22TSmsProtocolIdentifier20TSmsDataCodingSchemeRK5TTimei @ 80 NONAME - _ZN18CSmsStackTestUtils23SendSmsAndChangeBearerLEP11CSmsMessageR7RSocketN19RMobileSmsMessaging16TMobileSmsBearerE @ 81 NONAME - _ZN18CSmsStackTestUtils24StoreParamsLeaveIfErrorLER20CMobilePhoneSmspListR7RSocket @ 82 NONAME - _ZN18CSmsStackTestUtils25CreateTSmsValidityPeriodLEv @ 83 NONAME - _ZN18CSmsStackTestUtils25DecodeTSmsValidityPeriodLEv @ 84 NONAME - _ZN18CSmsStackTestUtils25EncodeTSmsValidityPeriodLEv @ 85 NONAME - _ZN18CSmsStackTestUtils26MakeParametersReadRequestLER7RSocket @ 86 NONAME - _ZN18CSmsStackTestUtils33CreateTSmsServiceCenterTimeStampLEv @ 87 NONAME - _ZN18CSmsStackTestUtils33DecodeTSmsServiceCenterTimeStampLEv @ 88 NONAME - _ZN18CSmsStackTestUtils33EncodeTSmsServiceCenterTimeStampLEv @ 89 NONAME - _ZN18CSmsStackTestUtils4NewLEP9CTestStepR3RFs @ 90 NONAME - _ZN18CSmsStackTestUtilsD0Ev @ 91 NONAME - _ZN18CSmsStackTestUtilsD1Ev @ 92 NONAME - _ZN18CSmsStackTestUtilsD2Ev @ 93 NONAME - _ZN18CVoiceMailDeletion12SetMessageIdEt @ 94 NONAME - _ZN18CVoiceMailDeletion4NewLEv @ 95 NONAME - _ZN18CVoiceMailDeletionD0Ev @ 96 NONAME - _ZN18CVoiceMailDeletionD1Ev @ 97 NONAME - _ZN18CVoiceMailDeletionD2Ev @ 98 NONAME - _ZN20CTestReceiveMessages4NewLEiR11RSocketServR18CSmsStackTestUtils @ 99 NONAME - _ZN20CTestReceiveMessages7ReceiveER14TRequestStatusi @ 100 NONAME - _ZN20CTestReceiveMessages7ReceiveEv @ 101 NONAME - _ZN20TGsmSmsTypeOfAddress13SetFromETelMMEN12NMobilePhone10TMobileTONENS0_10TMobileNPIE @ 102 NONAME - _ZN21CEmsPreDefAnimationIE13SetAnimationLENS_9TAnimTypeE @ 103 NONAME - _ZN21CEmsPreDefAnimationIE4NewLENS_9TAnimTypeE @ 104 NONAME - _ZN21CEmsPreDefAnimationIE5CopyLERKS_ @ 105 NONAME - _ZN21CSmsAlphabetConverter16ConvertToNativeLERK6TDesC8 @ 106 NONAME - _ZN21CSmsAlphabetConverter18ConvertFromNativeLERK7TDesC16 @ 107 NONAME - _ZN21CSmsAlphabetConverter5NewLCER25CCnvCharacterSetConverterR3RFsN20TSmsDataCodingScheme12TSmsAlphabetEi @ 108 NONAME - _ZN21CSmsAlphabetConverterD0Ev @ 109 NONAME - _ZN21CSmsAlphabetConverterD1Ev @ 110 NONAME - _ZN21CSmsAlphabetConverterD2Ev @ 111 NONAME - _ZN22CEmsInformationElement16SetStartPositionEj @ 112 NONAME - _ZN22CEmsInformationElement25EncodeInformationElementLEv @ 113 NONAME - _ZN22CEmsObjectDistribution13SetForwardingENS_6TAttrsE @ 114 NONAME - _ZN22CEmsObjectDistribution14SetObjectCountEj @ 115 NONAME - _ZN22CEmsObjectDistribution4NewLEjNS_6TAttrsE @ 116 NONAME - _ZN22CEmsObjectDistribution5CopyLERKS_ @ 117 NONAME - _ZN22CSmsInformationElement4DataEv @ 118 NONAME - _ZN22CSmsPduDbConcatSegment4NewLER3RFsRK15CTestConfigItemN7CSmsPDU11TSmsPDUTypeE @ 119 NONAME - _ZN22CVoiceMailNotification12SetMessageIdEt @ 120 NONAME - _ZN22CVoiceMailNotification16SetMessageLengthEh @ 121 NONAME - _ZN22CVoiceMailNotification16SetRetentionDaysEh @ 122 NONAME - _ZN22CVoiceMailNotification21SetPriorityIndicationEi @ 123 NONAME - _ZN22CVoiceMailNotification23SetCallingLineIdentityLER7TDesC16 @ 124 NONAME - _ZN22CVoiceMailNotification29SetParsedCallingLineIdentityLER16TGsmSmsTelNumber @ 125 NONAME - _ZN22CVoiceMailNotification4NewLEv @ 126 NONAME - _ZN22CVoiceMailNotificationD0Ev @ 127 NONAME - _ZN22CVoiceMailNotificationD1Ev @ 128 NONAME - _ZN22CVoiceMailNotificationD2Ev @ 129 NONAME - _ZN29CTestReceiveEnumerateMessages4NewLEiR11RSocketServR18CSmsStackTestUtils @ 130 NONAME - _ZN29CTestReceiveEnumerateMessages5StartEiii @ 131 NONAME - _ZN29CTestReceiveEnumerateMessagesD0Ev @ 132 NONAME - _ZN29CTestReceiveEnumerateMessagesD1Ev @ 133 NONAME - _ZN29CTestReceiveEnumerateMessagesD2Ev @ 134 NONAME - _ZN30CEnhancedVoiceMailNotification18NumberOfVoiceMailsEv @ 135 NONAME - _ZN30CEnhancedVoiceMailNotification25GetVoiceMailNotificationsEv @ 136 NONAME - _ZN30CEnhancedVoiceMailNotification4NewLEv @ 137 NONAME - _ZN30CEnhancedVoiceMailNotificationD0Ev @ 138 NONAME - _ZN30CEnhancedVoiceMailNotificationD1Ev @ 139 NONAME - _ZN30CEnhancedVoiceMailNotificationD2Ev @ 140 NONAME - _ZN32CEnhancedVoiceMailBoxInformation10SetProfileE22TSmsMessageProfileType @ 141 NONAME - _ZN32CEnhancedVoiceMailBoxInformation10SetStorageEi @ 142 NONAME - _ZN32CEnhancedVoiceMailBoxInformation17SetAccessAddressLERK7TDesC16 @ 143 NONAME - _ZN32CEnhancedVoiceMailBoxInformation18SetMaximumCapacityEi @ 144 NONAME - _ZN32CEnhancedVoiceMailBoxInformation23SetParsedAccessAddressLERK16TGsmSmsTelNumber @ 145 NONAME - _ZN32CEnhancedVoiceMailBoxInformation24SetAlmostMaximumCapacityEi @ 146 NONAME - _ZN32CEnhancedVoiceMailBoxInformation24SetNumberOfVoiceMessagesEh @ 147 NONAME - _ZN37CEnhancedVoiceMailDeleteConfirmations15NumberOfDeletesEv @ 148 NONAME - _ZN37CEnhancedVoiceMailDeleteConfirmations21GetVoiceMailDeletionsEv @ 149 NONAME - _ZN37CEnhancedVoiceMailDeleteConfirmations4NewLEv @ 150 NONAME - _ZN37CEnhancedVoiceMailDeleteConfirmationsD0Ev @ 151 NONAME - _ZN37CEnhancedVoiceMailDeleteConfirmationsD1Ev @ 152 NONAME - _ZN37CEnhancedVoiceMailDeleteConfirmationsD2Ev @ 153 NONAME - _ZNK11CEmsSoundIE10DuplicateLEv @ 154 NONAME - _ZNK11CEmsSoundIE6MelodyEv @ 155 NONAME - _ZNK12CEmsFormatIE10DuplicateLEv @ 156 NONAME - _ZNK12CEmsFormatIE12FormatLengthEv @ 157 NONAME - _ZNK12CEmsFormatIE13StrikethroughEv @ 158 NONAME - _ZNK12CEmsFormatIE4BoldEv @ 159 NONAME - _ZNK12CEmsFormatIE6ItalicEv @ 160 NONAME - _ZNK12CEmsFormatIE8FontSizeEv @ 161 NONAME - _ZNK12CEmsFormatIE9AlignmentEv @ 162 NONAME - _ZNK12CEmsFormatIE9UnderlineEv @ 163 NONAME - _ZNK12CSmsPduDbPdu9GetHexPduER5TDes8 @ 164 NONAME - _ZNK12CSmsUserData18InformationElementEi @ 165 NONAME - _ZNK12CSmsUserData20MaxBodyLengthInCharsEv @ 166 NONAME - _ZNK12CSmsUserData23InformationElementIndexEN22CSmsInformationElement32TSmsInformationElementIdentifierERi @ 167 NONAME - _ZNK12CSmsUserData4BodyEv @ 168 NONAME - _ZNK13CEmsPictureIE10DuplicateLEv @ 169 NONAME - _ZNK13CEmsPictureIE10GetBitmapLEv @ 170 NONAME - _ZNK13CEmsPictureIE12SizeInPixelsEv @ 171 NONAME - _ZNK14CEmsUserPrompt10DuplicateLEv @ 172 NONAME - _ZNK14CEmsUserPrompt11ObjectCountEv @ 173 NONAME - _ZNK15CEmsAnimationIE10DuplicateLEv @ 174 NONAME - _ZNK15CEmsAnimationIE10GetBitmapLEv @ 175 NONAME - _ZNK15CSmsPduDatabase10GetConcatLER13RPointerArrayI15CSmsPduDbConcatEN7CSmsPDU11TSmsPDUTypeE @ 176 NONAME - _ZNK15CSmsPduDatabase10PduFactoryERK15CTestConfigItemN7CSmsPDU11TSmsPDUTypeE @ 177 NONAME - _ZNK15CSmsPduDatabase10PduFactoryERK6TDesC8N7CSmsPDU11TSmsPDUTypeE @ 178 NONAME - _ZNK15CSmsPduDatabase11GetConcatLCEN7CSmsPDU11TSmsPDUTypeEi @ 179 NONAME - _ZNK15CSmsPduDatabase11GetMessageLER13RPointerArrayI16CSmsPduDbMessageEN7CSmsPDU11TSmsPDUTypeE @ 180 NONAME - _ZNK15CSmsPduDatabase11PduFactoryLERK15CTestConfigItemN7CSmsPDU11TSmsPDUTypeE @ 181 NONAME - _ZNK15CSmsPduDatabase11PduFactoryLERK6TDesC8N7CSmsPDU11TSmsPDUTypeE @ 182 NONAME - _ZNK15CSmsPduDatabase12GetMessageLCEN7CSmsPDU11TSmsPDUTypeEi @ 183 NONAME - _ZNK15CSmsPduDatabase12RewriteFileLERK7TDesC16S2_S2_ @ 184 NONAME - _ZNK15CSmsPduDatabase18GetConcatSegmentLCEN7CSmsPDU11TSmsPDUTypeEii @ 185 NONAME - _ZNK15CSmsPduDatabase7GetPduLER13RPointerArrayI12CSmsPduDbPduEN7CSmsPDU11TSmsPDUTypeE @ 186 NONAME - _ZNK15CSmsPduDatabase8GetPduLCEN7CSmsPDU11TSmsPDUTypeEi @ 187 NONAME - _ZNK17CEmsPreDefSoundIE10DuplicateLEv @ 188 NONAME - _ZNK17CEmsPreDefSoundIE15PredefinedSoundEv @ 189 NONAME - _ZNK18CSmsStackTestUtils11GetSectionLER11CTestConfigi @ 190 NONAME - _ZNK18CSmsStackTestUtils14ConvertToHexLCERK6TDesC8 @ 191 NONAME - _ZNK18CSmsStackTestUtils9AddSmsRxLER11CTestConfigiR11CSmsMessageRK7TDesC16 @ 192 NONAME - _ZNK18CSmsStackTestUtils9AddSmsTxLER11CTestConfigiR11CSmsMessageRK7TDesC16iPS2_i @ 193 NONAME - _ZNK18CVoiceMailDeletion26MessageExtensionIndicationEv @ 194 NONAME - _ZNK18CVoiceMailDeletion9MessageIdEv @ 195 NONAME - _ZNK20TGsmSmsTypeOfAddress15ConvertToETelMMERN12NMobilePhone10TMobileTONERNS0_10TMobileNPIE @ 196 NONAME - _ZNK21CEmsPreDefAnimationIE10DuplicateLEv @ 197 NONAME - _ZNK21CEmsPreDefAnimationIE9AnimationEv @ 198 NONAME - _ZNK22CEmsInformationElement13StartPositionEv @ 199 NONAME - _ZNK22CEmsInformationElement6LengthEv @ 200 NONAME - _ZNK22CEmsObjectDistribution10DuplicateLEv @ 201 NONAME - _ZNK22CEmsObjectDistribution10ForwardingEv @ 202 NONAME - _ZNK22CEmsObjectDistribution11ObjectCountEv @ 203 NONAME - _ZNK22CSmsInformationElement10IdentifierEv @ 204 NONAME - _ZNK22CSmsInformationElement4DataEv @ 205 NONAME - _ZNK22CVoiceMailNotification13MessageLengthEv @ 206 NONAME - _ZNK22CVoiceMailNotification13RetentionDaysEv @ 207 NONAME - _ZNK22CVoiceMailNotification18PriorityIndicationEv @ 208 NONAME - _ZNK22CVoiceMailNotification19CallingLineIdentityEv @ 209 NONAME - _ZNK22CVoiceMailNotification25ParsedCallingLineIdentityER16TGsmSmsTelNumber @ 210 NONAME - _ZNK22CVoiceMailNotification26MessageExtensionIndicationEv @ 211 NONAME - _ZNK22CVoiceMailNotification9MessageIdEv @ 212 NONAME - _ZNK32CEnhancedVoiceMailBoxInformation13AccessAddressEv @ 213 NONAME - _ZNK32CEnhancedVoiceMailBoxInformation15MaximumCapacityEv @ 214 NONAME - _ZNK32CEnhancedVoiceMailBoxInformation18ExtensionIndicatorEv @ 215 NONAME - _ZNK32CEnhancedVoiceMailBoxInformation19ParsedAccessAddressER16TGsmSmsTelNumber @ 216 NONAME - _ZNK32CEnhancedVoiceMailBoxInformation21AlmostMaximumCapacityEv @ 217 NONAME - _ZNK32CEnhancedVoiceMailBoxInformation21NumberOfVoiceMessagesEv @ 218 NONAME - _ZNK32CEnhancedVoiceMailBoxInformation4TypeEv @ 219 NONAME - _ZNK32CEnhancedVoiceMailBoxInformation5StoreEv @ 220 NONAME - _ZNK32CEnhancedVoiceMailBoxInformation7ProfileEv @ 221 NONAME - _ZTI11CEmsSoundIE @ 222 NONAME - _ZTI11CSmsAddress @ 223 NONAME - _ZTI12CEmsFormatIE @ 224 NONAME - _ZTI12CSmsPduDbPdu @ 225 NONAME - _ZTI12CSmsUserData @ 226 NONAME - _ZTI13CEmsPictureIE @ 227 NONAME - _ZTI13CSmsPduDbBase @ 228 NONAME - _ZTI14CEmsUserPrompt @ 229 NONAME - _ZTI15CEmsAnimationIE @ 230 NONAME - _ZTI15CSmsCommandData @ 231 NONAME - _ZTI15CSmsPduDatabase @ 232 NONAME - _ZTI15CSmsPduDbConcat @ 233 NONAME - _ZTI15CTestGetSmsList @ 234 NONAME - _ZTI16CSmsPduDbMessage @ 235 NONAME - _ZTI17CEmsPreDefSoundIE @ 236 NONAME - _ZTI17CTSmsRegTstActive @ 237 NONAME - _ZTI18CSmsStackTestUtils @ 238 NONAME - _ZTI18CVoiceMailDeletion @ 239 NONAME - _ZTI20CTestReceiveMessages @ 240 NONAME - _ZTI21CEmsPreDefAnimationIE @ 241 NONAME - _ZTI21CSmsAlphabetConverter @ 242 NONAME - _ZTI22CEmsInformationElement @ 243 NONAME - _ZTI22CEmsObjectDistribution @ 244 NONAME - _ZTI22CSmsInformationElement @ 245 NONAME - _ZTI22CSmsPduDbConcatSegment @ 246 NONAME - _ZTI22CVoiceMailNotification @ 247 NONAME - _ZTI29CTestReceiveEnumerateMessages @ 248 NONAME - _ZTI30CEnhancedVoiceMailNotification @ 249 NONAME - _ZTI32CEnhancedVoiceMailBoxInformation @ 250 NONAME - _ZTI37CEnhancedVoiceMailDeleteConfirmations @ 251 NONAME - _ZTV11CEmsSoundIE @ 252 NONAME - _ZTV11CSmsAddress @ 253 NONAME - _ZTV12CEmsFormatIE @ 254 NONAME - _ZTV12CSmsPduDbPdu @ 255 NONAME - _ZTV12CSmsUserData @ 256 NONAME - _ZTV13CEmsPictureIE @ 257 NONAME - _ZTV13CSmsPduDbBase @ 258 NONAME - _ZTV14CEmsUserPrompt @ 259 NONAME - _ZTV15CEmsAnimationIE @ 260 NONAME - _ZTV15CSmsCommandData @ 261 NONAME - _ZTV15CSmsPduDatabase @ 262 NONAME - _ZTV15CSmsPduDbConcat @ 263 NONAME - _ZTV15CTestGetSmsList @ 264 NONAME - _ZTV16CSmsPduDbMessage @ 265 NONAME - _ZTV17CEmsPreDefSoundIE @ 266 NONAME - _ZTV17CTSmsRegTstActive @ 267 NONAME - _ZTV18CSmsStackTestUtils @ 268 NONAME - _ZTV18CVoiceMailDeletion @ 269 NONAME - _ZTV20CTestReceiveMessages @ 270 NONAME - _ZTV21CEmsPreDefAnimationIE @ 271 NONAME - _ZTV21CSmsAlphabetConverter @ 272 NONAME - _ZTV22CEmsInformationElement @ 273 NONAME - _ZTV22CEmsObjectDistribution @ 274 NONAME - _ZTV22CSmsInformationElement @ 275 NONAME - _ZTV22CSmsPduDbConcatSegment @ 276 NONAME - _ZTV22CVoiceMailNotification @ 277 NONAME - _ZTV29CTestReceiveEnumerateMessages @ 278 NONAME - _ZTV30CEnhancedVoiceMailNotification @ 279 NONAME - _ZTV32CEnhancedVoiceMailBoxInformation @ 280 NONAME - _ZTV37CEnhancedVoiceMailDeleteConfirmations @ 281 NONAME - _ZN21CSmsAlphabetConverter16ConvertToNativeLERK6TDesC812TSmsEncoding @ 282 NONAME - _ZN21CSmsAlphabetConverter18ConvertFromNativeLERK7TDesC1612TSmsEncodingRiS4_ @ 283 NONAME - _ZNK12CSmsUserData12IsSupportedLERK7TDesC1612TSmsEncodingRiS4_S4_S4_ @ 284 NONAME - _ZNK12CSmsUserData12IsSupportedLERK7TDesC16RiS3_ @ 285 NONAME - _ZNK12CSmsUserData27InformationElementLastIndexEN22CSmsInformationElement32TSmsInformationElementIdentifierERi @ 286 NONAME - _ZN18CSmsStackTestUtils13EnableLoggingEv @ 287 NONAME - _ZN18CSmsStackTestUtils14DisableLoggingEv @ 288 NONAME + _ZN15CTestGetSmsListC1EiR11RSocketServR18CSmsStackTestUtils @ 53 NONAME + _ZN15CTestGetSmsListC2EiR11RSocketServR18CSmsStackTestUtils @ 54 NONAME + _ZN16CSmsBaseTestStep10CreateSMSLEv @ 55 NONAME + _ZN16CSmsBaseTestStep10DeleteSmsLERK11CSmsMessageR7RSocketi @ 56 NONAME + _ZN16CSmsBaseTestStep12WaitForRecvLER7RSocket @ 57 NONAME + _ZN16CSmsBaseTestStep13PrintMessageLEPK11CSmsMessage @ 58 NONAME + _ZN16CSmsBaseTestStep13ReadSmsStoreLER7RSocketR13RPointerArrayI11CSmsMessageE @ 59 NONAME + _ZN16CSmsBaseTestStep13ReadSmsStoreLER7RSocketR13RPointerArrayI11CSmsMessageER14TRequestStatus @ 60 NONAME + _ZN16CSmsBaseTestStep13SendSmsErrorLEP11CSmsMessageR7RSocket @ 61 NONAME + _ZN16CSmsBaseTestStep13SetIndicatorLERK9TTestCaseP11CSmsMessage @ 62 NONAME + _ZN16CSmsBaseTestStep14OpenSmsSocketLER11RSocketServR7RSocket14TSmsAddrFamily @ 63 NONAME + _ZN16CSmsBaseTestStep14OpenSmsSocketLER11RSocketServR7RSocketR8TSmsAddr @ 64 NONAME + _ZN16CSmsBaseTestStep14RecvSmsFailedLER7RSocket @ 65 NONAME + _ZN16CSmsBaseTestStep14SendSmsCancelLEP11CSmsMessageR7RSocketS3_ @ 66 NONAME + _ZN16CSmsBaseTestStep14SetTestNumberLEii @ 67 NONAME + _ZN16CSmsBaseTestStep14WriteSmsToSimLER11CSmsMessageR7RSocket @ 68 NONAME + _ZN16CSmsBaseTestStep15SendCommandSmsLEP11CSmsMessageR7RSocket @ 69 NONAME + _ZN16CSmsBaseTestStep16SendTestMessageLERK9TTestCaseR7RSocket @ 70 NONAME + _ZN16CSmsBaseTestStep16TestSmsContentsLEP11CSmsMessageRK7TDesC16i @ 71 NONAME + _ZN16CSmsBaseTestStep17CreateSmsMessageLERK7TDesC16N20TSmsDataCodingScheme12TSmsAlphabetEN7CSmsPDU11TSmsPDUTypeE @ 72 NONAME + _ZN16CSmsBaseTestStep17DoSendAndRecvSmsLERK7TDesC16N20TSmsDataCodingScheme12TSmsAlphabetER7RSocket @ 73 NONAME + _ZN16CSmsBaseTestStep17DoSingleTestCaseLERK6TDesC8i @ 74 NONAME + _ZN16CSmsBaseTestStep17RecvStatusReportLER4TBufILi14EER7RSocket @ 75 NONAME + _ZN16CSmsBaseTestStep17ReleaseDiskSpaceLEv @ 76 NONAME + _ZN16CSmsBaseTestStep17SetFreeDiskSpaceLEx @ 77 NONAME + _ZN16CSmsBaseTestStep17TimedWaitForRecvLER7RSocketj @ 78 NONAME + _ZN16CSmsBaseTestStep18ChangeReceiveModeLEN19RMobileSmsMessaging21TMobileSmsReceiveModeE @ 79 NONAME + _ZN16CSmsBaseTestStep18CreateSmsMessageLCEN7CSmsPDU11TSmsPDUTypeEP10CSmsBufferRK7TDesC16 @ 80 NONAME + _ZN16CSmsBaseTestStep18CreateSmsMessageLCERK7TDesC16N20TSmsDataCodingScheme12TSmsAlphabetEN7CSmsPDU11TSmsPDUTypeE @ 81 NONAME + _ZN16CSmsBaseTestStep19SendAndRecvSms7BitLERK7TDesC16R7RSocket @ 82 NONAME + _ZN16CSmsBaseTestStep19doTestStepPreambleLEv @ 83 NONAME + _ZN16CSmsBaseTestStep20CancelWriteSmsToSimLER11CSmsMessageR7RSocketi @ 84 NONAME + _ZN16CSmsBaseTestStep20ConnectSocketServerLER11RSocketServ @ 85 NONAME + _ZN16CSmsBaseTestStep20GetStringFromConfigLERK7TDesC16 @ 86 NONAME + _ZN16CSmsBaseTestStep20SetSimTSYTestNumberLEi @ 87 NONAME + _ZN16CSmsBaseTestStep20TestMessageContentsLEP11CSmsMessageRK9TTestCase @ 88 NONAME + _ZN16CSmsBaseTestStep20doTestStepPostambleLEv @ 89 NONAME + _ZN16CSmsBaseTestStep21ConnectSocketServerLCER11RSocketServ @ 90 NONAME + _ZN16CSmsBaseTestStep21GetIntegerFromConfigLERK7TDesC16 @ 91 NONAME + _ZN16CSmsBaseTestStep21PrintMessageDetailedLEPK11CSmsMessage @ 92 NONAME + _ZN16CSmsBaseTestStep21WriteSmsLeaveIfErrorLERK11CSmsMessageR7RSocket @ 93 NONAME + _ZN16CSmsBaseTestStep22DeleteSmsLeaveIfErrorLERK11CSmsMessageR7RSocket @ 94 NONAME + _ZN16CSmsBaseTestStep22DoESockMemoryLeakTestLEv @ 95 NONAME + _ZN16CSmsBaseTestStep22ParseSettingsFromFileLEv @ 96 NONAME + _ZN16CSmsBaseTestStep23SendAndRecvTestMessageLERK9TTestCaseR7RSocket @ 97 NONAME + _ZN16CSmsBaseTestStep23UpdatePhonePowerStatusLER9RProperty14TSAPhoneStatus @ 98 NONAME + _ZN16CSmsBaseTestStep24MakeReadSmsStoreRequestLER7RSocket @ 99 NONAME + _ZN16CSmsBaseTestStep26SetLowHighLimitsInSmsuRscLExx @ 100 NONAME + _ZN16CSmsBaseTestStep28SendSmsDontCheckReturnValueLEP11CSmsMessageR7RSocket @ 101 NONAME + _ZN16CSmsBaseTestStep29CreateSmsWithStatusReportReqLERK7TDesC16N20TSmsDataCodingScheme12TSmsAlphabetE @ 102 NONAME + _ZN16CSmsBaseTestStep30SetFreeDiskSpaceFromDropLevelLEjy @ 103 NONAME + _ZN16CSmsBaseTestStep31RemoveLowHighLimitsFromSmsuRscLEv @ 104 NONAME + _ZN16CSmsBaseTestStep32TestSendAndReceiveIndicatorMsgsLERK13RPointerArrayI16CSmsPduDbMessageEPK13CArrayFixFlatIiES8_S8_ @ 105 NONAME + _ZN16CSmsBaseTestStep34SetHighLowLimitsAndDiskSpaceLevelLEjjjy @ 106 NONAME + _ZN16CSmsBaseTestStep35SetTestNumberFromConfigurationFileLEv @ 107 NONAME + _ZN16CSmsBaseTestStep36TestSendAndRecvMsgsWithDifferentTONLERK13RPointerArrayI16CSmsPduDbMessageEPK13CArrayFixFlatIiES8_ @ 108 NONAME + _ZN16CSmsBaseTestStep7FillDesER6TDes16i @ 109 NONAME + _ZN16CSmsBaseTestStep8ReadPduLE5TBuf8ILi64EER13RPointerArrayI16CSmsPduDbMessageE @ 110 NONAME + _ZN16CSmsBaseTestStep8RecvSmsLER7RSocketi @ 111 NONAME + _ZN16CSmsBaseTestStep8SendSmsLEPK11CSmsMessageR7RSocketii @ 112 NONAME + _ZN16CSmsBaseTestStepC2Ev @ 113 NONAME + _ZN16CSmsBaseTestStepD0Ev @ 114 NONAME + _ZN16CSmsBaseTestStepD1Ev @ 115 NONAME + _ZN16CSmsBaseTestStepD2Ev @ 116 NONAME + _ZN16CSmsPduDbMessage4NewLER3RFsRK15CTestConfigItemN7CSmsPDU11TSmsPDUTypeE @ 117 NONAME + _ZN16TGsmSmsTelNumber12IsInstanceOfENS_16TTypeOfIndicatorE @ 118 NONAME + _ZN17CEmsPreDefSoundIE4NewLENS_16TPredefinedSoundE @ 119 NONAME + _ZN17CEmsPreDefSoundIE5CopyLERKS_ @ 120 NONAME + _ZN18CSmsStackTestUtils10CompareUDLERK7CSmsPDURK12CSmsUserData @ 121 NONAME + _ZN18CSmsStackTestUtils10GetBearerLERN19RMobileSmsMessaging16TMobileSmsBearerE @ 122 NONAME + _ZN18CSmsStackTestUtils11CompareDCSLERK7CSmsPDU20TSmsDataCodingScheme @ 123 NONAME + _ZN18CSmsStackTestUtils11ComparePIDLERK7CSmsPDU22TSmsProtocolIdentifier @ 124 NONAME + _ZN18CSmsStackTestUtils12AddLogEventLER11CSmsMessageR14TLogSmsPduData @ 125 NONAME + _ZN18CSmsStackTestUtils12GetLogEventLER9CLogEventi @ 126 NONAME + _ZN18CSmsStackTestUtils12StoreParamsLER20CMobilePhoneSmspListR7RSocketi @ 127 NONAME + _ZN18CSmsStackTestUtils13ChangeBearerLEN19RMobileSmsMessaging16TMobileSmsBearerE @ 128 NONAME + _ZN18CSmsStackTestUtils13EnableLoggingEv @ 129 NONAME + _ZN18CSmsStackTestUtils13PrintSmspListER20CMobilePhoneSmspList @ 130 NONAME + _ZN18CSmsStackTestUtils14DisableLoggingEv @ 131 NONAME + _ZN18CSmsStackTestUtils14OpenSmsSocketLER11RSocketServR7RSocket14TSmsAddrFamily @ 132 NONAME + _ZN18CSmsStackTestUtils14OpenSmsSocketLER11RSocketServR7RSocketR8TSmsAddr @ 133 NONAME + _ZN18CSmsStackTestUtils14PrintSmspEntryERN19RMobileSmsMessaging18TMobileSmspEntryV1E @ 134 NONAME + _ZN18CSmsStackTestUtils14TestParametersER20CMobilePhoneSmspListS1_ @ 135 NONAME + _ZN18CSmsStackTestUtils15AppendUserDataLER7TGsmSmsRK12CSmsUserDatai @ 136 NONAME + _ZN18CSmsStackTestUtils15CopyConfigFileLERK7TDesC16P15CSmsPduDatabase @ 137 NONAME + _ZN18CSmsStackTestUtils15OpenSmsSocketLCER11RSocketServR7RSocket14TSmsAddrFamily @ 138 NONAME + _ZN18CSmsStackTestUtils15OpenSmsSocketLCER11RSocketServR7RSocketR8TSmsAddr @ 139 NONAME + _ZN18CSmsStackTestUtils15RetrieveParamsLER20CMobilePhoneSmspListR7RSocketi @ 140 NONAME + _ZN18CSmsStackTestUtils16TestPhoneNumbersERKN12RMobilePhone14TMobileAddressES3_ @ 141 NONAME + _ZN18CSmsStackTestUtils17FirstDeliverOctetEiiii @ 142 NONAME + _ZN18CSmsStackTestUtils18CreateSmsMessageLCEN7CSmsPDU11TSmsPDUTypeERK7TDesC16S4_ @ 143 NONAME + _ZN18CSmsStackTestUtils19PrintAndTestDecodeLERK7TGsmSms20TSmsDataCodingScheme22TSmsProtocolIdentifierRK12CSmsUserDataii @ 144 NONAME + _ZN18CSmsStackTestUtils23DeliverWithoutUserDataLER7TGsmSms14TSmsFirstOctetRK16TGsmSmsTelNumber22TSmsProtocolIdentifier20TSmsDataCodingSchemeRK5TTimei @ 145 NONAME + _ZN18CSmsStackTestUtils23SendSmsAndChangeBearerLEP11CSmsMessageR7RSocketN19RMobileSmsMessaging16TMobileSmsBearerE @ 146 NONAME + _ZN18CSmsStackTestUtils24StoreParamsLeaveIfErrorLER20CMobilePhoneSmspListR7RSocket @ 147 NONAME + _ZN18CSmsStackTestUtils25CreateTSmsValidityPeriodLEv @ 148 NONAME + _ZN18CSmsStackTestUtils25DecodeTSmsValidityPeriodLEv @ 149 NONAME + _ZN18CSmsStackTestUtils25EncodeTSmsValidityPeriodLEv @ 150 NONAME + _ZN18CSmsStackTestUtils26MakeParametersReadRequestLER7RSocket @ 151 NONAME + _ZN18CSmsStackTestUtils33CreateTSmsServiceCenterTimeStampLEv @ 152 NONAME + _ZN18CSmsStackTestUtils33DecodeTSmsServiceCenterTimeStampLEv @ 153 NONAME + _ZN18CSmsStackTestUtils33EncodeTSmsServiceCenterTimeStampLEv @ 154 NONAME + _ZN18CSmsStackTestUtils4NewLEP9CTestStepR3RFs @ 155 NONAME + _ZN18CSmsStackTestUtilsD0Ev @ 156 NONAME + _ZN18CSmsStackTestUtilsD1Ev @ 157 NONAME + _ZN18CSmsStackTestUtilsD2Ev @ 158 NONAME + _ZN18CVoiceMailDeletion12SetMessageIdEt @ 159 NONAME + _ZN18CVoiceMailDeletion4NewLEv @ 160 NONAME + _ZN18CVoiceMailDeletionD0Ev @ 161 NONAME + _ZN18CVoiceMailDeletionD1Ev @ 162 NONAME + _ZN18CVoiceMailDeletionD2Ev @ 163 NONAME + _ZN19CSmsStackTestServer23InitializeTsyAndPhonesLEv @ 164 NONAME + _ZN19CSmsStackTestServerC2Ev @ 165 NONAME + _ZN19CSmsStackTestServerD0Ev @ 166 NONAME + _ZN19CSmsStackTestServerD1Ev @ 167 NONAME + _ZN19CSmsStackTestServerD2Ev @ 168 NONAME + _ZN20CTestReceiveMessages4NewLEiR11RSocketServR18CSmsStackTestUtils @ 169 NONAME + _ZN20CTestReceiveMessages7ReceiveER14TRequestStatusi @ 170 NONAME + _ZN20CTestReceiveMessages7ReceiveEv @ 171 NONAME + _ZN20TGsmSmsTypeOfAddress13SetFromETelMMEN12NMobilePhone10TMobileTONENS0_10TMobileNPIE @ 172 NONAME + _ZN21CEmsPreDefAnimationIE13SetAnimationLENS_9TAnimTypeE @ 173 NONAME + _ZN21CEmsPreDefAnimationIE4NewLENS_9TAnimTypeE @ 174 NONAME + _ZN21CEmsPreDefAnimationIE5CopyLERKS_ @ 175 NONAME + _ZN21CSmsAlphabetConverter16ConvertToNativeLERK6TDesC8 @ 176 NONAME + _ZN21CSmsAlphabetConverter16ConvertToNativeLERK6TDesC812TSmsEncoding @ 177 NONAME + _ZN21CSmsAlphabetConverter18ConvertFromNativeLERK7TDesC16 @ 178 NONAME + _ZN21CSmsAlphabetConverter18ConvertFromNativeLERK7TDesC1612TSmsEncodingRiS4_ @ 179 NONAME + _ZN21CSmsAlphabetConverter5NewLCER25CCnvCharacterSetConverterR3RFsN20TSmsDataCodingScheme12TSmsAlphabetEi @ 180 NONAME + _ZN21CSmsAlphabetConverterD0Ev @ 181 NONAME + _ZN21CSmsAlphabetConverterD1Ev @ 182 NONAME + _ZN21CSmsAlphabetConverterD2Ev @ 183 NONAME + _ZN22CEmsInformationElement16SetStartPositionEj @ 184 NONAME + _ZN22CEmsInformationElement25EncodeInformationElementLEv @ 185 NONAME + _ZN22CEmsObjectDistribution13SetForwardingENS_6TAttrsE @ 186 NONAME + _ZN22CEmsObjectDistribution14SetObjectCountEj @ 187 NONAME + _ZN22CEmsObjectDistribution4NewLEjNS_6TAttrsE @ 188 NONAME + _ZN22CEmsObjectDistribution5CopyLERKS_ @ 189 NONAME + _ZN22CSmsInformationElement4DataEv @ 190 NONAME + _ZN22CSmsPduDbConcatSegment4NewLER3RFsRK15CTestConfigItemN7CSmsPDU11TSmsPDUTypeE @ 191 NONAME + _ZN22CVoiceMailNotification12SetMessageIdEt @ 192 NONAME + _ZN22CVoiceMailNotification16SetMessageLengthEh @ 193 NONAME + _ZN22CVoiceMailNotification16SetRetentionDaysEh @ 194 NONAME + _ZN22CVoiceMailNotification21SetPriorityIndicationEi @ 195 NONAME + _ZN22CVoiceMailNotification23SetCallingLineIdentityLER7TDesC16 @ 196 NONAME + _ZN22CVoiceMailNotification29SetParsedCallingLineIdentityLER16TGsmSmsTelNumber @ 197 NONAME + _ZN22CVoiceMailNotification4NewLEv @ 198 NONAME + _ZN22CVoiceMailNotificationD0Ev @ 199 NONAME + _ZN22CVoiceMailNotificationD1Ev @ 200 NONAME + _ZN22CVoiceMailNotificationD2Ev @ 201 NONAME + _ZN29CTestReceiveEnumerateMessages4NewLEiR11RSocketServR18CSmsStackTestUtils @ 202 NONAME + _ZN29CTestReceiveEnumerateMessages5StartEiii @ 203 NONAME + _ZN29CTestReceiveEnumerateMessagesD0Ev @ 204 NONAME + _ZN29CTestReceiveEnumerateMessagesD1Ev @ 205 NONAME + _ZN29CTestReceiveEnumerateMessagesD2Ev @ 206 NONAME + _ZN30CEnhancedVoiceMailNotification18NumberOfVoiceMailsEv @ 207 NONAME + _ZN30CEnhancedVoiceMailNotification25GetVoiceMailNotificationsEv @ 208 NONAME + _ZN30CEnhancedVoiceMailNotification4NewLEv @ 209 NONAME + _ZN30CEnhancedVoiceMailNotificationD0Ev @ 210 NONAME + _ZN30CEnhancedVoiceMailNotificationD1Ev @ 211 NONAME + _ZN30CEnhancedVoiceMailNotificationD2Ev @ 212 NONAME + _ZN32CEnhancedVoiceMailBoxInformation10SetProfileE22TSmsMessageProfileType @ 213 NONAME + _ZN32CEnhancedVoiceMailBoxInformation10SetStorageEi @ 214 NONAME + _ZN32CEnhancedVoiceMailBoxInformation17SetAccessAddressLERK7TDesC16 @ 215 NONAME + _ZN32CEnhancedVoiceMailBoxInformation18SetMaximumCapacityEi @ 216 NONAME + _ZN32CEnhancedVoiceMailBoxInformation23SetParsedAccessAddressLERK16TGsmSmsTelNumber @ 217 NONAME + _ZN32CEnhancedVoiceMailBoxInformation24SetAlmostMaximumCapacityEi @ 218 NONAME + _ZN32CEnhancedVoiceMailBoxInformation24SetNumberOfVoiceMessagesEh @ 219 NONAME + _ZN37CEnhancedVoiceMailDeleteConfirmations15NumberOfDeletesEv @ 220 NONAME + _ZN37CEnhancedVoiceMailDeleteConfirmations21GetVoiceMailDeletionsEv @ 221 NONAME + _ZN37CEnhancedVoiceMailDeleteConfirmations4NewLEv @ 222 NONAME + _ZN37CEnhancedVoiceMailDeleteConfirmationsD0Ev @ 223 NONAME + _ZN37CEnhancedVoiceMailDeleteConfirmationsD1Ev @ 224 NONAME + _ZN37CEnhancedVoiceMailDeleteConfirmationsD2Ev @ 225 NONAME + _ZN9TTestCase10CommonInitEv @ 226 NONAME + _ZN9TTestCase11SetSmsClassEN20TSmsDataCodingScheme9TSmsClassE @ 227 NONAME + _ZN9TTestCase14SetRecvForeverEv @ 228 NONAME + _ZN9TTestCase17SetValidityPeriodERK20TTimeIntervalMinutes @ 229 NONAME + _ZN9TTestCaseC1ERK7TDesC16 @ 230 NONAME + _ZN9TTestCaseC1ERK7TDesC16N14TSmsFirstOctet23TSmsStatusReportRequestE @ 231 NONAME + _ZN9TTestCaseC1ERK7TDesC16N20TSmsDataCodingScheme18TSmsIndicationTypeENS3_15TSmsDCSBits7To4ENS3_19TSmsIndicationStateE @ 232 NONAME + _ZN9TTestCaseC1ERK7TDesC16N22CSmsInformationElement32TSmsInformationElementIdentifierE @ 233 NONAME + _ZN9TTestCaseC1ERK7TDesC16S2_ @ 234 NONAME + _ZN9TTestCaseC1Ev @ 235 NONAME + _ZN9TTestCaseC2ERK7TDesC16 @ 236 NONAME + _ZN9TTestCaseC2ERK7TDesC16N14TSmsFirstOctet23TSmsStatusReportRequestE @ 237 NONAME + _ZN9TTestCaseC2ERK7TDesC16N20TSmsDataCodingScheme18TSmsIndicationTypeENS3_15TSmsDCSBits7To4ENS3_19TSmsIndicationStateE @ 238 NONAME + _ZN9TTestCaseC2ERK7TDesC16N22CSmsInformationElement32TSmsInformationElementIdentifierE @ 239 NONAME + _ZN9TTestCaseC2ERK7TDesC16S2_ @ 240 NONAME + _ZN9TTestCaseC2Ev @ 241 NONAME + _ZN9TTestCaseaSERKS_ @ 242 NONAME + _ZNK11CEmsSoundIE10DuplicateLEv @ 243 NONAME + _ZNK11CEmsSoundIE6MelodyEv @ 244 NONAME + _ZNK12CEmsFormatIE10DuplicateLEv @ 245 NONAME + _ZNK12CEmsFormatIE12FormatLengthEv @ 246 NONAME + _ZNK12CEmsFormatIE13StrikethroughEv @ 247 NONAME + _ZNK12CEmsFormatIE4BoldEv @ 248 NONAME + _ZNK12CEmsFormatIE6ItalicEv @ 249 NONAME + _ZNK12CEmsFormatIE8FontSizeEv @ 250 NONAME + _ZNK12CEmsFormatIE9AlignmentEv @ 251 NONAME + _ZNK12CEmsFormatIE9UnderlineEv @ 252 NONAME + _ZNK12CSmsPduDbPdu9GetHexPduER5TDes8 @ 253 NONAME + _ZNK12CSmsUserData12IsSupportedLERK7TDesC1612TSmsEncodingRiS4_S4_S4_ @ 254 NONAME + _ZNK12CSmsUserData12IsSupportedLERK7TDesC16RiS3_ @ 255 NONAME + _ZNK12CSmsUserData18InformationElementEi @ 256 NONAME + _ZNK12CSmsUserData20MaxBodyLengthInCharsEv @ 257 NONAME + _ZNK12CSmsUserData23InformationElementIndexEN22CSmsInformationElement32TSmsInformationElementIdentifierERi @ 258 NONAME + _ZNK12CSmsUserData27InformationElementLastIndexEN22CSmsInformationElement32TSmsInformationElementIdentifierERi @ 259 NONAME + _ZNK12CSmsUserData4BodyEv @ 260 NONAME + _ZNK13CEmsPictureIE10DuplicateLEv @ 261 NONAME + _ZNK13CEmsPictureIE10GetBitmapLEv @ 262 NONAME + _ZNK13CEmsPictureIE12SizeInPixelsEv @ 263 NONAME + _ZNK14CEmsUserPrompt10DuplicateLEv @ 264 NONAME + _ZNK14CEmsUserPrompt11ObjectCountEv @ 265 NONAME + _ZNK15CEmsAnimationIE10DuplicateLEv @ 266 NONAME + _ZNK15CEmsAnimationIE10GetBitmapLEv @ 267 NONAME + _ZNK15CSmsPduDatabase10GetConcatLER13RPointerArrayI15CSmsPduDbConcatEN7CSmsPDU11TSmsPDUTypeE @ 268 NONAME + _ZNK15CSmsPduDatabase10PduFactoryERK15CTestConfigItemN7CSmsPDU11TSmsPDUTypeE @ 269 NONAME + _ZNK15CSmsPduDatabase10PduFactoryERK6TDesC8N7CSmsPDU11TSmsPDUTypeE @ 270 NONAME + _ZNK15CSmsPduDatabase11GetConcatLCEN7CSmsPDU11TSmsPDUTypeEi @ 271 NONAME + _ZNK15CSmsPduDatabase11GetMessageLER13RPointerArrayI16CSmsPduDbMessageEN7CSmsPDU11TSmsPDUTypeE @ 272 NONAME + _ZNK15CSmsPduDatabase11PduFactoryLERK15CTestConfigItemN7CSmsPDU11TSmsPDUTypeE @ 273 NONAME + _ZNK15CSmsPduDatabase11PduFactoryLERK6TDesC8N7CSmsPDU11TSmsPDUTypeE @ 274 NONAME + _ZNK15CSmsPduDatabase12GetMessageLCEN7CSmsPDU11TSmsPDUTypeEi @ 275 NONAME + _ZNK15CSmsPduDatabase12RewriteFileLERK7TDesC16S2_S2_ @ 276 NONAME + _ZNK15CSmsPduDatabase18GetConcatSegmentLCEN7CSmsPDU11TSmsPDUTypeEii @ 277 NONAME + _ZNK15CSmsPduDatabase7GetPduLER13RPointerArrayI12CSmsPduDbPduEN7CSmsPDU11TSmsPDUTypeE @ 278 NONAME + _ZNK15CSmsPduDatabase8GetPduLCEN7CSmsPDU11TSmsPDUTypeEi @ 279 NONAME + _ZNK17CEmsPreDefSoundIE10DuplicateLEv @ 280 NONAME + _ZNK17CEmsPreDefSoundIE15PredefinedSoundEv @ 281 NONAME + _ZNK18CSmsStackTestUtils11GetSectionLER11CTestConfigi @ 282 NONAME + _ZNK18CSmsStackTestUtils14ConvertToHexLCERK6TDesC8 @ 283 NONAME + _ZNK18CSmsStackTestUtils9AddSmsRxLER11CTestConfigiR11CSmsMessageRK7TDesC16 @ 284 NONAME + _ZNK18CSmsStackTestUtils9AddSmsTxLER11CTestConfigiR11CSmsMessageRK7TDesC16iPS2_i @ 285 NONAME + _ZNK18CVoiceMailDeletion26MessageExtensionIndicationEv @ 286 NONAME + _ZNK18CVoiceMailDeletion9MessageIdEv @ 287 NONAME + _ZNK20TGsmSmsTypeOfAddress15ConvertToETelMMERN12NMobilePhone10TMobileTONERNS0_10TMobileNPIE @ 288 NONAME + _ZNK21CEmsPreDefAnimationIE10DuplicateLEv @ 289 NONAME + _ZNK21CEmsPreDefAnimationIE9AnimationEv @ 290 NONAME + _ZNK22CEmsInformationElement13StartPositionEv @ 291 NONAME + _ZNK22CEmsInformationElement6LengthEv @ 292 NONAME + _ZNK22CEmsObjectDistribution10DuplicateLEv @ 293 NONAME + _ZNK22CEmsObjectDistribution10ForwardingEv @ 294 NONAME + _ZNK22CEmsObjectDistribution11ObjectCountEv @ 295 NONAME + _ZNK22CSmsInformationElement10IdentifierEv @ 296 NONAME + _ZNK22CSmsInformationElement4DataEv @ 297 NONAME + _ZNK22CVoiceMailNotification13MessageLengthEv @ 298 NONAME + _ZNK22CVoiceMailNotification13RetentionDaysEv @ 299 NONAME + _ZNK22CVoiceMailNotification18PriorityIndicationEv @ 300 NONAME + _ZNK22CVoiceMailNotification19CallingLineIdentityEv @ 301 NONAME + _ZNK22CVoiceMailNotification25ParsedCallingLineIdentityER16TGsmSmsTelNumber @ 302 NONAME + _ZNK22CVoiceMailNotification26MessageExtensionIndicationEv @ 303 NONAME + _ZNK22CVoiceMailNotification9MessageIdEv @ 304 NONAME + _ZNK32CEnhancedVoiceMailBoxInformation13AccessAddressEv @ 305 NONAME + _ZNK32CEnhancedVoiceMailBoxInformation15MaximumCapacityEv @ 306 NONAME + _ZNK32CEnhancedVoiceMailBoxInformation18ExtensionIndicatorEv @ 307 NONAME + _ZNK32CEnhancedVoiceMailBoxInformation19ParsedAccessAddressER16TGsmSmsTelNumber @ 308 NONAME + _ZNK32CEnhancedVoiceMailBoxInformation21AlmostMaximumCapacityEv @ 309 NONAME + _ZNK32CEnhancedVoiceMailBoxInformation21NumberOfVoiceMessagesEv @ 310 NONAME + _ZNK32CEnhancedVoiceMailBoxInformation4TypeEv @ 311 NONAME + _ZNK32CEnhancedVoiceMailBoxInformation5StoreEv @ 312 NONAME + _ZNK32CEnhancedVoiceMailBoxInformation7ProfileEv @ 313 NONAME + _ZTI11CEmsSoundIE @ 314 NONAME + _ZTI11CSmsAddress @ 315 NONAME + _ZTI12CEmsFormatIE @ 316 NONAME + _ZTI12CSmsPduDbPdu @ 317 NONAME + _ZTI12CSmsUserData @ 318 NONAME + _ZTI13CEmsPictureIE @ 319 NONAME + _ZTI13CSmsPduDbBase @ 320 NONAME + _ZTI14CEmsUserPrompt @ 321 NONAME + _ZTI15CEmsAnimationIE @ 322 NONAME + _ZTI15CSmsCommandData @ 323 NONAME + _ZTI15CSmsPduDatabase @ 324 NONAME + _ZTI15CSmsPduDbConcat @ 325 NONAME + _ZTI15CTestGetSmsList @ 326 NONAME + _ZTI16CSmsBaseTestStep @ 327 NONAME + _ZTI16CSmsPduDbMessage @ 328 NONAME + _ZTI17CEmsPreDefSoundIE @ 329 NONAME + _ZTI17CTSmsRegTstActive @ 330 NONAME + _ZTI18CSmsStackTestUtils @ 331 NONAME + _ZTI18CVoiceMailDeletion @ 332 NONAME + _ZTI19CSmsStackTestServer @ 333 NONAME + _ZTI20CTestReceiveMessages @ 334 NONAME + _ZTI21CEmsPreDefAnimationIE @ 335 NONAME + _ZTI21CSmsAlphabetConverter @ 336 NONAME + _ZTI22CEmsInformationElement @ 337 NONAME + _ZTI22CEmsObjectDistribution @ 338 NONAME + _ZTI22CSmsInformationElement @ 339 NONAME + _ZTI22CSmsPduDbConcatSegment @ 340 NONAME + _ZTI22CVoiceMailNotification @ 341 NONAME + _ZTI29CTestReceiveEnumerateMessages @ 342 NONAME + _ZTI30CEnhancedVoiceMailNotification @ 343 NONAME + _ZTI32CEnhancedVoiceMailBoxInformation @ 344 NONAME + _ZTI37CEnhancedVoiceMailDeleteConfirmations @ 345 NONAME + _ZTV11CEmsSoundIE @ 346 NONAME + _ZTV11CSmsAddress @ 347 NONAME + _ZTV12CEmsFormatIE @ 348 NONAME + _ZTV12CSmsPduDbPdu @ 349 NONAME + _ZTV12CSmsUserData @ 350 NONAME + _ZTV13CEmsPictureIE @ 351 NONAME + _ZTV13CSmsPduDbBase @ 352 NONAME + _ZTV14CEmsUserPrompt @ 353 NONAME + _ZTV15CEmsAnimationIE @ 354 NONAME + _ZTV15CSmsCommandData @ 355 NONAME + _ZTV15CSmsPduDatabase @ 356 NONAME + _ZTV15CSmsPduDbConcat @ 357 NONAME + _ZTV15CTestGetSmsList @ 358 NONAME + _ZTV16CSmsBaseTestStep @ 359 NONAME + _ZTV16CSmsPduDbMessage @ 360 NONAME + _ZTV17CEmsPreDefSoundIE @ 361 NONAME + _ZTV17CTSmsRegTstActive @ 362 NONAME + _ZTV18CSmsStackTestUtils @ 363 NONAME + _ZTV18CVoiceMailDeletion @ 364 NONAME + _ZTV19CSmsStackTestServer @ 365 NONAME + _ZTV20CTestReceiveMessages @ 366 NONAME + _ZTV21CEmsPreDefAnimationIE @ 367 NONAME + _ZTV21CSmsAlphabetConverter @ 368 NONAME + _ZTV22CEmsInformationElement @ 369 NONAME + _ZTV22CEmsObjectDistribution @ 370 NONAME + _ZTV22CSmsInformationElement @ 371 NONAME + _ZTV22CSmsPduDbConcatSegment @ 372 NONAME + _ZTV22CVoiceMailNotification @ 373 NONAME + _ZTV29CTestReceiveEnumerateMessages @ 374 NONAME + _ZTV30CEnhancedVoiceMailNotification @ 375 NONAME + _ZTV32CEnhancedVoiceMailBoxInformation @ 376 NONAME + _ZTV37CEnhancedVoiceMailDeleteConfirmations @ 377 NONAME diff -r 962e6306d9d2 -r 7ef16719d8cb smsprotocols/smsstack/test/smsstackbackupeskfile.script --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/smsprotocols/smsstack/test/smsstackbackupeskfile.script Fri Mar 12 15:49:38 2010 +0200 @@ -0,0 +1,24 @@ +// Copyright (c) 2009-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: +// + +//! @file +//! @SYMTestSuiteName CBS-SMS +//! @SYMScriptTestEnvironment + +RUN_UTILS MakeReadWrite c:\private\101F7989\esock\smswap.sms.bak +RUN_UTILS DeleteFile c:\private\101F7989\esock\smswap.sms.bak +RUN_UTILS CopyFile c:\private\101F7989\esock\smswap.sms.esk c:\private\101F7989\esock\smswap.sms.bak +RUN_UTILS MakeReadWrite c:\private\101F7989\esock\smswap.sms.bak +RUN_UTILS MakeReadWrite c:\private\101F7989\esock\smswap.sms.esk diff -r 962e6306d9d2 -r 7ef16719d8cb smsprotocols/smsstack/test/smsstackbasetestserver.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/smsprotocols/smsstack/test/smsstackbasetestserver.cpp Fri Mar 12 15:49:38 2010 +0200 @@ -0,0 +1,172 @@ +// Copyright (c) 1999-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: +// + +// @file +// @test + +#include "smsstackbasetestserver.h" +#include +#include +#include +#include + +using namespace CommsDat; + +EXPORT_C CSmsStackTestServer::CSmsStackTestServer() + { + } + +EXPORT_C CSmsStackTestServer::~CSmsStackTestServer() + { + iPhone1.Close(); + iPhone2.Close(); + iTelServer.Close(); + } + +EXPORT_C void CSmsStackTestServer::InitializeTsyAndPhonesL() +/** + * This functions first gets the list of TSYs from Commsdat and then load each TSY in order. + * Having loaded the TSY, the function opens a phone session to this TSY. + * Maximum two TSYs are loaded. If there is only one TSY, aPhone2 parameter is not changed. + */ + { + TInt err = iTelServer.Connect(); + + if ( KErrNone != err ) + { + ERR_PRINTF2(_L("Couldn't connect to ETel server. Error:%d"), err); + User::Leave( err ); + } + + RArray tsyNameList; + CleanupClosePushL(tsyNameList); + + GetTsyNamesFromCommsdatL(tsyNameList); + + TInt tsyCount = tsyNameList.Count(); + + if( tsyCount < 1 ) + { + ERR_PRINTF1(_L("Couldn't find any TSY record in Commsdat Baseband table.")); + User::Leave( KErrNotFound ); + } + else if ( tsyCount > 2) + { + ERR_PRINTF2(_L("Found %d baseband record. First two TSY will be loaded."), tsyCount); + } + + LoadTsyL(iTelServer, iPhone1, tsyNameList[0]); + if(--tsyCount) + { + LoadTsyL(iTelServer, iPhone2, tsyNameList[1]); + } + + CleanupStack::PopAndDestroy(&tsyNameList); + } + +void CSmsStackTestServer::GetTsyNamesFromCommsdatL(RArray& aTsyNameList) + { + CMDBSession* db = CMDBSession::NewL(KCDVersion1_2); + CleanupStack::PushL(db); + + TName tsy; + TUint32 modemId = 0; + + CMDBField* globalSettingsField = new(ELeave) CMDBField(KCDTIdModemPhoneServicesSMS); + CleanupStack::PushL(globalSettingsField); + globalSettingsField->SetRecordId(1); + globalSettingsField->LoadL(*db); + modemId = *globalSettingsField; + CleanupStack::PopAndDestroy(globalSettingsField); + + CMDBField* tsyField = new(ELeave) CMDBField(KCDTIdTsyName); + CleanupStack::PushL(tsyField); + tsyField->SetRecordId(modemId); + tsyField->SetMaxLengthL(KMaxTextLength); + tsyField->LoadL(*db); + tsy = *tsyField; + aTsyNameList.AppendL(tsy); + + CleanupStack::PopAndDestroy(2, db); // db, tsyField + } + +void CSmsStackTestServer::LoadTsyL(RTelServer& aServer, RPhone& aPhone, const TDesC& aTsyName) + { + INFO_PRINTF2(_L("Using TSY \"%S\"Loading RTelServer..."), &aTsyName); + + TInt ret = aServer.LoadPhoneModule(aTsyName); + if (ret!=KErrNone) + { + ERR_PRINTF2(_L("Loading Phone Module returned %d"), ret); + User::Leave(ret); + } + + // Find the phone corresponding to this TSY and open a number of handles on it + TInt numPhones; + ret = aServer.EnumeratePhones(numPhones); + if (ret!=KErrNone) + { + ERR_PRINTF2(_L("Enumerate Phones returned %d"), ret); + User::Leave(ret); + } + + TBool found=EFalse; + + while (numPhones--) + { + TName phoneTsy; + ret = aServer.GetTsyName(numPhones,phoneTsy); + if (ret!=KErrNone) + { + ERR_PRINTF2(_L("GetTsyName returned %d"), ret); + User::Leave(ret); + } + + if (phoneTsy.CompareF(aTsyName)==KErrNone) + { + INFO_PRINTF1(_L("Found RPhone...")); + found = ETrue; + RTelServer::TPhoneInfo info; + ret = aServer.GetPhoneInfo(numPhones,info); + if (ret!=KErrNone) + { + ERR_PRINTF2(_L("GetPhoneInfo returned %d"), ret); + User::Leave(ret); + } + ret = aPhone.Open(aServer,info.iName); + if (ret!=KErrNone) + { + ERR_PRINTF2(_L("Opening phone returned %d"), ret); + User::Leave(ret); + } + + INFO_PRINTF1(_L("Initializing...")); + ret = aPhone.Initialise(); + TTimeIntervalMicroSeconds32 InitPause=9000000; //Required Pause to Allow SMSStack to Complete its Async Init + User::After(InitPause); //call to the TSY and finish its StartUp. + if (ret!=KErrNone) + { + ERR_PRINTF2(_L("Completed Initialize returned %d"), ret); + User::Leave(ret); + } + break; + } + } + + if(!found) + { + ERR_PRINTF2(_L("Couldn't find the phone for TSY %S"), &aTsyName); + } + } diff -r 962e6306d9d2 -r 7ef16719d8cb smsprotocols/smsstack/test/smsstackbasetestserver.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/smsprotocols/smsstack/test/smsstackbasetestserver.h Fri Mar 12 15:49:38 2010 +0200 @@ -0,0 +1,55 @@ +// Copyright (c) 1999-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: +// + +// @file +// @test + +#ifndef SMSSTACKBASETESTSERVER_H +#define SMSSTACKBASETESTSERVER_H + +#include +#include + +class CSmsStackTestServer : public CTestServer +/** + Describes the base test server for the SMS stack test harness. + */ + { +public: + IMPORT_C virtual ~CSmsStackTestServer(); + +protected: + IMPORT_C CSmsStackTestServer(); + IMPORT_C void InitializeTsyAndPhonesL(); + +private: + void GetTsyNamesFromCommsdatL(RArray& aTsyNameList); + void LoadTsyL(RTelServer& aServer, RPhone& aPhone, const TDesC& aTsyName); + +private: + /** + * SMS stack first interrogates ETel server to get information about available SIMs, + * and then opens phone sessions by using the retrieved available SIM info. + * ETel returns the SIM info based on the loaded TSYs. If there is no connection to a phone, + * ETel unloads the corresponding TSY. To keep TSYs required by SMS tests loaded, the test code + * opens connection to the required phones and keep them alive throughout all test steps. + * In a real device, this is done as a part of the system start. + */ + RTelServer iTelServer; + RMobilePhone iPhone1; + RMobilePhone iPhone2; + }; + +#endif // SMSSTACKBASETESTSERVER_H diff -r 962e6306d9d2 -r 7ef16719d8cb smsprotocols/smsstack/test/smsstackbaseteststeps.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/smsprotocols/smsstack/test/smsstackbaseteststeps.cpp Fri Mar 12 15:49:38 2010 +0200 @@ -0,0 +1,1972 @@ +// Copyright (c) 2009-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: +// + +#include "smsstackbaseteststeps.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "smsstacktestutilities.h" +#include "smsstacktestconsts.h" +#include "smsstacktestcase.h" +#include "smspdudb.h" + +using namespace CommsDat; + +EXPORT_C CSmsBaseTestStep::CSmsBaseTestStep() + { + // empty + } + +EXPORT_C CSmsBaseTestStep::~CSmsBaseTestStep() + { + // empty + } + +/** + Creates the file server session and marks the heap +*/ +EXPORT_C TVerdict CSmsBaseTestStep::doTestStepPreambleL() + { + RDebug::Print(_L("%S"), &TestStepName()); + + User::LeaveIfError(iFs.Connect()); + + __UHEAP_MARK; + + SetTestNumberFromConfigurationFileL(); + + iSmsStackTestUtils = CSmsStackTestUtils::NewL(this, iFs); + + iScheduler = new(ELeave) CActiveScheduler; + CActiveScheduler::Install(iScheduler); + + TRAPD(ret, ParseSettingsFromFileL()); + TESTCHECK(ret, KErrNone, "ParseSettingsFromFileL"); + + + if (!iPartOfMultiStepTestCase) + { + ConnectSocketServerL(iSocketServer); + } + + return TestStepResult(); + } + +/** + Closes file server session and unmarks the heap +*/ +EXPORT_C TVerdict CSmsBaseTestStep::doTestStepPostambleL() + { + if (!iPartOfMultiStepTestCase) + { + iSocketServer.Close(); + } + + delete iScheduler; + iScheduler = NULL; + + delete iSmsStackTestUtils; + iSmsStackTestUtils = NULL; + + __UHEAP_MARKEND; + + iFs.Close(); + + if ( !iPartOfMultiStepTestCase && !iNotLastTestStep) + { + DoESockMemoryLeakTestL(); + } + + return TestStepResult(); + } + +// TODO Method not needed - should be removed and replaced where appropriate +EXPORT_C void CSmsBaseTestStep::ParseSettingsFromFileL() + { + CTestConfig* configFile = CTestConfig::NewLC(iFs,KGmsSmsConfigFileDir,KGmsSmsConfigFileName); + + const CTestConfigSection* cfgFile = configFile->Section(KSetupTelNumbers); + TESTCHECKCONDITIONL(cfgFile!=NULL, "Open SMS configuration file"); + + const CTestConfigItem* item = cfgFile->Item(KServiceCenter,0); + TESTCHECKCONDITIONL(item!=NULL, "Read ServiceCentre value from the configuration file"); + + iServiceCenterNumber.Copy(item->Value()); + + item = cfgFile->Item(KTelefoneNumber,0); + TESTCHECKCONDITIONL(item!=NULL, "Read TelephoneNumber value from the configuration file"); + + iTelephoneNumber.Copy(item->Value()); + + CleanupStack::PopAndDestroy(configFile); + } + +/** + * Read the test number from the configuration file. + * The test number is passed via property KUidPSSimTsyCategory. + * The SIM tsy uses test number to parse correct script from config.txt + * @return ETrue, if the test number has been assigned successfully, otherwise EFalse. + */ +EXPORT_C void CSmsBaseTestStep::SetTestNumberFromConfigurationFileL() + { + TInt testNumber (0); + if(GetIntFromConfig( ConfigSection(), KTestCaseNumber, testNumber)) + { + SetSimTSYTestNumberL(testNumber); + } + } + +EXPORT_C void CSmsBaseTestStep::SetSimTSYTestNumberL(TInt aTestNumber) +/** + Set the SIM TSY Test number + @param aTestNumber is the test number in SIM TSY config file +*/ + { + SetTestNumberL(KPSSimTsyTestNumber, aTestNumber); + } + +/** + * The test number is set with property aTestNumberProperty. This will notify the SIM tsy. + * SIM tsy uses test number to parse correct script from the configuration file. + * @param aTestNumberProperty The test number property UID + * @param aTestNumber The test number corresponding the test case + */ +EXPORT_C void CSmsBaseTestStep::SetTestNumberL(TInt aTestNumberProperty, TInt aTestNumber) + { + // + // Set the SIM.TSY test number... + // + RProperty testNumberProperty; + User::LeaveIfError(testNumberProperty.Attach(KUidPSSimTsyCategory, aTestNumberProperty)); + CleanupClosePushL(testNumberProperty); + + TRequestStatus status; + testNumberProperty.Subscribe(status); + INFO_PRINTF3(_L("Setting SimTsy test number property (0x%X) to %d"), aTestNumberProperty, aTestNumber); + User::LeaveIfError(testNumberProperty.Set(KUidPSSimTsyCategory, aTestNumberProperty, aTestNumber)); + User::WaitForRequest(status); + TESTCHECK(status.Int(), KErrNone, "Setting SimTsy test number property "); + + TInt testNumberCheck; + User::LeaveIfError(testNumberProperty.Get(testNumberCheck)); + TESTCHECK(aTestNumber, testNumberCheck, "Checking correct test number"); + + CleanupStack::PopAndDestroy(&testNumberProperty); + } + +EXPORT_C void CSmsBaseTestStep::ConnectSocketServerL(RSocketServ& aSocketServer) + { + INFO_PRINTF1(_L("Connecting to the Socket Server...")); + + TInt ret = aSocketServer.Connect(KSocketMessageSlots); + if (ret != KErrNone) + { + ERR_PRINTF2(_L("Connecting to socket server failed [ret=%d]"), ret); + } + + INFO_PRINTF1(_L("Clearing private data...")); + + _LIT(KWapReassemblyStoreName, "C:\\Private\\101F7989\\sms\\wapreast.dat"); + ret = iFs.Delete(KWapReassemblyStoreName); + if( ret != KErrNone && ret != KErrNotFound && ret != KErrPathNotFound ) + { + ERR_PRINTF2(_L("Deleted WAP reassembly Store failed [ret=%d]"), ret); + } + + _LIT(KReassemblyStoreName, "C:\\Private\\101F7989\\sms\\smsreast.dat"); + ret = iFs.Delete(KReassemblyStoreName); + if( ret != KErrNone && ret != KErrNotFound && ret != KErrPathNotFound ) + { + ERR_PRINTF2(_L("Deleted reassembly Store failed [ret=%d]"), ret); + } + + _LIT(KSegmentationStoreName, "C:\\Private\\101F7989\\sms\\smssegst.dat"); + ret = iFs.Delete(KSegmentationStoreName); + if( ret != KErrNone && ret != KErrNotFound && ret != KErrPathNotFound ) + { + ERR_PRINTF2(_L("Deleted segmentation Store failed [ret=%d]"), ret); + } + + _LIT(KSmsClass0PreallocatedStoreName, "C:\\Private\\101F7989\\sms\\smsclass0preallocated.dat"); + ret = iFs.Delete(KSmsClass0PreallocatedStoreName); + if( ret != KErrNone && ret != KErrNotFound && ret != KErrPathNotFound ) + { + ERR_PRINTF2(_L("Deleted SmsClass0Preallocated Store failed [ret=%d]"), ret); + } + + _LIT(KSmsClass0ReassemblyStoreName, "C:\\Private\\101F7989\\sms\\smsclass0reast.dat"); + ret = iFs.Delete(KSmsClass0ReassemblyStoreName); + if( ret != KErrNone && ret != KErrNotFound && ret != KErrPathNotFound ) + { + ERR_PRINTF2(_L("Deleted SmsClass0Reassembly Store failed [ret=%d]"), ret); + } + + _LIT(KSmsUtilityResourceFileName, "C:\\Private\\101F7989\\sms\\smsu.rsc"); + ret = iFs.Delete(KSmsUtilityResourceFileName); + if( ret != KErrNone && ret != KErrNotFound && ret != KErrPathNotFound ) + { + ERR_PRINTF2(_L("Deleted SMS stack resource file failed [ret=%d]"), ret); + } + } + +EXPORT_C void CSmsBaseTestStep::ConnectSocketServerLC(RSocketServ& aSocketServer) + { + ConnectSocketServerL(aSocketServer); + CleanupClosePushL(aSocketServer); + } + +EXPORT_C CSmsMessage* CSmsBaseTestStep::CreateSmsMessageL(const TDesC& aDes, TSmsDataCodingScheme::TSmsAlphabet aAlphabet, CSmsPDU::TSmsPDUType aType) +/** + * Create a uninitialised SMS message + * @param aDes contains text that will be inserted to the pdu + * @param aAlphabet describes the alphabet of the pdu + * @return CSmsMessage* :Pointer to the created CSmsMessage object. + */ + { + CSmsMessage* smsMessage = CreateSmsMessageLC(aDes, aAlphabet, aType); + CleanupStack::Pop(smsMessage); + return smsMessage; + } + +EXPORT_C CSmsMessage* CSmsBaseTestStep::CreateSmsMessageLC(const TDesC& aDes, TSmsDataCodingScheme::TSmsAlphabet aAlphabet, CSmsPDU::TSmsPDUType aType) +/** + * Create a uninitialised SMS message + * @param aDes contains text that will be inserted to the pdu + * @param aAlphabet describes the alphabet of the pdu + * @return CSmsMessage* :Pointer to the created CSmsMessage object. + */ + { + CSmsBuffer* buffer=CSmsBuffer::NewL(); + CSmsMessage* smsMessage=CSmsMessage::NewL(iFs, aType, buffer); + CleanupStack::PushL(smsMessage); + + TSmsUserDataSettings smsSettings; + smsSettings.SetAlphabet(aAlphabet); + smsSettings.SetTextCompressed(EFalse); + smsMessage->SetUserDataSettingsL(smsSettings); + + smsMessage->SetToFromAddressL(iTelephoneNumber); + smsMessage->SmsPDU().SetServiceCenterAddressL(iServiceCenterNumber); + buffer->InsertL(0,aDes); + return smsMessage; + } + +EXPORT_C CSmsMessage* CSmsBaseTestStep::CreateSmsWithStatusReportReqL(const TDesC& aDes, TSmsDataCodingScheme::TSmsAlphabet aAlphabet) +/** + * Create a uninitialised SMS message with Status Report request + * @param aDes contains text that will be inserted to the pdu + * @param aAlphabet describes the alphabet of the pdu + * @return CSmsMessage* :Pointer to the created CSmsMessage object. + */ + { + CSmsMessage* smsMessage=CreateSmsMessageLC(aDes, aAlphabet); + + //Set Status report request + CSmsSubmit& submitPdu=(CSmsSubmit&)smsMessage->SmsPDU(); + submitPdu.SetStatusReportRequest(ETrue); + + CleanupStack::Pop(smsMessage); + return smsMessage; + } + +EXPORT_C CSmsMessage* CSmsBaseTestStep::RecvSmsL(RSocket& aSocket, TInt aIoctl) +/** + * Receive an Sms + * @param aSocket is used to stream the sms message from the socket server + * @return CSmsMessage* :Sms message from Sms stack + * @leave Leaves if streaming the message from the socket server doesn't succeed + */ + { + CSmsBuffer* buffer=CSmsBuffer::NewL(); + CSmsMessage* smsMessage=CSmsMessage::NewL(iFs, CSmsPDU::ESmsSubmit,buffer); + CleanupStack::PushL(smsMessage); + + RSmsSocketReadStream readstream(aSocket); + TRAPD(ret, readstream >> *smsMessage); + + TPckgBuf sbuf; + TRequestStatus status; + + if(ret==KErrNone) + { + aSocket.Ioctl(aIoctl, status, &sbuf, KSolSmsProv); + User::WaitForRequest(status); + CleanupStack::Pop(smsMessage); + TESTCHECK(status.Int(), KErrNone, "Notifying the SMS stack that message was received successfully"); + INFO_PRINTF1(_L("Message received successfully")); + } + //An error has occured, no message has been received + else + { + aSocket.Ioctl(KIoctlReadMessageFailed, status, &sbuf, KSolSmsProv); + User::WaitForRequest(status); + TESTCHECK(status.Int(), KErrNone, "Notifying the SMS stack that message was not received"); + ERR_PRINTF2(_L("Receiving message failed %d"), ret); + User::Leave(ret); + } + return smsMessage; + } + +EXPORT_C CSmsMessage* CSmsBaseTestStep::RecvSmsFailedL(RSocket& aSocket) +/** + * Receive an Sms, first nack the receive several times before succeeding + * @param aSocket is used to stream the sms message from the socket server + * @return CSmsMessage* :Sms message from Sms stack + * @leave Leaves if streaming the message from the socket server doesn't succeed + * @leave Leaves if nack of receiving is completed with error code + * @leave Leaves if ack of receiving is completed with error code + */ + { + CSmsBuffer* buffer=CSmsBuffer::NewL(); + CSmsMessage* smsMessage=CSmsMessage::NewL(iFs, CSmsPDU::ESmsSubmit,buffer); + CleanupStack::PushL(smsMessage); + RSmsSocketReadStream readstream(aSocket); + + TPckgBuf sbuf; + TRequestStatus status; + + for(TInt i=0; i<10; i++) + { + TRAPD(ret,readstream >> *smsMessage); + TEST(ret == KErrNone); + aSocket.Ioctl(KIoctlReadMessageFailed, status, &sbuf, KSolSmsProv); + User::WaitForRequest(status); + TEST(status.Int() == KErrNone); + } + + TRAPD(ret,readstream >> *smsMessage); + TEST(ret == KErrNone); + aSocket.Ioctl(KIoctlReadMessageSucceeded, status, NULL, KSolSmsProv); + User::WaitForRequest(status); + TEST(status.Int() == KErrNone); + + CleanupStack::Pop(smsMessage); + return smsMessage; + } + +EXPORT_C void CSmsBaseTestStep::SendSmsL(const CSmsMessage* aSms, RSocket& aSocket, TInt aExpectedError/*=KErrNone*/, TInt aMaxRetries/*=3*/) +/** + * Stream aSms out to the socket server + * @param aSms contains the sms tpdu that will be streamed to the sms stack + * @param aSocket is used to stream the aSms to the sms stack + * @param aExpectedError The error expected from the send request + * @param aMaxRetries The max number of retries is send request does not match expected error + * @leave Leaves if streaming the message to the socket server doesn't succeed + * @leave Leaves if sending is completed with error code + */ + { + INFO_PRINTF1(_L("Sending SMS... ")); + PrintMessageL(aSms); + + TBool tryAgain = ETrue; + TInt sendTry (0); + TRequestStatus status = KErrNone; + + while( tryAgain && sendTry < aMaxRetries ) + { + RSmsSocketWriteStream writestream(aSocket); + TRAPD(ret,writestream << *aSms); + TRAP(ret, writestream.CommitL()); + + TPckgBuf sbuf; + aSocket.Ioctl(KIoctlSendSmsMessage,status,&sbuf, KSolSmsProv); + User::WaitForRequest(status); + INFO_PRINTF3(_L("SendSmsL [status=%d, aExpectedError=%d]"), status.Int(), aExpectedError); + if ( status.Int() != aExpectedError ) + { + tryAgain = ETrue; + INFO_PRINTF1(_L("Try again... ")); + ++sendTry; + } + else tryAgain = EFalse; + } + + TESTCHECKL(status.Int(), aExpectedError, "Sending Message with an expected error"); + } + +EXPORT_C void CSmsBaseTestStep::SendSmsCancelL(CSmsMessage* aSms, RSocket& aSocket1, RSocket& aSocket2) +/** + * Stream Sms out to the socket server by two RSmsSocketWriteStream object. + * The first request is canceled and then the second request is completed with error code. + * @param aSms contains the sms tpdu that will be streamed to the sms stack + * @param aSocket1 The socket used with message that will be canceled + * @param aSocket2 The socket used with message that will be completed with error code + * @leave Leaves if streaming the message to the socket server doesn't succeed + * @leave Leaves if sending is completed with KErrNone + */ + { + RSmsSocketWriteStream writestream(aSocket1); + TRAPD(ret,writestream << *aSms); + TEST(ret == KErrNone); + TRAP(ret,writestream.CommitL()); + TEST(ret == KErrNone); + + TPckgBuf sbuf; + TRequestStatus status1,status2; + + //stream to socket2 + RSmsSocketWriteStream writestream2(aSocket2); + TRAP(ret,writestream2 << *aSms); + TEST(ret == KErrNone); + TRAP(ret,writestream2.CommitL()); + TEST(ret == KErrNone); + + aSocket1.Ioctl(KIoctlSendSmsMessage,status1,&sbuf, KSolSmsProv); + aSocket2.Ioctl(KIoctlSendSmsMessage,status2,&sbuf, KSolSmsProv); + + User::After(2000000); + + // Test cancel first + aSocket1.CancelIoctl(); + User::WaitForRequest(status1); + TEST(status1.Int()==KErrCancel); + + User::After(50000); + + + User::WaitForRequest(status2); + + INFO_PRINTF2(_L("SendSmsL - sendSmsMessage returned %d"),status2.Int()); + PrintMessageL(aSms); + + //Ensure the request is completed with error code ;) + TEST(status2.Int() != KErrNone); + INFO_PRINTF2(_L("Sending failed! %d"), status2.Int()); + } + +EXPORT_C TInt CSmsBaseTestStep::SendSmsErrorL(CSmsMessage* aSms, RSocket& aSocket) +/** + * Stream aSms out to the socket server. Sending is completed with error code. + * @param aSms contains the sms tpdu that will be streamed to the sms stack + * @param aSocket is used to stream the aSms to the sms stack + * @return error code + * @leave Leaves if streaming the message to the socket server doesn't succeed + * @leave Leaves if sending is completed with KErrNone + */ + { + RSmsSocketWriteStream writestream(aSocket); + TRAPD(ret,writestream << *aSms); + TEST(ret == KErrNone); + TRAP(ret,writestream.CommitL()); + TEST(ret == KErrNone); + + TPckgBuf sbuf; + TRequestStatus status; + + User::After(50000); + // test cancel first + aSocket.Ioctl(KIoctlSendSmsMessage,status,&sbuf, KSolSmsProv); + aSocket.CancelIoctl(); + User::WaitForRequest(status); + TEST(status.Int()==KErrCancel); + + //Now send again, completed with error + TRAP(ret,writestream << *aSms); + TEST(ret == KErrNone); + TRAP(ret,writestream.CommitL()); + TEST(ret == KErrNone); + + aSocket.Ioctl(KIoctlSendSmsMessage,status,&sbuf, KSolSmsProv); + User::WaitForRequest(status); + INFO_PRINTF2(_L("SendSmsL - sendSmsMessage returned %d"), status.Int()); + PrintMessageL(aSms); + INFO_PRINTF2(_L("Sending failed! %d"), status.Int()); + TEST(status.Int() != KErrNone); + return status.Int(); + } + +EXPORT_C void CSmsBaseTestStep::SendCommandSmsL(CSmsMessage* aSms, RSocket& aSocket) +/** + * Stream command message out to the socket server and wait for the return status + * @param aSms contains the sms tpdu that will be streamed to the sms stack + * @param aSocket is used to stream the aSms to the sms stack + * @leave Leaves if streaming the message to the socket server doesn't succeed + * @leave Leaves if sending is completed with error code + */ + { + RSmsSocketWriteStream writestream(aSocket); + TRAPD(ret,writestream << *aSms); + TEST(ret == KErrNone); + TRAP(ret,writestream.CommitL()); + TEST(ret == KErrNone); + + TRequestStatus status; + TPckgBuf sbuf; + aSocket.Ioctl(KIoctlSendSmsMessage,status,&sbuf,KSolSmsProv); + + User::WaitForRequest(status); + + INFO_PRINTF2(_L("SendCommandSmsL, sendSms returned %d"), status.Int()); + User::After(1000000); + TEST(status.Int() == KErrNone); + + } + +EXPORT_C void CSmsBaseTestStep::SendAndRecvTestMessageL(const TTestCase& aTestCase, RSocket& aSocket) +/** + * Send a test message. This method is used to send and receive different DCS type messages + * @param aTestCase has information about the used test message, e.g. message data and DCS + * @leave Leaves if any of the leaving functions used at this function leaves + */ + { + SendTestMessageL(aTestCase, aSocket); + + WaitForRecvL(aSocket); + CSmsMessage* smsMessage = RecvSmsL(aSocket); + CleanupStack::PushL(smsMessage); + + TestMessageContentsL(smsMessage,aTestCase); + CleanupStack::PopAndDestroy(smsMessage); + } + +EXPORT_C void CSmsBaseTestStep::SendTestMessageL(const TTestCase& aTestCase, RSocket& aSocket) +/** + * Send a test message + * Assumes recv is already done. + * @param aTestCase has information about the used test message, e.g. message data and DCS + * @leave Leaves if any of the leaving functions used at this function leaves + */ + { + CSmsMessage* smsMessage = CreateSmsMessageLC(aTestCase.iMsg, TSmsDataCodingScheme::ESmsAlphabet7Bit); + + CSmsPDU& pdu = smsMessage->SmsPDU(); + CSmsUserData& userData = pdu.UserData(); + + if (aTestCase.iMatchType == ESmsAddrMatchIEI) + userData.AddInformationElementL(aTestCase.iIdentifierMatch,_L8("98")); + + if (aTestCase.iTestSmsClass) + { + pdu.SetBits7To4(TSmsDataCodingScheme::ESmsDCSTextUncompressedWithClassInfo); + pdu.SetClass(ETrue,aTestCase.iSmsClass); + } + + if (aTestCase.iTestValidityPeriod && pdu.Type()==CSmsPDU::ESmsSubmit) + { + CSmsSubmit* submitPdu = REINTERPRET_CAST(CSmsSubmit*,&pdu); + submitPdu->SetValidityPeriod(aTestCase.iValidityPeriod); + } + + if (aTestCase.iTestIndicators && pdu.Type()==CSmsPDU::ESmsSubmit) + { + SetIndicatorL(aTestCase, smsMessage); + } + + SendSmsL(smsMessage, aSocket); + CleanupStack::PopAndDestroy(smsMessage); + } + +EXPORT_C void CSmsBaseTestStep::SendSmsDontCheckReturnValueL(CSmsMessage* aSms, RSocket& aSocket) +/** + * Stream aSms out to the socket server and don't check return value. + * @param aSms contains the sms tpdu that will be streamed to the sms stack + * @param aSocket is used to stream the aSms to the sms stack + * @leave Leaves if streaming the message to the socket server doesn't succeed + * @leave Leaves if sending is completed with KErrNone + */ + { + RSmsSocketWriteStream writestream(aSocket); + writestream << *aSms; + writestream.CommitL(); + + TPckgBuf sbuf; + TRequestStatus status; + aSocket.Ioctl(KIoctlSendSmsMessage,status,&sbuf, KSolSmsProv); + User::WaitForRequest(status); + INFO_PRINTF2(_L("Send SMS message returned %d"), status.Int()); + if(status.Int() != KErrNone) + { + User::Leave(status.Int()); + } + } + +EXPORT_C void CSmsBaseTestStep::SendAndRecvSms7BitL(const TDesC& aDes, RSocket& aSocket) +/** + * Send and receive one 7bit sms + * @param aDes contains the text to be send + * @leave Leaves if DoSendAndRecvSmsL leaves + */ + { + DoSendAndRecvSmsL(aDes,TSmsDataCodingScheme::ESmsAlphabet7Bit, aSocket); + } + +EXPORT_C void CSmsBaseTestStep::DoSendAndRecvSmsL(const TDesC& aDes, TSmsDataCodingScheme::TSmsAlphabet aAlphabet, RSocket& aSocket) +/** + * Send and recv one sms, + * then check that the sent message corresponds with the received message + * @param aDes contains the text that will be inserted to the pdu at CreateSmsMessageL + * @param aAlphabet describes the alphabet of the pdu that will be created at CreateSmsMessageL + * @leave Leaves if any of the leaving functions used at this function leaves + */ + { + CSmsMessage* smsMessage=CreateSmsMessageLC(aDes, aAlphabet); + SendSmsL(smsMessage, aSocket); + CleanupStack::PopAndDestroy(smsMessage); //destroyed because created again in RecvSmsL + + WaitForRecvL( aSocket); + smsMessage = RecvSmsL( aSocket); + CleanupStack::PushL(smsMessage); + + TestSmsContentsL(smsMessage,aDes); + + // TODO: is this a way to go? + User::After(1000000); + + CleanupStack::PopAndDestroy(smsMessage); + } + +EXPORT_C void CSmsBaseTestStep::PrintMessageDetailedL(const CSmsMessage* aSms) + { + TPtrC from = aSms->ToFromAddress(); + INFO_PRINTF2(_L("ToFromAddress: %S"), &from); + TPtrC sc = aSms->ServiceCenterAddress(); + INFO_PRINTF2(_L("ServiceCenterAddress: %S"), &sc); + + if(aSms->Storage() == CSmsMessage::ESmsSIMStorage) + { + INFO_PRINTF1(_L("Store: SIM")); + } + else if (aSms->Storage() == CSmsMessage::ESmsPhoneStorage) + { + INFO_PRINTF1(_L("Store: Phone")); + } + else if (aSms->Storage() == CSmsMessage::ESmsCombinedStorage) + { + INFO_PRINTF1(_L("Store: Combined")); + } + else + { + INFO_PRINTF1(_L("Store: Unknown")); + } + + switch (aSms->Status()) + { + case RMobileSmsStore::EStoredMessageUnread: + INFO_PRINTF1(_L("Status: Unread")); + break; + + case RMobileSmsStore::EStoredMessageRead: + INFO_PRINTF1(_L("Status: Read")); + break; + + case RMobileSmsStore::EStoredMessageUnsent: + INFO_PRINTF1(_L("Status: Unsent")); + break; + + case RMobileSmsStore::EStoredMessageSent: + INFO_PRINTF1(_L("Status: Sent")); + break; + + case RMobileSmsStore::EStoredMessageDelivered: + INFO_PRINTF1(_L("Status: Delivered")); + break; + + case RMobileSmsStore::EStoredMessageUnknownStatus: + default: + INFO_PRINTF1(_L("Status: Unknown")); + break; + } + PrintMessageL(aSms); + } + +EXPORT_C void CSmsBaseTestStep::PrintMessageL(const CSmsMessage* aSms) +/** + * Print the content of SMS to the console + */ + { + if (aSms == NULL) + { + return; + } + + CSmsBuffer& smsbuffer = (CSmsBuffer&)aSms->Buffer(); + const TInt len = smsbuffer.Length(); + HBufC* hbuf = HBufC::NewL(len); + + TPtr ptr = hbuf->Des(); + smsbuffer.Extract(ptr, 0, len); + + for (TInt j = 0; j < len; ++j) + { + if (ptr[j] < 0x20 || ptr[j] > 0xFF) + { + // Non-displayable character, print "." instead + ptr[j] = 0x007F; + } + } + INFO_PRINTF2(_L("SMS contains: %S"), &ptr); + + delete hbuf; + } + +EXPORT_C TSmsStatus::TSmsStatusValue CSmsBaseTestStep::RecvStatusReportL(TSmsServiceCenterAddress& aRecipientNumber, RSocket& aSocket) +/** + * Receive a Status report + * @param aRecipientNumber The supposed recipient number + * @param aSocket is used to stream the sms message from the socket server + */ + { + //Receive SMS + INFO_PRINTF1(_L("waiting for incoming status report...") ); + WaitForRecvL(aSocket); + CSmsMessage* smsMessage = RecvSmsL(aSocket); + + //Check the status report + CleanupStack::PushL(smsMessage); + TBool isSR = (smsMessage->Type()==CSmsPDU::ESmsStatusReport); + + if (isSR) + { + INFO_PRINTF1(_L("Received status report")); + TSmsServiceCenterAddress telephoneNumber=smsMessage->ToFromAddress(); + TEST(telephoneNumber==aRecipientNumber); + INFO_PRINTF2(_L("Message delivered to %S"), &telephoneNumber); + } + else + { + INFO_PRINTF1(_L("Received SMS is NOT a Status report!")); + } + + TEST(isSR); + + //Get the status report + CSmsStatusReport& statusReport = STATIC_CAST(CSmsStatusReport&, smsMessage->SmsPDU()); + TSmsStatus::TSmsStatusValue status = statusReport.Status(); + + CleanupStack::PopAndDestroy(smsMessage); + return status; + } + +EXPORT_C void CSmsBaseTestStep::WaitForRecvL(RSocket& aSocket) +/** + * Wait for an Sms to be received + * @param aSocket The status is return to this socket + * @leave Leaves if receiving is completed with error code + */ + { + INFO_PRINTF1(_L("Waiting for incoming SMS...") ); + TPckgBuf sbuf; + sbuf()=KSockSelectRead; + TRequestStatus status; + aSocket.Ioctl(KIOctlSelect,status,&sbuf,KSOLSocket); + User::WaitForRequest(status); + TESTCHECK(status.Int(), KErrNone, "Waiting for incoming SMS"); + } + +EXPORT_C void CSmsBaseTestStep::TestSmsContentsL(CSmsMessage* aSms, const TDesC& aDes, TBool aIgnorePrintOutput) +/** + * Check that aSms contains text that matches to aDes + * @param aSms SMS message that has been come from SMS stack + * @param aDes SMS message's text that is defined at client side + * @leave Leaves if aSms doesn't match to aDes + */ + { + CSmsBufferBase& smsBuffer=aSms->Buffer(); + TInt bufLen=smsBuffer.Length(); + + INFO_PRINTF2(_L("Length of buffer is : %d"),bufLen); + + HBufC* textBuf=HBufC::NewL(bufLen); + CleanupStack::PushL(textBuf); + TPtr textPtr(textBuf->Des()); + smsBuffer.Extract(textPtr,0,bufLen); + + INFO_PRINTF1(_L("Comparing messages...")); + TInt compareResult = textPtr.Compare(aDes); + + if (!aIgnorePrintOutput) + { + TInt bufLen2 = aDes.Length(); + HBufC* textBuf2 = HBufC::NewL(aDes.Length()); + CleanupStack::PushL(textBuf2); + TPtr textPtr2(textBuf2->Des()); + TInt index; + + for (index = 0; index < bufLen; index++) + { + if (textPtr[index] < 0x20 || textPtr[index] > 0xff) + { + textPtr[index] = 0x007f; + } + } + INFO_PRINTF2(_L("%S"), &textPtr); + + INFO_PRINTF1(_L("with expected")); + + textPtr2.Copy(aDes); + for (index = 0; index < bufLen2; index++) + { + if (textPtr2[index] < 0x20 || textPtr2[index] > 0xff) + { + textPtr2[index] = 0x007f; + } + } + INFO_PRINTF2(_L("%S"), &textPtr2); + + CleanupStack::PopAndDestroy(textBuf2); + } + + if (compareResult != 0) + { + SetTestStepResult(EFail); + ERR_PRINTF1(_L("Message content does not match the provided string")); + } + else + { + INFO_PRINTF1(_L("Message content matches the provided string")); + } + + CleanupStack::PopAndDestroy(textBuf); + } + +EXPORT_C void CSmsBaseTestStep::TestMessageContentsL(CSmsMessage* aSms, const TTestCase& aTestCase) +/** + * Check the sms matches the expected test result + * @param aSms has the message to be tested with aTestCase.iMsg + * @param aTestCase has information about the used test message, e.g. message data and DCS + * @leave Leaves if TSmsClass isn't defined at the pdu + * @leave Leaves if class of pdu doesn't match to supposed class (aTestCase.iSmsClass) + */ + { + TestSmsContentsL(aSms,aTestCase.iMsg); + CSmsPDU& pdu = aSms->SmsPDU(); + + if (aTestCase.iTestSmsClass) + { + TSmsDataCodingScheme::TSmsClass smsClass; + TBool isDefined = pdu.Class(smsClass); + TEST(isDefined); + TEST(smsClass == aTestCase.iSmsClass); + } + if (aTestCase.iTestIndicators) + { + TEST(pdu.Bits7To4() == aTestCase.iBits7To4); + TEST(pdu.IndicationType() == aTestCase.iIndicationType); + TEST(pdu.IndicationState() == aTestCase.iIndicationState); + } + + } + +EXPORT_C void CSmsBaseTestStep::WriteSmsToSimL(CSmsMessage& aSms, RSocket& aSocket) +/** + * This method stores SMS messages to the SMS storage. + * @param aSms SMS message that will be stored + * @param aSocket Used to stream SMS message to the sms stack + * @leave Leaves if streaming the message to the socket server doesn't succeed + * @leave Leaves if store request is completed with error code + */ + { + INFO_PRINTF1(_L("Write message to SIM")); + TRequestStatus status; + RSmsSocketWriteStream writestream(aSocket); + + TRAPD(ret,writestream << aSms); + TESTCHECK(ret, KErrNone, "Write SMS to stream"); + TRAP(ret,writestream.CommitL()); + TESTCHECK(ret, KErrNone, "Commit the stream writing"); + + aSocket.Ioctl(KIoctlWriteSmsMessage,status,NULL,KSolSmsProv); + User::WaitForRequest(status); + TESTCHECK(status.Int(), KErrNone, "Write message to SIM"); + } + +EXPORT_C void CSmsBaseTestStep::WriteSmsLeaveIfErrorL(const CSmsMessage& aSms, RSocket& aSocket) +/** + * This method stores SMS messages to the SMS storage. + * @param aSms SMS message that will be stored + * @param aSocket Used to stream SMS message to the sms stack + */ + { + TRequestStatus status; + RSmsSocketWriteStream writestream(aSocket); + + writestream << aSms; + writestream.CommitL(); + + aSocket.Ioctl(KIoctlWriteSmsMessage,status,NULL, KSolSmsProv); + User::WaitForRequest(status); + INFO_PRINTF2(_L("Write SMS message returned %d"), status.Int()); + if(status.Int() != KErrNone) + { + User::Leave(status.Int()); + } + } + +EXPORT_C void CSmsBaseTestStep::ReadSmsStoreL(RSocket& aSocket, RPointerArray& aMessages) +/** + * This method retrieves SMS messages from SMS storage and print them out. + * @param aSocket Used to stream SMS messages from the socket server + * @param aMessages Sms messages will be streamed to this array + * @leave Leaves if first request is NOT completed with KErrCancel + * @leave Leaves if second request is completed with error code + * @leave Leaves if streaming the message from the socket server doesn't succeed + * @leave Leaves if nack of reading is completed with error code + * @leave Leaves if ack of reading is completed with error code + */ + { + TRequestStatus status; + ReadSmsStoreL(aSocket, aMessages, status); + } + +EXPORT_C void CSmsBaseTestStep::ReadSmsStoreL(RSocket& aSocket, RPointerArray& aMessages, TRequestStatus& aStatus) +/** + * This method retrieves SMS messages from SMS storage and print them out. + * @param aSocket Used to stream SMS messages from the socket server + * @param aMessages Sms messages will be streamed to this array + * @param aStatus Status of request to enumerate messages from store + * @leave Leaves if first request is NOT completed with KErrCancel + * @leave Leaves if second request is completed with error code + * @leave Leaves if streaming the message from the socket server doesn't succeed + * @leave Leaves if nack of reading is completed with error code + * @leave Leaves if ack of reading is completed with error code + */ + { + INFO_PRINTF1(_L("Enumerating messages")); + TPckgBuf sbuf; + sbuf()=0; + + // Enumerate messages from store - NOTE - sometimes SIM.TSY returns + // KErrInUse (strange timing things!). In this case wait and repeat. + const TInt KMaxAttempts = 3; + TInt attempts = 0; + do + { + User::After(2000000); // Wait a couple of seconds... + + aSocket.Ioctl(KIoctlEnumerateSmsMessages, aStatus, &sbuf, KSolSmsProv); + User::WaitForRequest(aStatus); + + INFO_PRINTF3(_L("Enumerating completed [status=%d, attempts=%d]"), aStatus.Int(), ++attempts); + } while( aStatus.Int() == KErrInUse && attempts < KMaxAttempts ); + + if( aStatus.Int() == KErrNone ) + { + // sbuf() includes the count of messages on Store + TInt count = sbuf(); + INFO_PRINTF2(_L("%d enumerated messages"), count); + + RSmsSocketReadStream readstream(aSocket); + + //Read each message from the stream + for(TInt i=0; i< count; ++i) + { + CSmsBuffer* buffer=CSmsBuffer::NewL(); + CSmsMessage* smsmessage=CSmsMessage::NewL(iFs, CSmsPDU::ESmsDeliver,buffer); + CleanupStack::PushL(smsmessage); + + TRAPD(ret,readstream >> *smsmessage); + TEST(ret == KErrNone); + aSocket.Ioctl(KIoctlReadMessageSucceeded, aStatus, NULL, KSolSmsProv); + User::WaitForRequest(aStatus); + TEST(aStatus.Int() == KErrNone); + + PrintMessageDetailedL(smsmessage); + + User::LeaveIfError(aMessages.Append(smsmessage)); + CleanupStack::Pop(smsmessage); + } + } + else + { + ERR_PRINTF2(_L("Enumerating failed [status=%d]"), aStatus.Int()); + SetTestStepResult(EFail); + } + } + +EXPORT_C TInt CSmsBaseTestStep::DeleteSmsL(const CSmsMessage& aSms, RSocket& aSocket, TInt aExpectedError /*KErrNone*/) +/** + * This method deletes SMS message from the SMS storage. + * @param aSms SMS message that will be deleted + * @param aSocket Used to stream SMS message to the sms stack + * @return TInt :error code + */ + { + INFO_PRINTF2(_L("Delete message from store [aExpectedError=%d]"), aExpectedError); + + TRequestStatus status; + + RSmsSocketWriteStream writestream(aSocket); + TRAPD(ret,writestream << aSms); + TEST(ret == KErrNone); + TRAP(ret,writestream.CommitL()); + TEST(ret == KErrNone); + + aSocket.Ioctl(KIoctlDeleteSmsMessage, status, NULL, KSolSmsProv); + User::WaitForRequest(status); + TInt error = status.Int(); + + INFO_PRINTF2(_L("Delete SMS message - returned %d"), error); + + if( error != aExpectedError ) + { + ERR_PRINTF3(_L("Delete SMS message failed [aExpectedError=%d, error=%d]"), aExpectedError, error); + SetTestStepResult(EFail); + } + return error; + } + +EXPORT_C void CSmsBaseTestStep::DeleteSmsLeaveIfErrorL(const CSmsMessage& aSms, RSocket& aSocket) +/** + * This method deletes SMS message from the SMS storage. + * @param aSms SMS message that will be deleted + * @param aSocket Used to stream SMS message to the sms stack + */ + { + TRequestStatus status; + RSmsSocketWriteStream writestream(aSocket); + writestream << aSms; + writestream.CommitL(); + aSocket.Ioctl(KIoctlDeleteSmsMessage, status, NULL, KSolSmsProv); + User::WaitForRequest(status); + INFO_PRINTF2(_L("Delete SMS returned %d"), status.Int()); + if(status.Int() != KErrNone) + { + User::Leave(status.Int()); + } + } + +EXPORT_C void CSmsBaseTestStep::SetIndicatorL(const TTestCase& aTestCase, CSmsMessage* aSms) +/** + * + */ + { + TSmsDataCodingScheme::TSmsAlphabet alphabet; + if (aTestCase.iBits7To4 == TSmsDataCodingScheme::ESmsDCSMessageWaitingIndicationUCS2) + alphabet = TSmsDataCodingScheme::ESmsAlphabetUCS2; + else + alphabet = TSmsDataCodingScheme::ESmsAlphabet7Bit; + + TSmsUserDataSettings smsSettings; + smsSettings.SetAlphabet(alphabet); + smsSettings.SetTextCompressed(EFalse); + aSms->SetUserDataSettingsL(smsSettings); + + CSmsPDU& pdu = aSms->SmsPDU(); + pdu.SetBits7To4(aTestCase.iBits7To4); + pdu.SetIndicationType(aTestCase.iIndicationType); + pdu.SetIndicationState(aTestCase.iIndicationState); + + } + +EXPORT_C void CSmsBaseTestStep::FillDes(TDes& aDes,TInt aLength) +/** + * Fill aDes with randomly generated 7bit data + * @param aDes will be filled with random data + * @param aLength has the length to be set to aDes + */ + { + TText baseChar='A'; + + aDes.SetLength(aLength); + for (TInt i=0; i sbuf; + sbuf()=0; + + //Now enumerate messages from SIM + aSocket.Ioctl(KIoctlEnumerateSmsMessages,status,&sbuf, KSolSmsProv); + User::WaitForRequest(status); + INFO_PRINTF2(_L("Read SMS returned %d"), status.Int()); + if(status.Int() != KErrNone) + { + User::Leave(status.Int()); + } + + //sbuf() includes the count of messages on SIM + return sbuf(); + } + +EXPORT_C TBool CSmsBaseTestStep::TimedWaitForRecvL(RSocket& aSocket, TUint aDelay) +/** + * Wait for up to the delay for an Sms to be received + * @param aSocket The status is return to this socket + * @param aDelay Maximum time to wait for receipt + * @return ETrue if data received + * @leave Leaves if receiving is completed with error code + */ + { + TRequestStatus timerStatus; + RTimer timer; + timer.CreateLocal(); + timer.After(timerStatus, TTimeIntervalMicroSeconds32(aDelay)); + + TPckgBuf sbuf; + sbuf()=KSockSelectRead; + TRequestStatus ioctlStatus; + aSocket.Ioctl(KIOctlSelect, ioctlStatus, &sbuf, KSOLSocket); + User::WaitForRequest(timerStatus, ioctlStatus); + TBool retval; + + if(ioctlStatus.Int() != KErrNone) + { + aSocket.CancelIoctl(); + User::WaitForRequest(ioctlStatus); + retval = EFalse; + } + else + { + timer.Cancel(); + User::WaitForRequest(timerStatus); + retval = ETrue; + } + timer.Close(); + return retval; + } + +EXPORT_C TInt CSmsBaseTestStep::CancelWriteSmsToSimL(CSmsMessage& aSms, RSocket& aSocket, TInt aDelay) +/** + * This method stores SMS messages to the SMS storage. + * @param aSms SMS message that will be stored + * @param aSocket Used to stream SMS message to the sms stack + * @leave Leaves if streaming the message to the socket server doesn't succeed + * @leave Leaves if store request is completed with error code + */ + { + INFO_PRINTF1(_L("Write message")); + + TRequestStatus status; + + RSmsSocketWriteStream writestream(aSocket); + TRAPD(ret,writestream << aSms); + TEST(ret == KErrNone); + TRAP(ret,writestream.CommitL()); + TEST(ret == KErrNone); + + aSocket.Ioctl(KIoctlWriteSmsMessage,status,NULL, KSolSmsProv); + INFO_PRINTF1(_L("Cancel")); + User::After(aDelay); + aSocket.CancelIoctl(); + User::WaitForRequest(status); + INFO_PRINTF2(_L("WriteSmsToSimL - returned %d"), status.Int()); + + return status.Int(); + } + +EXPORT_C TBool CSmsBaseTestStep::DoSingleTestCaseL( const TDesC8& aSection, TInt aCount ) + { + CTestConfig* configFile = CTestConfig::NewLC(iFs, KGmsSmsConfigFileDir, KConfigFilename); + + TBuf8<64> sectionName(aSection); + sectionName.AppendNum(aCount); + const CTestConfigSection* section = NULL; + TBool found( ETrue ); + + if ( ( section = configFile->Section( sectionName ) ) != NULL ) + { + if ( aSection == KTestSendAndRecvMsgsWithDifferentTON ) + { + TInt num( 1 ); + CArrayFixFlat* alphabetArray = new ( ELeave ) CArrayFixFlat( 1 ); + CleanupStack::PushL(alphabetArray); + CArrayFixFlat* typeOfNumberArray = new ( ELeave ) CArrayFixFlat( 1 ); + CleanupStack::PushL(typeOfNumberArray); + + TBuf8<32> itemName( KAlphabet ); + itemName.AppendNum( num ); + + TInt param = section->ItemValue( (TPtrC8)itemName, KErrNotFound ); + while ( param != KErrNotFound ) + { + alphabetArray->AppendL(param); + itemName = KAlphabet; + itemName.AppendNum( ++num ); + param = section->ItemValue( (TPtrC8)itemName, KErrNotFound ); + } + num = 1; + itemName = KTypeOfNumber; + itemName.AppendNum( num ); + + param = section->ItemValue( (TPtrC8)itemName, KErrNotFound ); + while ( param != KErrNotFound ) + { + typeOfNumberArray->AppendL(param); + itemName = KTypeOfNumber; + itemName.AppendNum( ++num ); + param = section->ItemValue( (TPtrC8)itemName, KErrNotFound ); + } + + RPointerArray array; + CleanupResetAndDestroyPushL(array); + ReadPduL( sectionName, array ); + TestSendAndRecvMsgsWithDifferentTONL( array, alphabetArray, typeOfNumberArray ); + CleanupStack::PopAndDestroy(&array); + CleanupStack::PopAndDestroy(typeOfNumberArray); + CleanupStack::PopAndDestroy(alphabetArray); + } + else if ( aSection == KTestSendAndReceiveIndicatorMsgs ) + { + TInt num( 1 ); + CArrayFixFlat* indicationTypeArray = new ( ELeave ) CArrayFixFlat( 1 ); + CleanupStack::PushL(indicationTypeArray); + CArrayFixFlat* dcsBits7To4Array = new ( ELeave ) CArrayFixFlat( 1 ); + CleanupStack::PushL(dcsBits7To4Array); + CArrayFixFlat* indicationStateArray = new ( ELeave ) CArrayFixFlat( 1 ); + CleanupStack::PushL(indicationStateArray); + + TBuf8<32> itemName( KIndicationType ); + itemName.AppendNum( num ); + + TInt param = section->ItemValue( (TPtrC8)itemName, KErrNotFound ); + while ( param != KErrNotFound ) + { + indicationTypeArray->AppendL(param); + itemName = KIndicationType; + itemName.AppendNum( ++num ); + param = section->ItemValue( (TPtrC8)itemName, KErrNotFound ); + } + num = 1; + itemName = KDCSBits7To4; + itemName.AppendNum( num ); + + param = section->ItemValue( (TPtrC8)itemName, KErrNotFound ); + while ( param != KErrNotFound ) + { + dcsBits7To4Array->AppendL(param); + itemName = KDCSBits7To4; + itemName.AppendNum( ++num ); + param = section->ItemValue( (TPtrC8)itemName, KErrNotFound ); + } + num = 1; + itemName = KIndicationState; + itemName.AppendNum( num ); + + param = section->ItemValue( (TPtrC8)itemName, KErrNotFound ); + while ( param != KErrNotFound ) + { + indicationStateArray->AppendL(param); + itemName = KIndicationState; + itemName.AppendNum( ++num ); + param = section->ItemValue( (TPtrC8)itemName, KErrNotFound ); + } + + RPointerArray array; + CleanupResetAndDestroyPushL(array); + ReadPduL( sectionName, array ); + TestSendAndReceiveIndicatorMsgsL( array, indicationStateArray, dcsBits7To4Array, indicationTypeArray ); + CleanupStack::PopAndDestroy(&array); + CleanupStack::PopAndDestroy(indicationStateArray); + CleanupStack::PopAndDestroy(dcsBits7To4Array); + CleanupStack::PopAndDestroy(indicationTypeArray); + } + else + found = EFalse; + } + else + found = EFalse; + + CleanupStack::PopAndDestroy(configFile);//configFile + return found; + } + +EXPORT_C void CSmsBaseTestStep::TestSendAndRecvMsgsWithDifferentTONL( const RPointerArray& aArray, + const CArrayFixFlat* aAlphabetArray, + const CArrayFixFlat* aTypeOfNumberArray ) + { + INFO_PRINTF1(_L("Send and receive messages with different type of number")); + + const TInt testNumber = 39; + SetSimTSYTestNumberL(testNumber); + + RSocketServ socketServer; + ConnectSocketServerLC(socketServer); + + RSocket socket; + iSmsStackTestUtils->OpenSmsSocketLC(socketServer,socket,ESmsAddrRecvAny); + + TSmsDataCodingScheme::TSmsAlphabet alphabet = ( TSmsDataCodingScheme::TSmsAlphabet )aAlphabetArray->At(0); + + TInt bufLen=aArray[0]->iSmsMessage->Buffer().Length(); + HBufC* textBuf=HBufC::NewL(bufLen); + CleanupStack::PushL(textBuf); + TPtr testText(textBuf->Des()); + aArray[0]->iSmsMessage->Buffer().Extract(testText,0,bufLen); + + CSmsMessage* sendMessage=CreateSmsMessageLC(testText,alphabet); + CSmsSubmit& submitPdu=(CSmsSubmit&)sendMessage->SmsPDU(); + TGsmSmsTelNumber gsmSmsTelNumber; + gsmSmsTelNumber.iTelNumber.Append(iTelephoneNumber); + if(gsmSmsTelNumber.iTelNumber.Length() > 0 && gsmSmsTelNumber.iTelNumber[0] == '+') + { + // Remove "+" sign from telephony number + gsmSmsTelNumber.iTelNumber.Delete(0,1); + gsmSmsTelNumber.iTelNumber.Trim(); + } + + for ( TInt i = 0; i < aTypeOfNumberArray->Count(); i++ ) + { + gsmSmsTelNumber.iTypeOfAddress.SetTON( ( TGsmSmsTypeOfNumber )aTypeOfNumberArray->At(i) ); + sendMessage->SetParsedToFromAddressL(gsmSmsTelNumber); + + if ( ( TGsmSmsTypeOfNumber )aTypeOfNumberArray->At(i) == EGsmSmsTONSubscriberNumber ) + { + submitPdu.SetPIDType(TSmsProtocolIdentifier::ESmsPIDShortMessageType); + submitPdu.SetShortMessageType(TSmsProtocolIdentifier::ESmsReturnCallMesage); + } + INFO_PRINTF2(_L("Send SMS message. Type of number is %d"), aTypeOfNumberArray->At(i) ); + SendSmsL(sendMessage,socket); + + INFO_PRINTF1(_L("Waiting for incoming SMS...") ); + WaitForRecvL(socket); + CSmsMessage* recvMessage = RecvSmsL(socket); + delete recvMessage; + } + + CleanupStack::PopAndDestroy(4, &socketServer); // socketServer, socket, textBuf, sendMessage + } + +EXPORT_C void CSmsBaseTestStep::TestSendAndReceiveIndicatorMsgsL( const RPointerArray& aArray, + const CArrayFixFlat* aIndicationStateArray, + const CArrayFixFlat* aDcsBits7To4Array, + const CArrayFixFlat* aIndicationTypeArray ) +/** + * @test Send and receive different indicator messages + * TODO ESmsDCSMessageWaitingIndicationDiscardMessage test doesn't work with Nokia 6210 because phone + * doesn't route incoming message to the MM TSY. + */ + { + + INFO_PRINTF1(_L("Send and receive different indicator messages")); + + const TInt testNumber = 40; + SetSimTSYTestNumberL(testNumber); + + RSocketServ socketServer; + ConnectSocketServerLC(socketServer); + + RSocket socket; + iSmsStackTestUtils->OpenSmsSocketLC(socketServer,socket,ESmsAddrRecvAny); + + for ( TInt i = 0; i < aArray.Count(); i++ ) + { + + TSmsDataCodingScheme::TSmsIndicationState indicationState = + ( TSmsDataCodingScheme::TSmsIndicationState )aIndicationStateArray->At(i); + TSmsDataCodingScheme::TSmsDCSBits7To4 dcsBits7To4Array = + ( TSmsDataCodingScheme::TSmsDCSBits7To4 )aDcsBits7To4Array->At(i); + TSmsDataCodingScheme::TSmsIndicationType indicationType = + ( TSmsDataCodingScheme::TSmsIndicationType )aIndicationTypeArray->At(i); + + TInt bufLen=aArray[i]->iSmsMessage->Buffer().Length(); + HBufC* textBuf=HBufC::NewL(bufLen); + CleanupStack::PushL(textBuf); + TPtr testText(textBuf->Des()); + aArray[i]->iSmsMessage->Buffer().Extract(testText,0,bufLen); + + TTestCase msg(testText, indicationType, dcsBits7To4Array, indicationState ); + + SendAndRecvTestMessageL(msg,socket); + + CleanupStack::PopAndDestroy(textBuf); + } + + CleanupStack::PopAndDestroy(2, &socketServer); // socketServer, socket + } + +EXPORT_C void CSmsBaseTestStep::ReadPduL( TBuf8<64> aSectionName, RPointerArray& aArray ) + { + CSmsPduDatabase* db = CSmsPduDatabase::NewL(iFs, aSectionName, KConfigFilename, KConfigFileDir); + CleanupStack::PushL(db); + + db->GetMessageL(aArray, CSmsPDU::ESmsSubmit); + + CleanupStack::PopAndDestroy(db); + } + +EXPORT_C CSmsMessage* CSmsBaseTestStep::CreateSmsMessageLC(CSmsPDU::TSmsPDUType aType, CSmsBuffer* aBuffer, const TDesC& aAddress) + { + CSmsMessage* msg = CSmsMessage::NewL(iFs, aType, aBuffer); + CleanupStack::PushL(msg); + + if (aAddress.Length() != 0) + { + msg->SetToFromAddressL(aAddress); + } + + return msg; + } + +/* +These functions were grabbed from SMSStackTestUtils.dll +*/ +EXPORT_C void CSmsBaseTestStep::OpenSmsSocketL(RSocketServ& aSocketServer, RSocket& aSocket, TSmsAddrFamily aFamily) +/** + * Initialise an RSocket for SMS, aSocket is NOT pushed to CleanupStack. + * @param aSocketServer reference to the socket server object + * @param aSocket The socket that will be opened + * @param aFamily The sms address family + * @param aDualSimAware Flag indicating that client is dual-SIM aware + */ + { + TSmsAddr smsaddr; + smsaddr.SetSmsAddrFamily(aFamily); + OpenSmsSocketL(aSocketServer, aSocket, smsaddr); + } + +EXPORT_C void CSmsBaseTestStep::OpenSmsSocketL(RSocketServ& aSocketServer, RSocket& aSocket, TSmsAddr& aSmsAddr) +/* + * Initialise an RSocket for SMS, aSocket is NOT pushed to CleanupStack. + * @param aSocketServer reference to the socket server object + * @param aSocket The socket that will be opened + * @param aSmsAddr The sms address to bind to + */ + { + INFO_PRINTF2(_L("Opening and binding socket [addrFamily=%d]"), aSmsAddr.SmsAddrFamily()); + + TInt ret=aSocket.Open(aSocketServer,KSMSAddrFamily,KSockDatagram,KSMSDatagramProtocol); + TESTCHECK(ret, KErrNone, "Opening socket"); + + ret=aSocket.Bind(aSmsAddr); + TESTCHECK(ret, KErrNone, "Binding to the socket"); + + TProtocolDesc desc; + aSocket.Info(desc); + INFO_PRINTF2(_L("Protocol name: %S"), &desc.iName); + + TTimeIntervalMicroSeconds32 InitPause=9000000; //Required Pause to Allow SMSStack to Complete its Async Init + User::After(InitPause); //call to the TSY and finish its StartUp. + + } + +/* + Utility for creating a SMS message from test data (ini) file +*/ +EXPORT_C CSmsMessage* CSmsBaseTestStep::CreateSMSL() + { + INFO_PRINTF1(_L("Creating SMS...") ); + + TInt codingScheme; + GetIntFromConfig(ConfigSection(), _L("messageCoding"), codingScheme); + + TCodingScheme dataCodingScheme = (TCodingScheme)codingScheme; + + TSmsDataCodingScheme::TSmsAlphabet alphabet; + if (dataCodingScheme == ESevenBit) + { + //8 bit coding scheme + alphabet = TSmsDataCodingScheme::ESmsAlphabet7Bit; + } + + else + { + alphabet = TSmsDataCodingScheme::ESmsAlphabet8Bit; + } + + TPtrC messageText; + GetStringFromConfig(ConfigSection(), _L("message"), messageText); + CSmsMessage *sms = CreateSmsMessageL(messageText, alphabet); + + INFO_PRINTF1(_L("SMS created") ); + PrintMessageL(sms); + + return sms; + } + +/** + * Sets high and low limits in .RSC file and then reserves disk space to match requested levels. + * + * Checks the current free space and then sets the high and low marks + * to be aHighDrop MB and aLowDrop MB below the current free space + * level. + * + * Then diskspace is reserved to aFreeDrop MB below the current free + * space level. + * + * If the current free space level is greater then aMax then the + * current free space level is set to aMax + * + * If the current free space level is less than aLowDrop MB then this + * method leaves with KErrArgument. + * + * @param aHighDrop The number of MB below the current free space level for the high level mark (in the .RSC file) + * @param aLowDrop The number of MB below the current free space level for the low level mark (in the .RSC file) + * @param aFreeDrop The number of MB below the current free space level for the low level mark + * @param aMax The maximum level for the high limit allowed + * + * @return The max current free space level used. + * + * @leave KErrArgument if the current free diskspace level is less than aLowDrop MB + * @leave KErrArgument if aMax is not greater than aLowDrop MB + * @leave KErrArgument if aHighDrop >= aLowDrop + */ +EXPORT_C TUint64 CSmsBaseTestStep::SetHighLowLimitsAndDiskSpaceLevelL(TUint aHighDrop, TUint aLowDrop, TUint aFreeDrop, TUint64 aMax/*=0x7fffffff*/) + { + INFO_PRINTF5(_L("Setting High-Low limits and Free Diskspace levels [aHighDrop=%u, aLowDrop=%u, aFreeDrop=%u, aMax=%ld]"), aHighDrop, aLowDrop, aFreeDrop, aMax); + + __ASSERT_ALWAYS( (aMax > (aLowDrop*1024*1024)), User::Leave(KErrArgument)); + __ASSERT_ALWAYS( (aLowDrop > aHighDrop), User::Leave(KErrArgument)); + + ReleaseDiskSpaceL(); + + TVolumeInfo volumeInfo; + User::LeaveIfError(iFs.Volume(volumeInfo, EDriveC)); + INFO_PRINTF2(_L(" Drive C currently has %ld bytes free."), volumeInfo.iFree); + + TUint64 current = volumeInfo.iFree; + if( current < (aLowDrop*1024*1024) ) + { + INFO_PRINTF1(_L(" Drive C already has too little free space!")); + User::Leave(KErrArgument); + } + if( current > aMax ) + { + current = aMax; + } + TUint64 high = current - (aHighDrop*1024*1024); + TUint64 low = current - (aLowDrop*1024*1024); + + SetLowHighLimitsInSmsuRscL(low, high); + if( aFreeDrop != 0 ) + { + TUint64 free = current - (aFreeDrop*1024*1024); + SetFreeDiskSpaceL(free); + } + + return current; + } + +/** + * Reserves disk space to match requested free space - a number MB below the current free space level. + * + * Checks the current free space and diskspace is reserved to aFreeDrop + * MB below the current free space level. + * + * If the current free space level is greater then aMax then the + * current free space level is set to aMax + * + * If the current free space level is less than aLowDrop MB then this + * method leaves with KErrArgument. + * + * @param aFreeDrop The number of MB below the current free space level for the low level mark + * @param aMax The maximum level for the high limit allowed + * + * @return The max current free space level used. + * + * @leave KErrArgument if the current free diskspace level is less than aLowDrop MB + * @leave KErrArgument if aMax is not greater than aLowDrop MB + * @leave KErrArgument if aHighDrop >= aLowDrop + */ +EXPORT_C void CSmsBaseTestStep::SetFreeDiskSpaceFromDropLevelL(TUint aFreeDrop, TUint64 aMax/*=0x7fffffff*/) + { + INFO_PRINTF3(_L("Setting Free Diskspace level [aFreeDrop=%u, aMax=%ld]"), aFreeDrop, aMax); + + if( aFreeDrop == 0) + { + return; + } + + TVolumeInfo volumeInfo; + User::LeaveIfError(iFs.Volume(volumeInfo, EDriveC)); + TUint64 current = volumeInfo.iFree; + if( current > aMax ) + { + current = aMax; + } + TUint64 free = current - (aFreeDrop*1024*1024); + SetFreeDiskSpaceL(free); + } + +/** + * Reserves disk space so that a specified amount of free disk space is + * available. + * + * @param aNewFreeValue Amount of free space required. + */ +EXPORT_C void CSmsBaseTestStep::SetFreeDiskSpaceL(TInt64 aNewFreeValue) + { + +#ifndef _DEBUG + (void)aNewFreeValue; // added to aviod compiler warning, as only used in test mode + + ERR_PRINTF1(_L("Unexpected call: CSMSTestSteps::SetFreeDiskSpaceL() is expected to be called only in DEBUG mode.")); + User::Leave(KErrNotSupported); +#else + INFO_PRINTF2(_L("Setting Drive C free disk space to %ld bytes."), aNewFreeValue); + + __ASSERT_DEBUG( (aNewFreeValue <= 0x7fffffff), User::Leave(KErrArgument)); + + TInt err = RProperty::Set(KUidPSSMSStackCategory, KUidPSSMSStackFreeDiskSpaceKey, (TInt)aNewFreeValue); + if (err != KErrNone) + { + ERR_PRINTF2(_L("RProperty::Set() failure [err=%d]"), err); + User::Leave(err); + } +#endif + } // CSMSTestSteps::SetFreeDiskSpaceL + + +/** + * Release all reserved disk space. + */ +EXPORT_C void CSmsBaseTestStep::ReleaseDiskSpaceL() + { +#ifndef _DEBUG + ERR_PRINTF1(_L("Unexpected call: CSMSTestSteps::ReleaseDiskSpaceL() is expected to be called only in DEBUG mode.")); + User::Leave(KErrNotSupported); +#else + INFO_PRINTF1(_L("CSMSTestSteps::ReleaseDiskSpaceL()")); + + TVolumeInfo volumeInfo; + User::LeaveIfError(iFs.Volume(volumeInfo, EDriveC)); + TUint64 current = volumeInfo.iFree; + if( current > 0x7fffffff ) + { + current = 0x7fffffff; + } + SetFreeDiskSpaceL(current); +#endif + } + + /** + * Set high and low limits in .RSC file. When the SMS Stack starts the limits + * will be loaded as if set by the licensee. + * + * @param aLowLimit Low limit value. + * @param aHighLimit High limit value. + * + * @note Only works in debug mode for security reasons. + */ +EXPORT_C void CSmsBaseTestStep::SetLowHighLimitsInSmsuRscL(TInt64 aLowLimit, TInt64 aHighLimit) + { + INFO_PRINTF3(_L("Setting high and low .RSC limits to %ld and %ld."), + aHighLimit, aLowLimit); + + __ASSERT_ALWAYS(aLowLimit < 0x7fffffff, User::Leave(KErrArgument)); + __ASSERT_ALWAYS(aHighLimit < 0x7fffffff, User::Leave(KErrArgument)); + __ASSERT_ALWAYS(aLowLimit < aHighLimit, User::Leave(KErrArgument)); + + // + // Data for the SMSU resource file. The low limit is written at position + // 20 and the high limit at position 24. + // + const TInt smsuRscSize = 34; + TChar smsuRscData[smsuRscSize] = + {0x6b, 0x4a, 0x1f, 0x10, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x19, 0xfd, 0x48, 0xe8, + 0x01, 0x04, 0x00, 0x00, 0x78, 0x56, 0x34, 0x12, + 0x87, 0x65, 0x43, 0x21, 0x14, 0x00, 0x18, 0x00, + 0x1c, 0x00}; + + smsuRscData[20] = (aLowLimit >> 0) & 0xff; + smsuRscData[21] = (aLowLimit >> 8) & 0xff; + smsuRscData[22] = (aLowLimit >> 16) & 0xff; + smsuRscData[23] = (aLowLimit >> 24) & 0xff; + smsuRscData[24] = (aHighLimit >> 0) & 0xff; + smsuRscData[25] = (aHighLimit >> 8) & 0xff; + smsuRscData[26] = (aHighLimit >> 16) & 0xff; + smsuRscData[27] = (aHighLimit >> 24) & 0xff; + + TBuf8 smsuRscBuffer; + + for (TInt index = 0; index < smsuRscSize; index++) + { + smsuRscBuffer.Append(smsuRscData[index]); + } + + // + // Ensure the target directory exists... + // + TInt ret; + + ret = iFs.MkDir(KSMSUResourceDir); + if (ret != KErrNone && ret != KErrAlreadyExists) + { + User::Leave(ret); + } + + // + // Write the RSC file to the private C:\ directory... + // + RFile file; + + User::LeaveIfError(file.Replace(iFs, KSMSUResourceFile, EFileWrite)); + CleanupClosePushL(file); + User::LeaveIfError(file.Write(smsuRscSize, smsuRscBuffer)); + CleanupStack::PopAndDestroy(&file); + } // CSmsBaseTestStep::SetLowHighLimitsInSmsuRscL + + +/** + * Removes the low and high limits and returns the SMSU.RSC to defauls. + */ +EXPORT_C void CSmsBaseTestStep::RemoveLowHighLimitsFromSmsuRscL() + { + INFO_PRINTF1(_L("Removing .RSC limits.")); + + // + // Remove the RSC file... + // + TInt ret; + + ret = iFs.Delete(KSMSUResourceFile); + if (ret != KErrNone && ret != KErrNotFound) + { + User::Leave(ret); + } + } // CSmsBaseTestStep::RemoveLowHighLimitsFromSmsuRscL + +EXPORT_C void CSmsBaseTestStep::ChangeReceiveModeL(RMobileSmsMessaging::TMobileSmsReceiveMode aNewRcvMode) + { + + // Create comms database object + +#ifdef SYMBIAN_NON_SEAMLESS_NETWORK_BEARER_MOBILITY + CMDBSession* db = CMDBSession::NewL(KCDVersion1_2); +#else + CMDBSession* db = CMDBSession::NewL(KCDVersion1_1); +#endif + CleanupStack::PushL(db); + + INFO_PRINTF1(_L("Testing recvMode change to EReceiveUnstoredClientAck")); + + // EReceiveUnstoredClientAck + CMDBField* smsReceiveModeField = new(ELeave) CMDBField(KCDTIdSMSReceiveMode); + CleanupStack::PushL(smsReceiveModeField); + smsReceiveModeField->SetRecordId(1); //it's GlobalSettingsRecord + *smsReceiveModeField = aNewRcvMode; + smsReceiveModeField->ModifyL(*db); + CleanupStack::PopAndDestroy(smsReceiveModeField); + CleanupStack::PopAndDestroy(db); + } + +EXPORT_C TInt CSmsBaseTestStep::GetIntegerFromConfigL(const TDesC& aKey) + { + TInt value (0); + if(!GetIntFromConfig( ConfigSection(), aKey, value)) + { + ERR_PRINTF2( _L("%S is missing in the configuration file!"), &aKey); + User::Leave(KErrNotFound); + } + return value; + } + +EXPORT_C TPtrC CSmsBaseTestStep::GetStringFromConfigL(const TDesC& aKey) + { + TPtrC value; + if(!GetStringFromConfig(ConfigSection(), aKey, value)) + { + ERR_PRINTF2(_L("%S is missing in the configuration file!"), &aKey); + User::Leave(KErrNotFound); + } + return value; + } + +EXPORT_C void CSmsBaseTestStep::UpdatePhonePowerStatusL(RProperty& aPhonePowerProperty, TSAPhoneStatus aNewStatus) + { + INFO_PRINTF2(_L("Updating phone power status [aNewStatus=%d]"), aNewStatus); + + TInt currentStatus; + User::LeaveIfError(aPhonePowerProperty.Get(currentStatus)); + + while( currentStatus != aNewStatus ) + { + TRequestStatus status; + aPhonePowerProperty.Subscribe(status); + User::LeaveIfError(aPhonePowerProperty.Set(KUidSystemCategory, KUidPhonePwr.iUid, aNewStatus)); + User::After(5 * 1000000); // sleep 5 secs; + User::WaitForRequest(status); + TEST(status.Int() == KErrNone); + User::LeaveIfError(aPhonePowerProperty.Get(currentStatus)); + } + } + +// Build a list of instances of CPMs running ESOCKSVR.DLL +void CSmsBaseTestStep::BuildESockCPMListL(RRootServ& aRootServer, RUnloadInfoArray& aInfo, TDes8& aDispList) + { + TRSIter iter; + TCFModuleName modName; + TRSModuleInfo modInfo; + aInfo.ResetAndDestroy(); + aDispList.SetLength(0); + + while (aRootServer.EnumerateModules(iter, modName) == KErrNone) + { + if (aRootServer.GetModuleInfo(modName, modInfo) == KErrNone && + modInfo.iParams.iDll.MatchF(_L("*ESOCKSVR.DLL")) >= 0) + { + TESockSvrUnloadInfo* unloadInfo = new(ELeave) TESockSvrUnloadInfo; + unloadInfo->iName.Copy(modInfo.iParams.iName); + unloadInfo->iState=modInfo.iParams.iState; + unloadInfo->iStatus=KErrNone; + + aDispList.Append(unloadInfo->iName); + aDispList.Append(_L8(" ")); + + TInt err = aInfo.Append(unloadInfo); + TESTCHECKL(err, KErrNone, "Appending unloading info"); + } + } + } + +EXPORT_C void CSmsBaseTestStep::DoESockMemoryLeakTestL() + { + INFO_PRINTF1(_L("Checking for ESock memory leaks...")); + TInt ret, startLeakCounter; + + // Find the current number of leaked cells in ESock + ret = RProperty::Get(KUidCommsProcess, KUidCommsModuleLeakCounter, startLeakCounter); + if (ret == KErrNotFound) + { + // No variable to monitor, ESock is probably not in debug mode. + INFO_PRINTF1(_L("ESock is probably not in debug mode.")); + return; + } + + TESTCHECKL(ret, KErrNone, "Get the Comms Module Leak Counter") + + // With the Staged Start-up Architecture it is likely that ESOCK modules continue to load after the ECoreComponentsStarted + // state which releases StartC32() and RSocketServ::Connect(). So here we wait until the RootServer is fully configured before + // starting the shutdown, which avoids various races (modules may not be bound yet, or even loaded at all by the Configurator + // and hence invisible to this unloading code) + RProperty configurationProperty; + CleanupClosePushL(configurationProperty); + + configurationProperty.Attach(KUidSystemCategory, KUidC32StartPropertyKey.iUid); // needs the KEY + TInt propertyValue = EInitialising; // set to safe state + TInt propertyResult = configurationProperty.Get(propertyValue); + TRequestStatus propertyStatus; + while(propertyValue < EConfigurationComplete) + { + configurationProperty.Subscribe(propertyStatus); + + if(configurationProperty.Get(propertyValue) == KErrNone && propertyValue == EConfigurationComplete) + { + configurationProperty.Cancel(); + } + User::WaitForRequest(propertyStatus); + } + + RRootServ rootserver; + User::LeaveIfError(rootserver.Connect()); + CleanupClosePushL(rootserver); + + // Find all instances of CPMs running ESOCKSVR.DLL + RUnloadInfoArray unloadArray(16); + CleanupClosePushL(unloadArray); + TBuf8<256> modList; + + BuildESockCPMListL(rootserver, unloadArray, modList); + + // Start by asking all of the ESOCK threads to unload when there are no sessions + TInt index = unloadArray.Count(); + while( index-- > 0 ) + { + TESockSvrUnloadInfo* info = unloadArray[index]; + rootserver.UnloadCpm(info->iStatus, info->iName, EGraceful); + } + + // Start polling to see when they all complete unloading + const TInt KPollPeriod = 2000 * 1000; + TUint maxPolls = 15; + + RUnloadInfoArray pollUnloadArray(16); + BuildESockCPMListL(rootserver, pollUnloadArray, modList); + + while( maxPolls-- > 0 && pollUnloadArray.Count() > 0 ) + { + User::After(KPollPeriod); + BuildESockCPMListL(rootserver, pollUnloadArray, modList); + } + pollUnloadArray.ResetAndDestroy(); + + // Cancel any remaining unloads and eat the events + index = unloadArray.Count(); + while( index-- >0 ) + { + TESockSvrUnloadInfo* info = unloadArray[index]; + rootserver.CancelUnloadCpm(info->iName); + User::WaitForRequest(info->iStatus); + } + + // See what's left + BuildESockCPMListL(rootserver, unloadArray, modList); + + TInt err = KErrNone; // Will use this to catch first error below + TInt count = unloadArray.Count(); + + if(count > 0) + { + // No more waiting; we order immediate unloads + for(TInt i = 0; i < count; ++i) + { + TESockSvrUnloadInfo* info = unloadArray[i]; + rootserver.UnloadCpm(info->iStatus, info->iName, EImmediate); + } + + // Wait for them all to return + for(TInt i = 0; i < count; ++i) + { + TESockSvrUnloadInfo* info = unloadArray[i]; + User::WaitForRequest(info->iStatus); + } + + // Display the status of any remaining modules + for(TInt i = count - 1; i >= 0; --i) + { + TESockSvrUnloadInfo* info = unloadArray[i]; + TBuf16<32> tmp; + tmp.Copy(info->iName); + if(info->iStatus.Int() != KErrNone && info->iStatus.Int() != KErrRSModuleNotLoaded) + { + err = info->iStatus.Int(); + INFO_PRINTF4(_L("%S cannot be gracefully or immediatly unloaded due to error %d and is stuck in state %d"), &tmp, info->iStatus.Int(), info->iState); + } + else + { + INFO_PRINTF4(_L("%S could not be gracefully unloaded and had to be immediatly unloaded while it was stuck in state %d, status %d"), &tmp, info->iState, info->iStatus.Int()); + } + } + } + CleanupStack::PopAndDestroy(3, &configurationProperty); // configurationProperty, rootserver, unloadArray + + // Leave with last seen error, if any + TESTCHECKL(err, KErrNone, "Unloading CPM modules"); + + // Get the latest number of leaked cells in ESock + TInt finalLeakCounter; + + ret = RProperty::Get(KUidCommsProcess, KUidCommsModuleLeakCounter, finalLeakCounter); + TESTCHECKL(ret, KErrNone, "Getting Comms Module leak counter"); + + TESTCHECKCONDITION(finalLeakCounter <= startLeakCounter, "A memory leak has been detected inside ESock"); + + // TODO: reviewers - why is it here? + // Restart C32... + _LIT(KDummyCMI, ""); + WarmBootC32(KDummyCMI); + } diff -r 962e6306d9d2 -r 7ef16719d8cb smsprotocols/smsstack/test/smsstackbaseteststeps.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/smsprotocols/smsstack/test/smsstackbaseteststeps.h Fri Mar 12 15:49:38 2010 +0200 @@ -0,0 +1,211 @@ +// Copyright (c) 2009-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: +// + +#ifndef SMSSTACKBASETESTSTEPS_H +#define SMSSTACKBASETESTSTEPS_H + +#include +#include +#include +#include +#include +#include +#include +#include + +class RSocketServ; +class RSocket; +class CSmsMessage; +class CSmsBuffer; +class CSmsPduDbMessage; +class CSmsStackTestUtils; +class TTestCase; + +/** + Base class housing SMS test Steps +*/ +class CSmsBaseTestStep : public CTestStep + { +public: + IMPORT_C virtual TVerdict doTestStepPreambleL(); + IMPORT_C virtual TVerdict doTestStepPostambleL(); + + IMPORT_C virtual ~CSmsBaseTestStep(); + + enum TCodingScheme{ESevenBit=7, EEightBit}; + + /* Functions grabbed from SMS Stack Test Utils */ + // Socket utils + IMPORT_C void OpenSmsSocketL(RSocketServ& aSocketServer, RSocket& aSocket, TSmsAddr& aSmsAddr); + IMPORT_C void OpenSmsSocketL(RSocketServ& aSocketServer, RSocket& aSocket, TSmsAddrFamily aFamily); + + IMPORT_C void ParseSettingsFromFileL(); + + IMPORT_C void SetSimTSYTestNumberL(TInt aTestNumber); + IMPORT_C void SetTestNumberL(TInt aTestNumberProperty, TInt aTestNumber); + IMPORT_C void SetTestNumberFromConfigurationFileL(); + + IMPORT_C TInt GetIntegerFromConfigL(const TDesC& aKey); + IMPORT_C TPtrC GetStringFromConfigL(const TDesC& aKey); + + IMPORT_C void ConnectSocketServerL(RSocketServ& aSocketServer); + IMPORT_C void ConnectSocketServerLC(RSocketServ& aSocketServer); + + IMPORT_C void WaitForRecvL(RSocket& aSocket); + IMPORT_C TBool TimedWaitForRecvL(RSocket& aSocket, TUint aDelay); + + IMPORT_C CSmsMessage* RecvSmsL(RSocket& aSocket, TInt aIoctl = KIoctlReadMessageSucceeded); + IMPORT_C CSmsMessage* RecvSmsFailedL(RSocket& aSocket); + + IMPORT_C TSmsStatus::TSmsStatusValue RecvStatusReportL(TSmsServiceCenterAddress& aRecipientNumber, RSocket& aSocket); + + IMPORT_C CSmsMessage* CreateSmsMessageLC(CSmsPDU::TSmsPDUType aType, CSmsBuffer* aBuffer, const TDesC& aAddress); + IMPORT_C CSmsMessage* CreateSmsMessageL(const TDesC& aDes, TSmsDataCodingScheme::TSmsAlphabet aAlphabet, CSmsPDU::TSmsPDUType aType = CSmsPDU::ESmsSubmit); + IMPORT_C CSmsMessage* CreateSmsMessageLC(const TDesC& aDes, TSmsDataCodingScheme::TSmsAlphabet aAlphabet, CSmsPDU::TSmsPDUType aType = CSmsPDU::ESmsSubmit); + //This method is used to create SMS message from test data + IMPORT_C CSmsMessage* CreateSMSL(); + IMPORT_C CSmsMessage* CreateSmsWithStatusReportReqL(const TDesC& aDes, TSmsDataCodingScheme::TSmsAlphabet aAlphabet); + + IMPORT_C TUint64 SetHighLowLimitsAndDiskSpaceLevelL(TUint aHighDrop, TUint aLowDrop, TUint aFreeDrop, TUint64 aMax=0x7fffffff); + IMPORT_C void SetFreeDiskSpaceFromDropLevelL(TUint aFreeDrop, TUint64 aMax=0x7fffffff); + IMPORT_C void SetFreeDiskSpaceL(TInt64 aNewFreeValue); + IMPORT_C void ReleaseDiskSpaceL(); + IMPORT_C void SetLowHighLimitsInSmsuRscL(TInt64 aLowLimit, TInt64 aHighLimit); + IMPORT_C void RemoveLowHighLimitsFromSmsuRscL(); + + IMPORT_C void SendSmsL(const CSmsMessage* aSms, RSocket& aSocket, TInt aExpectedError=KErrNone, TInt aMaxRetries=3); + IMPORT_C void SendSmsCancelL(CSmsMessage* aSms, RSocket& aSocket1, RSocket& aSocket2); + IMPORT_C TInt SendSmsErrorL(CSmsMessage* aSms, RSocket& aSocket); + IMPORT_C void SendCommandSmsL(CSmsMessage* aSms, RSocket& aSocket); + IMPORT_C void SendTestMessageL(const TTestCase& aTestCase, RSocket& aSocket); + IMPORT_C void SendSmsDontCheckReturnValueL(CSmsMessage* aSms, RSocket& aSocket); + + IMPORT_C void SendAndRecvTestMessageL(const TTestCase& aTestCase, RSocket& aSocket); + IMPORT_C void SendAndRecvSms7BitL(const TDesC& aDes, RSocket& aSocket); + IMPORT_C void DoSendAndRecvSmsL(const TDesC& aDes, TSmsDataCodingScheme::TSmsAlphabet aAlphabet, RSocket& aSocket); + + IMPORT_C void PrintMessageDetailedL(const CSmsMessage* aSms); + IMPORT_C void PrintMessageL(const CSmsMessage* aSms); + + IMPORT_C void TestSmsContentsL(CSmsMessage* aSms, const TDesC& aDes, TBool aIgnorePrintOutput = EFalse); + IMPORT_C void TestMessageContentsL(CSmsMessage* aSms, const TTestCase& aTestCase); + + IMPORT_C void WriteSmsToSimL(CSmsMessage& aSms, RSocket& aSocket); + IMPORT_C void WriteSmsLeaveIfErrorL(const CSmsMessage& aSms, RSocket& aSocket); + IMPORT_C TInt CancelWriteSmsToSimL(CSmsMessage& aSms, RSocket& aSocket, TInt aDelay); + + IMPORT_C void ReadSmsStoreL(RSocket& aSocket, RPointerArray& aMessages); + IMPORT_C void ReadSmsStoreL(RSocket& aSocket, RPointerArray& aMessages, TRequestStatus &aStatus); + IMPORT_C TInt MakeReadSmsStoreRequestL(RSocket& aSocket); + + IMPORT_C TInt DeleteSmsL(const CSmsMessage& aSms, RSocket& aSocket, TInt aExpectedError=KErrNone); + IMPORT_C void DeleteSmsLeaveIfErrorL(const CSmsMessage& aSms, RSocket& aSocket); + + IMPORT_C void SetIndicatorL(const TTestCase& aTestCase, CSmsMessage* aSms); + IMPORT_C void FillDes(TDes& aDes,TInt aLength); + + IMPORT_C TBool DoSingleTestCaseL( const TDesC8& aSection, TInt aCount ); + IMPORT_C void ReadPduL( TBuf8<64> aSectionName, RPointerArray& aArray ); + IMPORT_C void TestSendAndRecvMsgsWithDifferentTONL( const RPointerArray& aArray, + const CArrayFixFlat* aAlphabetArray, + const CArrayFixFlat* aTypeOfNumberArray ); + IMPORT_C void TestSendAndReceiveIndicatorMsgsL( const RPointerArray& aArray, + const CArrayFixFlat* aIndicationStateArray, + const CArrayFixFlat* aDcsBits7To4Array, + const CArrayFixFlat* aIndicationTypeArray ); + + IMPORT_C void ChangeReceiveModeL(RMobileSmsMessaging::TMobileSmsReceiveMode aNewRcvMode); + + IMPORT_C void UpdatePhonePowerStatusL(RProperty& aPhonePowerProperty, TSAPhoneStatus aNewStatus); + + IMPORT_C void DoESockMemoryLeakTestL(); + +public: + CActiveScheduler* iScheduler; + CSmsStackTestUtils* iSmsStackTestUtils; + TSmsServiceCenterAddress iTelephoneNumber; // Test SIM + TSmsServiceCenterAddress iServiceCenterNumber; // Radiolinja + RSocketServ iSocketServer; + +protected: + IMPORT_C CSmsBaseTestStep(); + +protected: + RFs iFs; + TBool iPartOfMultiStepTestCase; + TBool iNotLastTestStep; + +private: + class TESockSvrUnloadInfo + { + public: + TCFModuleName iName; + RootServer::TRSModuleState iState; + TRequestStatus iStatus; + }; + + typedef RPointerArray RUnloadInfoArray; + +private: + void BuildESockCPMListL(RRootServ& aRootServer, RUnloadInfoArray& aInfo, TDes8& aDispList); + +}; + +/* + * Logging Macros + */ +#define TESTCHECKL(a, b, s) \ + { \ + if((a)!=(b)) \ + { \ + _LIT(KTemp, s); \ + ERR_PRINTF4(_L("%S failed: Got %d while expecting %d, leaving "), &KTemp, a, b); \ + SetTestStepResult(EFail); \ + User::Leave(EFail); \ + } \ + } + +#define TESTCHECKCONDITIONL(a, s) \ + { \ + if (!(a)) \ + { \ + _LIT(KTemp, s); \ + ERR_PRINTF2(_L("%S failed: Condition was false, leaving"), &KTemp); \ + SetTestStepResult(EFail); \ + User::Leave(EFail); \ + } \ + } + +#define TESTCHECK(a, b, s) \ + { \ + if((a)!=(b)) \ + { \ + _LIT(KTemp3, s); \ + ERR_PRINTF4(_L("%S failed: Got %d while expecting %d"), &KTemp3, a, b); \ + SetTestStepResult(EFail); \ + } \ + } + +#define TESTCHECKCONDITION(a, s) \ + { \ + if (!(a)) \ + { \ + _LIT(KTemp4, s); \ + ERR_PRINTF2(_L("%S failed: Condition was false"), &KTemp4); \ + SetTestStepResult(EFail); \ + } \ + } + +#endif // SMSSTACKBASETESTSTEPS_H diff -r 962e6306d9d2 -r 7ef16719d8cb smsprotocols/smsstack/test/smsstackcleanprivatedata.script --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/smsprotocols/smsstack/test/smsstackcleanprivatedata.script Fri Mar 12 15:49:38 2010 +0200 @@ -0,0 +1,24 @@ +// Copyright (c) 2009-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: +// + +//! @file +//! @SYMTestSuiteName CBS-SMS +//! @SYMScriptTestEnvironment + +RUN_UTILS DeleteFile c:\private\101F7989\sms\smssegst.dat +RUN_UTILS DeleteFile c:\private\101F7989\sms\smsreast.dat +RUN_UTILS DeleteFile c:\private\101F7989\sms\smsclass0preallocated.dat +RUN_UTILS DeleteFile c:\private\101F7989\sms\smsclass0reast.dat +RUN_UTILS DeleteFile c:\private\101F7989\sms\smsu.rsc diff -r 962e6306d9d2 -r 7ef16719d8cb smsprotocols/smsstack/test/smsstackrestoreeskfile.script --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/smsprotocols/smsstack/test/smsstackrestoreeskfile.script Fri Mar 12 15:49:38 2010 +0200 @@ -0,0 +1,25 @@ +// Copyright (c) 2009-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: +// + +//! @file +//! @SYMTestSuiteName CBS-SMS +//! @SYMScriptTestEnvironment + +RUN_UTILS MakeReadWrite c:\private\101F7989\esock\smswap.sms.esk + +RUN_UTILS CopyFile c:\private\101F7989\esock\smswap.sms.bak c:\private\101F7989\esock\smswap.sms.esk + +RUN_UTILS MakeReadWrite c:\private\101F7989\esock\smswap.sms.bak +RUN_UTILS MakeReadWrite c:\private\101F7989\esock\smswap.sms.esk diff -r 962e6306d9d2 -r 7ef16719d8cb smsprotocols/smsstack/test/smsstacksimtsytestnumbers.ini --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/smsprotocols/smsstack/test/smsstacksimtsytestnumbers.ini Fri Mar 12 15:49:38 2010 +0200 @@ -0,0 +1,315 @@ +//This is a test resource file. It is used to house SIM TSY test numbers. They are put here so they can be reused +[TestNumber0] +testNumber=0 + +[TestNumber1] +testNumber=1 + +[TestNumber2] +testNumber=2 + +[TestNumber3] +testNumber=3 + +[TestNumber4] +testNumber=4 + +[TestNumber5] +testNumber=5 + +[TestNumber6] +testNumber=6 + +[TestNumber7] +testNumber=7 + +[TestNumber8] +testNumber=8 + +[TestNumber9] +testNumber=9 + +[TestNumber10] +testNumber=10 + +[TestNumber11] +testNumber=11 + +[TestNumber12] +testNumber=12 + +[TestNumber13] +testNumber=13 + +[TestNumber14] +testNumber=14 + +[TestNumber15] +testNumber=15 + +[TestNumber16] +testNumber=16 + +[TestNumber17] +testNumber=17 + +[TestNumber18] +testNumber=18 + +[TestNumber19] +testNumber=19 + +[TestNumber20] +testNumber=20 + +[TestNumber21] +testNumber=21 + +[TestNumber22] +testNumber=22 + +[TestNumber23] +testNumber=23 + +[TestNumber24] +testNumber=24 + +[TestNumber25] +testNumber=25 + +[TestNumber26] +testNumber=26 + +[TestNumber27] +testNumber=27 + +[TestNumber28] +testNumber=28 + +[TestNumber29] +testNumber=29 + +[TestNumber30] +testNumber=30 + +[TestNumber31] +testNumber=31 + +[TestNumber32] +testNumber=32 + +[TestNumber33] +testNumber=33 + +[TestNumber34] +testNumber=34 + +[TestNumber35] +testNumber=35 + +[TestNumber37] +testNumber=37 + +[TestNumber38] +testNumber=38 + +[TestNumber39] +testNumber=39 + +[TestNumber40] +testNumber=40 + +[TestNumber41] +testNumber=41 + +[TestNumber42] +testNumber=42 + +[TestNumber43] +testNumber=43 + +[TestNumber44] +testNumber=44 + +[TestNumber45] +testNumber=45 + +[TestNumber46] +testNumber=46 + +[TestNumber47] +testNumber=47 + +[TestNumber48] +testNumber=48 + +[TestNumber49] +testNumber=49 + +[TestNumber50] +testNumber=50 + +[TestNumber51] +testNumber=51 + +[TestNumber52] +testNumber=52 + +[TestNumber53] +testNumber=53 + +[TestNumber54] +testNumber=54 + +[TestNumber55] +testNumber=55 + +[TestNumber57] +testNumber=57 + +[TestNumber58] +testNumber=58 + +[TestNumber59] +testNumber=59 + +[TestNumber60] +testNumber=60 + +[TestNumber62] +testNumber=62 + +[TestNumber63] +testNumber=63 + +[TestNumber64] +testNumber=64 + +[TestNumber65] +testNumber=65 + +[TestNumber66] +testNumber=66 + +[TestNumber67] +testNumber=67 + +[TestNumber68] +testNumber=68 + +[TestNumber69] +testNumber=69 + +[TestNumber70] +testNumber=70 + +[TestNumber71] +testNumber=71 + +[TestNumber73] +testNumber=73 + +[TestNumber75] +testNumber=75 + +[TestNumber76] +testNumber=76 + +[TestNumber77] +testNumber=77 + +[TestNumber78] +testNumber=78 + +[TestNumber79] +testNumber=79 + +[TestNumber80] +testNumber=80 + +[TestNumber81] +testNumber=81 + +[TestNumber82] +testNumber=82 + +[TestNumber83] +testNumber=83 + +[TestNumber84] +testNumber=84 + +[TestNumber131] +testNumber=131 + +[TestNumber132] +testNumber=132 + +[TestNumber133] +testNumber=133 + +[TestNumber134] +testNumber=134 + +[TestNumber135] +testNumber=135 + +[TestNumber141] +testNumber=141 + +[TestNumber142] +testNumber=142 + +[TestNumber143] +testNumber=143 + +[TestNumber144] +testNumber=144 + +[TestNumber150] +testNumber=150 + +[TestNumber151] +testNumber=151 + +[TestNumber152] +testNumber=152 + +[TestNumber153] +testNumber=153 + +[TestNumber154] +testNumber=154 + +[TestNumber155] +testNumber=155 + +[TestNumber156] +testNumber=156 + +[TestNumber157] +testNumber=157 + +[TestNumber158] +testNumber=158 + +[TestNumber159] +testNumber=159 + +[TestNumber160] +testNumber=160 + +[TestNumber161] +testNumber=161 + +[TestNumber162] +testNumber=162 + +[TestNumber163] +testNumber=163 + +[TestNumber164] +testNumber=164 + +[TestNumber165] +testNumber=165 diff -r 962e6306d9d2 -r 7ef16719d8cb smsprotocols/smsstack/test/smsstacktestcase.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/smsprotocols/smsstack/test/smsstacktestcase.cpp Fri Mar 12 15:49:38 2010 +0200 @@ -0,0 +1,140 @@ +// Copyright (c) 1999-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: +// + +#include "smsstacktestcase.h" + +EXPORT_C TTestCase::TTestCase() +// +// Constructor +// + { + CommonInit(); + } + +EXPORT_C TTestCase::TTestCase(const TDesC& aMsg, const TDesC& aMatch) +// +// Constructor +// +: iMatchType(ESmsAddrMatchText), iMsg(aMsg), iMatch(aMatch) + { + + CommonInit(); + } + +EXPORT_C void TTestCase::CommonInit() +// +// Reset member variables +// + { + + iTestSmsClass = EFalse; + iTestValidityPeriod = EFalse; + iTestForever=EFalse; + iTestIndicators=EFalse; + } + +EXPORT_C TTestCase::TTestCase(const TDesC& aMsg, CSmsInformationElement::TSmsInformationElementIdentifier aIdentifier) +// +// Constructor +// +: iMatchType(ESmsAddrMatchIEI), iMsg(aMsg), iIdentifierMatch(aIdentifier) + { + + CommonInit(); + } + +EXPORT_C TTestCase::TTestCase(const TDesC& aMsg, TSmsFirstOctet::TSmsStatusReportRequest /*aSRR*/) +// +// Match on status report - ignore actual value of aSRR +// +: iMatchType(ESmsAddrStatusReport), iMsg(aMsg) + { + + CommonInit(); + } + +EXPORT_C TTestCase::TTestCase(const TDesC& aMsg, TSmsDataCodingScheme::TSmsIndicationType aIndicationType, + TSmsDataCodingScheme::TSmsDCSBits7To4 aBits7To4, + TSmsDataCodingScheme::TSmsIndicationState aIndicationState) +// +// Match on a type of message indication +// +: iMatchType(ESmsAddrMessageIndication), iMsg(aMsg), iIndicationType(aIndicationType), + iBits7To4(aBits7To4), iIndicationState(aIndicationState) + { + + __ASSERT_ALWAYS(iBits7To4==TSmsDataCodingScheme::ESmsDCSMessageWaitingIndicationDiscardMessage + || iBits7To4==TSmsDataCodingScheme::ESmsDCSMessageWaitingIndication7Bit + || iBits7To4==TSmsDataCodingScheme::ESmsDCSMessageWaitingIndicationUCS2, + User::Panic(_L("TestCase"), KErrNotSupported)); + + CommonInit(); + iTestIndicators=ETrue; + + } + +EXPORT_C TTestCase::TTestCase(const TDesC& aMsg) +// +// Constructor +// +: iMatchType(ESmsAddrRecvAny), iMsg(aMsg) + { + + CommonInit(); + } + +EXPORT_C const TTestCase& TTestCase::operator=(const TTestCase& aTest) +// +// Assignment operator +// + { + + iMatchType = aTest.iMatchType; + iMsg.Set(aTest.iMsg); + iMatch.Set(aTest.iMatch); + iIdentifierMatch = aTest.iIdentifierMatch; + iTestForever = aTest.iTestForever; + return *this; + } + +EXPORT_C void TTestCase::SetSmsClass(TSmsDataCodingScheme::TSmsClass aClass) +// +// Set Sms Class +// + { + + iTestSmsClass = ETrue; + iSmsClass = aClass; + } + +EXPORT_C void TTestCase::SetValidityPeriod(const TTimeIntervalMinutes& aTimeInterval) +// +// Set the validity period +// + { + + iTestValidityPeriod = ETrue; + iValidityPeriod = aTimeInterval; + } + +EXPORT_C void TTestCase::SetRecvForever() +// +// Recv all messages forever +// + { + + iTestForever = ETrue; + iMatchType = ESmsAddrRecvAny; + } diff -r 962e6306d9d2 -r 7ef16719d8cb smsprotocols/smsstack/test/smsstacktestcase.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/smsprotocols/smsstack/test/smsstacktestcase.h Fri Mar 12 15:49:38 2010 +0200 @@ -0,0 +1,61 @@ +// Copyright (c) 1999-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: +// + +/** + @file +*/ + +#ifndef SMSSTACKTESTCASE_H +#define SMSSTACKTESTCASE_H + +#include +#include + +class TTestCase //: public CSmsPrtTestStep + { +public: + IMPORT_C TTestCase(); + IMPORT_C TTestCase(const TDesC& aMsg, const TDesC& aMatch); + IMPORT_C TTestCase(const TDesC& aMsg, CSmsInformationElement::TSmsInformationElementIdentifier aId); + IMPORT_C TTestCase(const TDesC& aMsg, TSmsFirstOctet::TSmsStatusReportRequest aSRR); + IMPORT_C TTestCase(const TDesC& aMsg, TSmsDataCodingScheme::TSmsIndicationType aIndicationType, + TSmsDataCodingScheme::TSmsDCSBits7To4 aBits7To4, TSmsDataCodingScheme::TSmsIndicationState iIndicationState); + IMPORT_C TTestCase(const TDesC& aMsg); + IMPORT_C const TTestCase& operator=(const TTestCase& aTest); + IMPORT_C void SetSmsClass(TSmsDataCodingScheme::TSmsClass aClass); + IMPORT_C void SetValidityPeriod(const TTimeIntervalMinutes& aTimeInterval); + IMPORT_C void SetRecvForever(); + +private: + void CommonInit(); + +public: + TSmsAddrFamily iMatchType; + TPtrC iMsg; + TPtrC iMatch; + CSmsInformationElement::TSmsInformationElementIdentifier iIdentifierMatch; + + TBool iTestSmsClass; + TSmsDataCodingScheme::TSmsClass iSmsClass; + TBool iTestValidityPeriod; + TTimeIntervalMinutes iValidityPeriod; + TBool iTestForever; + TBool iTestIndicators; + TSmsDataCodingScheme::TSmsIndicationType iIndicationType; // for ESmsAddrMessageIndication + TSmsDataCodingScheme::TSmsDCSBits7To4 iBits7To4; // for ESmsAddrMessageIndication + TSmsDataCodingScheme::TSmsIndicationState iIndicationState; // for ESmsAddrMessageIndication + }; + +#endif // SMSSTACKTESTCASE_H diff -r 962e6306d9d2 -r 7ef16719d8cb smsprotocols/smsstack/test/smsstacktestconsts.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/smsprotocols/smsstack/test/smsstacktestconsts.h Fri Mar 12 15:49:38 2010 +0200 @@ -0,0 +1,68 @@ +// Copyright (c) 2009-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: +// + +#ifndef SMSSTACKTESTCONSTS_H +#define SMSSTACKTESTCONSTS_H + +// Location and name of the RSC file. +_LIT(KSMSUResourceDir, "C:\\private\\101f7989\\sms\\"); +_LIT(KSMSUResourceFile, "C:\\private\\101f7989\\sms\\smsu.rsc"); + +// Here are the section names +_LIT8(KSetupTelNumbers, "Defaults"); +_LIT8(KTelefoneNumber, "TelephoneNumber"); + +// Here are the item names +_LIT8(KServiceCenter, "ServiceCenter"); + +_LIT(KGmsSmsConfigFileName,"setupgsmsms.txt"); +_LIT(KTSmsPrtConfigFileName, "tsmsprt_config.txt"); +_LIT(KTSmsPrtConfigExtraFileName, "tsmsprt_config_extra.txt"); +_LIT(KTSmsPrtConfigTxRxMaxMsgFileName, "tsmsprt_config_tx_rx_maxmsg.txt"); + +_LIT8(KServiceCentreAddress, "ServiceCentreAddress"); +_LIT8(KSmspEntryValidParams, "SmspEntryValidParams"); +_LIT8(KSmspEntryScTypeOfNumber, "SmspEntryScTypeOfNumber"); +_LIT8(KSmspEntryScNumberPlan, "SmspEntryScNumberPlan"); + +_LIT(KVodafoneSC,"+447785016005"); //Vodafone SC +_LIT(KRegTestNumber,"+447747065548"); //Number used with regtest +_LIT(KTestNumber,"+447747065825"); //Number used with regtest + +_LIT(KSoneraSC,"+358405202000"); //Sonera SC +_LIT(KRadiolinjaSC,"+358508771010"); //Radiolinja SC + +_LIT(KPekka,"+358408415528"); //Pekka's telephone number +_LIT(KOther,"+358408415582"); // Other test number +_LIT(KLocalNumber, "08408415528"); //Local test number to verify local/international switching +_LIT(KInternationalTestNumber, "+819021710979"); // International number to be used with a status + // report containing local version of this number + +_LIT8(KTestSendAndRecvMsgsWithDifferentTON, "SendAndRecvMsgsWithDifferentTON"); +_LIT8(KTestSendAndReceiveIndicatorMsgs, "SendAndReceiveIndicatorMsgs"); +_LIT(KConfigFileDir,"sms"); +_LIT8(KAlphabet, "Alphabet"); +_LIT8(KTypeOfNumber, "TypeOfNumber"); +_LIT8(KIndicationType, "IndicationType"); +_LIT8(KDCSBits7To4, "DCSBits7To4"); +_LIT8(KIndicationState, "IndicationState"); + +_LIT(KText, "123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123"); + +_LIT(KTestCaseNumber, "testNumber"); ///< test number run by SIMTSY + +const TUint KSocketMessageSlots = 16; // Override the default value of 8 + +#endif // SMSSTACKTESTCONSTS_H diff -r 962e6306d9d2 -r 7ef16719d8cb smsprotocols/smsstack/test/smsstacktestutilities.cpp --- a/smsprotocols/smsstack/test/smsstacktestutilities.cpp Fri Feb 19 23:59:33 2010 +0200 +++ b/smsprotocols/smsstack/test/smsstacktestutilities.cpp Fri Mar 12 15:49:38 2010 +0200 @@ -19,26 +19,26 @@ @file */ -#include -#include +#include "smsstacktestutilities.h" -#include "smsstacktestutilities.h" +#include +#include +#include #include +#include +#include +#include + #include "smsustrm.h" #include "Gsmumsg.h" #include "smsuaddr.H" #include "gsmubuf.h" - #include "smspdudb.h" -#include -#include #include "SmsuTimer.h" #include "smsstacklog.h" -#include using namespace CommsDat; - // Check a boolean is true #define LOCAL_CHECKPOINT(a) iTestStep->testBooleanTrue((a), (TText8*)__FILE__, __LINE__) @@ -55,7 +55,6 @@ #define PRINTF6(p1, p2, p3, p4, p5, p6) iTestStep->Logger().LogExtra(((TText8*)__FILE__), __LINE__, ESevrInfo, (p1), (p2), (p3), (p4), (p5), (p6)) #define PRINTF7(p1, p2, p3, p4, p5, p6, p7) iTestStep->Logger().LogExtra(((TText8*)__FILE__), __LINE__, ESevrInfo, (p1), (p2), (p3), (p4), (p5), (p6), (p7)) - class CTSmsRegTstActive : public CActive { public: @@ -119,78 +118,6 @@ { } -EXPORT_C void CSmsStackTestUtils::WaitForInitializeL() -/** - * Initialize the phone for the tsy. This will prevent message sends from completing with KErrNotReady - */ - { -#ifdef SYMBIAN_NON_SEAMLESS_NETWORK_BEARER_MOBILITY - CMDBSession* db = CMDBSession::NewL(KCDVersion1_2); -#else - CMDBSession* db = CMDBSession::NewL(KCDVersion1_1); -#endif - - CleanupStack::PushL(db); - - TName tsy; - TUint32 modemId = 0; - - CMDBField* globalSettingsField = new(ELeave) CMDBField(KCDTIdModemPhoneServicesSMS); - CleanupStack::PushL(globalSettingsField); - globalSettingsField->SetRecordId(1); - globalSettingsField->LoadL(*db); - modemId = *globalSettingsField; - CleanupStack::PopAndDestroy(globalSettingsField); - - CMDBField* tsyField = new(ELeave) CMDBField(KCDTIdTsyName); - CleanupStack::PushL(tsyField); - tsyField->SetRecordId(modemId); - tsyField->SetMaxLengthL(KMaxTextLength); - tsyField->LoadL(*db); - tsy = *tsyField; - CleanupStack::PopAndDestroy(tsyField); - - CleanupStack::PopAndDestroy(db); - - PRINTF2(_L("Loading TSY \"%S\"..."), &tsy); - - RTelServer server; - User::LeaveIfError(server.Connect()); - CleanupClosePushL(server); - User::LeaveIfError(server.LoadPhoneModule(tsy)); - - // Find the phone corresponding to this TSY and open a number of handles on it - TInt numPhones; - User::LeaveIfError(server.EnumeratePhones(numPhones)); - RPhone phone; - TBool found=EFalse; - - while (numPhones--) - { - TName phoneTsy; - User::LeaveIfError(server.GetTsyName(numPhones,phoneTsy)); - if (phoneTsy.CompareF(tsy)==KErrNone) - { - PRINTF1(_L("Found RPhone...")); - found = ETrue; - RTelServer::TPhoneInfo info; - User::LeaveIfError(server.GetPhoneInfo(numPhones,info)); - User::LeaveIfError(phone.Open(server,info.iName)); - CleanupClosePushL(phone); - PRINTF1(_L("Initializing...")); - const TInt err = phone.Initialise(); - TTimeIntervalMicroSeconds32 InitPause=9000000; //Required Pause to Allow SMSStack to Complete its Async Init - User::After(InitPause); //call to the TSY and finish its StartUp. - PRINTF2(_L("Completed Initialize [err=%d]"), err); - User::LeaveIfError(err); - CleanupStack::PopAndDestroy(&phone); - break; - } - } - - LOCAL_CHECKPOINT(found); - CleanupStack::PopAndDestroy(&server); - } EXPORT_C void CSmsStackTestUtils::OpenSmsSocketLC(RSocketServ& aSocketServer, RSocket& aSocket, TSmsAddrFamily aFamily) /** @@ -231,7 +158,6 @@ CleanupClosePushL(aSocket); } - EXPORT_C void CSmsStackTestUtils::OpenSmsSocketL(RSocketServ& aSocketServer, RSocket& aSocket, TSmsAddr& aSmsAddr) /** * Initialise an RSocket for SMS, aSocket is NOT pushed to CleanupStack. @@ -247,7 +173,14 @@ ret=aSocket.Bind(aSmsAddr); PRINTF2(_L("Socket Bind Return Value : %d"),ret); LOCAL_CHECKPOINT(ret == KErrNone); - WaitForInitializeL(); + + TProtocolDesc desc; + aSocket.Info(desc); + PRINTF2(_L("Protocol name: %S"), &desc.iName); + + TTimeIntervalMicroSeconds32 InitPause=9000000; //Required Pause to Allow SMSStack to Complete its Async Init + User::After(InitPause); //call to the TSY and finish its StartUp. + CleanupStack::Pop(&aSocket); } @@ -267,27 +200,27 @@ LOCAL_CHECKPOINT(ret == KErrNone); TRAP(ret,writestream.CommitL()); LOCAL_CHECKPOINT(ret == KErrNone); - + // Create comms database object - CMDBSession* db = CMDBSession::NewL(KCDVersion1_1); - CleanupStack::PushL(db); + CMDBSession* db = CMDBSession::NewL(KCDVersion1_1); + CleanupStack::PushL(db); //Send message and change bearer TPckgBuf sbuf; TRequestStatus status; - aSocket.Ioctl(KIoctlSendSmsMessage,status,&sbuf, KSolSmsProv); + aSocket.Ioctl(KIoctlSendSmsMessage, status, &sbuf, KSolSmsProv); //Wait couple of seconds to ensure first pdus of message have been sent User::After(2500000); - // Change bearer - CMDBField* smsBearerField = new(ELeave) CMDBField(KCDTIdSMSBearer); - CleanupStack::PushL(smsBearerField); - smsBearerField->SetRecordId(1); //it's GlobalSettingsRecord - *smsBearerField = aBearer; - smsBearerField->ModifyL(*db); - CleanupStack::PopAndDestroy(smsBearerField); - CleanupStack::PopAndDestroy(db); + // Change bearer + CMDBField* smsBearerField = new(ELeave) CMDBField(KCDTIdSMSBearer); + CleanupStack::PushL(smsBearerField); + smsBearerField->SetRecordId(1); //it's GlobalSettingsRecord + *smsBearerField = aBearer; + smsBearerField->ModifyL(*db); + CleanupStack::PopAndDestroy(smsBearerField); + CleanupStack::PopAndDestroy(db); User::WaitForRequest(status); PRINTF2(_L("SendSmsL - sendSmsMessage returned %d"), status.Int()); @@ -310,28 +243,28 @@ @return none */ { - // Start a CommDB session + // Start a CommDB session #ifdef SYMBIAN_NON_SEAMLESS_NETWORK_BEARER_MOBILITY - CMDBSession* db = CMDBSession::NewL(KCDVersion1_2); + CMDBSession* db = CMDBSession::NewL(KCDVersion1_2); #else - CMDBSession* db = CMDBSession::NewL(KCDVersion1_1); + CMDBSession* db = CMDBSession::NewL(KCDVersion1_1); #endif - CleanupStack::PushL(db); - - // Change bearer in global settings - CMDBRecordSet globalSettingsRecord(KCDTIdGlobalSettingsRecord); - TRAPD(err, globalSettingsRecord.LoadL(*db)); - if (err != KErrNone) - { - PRINTF2(_L("Could not load global settings. Error = %d\n"), err); - User::Leave(err); - } - ((CCDGlobalSettingsRecord*)globalSettingsRecord.iRecords[0])->iSMSBearer = aBearer; - globalSettingsRecord.ModifyL(*db); - - PRINTF2(_L("Setting bearer in global settings to %d\n"), aBearer); - - CleanupStack::PopAndDestroy(db); + CleanupStack::PushL(db); + + // Change bearer in global settings + CMDBRecordSet globalSettingsRecord(KCDTIdGlobalSettingsRecord); + TRAPD(err, globalSettingsRecord.LoadL(*db)); + if (err != KErrNone) + { + PRINTF2(_L("Could not load global settings. Error = %d\n"), err); + User::Leave(err); + } + ((CCDGlobalSettingsRecord*)globalSettingsRecord.iRecords[0])->iSMSBearer = aBearer; + globalSettingsRecord.ModifyL(*db); + + PRINTF2(_L("Setting bearer in global settings to %d\n"), aBearer); + + CleanupStack::PopAndDestroy(db); } EXPORT_C void CSmsStackTestUtils::GetBearerL(RMobileSmsMessaging::TMobileSmsBearer& aBearer) @@ -341,29 +274,29 @@ @param aBearer The bearer setting retrieved from global settings. @return none */ - { - // Start a CommDB session + { + // Start a CommDB session #ifdef SYMBIAN_NON_SEAMLESS_NETWORK_BEARER_MOBILITY - CMDBSession* db = CMDBSession::NewL(KCDVersion1_2); + CMDBSession* db = CMDBSession::NewL(KCDVersion1_2); #else - CMDBSession* db = CMDBSession::NewL(KCDVersion1_1); + CMDBSession* db = CMDBSession::NewL(KCDVersion1_1); #endif - CleanupStack::PushL(db); - - // Load global settings - CMDBRecordSet globalSettingsRecord(KCDTIdGlobalSettingsRecord); - TRAPD(err, globalSettingsRecord.LoadL(*db)); - if (err != KErrNone) - { - PRINTF2(_L("Could not load global settings. Error = %d\n"), err); - User::Leave(err); - } - TInt tempBearer = ((CCDGlobalSettingsRecord*)globalSettingsRecord.iRecords[0])->iSMSBearer; - aBearer = static_cast(tempBearer); - PRINTF2(_L("Got bearer from CommDB. Bearer = %d\n"), aBearer); - - CleanupStack::PopAndDestroy(db); - } + CleanupStack::PushL(db); + + // Load global settings + CMDBRecordSet globalSettingsRecord(KCDTIdGlobalSettingsRecord); + TRAPD(err, globalSettingsRecord.LoadL(*db)); + if (err != KErrNone) + { + PRINTF2(_L("Could not load global settings. Error = %d\n"), err); + User::Leave(err); + } + TInt tempBearer = ((CCDGlobalSettingsRecord*)globalSettingsRecord.iRecords[0])->iSMSBearer; + aBearer = static_cast(tempBearer); + PRINTF2(_L("Got bearer from CommDB. Bearer = %d\n"), aBearer); + + CleanupStack::PopAndDestroy(db); + } EXPORT_C void CSmsStackTestUtils::DisableLogging() { @@ -389,38 +322,35 @@ CActiveScheduler::Start(); LOCAL_CHECKPOINT(testActive->iStatus.Int() == KErrNone); - CleanupStack::PopAndDestroy(logWrapper); - CleanupStack::PopAndDestroy(testActive); + CleanupStack::PopAndDestroy(2, testActive); // testActive, logWrapper } EXPORT_C void CSmsStackTestUtils::EnableLogging() - { - CTSmsRegTstActive* testActive = new(ELeave)CTSmsRegTstActive(); - CleanupStack::PushL(testActive); - testActive->StartL(); - - CLogWrapper* logWrapper=CLogWrapper::NewL(iFs); - CleanupStack::PushL(logWrapper); - CLogClient& logClient = static_cast (logWrapper->Log()); - TLogConfig config; - logClient.GetConfig(config, testActive->iStatus); - CActiveScheduler::Start(); - LOCAL_CHECKPOINT(testActive->iStatus.Int() == KErrNone); - - // Enable logging - config.iMaxEventAge = 10000; - config.iMaxLogSize = 10000; - config.iMaxRecentLogSize = 127; - - testActive->StartL(); - logClient.ChangeConfig(config, testActive->iStatus); - CActiveScheduler::Start(); - LOCAL_CHECKPOINT(testActive->iStatus.Int() == KErrNone); - - CleanupStack::PopAndDestroy(logWrapper); - CleanupStack::PopAndDestroy(testActive); - } - + { + CTSmsRegTstActive* testActive = new(ELeave)CTSmsRegTstActive(); + CleanupStack::PushL(testActive); + testActive->StartL(); + + CLogWrapper* logWrapper=CLogWrapper::NewL(iFs); + CleanupStack::PushL(logWrapper); + CLogClient& logClient = static_cast (logWrapper->Log()); + TLogConfig config; + logClient.GetConfig(config, testActive->iStatus); + CActiveScheduler::Start(); + LOCAL_CHECKPOINT(testActive->iStatus.Int() == KErrNone); + + // Enable logging - default values + config.iMaxEventAge = 2592000; + config.iMaxLogSize = 1000; + config.iMaxRecentLogSize = 20; + + testActive->StartL(); + logClient.ChangeConfig(config, testActive->iStatus); + CActiveScheduler::Start(); + LOCAL_CHECKPOINT(testActive->iStatus.Int() == KErrNone); + + CleanupStack::PopAndDestroy(2, testActive); // testActive, logWrapper + } EXPORT_C void CSmsStackTestUtils::GetLogEventL(CLogEvent& aLogEvent, TInt aLogServerId) /** @@ -440,7 +370,8 @@ logWrapper->Log().GetEvent(aLogEvent,testActive->iStatus); CActiveScheduler::Start(); LOCAL_CHECKPOINT(testActive->iStatus.Int() == KErrNone); - CleanupStack::PopAndDestroy(2); // testActive, logWrapper + + CleanupStack::PopAndDestroy(2, testActive); // testActive, logWrapper } EXPORT_C TLogId CSmsStackTestUtils::AddLogEventL(CSmsMessage& aSmsMessage,TLogSmsPduData& aSmsPDUData) @@ -478,15 +409,17 @@ logevent->SetStatus(_L("status")); TPckg packeddata(aSmsPDUData); logevent->SetDataL(packeddata); - + + PRINTF2(_L("iStatus is %d"), testActive->iStatus.Int()); logWrapper->Log().AddEvent(*logevent,testActive->iStatus); CActiveScheduler::Start(); + PRINTF2(_L("iStatus is %d"), testActive->iStatus.Int()); LOCAL_CHECKPOINT(testActive->iStatus.Int() == KErrNone); id=logevent->Id(); CleanupStack::PopAndDestroy(logevent); } - CleanupStack::PopAndDestroy(2); // testActive, logWrapper + CleanupStack::PopAndDestroy(2, testActive); // testActive, logWrapper return id; } @@ -620,15 +553,12 @@ CTestConfigItem* item = CTestConfigItem::NewLC(section, KSmspTestUtilsSmsTx, *smsTx); User::LeaveIfError(section.Items().Append(item)); - + CleanupStack::Pop(item); - CleanupStack::PopAndDestroy(smsTx); - CleanupStack::PopAndDestroy(sc); - CleanupStack::PopAndDestroy(pduBuf); + CleanupStack::PopAndDestroy(3, pduBuf); // smsTx, sc, pduBuf } - CleanupStack::PopAndDestroy(submitReport); - CleanupStack::PopAndDestroy(pdus); + CleanupStack::PopAndDestroy(2, pdus); // pdus, submitReport } EXPORT_C HBufC8* CSmsStackTestUtils::ConvertToHexLC(const TDesC8& aDes) const @@ -642,7 +572,6 @@ { value.AppendFormat(_L8("%02X"), aDes[i]); } - return hBuf; } @@ -702,7 +631,6 @@ CleanupStack::PopAndDestroy(addr); } - /** * This is a unit test for class TSmsServiceCenterTimeStamp. It is added to this utility * class because it has access to TSmsServiceCenterTimeStamp. TSmsServiceCenterTimeStamp is not exported @@ -1907,11 +1835,8 @@ } } - - - // -// CTestGetSmsList +// CTestGetSmsList // EXPORT_C CTestGetSmsList* CTestGetSmsList::NewL(TInt aPriority, RSocketServ& aSocketServer, CSmsStackTestUtils& aTestUtils) @@ -1923,12 +1848,7 @@ return smsListGetter; } -CTestGetSmsList::CTestGetSmsList(TInt aPriority, RSocketServ& aSocketServer, CSmsStackTestUtils& aTestUtils) -/** - * Constructor - * - * * - */ +EXPORT_C CTestGetSmsList::CTestGetSmsList(TInt aPriority, RSocketServ& aSocketServer, CSmsStackTestUtils& aTestUtils) : CSmsuActiveBase(aPriority), //parent construction iSocketServer(aSocketServer), iTestUtils(aTestUtils) diff -r 962e6306d9d2 -r 7ef16719d8cb smsprotocols/smsstack/test/smsstacktestutilities.h --- a/smsprotocols/smsstack/test/smsstacktestutilities.h Fri Feb 19 23:59:33 2010 +0200 +++ b/smsprotocols/smsstack/test/smsstacktestutilities.h Fri Mar 12 15:49:38 2010 +0200 @@ -19,24 +19,21 @@ * */ - - /** @file */ -#ifndef __TSMSPTESTUTILS_H__ -#define __TSMSPTESTUTILS_H__ +#ifndef SMSSTACKTESTUTILITIES_H +#define SMSSTACKTESTUTILITIES_H #include #include #include #include #include -#include -#include "logwrap.h" -#include "logeng.h" +#include #include +#include #include #include @@ -56,7 +53,6 @@ class CSmsStackTestUtils : public CBase { public: - //Factory IMPORT_C static CSmsStackTestUtils* NewL(CTestStep* aTestStep, RFs& aFs); IMPORT_C ~CSmsStackTestUtils(); @@ -93,7 +89,6 @@ IMPORT_C void OpenSmsSocketLC(RSocketServ& aSocketServer, RSocket& aSocket, TSmsAddrFamily aFamily); IMPORT_C void OpenSmsSocketL(RSocketServ& aSocketServer, RSocket& aSocket, TSmsAddr& aSmsAddr); IMPORT_C void OpenSmsSocketL(RSocketServ& aSocketServer, RSocket& aSocket, TSmsAddrFamily aFamily); - IMPORT_C void WaitForInitializeL(); ///SMS Parameter utils IMPORT_C TInt StoreParamsL(CMobilePhoneSmspList& aSmspList, RSocket& aSocket, TBool aCancelAfterRequest); @@ -120,12 +115,10 @@ IMPORT_C void GetBearerL(RMobileSmsMessaging::TMobileSmsBearer& aBearer); private: - CSmsStackTestUtils(CTestStep* aTestStep, RFs& aFs); void ConstructL(); - + public: - CTestStep* iTestStep; RFs& iFs; CCnvCharacterSetConverter* iCharConv; @@ -224,7 +217,4 @@ CSmsStackTestUtils& iTestUtils; }; - -#endif //__TSMSPTESTUTILS_H__ - - +#endif // SMSSTACKTESTUTILITIES_H diff -r 962e6306d9d2 -r 7ef16719d8cb smsprotocols/smsstack/test/smsstacktestutilities.mmp --- a/smsprotocols/smsstack/test/smsstacktestutilities.mmp Fri Feb 19 23:59:33 2010 +0200 +++ b/smsprotocols/smsstack/test/smsstacktestutilities.mmp Fri Mar 12 15:49:38 2010 +0200 @@ -20,8 +20,8 @@ */ TARGET smsstacktestutilities.dll -CAPABILITY ReadDeviceData WriteDeviceData NetworkControl NetworkServices ReadUserData WriteUserData ProtServ AllFiles PowerMgmt -//UID 0x1000008D 0x101FBB4F +CAPABILITY All -TCB +UID 0x1000008D 0x101FBB4F EPOCSTACKSIZE 0x10000 TARGETTYPE dll @@ -29,6 +29,8 @@ SOURCE smsstacktestutilities.cpp EmsTestUtils.cpp SOURCE smspdudb.cpp SOURCE smspdudbitems.cpp +SOURCE smsstackbaseteststeps.cpp smsstacktestcase.cpp +SOURCE smsstackbasetestserver.cpp SOURCEPATH ../gsmu/src SOURCE gsmupriv.cpp SOURCE Gsmumain.cpp @@ -46,6 +48,7 @@ USERINCLUDE ../smsu/inc USERINCLUDE ../test USERINCLUDE ../common/inc +USERINCLUDE ../smsprot/inc OS_LAYER_SYSTEMINCLUDE_SYMBIAN @@ -54,9 +57,9 @@ LIBRARY euser.lib estor.lib LIBRARY logwrap.lib testconfigfileparser.lib etel.lib efsrv.lib charconv.lib etelmm.lib fbscli.lib bitgdi.lib LIBRARY testexecuteutils.lib -LIBRARY testexecutelogclient.lib logcli.lib +LIBRARY testexecutelogclient.lib -LIBRARY commsdat.lib +LIBRARY commsdat.lib logcli.lib c32root.lib DEBUGLIBRARY comsdbgutil.lib diff -r 962e6306d9d2 -r 7ef16719d8cb smsprotocols/smsstack/test/te_smsstack.iby --- a/smsprotocols/smsstack/test/te_smsstack.iby Fri Feb 19 23:59:33 2010 +0200 +++ b/smsprotocols/smsstack/test/te_smsstack.iby Fri Mar 12 15:49:38 2010 +0200 @@ -29,13 +29,13 @@ // // SMS Stack Test Utility DLLs... // -file=ABI_DIR\BUILD_DIR\smsstacktestutilities.dll SYSTEM_BINDIR\smsstacktestutilities.dll +file=ABI_DIR\DEBUG_DIR\smsstacktestutilities.dll SYSTEM_BINDIR\smsstacktestutilities.dll // // Gsmu Test Code... // -file=ABI_DIR\BUILD_DIR\te_gsmu.exe SYSTEM_BINDIR\te_gsmu.exe -file=ABI_DIR\BUILD_DIR\te_gsmustor.exe SYSTEM_BINDIR\te_gsmustor.exe +file=ABI_DIR\DEBUG_DIR\te_gsmu.exe SYSTEM_BINDIR\te_gsmu.exe +file=ABI_DIR\DEBUG_DIR\te_gsmustor.exe SYSTEM_BINDIR\te_gsmustor.exe data=EPOCROOT##epoc32\data\z\testdata\scripts\te_gsmu.script testdata\scripts\te_gsmu.script data=EPOCROOT##epoc32\data\z\testdata\scripts\te_gsmustor.script testdata\scripts\te_gsmustor.script @@ -43,7 +43,7 @@ // // Smsprot Test Code... // -file=ABI_DIR\BUILD_DIR\te_smsinter.exe SYSTEM_BINDIR\te_smsinter.exe stack=0x5000 +file=ABI_DIR\DEBUG_DIR\te_smsinter.exe SYSTEM_BINDIR\te_smsinter.exe stack=0x5000 file=ABI_DIR\DEBUG_DIR\te_smsemsprt.exe SYSTEM_BINDIR\te_smsemsprt.exe file=ABI_DIR\DEBUG_DIR\te_smsstor.exe SYSTEM_BINDIR\te_smsstor.exe file=ABI_DIR\DEBUG_DIR\te_smsprtstress.exe SYSTEM_BINDIR\te_smsprtstress.exe @@ -70,11 +70,16 @@ data=EPOCROOT##epoc32\data\z\sms\smswap.sms-bootTimerTimeout.esk SMS\smswap.sms-bootTimerTimeout.esk +data=EPOCROOT##epoc32\data\z\testdata\scripts\smsstackcleanprivatedata.script TestData\scripts\smsstackcleanprivatedata.script +data=EPOCROOT##epoc32\data\z\testdata\scripts\smsstackbackupeskfile.script TestData\scripts\smsstackbackupeskfile.script +data=EPOCROOT##epoc32\data\z\testdata\scripts\smsstackrestoreeskfile.script TestData\scripts\smsstackrestoreeskfile.script + +data=EPOCROOT##epoc32\data\z\testdata\configs\smsstacksimtsytestnumbers.ini TestData\configs\smsstacksimtsytestnumbers.ini data=EPOCROOT##epoc32\data\z\testdata\configs\t_smspdudb.txt testdata\configs\t_smspdudb.txt // te_smspdudb -file=ABI_DIR\BUILD_DIR\te_smspdudb.exe SYSTEM_BINDIR\te_smspdudb.exe +file=ABI_DIR\DEBUG_DIR\te_smspdudb.exe SYSTEM_BINDIR\te_smspdudb.exe //te_smspdudb script and configs data=EPOCROOT##epoc32\data\z\testdata\scripts\te_smspdudb.script testdata\scripts\te_smspdudb.script @@ -84,7 +89,7 @@ data=EPOCROOT##epoc32\data\z\testdata\configs\smspdudb.txt testdata\configs\smspdudb.txt // te_R6SMS -file=ABI_DIR\BUILD_DIR\te_R6SMS.exe SYSTEM_BINDIR\te_R6SMS.exe +file=ABI_DIR\DEBUG_DIR\te_R6SMS.exe SYSTEM_BINDIR\te_R6SMS.exe data=EPOCROOT##epoc32\data\z\testdata\scripts\te_R6SMS.script testdata\scripts\te_R6SMS.script data=EPOCROOT##epoc32\data\z\testdata\scripts\te_R6SMS_setup.script testdata\scripts\te_R6SMS_setup.script @@ -114,13 +119,12 @@ data=EPOCROOT##epoc32\data\z\sms\tsmsprt_config.txt Sms\tsmsprt_config.txt data=EPOCROOT##epoc32\data\z\sms\tsmsprt_config_extra.txt Sms\tsmsprt_config_extra.txt data=EPOCROOT##epoc32\data\z\sms\tsmsprt_config_tx_rx_maxmsg.txt Sms\tsmsprt_config_tx_rx_maxmsg.txt -data=EPOCROOT##epoc32\data\c\sms\tsmsprtStress_config.txt Sms\tsmsprtStress_config.txt -data=EPOCROOT##epoc32\data\c\sms\tsmsemsprt_config.txt Sms\tsmsemsprt_config.txt +data=EPOCROOT##epoc32\data\z\sms\tsmsprtstress_config.txt Sms\tsmsprtstress_config.txt +data=EPOCROOT##epoc32\data\z\sms\tsmsemsprt_config.txt Sms\tsmsemsprt_config.txt data=EPOCROOT##epoc32\data\c\sms\smspdudb.txt Sms\smspdudb.txt data=EPOCROOT##epoc32\data\c\sms\t_smspdudb.txt Sms\t_smspdudb.txt data=EPOCROOT##epoc32\data\z\testdata\configs\te_statusReportScheme.ini testdata\configs\te_statusReportScheme.ini data=EPOCROOT##epoc32\data\z\testdata\configs\TE_DiskSpaceMonitor.ini testdata\configs\TE_DiskSpaceMonitor.ini -data=EPOCROOT##epoc32\data\z\testdata\configs\SIMTSYTestNumbers.ini testdata\configs\SIMTSYTestNumbers.ini //SMSOutOfDiskSpace #ifndef _DEBUG @@ -135,6 +139,7 @@ data=EPOCROOT##epoc32\data\z\testdata\configs\smsclass0preallocated.dat testdata\configs\smsclass0preallocated.dat data=EPOCROOT##epoc32\data\z\testdata\configs\smsclass0reast.dat testdata\configs\smsclass0reast.dat data=EPOCROOT##epoc32\data\z\testdata\configs\smswap_class0.sms.esk testdata\configs\smswap_class0.sms.esk + data=EPOCROOT##epoc32\data\z\testdata\configs\smswap_discardType0s.esk testdata\configs\smswap_discardType0s.esk data=EPOCROOT##epoc32\data\z\testdata\configs\smswap_DontDiscardType0s.esk testdata\configs\smswap_DontDiscardType0s.esk data=EPOCROOT##epoc32\data\z\testdata\configs\smswap_MaxFivePDUsInOOD.esk testdata\configs\smswap_MaxFivePDUsInOOD.esk @@ -162,7 +167,7 @@ data=EPOCROOT##Epoc32\data\z\sms\smswap.sms-AutoDeletionClass2.esk sms\smswap.sms-AutoDeletionClass2.esk data=EPOCROOT##Epoc32\data\z\sms\smswap.sms-AutomaticDeletionOfType0.esk sms\smswap.sms-AutomaticDeletionOfType0.esk -file=ABI_DIR\BUILD_DIR\te_gsmu_ems.exe System\bin\te_gsmu_ems.exe +file=ABI_DIR\DEBUG_DIR\te_gsmu_ems.exe System\bin\te_gsmu_ems.exe data=EPOCROOT##Epoc32\data\z\TestData\scripts\te_gsmu_ems.script TestData\Scripts\te_gsmu_ems.Script @@ -186,7 +191,7 @@ data=EPOCROOT##epoc32\data\z\testdata\configs\TE_waphdr.txt testdata\configs\TE_waphdr.txt // This binary file is marked as "data=" because in the ROM it is must be a RAM executable image to be used with SETCAP.exe. -data=ABI_DIR\BUILD_DIR\TE_WapProt.exe SYSTEM_BINDIR\TE_WapProt.exe +data=ABI_DIR\DEBUG_DIR\TE_WapProt.exe SYSTEM_BINDIR\TE_WapProt.exe data=EPOCROOT##Epoc32\data\z\testdata\configs\WapProtSuite\WapProtSuite.ini testdata\configs\WapProtSuite\WapProtSuite.ini data=EPOCROOT##Epoc32\data\z\testdata\configs\WapProtSuite\WapStatusReports.ini testdata\configs\WapProtSuite\WapStatusReports.ini @@ -207,7 +212,7 @@ // // TE_WAPSMS files... // -file=ABI_DIR\BUILD_DIR\TE_WAPSMS.exe SYSTEM_BINDIR\TE_WAPSMS.exe +file=ABI_DIR\DEBUG_DIR\TE_WAPSMS.exe SYSTEM_BINDIR\TE_WAPSMS.exe data=EPOCROOT##epoc32\data\z\testdata\configs\te_setupgsmsms.txt testdata\configs\te_setupgsmsms.txt data=EPOCROOT##epoc32\data\z\testdata\scripts\TE_WAPSMS.script testdata\scripts\TE_WAPSMS.script data=EPOCROOT##epoc32\data\z\testdata\scripts\TE_WAPSMS_setup.script testdata\scripts\TE_WAPSMS_setup.script diff -r 962e6306d9d2 -r 7ef16719d8cb smsprotocols/smsstack/wapprot/Inc/WAPDGRM.H --- a/smsprotocols/smsstack/wapprot/Inc/WAPDGRM.H Fri Feb 19 23:59:33 2010 +0200 +++ b/smsprotocols/smsstack/wapprot/Inc/WAPDGRM.H Fri Mar 12 15:49:38 2010 +0200 @@ -132,8 +132,7 @@ inline TTimeIntervalSeconds UTCOffset() const; TBool SetUTCOffset(const TTimeIntervalSeconds& aUTCOffset); - // May return > 1, if the socket text headers are used - // TODO: to be removed ? + // May return > 1, if the socket text headers are used inline TInt NumConcatenatedMessages() const; inline TInt ConcatenatedMessageReference(TBool* aIs16BIt = NULL) const; diff -r 962e6306d9d2 -r 7ef16719d8cb smsprotocols/smsstack/wapprot/Inc/wapthdr.inl --- a/smsprotocols/smsstack/wapprot/Inc/wapthdr.inl Fri Feb 19 23:59:33 2010 +0200 +++ b/smsprotocols/smsstack/wapprot/Inc/wapthdr.inl Fri Mar 12 15:49:38 2010 +0200 @@ -66,7 +66,7 @@ __ASSERT_DEBUG(iIsWapTextMessage, Panic(KPanicTextHeaderNotTextHeader)); if (aIs16Bit) *aIs16Bit = iIs16Bit; - if (iSourcePort == (-1)) // TODO what does -1 mean? + if (iSourcePort == (-1)) return iDestinationPort; return iSourcePort; } @@ -141,7 +141,6 @@ /** * from WAP spec: other header specified by text mode of WAP spec * - * TODO no idea what is it used for ? * Descriptor lenght is set 0, if not present * '//' is included */ diff -r 962e6306d9d2 -r 7ef16719d8cb smsprotocols/smsstack/wapprot/Src/wapdgrm.cpp --- a/smsprotocols/smsstack/wapprot/Src/wapdgrm.cpp Fri Feb 19 23:59:33 2010 +0200 +++ b/smsprotocols/smsstack/wapprot/Src/wapdgrm.cpp Fri Mar 12 15:49:38 2010 +0200 @@ -432,8 +432,6 @@ else // This means that IEs with 7-bits are used // Happily we support it - // But what TODO if we are here due to an error, because - // 7-bit with IEs should never happen ? iIsComplete = ETrue; } diff -r 962e6306d9d2 -r 7ef16719d8cb smsprotocols/smsstack/wapprot/Src/wappstor.cpp --- a/smsprotocols/smsstack/wapprot/Src/wappstor.cpp Fri Feb 19 23:59:33 2010 +0200 +++ b/smsprotocols/smsstack/wapprot/Src/wappstor.cpp Fri Mar 12 15:49:38 2010 +0200 @@ -90,9 +90,6 @@ CWapDatagram* tempDatagram = CWapDatagram::NewL(KNullDesC8); CleanupStack::PushL(tempDatagram); - // defect fix for EDNJJUN-4WYJGP - // Unable to send sms cause sms*.dat is corrupted - // TODO - has to be back ported to higher versions TRAPD(ret, InternalizeEntryL(StreamdId,*tempDatagram,*segmentArray)); if(ret == KErrCorrupt) { @@ -212,7 +209,6 @@ // defect fix for EDNJJUN-4WYJGP // Unable to send sms cause sms*.dat is corrupted - // TODO - has to be back ported to higher versions TRAPD(ret, InternalizeEntryL(Entries()[aIndex].DataStreamId(), aDatagram,*segmentArray)); if(ret == KErrCorrupt) { diff -r 962e6306d9d2 -r 7ef16719d8cb smsprotocols/smsstack/wapprot/test/TE_WAPDGRM/TE_testwapdgrm.cpp --- a/smsprotocols/smsstack/wapprot/test/TE_WAPDGRM/TE_testwapdgrm.cpp Fri Feb 19 23:59:33 2010 +0200 +++ b/smsprotocols/smsstack/wapprot/test/TE_WAPDGRM/TE_testwapdgrm.cpp Fri Mar 12 15:49:38 2010 +0200 @@ -53,15 +53,6 @@ #include "TE_wapdgrmbase.h" #include "TE_testwapdgrm.h" -#if defined (__WINS__) -#define PDD_NAME _L("ECDRV") -#define LDD_NAME _L("ECOMM") -#else -#define PDD_NAME _L("EUART1") -#define LDD_NAME _L("ECOMM") -#endif - - TVerdict CTestWapProtDatagram::doTestStepL() /* * implementation of Wap Protocol Datagram test case diff -r 962e6306d9d2 -r 7ef16719d8cb smsprotocols/smsstack/wapprot/test/TE_WAPDGRM/TE_wapdgrm.mmp --- a/smsprotocols/smsstack/wapprot/test/TE_WAPDGRM/TE_wapdgrm.mmp Fri Feb 19 23:59:33 2010 +0200 +++ b/smsprotocols/smsstack/wapprot/test/TE_WAPDGRM/TE_wapdgrm.mmp Fri Mar 12 15:49:38 2010 +0200 @@ -17,7 +17,7 @@ #include TARGET te_wapdgrm.exe -CAPABILITY ReadDeviceData WriteDeviceData NetworkControl NetworkServices ReadUserData WriteUserData +CAPABILITY ReadDeviceData WriteDeviceData NetworkControl NetworkServices ReadUserData WriteUserData PowerMgmt TARGETTYPE exe UID 0x1000007A 0x101FBC46 VENDORID 0x70000001 diff -r 962e6306d9d2 -r 7ef16719d8cb smsprotocols/smsstack/wapprot/test/TE_WAPDGRM/TE_wapdgrmbase.h --- a/smsprotocols/smsstack/wapprot/test/TE_WAPDGRM/TE_wapdgrmbase.h Fri Feb 19 23:59:33 2010 +0200 +++ b/smsprotocols/smsstack/wapprot/test/TE_WAPDGRM/TE_wapdgrmbase.h Fri Mar 12 15:49:38 2010 +0200 @@ -37,8 +37,6 @@ #include #include -#define DSTDNC_NEWCALL_FULLNAME _L("DummyNc::PotsNc::") - _LIT8(KWapDgrm1, ""); _LIT8(KWapDgrm2, "Auto on kuin ikääntynyt jalosukuinen englantilainen herrasmies konsanaan. Kun istuu sen juuri oikealla tavalla hieman kuluneella nahkaistuimella ja katselee pähkinänpuun juuresta tehtyä kojelautaa, tuntee olevansa itseänsä paremmassa seurassa. Ajassa, jolloin hienostuneisuudella oli vielä merkitystä. Korin värinä on hillitysti hohteleva Opaslecent Dark Green ja hieman punertavan ruskea nahkasisustus on soinnutettu sävy sävyyn pähkinänjuuresta tehdyn kojelaudan kanssa aina etuistuimen selkänojasta aukeavaa pöytää myöten. 2,4 litraisessa moottorissa on hevosvoimia 120"); _LIT8(KWapDgrm3, "1234567890"); diff -r 962e6306d9d2 -r 7ef16719d8cb smsprotocols/smsstack/wapprot/test/TE_WAPTHDR/TE_testwapthdr.cpp --- a/smsprotocols/smsstack/wapprot/test/TE_WAPTHDR/TE_testwapthdr.cpp Fri Feb 19 23:59:33 2010 +0200 +++ b/smsprotocols/smsstack/wapprot/test/TE_WAPTHDR/TE_testwapthdr.cpp Fri Mar 12 15:49:38 2010 +0200 @@ -15,22 +15,13 @@ // // +#include "TE_testwapthdr.h" #include "TE_wapthdrbase.h" -#include "TE_testwapthdr.h" #include "smsstackutils.h" -#if defined (__WINS__) -#define PDD_NAME _L("ECDRV") -#define LDD_NAME _L("ECOMM") -#else -#define PDD_NAME _L("EUART1") -#define LDD_NAME _L("ECOMM") -#endif - const TInt KSmsLogBufferSize = 1280; - TVerdict CTestParseWapTextMessage::doTestStepL() /* * implementation of Parse Wap Text Message test case diff -r 962e6306d9d2 -r 7ef16719d8cb smsprotocols/smsstack/wapprot/test/TE_WAPTHDR/TE_testwapthdr.h --- a/smsprotocols/smsstack/wapprot/test/TE_WAPTHDR/TE_testwapthdr.h Fri Feb 19 23:59:33 2010 +0200 +++ b/smsprotocols/smsstack/wapprot/test/TE_WAPTHDR/TE_testwapthdr.h Fri Mar 12 15:49:38 2010 +0200 @@ -18,6 +18,7 @@ #ifndef _TE_TESTWAPTHDR_H_ #define _TE_TESTWAPTHDR_H_ +#include "TE_wapthdrbase.h" class CTestParseWapTextMessage : public CWapThdrTestStep { diff -r 962e6306d9d2 -r 7ef16719d8cb smsprotocols/smsstack/wapprot/test/TE_WAPTHDR/TE_wapthdr.mmp --- a/smsprotocols/smsstack/wapprot/test/TE_WAPTHDR/TE_wapthdr.mmp Fri Feb 19 23:59:33 2010 +0200 +++ b/smsprotocols/smsstack/wapprot/test/TE_WAPTHDR/TE_wapthdr.mmp Fri Mar 12 15:49:38 2010 +0200 @@ -14,7 +14,7 @@ // TARGET te_wapthdr.exe -CAPABILITY ReadDeviceData WriteDeviceData NetworkControl NetworkServices ReadUserData WriteUserData +CAPABILITY ReadDeviceData WriteDeviceData NetworkControl NetworkServices ReadUserData WriteUserData PowerMgmt TARGETTYPE exe UID 0x1000007A 0x101FBDED VENDORID 0x70000001 diff -r 962e6306d9d2 -r 7ef16719d8cb smsprotocols/smsstack/wapprot/test/TE_WAPTHDR/TE_wapthdr.script --- a/smsprotocols/smsstack/wapprot/test/TE_WAPTHDR/TE_wapthdr.script Fri Feb 19 23:59:33 2010 +0200 +++ b/smsprotocols/smsstack/wapprot/test/TE_WAPTHDR/TE_wapthdr.script Fri Mar 12 15:49:38 2010 +0200 @@ -42,7 +42,6 @@ //!@SYMTestExpectedResults Pass - If anthing fails the step will leave with error code //!@SYMTestType CT RUN_TEST_STEP 100 TE_wapthdr TestEncodeWapTextMessage - END_TESTCASE SMS-SMSStack-NA-6001 START_TESTCASE SMS-SMSStack-NA-6002 @@ -50,7 +49,7 @@ //!@SYMREQ REQ0000 //!@SYMTestCaseDesc Sends a buffer too long for the logger to handle //!@SYMTestPriority critical -//!@SYMTestActions.Send a buffer too long for the logger to handle, therefore causing an overflow. +//!@SYMTestActions Send a buffer too long for the logger to handle, therefore causing an overflow. // Function will panic if overflow handler is not implemented correctly. //!@SYMTestExpectedResults Pass - If anthing fails the step will leave with error code //!@SYMTestType CT diff -r 962e6306d9d2 -r 7ef16719d8cb smsprotocols/smsstack/wapprot/test/TE_WAPTHDR/TE_wapthdrbase.h --- a/smsprotocols/smsstack/wapprot/test/TE_WAPTHDR/TE_wapthdrbase.h Fri Feb 19 23:59:33 2010 +0200 +++ b/smsprotocols/smsstack/wapprot/test/TE_WAPTHDR/TE_wapthdrbase.h Fri Mar 12 15:49:38 2010 +0200 @@ -24,13 +24,9 @@ #include "smsstacklog.h" #include "wapthdr.h" - #include #include -#define DSTDNC_NEWCALL_FULLNAME _L("DummyNc::PotsNc::") - - _LIT(KConfigFileDir,"sms"); _LIT(KConfigFilename,"TE_waphdr.txt"); // config file section name diff -r 962e6306d9d2 -r 7ef16719d8cb smsprotocols/smsstack/wapprot/test/Te_wapprot/Config.txt --- a/smsprotocols/smsstack/wapprot/test/Te_wapprot/Config.txt Fri Feb 19 23:59:33 2010 +0200 +++ b/smsprotocols/smsstack/wapprot/test/Te_wapprot/Config.txt Fri Mar 12 15:49:38 2010 +0200 @@ -1,3 +1,5 @@ +[test0] + [test1] DiallingPauseDuration= 3 ConnectingPauseDuration= 1 @@ -121,6 +123,10 @@ SmsRx= 040C9144775622325100003070700103634091AFD774B864C284381A48583C269D3AEB3028256E5EF2CDCB6D2D4AA7C9A7532773C5362FF9E6E5363A75CA307BF3926F5E6EA74E19666F5EF2CDCBFD941E75D0B07BFA36D3EF617979F3926F5E6E6A92CA2CEA886979794C7FCB372FF9E6E566068545A62E3967A7DD67FADBBD79C9372F77D149D45987412971F3926F5E6E,447765222315 SmsStartRxDelay= 4207, 1, 1 +[test11] + +[test12] + [test13] DiallingPauseDuration= 3 ConnectingPauseDuration= 1 @@ -243,7 +249,7 @@ [test28] SmsTx=35000C914477562232510000A7A0AFD774B864C262B0202C060BC260B0192C0612168F49A7CE3A0C328B4E6250BA79B9AD45E934F974EA622ED8E6E516168F49A7CE5AB4169DD4CDCB3D0C528BC7A734599CEA9AC52235E93C6E5EEE293548AD4E75D4A2931AA426ADC5CDCB4DA44EA94129552783C162301A2C4685CD6630184CBB79B989D4A293A893C16031180D16A3C26833180CA6DDBCDC, 447765222315,1, 01A0, 0 SmsTx=35000C914477562232510000A79FAFD774B864C262B0202C060BC260B0194C069A569BCDA034AB6B96E7F3F039ED3E839AE5323DED3E6F5E6E62713A9426A1D4E4D3A913CAD37477390F0ABBC920657D4E4FBB41F437485EB6A7CB7790BB7C2FCFE920B8FC0D7FCFC36C503B4C2FCBD361F6E6E51E3283D3A90E2A4D5A83D4E2E6E52E3A893A6BD15A7452372F77D149D459874166D1490C4A01, 447765222315,2, 01A0, 0 -SmsTx=35000C914477562232510000A71BAFD774B864C262B0202C060BC260B0196C06DABCE49B971B, 447765222315,2, 01A0, 0 +SmsTx=35000C914477562232510000A71BAFD774B864C262B0202C060BC260B0196C06DABCE49B971B, 447765222315, 3, 01A0, 0 SmsStartRxDelay= 4207, 3, 3 #Receive status repors for each SmsRx= 06010C91447756223251101120517314801011205183818000, 358405202000 diff -r 962e6306d9d2 -r 7ef16719d8cb smsprotocols/smsstack/wapprot/test/Te_wapprot/TE_WapProt.mmp --- a/smsprotocols/smsstack/wapprot/test/Te_wapprot/TE_WapProt.mmp Fri Feb 19 23:59:33 2010 +0200 +++ b/smsprotocols/smsstack/wapprot/test/Te_wapprot/TE_WapProt.mmp Fri Mar 12 15:49:38 2010 +0200 @@ -14,7 +14,8 @@ // TARGET te_wapprot.exe -CAPABILITY ReadDeviceData WriteDeviceData NetworkControl NetworkServices ReadUserData WriteUserData AllFiles +CAPABILITY ReadDeviceData WriteDeviceData NetworkControl NetworkServices ReadUserData WriteUserData ProtServ AllFiles PowerMgmt + TARGETTYPE exe UID 0x1000008d 0x101F7784 @@ -26,7 +27,8 @@ SOURCE WapStatusReports.cpp USERINCLUDE . -USERINCLUDE ../../../smsprot/inc +USERINCLUDE ../../../test +USERINCLUDE ../../../smsprot/Inc MW_LAYER_SYSTEMINCLUDE_SYMBIAN @@ -41,6 +43,7 @@ LIBRARY efsrv.lib LIBRARY sbeclient.lib LIBRARY estor.lib +LIBRARY smsstacktestutilities.lib VENDORID 0x70000001 diff -r 962e6306d9d2 -r 7ef16719d8cb smsprotocols/smsstack/wapprot/test/Te_wapprot/Te_WapProt.script --- a/smsprotocols/smsstack/wapprot/test/Te_wapprot/Te_WapProt.script Fri Feb 19 23:59:33 2010 +0200 +++ b/smsprotocols/smsstack/wapprot/test/Te_wapprot/Te_WapProt.script Fri Mar 12 15:49:38 2010 +0200 @@ -17,8 +17,6 @@ ced -i z:\TestData\configs\WapProtSuite\WapProtSuite.cfg ced.log -LOAD_SUITE TE_WapProt - //delete any existing config.txt RUN_UTILS MakeReadWrite c:\config.txt RUN_UTILS DeleteFile c:\config.txt @@ -27,6 +25,8 @@ RUN_UTILS copyfile z:\testdata\configs\wapprotsuite\config.txt c:\config.txt RUN_UTILS MakeReadWrite c:\config.txt +LOAD_SUITE TE_WapProt + START_TESTCASE SMS-SMSStack-NA-8000 //!@SYMTestCaseID SMS-SMSStack-NA-8000 //!@SYMREQ REQ0000 @@ -707,7 +707,7 @@ //!@SYMTestCaseDesc Receive a VCard via an enumerate. //!@SYMTestActions A VCard is on the SIM and enumerated. //!@SYMTestExpectedResults It should be received as a VCard and not as text. -RUN_TEST_STEP 100 TE_WapProt TestEnumeratingVCard +RUN_TEST_STEP 100 TE_WapProt TestEnumeratingVCard z:\testdata\configs\WapProtSuite\WapProtSuite.ini EnumeratingVCard END_TESTCASE SMS-WAPPROT-0127 START_TESTCASE SMS-WAPPROT-0131 @@ -717,6 +717,5 @@ //!@SYMTestCaseDesc Attempt to send oversized messages and check that the stack does not panic. //!@SYMTestActions Send a messgae bigger than the maximum datagram size and the MBuf maximum size. //!@SYMTestExpectedResults The stack should return KErrTooBig. -RUN_TEST_STEP 100 TE_WapProt TestOversizedDatagram +RUN_TEST_STEP 100 TE_WapProt TestOversizedDatagram z:\testdata\configs\WapProtSuite\WapProtSuite.ini TestStep1 END_TESTCASE SMS-WAPPROT-0131 - diff -r 962e6306d9d2 -r 7ef16719d8cb smsprotocols/smsstack/wapprot/test/Te_wapprot/Te_WapStackOutOfDiskSpace.script --- a/smsprotocols/smsstack/wapprot/test/Te_wapprot/Te_WapStackOutOfDiskSpace.script Fri Feb 19 23:59:33 2010 +0200 +++ b/smsprotocols/smsstack/wapprot/test/Te_wapprot/Te_WapStackOutOfDiskSpace.script Fri Mar 12 15:49:38 2010 +0200 @@ -15,8 +15,6 @@ ced -i z:\TestData\configs\WapProtSuite\WapProtSuite.cfg ced.log -LOAD_SUITE TE_WapProt - //delete any existing config.txt RUN_UTILS MakeReadWrite c:\config.txt RUN_UTILS DeleteFile c:\config.txt @@ -27,6 +25,8 @@ RUN_UTILS MkDir c:\sms\ +LOAD_SUITE TE_WapProt + START_TESTCASE TEL-WAP-WAPPRT-200 //! @SYMTestCaseID TEL-WAP-WAPPRT-200 //! @SYMTestCaseDesc Receiving a WAP Datagram inside a class0 SMS message meanwhile NO disk condition exists. @@ -40,7 +40,6 @@ //! @SYMCreationDate 7/12/2006 //! @SYMTestStatus 2. Development //! @SYMAuthor danieldu -RUN_TEST_STEP 60 TE_WapProt InitializePhone z:\testdata\configs\WapProtSuite\WAPStackOutOfDiskSpace.ini TestNumber100 RUN_TEST_STEP 60 TE_WapProt SetDiskMonitorLimits z:\testdata\configs\WapProtSuite\WAPStackOutOfDiskSpace.ini DiskMonitorLimits RUN_TEST_STEP 120 TE_WapProt SetDiskSpace z:\testdata\configs\WapProtSuite\WAPStackOutOfDiskSpace.ini DiskSpaceBelowLowLimit RUN_TEST_STEP 60 TE_WapProt ReceiveWapMessage z:\testdata\configs\WapProtSuite\WAPStackOutOfDiskSpace.ini TestNumber100 @@ -60,7 +59,6 @@ //! @SYMCreationDate 7/12/2006 //! @SYMTestStatus 2. Development //! @SYMAuthor danieldu -RUN_TEST_STEP 60 TE_WapProt InitializePhone z:\testdata\configs\WapProtSuite\WAPStackOutOfDiskSpace.ini TestNumber101 RUN_TEST_STEP 60 TE_WapProt SetDiskMonitorLimits z:\testdata\configs\WapProtSuite\WAPStackOutOfDiskSpace.ini DiskMonitorLimits RUN_TEST_STEP 120 TE_WapProt SetDiskSpace z:\testdata\configs\WapProtSuite\WAPStackOutOfDiskSpace.ini DiskSpaceBelowLowLimit RUN_TEST_STEP 60 TE_WapProt ReceiveWapMessage z:\testdata\configs\WapProtSuite\WAPStackOutOfDiskSpace.ini TestNumber101 @@ -81,7 +79,6 @@ //! @SYMCreationDate 7/12/2006 //! @SYMTestStatus 2. Development //! @SYMAuthor danieldu -RUN_TEST_STEP 60 TE_WapProt InitializePhone z:\testdata\configs\WapProtSuite\WAPStackOutOfDiskSpace.ini TestNumber102 RUN_TEST_STEP 60 TE_WapProt SetDiskMonitorLimits z:\testdata\configs\WapProtSuite\WAPStackOutOfDiskSpace.ini DiskMonitorLimits RUN_TEST_STEP 120 TE_WapProt SetDiskSpace z:\testdata\configs\WapProtSuite\WAPStackOutOfDiskSpace.ini DiskSpaceBelowLowLimit RUN_TEST_STEP 60 TE_WapProt ReceiveWapMessage z:\testdata\configs\WapProtSuite\WAPStackOutOfDiskSpace.ini TestNumber102 diff -r 962e6306d9d2 -r 7ef16719d8cb smsprotocols/smsstack/wapprot/test/Te_wapprot/WapIoctlSteps.cpp --- a/smsprotocols/smsstack/wapprot/test/Te_wapprot/WapIoctlSteps.cpp Fri Feb 19 23:59:33 2010 +0200 +++ b/smsprotocols/smsstack/wapprot/test/Te_wapprot/WapIoctlSteps.cpp Fri Mar 12 15:49:38 2010 +0200 @@ -16,1000 +16,318 @@ // /** - @file + @file + @test */ - #include "WapIoctlSteps.h" -#include "WapProtSuiteDefs.h" -#include -#include + #include -#include -#include #include +#include +#include "smsstacktestconsts.h" +#include "WapProtSuiteDefs.h" TVerdict CIoctlStep_1::doTestStepL() /** * Test step one: * Sends/receives a 7Bit business card using IOCTL * @return - TVerdict code - * */ { INFO_PRINTF1(_L("IOCTL Test step 1: send/receive 7-Bit business card")); - - TPtrC TestData1; - TPtrC16 TelNumber; - TInt port=226; - TInt testNumber=1; - - if(!GetStringFromConfig(ConfigSection(),KTestData1, TestData1) || - !GetStringFromConfig(ConfigSection(),KSCNumber,TelNumber) || - !GetIntFromConfig(ConfigSection(),KWapPort,port)) - { - // Leave if there's any error. - User::Leave(KErrNotFound); - } - - User::LeaveIfError(RProperty::Set(KUidSystemCategory, KUidPhonePwr.iUid, ESAPhoneOn)); - User::LeaveIfError(RProperty::Set(KUidPSSimTsyCategory, KPSSimTsyTestNumber, testNumber)); - - // - // Setting the port number and service center number of the wap address - // The service center number should be the same as the sim phone number used - // for test (not required for SIM tsy) - // - TWapAddr wapAddr; - TWapAddr recvWapAddr; - wapAddr.SetWapPort(TWapPortNumber(port)); + // Configure and bind to a socket + SetupWapSocketL(); - TBuf8<100> scNumber; - scNumber.Copy(TelNumber); - TPtrC8 scAddr(scNumber); - wapAddr.SetWapAddress(scAddr); - - // - // Connect to socket server - // - RSocketServ socketServer; - User::LeaveIfError(socketServer.Connect()); - CleanupClosePushL(socketServer); - - // - // Define and open the socket - // - RSocket sock; - OpenSocketLC(socketServer, sock); - // - // Waiting for the phone to be initialised - // - WaitForInitializeL(); - - TRequestStatus ioctlStatus; - TRequestStatus recvStatus; - TPckgBuf length; - - // - // Indicating to the protocol that it's a new client - // - INFO_PRINTF1(_L("Socket set option for indicating new client")); - User::LeaveIfError(sock.SetOpt(KWapSmsOptionNewStyleClient,KWapSmsOptionLevel, 0)); + // Send a business card + TPtrC testData = GetStringFromConfigL(KTestData1); - // - // Bind - // - User::LeaveIfError(sock.Bind(wapAddr)); - - // - // Send a business card - // - TRequestStatus status; - - TBuf8<200> data; - data.Copy(TestData1); - sock.SendTo(data, wapAddr, 0, status); - User::WaitForRequest(status); - User::LeaveIfError(status.Int()); - INFO_PRINTF1(_L("Message sent...")); - - // - // Issue Ioctl for getting the length of the message - // - INFO_PRINTF1(_L("Issue of IOCTL for GetLength")); - sock.Ioctl(KSOGetLength, ioctlStatus, &length, KSolWapProv); + SendWapMessage(testData); - // - // Get the size of the first incomming message - // - User::WaitForRequest(ioctlStatus); - User::LeaveIfError(ioctlStatus.Int()); - INFO_PRINTF1(_L("IOCTL completed")); - - // - // Check if reported length is correct - // - TBuf8<256> recvBuf(length); - - TEST(length()==data.Length()); + // Receive the business card + ReceiveWapMessage(testData); - // - // Receiving a datagram - // - sock.RecvFrom(recvBuf,recvWapAddr,0,recvStatus); - User::WaitForRequest(recvStatus); - User::LeaveIfError(recvStatus.Int()); - INFO_PRINTF1(_L("Received the message...")); - - // - // Confirm the receipt of the message to the client - // - INFO_PRINTF1(_L("Socket set option for indicating receipt of message")); - User::LeaveIfError(sock.SetOpt(KWapSmsOptionOKToDeleteMessage,KWapSmsOptionLevel, 0)); - TEST(recvBuf.Compare(data) == 0); - - // - // Closing the socket - // - CleanupStack::PopAndDestroy(&sock); - CleanupStack::PopAndDestroy(&socketServer); - + iSocket.Close(); return TestStepResult(); } - TVerdict CIoctlStep_2::doTestStepL() /** * Test step two: * Sends/receives a 7-Bit calendar entry and VCard using IOCTL(two segments each) * @return - TVerdict code - * */ { - INFO_PRINTF1(_L("IOCTL Test step 2: send/receive a VCal and VCard")); - - TPtrC TestData1; - TPtrC TestData2; - TPtrC16 TelNumber; - TInt port=226; - TInt testNumber = 2; - if(!GetStringFromConfig(ConfigSection(),KTestData1, TestData1) || - !GetStringFromConfig(ConfigSection(),KTestData2, TestData2) || - !GetStringFromConfig(ConfigSection(),KSCNumber,TelNumber) || - !GetIntFromConfig(ConfigSection(),KWapPort,port) - ) - { - // Leave if there's any error. - User::Leave(KErrNotFound); - } - - User::LeaveIfError(RProperty::Set(KUidSystemCategory, KUidPhonePwr.iUid, ESAPhoneOn)); - User::LeaveIfError(RProperty::Set(KUidPSSimTsyCategory, KPSSimTsyTestNumber, testNumber)); - - // - // Setting the port number and service center number of the wap address - // The service center number should be the same as the sim phone number used - // for test (not required for SIM Tsy) - // - TWapAddr wapAddr; - TWapAddr recvWapAddr; - wapAddr.SetWapPort(TWapPortNumber(port)); - TBuf8<100> scNumber; - scNumber.Copy(TelNumber); - TPtrC8 scAddr(scNumber); - wapAddr.SetWapAddress(scAddr); + // Configure and bind to a socket + SetupWapSocketL(); - // - // Connect to socket server - // - RSocketServ socketServer; - User::LeaveIfError(socketServer.Connect()); - CleanupClosePushL(socketServer); - - // - // Define and open the socket - // - RSocket sock; - OpenSocketLC(socketServer, sock); - - // - // Waiting for the phone to be initialised - // - WaitForInitializeL(); - + // Issue Ioctl for getting the length of the message TRequestStatus ioctlStatus; - TRequestStatus recvStatus; TPckgBuf length; - - // - // Indicating to the protocol that it's a new client - // - INFO_PRINTF1(_L("Socket set option for indicating new client")); - User::LeaveIfError(sock.SetOpt(KWapSmsOptionNewStyleClient,KWapSmsOptionLevel, 0)); - // - // Bind - // - User::LeaveIfError(sock.Bind(wapAddr)); - - // - // Issue Ioctl for getting the length of the message - // - INFO_PRINTF1(_L("Issue of the IOCTL for GetLength for first VCal entry")); - sock.Ioctl(KSOGetLength, ioctlStatus, &length, KSolWapProv); + + INFO_PRINTF1(_L("Issuing IOCTL for getting the length of the first message (VCal)...")); + iSocket.Ioctl(KSOGetLength, ioctlStatus, &length, KSolWapProv); - - TBuf8<300> data; - - // - // Send a calendar entry - // - TRequestStatus status; + TPtrC testData1 = GetStringFromConfigL(KTestData1); + TPtrC testData2 = GetStringFromConfigL(KTestData2); + + // Send a VCal entry + SendWapMessage(testData1); - data.Copy(TestData1); - sock.SendTo(data, wapAddr, 0, status); - User::WaitForRequest(status); - User::LeaveIfError(status.Int()); - INFO_PRINTF1(_L("First Message (VCal) sent...")); + // Send a VCard entry with extended GSM alphabets + SendWapMessage(testData2); - // Send a VCard entry - data.Copy(TestData2); - sock.SendTo(data, wapAddr, 0, status); - User::WaitForRequest(status); - User::LeaveIfError(status.Int()); - INFO_PRINTF1(_L("Second message (VCard with extended GSM alphabets) sent...")); - - // - // Get the size of the first incomming message - // + // Get the size of the first incoming message User::WaitForRequest(ioctlStatus); - User::LeaveIfError(ioctlStatus.Int()); - INFO_PRINTF1(_L("IOCTL completed")); - // - // Check if reported length is correct - // - TBuf8<300> recvBuf; - TEST(length()==TestData1.Length()); - - // - // Receiving a datagram - // - sock.RecvFrom(recvBuf,recvWapAddr,0,recvStatus); - User::WaitForRequest(recvStatus); - User::LeaveIfError(recvStatus.Int()); - INFO_PRINTF1(_L("Received the first message (VCal)...")); - - // Compare the received VCal message with the original one. - // They should be identical - data.Copy(TestData1); - if (recvBuf.Compare(data) != 0) - { - ERR_PRINTF1(_L("VCal message received does not match with original message.")); - TEST(recvBuf.Compare(data) == 0); - } + TESTCHECKL(ioctlStatus.Int(), KErrNone, "Getting the size of the first incoming message"); + TESTCHECK(length(), testData1.Length(), "Check if reported length is correct"); - // - // Confirm the receipt of the message to the client - // - INFO_PRINTF1(_L("Socket set option for indicating receipt of first message (VCal)")); - User::LeaveIfError(sock.SetOpt(KWapSmsOptionOKToDeleteMessage,KWapSmsOptionLevel, 0)); - - - //Issue Ioctl for getting the length of the second message - INFO_PRINTF1(_L("Issue of the IOCTL for GetLength for second VCard entry")); - sock.Ioctl(KSOGetLength, ioctlStatus, &length, KSolWapProv); - - //Get the size of the second incomming message - User::WaitForRequest(ioctlStatus); - User::LeaveIfError(ioctlStatus.Int()); - INFO_PRINTF1(_L("IOCTL completed for second message (VCard)")); - - //Check if reported length is correct - TEST(length()==TestData2.Length()); - - //Receiving a datagram (VCard) - sock.RecvFrom(recvBuf,recvWapAddr,0,recvStatus); - User::WaitForRequest(recvStatus); - User::LeaveIfError(recvStatus.Int()); - INFO_PRINTF1(_L("Received the second message (VCard)...")); - - // Compare the received VCard message with the original one - // They should be identical - data.Copy(TestData2); - if (recvBuf.Compare(data) != 0) - { - ERR_PRINTF1(_L("VCard message received does not match with original message.")); - TEST(recvBuf.Compare(data) == 0); - } - - //Confirm the receipt of the message to the client - INFO_PRINTF1(_L("Socket set option for indicating receipt of message")); - User::LeaveIfError(sock.SetOpt(KWapSmsOptionOKToDeleteMessage,KWapSmsOptionLevel, 0)); - // - // Closing the socket - // - sock.Close(); - socketServer.Close(); - CleanupStack::PopAndDestroy(&sock); - CleanupStack::Pop(&socketServer); + // Receive the VCal message + ReceiveWapMessageFromSocket(length(), testData1); - return TestStepResult(); + // Receive the VCard message + ReceiveWapMessage(testData2); + + iSocket.Close(); + return TestStepResult(); } - TVerdict CIoctlStep_3::doTestStepL() /** * Test step 3: * send/receive one 7-Bit two segments message and one 7-Bit one segment message * @return - TVerdict code - * */ { INFO_PRINTF1(_L("IOCTL Test step 3: send/receive two 7-Bit messages")); - - TPtrC TestData1; - TPtrC TestData2; - TPtrC16 TelNumber; - TInt port=226; - TInt testNumber = 3; - - if(!GetStringFromConfig(ConfigSection(),KTestData1, TestData1) || - !GetStringFromConfig(ConfigSection(),KTestData2, TestData2) || - !GetStringFromConfig(ConfigSection(),KSCNumber,TelNumber) || - !GetIntFromConfig(ConfigSection(),KWapPort,port)) - { - // Leave if there's any error. - User::Leave(KErrNotFound); - } - - User::LeaveIfError(RProperty::Set(KUidSystemCategory, KUidPhonePwr.iUid, ESAPhoneOn)); - User::LeaveIfError(RProperty::Set(KUidPSSimTsyCategory, KPSSimTsyTestNumber, testNumber)); - - // - // Setting the port number and service center number of the wap address - // The service center number should be the same as the sim phone number used - // for test - // - TWapAddr wapAddr; - TWapAddr recvWapAddr; - wapAddr.SetWapPort(TWapPortNumber(port)); - TBuf8<100> scNumber; - scNumber.Copy(TelNumber); - TPtrC8 scAddr(scNumber); - wapAddr.SetWapAddress(scAddr); + // Configure and bind to a socket + SetupWapSocketL(); - // - // Connect to socket server - // - RSocketServ socketServer; - User::LeaveIfError(socketServer.Connect()); - CleanupClosePushL(socketServer); - - // - // Define and open the socket - // - RSocket sock; - OpenSocketLC(socketServer, sock); - - // - // Waiting for the phone to be initialised - // - WaitForInitializeL(); - - TRequestStatus ioctlStatus; - TRequestStatus recvStatus; - TPckgBuf length; + // Issue Ioctl for getting the length of the message + TRequestStatus ioctlStatus; + TPckgBuf length; + + INFO_PRINTF1(_L("Issuing IOCTL for getting the length of the first message...")); + iSocket.Ioctl(KSOGetLength, ioctlStatus, &length, KSolWapProv); - // - // Indicating to the protocol that it's a new client - // - INFO_PRINTF1(_L("Socket set option for indicating new client")); - User::LeaveIfError(sock.SetOpt(KWapSmsOptionNewStyleClient,KWapSmsOptionLevel, 0)); - - // - // Bind - // - User::LeaveIfError(sock.Bind(wapAddr)); - - // - // Issue Ioctl for getting the length of the message - // - INFO_PRINTF1(_L("Issue of first IOCTL for GetLength")); - sock.Ioctl(KSOGetLength, ioctlStatus, &length, KSolWapProv); - - // - // Send a calendar entry - // - TRequestStatus status; + TPtrC testData1 = GetStringFromConfigL(KTestData1); + TPtrC testData2 = GetStringFromConfigL(KTestData2); + + // Send a business card + SendWapMessage(testData2); - TBuf8<300> data2; - data2.Copy(TestData2); - sock.SendTo(data2, wapAddr, 0, status); - User::WaitForRequest(status); - User::LeaveIfError(status.Int()); - INFO_PRINTF1(_L("First message sent...")); - - // - // Send a business card - // - TBuf8<200> data1; - data1.Copy(TestData1); - sock.SendTo(data1, wapAddr, 0, status); - User::WaitForRequest(status); - User::LeaveIfError(status.Int()); - INFO_PRINTF1(_L("Second message sent...")); - // - // Get the size of the first incomming message - // - User::WaitForRequest(ioctlStatus); - User::LeaveIfError(ioctlStatus.Int()); - INFO_PRINTF1(_L("IOCTL completed...")); - TBuf8<256> recvBuf2(length); - - // - // Receiving a datagram - // - sock.RecvFrom(recvBuf2,recvWapAddr,0,recvStatus); - User::WaitForRequest(recvStatus); - User::LeaveIfError(recvStatus.Int()); - INFO_PRINTF1(_L("Received the first message...")); - TEST(recvBuf2.Compare(data2) == 0); + // Send a business card + SendWapMessage(testData1); - // - // Confirm the receipt of the message to the client - // - INFO_PRINTF1(_L("Socket set option for indicating receipt of message")); - User::LeaveIfError(sock.SetOpt(KWapSmsOptionOKToDeleteMessage,KWapSmsOptionLevel, 0)); - // - // Issue Ioctl for getting the length of the second message - // - sock.Ioctl(KSOGetLength, ioctlStatus, &length, KSolWapProv); - INFO_PRINTF1(_L("Issue of the 2nd IOCTL for GetLength")); - - // - // Get the size of the SECOND incomming message - // + // Get the size of the first incoming message User::WaitForRequest(ioctlStatus); - User::LeaveIfError(ioctlStatus.Int()); - INFO_PRINTF1(_L("IOCTL completed")); - // - // Check if reported length is correct - // - TBuf8<256> recvBuf1(length); - TEST(length()==data1.Length()); + TESTCHECKL(ioctlStatus.Int(), KErrNone, "Getting the size of the first incoming message"); + TESTCHECK(length(), testData2.Length(), "Check if reported length is correct"); + + // Receive the first message + ReceiveWapMessageFromSocket(length(), testData2); - // - // Receiving the second message - // - sock.RecvFrom(recvBuf1,recvWapAddr,0,recvStatus); - User::WaitForRequest(recvStatus); - User::LeaveIfError(recvStatus.Int()); - INFO_PRINTF1(_L("Receievd the second datagram")); - TEST(recvBuf1.Compare(data1) == 0); - - // - // Confirm the receipt of the second message to the client - // - INFO_PRINTF1(_L("Socket set option for indicating receipt of the second message")); - User::LeaveIfError(sock.SetOpt(KWapSmsOptionOKToDeleteMessage,KWapSmsOptionLevel, 0)); - - // - // Closing the socket - // - sock.Close(); - socketServer.Close(); - CleanupStack::PopAndDestroy(&sock); - CleanupStack::Pop(&socketServer); - + // Receive the second message + ReceiveWapMessage(testData1); + + iSocket.Close(); return TestStepResult(); } - TVerdict CIoctlStep_4::doTestStepL() /** - * * Test step 4: * simulating client crash conditions with 7bit message * @return - TVerdict code - * */ { INFO_PRINTF1(_L("IOCTL Test step 4: client crash condition 7-Bit message ")); - - TPtrC TestData; - TPtrC16 TelNumber; - TInt port=226; - TInt testNumber =4; + // Configure and bind to a socket + SetupWapSocketL(); - if(!GetStringFromConfig(ConfigSection(),KTestData1, TestData) || - !GetStringFromConfig(ConfigSection(),KSCNumber,TelNumber) || - !GetIntFromConfig(ConfigSection(),KWapPort,port)) - { - // Leave if there's any error. - User::Leave(KErrNotFound); - } + // Issue Ioctl for getting the length of the message + TRequestStatus ioctlStatus; + TPckgBuf length; + + INFO_PRINTF1(_L("Issuing IOCTL for getting the length of the first message...")); + iSocket.Ioctl(KSOGetLength, ioctlStatus, &length, KSolWapProv); - User::LeaveIfError(RProperty::Set(KUidSystemCategory, KUidPhonePwr.iUid, ESAPhoneOn)); - User::LeaveIfError(RProperty::Set(KUidPSSimTsyCategory, KPSSimTsyTestNumber, testNumber)); + // Send a business card + TPtrC testData = GetStringFromConfigL(KTestData1); + SendWapMessage(testData); - // - // Setting the port number and service center number of the wap address - // The service center number should be the same as the sim phone number used - // for test - // - TWapAddr wapAddr; - TWapAddr recvWapAddr; - wapAddr.SetWapPort(TWapPortNumber(port)); - TBuf8<100> scNumber; - scNumber.Copy(TelNumber); - TPtrC8 scAddr(scNumber); - wapAddr.SetWapAddress(scAddr); - - // - // Connect to socket server - // - RSocketServ socketServer; - User::LeaveIfError(socketServer.Connect()); - CleanupClosePushL(socketServer); - - // - // Define and open the socket - // - RSocket sock; - OpenSocketLC(socketServer, sock); - - // - // Waiting for the phone to be initialised - // - WaitForInitializeL(); - - TRequestStatus ioctlStatus; - TRequestStatus recvStatus; - TPckgBuf length; - - // - // Indicating to the protocol that it's a new client - // + // Get the size of the first incoming message + User::WaitForRequest(ioctlStatus); + TESTCHECKL(ioctlStatus.Int(), KErrNone, "Getting the size of the first incoming message"); + TESTCHECK(length(), testData.Length(), "Check if reported length is correct"); + + // Receive a message + TRequestStatus recvStatus; + TWapAddr recvWapAddr; + HBufC8* recvBuf = HBufC8::NewLC(length()); + TPtr8 recvPtr = recvBuf->Des(); + + iSocket.RecvFrom(recvPtr, recvWapAddr, 0, recvStatus); + User::WaitForRequest(recvStatus); + TESTCHECKL(recvStatus.Int(), KErrNone, "Receiving a message"); + + // Simulate a crash by closing and reopening the socket + iSocket.Close(); + INFO_PRINTF1(_L("Socket was closed...")); + + OpenSocketL(iSocketServer, iSocket); + User::LeaveIfError(iSocket.SetOpt(KWapSmsOptionNewStyleClient,KWapSmsOptionLevel, 0)); INFO_PRINTF1(_L("Socket set option for indicating new client")); - User::LeaveIfError(sock.SetOpt(KWapSmsOptionNewStyleClient,KWapSmsOptionLevel, 0)); - // - // Bind - // - User::LeaveIfError(sock.Bind(wapAddr)); + User::LeaveIfError(iSocket.Bind(iWapAddr)); + INFO_PRINTF1(_L("Socket was opened...")); + + // Issue another get length of datagram as if not aware of the previous message + // and retrieve the message from the SAR store + ReceiveWapMessage(testData); + + iSocket.Close(); + CleanupStack::PopAndDestroy(recvBuf); + return TestStepResult(); + } - // - // Issue Ioctl for getting the length of the message - // - INFO_PRINTF1(_L("Issue of first IOCTL for GetLength")); - sock.Ioctl(KSOGetLength, ioctlStatus, &length, KSolWapProv); - - // - // Send a business card - // - TRequestStatus status; +TVerdict CIoctlStep_5::doTestStepL() +/** + * Test step 5: + * simulating client crash conditions with 8bit push message + * @return - TVerdict code + */ + { + INFO_PRINTF1(_L("IOCTL Test step 5: client crash condition with 8Bit push message")); + // Configure and bind to a socket + SetupWapSocketL(); + + // Issue Ioctl for getting the length of the message + TRequestStatus ioctlStatus; + TPckgBuf length; + + INFO_PRINTF1(_L("Issuing IOCTL for getting the length of the first message...")); + iSocket.Ioctl(KSOGetLength, ioctlStatus, &length, KSolWapProv); - TBuf8<200> data; - data.Copy(TestData); - sock.SendTo(data, wapAddr, 0, status); - User::WaitForRequest(status); - User::LeaveIfError(status.Int()); - INFO_PRINTF1(_L("Message sent...")); - // - // Get the size of the incomming message - // - User::WaitForRequest(ioctlStatus); - User::LeaveIfError(ioctlStatus.Int()); - INFO_PRINTF1(_L("IOCTL completed...")); - // - // Check if reported length is correct - // - TBuf8<256> recvBuf(length); - TEST(length()==data.Length()); + // Get the size of the incoming message + User::WaitForRequest(ioctlStatus); + TESTCHECKL(ioctlStatus.Int(), KErrNone, "Getting the size of the first incoming message"); - // - // Receiving a datagram - // - sock.RecvFrom(recvBuf,recvWapAddr,0,recvStatus); - User::WaitForRequest(recvStatus); - User::LeaveIfError(recvStatus.Int()); - INFO_PRINTF1(_L("Received the message...")); - // - // Close socket - // - sock.Close(); - INFO_PRINTF1(_L("Socket was closed...")); - // - // Open the socket - // - OpenSocketL(socketServer, sock); - INFO_PRINTF1(_L("Socket was opened...")); - User::LeaveIfError(sock.SetOpt(KWapSmsOptionNewStyleClient,KWapSmsOptionLevel, 0)); - INFO_PRINTF1(_L("Socket set option for indicating new client")); - User::LeaveIfError(sock.Bind(wapAddr)); - // + // Receive a message + TRequestStatus recvStatus; + TWapAddr recvWapAddr; + HBufC8* recvBuf = HBufC8::NewLC(length()); + TPtr8 recvPtr = recvBuf->Des(); + + iSocket.RecvFrom(recvPtr, recvWapAddr, 0, recvStatus); + User::WaitForRequest(recvStatus); + TESTCHECKL(recvStatus.Int(), KErrNone, "Receiving a message"); + + // Simulate a crash by closing and reopening the socket + iSocket.Close(); + INFO_PRINTF1(_L("Socket was closed...")); + + OpenSocketL(iSocketServer, iSocket); + User::LeaveIfError(iSocket.SetOpt(KWapSmsOptionNewStyleClient,KWapSmsOptionLevel, 0)); + INFO_PRINTF1(_L("Socket set option for indicating new client")); + User::LeaveIfError(iSocket.Bind(iWapAddr)); + INFO_PRINTF1(_L("Socket was opened...")); + // Issue another get length of datagram as if not aware of the previous message - // INFO_PRINTF1(_L("Issue of first IOCTL for GetLength")); - sock.Ioctl(KSOGetLength, ioctlStatus, &length, KSolWapProv); - // + iSocket.Ioctl(KSOGetLength, ioctlStatus, &length, KSolWapProv); + // waiting for request to be completed - // User::WaitForRequest(ioctlStatus); User::LeaveIfError(ioctlStatus.Int()); INFO_PRINTF1(_L("IOCTL completed...")); - // - // Check if reported length is correct - // - TBuf8<256> newRecvBuf(length); - TEST(length()==data.Length()); - - // + // New message retrieved from SAR store - // - sock.RecvFrom(newRecvBuf,recvWapAddr,0,recvStatus); - User::WaitForRequest(recvStatus); - User::LeaveIfError(recvStatus.Int()); - INFO_PRINTF1(_L("Received the message...")); - TEST(newRecvBuf.Compare(data) == 0); - - // - // Confirm the receipt of the message to the client - // - INFO_PRINTF1(_L("Socket set option for indicating receipt of message")); - User::LeaveIfError(sock.SetOpt(KWapSmsOptionOKToDeleteMessage,KWapSmsOptionLevel, 0)); - - // - // Closing the socket - // - sock.Close(); - socketServer.Close(); - CleanupStack::PopAndDestroy(&sock); - CleanupStack::Pop(&socketServer); - - return TestStepResult(); - } - - -TVerdict CIoctlStep_5::doTestStepL() -/** - * - * Test step 5: - * simulating client crash conditions with 8bit push message - * @return - TVerdict code - * - */ - { - INFO_PRINTF1(_L("IOCTL Test step 5: client crash condition with 8Bit push message")); - - TPtrC16 TelNumber; - TInt port=226; - TInt testNumber= 5; - - if(!GetStringFromConfig(ConfigSection(),KSCNumber,TelNumber) || - !GetIntFromConfig(ConfigSection(),KWapPort,port)) - { - // Leave if there's any error. - User::Leave(KErrNotFound); - } - - User::LeaveIfError(RProperty::Set(KUidSystemCategory, KUidPhonePwr.iUid, ESAPhoneOn)); - User::LeaveIfError(RProperty::Set(KUidPSSimTsyCategory, KPSSimTsyTestNumber, testNumber)); - - // - // Setting the port number and service center number of the wap address - // The service center number should be the same as the sim phone number used - // for test - // - - TWapAddr wapAddr; - TWapAddr recvWapAddr; - wapAddr.SetWapPort(TWapPortNumber(port)); - TBuf8<100> scNumber; - scNumber.Copy(TelNumber); - TPtrC8 scAddr(scNumber); - wapAddr.SetWapAddress(scAddr); - - // - // Connect to socket server - // - RSocketServ socketServer; - User::LeaveIfError(socketServer.Connect()); - CleanupClosePushL(socketServer); - - // - // Open the socket - // - RSocket sock; - OpenSocketLC(socketServer, sock); - - // - // Waiting for the phone to be initialised - // - WaitForInitializeL(); - - TRequestStatus ioctlStatus; - TRequestStatus recvStatus; - TPckgBuf length; - - // - // Indicating to the protocol that it's a new client - // - INFO_PRINTF1(_L("Socket set option for indicating new client")); - User::LeaveIfError(sock.SetOpt(KWapSmsOptionNewStyleClient,KWapSmsOptionLevel, 0)); - // - // Bind - // - User::LeaveIfError(sock.Bind(wapAddr)); - // - // Issue Ioctl for getting the length of the message - // - INFO_PRINTF1(_L("Issue of first IOCTL for GetLength")); - sock.Ioctl(KSOGetLength, ioctlStatus, &length, KSolWapProv); - - // - // Get the size of the incomming message - // - User::WaitForRequest(ioctlStatus); - User::LeaveIfError(ioctlStatus.Int()); - INFO_PRINTF1(_L("IOCTL completed...")); - - TBuf8<256> recvBuf(length); - // - // Receiving a datagram - // - sock.RecvFrom(recvBuf,recvWapAddr,0,recvStatus); - User::WaitForRequest(recvStatus); - User::LeaveIfError(recvStatus.Int()); - INFO_PRINTF1(_L("Received the message...")); - // - // Close socket - // - sock.Close(); - INFO_PRINTF1(_L("Socket was closed...")); - // - // Open the socket - // - OpenSocketL(socketServer, sock); - INFO_PRINTF1(_L("Socket was opened...")); - User::LeaveIfError(sock.SetOpt(KWapSmsOptionNewStyleClient,KWapSmsOptionLevel, 0)); - INFO_PRINTF1(_L("Socket set option for indicating new client")); - User::LeaveIfError(sock.Bind(wapAddr)); - // - // Issue another get length of datagram as if not aware of the previous message - // - INFO_PRINTF1(_L("Issue of first IOCTL for GetLength")); - sock.Ioctl(KSOGetLength, ioctlStatus, &length, KSolWapProv); - // - // waiting for request to be completed - // - User::WaitForRequest(ioctlStatus); - User::LeaveIfError(ioctlStatus.Int()); - INFO_PRINTF1(_L("IOCTL completed...")); - // - // Allocate buffer - // - TBuf8<256> newRecvBuf(length); - - // - // New message retrieved from SAR store - // - sock.RecvFrom(newRecvBuf,recvWapAddr,0,recvStatus); + HBufC8* recvBuf2 = HBufC8::NewLC(length()); + TPtr8 recvPtr2 = recvBuf2->Des(); + + iSocket.RecvFrom(recvPtr2,recvWapAddr,0,recvStatus); User::WaitForRequest(recvStatus); User::LeaveIfError(recvStatus.Int()); INFO_PRINTF1(_L("Received the message...")); - // // Confirm the receipt of the message to the client - // INFO_PRINTF1(_L("Socket set option for indicating receipt of message")); - User::LeaveIfError(sock.SetOpt(KWapSmsOptionOKToDeleteMessage,KWapSmsOptionLevel, 0)); + User::LeaveIfError(iSocket.SetOpt(KWapSmsOptionOKToDeleteMessage,KWapSmsOptionLevel, 0)); - // // Compare the received message with the previous one // They should be identical - // - TEST(newRecvBuf.Compare(recvBuf) == 0); + TEST(recvPtr2.Compare(recvPtr) == 0); - // - // Closing the socket - // - sock.Close(); - socketServer.Close(); - CleanupStack::PopAndDestroy(&sock); - CleanupStack::Pop(&socketServer); - + iSocket.Close(); + CleanupStack::PopAndDestroy(2, recvBuf); // recvBuf, recvBuf2 return TestStepResult(); } - TVerdict CIoctlStep_6::doTestStepL() /** * Test step 6: * Sends/receives a business card (Old client testing) * @return - TVerdict code - * */ { INFO_PRINTF1(_L("IOCTL Test step 6: send/receive a VCard (Old client testing)")); - - TPtrC TestData1; - TPtrC16 TelNumber; - TInt port=226; - TInt testNumber = 6; - - if(!GetStringFromConfig(ConfigSection(),KTestData1, TestData1) || - !GetStringFromConfig(ConfigSection(),KSCNumber,TelNumber) || - !GetIntFromConfig(ConfigSection(),KWapPort,port)) - { - // Leave if there's any error. - User::Leave(KErrNotFound); - } - - User::LeaveIfError(RProperty::Set(KUidSystemCategory, KUidPhonePwr.iUid, ESAPhoneOn)); - User::LeaveIfError(RProperty::Set(KUidPSSimTsyCategory, KPSSimTsyTestNumber, testNumber)); + // Configure and bind to a socket, do not set the "new style client" option + SetupWapSocketL(iSocket, iWapAddr, KWapPort, EFalse); - // - // Setting the port number and service center number of the wap address - // The service center number should be the same as the sim phone number used - // for test - // - TWapAddr wapAddr; - TWapAddr recvWapAddr; - wapAddr.SetWapPort(TWapPortNumber(port)); - - TBuf8<100> scNumber; - scNumber.Copy(TelNumber); - TPtrC8 scAddr(scNumber); - wapAddr.SetWapAddress(scAddr); - - // - // Connect to socket server - // - RSocketServ socketServer; - User::LeaveIfError(socketServer.Connect()); - CleanupClosePushL(socketServer); + // Send a calendar entry + TPtrC testData = GetStringFromConfigL(KTestData1); + SendWapMessage(testData); - // - // Define and open the socket - // - RSocket sock; - OpenSocketLC(socketServer, sock); - - // - // Waiting for the phone to be initialised - // - WaitForInitializeL(); - + // Receiving a datagram TRequestStatus recvStatus; - - // - // Bind - // - User::LeaveIfError(sock.Bind(wapAddr)); - - // - // Send a calendar entry - // - TRequestStatus status; - - TBuf8<200> data; - data.Copy(TestData1); - sock.SendTo(data, wapAddr, 0, status); - User::WaitForRequest(status); - User::LeaveIfError(status.Int()); - INFO_PRINTF1(_L("Message sent...")); - - // - // Receiving a datagram - // + TWapAddr recvWapAddr; TBuf8<256> recvBuf; - sock.RecvFrom(recvBuf,recvWapAddr,0,recvStatus); + + INFO_PRINTF1(_L("Receiving a message from the socket...")); + iSocket.RecvFrom(recvBuf,recvWapAddr,0,recvStatus); User::WaitForRequest(recvStatus); - User::LeaveIfError(recvStatus.Int()); - INFO_PRINTF1(_L("Received the message...")); - - // - // Closing the socket - // - sock.Close(); - socketServer.Close(); - CleanupStack::PopAndDestroy(&sock); - CleanupStack::Pop(&socketServer); - + TESTCHECKL(recvStatus.Int(), KErrNone, "Receiving a message"); + + iSocket.Close(); return TestStepResult(); } - TVerdict CIoctlStep_7::doTestStepL() /** * Test step 7: * Receives a Push Message (8-Bit) * @return - TVerdict code - * */ { INFO_PRINTF1(_L("IOCTL Test step 7: Receive push message(8-Bit)")); - - TPtrC16 TelNumber; - TInt port=226; - TInt testNumber = 7; - if(!GetStringFromConfig(ConfigSection(),KSCNumber,TelNumber) || - !GetIntFromConfig(ConfigSection(),KWapPort,port)) - { - // Leave if there's any error. - User::Leave(KErrNotFound); - } - - User::LeaveIfError(RProperty::Set(KUidSystemCategory, KUidPhonePwr.iUid, ESAPhoneOn)); - User::LeaveIfError(RProperty::Set(KUidPSSimTsyCategory, KPSSimTsyTestNumber, testNumber)); - - // - // Setting the port number and service center number of the wap address - // The service center number should be the same as the sim phone number used - // for test - // - TWapAddr wapAddr; - TWapAddr recvWapAddr; - wapAddr.SetWapPort(TWapPortNumber(port)); - TBuf8<100> scNumber; - scNumber.Copy(TelNumber); - TPtrC8 scAddr(scNumber); - wapAddr.SetWapAddress(scAddr); - - // - // Connect to socket server - // - RSocketServ socketServer; - User::LeaveIfError(socketServer.Connect()); - CleanupClosePushL(socketServer); - - // - // Define and open the socket - // - RSocket sock; - OpenSocketLC(socketServer, sock); - - // - // Waiting for the phone to be initialised - // - WaitForInitializeL(); - - TRequestStatus ioctlStatus; - TRequestStatus recvStatus; - TPckgBuf length; - - // - // Indicating to the protocol that it's a new client - // - INFO_PRINTF1(_L("Socket set option for indicating new client")); - User::LeaveIfError(sock.SetOpt(KWapSmsOptionNewStyleClient,KWapSmsOptionLevel, 0)); - - // - // Bind - // - User::LeaveIfError(sock.Bind(wapAddr)); + // Configure and bind to a socket + SetupWapSocketL(); // // Issue Ioctl for getting the length of the message - // + TRequestStatus ioctlStatus; + TPckgBuf length; + INFO_PRINTF1(_L("Issue of first IOCTL for GetLength")); - sock.Ioctl(KSOGetLength, ioctlStatus, &length, KSolWapProv); + iSocket.Ioctl(KSOGetLength, ioctlStatus, &length, KSolWapProv); + // // Get the size of the incomming push message // User::WaitForRequest(ioctlStatus); User::LeaveIfError(ioctlStatus.Int()); INFO_PRINTF1(_L("IOCTL completed...")); - // - // Allocate buffer - // - TBuf8<256> recvBuf2(length); // // Receiving push datagram // - sock.RecvFrom(recvBuf2,recvWapAddr,0,recvStatus); + TRequestStatus recvStatus; + TWapAddr recvWapAddr; + TBuf8<256> recvBuf2(length); + + iSocket.RecvFrom(recvBuf2,recvWapAddr,0,recvStatus); User::WaitForRequest(recvStatus); User::LeaveIfError(recvStatus.Int()); INFO_PRINTF1(_L("Received the push message...")); @@ -1018,109 +336,46 @@ // Confirm the receipt of the message to the client // INFO_PRINTF1(_L("Socket set option for indicating receipt of message")); - User::LeaveIfError(sock.SetOpt(KWapSmsOptionOKToDeleteMessage,KWapSmsOptionLevel, 0)); + User::LeaveIfError(iSocket.SetOpt(KWapSmsOptionOKToDeleteMessage,KWapSmsOptionLevel, 0)); - // - // Closing the socket - // - sock.Close(); - socketServer.Close(); - CleanupStack::PopAndDestroy(&sock); - CleanupStack::Pop(&socketServer); - + iSocket.Close(); return TestStepResult(); } - TVerdict CIoctlStep_8::doTestStepL() /** * Test step 8: * Receives two Push Messages (8-Bit) Tests store of 8-Bit messages * @return - TVerdict code - * */ { INFO_PRINTF1(_L("IOCTL Test step 8: Receive two push message(8-Bit)")); - - TPtrC16 TelNumber; - TInt port=226; - TInt testNumber=8; - - if(!GetStringFromConfig(ConfigSection(),KSCNumber,TelNumber) || - !GetIntFromConfig(ConfigSection(),KWapPort,port)) - { - // Leave if there's any error. - User::Leave(KErrNotFound); - } - - User::LeaveIfError(RProperty::Set(KUidSystemCategory, KUidPhonePwr.iUid, ESAPhoneOn)); - User::LeaveIfError(RProperty::Set(KUidPSSimTsyCategory, KPSSimTsyTestNumber, testNumber)); - - // - // Setting the port number and service center number of the wap address - // The service center number should be the same as the sim phone number used - // for test - // - TWapAddr wapAddr; - TWapAddr recvWapAddr; - wapAddr.SetWapPort(TWapPortNumber(port)); - TBuf8<100> scNumber; - scNumber.Copy(TelNumber); - TPtrC8 scAddr(scNumber); - wapAddr.SetWapAddress(scAddr); - - // - // Connect to socket server - // - RSocketServ socketServer; - User::LeaveIfError(socketServer.Connect()); - CleanupClosePushL(socketServer); - - // - // Define and open the socket - // - RSocket sock; - OpenSocketLC(socketServer, sock); - - // - // Waiting for the phone to be initialised - // - WaitForInitializeL(); - - TRequestStatus ioctlStatus; - TRequestStatus recvStatus; - TPckgBuf length; - - // - // Indicating to the protocol that it's a new client - // - INFO_PRINTF1(_L("Socket set option for indicating new client")); - User::LeaveIfError(sock.SetOpt(KWapSmsOptionNewStyleClient,KWapSmsOptionLevel, 0)); - // - // Bind - // - User::LeaveIfError(sock.Bind(wapAddr)); + // Configure and bind to a socket + SetupWapSocketL(); // // Issue Ioctl for getting the length of the message // + TRequestStatus ioctlStatus; + TPckgBuf length; + INFO_PRINTF1(_L("Issue of first IOCTL for GetLength")); - sock.Ioctl(KSOGetLength, ioctlStatus, &length, KSolWapProv); + iSocket.Ioctl(KSOGetLength, ioctlStatus, &length, KSolWapProv); // // Get the size of the incomming push message // User::WaitForRequest(ioctlStatus); User::LeaveIfError(ioctlStatus.Int()); INFO_PRINTF1(_L("IOCTL completed...")); - // - // Allocate buffer - // - TBuf8<256> recvBuf1(length); // // Receiving push datagram // - sock.RecvFrom(recvBuf1,recvWapAddr,0,recvStatus); + TRequestStatus recvStatus; + TWapAddr recvWapAddr; + TBuf8<256> recvBuf1(length); + + iSocket.RecvFrom(recvBuf1,recvWapAddr,0,recvStatus); User::WaitForRequest(recvStatus); User::LeaveIfError(recvStatus.Int()); INFO_PRINTF1(_L("Received the push message...")); @@ -1129,13 +384,13 @@ // Confirm the receipt of the message to the client // INFO_PRINTF1(_L("Socket set option for indicating receipt of message")); - User::LeaveIfError(sock.SetOpt(KWapSmsOptionOKToDeleteMessage,KWapSmsOptionLevel, 0)); + User::LeaveIfError(iSocket.SetOpt(KWapSmsOptionOKToDeleteMessage,KWapSmsOptionLevel, 0)); // // Issue another Ioctl for getting the length of the message // INFO_PRINTF1(_L("Issue of first IOCTL for GetLength")); - sock.Ioctl(KSOGetLength, ioctlStatus, &length, KSolWapProv); + iSocket.Ioctl(KSOGetLength, ioctlStatus, &length, KSolWapProv); // // Get the size of the second incomming push message // @@ -1150,7 +405,7 @@ // // Receiving push datagram // - sock.RecvFrom(recvBuf2,recvWapAddr,0,recvStatus); + iSocket.RecvFrom(recvBuf2,recvWapAddr,0,recvStatus); User::WaitForRequest(recvStatus); User::LeaveIfError(recvStatus.Int()); INFO_PRINTF1(_L("Received the second push message...")); @@ -1164,788 +419,224 @@ // Confirm the receipt of the message to the client // INFO_PRINTF1(_L("Socket set option for indicating receipt of message")); - User::LeaveIfError(sock.SetOpt(KWapSmsOptionOKToDeleteMessage,KWapSmsOptionLevel, 0)); + User::LeaveIfError(iSocket.SetOpt(KWapSmsOptionOKToDeleteMessage,KWapSmsOptionLevel, 0)); - // - // Closing the socket - // - sock.Close(); - socketServer.Close(); - CleanupStack::PopAndDestroy(&sock); - CleanupStack::Pop(&socketServer); - + iSocket.Close(); return TestStepResult(); } - TVerdict CIoctlStep_9::doTestStepL() /** * Test step 9: * Receive a 8-Bit push message (Old client testing) * @return - TVerdict code - * */ { INFO_PRINTF1(_L("IOCTL Test step 9: receive a push message (Testing old client)")); - - TPtrC16 TelNumber; - TInt port=226; - TInt testNumber = 9; - - if(!GetStringFromConfig(ConfigSection(),KSCNumber,TelNumber) || - !GetIntFromConfig(ConfigSection(),KWapPort,port)) - { - // Leave if there's any error. - User::Leave(KErrNotFound); - } - - User::LeaveIfError(RProperty::Set(KUidSystemCategory, KUidPhonePwr.iUid, ESAPhoneOn)); - User::LeaveIfError(RProperty::Set(KUidPSSimTsyCategory, KPSSimTsyTestNumber, testNumber)); - - // - // Setting the port number and service center number of the wap address - // The service center number should be the same as the sim phone number used - // for test - // - TWapAddr wapAddr; - TWapAddr recvWapAddr; - wapAddr.SetWapPort(TWapPortNumber(port)); - - TBuf8<100> scNumber; - scNumber.Copy(TelNumber); - TPtrC8 scAddr(scNumber); - wapAddr.SetWapAddress(scAddr); - - // - // Connect to socket server - // - RSocketServ socketServer; - User::LeaveIfError(socketServer.Connect()); - CleanupClosePushL(socketServer); - - // - // Define and open the socket - // - RSocket sock; - OpenSocketLC(socketServer, sock); - - // - // Waiting for the phone to be initialised - // - WaitForInitializeL(); - - TRequestStatus recvStatus; - - // - // Bind - // - User::LeaveIfError(sock.Bind(wapAddr)); + // Configure and bind to a socket, do not set the "new style client" option + SetupWapSocketL(iSocket, iWapAddr, KWapPort, EFalse); // // Receiving a datagram // + TRequestStatus recvStatus; + TWapAddr recvWapAddr; TBuf8<256> recvBuf; - sock.RecvFrom(recvBuf,recvWapAddr,0,recvStatus); + + iSocket.RecvFrom(recvBuf,recvWapAddr,0,recvStatus); User::WaitForRequest(recvStatus); User::LeaveIfError(recvStatus.Int()); INFO_PRINTF1(_L("Received the message...")); - // - // Closing the socket - // - sock.Close(); - socketServer.Close(); - CleanupStack::PopAndDestroy(&sock); - CleanupStack::Pop(&socketServer); - + iSocket.Close(); return TestStepResult(); } - TVerdict CIoctlStep_10::doTestStepL() /** * Test step Ten: * Sends/receives a 7Bit business card using IOCTL * @return - TVerdict code - * */ { INFO_PRINTF1(_L("IOCTL Test step 10: send/receive 7-Bit business card using IOCTL")); - - TPtrC TestData1; - TPtrC16 TelNumber; - TInt port=226; - TInt testNumber=10; - - if(!GetStringFromConfig(ConfigSection(),KTestData1, TestData1) || - !GetStringFromConfig(ConfigSection(),KSCNumber,TelNumber) || - !GetIntFromConfig(ConfigSection(),KWapPort,port)) - { - // Leave if there's any error. - User::Leave(KErrNotFound); - } - - User::LeaveIfError(RProperty::Set(KUidSystemCategory, KUidPhonePwr.iUid, ESAPhoneOn)); - User::LeaveIfError(RProperty::Set(KUidPSSimTsyCategory, KPSSimTsyTestNumber, testNumber)); - - // - // Setting the port number and service center number of the wap address - // The service center number should be the same as the sim phone number used - // for test (not required for SIM tsy) - // - TWapAddr wapAddr; - TWapAddr recvWapAddr; - wapAddr.SetWapPort(TWapPortNumber(port)); - - TBuf8<100> scNumber; - scNumber.Copy(TelNumber); - TPtrC8 scAddr(scNumber); - wapAddr.SetWapAddress(scAddr); - - // - // Connect to socket server - // - RSocketServ socketServer; - User::LeaveIfError(socketServer.Connect()); - CleanupClosePushL(socketServer); - - // - // Define and open the socket - // - RSocket sock; - OpenSocketLC(socketServer, sock); - - // - // Waiting for the phone to be initialised - // - WaitForInitializeL(); - - TRequestStatus ioctlStatus; - TRequestStatus recvStatus; - TPckgBuf length; + // Configure and bind to a socket + SetupWapSocketL(); + + // Send a calendar entry + TPtrC testData = GetStringFromConfigL(KTestData1); + SendWapMessage(testData); - // - // Indicating to the protocol that it's a new client - // - INFO_PRINTF1(_L("Socket set option for indicating new client")); - User::LeaveIfError(sock.SetOpt(KWapSmsOptionNewStyleClient,KWapSmsOptionLevel, 0)); - // - // Bind - // - User::LeaveIfError(sock.Bind(wapAddr)); - - // - // Send a calendar entry - // - TRequestStatus status; - - TBuf8<200> data; - data.Copy(TestData1); - sock.SendTo(data, wapAddr, 0, status); - User::WaitForRequest(status); - User::LeaveIfError(status.Int()); - INFO_PRINTF1(_L("Message sent...")); - - // - // Issue Ioctl for getting the length of the message - // - INFO_PRINTF1(_L("Issue of IOCTL for GetLength")); - sock.Ioctl(KSOGetLength, ioctlStatus, &length, KSolWapProv); + ReceiveWapMessage(testData); - // - // Get the size of the first incomming message - // - User::WaitForRequest(ioctlStatus); - User::LeaveIfError(ioctlStatus.Int()); - INFO_PRINTF1(_L("IOCTL completed")); - // - // Check if reported length is correct - // - TBuf8<256> recvBuf(length); - TEST(length()==data.Length()); - - // - // Receiving a datagram - // - sock.RecvFrom(recvBuf,recvWapAddr,0,recvStatus); - User::WaitForRequest(recvStatus); - User::LeaveIfError(recvStatus.Int()); - INFO_PRINTF1(_L("Received the message...")); - TEST(recvBuf.Compare(data) == 0); - - // - // Confirm the receipt of the message to the client - // - INFO_PRINTF1(_L("Socket set option for indicating receipt of message")); - User::LeaveIfError(sock.SetOpt(KWapSmsOptionOKToDeleteMessage,KWapSmsOptionLevel, 0)); - - // - // Closing the socket - // - sock.Close(); - socketServer.Close(); - CleanupStack::PopAndDestroy(&sock); - CleanupStack::Pop(&socketServer); - + iSocket.Close(); return TestStepResult(); } - - TVerdict CIoctlStep_11::doTestStepL() /** * Test step 11: * Test Cancel IOCTL * @return - TVerdict code - * */ { INFO_PRINTF1(_L("IOCTL Test step 11: Testing CancelIOCTL")); - - TPtrC16 TelNumber; - TInt port=226; - - - if(!GetStringFromConfig(ConfigSection(),KSCNumber,TelNumber) || - !GetIntFromConfig(ConfigSection(),KWapPort,port)) - { - // Leave if there's any error. - User::Leave(KErrNotFound); - } - - User::LeaveIfError(RProperty::Set(KUidSystemCategory, KUidPhonePwr.iUid, ESAPhoneOn)); + // Configure and bind to a socket + SetupWapSocketL(); - // - // Setting the port number and service center number of the wap address - // The service center number should be the same as the sim phone number used - // for test (not required for SIM tsy) - // - TWapAddr wapAddr; - wapAddr.SetWapPort(TWapPortNumber(port)); - - TBuf8<100> scNumber; - scNumber.Copy(TelNumber); - TPtrC8 scAddr(scNumber); - wapAddr.SetWapAddress(scAddr); - - // - // Connect to socket server - // - RSocketServ socketServer; - User::LeaveIfError(socketServer.Connect()); - CleanupClosePushL(socketServer); + // Issue Ioctl for getting the length of the message + TRequestStatus ioctlStatus; + TPckgBuf length; - // - // Define and open the socket - // - RSocket sock; - OpenSocketLC(socketServer, sock); - - // - // Waiting for the phone to be initialised - // - WaitForInitializeL(); - - TRequestStatus ioctlStatus; - TPckgBuf length; - - // - // Indicating to the protocol that it's a new client - // - INFO_PRINTF1(_L("Socket set option for indicating new client")); - User::LeaveIfError(sock.SetOpt(KWapSmsOptionNewStyleClient,KWapSmsOptionLevel, 0)); - // - // Bind - // - User::LeaveIfError(sock.Bind(wapAddr)); + INFO_PRINTF1(_L("Issue of IOCTL for GetLength")); + iSocket.Ioctl(KSOGetLength, ioctlStatus, &length, KSolWapProv); - // - // Issue Ioctl for getting the length of the message - // - INFO_PRINTF1(_L("Issue of IOCTL for GetLength")); - sock.Ioctl(KSOGetLength, ioctlStatus, &length, KSolWapProv); - - // // Issue Cancel Ioctl - // INFO_PRINTF1(_L("Issue of cancel IOCTL for GetLength")); - sock.CancelIoctl(); + iSocket.CancelIoctl(); + TESTCHECK(ioctlStatus.Int(), KErrCancel, "Check if the outstanding IOCTL has been canceled"); - // - // Check if the outstanding IOCTL has been canceled - // - TEST(ioctlStatus==KErrCancel); - - // - // Closing the socket - // - sock.Close(); - socketServer.Close(); - CleanupStack::PopAndDestroy(&sock); - CleanupStack::Pop(&socketServer); - + iSocket.Close(); return TestStepResult(); } - TVerdict CIoctlStep_12::doTestStepL() /** * Test step 12: * Test issue IOCTL without SetOption NewStyleClient * @return - TVerdict code - * */ { INFO_PRINTF1(_L("IOCTL Test step 12: Test issue IOCTL without SetOption NewStyleClient")); - - TPtrC16 TelNumber; - TInt port=226; - - if(!GetStringFromConfig(ConfigSection(),KSCNumber,TelNumber) || - !GetIntFromConfig(ConfigSection(),KWapPort,port)) - { - // Leave if there's any error. - User::Leave(KErrNotFound); - } - - User::LeaveIfError(RProperty::Set(KUidSystemCategory, KUidPhonePwr.iUid, ESAPhoneOn)); - - // - // Setting the port number and service center number of the wap address - // The service center number should be the same as the sim phone number used - // for test (not required for SIM tsy) - // - TWapAddr wapAddr; - wapAddr.SetWapPort(TWapPortNumber(port)); - - TBuf8<100> scNumber; - scNumber.Copy(TelNumber); - TPtrC8 scAddr(scNumber); - wapAddr.SetWapAddress(scAddr); - - // - // Connect to socket server - // - RSocketServ socketServer; - User::LeaveIfError(socketServer.Connect()); - CleanupClosePushL(socketServer); + // Configure and bind to a socket, do not set the "new style client" option + SetupWapSocketL(iSocket, iWapAddr, KWapPort, EFalse); + + // Issue Ioctl for getting the length of the message (should fail) + TRequestStatus ioctlStatus; + TPckgBuf length; - // - // Define and open the socket - // - RSocket sock; - OpenSocketLC(socketServer, sock); - - // - // Waiting for the phone to be initialised - // - WaitForInitializeL(); - - TRequestStatus ioctlStatus; - - TPckgBuf length; + INFO_PRINTF1(_L("Issuing IOCTL for getting the length of the message...")); + iSocket.Ioctl(KSOGetLength, ioctlStatus, &length, KSolWapProv); + TESTCHECKCONDITION(ioctlStatus.Int()!=KErrNone, "Getting the length of the incoming message"); - // - // Bind - // - User::LeaveIfError(sock.Bind(wapAddr)); - - // - // Issue Ioctl for getting the length of the message (should fail) - // - INFO_PRINTF1(_L("Issue of IOCTL for GetLength")); - sock.Ioctl(KSOGetLength, ioctlStatus, &length, KSolWapProv); - User::WaitForRequest(ioctlStatus); - TEST(ioctlStatus!=KErrNone); - - // - // Closing the socket - // - sock.Close(); - socketServer.Close(); - CleanupStack::PopAndDestroy(&sock); - CleanupStack::Pop(&socketServer); - + iSocket.Close(); return TestStepResult(); } - - TVerdict CIoctlStep_13::doTestStepL() /** * Test step two: * Sends/receives a 8-Bit calendar entry using IOCTL(two segments) * @return - TVerdict code - * */ { - INFO_PRINTF1(_L("IOCTL Test step 13: send/receive a 8-Bit VCal")); + // Configure and bind to a socket + SetupWapSocketL(); - TPtrC TestData; - TPtrC16 TelNumber; - TInt port=226; - TInt testNumber = 13; - if(!GetStringFromConfig(ConfigSection(),KTestData1, TestData) || - !GetStringFromConfig(ConfigSection(),KSCNumber,TelNumber) || - !GetIntFromConfig(ConfigSection(),KWapPort,port)) - { - // Leave if there's any error. - User::Leave(KErrNotFound); - } + User::LeaveIfError(iSocket.SetOpt(KWapSmsOptionNameDCS,KWapSmsOptionLevel,EWapSms8BitDCS)); - User::LeaveIfError(RProperty::Set(KUidSystemCategory, KUidPhonePwr.iUid, ESAPhoneOn)); - User::LeaveIfError(RProperty::Set(KUidPSSimTsyCategory, KPSSimTsyTestNumber, testNumber)); - - // - // Setting the port number and service center number of the wap address - // The service center number should be the same as the sim phone number used - // for test (not required for SIM Tsy) - // - TWapAddr wapAddr; - TWapAddr recvWapAddr; - wapAddr.SetWapPort(TWapPortNumber(port)); - TBuf8<100> scNumber; - scNumber.Copy(TelNumber); - TPtrC8 scAddr(scNumber); - wapAddr.SetWapAddress(scAddr); + // Issue Ioctl for getting the length of the message + TRequestStatus ioctlStatus; + TPckgBuf length; + + INFO_PRINTF1(_L("Issuing IOCTL for getting the length of the message...")); + iSocket.Ioctl(KSOGetLength, ioctlStatus, &length, KSolWapProv); - // - // Connect to socket server - // - RSocketServ socketServer; - User::LeaveIfError(socketServer.Connect()); - CleanupClosePushL(socketServer); + // Send a calendar entry + TPtrC testData = GetStringFromConfigL(KTestData1); + SendWapMessage(testData); + + // Get the size of the incoming message + User::WaitForRequest(ioctlStatus); + TESTCHECKL(ioctlStatus.Int(), KErrNone, "Getting the size of the incoming message"); + TESTCHECK(length(), testData.Length(), "Check if reported length is correct"); + + ReceiveWapMessageFromSocket(length(), testData); + + iSocket.Close(); + return TestStepResult(); + } - // - // Define and open the socket - // - RSocket sock; - OpenSocketLC(socketServer, sock); - - // - // Waiting for the phone to be initialised - // - WaitForInitializeL(); - - TRequestStatus ioctlStatus; - TRequestStatus recvStatus; - TPckgBuf length; - - // - // Indicating to the protocol that it's a new client - // - INFO_PRINTF1(_L("Socket set option for indicating new client")); - User::LeaveIfError(sock.SetOpt(KWapSmsOptionNewStyleClient,KWapSmsOptionLevel, 0)); - - User::LeaveIfError(sock.SetOpt(KWapSmsOptionNameDCS,KWapSmsOptionLevel,EWapSms8BitDCS)); - - // - // Bind - // - User::LeaveIfError(sock.Bind(wapAddr)); +TVerdict CIoctlStep_14::doTestStepL() +/** + * Test step 14: + * simulating client crash conditions with 8bit calendar entry + * @return - TVerdict code + */ + { + INFO_PRINTF1(_L("IOCTL Test step 14: client crash condition 8-Bit calendar entry ")); + // Configure and bind to a socket + SetupWapSocketL(); + + User::LeaveIfError(iSocket.SetOpt(KWapSmsOptionNameDCS,KWapSmsOptionLevel,EWapSms8BitDCS)); // // Issue Ioctl for getting the length of the message // - INFO_PRINTF1(_L("Issue of the IOCTL for GetLength")); - sock.Ioctl(KSOGetLength, ioctlStatus, &length, KSolWapProv); - - // - // Send a calendar entry - // - TRequestStatus status; - - TBuf8<300> data; - data.Copy(TestData); - sock.SendTo(data, wapAddr, 0, status); - User::WaitForRequest(status); - User::LeaveIfError(status.Int()); - INFO_PRINTF1(_L("Message sent...")); - - // - // Get the size of the incomming message - // - User::WaitForRequest(ioctlStatus); - User::LeaveIfError(ioctlStatus.Int()); - INFO_PRINTF1(_L("IOCTL completed")); - // - // Check if reported length is correct - // - TBuf8<300> recvBuf(length); - TEST(length()==data.Length()); - - // - // Receiving a datagram - // - sock.RecvFrom(recvBuf,recvWapAddr,0,recvStatus); - User::WaitForRequest(recvStatus); - User::LeaveIfError(recvStatus.Int()); - INFO_PRINTF1(_L("Received the message...")); - TEST(recvBuf.Compare(data) == 0); - - // - // Confirm the receipt of the message to the client - // - INFO_PRINTF1(_L("Socket set option for indicating receipt of message")); - User::LeaveIfError(sock.SetOpt(KWapSmsOptionOKToDeleteMessage,KWapSmsOptionLevel, 0)); - - // - // Closing the socket - // - sock.Close(); - socketServer.Close(); - CleanupStack::PopAndDestroy(&sock); - CleanupStack::Pop(&socketServer); + TRequestStatus ioctlStatus; + TPckgBuf length; + + INFO_PRINTF1(_L("Issuing IOCTL for getting the length of the message...")); + iSocket.Ioctl(KSOGetLength, ioctlStatus, &length, KSolWapProv); - return TestStepResult(); - } - - -TVerdict CIoctlStep_14::doTestStepL() -/** - * - * Test step 14: - * simulating client crash conditions with 8bit calendar entry - * @return - TVerdict code - * - */ - { - INFO_PRINTF1(_L("IOCTL Test step 14: client crash condition 8-Bit calendar entry ")); - - TPtrC TestData; - TPtrC16 TelNumber; - TInt port=226; - TInt testNumber =14; - - if(!GetStringFromConfig(ConfigSection(),KTestData1, TestData) || - !GetStringFromConfig(ConfigSection(),KSCNumber,TelNumber) || - !GetIntFromConfig(ConfigSection(),KWapPort,port)) - { - // Leave if there's any error. - User::Leave(KErrNotFound); - } - - User::LeaveIfError(RProperty::Set(KUidSystemCategory, KUidPhonePwr.iUid, ESAPhoneOn)); - User::LeaveIfError(RProperty::Set(KUidPSSimTsyCategory, KPSSimTsyTestNumber, testNumber)); - - // - // Setting the port number and service center number of the wap address - // The service center number should be the same as the sim phone number used - // for test - // - - TWapAddr wapAddr; - TWapAddr recvWapAddr; - wapAddr.SetWapPort(TWapPortNumber(port)); - TBuf8<100> scNumber; - scNumber.Copy(TelNumber); - TPtrC8 scAddr(scNumber); - wapAddr.SetWapAddress(scAddr); - - // - // Connect to socket server - // - RSocketServ socketServer; - User::LeaveIfError(socketServer.Connect()); - CleanupClosePushL(socketServer); + // Send a Calendar entry + TPtrC testData = GetStringFromConfigL(KTestData1); + SendWapMessage(testData); - // - // Define and open the socket - // - RSocket sock; - OpenSocketLC(socketServer, sock); - - // - // Waiting for the phone to be initialised - // - WaitForInitializeL(); - - TRequestStatus ioctlStatus; - TRequestStatus recvStatus; - TPckgBuf length; - - // - // Indicating to the protocol that it's a new client - // - INFO_PRINTF1(_L("Socket set option for indicating new client")); - User::LeaveIfError(sock.SetOpt(KWapSmsOptionNewStyleClient,KWapSmsOptionLevel, 0)); - - User::LeaveIfError(sock.SetOpt(KWapSmsOptionNameDCS,KWapSmsOptionLevel,EWapSms8BitDCS)); - - // - // Bind - // - User::LeaveIfError(sock.Bind(wapAddr)); - - // - // Issue Ioctl for getting the length of the message - // - INFO_PRINTF1(_L("Issue of first IOCTL for GetLength")); - sock.Ioctl(KSOGetLength, ioctlStatus, &length, KSolWapProv); - - // - // Send a Calendar entry - // - TRequestStatus status; - - TBuf8<300> data; - data.Copy(TestData); - sock.SendTo(data, wapAddr, 0, status); - User::WaitForRequest(status); - User::LeaveIfError(status.Int()); - INFO_PRINTF1(_L("Message sent...")); - // - // Get the size of the incomming message - // - User::WaitForRequest(ioctlStatus); - User::LeaveIfError(ioctlStatus.Int()); - INFO_PRINTF1(_L("IOCTL completed...")); - // - // Check if reported length is correct - // - TBuf8<300> recvBuf(length); - TEST(length()==data.Length()); - - // - // Receiving a datagram - // - sock.RecvFrom(recvBuf,recvWapAddr,0,recvStatus); - User::WaitForRequest(recvStatus); - User::LeaveIfError(recvStatus.Int()); - INFO_PRINTF1(_L("Received the message...")); - // - // Close socket - // - sock.Close(); - INFO_PRINTF1(_L("Socket was closed...")); - // - // Open the socket - // - OpenSocketL(socketServer, sock); - INFO_PRINTF1(_L("Socket was opened...")); - User::LeaveIfError(sock.SetOpt(KWapSmsOptionNewStyleClient,KWapSmsOptionLevel, 0)); - INFO_PRINTF1(_L("Socket set option for indicating new client")); - User::LeaveIfError(sock.Bind(wapAddr)); - // - // Issue another get length of datagram as if not aware of the previous message - // - INFO_PRINTF1(_L("Issue of first IOCTL for GetLength")); - sock.Ioctl(KSOGetLength, ioctlStatus, &length, KSolWapProv); - // - // waiting for request to be completed - // - User::WaitForRequest(ioctlStatus); - User::LeaveIfError(ioctlStatus.Int()); - INFO_PRINTF1(_L("IOCTL completed...")); - // - // Check if reported length is correct - // - TBuf8<300> newRecvBuf(length); - TEST(length()==data.Length()); - - // - // New message retrieved from SAR store - // - sock.RecvFrom(newRecvBuf,recvWapAddr,0,recvStatus); - User::WaitForRequest(recvStatus); - User::LeaveIfError(recvStatus.Int()); - INFO_PRINTF1(_L("Received the message...")); - TEST(newRecvBuf.Compare(data) == 0); - - // - // Confirm the receipt of the message to the client - // - INFO_PRINTF1(_L("Socket set option for indicating receipt of message")); - User::LeaveIfError(sock.SetOpt(KWapSmsOptionOKToDeleteMessage,KWapSmsOptionLevel, 0)); - - // - // Closing the socket - // - sock.Close(); - socketServer.Close(); - CleanupStack::PopAndDestroy(&sock); - CleanupStack::Pop(&socketServer); - - return TestStepResult(); + // Get the size of the incoming message + User::WaitForRequest(ioctlStatus); + TESTCHECKL(ioctlStatus.Int(), KErrNone, "Getting the size of the incoming message"); + TESTCHECK(length(), testData.Length(), "Check if reported length is correct"); + + // Receive a message + TRequestStatus recvStatus; + TWapAddr recvWapAddr; + HBufC8* recvBuf = HBufC8::NewLC(length()); + TPtr8 recvPtr = recvBuf->Des(); + + iSocket.RecvFrom(recvPtr, recvWapAddr, 0, recvStatus); + User::WaitForRequest(recvStatus); + TESTCHECKL(recvStatus.Int(), KErrNone, "Receiving a message"); + + // Simulate a crash by closing and reopening the socket + iSocket.Close(); + INFO_PRINTF1(_L("Socket was closed...")); + + OpenSocketL(iSocketServer, iSocket); + User::LeaveIfError(iSocket.SetOpt(KWapSmsOptionNewStyleClient,KWapSmsOptionLevel, 0)); + INFO_PRINTF1(_L("Socket set option for indicating new client")); + User::LeaveIfError(iSocket.Bind(iWapAddr)); + INFO_PRINTF1(_L("Socket was opened...")); + + // Issue another get length of datagram as if not aware of the previous message + // and retrieve the message from the SAR store + ReceiveWapMessage(testData); + + iSocket.Close(); + CleanupStack::PopAndDestroy(recvBuf); + return TestStepResult(); } - TVerdict CIoctlStep_15::doTestStepL() /** * Test step fifteen: * Receives a 7Bit v-card using IOCTL with concatenation for new style client * @return - TVerdict code - * */ { INFO_PRINTF1(_L("IOCTL Test step 15: send/receive 7-Bit v-card")); - - TPtrC16 TelNumber; - TInt port=9204; - TInt testNumber=15; - - if(!GetStringFromConfig(ConfigSection(),KSCNumber,TelNumber) || - !GetIntFromConfig(ConfigSection(),KWapPort,port)) - { - // Leave if there's any error. - User::Leave(KErrNotFound); - } - - User::LeaveIfError(RProperty::Set(KUidSystemCategory, KUidPhonePwr.iUid, ESAPhoneOn)); - User::LeaveIfError(RProperty::Set(KUidPSSimTsyCategory, KPSSimTsyTestNumber, testNumber)); - - // - // Setting the port number and service center number of the wap address - // The service center number should be the same as the sim phone number used - // for test (not required for SIM tsy) - // - TWapAddr wapAddr; - TWapAddr recvWapAddr; - wapAddr.SetWapPort(TWapPortNumber(port)); - - TBuf8<100> scNumber; - scNumber.Copy(TelNumber); - TPtrC8 scAddr(scNumber); - wapAddr.SetWapAddress(scAddr); - - // - // Connect to socket server - // - RSocketServ socketServer; - User::LeaveIfError(socketServer.Connect()); - CleanupClosePushL(socketServer); - - // - // Define and open the socket - // - RSocket sock; - OpenSocketLC(socketServer, sock); - - // - // Waiting for the phone to be initialised - // - WaitForInitializeL(); - - TRequestStatus ioctlStatus; - TRequestStatus recvStatus; - TPckgBuf length; - - // - // Indicating to the protocol that it's a new client - // - INFO_PRINTF1(_L("Socket set option for indicating new client")); - User::LeaveIfError(sock.SetOpt(KWapSmsOptionNewStyleClient,KWapSmsOptionLevel, 0)); - // - // Bind - // - User::LeaveIfError(sock.Bind(wapAddr)); - - // + // Configure and bind to a socket + SetupWapSocketL(); + + // // Issue Ioctl for getting the length of the message // - INFO_PRINTF1(_L("Issue of IOCTL for GetLength")); - sock.Ioctl(KSOGetLength, ioctlStatus, &length, KSolWapProv); + TRequestStatus ioctlStatus; + TPckgBuf length; + + INFO_PRINTF1(_L("Issue of IOCTL for GetLength")); + iSocket.Ioctl(KSOGetLength, ioctlStatus, &length, KSolWapProv); // // Get the size of the first incoming message @@ -1954,12 +645,14 @@ User::LeaveIfError(ioctlStatus.Int()); INFO_PRINTF1(_L("IOCTL completed")); - TBuf8<360> recvBuf(length); - // // Receiving a datagram that is 7bit with a concatenated length of > 160 characters // - sock.RecvFrom(recvBuf,recvWapAddr,0,recvStatus); + TRequestStatus recvStatus; + TWapAddr recvWapAddr; + TBuf8<360> recvBuf(length); + + iSocket.RecvFrom(recvBuf,recvWapAddr,0,recvStatus); User::WaitForRequest(recvStatus); User::LeaveIfError(recvStatus.Int()); INFO_PRINTF1(_L("Received the message...")); @@ -1968,40 +661,30 @@ // Confirm the receipt of the message to the client // INFO_PRINTF1(_L("Socket set option for indicating receipt of message")); - User::LeaveIfError(sock.SetOpt(KWapSmsOptionOKToDeleteMessage,KWapSmsOptionLevel, 0)); + User::LeaveIfError(iSocket.SetOpt(KWapSmsOptionOKToDeleteMessage,KWapSmsOptionLevel, 0)); - // - // Closing the socket - // - sock.Close(); - socketServer.Close(); - CleanupStack::PopAndDestroy(&sock); - CleanupStack::Pop(&socketServer); - + iSocket.Close(); return TestStepResult(); } - TInt CBackupRestoreStep::SendWapL() { //modified from test 10 INFO_PRINTF1(_L("SendWapL: send 7-Bit business card using IOCTL")); TInt ret = KErrNone; - TPtrC TestData1; + TPtrC16 TelNumber; TInt port=226; - if(!GetStringFromConfig(ConfigSection(),KTestData1, TestData1) || - !GetStringFromConfig(ConfigSection(),KSCNumber,TelNumber) || + if(!GetStringFromConfig(ConfigSection(),KSCNumber,TelNumber) || !GetIntFromConfig(ConfigSection(),KWapPort,port) ) { // Leave if there's any error. User::Leave(KErrNotFound); } - - + // // Setting the port number and service center number of the wap address // The service center number should be the same as the sim phone number used @@ -2015,8 +698,6 @@ TPtrC8 scAddr(scNumber); wapAddr.SetWapAddress(scAddr); - - // // Define and open the socket // @@ -2034,11 +715,6 @@ } CleanupClosePushL(sock); - // - // Waiting for the phone to be initialised - // - WaitForInitializeL(); - TRequestStatus status; // @@ -2050,12 +726,16 @@ // Bind // User::LeaveIfError(sock.Bind(wapAddr)); + + TTimeIntervalMicroSeconds32 InitPause=9000000; //Pause to Allow SMSStack to Complete its Async Init + User::After(InitPause); //call to the TSY and finish its StartUp. // // Send a calendar entry // + TPtrC testData = GetStringFromConfigL(KTestData1); TBuf8<200> data; - data.Copy(TestData1); + data.Copy(testData); sock.SendTo(data, wapAddr, 0, status); User::WaitForRequest(status); ret = status.Int(); @@ -2069,15 +749,7 @@ INFO_PRINTF2(_L("Message NOT sent (error %d)..."), ret); } - - // - // Closing the socket - // - sock.Close(); - CleanupStack::PopAndDestroy(&sock); - - return ret; } @@ -2132,35 +804,16 @@ TVerdict CBackupRestoreStep::doTestStepL() /** - * * Test step 16: * simulating backup and restore * @return - TVerdict code - * */ { - TInt testNumber =16; - RProperty testNumberProperty; - - User::LeaveIfError(testNumberProperty.Attach(KUidPSSimTsyCategory, KPSSimTsyTestNumber)); - CleanupClosePushL(testNumberProperty); - - TRequestStatus status; - testNumberProperty.Subscribe(status); - User::LeaveIfError(testNumberProperty.Set(KUidPSSimTsyCategory,KPSSimTsyTestNumber,testNumber)); - User::WaitForRequest(status); - User::LeaveIfError(status.Int()); - TInt testNumberCheck; - User::LeaveIfError(testNumberProperty.Get(testNumberCheck)); - if (testNumber != testNumberCheck) - User::Leave(KErrNotFound); - - // - // Connect to socket server - // - User::LeaveIfError(iSocketServer.Connect()); - - INFO_PRINTF1(_L("IOCTL Test step 16: send 7-Bit business card using IOCTL to test backup and restore")); + INFO_PRINTF1(_L("IOCTL Test step 16: send 7-Bit business card using IOCTL to test backup and restore")); + CSBEClient* secureBackupEngine = CSBEClient::NewL(); + CleanupStack::PushL(secureBackupEngine); + secureBackupEngine->SetBURModeL(TDriveList(_L8("C")), + EBURNormal, ENoBackup); INFO_PRINTF1(_L("Expecting SendWapL to succeed and the wap data file to be open")); TEST(SendWapL() == KErrNone); @@ -2169,7 +822,7 @@ // Notify the WAPPROT server that a backup is about to take place and // that the server should close the wapstor INFO_PRINTF1(_L("Simulating a backup notification")); - iSecureBackupEngine->SetBURModeL(TDriveList(_L8("C")), + secureBackupEngine->SetBURModeL(TDriveList(_L8("C")), EBURBackupFull, EBackupBase); INFO_PRINTF1(_L("Expecting SendWapL to fail and the wap data file to be closed")); @@ -2179,7 +832,7 @@ // Notify the WAPPROT server that a backup has completed // that the server should open the wapstor INFO_PRINTF1(_L("Simulating a backup complete notification")); - iSecureBackupEngine->SetBURModeL(TDriveList(_L8("C")), + secureBackupEngine->SetBURModeL(TDriveList(_L8("C")), EBURNormal, ENoBackup); INFO_PRINTF1(_L("Expecting SendWapL to succeed and the wap data file to be open")); @@ -2189,7 +842,7 @@ // Notify the WAPPROT server that a restore is about to take place and // that the server should close the wapstor INFO_PRINTF1(_L("Simulating a restore notification")); - iSecureBackupEngine->SetBURModeL(TDriveList(_L8("C")), + secureBackupEngine->SetBURModeL(TDriveList(_L8("C")), EBURRestorePartial, EBackupIncrement); INFO_PRINTF1(_L("Expecting SendWapL to fail and the wap data file to be closed")); @@ -2199,17 +852,14 @@ // Notify the WAPPROT server that a restore has completed // that the server should open the wapstor INFO_PRINTF1(_L("Simulating a restore complete notification")); - iSecureBackupEngine->SetBURModeL(TDriveList(_L8("C")), + secureBackupEngine->SetBURModeL(TDriveList(_L8("C")), EBURNormal, ENoBackup); INFO_PRINTF1(_L("Expecting SendWapL to succeed and the wap data file to be open")); TEST(SendWapL() == KErrNone); TEST(IsWapFileOpenL() != EFalse); - - INFO_PRINTF1(_L("Closing SocketServer ...")); - iSocketServer.Close(); - CleanupStack::PopAndDestroy(&testNumberProperty); + CleanupStack::PopAndDestroy(secureBackupEngine); // testNumberProperty, secureBackupEngine return TestStepResult(); } @@ -2218,28 +868,581 @@ * Test step seventeen: * Sends a 7_Bit business card. Using IOCTL query SMS transport parameters * @return - TVerdict code - * */ { INFO_PRINTF1(_L("IOCTL Test step 17: send 7-Bit v-card and query SMS transport parameters")); + // Configure and bind to a socket + SetupWapSocketL(); - TInt result = KErrNone; - TPtrC TestData1; - TPtrC16 TelNumber; - TInt port=226; - TInt testNumber=1; + // Send a business card + TPtrC testData = GetStringFromConfigL(KTestData1); + SendWapMessage(testData); + + // Create a descriptor with correct size for obtaining the message parameter + HBufC8* parameterStore = HBufC8::NewLC(GetMessageParameterLengthL(iSocket)); + TPtr8 parameterStorePtr = parameterStore->Des(); + + // Get the message parameter value + GetMessageParameterL(iSocket, parameterStorePtr); + + // Internalise the message parameter and check + TPtrC8 scAddr = iWapAddr.WapAddress(); + + InternaliseSmsDataAndCheckL(parameterStorePtr, scAddr); + + iSocket.Close(); + CleanupStack::PopAndDestroy(parameterStore); + return TestStepResult(); + } + +TVerdict CIoctlStep_18::doTestStepL() +/** + * Test step eighteen: + * Sends a 7-Bit calendar entry (two segments). Using IOCTL query SMS transport parameters. + * @return - TVerdict code + */ + { + INFO_PRINTF1(_L("IOCTL Test step 18: Sends a 7-Bit calendar entry (two segments). Using IOCTL query SMS transport parameters.")); + // Configure and bind to a socket + SetupWapSocketL(); + + // Send a calendar entry + TPtrC testData = GetStringFromConfigL(KTestData1); + SendWapMessage(testData); + + // Create a descriptor with correct size for obtaining the message parameter + HBufC8* parameterStore = HBufC8::NewLC(GetMessageParameterLengthL(iSocket)); + TPtr8 parameterStorePtr = parameterStore->Des(); + + // Get the message parameter value + GetMessageParameterL(iSocket, parameterStorePtr); + + // Internalise the message parameter and check + TPtrC8 scAddr = iWapAddr.WapAddress(); + + InternaliseSmsDataAndCheckL(parameterStorePtr, scAddr); + + iSocket.Close(); + CleanupStack::PopAndDestroy(parameterStore); + return TestStepResult(); + } + +TVerdict CIoctlStep_19::doTestStepL() +/** + * Test step 19: + * send/receive one 7-Bit two segments message and one 7-Bit one segment message + * @return - TVerdict code + */ + { + INFO_PRINTF1(_L("IOCTL Test step 19: send/receive two 7-Bit messages")); + // Configure and bind to a socket + SetupWapSocketL(); + + // + // Issue Ioctl for getting the length of the message + // + TRequestStatus ioctlStatus; + TPckgBuf length; + + INFO_PRINTF1(_L("Issuing IOCTL for getting the length of the first message...")); + iSocket.Ioctl(KSOGetLength, ioctlStatus, &length, KSolWapProv); + + TPtrC testData1 = GetStringFromConfigL(KTestData1); + TPtrC testData2 = GetStringFromConfigL(KTestData2); + + // Send a calendar entry + SendWapMessage(testData2); + + // Send a business card + SendWapMessage(testData1); + + // Get the size of the first incoming message + User::WaitForRequest(ioctlStatus); + TESTCHECKL(ioctlStatus.Int(), KErrNone, "Getting the size of the first incoming message"); + + // Get the first message parameter value + HBufC8* parameterStore = HBufC8::NewLC(GetMessageParameterLengthL(iSocket)); + TPtr8 parameterStorePtr = parameterStore->Des(); + + INFO_PRINTF1(_L("Getting parameter value of first message...")); + GetMessageParameterL(iSocket, parameterStorePtr); + + // Internalise the first message parameter and check + TPtrC8 scAddr = iWapAddr.WapAddress(); + + InternaliseSmsDataAndCheckL(parameterStorePtr, scAddr); + + CleanupStack::PopAndDestroy(parameterStore); + + // Receiving a datagram + TRequestStatus recvStatus; + TWapAddr recvWapAddr; + TBuf8<256> recvBuf2(length); + + iSocket.RecvFrom(recvBuf2,recvWapAddr,0,recvStatus); + User::WaitForRequest(recvStatus); + TESTL(recvStatus.Int()==KErrNone); + INFO_PRINTF1(_L("Received the first message...")); + + // Confirm the receipt of the message to the client + INFO_PRINTF1(_L("Socket set option for indicating receipt of message")); + TESTL(iSocket.SetOpt(KWapSmsOptionOKToDeleteMessage,KWapSmsOptionLevel, 0)==KErrNone); + + INFO_PRINTF1(_L("Issuing IOCTL for getting the length of the second message...")); + iSocket.Ioctl(KSOGetLength, ioctlStatus, &length, KSolWapProv); + + // Get the size of the SECOND incoming message + User::WaitForRequest(ioctlStatus); + TESTCHECKL(ioctlStatus.Int(), KErrNone, "Getting the size of the first incoming message"); + TESTCHECK(length(), testData1.Length(), "Check if reported length is correct"); + + // Create a descriptor with correct size for obtaining the second message parameter + HBufC8* parameterStore2 = HBufC8::NewLC(GetMessageParameterLengthL(iSocket)); + TPtr8 parameterStorePtr2 = parameterStore2->Des(); + + // Get the second message parameter value + INFO_PRINTF1(_L("Getting parameter value of second message...")); + GetMessageParameterL(iSocket, parameterStorePtr2); + + // Internalise the second message parameter and check + InternaliseSmsDataAndCheckL(parameterStorePtr2, scAddr); + + CleanupStack::PopAndDestroy(parameterStore2); + + // Receiving the second message + ReceiveWapMessageFromSocket(length(), testData1); + + iSocket.Close(); + return TestStepResult(); + } + +TVerdict CIoctlStep_20::doTestStepL() +/** + * Test step 20: + * simulating client crash conditions with 7bit message + * @return - TVerdict code + */ + { + INFO_PRINTF1(_L("IOCTL Test step 20: client crash condition 7-Bit message ")); + // Configure and bind to a socket + SetupWapSocketL(); + + // Issue Ioctl for getting the length of the message + TRequestStatus ioctlStatus; + TPckgBuf length; + + INFO_PRINTF1(_L("Issuing IOCTL for getting the length of the message...")); + iSocket.Ioctl(KSOGetLength, ioctlStatus, &length, KSolWapProv); + + // Send a business card + TPtrC testData = GetStringFromConfigL(KTestData1); + SendWapMessage(testData); + + // Get the size of the incoming message + User::WaitForRequest(ioctlStatus); + TESTCHECKL(ioctlStatus.Int(), KErrNone, "Getting the size of the first incoming message"); + TESTCHECK(length(), testData.Length(), "Check if reported length is correct"); + + // Create a descriptor with correct size for obtaining the message parameter + HBufC8* parameterStore = HBufC8::NewLC(GetMessageParameterLengthL(iSocket)); + TPtr8 parameterStorePtr = parameterStore->Des(); + + // Get the message parameter value + GetMessageParameterL(iSocket, parameterStorePtr); + + // Internalise the message parameter and check + TPtrC8 scAddr = iWapAddr.WapAddress(); + + InternaliseSmsDataAndCheckL(parameterStorePtr, scAddr); + + CleanupStack::PopAndDestroy(parameterStore); + + // Receive a message + TRequestStatus recvStatus; + TWapAddr recvWapAddr; + HBufC8* recvBuf = HBufC8::NewLC(length()); + TPtr8 recvPtr = recvBuf->Des(); + + iSocket.RecvFrom(recvPtr, recvWapAddr, 0, recvStatus); + User::WaitForRequest(recvStatus); + TESTCHECKL(recvStatus.Int(), KErrNone, "Receiving a message"); + + // Simulate a crash by closing and reopening the socket + iSocket.Close(); + INFO_PRINTF1(_L("Socket was closed...")); + + OpenSocketL(iSocketServer, iSocket); + User::LeaveIfError(iSocket.SetOpt(KWapSmsOptionNewStyleClient,KWapSmsOptionLevel, 0)); + INFO_PRINTF1(_L("Socket set option for indicating new client")); + User::LeaveIfError(iSocket.Bind(iWapAddr)); + INFO_PRINTF1(_L("Socket was opened...")); + + // Issue another get length of datagram as if not aware of the previous message + INFO_PRINTF1(_L("Issuing IOCTL for getting the length of the message...")); + iSocket.Ioctl(KSOGetLength, ioctlStatus, &length, KSolWapProv); + + // Get the size of the incoming message + User::WaitForRequest(ioctlStatus); + TESTCHECKL(ioctlStatus.Int(), KErrNone, "Getting the size of the first incoming message"); + TESTCHECK(length(), testData.Length(), "Check if reported length is correct"); + + // Recreate a descriptor with correct size for obtaining the message parameter + HBufC8* parameterStore2 = HBufC8::NewLC(GetMessageParameterLengthL(iSocket)); + TPtr8 parameterStorePtr2 = parameterStore2->Des(); + + // Get the message parameter value + GetMessageParameterL(iSocket, parameterStorePtr2); + + // Internalise the message parameter and check + InternaliseSmsDataAndCheckL(parameterStorePtr2, scAddr); + + CleanupStack::PopAndDestroy(parameterStore2); + + // New message retrieved from SAR store + ReceiveWapMessageFromSocket(length(), testData); + + iSocket.Close(); + CleanupStack::PopAndDestroy(recvBuf); + return TestStepResult(); + } + +TVerdict CIoctlStep_21::doTestStepL() +/** + * Test step 21: + * simulating client crash conditions with 8bit push message + * @return - TVerdict code + */ + { + INFO_PRINTF1(_L("IOCTL Test step 21: client crash condition with 8Bit push message")); + // Configure and bind to a socket + SetupWapSocketL(); + + // Issue Ioctl for getting the length of the message + TRequestStatus ioctlStatus; + TPckgBuf length; + + INFO_PRINTF1(_L("Issuing IOCTL for getting the length of the message...")); + iSocket.Ioctl(KSOGetLength, ioctlStatus, &length, KSolWapProv); + + // Get the size of the incoming message + User::WaitForRequest(ioctlStatus); + TESTCHECKL(ioctlStatus.Int(), KErrNone, "Getting the size of the first incoming message"); + + // Create a descriptor with correct size for obtaining the message parameter + HBufC8* parameterStore = HBufC8::NewLC(GetMessageParameterLengthL(iSocket)); + TPtr8 parameterStorePtr = parameterStore->Des(); + + // Get the message parameter value + GetMessageParameterL(iSocket, parameterStorePtr); + + // Internalise the message parameter and check + TPtrC8 scAddr = iWapAddr.WapAddress(); + + InternaliseSmsDataAndCheckL(parameterStorePtr, scAddr); + + CleanupStack::PopAndDestroy(parameterStore); + + // Receiving a datagram + TRequestStatus recvStatus; + TWapAddr recvWapAddr; + TBuf8<256> recvBuf(length); + + iSocket.RecvFrom(recvBuf, recvWapAddr, 0, recvStatus); + User::WaitForRequest(recvStatus); + TESTL(recvStatus.Int()==KErrNone); + INFO_PRINTF1(_L("Received the message...")); + + // Simulate a crash by closing and reopening the socket + iSocket.Close(); + INFO_PRINTF1(_L("Socket was closed...")); - if(!GetStringFromConfig(ConfigSection(),KTestData1, TestData1) || - !GetStringFromConfig(ConfigSection(),KSCNumber,TelNumber) || - !GetIntFromConfig(ConfigSection(),KWapPort,port)) - { - result = KErrNotFound; - } + OpenSocketL(iSocketServer, iSocket); + User::LeaveIfError(iSocket.SetOpt(KWapSmsOptionNewStyleClient,KWapSmsOptionLevel, 0)); + INFO_PRINTF1(_L("Socket set option for indicating new client")); + User::LeaveIfError(iSocket.Bind(iWapAddr)); + INFO_PRINTF1(_L("Socket was opened...")); + + // Issue another get length of datagram as if not aware of the previous message + INFO_PRINTF1(_L("Issuing IOCTL for getting the length of the message...")); + iSocket.Ioctl(KSOGetLength, ioctlStatus, &length, KSolWapProv); + + // Get the size of the incoming message + User::WaitForRequest(ioctlStatus); + TESTCHECKL(ioctlStatus.Int(), KErrNone, "Getting the size of the first incoming message"); + + // Recreate a descriptor with correct size for obtaining the message parameter + HBufC8* parameterStore2 = HBufC8::NewLC(GetMessageParameterLengthL(iSocket)); + TPtr8 parameterStorePtr2 = parameterStore2->Des(); + + // Get the message parameter value + GetMessageParameterL(iSocket, parameterStorePtr2); + + // Internalise the message parameter and check + InternaliseSmsDataAndCheckL(parameterStorePtr2, scAddr); + + CleanupStack::PopAndDestroy(parameterStore2); + + // New message retrieved from SAR store + TBuf8<256> newRecvBuf(length); + iSocket.RecvFrom(newRecvBuf,recvWapAddr,0,recvStatus); + User::WaitForRequest(recvStatus); + TESTL(recvStatus.Int()==KErrNone); + INFO_PRINTF1(_L("Received the message...")); + + // Confirm the receipt of the message to the client + INFO_PRINTF1(_L("Socket set option for indicating receipt of message")); + TESTL(iSocket.SetOpt(KWapSmsOptionOKToDeleteMessage,KWapSmsOptionLevel, 0)==KErrNone); + + // Compare the received message with the previous one + // They should be identical + TESTL(newRecvBuf.Compare(recvBuf)==0); + + iSocket.Close(); + return TestStepResult(); + } + +TVerdict CIoctlStep_22::doTestStepL() +/** + * Test step 22: + * Push Message (8-Bit). Using IOCTL query SMS transport parameters + * @return - TVerdict code + */ + { + INFO_PRINTF1(_L("IOCTL Test step 22: Push Message (8-Bit) and query SMS transport parameters")); + // Configure and bind to a socket + SetupWapSocketL(); + + // Create a descriptor with correct size for obtaining the message parameter + HBufC8* parameterStore = HBufC8::NewLC(GetMessageParameterLengthL(iSocket)); + TPtr8 parameterStorePtr = parameterStore->Des(); + + // Get the message parameter value + GetMessageParameterL(iSocket, parameterStorePtr); + + // Internalise the message parameter and check + TPtrC8 scAddr = iWapAddr.WapAddress(); + + InternaliseSmsDataAndCheckL(parameterStorePtr, scAddr); + + CleanupStack::PopAndDestroy(parameterStore); + + iSocket.Close(); + return TestStepResult(); + } + +TVerdict CIoctlStep_23::doTestStepL() +/** + * Test step 23: + * Two Push Messages (8-Bit). Using IOCTL query SMS transport parameters + * @return - TVerdict code + */ + { + INFO_PRINTF1(_L("IOCTL Test step 23: Push two push message(8-Bit) query transport parameters")); + // Configure and bind to a socket + SetupWapSocketL(); + + // Issue Ioctl for getting the length of the message + TRequestStatus ioctlStatus; + TPckgBuf length; + + INFO_PRINTF1(_L("Issuing IOCTL for getting the length of the message...")); + iSocket.Ioctl(KSOGetLength, ioctlStatus, &length, KSolWapProv); + + // Get the size of the incoming message + User::WaitForRequest(ioctlStatus); + TESTCHECKL(ioctlStatus.Int(), KErrNone, "Getting the size of the first incoming message"); + + INFO_PRINTF1(_L("Getting parameter value of first message...")); + + // Create a descriptor with correct size for obtaining the first message parameter + HBufC8* parameterStore = HBufC8::NewLC(GetMessageParameterLengthL(iSocket)); + TPtr8 parameterStorePtr = parameterStore->Des(); + + // Get the first message parameter value + GetMessageParameterL(iSocket, parameterStorePtr); + + // Internalise the first message parameter and check + TPtrC8 scAddr = iWapAddr.WapAddress(); + + InternaliseSmsDataAndCheckL(parameterStorePtr, scAddr); + + CleanupStack::PopAndDestroy(parameterStore); + + // Receiving push datagram + TRequestStatus recvStatus; + TWapAddr recvWapAddr; + TBuf8<256> recvBuf1(length); + + iSocket.RecvFrom(recvBuf1,recvWapAddr,0,recvStatus); + User::WaitForRequest(recvStatus); + TESTL(recvStatus.Int()==KErrNone); + INFO_PRINTF1(_L("Received the push message...")); + + // Confirm the receipt of the message to the client + INFO_PRINTF1(_L("Socket set option for indicating receipt of message")); + TESTL(iSocket.SetOpt(KWapSmsOptionOKToDeleteMessage,KWapSmsOptionLevel, 0)==KErrNone); + + INFO_PRINTF1(_L("Issuing IOCTL for getting the length of the message...")); + iSocket.Ioctl(KSOGetLength, ioctlStatus, &length, KSolWapProv); + + // Get the size of the second incoming push message + User::WaitForRequest(ioctlStatus); + TESTCHECKL(ioctlStatus.Int(), KErrNone, "Getting the size of the first incoming message"); + + INFO_PRINTF1(_L("Getting parameter value of second message...")); + + // Create a descriptor with correct size for obtaining the second message parameter + HBufC8* parameterStore2 = HBufC8::NewLC(GetMessageParameterLengthL(iSocket)); + TPtr8 parameterStorePtr2 = parameterStore2->Des(); + + // Get the second message parameter value + GetMessageParameterL(iSocket, parameterStorePtr2); - TESTL(result==KErrNone); + // Internalise the second message parameter and check + InternaliseSmsDataAndCheckL(parameterStorePtr2, scAddr); + + CleanupStack::PopAndDestroy(parameterStore2); + + // Receiving push datagram + TBuf8<256> recvBuf2(length); + + iSocket.RecvFrom(recvBuf2,recvWapAddr,0,recvStatus); + User::WaitForRequest(recvStatus); + TESTL(recvStatus.Int()==KErrNone); + INFO_PRINTF1(_L("Received the second push message...")); + + // Compare the received message with the previous one + // They should be identical + TESTL(recvBuf2.Compare(recvBuf1)==0); + + // Confirm the receipt of the message to the client + INFO_PRINTF1(_L("Socket set option for indicating receipt of message")); + TESTL(iSocket.SetOpt(KWapSmsOptionOKToDeleteMessage,KWapSmsOptionLevel, 0)==KErrNone); + + iSocket.Close(); + return TestStepResult(); + } + +TVerdict CIoctlStep_24::doTestStepL() +/** + * Test step 24: + * Test Cancel IOCTL + * @return - TVerdict code + */ + { + INFO_PRINTF1(_L("IOCTL Test step 24: Testing Cancel IOCTL")); + // Configure and bind to a socket + SetupWapSocketL(); + + TRequestStatus ioctlStatus; + TBuf8<200> smsdata; + TPckgBuf paramLength; + + // Issue Ioctl for getting the length of the message parameter + INFO_PRINTF1(_L("Issue of IOCTL for KSOGetMessageParametersLength")); + iSocket.Ioctl(KSOGetMessageParametersLength, ioctlStatus, &smsdata, KSolWapProv); - User::LeaveIfError(RProperty::Set(KUidSystemCategory, KUidPhonePwr.iUid, ESAPhoneOn)); - User::LeaveIfError(RProperty::Set(KUidPSSimTsyCategory, KPSSimTsyTestNumber, testNumber)); + // Issue Cancel Ioctl + INFO_PRINTF1(_L("Issue of cancel IOCTL for KSOGetMessageParametersLength")); + iSocket.CancelIoctl(); + TESTCHECKL(ioctlStatus.Int(), KErrCancel, "Checking if the outstanding IOCTL has been cancelled"); + + // Issue Ioctl for getting the message parameter + INFO_PRINTF1(_L("Issue of IOCTL for KSOGetMessageParameters")); + iSocket.Ioctl(KSOGetMessageParameters, ioctlStatus, &smsdata, KSolWapProv); + + // Issue Cancel Ioctl + INFO_PRINTF1(_L("Issue of cancel IOCTL for KSOGetMessageParameters")); + iSocket.CancelIoctl(); + TESTCHECKL(ioctlStatus.Int(), KErrCancel, "Checking if the outstanding IOCTL has been cancelled"); + + iSocket.Close(); + return TestStepResult(); + } + +TVerdict CIoctlStep_25::doTestStepL() +/** + * Test step 25: + * Test issue IOCTL without SetOption NewStyleClient + * @return - TVerdict code + */ + { + INFO_PRINTF1(_L("IOCTL Test step 25: Test issue IOCTL without SetOption NewStyleClient")); + // Configure and bind to a socket + SetupWapSocketL(iSocket, iWapAddr, KWapPort, EFalse); + + // Issue Ioctl for getting the length of the message parameter (should fail) + TRequestStatus ioctlStatus; + TPckgBuf paramLength; + + INFO_PRINTF1(_L("Issue of IOCTL for KSOGetMessageParametersLength")); + iSocket.Ioctl(KSOGetMessageParametersLength, ioctlStatus, ¶mLength, KSolWapProv); + TESTL(ioctlStatus.Int()!=KErrNone); + + // Issue Ioctl for getting the message parameter (should fail) + INFO_PRINTF1(_L("Issue of IOCTL for KSOGetMessageParameters")); + TBuf8<200> smsdata; + + iSocket.Ioctl(KSOGetMessageParameters, ioctlStatus, &smsdata, KSolWapProv); + User::WaitForRequest(ioctlStatus); + TESTL(ioctlStatus.Int()!=KErrNone); + + iSocket.Close(); + return TestStepResult(); + } + +TVerdict CIoctlStep_26::doTestStepL() +/** + * Test step 26: + * Sends a 8-Bit calendar entry using IOCTL(two segments) + * @return - TVerdict code + */ + { + INFO_PRINTF1(_L("IOCTL Test step 26: send a 8-Bit VCal (two segments)")); + // Configure and bind to a socket + SetupWapSocketL(); + + TESTL(iSocket.SetOpt(KWapSmsOptionNameDCS,KWapSmsOptionLevel,EWapSms8BitDCS)==KErrNone); + + // Send a calendar entry + TPtrC testData = GetStringFromConfigL(KTestData1); + SendWapMessage(testData); + + // Create a descriptor with correct size for obtaining the message parameter + HBufC8* parameterStore = HBufC8::NewLC(GetMessageParameterLengthL(iSocket)); + TPtr8 parameterStorePtr = parameterStore->Des(); + + // Get the message parameter value + GetMessageParameterL(iSocket, parameterStorePtr); + + // Internalise the message parameter and check + TPtrC8 scAddr = iWapAddr.WapAddress(); + + InternaliseSmsDataAndCheckL(parameterStorePtr, scAddr); + + CleanupStack::PopAndDestroy(parameterStore); + + iSocket.Close(); + return TestStepResult(); + } + +struct SOneOpTestThreadInfo + { + CIoctlStep_27* iTest; + TPtrC* iTestData1; + TPtrC16* iTelNumber; + TInt iPort; + }; + +TInt CIoctlStep_27::DoPanicTestL(TPtrC* aTestData1, TPtrC16* aTelNumber, TInt aPort) + { + TInt testNumber = 1; + TInt port = aPort; + TPtrC TestData1 = *aTestData1; + TPtrC16 TelNumber = *aTelNumber; + + User::LeaveIfError(RProperty::Set(KUidSystemCategory, KUidPhonePwr.iUid, ESAPhoneOn)); + User::LeaveIfError(RProperty::Set(KUidPSSimTsyCategory, KPSSimTsyTestNumber, testNumber)); // // Setting the port number and service center number of the wap address @@ -2266,1437 +1469,16 @@ // Define and open the socket // RSocket sock; - TESTL(sock.Open(socketServer,KWAPSMSAddrFamily,KSockDatagram,KWAPSMSDatagramProtocol)==KErrNone); - CleanupClosePushL(sock); - - // - // Waiting for the phone to be initialised - // - WaitForInitializeL(); - - // - // Indicating to the protocol that it's a new client - // - INFO_PRINTF1(_L("Socket set option for indicating new client")); - TESTL(sock.SetOpt(KWapSmsOptionNewStyleClient,KWapSmsOptionLevel, 0)==KErrNone); - - // - // Bind - // - TESTL(sock.Bind(wapAddr)==KErrNone); - - // - // Send a business card - // - TRequestStatus status; - TBuf8<200> data; - data.Copy(TestData1); - sock.SendTo(data, wapAddr, 0, status); - User::WaitForRequest(status); - TESTL(status.Int()==KErrNone); - INFO_PRINTF1(_L("Message sent...")); - - // - // Create a descriptor with correct size for obtaining the message parameter - // - HBufC8* parameterStore = HBufC8::NewLC(GetMessageParameterLengthL(sock)); - TPtr8 parameterStorePtr = parameterStore->Des(); - - // - // Get the message parameter value - // - GetMessageParameterL(sock, parameterStorePtr); - - // - // Internalise the message parameter and check - // - InternaliseSmsDataAndCheckL(parameterStorePtr, scAddr); - - CleanupStack::PopAndDestroy(parameterStore); - - // - // Closing the socket - // - CleanupStack::PopAndDestroy(&sock); - CleanupStack::PopAndDestroy(&socketServer); - - return TestStepResult(); - } - -TVerdict CIoctlStep_18::doTestStepL() -/** - * Test step eighteen: - * Sends a 7-Bit calendar entry (two segments). Using IOCTL query SMS transport parameters. - * @return - TVerdict code - * - */ - { - INFO_PRINTF1(_L("IOCTL Test step 18: Sends a 7-Bit calendar entry (two segments). Using IOCTL query SMS transport parameters.")); - - TInt result = KErrNone; - TPtrC TestData; - TPtrC16 TelNumber; - TInt port=226; - TInt testNumber = 2; - - if(!GetStringFromConfig(ConfigSection(),KTestData1, TestData) || - !GetStringFromConfig(ConfigSection(),KSCNumber,TelNumber) || - !GetIntFromConfig(ConfigSection(),KWapPort,port)) - { - result = KErrNotFound; - } - - TESTL(result==KErrNone); - - User::LeaveIfError(RProperty::Set(KUidSystemCategory, KUidPhonePwr.iUid, ESAPhoneOn)); - User::LeaveIfError(RProperty::Set(KUidPSSimTsyCategory, KPSSimTsyTestNumber, testNumber)); - - // - // Setting the port number and service center number of the wap address - // The service center number should be the same as the sim phone number used - // for test (not required for SIM Tsy) - // - TWapAddr wapAddr; - TWapAddr recvWapAddr; - wapAddr.SetWapPort(TWapPortNumber(port)); - TBuf8<100> scNumber; - scNumber.Copy(TelNumber); - TPtrC8 scAddr(scNumber); - wapAddr.SetWapAddress(scAddr); - - // - // Connect to socket server - // - RSocketServ socketServer; - User::LeaveIfError(socketServer.Connect()); - CleanupClosePushL(socketServer); - - // - // Define and open the socket - // - RSocket sock; - TESTL(sock.Open(socketServer,KWAPSMSAddrFamily,KSockDatagram,KWAPSMSDatagramProtocol)==KErrNone); - CleanupClosePushL(sock); - - // - // Waiting for the phone to be initialised - // - WaitForInitializeL(); - - // - // Indicating to the protocol that it's a new client - // - INFO_PRINTF1(_L("Socket set option for indicating new client")); - TESTL(sock.SetOpt(KWapSmsOptionNewStyleClient,KWapSmsOptionLevel, 0)==KErrNone); - // - // Bind - // - TESTL(sock.Bind(wapAddr)==KErrNone); - - // - // Send a calendar entry - // - TRequestStatus status; - TBuf8<300> data; - data.Copy(TestData); - sock.SendTo(data, wapAddr, 0, status); - User::WaitForRequest(status); - TESTL(status.Int()==KErrNone); - INFO_PRINTF1(_L("Message sent...")); - - // - // Create a descriptor with correct size for obtaining the message parameter - // - HBufC8* parameterStore = HBufC8::NewLC(GetMessageParameterLengthL(sock)); - TPtr8 parameterStorePtr = parameterStore->Des(); - - // - // Get the message parameter value - // - GetMessageParameterL(sock, parameterStorePtr); - - // - // Internalise the message parameter and check - // - InternaliseSmsDataAndCheckL(parameterStorePtr, scAddr); - - CleanupStack::PopAndDestroy(parameterStore); - - // - // Closing the socket - - CleanupStack::PopAndDestroy(&sock); - CleanupStack::PopAndDestroy(&socketServer); - - return TestStepResult(); - } - -TVerdict CIoctlStep_19::doTestStepL() -/** - * Test step 19: - * send/receive one 7-Bit two segments message and one 7-Bit one segment message - * @return - TVerdict code - * - */ - { - INFO_PRINTF1(_L("IOCTL Test step 19: send/receive two 7-Bit messages")); - - TInt result = KErrNone; - TPtrC TestData1; - TPtrC TestData2; - TPtrC16 TelNumber; - TInt port=226; - TInt testNumber = 3; - - if(!GetStringFromConfig(ConfigSection(),KTestData1, TestData1) || - !GetStringFromConfig(ConfigSection(),KTestData2, TestData2) || - !GetStringFromConfig(ConfigSection(),KSCNumber,TelNumber) || - !GetIntFromConfig(ConfigSection(),KWapPort,port)) - { - result = KErrNotFound; - } - - TESTL(result==KErrNone); - - User::LeaveIfError(RProperty::Set(KUidSystemCategory, KUidPhonePwr.iUid, ESAPhoneOn)); - User::LeaveIfError(RProperty::Set(KUidPSSimTsyCategory, KPSSimTsyTestNumber, testNumber)); - - // - // Setting the port number and service center number of the wap address - // The service center number should be the same as the sim phone number used - // for test - // - TWapAddr wapAddr; - TWapAddr recvWapAddr; - wapAddr.SetWapPort(TWapPortNumber(port)); - TBuf8<100> scNumber; - scNumber.Copy(TelNumber); - TPtrC8 scAddr(scNumber); - wapAddr.SetWapAddress(scAddr); - - // - // Connect to socket server - // - RSocketServ socketServer; - User::LeaveIfError(socketServer.Connect()); - CleanupClosePushL(socketServer); - - // - // Define and open the socket - // - RSocket sock; - TESTL(sock.Open(socketServer,KWAPSMSAddrFamily,KSockDatagram,KWAPSMSDatagramProtocol)==KErrNone); - CleanupClosePushL(sock); - - // - // Waiting for the phone to be initialised - // - WaitForInitializeL(); - - TRequestStatus ioctlStatus; - TRequestStatus recvStatus; - TPckgBuf length; - - // - // Indicating to the protocol that it's a new client - // - INFO_PRINTF1(_L("Socket set option for indicating new client")); - TESTL(sock.SetOpt(KWapSmsOptionNewStyleClient,KWapSmsOptionLevel, 0)==KErrNone); - // - // Bind - // - TESTL(sock.Bind(wapAddr)==KErrNone); - - // - // Issue Ioctl for getting the length of the message - // - INFO_PRINTF1(_L("Issue of first IOCTL for GetLength")); - sock.Ioctl(KSOGetLength, ioctlStatus, &length, KSolWapProv); - - // - // Send a calendar entry - // - TRequestStatus status; - - TBuf8<300> data2; - data2.Copy(TestData2); - sock.SendTo(data2, wapAddr, 0, status); - User::WaitForRequest(status); - TESTL(status.Int()==KErrNone); - INFO_PRINTF1(_L("First message sent...")); - // - // Send a business card - // - TBuf8<200> data1; - data1.Copy(TestData1); - sock.SendTo(data1, wapAddr, 0, status); - User::WaitForRequest(status); - TESTL(status.Int()==KErrNone); - INFO_PRINTF1(_L("Second message sent...")); - // - // Get the size of the first incoming message - // - User::WaitForRequest(ioctlStatus); - TESTL(ioctlStatus.Int()==KErrNone); - INFO_PRINTF1(_L("IOCTL for GetLength completed...")); - TBuf8<256> recvBuf2(length); - - INFO_PRINTF1(_L("Getting parameter value of first message...")); - - // - // Create a descriptor with correct size for obtaining the first message parameter - // - HBufC8* parameterStore = HBufC8::NewLC(GetMessageParameterLengthL(sock)); - TPtr8 parameterStorePtr = parameterStore->Des(); - - // - // Get the first message parameter value - // - GetMessageParameterL(sock, parameterStorePtr); - - // - // Internalise the first message parameter and check - // - InternaliseSmsDataAndCheckL(parameterStorePtr, scAddr); - - CleanupStack::PopAndDestroy(parameterStore); - - // - // Receiving a datagram - // - sock.RecvFrom(recvBuf2,recvWapAddr,0,recvStatus); - User::WaitForRequest(recvStatus); - TESTL(recvStatus.Int()==KErrNone); - INFO_PRINTF1(_L("Received the first message...")); - - // - // Confirm the receipt of the message to the client - // - INFO_PRINTF1(_L("Socket set option for indicating receipt of message")); - TESTL(sock.SetOpt(KWapSmsOptionOKToDeleteMessage,KWapSmsOptionLevel, 0)==KErrNone); - - // - // Issue Ioctl for getting the length of the second message - // - sock.Ioctl(KSOGetLength, ioctlStatus, &length, KSolWapProv); - INFO_PRINTF1(_L("Issue of the 2nd IOCTL for GetLength")); - - // - // Get the size of the SECOND incoming message - // - User::WaitForRequest(ioctlStatus); - TESTL(ioctlStatus.Int()==KErrNone); - INFO_PRINTF1(_L("IOCTL completed")); - - // - // Check if reported length is correct - // - TBuf8<256> recvBuf1(length); - TESTL(length()==data1.Length()); - - INFO_PRINTF1(_L("Getting parameter value of second message...")); - - // - // Create a descriptor with correct size for obtaining the second message parameter - // - HBufC8* parameterStore2 = HBufC8::NewLC(GetMessageParameterLengthL(sock)); - TPtr8 parameterStorePtr2 = parameterStore2->Des(); - - // - // Get the second message parameter value - // - GetMessageParameterL(sock, parameterStorePtr2); - - // - // Internalise the second message parameter and check - // - InternaliseSmsDataAndCheckL(parameterStorePtr2, scAddr); - - CleanupStack::PopAndDestroy(parameterStore2); - - // - // Receiving the second message - // - sock.RecvFrom(recvBuf1,recvWapAddr,0,recvStatus); - User::WaitForRequest(recvStatus); - TESTL(recvStatus.Int()==KErrNone); - INFO_PRINTF1(_L("Receievd the second datagram")); - TEST(recvBuf1.Compare(data1) == 0); - - // - // Confirm the receipt of the second message to the client - // - INFO_PRINTF1(_L("Socket set option for indicating receipt of the second message")); - TESTL(sock.SetOpt(KWapSmsOptionOKToDeleteMessage,KWapSmsOptionLevel, 0)==KErrNone); - - // - // Closing the socket - // - CleanupStack::PopAndDestroy(&sock); - CleanupStack::PopAndDestroy(&socketServer); - - return TestStepResult(); - } - -TVerdict CIoctlStep_20::doTestStepL() -/** - * - * Test step 20: - * simulating client crash conditions with 7bit message - * @return - TVerdict code - * - */ - { - INFO_PRINTF1(_L("IOCTL Test step 20: client crash condition 7-Bit message ")); - - TInt result = KErrNone; - TPtrC TestData; - TPtrC16 TelNumber; - TInt port=226; - TInt testNumber =4; - - if(!GetStringFromConfig(ConfigSection(),KTestData1, TestData) || - !GetStringFromConfig(ConfigSection(),KSCNumber,TelNumber) || - !GetIntFromConfig(ConfigSection(),KWapPort,port)) - { - result=KErrNotFound; - } - - TESTL(result==KErrNone); - - User::LeaveIfError(RProperty::Set(KUidSystemCategory, KUidPhonePwr.iUid, ESAPhoneOn)); - User::LeaveIfError(RProperty::Set(KUidPSSimTsyCategory, KPSSimTsyTestNumber, testNumber)); - - // - // Setting the port number and service center number of the wap address - // The service center number should be the same as the sim phone number used - // for test - // - TWapAddr wapAddr; - TWapAddr recvWapAddr; - wapAddr.SetWapPort(TWapPortNumber(port)); - TBuf8<100> scNumber; - scNumber.Copy(TelNumber); - TPtrC8 scAddr(scNumber); - wapAddr.SetWapAddress(scAddr); - - // - // Connect to socket server - // - RSocketServ socketServer; - User::LeaveIfError(socketServer.Connect()); - CleanupClosePushL(socketServer); - - // - // Define and open the socket - // - RSocket sock; - TESTL(sock.Open(socketServer,KWAPSMSAddrFamily,KSockDatagram,KWAPSMSDatagramProtocol)==KErrNone); - CleanupClosePushL(sock); - - // - // Waiting for the phone to be initialised - // - WaitForInitializeL(); - - TRequestStatus ioctlStatus; - TRequestStatus recvStatus; - TPckgBuf length; - - // - // Indicating to the protocol that it's a new client - // - INFO_PRINTF1(_L("Socket set option for indicating new client")); - TESTL(sock.SetOpt(KWapSmsOptionNewStyleClient,KWapSmsOptionLevel, 0)==KErrNone); - // - // Bind - // - TESTL(sock.Bind(wapAddr)==KErrNone); - - // - // Issue Ioctl for getting the length of the message - // - INFO_PRINTF1(_L("Issue of first IOCTL for GetLength")); - sock.Ioctl(KSOGetLength, ioctlStatus, &length, KSolWapProv); - - // - // Send a business card - // - TRequestStatus status; - TBuf8<200> data; - data.Copy(TestData); - sock.SendTo(data, wapAddr, 0, status); - User::WaitForRequest(status); - TESTL(status.Int()==KErrNone); - INFO_PRINTF1(_L("Message sent...")); - // - // Get the size of the incoming message - // - User::WaitForRequest(ioctlStatus); - TESTL(ioctlStatus.Int()==KErrNone); - INFO_PRINTF1(_L("IOCTL completed...")); - // - // Check if reported length is correct - // - TBuf8<256> recvBuf(length); - TESTL(length()==data.Length()); - - // - // Create a descriptor with correct size for obtaining the message parameter - // - HBufC8* parameterStore = HBufC8::NewLC(GetMessageParameterLengthL(sock)); - TPtr8 parameterStorePtr = parameterStore->Des(); - - // - // Get the message parameter value - // - GetMessageParameterL(sock, parameterStorePtr); - - // - // Internalise the message parameter and check - // - InternaliseSmsDataAndCheckL(parameterStorePtr, scAddr); - - CleanupStack::PopAndDestroy(parameterStore); - - // - // Receiving a datagram - // - sock.RecvFrom(recvBuf,recvWapAddr,0,recvStatus); - User::WaitForRequest(recvStatus); - TESTL(recvStatus.Int()==KErrNone); - INFO_PRINTF1(_L("Received the message...")); - - // - // Close socket - // - sock.Close(); - INFO_PRINTF1(_L("Socket was closed...")); - - // - // Open the socket - // - TESTL(sock.Open(socketServer,KWAPSMSAddrFamily,KSockDatagram,KWAPSMSDatagramProtocol)==KErrNone); - INFO_PRINTF1(_L("Socket was opened...")); - TESTL(sock.SetOpt(KWapSmsOptionNewStyleClient,KWapSmsOptionLevel, 0)==KErrNone); - INFO_PRINTF1(_L("Socket set option for indicating new client")); - TESTL(sock.Bind(wapAddr)==KErrNone); - - // - // Issue another get length of datagram as if not aware of the previous message - // - INFO_PRINTF1(_L("Issue of first IOCTL for GetLength")); - sock.Ioctl(KSOGetLength, ioctlStatus, &length, KSolWapProv); - - // - // waiting for request to be completed - // - User::WaitForRequest(ioctlStatus); - TESTL(ioctlStatus.Int()==KErrNone); - INFO_PRINTF1(_L("IOCTL completed...")); - - // - // Check if reported length is correct - // - TBuf8<256> newRecvBuf(length); - TESTL(length()==data.Length()); - - // - // Recreate a descriptor with correct size for obtaining the message parameter - // - HBufC8* parameterStore2 = HBufC8::NewLC(GetMessageParameterLengthL(sock)); - TPtr8 parameterStorePtr2 = parameterStore2->Des(); - - // - // Get the message parameter value - // - GetMessageParameterL(sock, parameterStorePtr2); - - // - // Internalise the message parameter and check - // - InternaliseSmsDataAndCheckL(parameterStorePtr2, scAddr); - - CleanupStack::PopAndDestroy(parameterStore2); - - // - // New message retrieved from SAR store - // - sock.RecvFrom(newRecvBuf,recvWapAddr,0,recvStatus); - User::WaitForRequest(recvStatus); - TESTL(recvStatus.Int()==KErrNone); - INFO_PRINTF1(_L("Received the message...")); - TEST(newRecvBuf.Compare(data) == 0); - - // - // Confirm the receipt of the message to the client - // - INFO_PRINTF1(_L("Socket set option for indicating receipt of message")); - TESTL(sock.SetOpt(KWapSmsOptionOKToDeleteMessage,KWapSmsOptionLevel, 0)==KErrNone); - - // - // Closing the socket - // - CleanupStack::PopAndDestroy(&sock); - CleanupStack::PopAndDestroy(&socketServer); - - return TestStepResult(); - } - -TVerdict CIoctlStep_21::doTestStepL() -/** - * - * Test step 21: - * simulating client crash conditions with 8bit push message - * @return - TVerdict code - * - */ - { - INFO_PRINTF1(_L("IOCTL Test step 21: client crash condition with 8Bit push message")); - - TInt result = KErrNone; - TPtrC16 TelNumber; - TInt port=226; - TInt testNumber= 5; - - if(!GetStringFromConfig(ConfigSection(),KSCNumber,TelNumber) || - !GetIntFromConfig(ConfigSection(),KWapPort,port)) - { - result=KErrNotFound; - } - - TESTL(result==KErrNone); - - User::LeaveIfError(RProperty::Set(KUidSystemCategory, KUidPhonePwr.iUid, ESAPhoneOn)); - User::LeaveIfError(RProperty::Set(KUidPSSimTsyCategory, KPSSimTsyTestNumber, testNumber)); - - // - // Setting the port number and service center number of the wap address - // The service center number should be the same as the sim phone number used - // for test - // - TWapAddr wapAddr; - TWapAddr recvWapAddr; - wapAddr.SetWapPort(TWapPortNumber(port)); - TBuf8<100> scNumber; - scNumber.Copy(TelNumber); - TPtrC8 scAddr(scNumber); - wapAddr.SetWapAddress(scAddr); - - // - // Connect to socket server - // - RSocketServ socketServer; - User::LeaveIfError(socketServer.Connect()); - CleanupClosePushL(socketServer); - - // - // Open the socket - // - RSocket sock; - TESTL(sock.Open(socketServer,KWAPSMSAddrFamily,KSockDatagram,KWAPSMSDatagramProtocol)==KErrNone); - CleanupClosePushL(sock); - - // - // Waiting for the phone to be initialised - // - WaitForInitializeL(); - - TRequestStatus ioctlStatus; - TRequestStatus recvStatus; - TPckgBuf length; - + OpenSocketLC(socketServer, sock); // // Indicating to the protocol that it's a new client // - INFO_PRINTF1(_L("Socket set option for indicating new client")); - TESTL(sock.SetOpt(KWapSmsOptionNewStyleClient,KWapSmsOptionLevel, 0)==KErrNone); - - // - // Bind - // - TESTL(sock.Bind(wapAddr)==KErrNone); - - // - // Issue Ioctl for getting the length of the message - // - INFO_PRINTF1(_L("Issue of first IOCTL for GetLength")); - sock.Ioctl(KSOGetLength, ioctlStatus, &length, KSolWapProv); - - // - // Get the size of the incoming message - // - User::WaitForRequest(ioctlStatus); - TESTL(ioctlStatus.Int()==KErrNone); - INFO_PRINTF1(_L("IOCTL completed...")); - - TBuf8<256> recvBuf(length); - - // - // Create a descriptor with correct size for obtaining the message parameter - // - HBufC8* parameterStore = HBufC8::NewLC(GetMessageParameterLengthL(sock)); - TPtr8 parameterStorePtr = parameterStore->Des(); - - // - // Get the message parameter value - // - GetMessageParameterL(sock, parameterStorePtr); - - // - // Internalise the message parameter and check - // - InternaliseSmsDataAndCheckL(parameterStorePtr, scAddr); - - CleanupStack::PopAndDestroy(parameterStore); - - // - // Receiving a datagram - // - sock.RecvFrom(recvBuf,recvWapAddr,0,recvStatus); - User::WaitForRequest(recvStatus); - TESTL(recvStatus.Int()==KErrNone); - INFO_PRINTF1(_L("Received the message...")); - - // - // Close socket - // - sock.Close(); - INFO_PRINTF1(_L("Socket was closed...")); - - // - // Open the socket - // - TESTL(sock.Open(socketServer,KWAPSMSAddrFamily,KSockDatagram,KWAPSMSDatagramProtocol)==KErrNone); - INFO_PRINTF1(_L("Socket was opened...")); - TESTL(sock.SetOpt(KWapSmsOptionNewStyleClient,KWapSmsOptionLevel, 0)==KErrNone); - INFO_PRINTF1(_L("Socket set option for indicating new client")); - TESTL(sock.Bind(wapAddr)==KErrNone); - - // - // Issue another get length of datagram as if not aware of the previous message - // - INFO_PRINTF1(_L("Issue of first IOCTL for GetLength")); - sock.Ioctl(KSOGetLength, ioctlStatus, &length, KSolWapProv); - - // - // waiting for request to be completed - // - User::WaitForRequest(ioctlStatus); - TESTL(ioctlStatus.Int()==KErrNone); - INFO_PRINTF1(_L("IOCTL completed...")); - - // - // Allocate buffer - // - TBuf8<256> newRecvBuf(length); - - // - // Recreate a descriptor with correct size for obtaining the message parameter - // - HBufC8* parameterStore2 = HBufC8::NewLC(GetMessageParameterLengthL(sock)); - TPtr8 parameterStorePtr2 = parameterStore2->Des(); - - // - // Get the message parameter value - // - GetMessageParameterL(sock, parameterStorePtr2); - - // - // Internalise the message parameter and check - // - InternaliseSmsDataAndCheckL(parameterStorePtr2, scAddr); - - CleanupStack::PopAndDestroy(parameterStore2); - - // - // New message retrieved from SAR store - // - sock.RecvFrom(newRecvBuf,recvWapAddr,0,recvStatus); - User::WaitForRequest(recvStatus); - TESTL(recvStatus.Int()==KErrNone); - INFO_PRINTF1(_L("Received the message...")); - - // - // Confirm the receipt of the message to the client - // - INFO_PRINTF1(_L("Socket set option for indicating receipt of message")); - TESTL(sock.SetOpt(KWapSmsOptionOKToDeleteMessage,KWapSmsOptionLevel, 0)==KErrNone); - - // - // Compare the received message with the previous one - // They should be identical - // - TESTL(newRecvBuf.Compare(recvBuf)==0); - - // - // Closing the socket - // - CleanupStack::PopAndDestroy(&sock); - CleanupStack::PopAndDestroy(&socketServer); - - return TestStepResult(); - } - -TVerdict CIoctlStep_22::doTestStepL() -/** - * Test step 22: - * Push Message (8-Bit). Using IOCTL query SMS transport parameters - * @return - TVerdict code - * - */ - { - INFO_PRINTF1(_L("IOCTL Test step 22: Push Message (8-Bit) and query SMS transport parameters")); - - TInt result = KErrNone; - TPtrC16 TelNumber; - TInt port=226; - TInt testNumber = 7; - if(!GetStringFromConfig(ConfigSection(),KSCNumber,TelNumber) || - !GetIntFromConfig(ConfigSection(),KWapPort,port)) - { - result=KErrNotFound; - } - - TESTL(result==KErrNone); - - User::LeaveIfError(RProperty::Set(KUidSystemCategory, KUidPhonePwr.iUid, ESAPhoneOn)); - User::LeaveIfError(RProperty::Set(KUidPSSimTsyCategory, KPSSimTsyTestNumber, testNumber)); - - // - // Setting the port number and service center number of the wap address - // The service center number should be the same as the sim phone number used - // for test - // - TWapAddr wapAddr; - TWapAddr recvWapAddr; - wapAddr.SetWapPort(TWapPortNumber(port)); - TBuf8<100> scNumber; - scNumber.Copy(TelNumber); - TPtrC8 scAddr(scNumber); - wapAddr.SetWapAddress(scAddr); - - // - // Connect to socket server - // - RSocketServ socketServer; - User::LeaveIfError(socketServer.Connect()); - CleanupClosePushL(socketServer); - - // - // Define and open the socket - // - RSocket sock; - TESTL(sock.Open(socketServer,KWAPSMSAddrFamily,KSockDatagram,KWAPSMSDatagramProtocol)==KErrNone); - CleanupClosePushL(sock); - - // - // Waiting for the phone to be initialised - // - WaitForInitializeL(); - - // - // Indicating to the protocol that it's a new client - // - INFO_PRINTF1(_L("Socket set option for indicating new client")); - TESTL(sock.SetOpt(KWapSmsOptionNewStyleClient,KWapSmsOptionLevel, 0)==KErrNone); - - // - // Bind - // - TESTL(sock.Bind(wapAddr)==KErrNone); - - // - // Create a descriptor with correct size for obtaining the message parameter - // - HBufC8* parameterStore = HBufC8::NewLC(GetMessageParameterLengthL(sock)); - TPtr8 parameterStorePtr = parameterStore->Des(); - - // - // Get the message parameter value - // - GetMessageParameterL(sock, parameterStorePtr); - - // - // Internalise the message parameter and check - // - InternaliseSmsDataAndCheckL(parameterStorePtr, scAddr); - - CleanupStack::PopAndDestroy(parameterStore); - - // - // Closing the socket - // - CleanupStack::PopAndDestroy(&sock); - CleanupStack::PopAndDestroy(&socketServer); - - return TestStepResult(); - } - -TVerdict CIoctlStep_23::doTestStepL() -/** - * Test step 23: - * Two Push Messages (8-Bit). Using IOCTL query SMS transport parameters - * @return - TVerdict code - * - */ - { - INFO_PRINTF1(_L("IOCTL Test step 23: Push two push message(8-Bit) query transport parameters")); - - TInt result=KErrNone; - TPtrC16 TelNumber; - TInt port=226; - TInt testNumber=8; - - if(!GetStringFromConfig(ConfigSection(),KSCNumber,TelNumber) || - !GetIntFromConfig(ConfigSection(),KWapPort,port)) - { - result=KErrNotFound; - } - - TESTL(result==KErrNone); - - User::LeaveIfError(RProperty::Set(KUidSystemCategory, KUidPhonePwr.iUid, ESAPhoneOn)); - User::LeaveIfError(RProperty::Set(KUidPSSimTsyCategory, KPSSimTsyTestNumber, testNumber)); - - // - // Setting the port number and service center number of the wap address - // The service center number should be the same as the sim phone number used - // for test - // - TWapAddr wapAddr; - TWapAddr recvWapAddr; - wapAddr.SetWapPort(TWapPortNumber(port)); - TBuf8<100> scNumber; - scNumber.Copy(TelNumber); - TPtrC8 scAddr(scNumber); - wapAddr.SetWapAddress(scAddr); - - // - // Connect to socket server - // - RSocketServ socketServer; - User::LeaveIfError(socketServer.Connect()); - CleanupClosePushL(socketServer); - - // - // Define and open the socket - // - RSocket sock; - TESTL(sock.Open(socketServer,KWAPSMSAddrFamily,KSockDatagram,KWAPSMSDatagramProtocol)==KErrNone); - CleanupClosePushL(sock); - - // - // Waiting for the phone to be initialised - // - WaitForInitializeL(); - - TRequestStatus ioctlStatus; - TRequestStatus recvStatus; - TPckgBuf length; - - // - // Indicating to the protocol that it's a new client - // - INFO_PRINTF1(_L("Socket set option for indicating new client")); - TESTL(sock.SetOpt(KWapSmsOptionNewStyleClient,KWapSmsOptionLevel, 0)==KErrNone); - - // - // Bind - // - TESTL(sock.Bind(wapAddr)==KErrNone); - - // - // Issue Ioctl for getting the length of the message - // - INFO_PRINTF1(_L("Issue of first IOCTL for GetLength")); - sock.Ioctl(KSOGetLength, ioctlStatus, &length, KSolWapProv); - - // - // Get the size of the incoming push message - // - User::WaitForRequest(ioctlStatus); - TESTL(ioctlStatus.Int()==KErrNone); - INFO_PRINTF1(_L("IOCTL completed...")); - - INFO_PRINTF1(_L("Getting parameter value of first message...")); - - // - // Create a descriptor with correct size for obtaining the first message parameter - // - HBufC8* parameterStore = HBufC8::NewLC(GetMessageParameterLengthL(sock)); - TPtr8 parameterStorePtr = parameterStore->Des(); - - // - // Get the first message parameter value - // - GetMessageParameterL(sock, parameterStorePtr); - - // - // Internalise the first message parameter and check - // - InternaliseSmsDataAndCheckL(parameterStorePtr, scAddr); - - CleanupStack::PopAndDestroy(parameterStore); - - // - // Allocate buffer - // - TBuf8<256> recvBuf1(length); - - // - // Receiving push datagram - // - sock.RecvFrom(recvBuf1,recvWapAddr,0,recvStatus); - User::WaitForRequest(recvStatus); - TESTL(recvStatus.Int()==KErrNone); - INFO_PRINTF1(_L("Received the push message...")); - - // - // Confirm the receipt of the message to the client - // - INFO_PRINTF1(_L("Socket set option for indicating receipt of message")); - TESTL(sock.SetOpt(KWapSmsOptionOKToDeleteMessage,KWapSmsOptionLevel, 0)==KErrNone); - - // - // Issue another Ioctl for getting the length of the message - // - INFO_PRINTF1(_L("Issue of first IOCTL for GetLength")); - sock.Ioctl(KSOGetLength, ioctlStatus, &length, KSolWapProv); - - // - // Get the size of the second incoming push message - // - User::WaitForRequest(ioctlStatus); - TESTL(ioctlStatus.Int()==KErrNone); - INFO_PRINTF1(_L("IOCTL completed...")); - - INFO_PRINTF1(_L("Getting parameter value of second message...")); - - // - // Create a descriptor with correct size for obtaining the second message parameter - // - HBufC8* parameterStore2 = HBufC8::NewLC(GetMessageParameterLengthL(sock)); - TPtr8 parameterStorePtr2 = parameterStore2->Des(); - - // - // Get the second message parameter value - // - GetMessageParameterL(sock, parameterStorePtr2); - - // - // Internalise the second message parameter and check - // - InternaliseSmsDataAndCheckL(parameterStorePtr2, scAddr); - - CleanupStack::PopAndDestroy(parameterStore2); - - // - // Allocate buffer - // - TBuf8<256> recvBuf2(length); + INFO_PRINTF1(_L("Socket set option for indicating new client")); + TInt ret = sock.SetOpt(KWapSmsOptionNewStyleClient,KWapSmsOptionLevel, 0); + TESTCHECKL(ret, KErrNone, "Indicating to the protocol that it's a new client") - // - // Receiving push datagram - // - sock.RecvFrom(recvBuf2,recvWapAddr,0,recvStatus); - User::WaitForRequest(recvStatus); - TESTL(recvStatus.Int()==KErrNone); - INFO_PRINTF1(_L("Received the second push message...")); - - // - // Compare the received message with the previous one - // They should be identical - // - TESTL(recvBuf2.Compare(recvBuf1)==0); - - // - // Confirm the receipt of the message to the client - // - INFO_PRINTF1(_L("Socket set option for indicating receipt of message")); - TESTL(sock.SetOpt(KWapSmsOptionOKToDeleteMessage,KWapSmsOptionLevel, 0)==KErrNone); - - // - // Closing the socket - // - CleanupStack::PopAndDestroy(&sock); - CleanupStack::PopAndDestroy(&socketServer); - - return TestStepResult(); - } - -TVerdict CIoctlStep_24::doTestStepL() -/** - * Test step 24: - * Test Cancel IOCTL - * @return - TVerdict code - * - */ - { - INFO_PRINTF1(_L("IOCTL Test step 24: Testing Cancel IOCTL")); - - TInt result=KErrNone; - TPtrC16 TelNumber; - TInt port=226; - - if(!GetStringFromConfig(ConfigSection(),KSCNumber,TelNumber) || - !GetIntFromConfig(ConfigSection(),KWapPort,port)) - { - result=KErrNotFound; - } - - TESTL(result==KErrNone); - - User::LeaveIfError(RProperty::Set(KUidSystemCategory, KUidPhonePwr.iUid, ESAPhoneOn)); - - // - // Setting the port number and service center number of the wap address - // The service center number should be the same as the sim phone number used - // for test (not required for SIM tsy) - // - TWapAddr wapAddr; - wapAddr.SetWapPort(TWapPortNumber(port)); - - TBuf8<100> scNumber; - scNumber.Copy(TelNumber); - TPtrC8 scAddr(scNumber); - wapAddr.SetWapAddress(scAddr); - - // - // Connect to socket server - // - RSocketServ socketServer; - User::LeaveIfError(socketServer.Connect()); - CleanupClosePushL(socketServer); - - // - // Define and open the socket - // - RSocket sock; - TESTL(sock.Open(socketServer,KWAPSMSAddrFamily,KSockDatagram,KWAPSMSDatagramProtocol)==KErrNone); - CleanupClosePushL(sock); - - // - // Waiting for the phone to be initialised - // - WaitForInitializeL(); - - TRequestStatus ioctlStatus; - TBuf8<200> smsdata; - TPckgBuf paramLength; - - // - // Indicating to the protocol that it's a new client - // - INFO_PRINTF1(_L("Socket set option for indicating new client")); - TESTL(sock.SetOpt(KWapSmsOptionNewStyleClient,KWapSmsOptionLevel, 0)==KErrNone); - - // - // Bind - // - TESTL(sock.Bind(wapAddr)==KErrNone); - - // - // Issue Ioctl for getting the length of the message parameter - // - INFO_PRINTF1(_L("Issue of IOCTL for KSOGetMessageParametersLength")); - sock.Ioctl(KSOGetMessageParametersLength, ioctlStatus, &smsdata, KSolWapProv); - - // - // Issue Cancel Ioctl - // - INFO_PRINTF1(_L("Issue of cancel IOCTL for KSOGetMessageParametersLength")); - sock.CancelIoctl(); - - // - // Check if the outstanding IOCTL has been cancelled - // - TESTL(ioctlStatus.Int()==KErrCancel); - - // - // Issue Ioctl for getting the message parameter - // - INFO_PRINTF1(_L("Issue of IOCTL for KSOGetMessageParameters")); - sock.Ioctl(KSOGetMessageParameters, ioctlStatus, &smsdata, KSolWapProv); - - // - // Issue Cancel Ioctl - // - INFO_PRINTF1(_L("Issue of cancel IOCTL for KSOGetMessageParameters")); - sock.CancelIoctl(); - - // - // Check if the outstanding IOCTL has been cancelled - // - TESTL(ioctlStatus==KErrCancel); - - // - // Closing the socket - // - CleanupStack::PopAndDestroy(&sock); - CleanupStack::PopAndDestroy(&socketServer); - - return TestStepResult(); - } - -TVerdict CIoctlStep_25::doTestStepL() -/** - * Test step 25: - * Test issue IOCTL without SetOption NewStyleClient - * @return - TVerdict code - * - */ - { - INFO_PRINTF1(_L("IOCTL Test step 25: Test issue IOCTL without SetOption NewStyleClient")); - - TInt result=KErrNone; - TPtrC16 TelNumber; - TInt port=226; - - if(!GetStringFromConfig(ConfigSection(),KSCNumber,TelNumber) || - !GetIntFromConfig(ConfigSection(),KWapPort,port)) - { - result=KErrNotFound; - } - - TESTL(result==KErrNone); - - // - // Setting the port number and service center number of the wap address - // The service center number should be the same as the sim phone number used - // for test (not required for SIM tsy) - // - TWapAddr wapAddr; - wapAddr.SetWapPort(TWapPortNumber(port)); - - TBuf8<100> scNumber; - scNumber.Copy(TelNumber); - TPtrC8 scAddr(scNumber); - wapAddr.SetWapAddress(scAddr); - - // - // Connect to socket server - // - RSocketServ socketServer; - User::LeaveIfError(socketServer.Connect()); - CleanupClosePushL(socketServer); - - // - // Define and open the socket - // - RSocket sock; - TESTL(sock.Open(socketServer,KWAPSMSAddrFamily,KSockDatagram,KWAPSMSDatagramProtocol)==KErrNone); - CleanupClosePushL(sock); - - // - // Waiting for the phone to be initialised - // - WaitForInitializeL(); - - TRequestStatus ioctlStatus; - TBuf8<200> smsdata; - TPckgBuf paramLength; - - // - // Bind - // - TESTL(sock.Bind(wapAddr)==KErrNone); - - // - // Issue Ioctl for getting the length of the message parameter (should fail) - // - INFO_PRINTF1(_L("Issue of IOCTL for KSOGetMessageParametersLength")); - sock.Ioctl(KSOGetMessageParametersLength, ioctlStatus, ¶mLength, KSolWapProv); - TESTL(ioctlStatus.Int()!=KErrNone); - - // - // Issue Ioctl for getting the message parameter (should fail) - // - INFO_PRINTF1(_L("Issue of IOCTL for KSOGetMessageParameters")); - sock.Ioctl(KSOGetMessageParameters, ioctlStatus, &smsdata, KSolWapProv); - User::WaitForRequest(ioctlStatus); - TESTL(ioctlStatus.Int()!=KErrNone); - - // - // Closing the socket - // - CleanupStack::PopAndDestroy(&sock); - CleanupStack::PopAndDestroy(&socketServer); - - return TestStepResult(); - } - -TVerdict CIoctlStep_26::doTestStepL() -/** - * Test step 26: - * Sends a 8-Bit calendar entry using IOCTL(two segments) - * @return - TVerdict code - * - */ - { - INFO_PRINTF1(_L("IOCTL Test step 26: send a 8-Bit VCal (two segments)")); - - TInt result=KErrNone; - TPtrC TestData; - TPtrC16 TelNumber; - TInt port=226; - TInt testNumber = 13; - - if(!GetStringFromConfig(ConfigSection(),KTestData1, TestData) || - !GetStringFromConfig(ConfigSection(),KSCNumber,TelNumber) || - !GetIntFromConfig(ConfigSection(),KWapPort,port)) - { - result=KErrNotFound; - } - - TESTL(result==KErrNone); - - User::LeaveIfError(RProperty::Set(KUidSystemCategory, KUidPhonePwr.iUid, ESAPhoneOn)); - User::LeaveIfError(RProperty::Set(KUidPSSimTsyCategory, KPSSimTsyTestNumber, testNumber)); - - // - // Setting the port number and service center number of the wap address - // The service center number should be the same as the sim phone number used - // for test (not required for SIM Tsy) - // - TWapAddr wapAddr; - TWapAddr recvWapAddr; - wapAddr.SetWapPort(TWapPortNumber(port)); - TBuf8<100> scNumber; - scNumber.Copy(TelNumber); - TPtrC8 scAddr(scNumber); - wapAddr.SetWapAddress(scAddr); - - // - // Connect to socket server - // - RSocketServ socketServer; - User::LeaveIfError(socketServer.Connect()); - CleanupClosePushL(socketServer); - - // - // Define and open the socket - // - RSocket sock; - TESTL(sock.Open(socketServer,KWAPSMSAddrFamily,KSockDatagram,KWAPSMSDatagramProtocol)==KErrNone); - CleanupClosePushL(sock); - - // - // Waiting for the phone to be initialised - // - WaitForInitializeL(); - - // - // Indicating to the protocol that it's a new client - // - INFO_PRINTF1(_L("Socket set option for indicating new client")); - TESTL(sock.SetOpt(KWapSmsOptionNewStyleClient,KWapSmsOptionLevel, 0)==KErrNone); - TESTL(sock.SetOpt(KWapSmsOptionNameDCS,KWapSmsOptionLevel,EWapSms8BitDCS)==KErrNone); - - // - // Bind - // - TESTL(sock.Bind(wapAddr)==KErrNone); - - // - // Send a calendar entry - // - TRequestStatus status; - - TBuf8<300> data; - data.Copy(TestData); - sock.SendTo(data, wapAddr, 0, status); - User::WaitForRequest(status); - TESTL(status.Int()==KErrNone); - INFO_PRINTF1(_L("Message sent...")); - - // - // Create a descriptor with correct size for obtaining the message parameter - // - HBufC8* parameterStore = HBufC8::NewLC(GetMessageParameterLengthL(sock)); - TPtr8 parameterStorePtr = parameterStore->Des(); - - // - // Get the message parameter value - // - GetMessageParameterL(sock, parameterStorePtr); - - // - // Internalise the message parameter and check - // - InternaliseSmsDataAndCheckL(parameterStorePtr, scAddr); - - CleanupStack::PopAndDestroy(parameterStore); - - // - // Closing the socket - // - CleanupStack::PopAndDestroy(&sock); - CleanupStack::PopAndDestroy(&socketServer); - - return TestStepResult(); - } - -struct SOneOpTestThreadInfo - { - CIoctlStep_27* iTest; - TPtrC* iTestData1; - TPtrC16* iTelNumber; - TInt iPort; - }; - -TInt CIoctlStep_27::DoPanicTestL(TPtrC* aTestData1, TPtrC16* aTelNumber, TInt aPort) - { - TInt testNumber = 1; - TInt port = aPort; - TPtrC TestData1 = *aTestData1; - TPtrC16 TelNumber = *aTelNumber; - - User::LeaveIfError(RProperty::Set(KUidSystemCategory, KUidPhonePwr.iUid, ESAPhoneOn)); - User::LeaveIfError(RProperty::Set(KUidPSSimTsyCategory, KPSSimTsyTestNumber, testNumber)); - - // - // Setting the port number and service center number of the wap address - // The service center number should be the same as the sim phone number used - // for test (not required for SIM tsy) - // - TWapAddr wapAddr; - TWapAddr recvWapAddr; - wapAddr.SetWapPort(TWapPortNumber(port)); - - TBuf8<100> scNumber; - scNumber.Copy(TelNumber); - TPtrC8 scAddr(scNumber); - wapAddr.SetWapAddress(scAddr); - - // - // Connect to socket server - // - RSocketServ socketServer; - User::LeaveIfError(socketServer.Connect()); - CleanupClosePushL(socketServer); - - // - // Define and open the socket - // - RSocket sock; - TESTL(sock.Open(socketServer,KWAPSMSAddrFamily,KSockDatagram,KWAPSMSDatagramProtocol)==KErrNone); - CleanupClosePushL(sock); - - // - // Waiting for the phone to be initialised - // - WaitForInitializeL(); - - // - // Indicating to the protocol that it's a new client - // - TESTL(sock.SetOpt(KWapSmsOptionNewStyleClient,KWapSmsOptionLevel, 0)==KErrNone); - - // - // Bind - // - TESTL(sock.Bind(wapAddr)==KErrNone); + ret = sock.Bind(wapAddr); + TESTCHECKL(ret, KErrNone, "Socket bind"); // // Send a business card @@ -3707,7 +1489,7 @@ data.Copy(TestData1); sock.SendTo(data, wapAddr, 0, status); User::WaitForRequest(status); - TESTL(status.Int()==KErrNone); + TESTCHECKL(status.Int(), KErrNone, "Sending a message"); TRequestStatus ioctlStatus; TRequestStatus recvStatus; @@ -3730,7 +1512,7 @@ // Get the size of the first incoming message // User::WaitForRequest(ioctlStatus); - TESTL(ioctlStatus.Int()==KErrNone); + TESTCHECKL(ioctlStatus.Int(), KErrNone, "Getting the length of the incoming message"); // // Receiving a datagram @@ -3738,13 +1520,16 @@ TBuf8<256> recvBuf(length); sock.RecvFrom(recvBuf,recvWapAddr,0,recvStatus); User::WaitForRequest(recvStatus); - TESTL(recvStatus.Int()==KErrNone); - TEST(recvBuf.Compare(data) == 0); + TESTCHECKL(recvStatus.Int(), KErrNone, "Receiving a message"); + TESTCHECK(recvBuf.Compare(data), 0, "Checking the received message matched expected"); + // // Confirm the receipt of the message to the client // - TESTL(sock.SetOpt(KWapSmsOptionOKToDeleteMessage,KWapSmsOptionLevel, 0)==KErrNone); + INFO_PRINTF1(_L("Setting Socket option for indicating receipt of the message...")); + ret = iSocket.SetOpt(KWapSmsOptionOKToDeleteMessage,KWapSmsOptionLevel, 0); + TESTCHECKL(ret, KErrNone, "Setting Socket option for indicating receipt of the message"); // // Closing the socket @@ -3773,7 +1558,6 @@ * Test step 27: * Send a 7_Bit business card. Issue both a get length and get message parameters to IOCTL at sametime * @return - TVerdict code - * */ { const TUint KHeapMinSize=0x01000; @@ -3806,13 +1590,13 @@ RThread thread; TInt rc = thread.Create(_L("PanicThread"),testPanicsL,KDefaultStackSize,KHeapMinSize,KHeapMaxSize,&info); - TESTL(rc==KErrNone); + TESTCHECKL(rc, KErrNone,"Creating a thread" ); TRequestStatus s; thread.Logon(s); thread.Resume(); User::WaitForRequest(s); - TESTL(thread.ExitType()==EExitPanic); + TESTCHECK(thread.ExitType(), EExitPanic, "Checking the correct exit type"); INFO_PRINTF2(_L("Exit type is: %d"), thread.ExitType()); @@ -3827,20 +1611,11 @@ { __UHEAP_MARK; + SetTestNumberFromConfigurationFileL(); + iScheduler = new(ELeave) CActiveScheduler; CActiveScheduler::Install(iScheduler); - TInt err; - err=User::LoadPhysicalDevice(PDD_NAME); - TESTL(err==KErrNone || err==KErrAlreadyExists); - - err=User::LoadLogicalDevice(LDD_NAME); - TESTL(err==KErrNone || err==KErrAlreadyExists); - - err = StartC32(); - ERR_PRINTF2(TRefByValue(_L("Start Comms Process Status = %d")), err); - TESTL(err==KErrNone || err==KErrAlreadyExists); - INFO_PRINTF1(_L("Deleting segmentation and reassembly stores...")); RFs fileServer; @@ -3856,12 +1631,20 @@ fileServer.Delete(KSegmentationStoreName); fileServer.Close(); + + TInt ret = iSocketServer.Connect(KSocketMessageSlots); + if (ret != KErrNone) + { + ERR_PRINTF2(_L("Connecting to socket server failed [ret=%d]"), ret); + } return TestStepResult(); } TVerdict CIoctlStep_28::doTestStepPostambleL() { + iSocketServer.Close(); + delete iScheduler; iScheduler = NULL; @@ -3871,85 +1654,25 @@ } TVerdict CIoctlStep_28::doTestStepL() - /** * Test step seventeen: * Sends a 7_Bit business card. Issue a get message parameters to IOCTL without correct platform security * @return - TVerdict code - * */ { INFO_PRINTF1(_L("Sends a 7_Bit business card. Issue a get message parameters to IOCTL without correct platform security")); - - TInt result=KErrNone; - TPtrC TestData1; - TPtrC16 TelNumber; - TInt port=226; - TInt testNumber=1; - - if(!GetStringFromConfig(ConfigSection(),KTestData1, TestData1) || - !GetStringFromConfig(ConfigSection(),KSCNumber,TelNumber) || - !GetIntFromConfig(ConfigSection(),KWapPort,port)) - { - result=KErrNotFound; - } - - TESTL(result==KErrNone); - - User::LeaveIfError(RProperty::Set(KUidSystemCategory, KUidPhonePwr.iUid, ESAPhoneOn)); - User::LeaveIfError(RProperty::Set(KUidPSSimTsyCategory, KPSSimTsyTestNumber, testNumber)); - - // - // Setting the port number and service center number of the wap address - // The service center number should be the same as the sim phone number used - // for test (not required for SIM tsy) - // - TWapAddr wapAddr; - TWapAddr recvWapAddr; - wapAddr.SetWapPort(TWapPortNumber(port)); - - TBuf8<100> scNumber; - scNumber.Copy(TelNumber); - TPtrC8 scAddr(scNumber); - wapAddr.SetWapAddress(scAddr); - - // - // Connect to socket server - // - RSocketServ socketServer; - User::LeaveIfError(socketServer.Connect()); - CleanupClosePushL(socketServer); - - // - // Define and open the socket - // - RSocket sock; - TESTL(sock.Open(socketServer,KWAPSMSAddrFamily,KSockDatagram,KWAPSMSDatagramProtocol)==KErrNone); - CleanupClosePushL(sock); - - // - // Waiting for the phone to be initialised - // - WaitForInitializeL(); - - // - // Indicating to the protocol that it's a new client - // - INFO_PRINTF1(_L("Socket set option for indicating new client")); - TESTL(sock.SetOpt(KWapSmsOptionNewStyleClient,KWapSmsOptionLevel, 0)==KErrNone); - - // - // Bind - // - TESTL(sock.Bind(wapAddr)==KErrNone); + // Configure and bind to a socket + SetupWapSocketL(); // // Send a business card // TRequestStatus status; + TPtrC testData = GetStringFromConfigL(KTestData1); + TBuf8<200> data; - data.Copy(TestData1); - sock.SendTo(data, wapAddr, 0, status); + data.Copy(testData); + iSocket.SendTo(data, iWapAddr, 0, status); User::WaitForRequest(status); TESTL(status.Int()==KErrNone); INFO_PRINTF1(_L("Message sent...")); @@ -3961,33 +1684,38 @@ TBuf8<200> smsdata; INFO_PRINTF1(_L("Issue of IOCTL for KSOGetMessageParameters")); - sock.Ioctl(KSOGetMessageParameters, testStatus, &smsdata, KSolWapProv); + iSocket.Ioctl(KSOGetMessageParameters, testStatus, &smsdata, KSolWapProv); User::WaitForRequest(testStatus); TESTL(testStatus.Int()==KErrPermissionDenied); INFO_PRINTF2(_L("KSOGetMessageParameters on Ioctl failed to complete with: %d"), testStatus.Int()); - // - // Closing the socket - // - CleanupStack::PopAndDestroy(&sock); - CleanupStack::PopAndDestroy(&socketServer); - + iSocket.Close(); return TestStepResult(); } +CSetDiskMonitorLimits::CSetDiskMonitorLimits() + { + iPartOfMultiStepTestCase = ETrue; + } TVerdict CSetDiskMonitorLimits::doTestStepL() /** Creates smsu.rsc file which defines the upper and lower limits for the disk space monitor */ - - { + { #ifndef _DEBUG INFO_PRINTF1(_L("This test can only be run when the SMS Stack is in debug mode.")); -#else - TInt highDrop = 4; - TInt lowDrop = 10; +#else + TInt err = RProperty::Define(KUidPSSMSStackCategory, KUidPSSMSStackFreeDiskSpaceKey, RProperty::EInt); + if ((err != KErrNone) && (err != KErrAlreadyExists)) + { + ERR_PRINTF2(_L("RProperty::Define() failure [err=%d]"), err); + User::Leave(err); + } + + TInt highDrop = 3; + TInt lowDrop = 8; TInt freeDrop = 0; GetIntFromConfig(_L("DiskMonitorLimits"), _L("highDrop"), highDrop); @@ -3997,7 +1725,12 @@ #endif return TestStepResult(); } - + +CSetDiskSpace::CSetDiskSpace() + { + iPartOfMultiStepTestCase = ETrue; + } + /** * Set free disk space to the required limit */ @@ -4020,7 +1753,7 @@ Free up disk space by deleting the temp files created */ TVerdict CFreeDiskSpace::doTestStepL() - { + { #ifndef _DEBUG INFO_PRINTF1(_L("This test can only be run when the SMS Stack is in debug mode.")); #else @@ -4031,62 +1764,27 @@ { ERR_PRINTF2(_L("RProperty::Delete() failure [err=%d]"), err); } -#endif - - return TestStepResult(); - } +#endif + return TestStepResult(); + } -/** - Free up disk space by deleting the temp files created -*/ -TVerdict CInitializePhone::doTestStepL() - { - SetTestNumberL(); - WaitForInitializeL(); - -#ifdef _DEBUG - TInt err = RProperty::Define(KUidPSSMSStackCategory, KUidPSSMSStackFreeDiskSpaceKey, RProperty::EInt); - if ((err != KErrNone) && (err != KErrAlreadyExists)) - { - ERR_PRINTF2(_L("RProperty::Define() failure [err=%d]"), err); - User::Leave(err); - } -#endif +CReceiveWapMessage::CReceiveWapMessage() + { + iPartOfMultiStepTestCase = ETrue; + } - return TestStepResult(); - } - - -/** - Free up disk space by deleting the temp files created -*/ TVerdict CReceiveWapMessage::doTestStepL() - { + { #ifndef _DEBUG INFO_PRINTF1(_L("This test can only be run when the SMS Stack is in debug mode.")); -#else - - // Connect to socket server - RSocketServ socketServer; - User::LeaveIfError(socketServer.Connect()); - CleanupClosePushL(socketServer); - // Define and open the socket - RSocket sock; - OpenSocketLC(socketServer, sock); - WaitForInitializeL(); - - //Read port and SC number from ini file - TWapAddr wapAddr; - ReadWapPortSettingsL(wapAddr); - // - // Indicating to the protocol that it's a new client - // - INFO_PRINTF1(_L("Socket set option for indicating new client")); - User::LeaveIfError(sock.SetOpt(KWapSmsOptionNewStyleClient,KWapSmsOptionLevel, 0)); - - // Bind - // - User::LeaveIfError(sock.Bind(wapAddr)); +#else + TInt ret = iSocketServer.Connect(KSocketMessageSlots); + if (ret != KErrNone) + { + ERR_PRINTF2(_L("Connecting to socket server failed [ret=%d]"), ret); + } + + SetupWapSocketL(); TRequestStatus recvStatus; TRequestStatus ioctlStatus; @@ -4100,12 +1798,11 @@ GetStringFromConfig(ConfigSection(),KTestData1, testData); TBuf8<200> data; data.Copy(testData); - sock.SendTo(data, wapAddr, 0, status); + + iSocket.SendTo(data, iWapAddr, 0, status); User::WaitForRequest(status); - User::LeaveIfError(status.Int()); - INFO_PRINTF1(_L("Message sent...")); + TESTCHECKL(status.Int(), KErrNone, "Sending Message..."); - // Issue Ioctl for getting the length of the message TBool messageIsExpected; GetBoolFromConfig(ConfigSection(), _L("messageIsExpected"), messageIsExpected); @@ -4113,20 +1810,15 @@ TRequestStatus timerStatus; RTimer timer; //Read from the INI file. - TInt timeout; - TBool found = GetIntFromConfig(_L("ReceiveTimeout"), _L("timeout"), timeout); - //Timeout must be specified - if(!found) - { - timeout=10000000; // else a default of 10 seconds will be used - } + TInt timeout = 10000000; // default 10 seconds timeout + GetIntFromConfig(_L("ReceiveTimeout"), _L("timeout"), timeout); timer.CreateLocal(); timer.After(timerStatus, TTimeIntervalMicroSeconds32(timeout)); // Get the size of the first incomming message INFO_PRINTF1(_L("Issue of the IOCTL for GetLength")); - sock.Ioctl(KSOGetLength, ioctlStatus, &length, KSolWapProv); + iSocket.Ioctl(KSOGetLength, ioctlStatus, &length, KSolWapProv); //Check if there is in fact a message TBool received=EFalse; @@ -4135,7 +1827,7 @@ if(ioctlStatus == KRequestPending) { // if timer elapsed but ESock request is still pending - sock.CancelIoctl(); + iSocket.CancelIoctl(); User::WaitForRequest(ioctlStatus); } else @@ -4146,6 +1838,7 @@ // check ESock error status if(ioctlStatus.Int() == KErrNone) { + INFO_PRINTF1(_L("IOCTL for GetLength completed successfully")); received=ETrue; } } @@ -4153,39 +1846,37 @@ if(received && messageIsExpected) { - // Receiving push datagram + INFO_PRINTF1(_L("Receiving push datagram...")); TWapAddr recvWapAddr; TBuf8<256> recvBuf1(length); - sock.RecvFrom(recvBuf1,recvWapAddr,0,recvStatus); + iSocket.RecvFrom(recvBuf1,recvWapAddr,0,recvStatus); User::WaitForRequest(recvStatus); User::LeaveIfError(recvStatus.Int()); - INFO_PRINTF1(_L("Received the push message...")); TEST(recvBuf1.Compare(data) == 0); // // Confirm the receipt of the message to the client // - INFO_PRINTF1(_L("Socket set option for indicating receipt of message")); - User::LeaveIfError(sock.SetOpt(KWapSmsOptionOKToDeleteMessage,KWapSmsOptionLevel, 0)); - + TInt ret = iSocket.SetOpt(KWapSmsOptionOKToDeleteMessage,KWapSmsOptionLevel, 0); + TESTCHECKL(ret, KErrNone, "Setting Socket option for indicating receipt of message" ) } - else if (received || messageIsExpected) + else if (received && !messageIsExpected) { - //Message is not expected - TEST(EFalse); + ERR_PRINTF1(_L("Message is received but not expected")); + SetTestStepResult(EFail); } + else if (!received && messageIsExpected) + { + ERR_PRINTF1(_L("Message is expected but not received")); + SetTestStepResult(EFail); + } - CleanupStack::Pop(&sock); - CleanupStack::Pop(&socketServer); - sock.Close(); - socketServer.Close(); - INFO_PRINTF1(_L("End of ReceiveWapMessage test step")); + iSocket.Close(); + iSocketServer.Close(); #endif - return TestStepResult(); } - /** * Tests enumerating of a VCard which needs to go via the observer and not returned to the client. * @@ -4193,55 +1884,20 @@ */ TVerdict CTestEnumeratingVCard::doTestStepL() { - // - // Setup the test... - // - User::LeaveIfError(RProperty::Set(KUidSystemCategory, KUidPhonePwr.iUid, ESAPhoneOn)); - User::LeaveIfError(RProperty::Set(KUidPSSimTsyCategory, KPSSimTsyTestNumber, 34)); - - // - // Connect to socket server - // - RSocketServ socketServer; - - User::LeaveIfError(socketServer.Connect()); - CleanupClosePushL(socketServer); - - // - // Waiting for the phone to be initialised - // - WaitForInitializeL(); + // Configure and bind to a socket + SetupWapSocketL(); - // - // Define and open the socket to receive the datagram on... - // - RSocket sock; - TWapAddr wapAddr; - OpenSocketLC(socketServer, sock); - - wapAddr.SetWapPort(TWapPortNumber(226)); - User::LeaveIfError(sock.Bind(wapAddr)); - - // - // Indicate to the protocol that it's a new client - // - User::LeaveIfError(sock.SetOpt(KWapSmsOptionNewStyleClient,KWapSmsOptionLevel, 0)); - - // // Create a socket for the enumeration... - // RSocket enumerateSock; TSmsAddr smsAddr; - OpenSocketLC(socketServer, enumerateSock, KSMSAddrFamily,KSMSDatagramProtocol); - + OpenSocketLC(iSocketServer, enumerateSock, KSMSAddrFamily,KSMSDatagramProtocol); + smsAddr.SetSmsAddrFamily(ESmsAddrLocalOperation); User::LeaveIfError(enumerateSock.Bind(smsAddr)); - // // Trigger the enumeration... - // - TPckgBuf messageCount; + TPckgBuf messageCount(0); TRequestStatus enumStatus; User::After(1000000); // Gives SMS Prot and WAP Prot time to initialise after loading! @@ -4250,47 +1906,35 @@ TESTL(enumStatus.Int() == KErrNone); TEST(messageCount() == 0); - // // Issue an Ioctl for getting the length of the enumerated datagram... - // TRequestStatus ioctlStatus; TPckgBuf length; - sock.Ioctl(KSOGetLength, ioctlStatus, &length, KSolWapProv); + iSocket.Ioctl(KSOGetLength, ioctlStatus, &length, KSolWapProv); User::WaitForRequest(ioctlStatus); TESTL(ioctlStatus.Int() == KErrNone); TEST(length() == 118); - // // Receive the VCard... - // TRequestStatus recvStatus; TBuf8<256> recvBuf; TBuf<256> vcardBuf16; TWapAddr recvWapAddr; - sock.RecvFrom(recvBuf, recvWapAddr, 0, recvStatus); + iSocket.RecvFrom(recvBuf, recvWapAddr, 0, recvStatus); User::WaitForRequest(recvStatus); TESTL(recvStatus.Int() == KErrNone); vcardBuf16.Copy(recvBuf); INFO_PRINTF2(_L("Received the VCard: \"%S\""), &vcardBuf16); - // // Confirm the receipt of the message... - // - User::LeaveIfError(sock.SetOpt(KWapSmsOptionOKToDeleteMessage,KWapSmsOptionLevel, 0)); + User::LeaveIfError(iSocket.SetOpt(KWapSmsOptionOKToDeleteMessage,KWapSmsOptionLevel, 0)); - // - // Close all the sockets - // - CleanupStack::PopAndDestroy(&enumerateSock); - CleanupStack::PopAndDestroy(&sock); - CleanupStack::PopAndDestroy(&socketServer); - + iSocket.Close(); + CleanupStack::PopAndDestroy(&enumerateSock); return TestStepResult(); - } // CTestEnumeratingVCard::doTestStepL - + } /** * Sends a 7-bit VCard with an email address in it, to ensure that '@' @@ -4300,118 +1944,18 @@ */ TVerdict CTest7BitBusinessCardWithEmail::doTestStepL() { - TPtrC testData; - TPtrC16 telNumber; - TInt port; - TInt testNumber = 35; - - if(!GetStringFromConfig(ConfigSection(), KTestData1, testData) || - !GetStringFromConfig(ConfigSection(), KSCNumber, telNumber) || - !GetIntFromConfig(ConfigSection(), KWapPort, port)) - { - // Leave if there's any error. - User::Leave(KErrNotFound); - } - - User::LeaveIfError(RProperty::Set(KUidSystemCategory, KUidPhonePwr.iUid, ESAPhoneOn)); - User::LeaveIfError(RProperty::Set(KUidPSSimTsyCategory, KPSSimTsyTestNumber, testNumber)); - - // - // Setting the port number and service center number of the wap address - // The service center number should be the same as the sim phone number used - // for test (not required for SIM tsy) - // - TWapAddr wapAddr; - TWapAddr recvWapAddr; - wapAddr.SetWapPort(TWapPortNumber(port)); - - TBuf8<100> scNumber; - scNumber.Copy(telNumber); - TPtrC8 scAddr(scNumber); - wapAddr.SetWapAddress(scAddr); - - // - // Connect to socket server - // - RSocketServ socketServer; - User::LeaveIfError(socketServer.Connect()); - CleanupClosePushL(socketServer); - - // - // Define and open the socket - // - RSocket sock; - OpenSocketLC(socketServer, sock); - - // - // Waiting for the phone to be initialised - // - WaitForInitializeL(); - - // - // Indicating to the protocol that it's a new client - // - INFO_PRINTF1(_L("Socket set option for indicating new client...")); - User::LeaveIfError(sock.SetOpt(KWapSmsOptionNewStyleClient, KWapSmsOptionLevel, 0)); + // Configure and bind to a socket + SetupWapSocketL(); - // - // Bind to the port... - // - User::LeaveIfError(sock.Bind(wapAddr)); - - // // Send a business card with the email address. - // - TRequestStatus status; - - TBuf8<200> data; - data.Copy(testData); - sock.SendTo(data, wapAddr, 0, status); - User::WaitForRequest(status); - User::LeaveIfError(status.Int()); - INFO_PRINTF1(_L("Message sent...")); - - // - // Issue Ioctl for getting the length of the message - // - TPckgBuf length; - - INFO_PRINTF1(_L("Issue of IOCTL for GetLength...")); - sock.Ioctl(KSOGetLength, status, &length, KSolWapProv); - User::WaitForRequest(status); - User::LeaveIfError(status.Int()); + TPtrC testData = GetStringFromConfigL(KTestData1); + SendWapMessage(testData); - // - // Check if reported length is correct - // - TEST(length() == data.Length()); - - // - // Receiving a datagram - // - TBuf8<256> recvBuf(length); - - sock.RecvFrom(recvBuf, recvWapAddr, 0, status); - User::WaitForRequest(status); - User::LeaveIfError(status.Int()); - INFO_PRINTF1(_L("Received the message...")); + ReceiveWapMessage(testData); - // - // Confirm the receipt of the message to the client - // - INFO_PRINTF1(_L("Socket set option for indicating receipt of message...")); - User::LeaveIfError(sock.SetOpt(KWapSmsOptionOKToDeleteMessage,KWapSmsOptionLevel, 0)); - TEST(recvBuf.Compare(data) == 0); - - // - // Closing the socket - // - CleanupStack::PopAndDestroy(&sock); - CleanupStack::PopAndDestroy(&socketServer); - + iSocket.Close(); return TestStepResult(); - } // CTest7BitBusinessCardWithEmail::doTestStepL - + } /** * Attempts to send datagrams bigger than the maximum message and bigger @@ -4421,78 +1965,37 @@ */ TVerdict CTestOversizedDatagram::doTestStepL() { - User::LeaveIfError(RProperty::Set(KUidSystemCategory, KUidPhonePwr.iUid, ESAPhoneOn)); - User::LeaveIfError(RProperty::Set(KUidPSSimTsyCategory, KPSSimTsyTestNumber, 1)); - - TWapAddr wapAddr; - wapAddr.SetWapPort(TWapPortNumber(226)); - - // - // Connect to socket server... - // - RSocketServ socketServer; - - User::LeaveIfError(socketServer.Connect()); - CleanupClosePushL(socketServer); + // Configure and bind to a socket + SetupWapSocketL(); - // - // Define and open the socket... - // - RSocket sock; - OpenSocketLC(socketServer, sock); - - // - // Wait for the phone to be initialised... - // - WaitForInitializeL(); - - // - // Indicating to the protocol that it's a new client... - // - User::LeaveIfError(sock.SetOpt(KWapSmsOptionNewStyleClient,KWapSmsOptionLevel, 0)); - - // // Send a datagram of the maximum datagram size (this will fail because // of the WAP headers)... - // TRequestStatus status; - HBufC8* textBuf = HBufC8::NewL(65536+1); - CleanupStack::PushL(textBuf); + HBufC8* textBuf = HBufC8::NewLC(65536+1); TPtr8 textPtr = textBuf->Des(); textPtr.Fill('A', KWAPSMSMaxDatagramSize); - sock.SendTo(textPtr, wapAddr, 0, status); + iSocket.SendTo(textPtr, iWapAddr, 0, status); User::WaitForRequest(status); TEST(status.Int() == KErrOverflow); - // // Send a datagram bigger than the maximum datagram... - // textPtr.Fill('B', KWAPSMSMaxDatagramSize+1); - sock.SendTo(textPtr, wapAddr, 0, status); + iSocket.SendTo(textPtr, iWapAddr, 0, status); User::WaitForRequest(status); TEST(status.Int() == KErrTooBig); - // // Send a datagram bigger than the maximum MBuf... - // textPtr.Fill('C', 65536+1); - sock.SendTo(textPtr, wapAddr, 0, status); + iSocket.SendTo(textPtr, iWapAddr, 0, status); User::WaitForRequest(status); TEST(status.Int() == KErrTooBig); + iSocket.Close(); CleanupStack::PopAndDestroy(textBuf); - - // - // Close the socket... - // - CleanupStack::PopAndDestroy(&sock); - CleanupStack::PopAndDestroy(&socketServer); - return TestStepResult(); - } // CTestOversizedDatagram::doTestStepL - + } TVerdict CTestWapDatagramSegmentContainingNoData::doTestStepL() /** @@ -4500,237 +2003,162 @@ * one or more segments which comprise of a wap header but no data. * * @return - TVerdict code - * */ - { - INFO_PRINTF1(_L("CTestWapDatagramSegmentContainingNoData:")); - - TVerdict verdict = EPass; - - // Create an empty string which will encode into a single segment wap message which contains a wap header, but no wap data. - _LIT8(KLocalTestData1, ""); - TBuf8<300> data1(KLocalTestData1); - // Create a VCard which will encode into 2 segment wapdatagram, the 2nd segment contains a wap header, but no wap data. - // Use a local literal string rather than reading from a text file. This prevents extra unwanted '\' being added to the string, for example \\r\\n - _LIT8(KLocalTestData2,"BEGIN:VCARD\r\nVERSION:2.1\r\nREV:20090403T094807Z\r\nUID:83702f931a905a6e-00e14456815a8324-33\r\nN:;3SIM;;;\r\nTEL;WORK;CELL:07878931672\r\nEND:VCARD\r"); - TBuf8<300> data2(KLocalTestData2); - - - TPtrC16 TelNumber; - TInt port=9204; - TInt testNumber = 36; - if(!GetStringFromConfig(ConfigSection(),KSCNumber,TelNumber)) - { - // Leave if there's any error. - User::Leave(KErrNotFound); - } - - RProperty phonePowerProperty; - User::LeaveIfError(phonePowerProperty.Attach(KUidSystemCategory, KUidPhonePwr.iUid)); - CleanupClosePushL(phonePowerProperty); - - RProperty testNumberProperty; - User::LeaveIfError(testNumberProperty.Attach(KUidPSSimTsyCategory, KPSSimTsyTestNumber)); - CleanupClosePushL(testNumberProperty); - - TRequestStatus status; - phonePowerProperty.Subscribe(status); - User::LeaveIfError(phonePowerProperty.Set(KUidSystemCategory,KUidPhonePwr.iUid,ESAPhoneOn)); - User::WaitForRequest(status); - User::LeaveIfError(status.Int()); - - testNumberProperty.Subscribe(status); - User::LeaveIfError(testNumberProperty.Set(KUidPSSimTsyCategory,KPSSimTsyTestNumber,testNumber)); - User::WaitForRequest(status); - User::LeaveIfError(status.Int()); - TInt testNumberCheck; - User::LeaveIfError(testNumberProperty.Get(testNumberCheck)); - if (testNumber != testNumberCheck) - { - User::Leave(KErrNotFound); - } - // - // Setting the port number and service center number of the wap address - // The service center number should be the same as the sim phone number used - // for test (not required for SIM Tsy) - // - TWapAddr wapAddr; - TWapAddr recvWapAddr; - wapAddr.SetWapPort(TWapPortNumber(port)); - TBuf8<100> scNumber; - scNumber.Copy(TelNumber); - TPtrC8 scAddr(scNumber); - wapAddr.SetWapAddress(scAddr); - - // - // Connect to socket server - // - RSocketServ socketServer; - User::LeaveIfError(socketServer.Connect()); - CleanupClosePushL(socketServer); - - // - // Define and open the socket - // - RSocket sock; - OpenSocketLC(socketServer, sock); - + { + INFO_PRINTF1(_L("CTestWapDatagramSegmentContainingNoData:")); + // Configure and bind to a socket + SetupWapSocketL(); + + TVerdict verdict = EPass; + + // Create an empty string which will encode into a single segment wap message which contains a wap header, but no wap data. + _LIT8(KLocalTestData1, ""); + TBuf8<300> data1(KLocalTestData1); + // Create a VCard which will encode into 2 segment wapdatagram, the 2nd segment contains a wap header, but no wap data. + // Use a local literal string rather than reading from a text file. This prevents extra unwanted '\' being added to the string, for example \\r\\n + _LIT8(KLocalTestData2,"BEGIN:VCARD\r\nVERSION:2.1\r\nREV:20090403T094807Z\r\nUID:83702f931a905a6e-00e14456815a8324-33\r\nN:;3SIM;;;\r\nTEL;WORK;CELL:07878931672\r\nEND:VCARD\r"); + TBuf8<300> data2(KLocalTestData2); + + + TRequestStatus ioctlStatus; + TRequestStatus recvStatus; + TPckgBuf length; + + // + // Issue Ioctl for getting the length of the message + // + INFO_PRINTF1(_L("Issue of the IOCTL for GetLength for first VCal entry")); + iSocket.Ioctl(KSOGetLength, ioctlStatus, &length, KSolWapProv); + + + TBuf8<300> data; + + // + // Send a SMS in order to trigger receiving the SMS messages. + // This is to make sure the SMS messages are not received before the + // wap address is bound to the socket. + // + TRequestStatus status; + + iSocket.SendTo(data1, iWapAddr, 0, status); + User::WaitForRequest(status); + User::LeaveIfError(status.Int()); + INFO_PRINTF1(_L("First Message (VCal) sent...")); - // - // Waiting for the phone to be initialised - // - WaitForInitializeL(); - - TRequestStatus ioctlStatus; - TRequestStatus recvStatus; - TPckgBuf length; - - // - // Indicating to the protocol that it's a new client - // - INFO_PRINTF1(_L("Socket set option for indicating new client")); - User::LeaveIfError(sock.SetOpt(KWapSmsOptionNewStyleClient,KWapSmsOptionLevel, 0)); - // - // Bind - // - User::LeaveIfError(sock.Bind(wapAddr)); - - // - // Issue Ioctl for getting the length of the message - // - INFO_PRINTF1(_L("Issue of the IOCTL for GetLength for first VCal entry")); - sock.Ioctl(KSOGetLength, ioctlStatus, &length, KSolWapProv); - - - TBuf8<300> data; - - // - // Send a SMS in order to trigger receiving the SMS messages. - // This is to make sure the SMS messages are not received before the - // wap address is bound to the socket. - // - sock.SendTo(data1, wapAddr, 0, status); - User::WaitForRequest(status); - User::LeaveIfError(status.Int()); - INFO_PRINTF1(_L("First Message (VCal) sent...")); - - // - // Get the size of the first incoming message - // The text string should be empty. - // - TBuf8<300> recvBuf; - User::WaitForRequest(ioctlStatus); - User::LeaveIfError(ioctlStatus.Int()); - INFO_PRINTF1(_L("IOCTL completed")); - // - // Check if reported length is correct - // - if(length()!=data1.Length()) - { - verdict = EFail; - } - //> // Receiving a datagram - // - sock.RecvFrom(recvBuf,recvWapAddr,0,recvStatus); - User::WaitForRequest(recvStatus); - User::LeaveIfError(recvStatus.Int()); - INFO_PRINTF1(_L("Received the first message (VCal)...")); - - // The receive buffer should contain an empty string. - // This is as a consequence of the wapprot receiving - // a single segment wap message which contains no data. - if(recvBuf.Compare(data1)) - { - ERR_PRINTF1(_L("Non empty string returned")); - verdict = EFail; - } - - // - // Confirm the receipt of the message to the client - // - INFO_PRINTF1(_L("Socket set option for indicating receipt of first message (VCal)")); - User::LeaveIfError(sock.SetOpt(KWapSmsOptionOKToDeleteMessage,KWapSmsOptionLevel, 0)); - - - //Issue Ioctl for getting the length of the second message - INFO_PRINTF1(_L("Issue of the IOCTL for GetLength for second VCard entry")); - sock.Ioctl(KSOGetLength, ioctlStatus, &length, KSolWapProv); - - //Get the size of the second incoming message - User::WaitForRequest(ioctlStatus); - User::LeaveIfError(ioctlStatus.Int()); - INFO_PRINTF1(_L("IOCTL completed for second message (VCard)")); - - //Check if reported length is correct - if(length()!=data2.Length()) - { - verdict = EFail; - } - - //Receiving a datagram (VCard) - sock.RecvFrom(recvBuf,recvWapAddr,0,recvStatus); - User::WaitForRequest(recvStatus); - User::LeaveIfError(recvStatus.Int()); - INFO_PRINTF1(_L("Received the second message (VCard)...")); - - // Compare the received VCard message with the original one. - // They should be identical. This checks that the WAPPROT - // can receive a 2 segment wap datagram, with the 2nd segment containing no data. - // - if(recvBuf.Compare(data2)) - { - ERR_PRINTF1(_L("VCard message received does not match with original message.")); - verdict = EFail; - } - - //Confirm the receipt of the message to the client - INFO_PRINTF1(_L("Socket set option for indicating receipt of message")); - User::LeaveIfError(sock.SetOpt(KWapSmsOptionOKToDeleteMessage,KWapSmsOptionLevel, 0)); - //Issue Ioctl for getting the length of the third message + // + // Get the size of the first incoming message + // The text string should be empty. + // + TBuf8<300> recvBuf; + User::WaitForRequest(ioctlStatus); + User::LeaveIfError(ioctlStatus.Int()); + INFO_PRINTF1(_L("IOCTL completed")); + + // + // Check if reported length is correct + // + if(length()!=data1.Length()) + { + verdict = EFail; + } + + // + // Receiving a datagram + // + TWapAddr recvWapAddr; + + iSocket.RecvFrom(recvBuf,recvWapAddr,0,recvStatus); + User::WaitForRequest(recvStatus); + User::LeaveIfError(recvStatus.Int()); + INFO_PRINTF1(_L("Received the first message (VCal)...")); + + // The receive buffer should contain an empty string. + // This is as a consequence of the wapprot receiving + // a single segment wap message which contains no data. + if(recvBuf.Compare(data1)) + { + ERR_PRINTF1(_L("Non empty string returned")); + verdict = EFail; + } - INFO_PRINTF1(_L("Issue of the IOCTL for GetLength for second VCard entry")); - sock.Ioctl(KSOGetLength, ioctlStatus, &length, KSolWapProv); + // + // Confirm the receipt of the message to the client + // + INFO_PRINTF1(_L("Socket set option for indicating receipt of first message (VCal)")); + User::LeaveIfError(iSocket.SetOpt(KWapSmsOptionOKToDeleteMessage,KWapSmsOptionLevel, 0)); + + + //Issue Ioctl for getting the length of the second message + INFO_PRINTF1(_L("Issue of the IOCTL for GetLength for second VCard entry")); + iSocket.Ioctl(KSOGetLength, ioctlStatus, &length, KSolWapProv); + + //Get the size of the second incoming message + User::WaitForRequest(ioctlStatus); + User::LeaveIfError(ioctlStatus.Int()); + INFO_PRINTF1(_L("IOCTL completed for second message (VCard)")); + + //Check if reported length is correct + if(length()!=data2.Length()) + { + verdict = EFail; + } + + //Receiving a datagram (VCard) + iSocket.RecvFrom(recvBuf,recvWapAddr,0,recvStatus); + User::WaitForRequest(recvStatus); + User::LeaveIfError(recvStatus.Int()); + INFO_PRINTF1(_L("Received the second message (VCard)...")); + + // Compare the received VCard message with the original one. + // They should be identical. This checks that the WAPPROT + // can receive a 2 segment wap datagram, with the 2nd segment containing no data. + // + if(recvBuf.Compare(data2)) + { + ERR_PRINTF1(_L("VCard message received does not match with original message.")); + verdict = EFail; + } + + //Confirm the receipt of the message to the client + INFO_PRINTF1(_L("Socket set option for indicating receipt of message")); + User::LeaveIfError(iSocket.SetOpt(KWapSmsOptionOKToDeleteMessage,KWapSmsOptionLevel, 0)); + //Issue Ioctl for getting the length of the third message + + INFO_PRINTF1(_L("Issue of the IOCTL for GetLength for second VCard entry")); + iSocket.Ioctl(KSOGetLength, ioctlStatus, &length, KSolWapProv); //Get the size of the third incoming message - User::WaitForRequest(ioctlStatus); - User::LeaveIfError(ioctlStatus.Int()); - INFO_PRINTF1(_L("IOCTL completed for third message (VCard)")); - - //Check if reported length is correct - if(length()!=data1.Length()) - { - verdict = EFail; - } - - //Receiving a datagram (VCard) - sock.RecvFrom(recvBuf,recvWapAddr,0,recvStatus); - User::WaitForRequest(recvStatus); - User::LeaveIfError(recvStatus.Int()); - INFO_PRINTF1(_L("Received the third message (VCard)...")); + User::WaitForRequest(ioctlStatus); + User::LeaveIfError(ioctlStatus.Int()); + INFO_PRINTF1(_L("IOCTL completed for third message (VCard)")); + + //Check if reported length is correct + if(length()!=data1.Length()) + { + verdict = EFail; + } - // The receive buffer should contain an empty string. - // This is as a consequence of the WAPPROT containing 2 concatenated WAP Datagrams - // each datagram segement containing no data. - if(recvBuf.Compare(data1)) - { - ERR_PRINTF1(_L("VCard message received does not match with original message.")); - verdict = EFail; - } - - //Confirm the receipt of the message to the client - INFO_PRINTF1(_L("Socket set option for indicating receipt of message")); - User::LeaveIfError(sock.SetOpt(KWapSmsOptionOKToDeleteMessage,KWapSmsOptionLevel, 0)); - // - // Closing the socket - // - sock.Close(); - socketServer.Close(); - CleanupStack::PopAndDestroy(&sock); - CleanupStack::Pop(&socketServer); - CleanupStack::PopAndDestroy(&testNumberProperty); - CleanupStack::PopAndDestroy(&phonePowerProperty); - INFO_PRINTF1(_L("End of CTestWapDatagramSegmentContainingNoData")); - SetTestStepResult(verdict); - return TestStepResult(); - } + //Receiving a datagram (VCard) + iSocket.RecvFrom(recvBuf,recvWapAddr,0,recvStatus); + User::WaitForRequest(recvStatus); + User::LeaveIfError(recvStatus.Int()); + INFO_PRINTF1(_L("Received the third message (VCard)...")); + // The receive buffer should contain an empty string. + // This is as a consequence of the WAPPROT containing 2 concatenated WAP Datagrams + // each datagram segement containing no data. + if(recvBuf.Compare(data1)) + { + ERR_PRINTF1(_L("VCard message received does not match with original message.")); + verdict = EFail; + } + + //Confirm the receipt of the message to the client + INFO_PRINTF1(_L("Socket set option for indicating receipt of message")); + User::LeaveIfError(iSocket.SetOpt(KWapSmsOptionOKToDeleteMessage,KWapSmsOptionLevel, 0)); + + iSocket.Close(); + SetTestStepResult(verdict); + return TestStepResult(); + } + diff -r 962e6306d9d2 -r 7ef16719d8cb smsprotocols/smsstack/wapprot/test/Te_wapprot/WapIoctlSteps.h --- a/smsprotocols/smsstack/wapprot/test/Te_wapprot/WapIoctlSteps.h Fri Feb 19 23:59:33 2010 +0200 +++ b/smsprotocols/smsstack/wapprot/test/Te_wapprot/WapIoctlSteps.h Fri Mar 12 15:49:38 2010 +0200 @@ -15,20 +15,16 @@ * */ - - /** - @file + @file + @test */ -#if (!defined __Ioctl_STEP_H__) -#define __Ioctl_STEP_H__ -#include -#include -#include -#include + +#ifndef WAPIOCTLTESTSTEPS_H +#define WAPIOCTLTESTSTEPS_H + #include "WapProtSuiteStepBase.h" - class CIoctlStep_1 : public CWapProtSuiteStepBase /** * Sends/receives a 7_Bit business card using IOCTL @@ -38,7 +34,6 @@ virtual TVerdict doTestStepL(); }; - class CIoctlStep_2 : public CWapProtSuiteStepBase /** * Send/receive a long 7-Bit calendar entry using IOCTL(two segments) @@ -48,7 +43,6 @@ virtual TVerdict doTestStepL(); }; - class CIoctlStep_3 : public CWapProtSuiteStepBase /** * send/receive one 7-Bit two segments message and one 7-Bit one segment message @@ -58,7 +52,6 @@ virtual TVerdict doTestStepL(); }; - class CIoctlStep_4 : public CWapProtSuiteStepBase /** * Simulating client crash conditions with 7bit message @@ -68,7 +61,6 @@ virtual TVerdict doTestStepL(); }; - class CIoctlStep_5 : public CWapProtSuiteStepBase /** * Simulating client crash conditions with 8bit push message @@ -78,7 +70,6 @@ virtual TVerdict doTestStepL(); }; - class CIoctlStep_6 : public CWapProtSuiteStepBase /** * Testing the old client for 7Bit message @@ -88,7 +79,6 @@ virtual TVerdict doTestStepL(); }; - class CIoctlStep_7 : public CWapProtSuiteStepBase /** * Testing push messages (8-Bit) @@ -98,7 +88,6 @@ virtual TVerdict doTestStepL(); }; - class CIoctlStep_8 : public CWapProtSuiteStepBase /** * Testing store of 8-Bit messages @@ -108,7 +97,6 @@ virtual TVerdict doTestStepL(); }; - class CIoctlStep_9 : public CWapProtSuiteStepBase /** * Testing old clientwith 8-Bit messages @@ -118,7 +106,6 @@ virtual TVerdict doTestStepL(); }; - class CIoctlStep_10 : public CWapProtSuiteStepBase /** * Testing wrong port numebr (i.e.8Bit port number) for 7Bit message @@ -128,7 +115,6 @@ virtual TVerdict doTestStepL(); }; - class CIoctlStep_11 : public CWapProtSuiteStepBase /** * Testing CancelIOCTL @@ -138,7 +124,6 @@ virtual TVerdict doTestStepL(); }; - class CIoctlStep_12 : public CWapProtSuiteStepBase /** * Test issue IOCTL without SetOption NewStyleClient @@ -148,7 +133,6 @@ virtual TVerdict doTestStepL(); }; - class CIoctlStep_13 : public CWapProtSuiteStepBase /** * Test sending 8-Bit Calendar entry @@ -158,7 +142,6 @@ virtual TVerdict doTestStepL(); }; - class CIoctlStep_14 : public CWapProtSuiteStepBase /** * Simulating client crash conditions with 8bit message @@ -168,7 +151,6 @@ virtual TVerdict doTestStepL(); }; - class CIoctlStep_15 : public CWapProtSuiteStepBase /** * Receives a 7Bit v-card using IOCTL with concatenation for new style client @@ -178,7 +160,6 @@ virtual TVerdict doTestStepL(); }; - class CBackupRestoreStep : public CWapProtSuiteStepBase /** * Simulating client crash conditions with 8bit message @@ -190,7 +171,6 @@ private: TInt SendWapL(); TBool IsWapFileOpenL(); - RSocketServ iSocketServer; }; class CIoctlStep_17 : public CWapProtSuiteStepBase @@ -303,7 +283,7 @@ { public: - virtual TVerdict doTestStepPreambleL(); + virtual TVerdict doTestStepPreambleL(); TInt DoPanicTestL(TPtrC* aTestData1, TPtrC16* aTelNumber, TInt aPort); virtual TVerdict doTestStepL(); virtual TVerdict doTestStepPostambleL(); @@ -316,16 +296,14 @@ */ { public: + CSetDiskMonitorLimits(); virtual TVerdict doTestStepL(); - }; class CSetDiskSpace : public CWapProtSuiteStepBase -/** - * Fill the disk space - */ { public: + CSetDiskSpace(); virtual TVerdict doTestStepL(); }; @@ -341,25 +319,11 @@ }; class CReceiveWapMessage : public CWapProtSuiteStepBase -/** - * Free the disk space - */ { public: + CReceiveWapMessage(); virtual TVerdict doTestStepL(); - }; - -class CInitializePhone : public CWapProtSuiteStepBase -/** - * Free the disk space - */ - { -public: - virtual TVerdict doTestStepL(); - - }; - /** Tests enumerating of a VCard which needs to go via the observer and @@ -371,7 +335,6 @@ virtual TVerdict doTestStepL(); }; - /** * Sends a 7-bit VCard with an email address in it, to ensure that '@' * characters are sent correctly. @@ -382,7 +345,6 @@ virtual TVerdict doTestStepL(); }; - /** * Attempts to send datagrams bigger than the maximum message and bigger * than the maximum size of an MBuf. @@ -399,9 +361,8 @@ * segment which has a wap header but an empty data field. */ { - public: +public: virtual TVerdict doTestStepL(); }; - -#endif +#endif // WAPIOCTLTESTSTEPS_H diff -r 962e6306d9d2 -r 7ef16719d8cb smsprotocols/smsstack/wapprot/test/Te_wapprot/WapProtSuite.ini --- a/smsprotocols/smsstack/wapprot/test/Te_wapprot/WapProtSuite.ini Fri Feb 19 23:59:33 2010 +0200 +++ b/smsprotocols/smsstack/wapprot/test/Te_wapprot/WapProtSuite.ini Fri Mar 12 15:49:38 2010 +0200 @@ -1,83 +1,112 @@ [TestStep1] +testNumber=1 Service_Center=+447765222315 Wap_Port=226 Test_Data1=BEGIN:VCARD\r\nVERSION:2.1\r\nFN:Jal\r\nN:Jal\r\nORG:PanSoftware\r\nTITLE:Director\r\nLABEL:Islington\r\nEND:VCARD\r\n [TestStep2] +testNumber=2 Service_Center=+447765222315 Wap_Port=228 Test_Data1=BEGIN:VCALENDAR\nVERSION:1.0\nBEGIN:VEVENT\nCATEGORIES:MEETING\nSTATUS:TENTATIVE\nDTSTART:20010401T033000Z\nDTEND:20010401T043000Z\nSUMMARY:Messaging Meeting\nDESCRIPTION:Britney and Justin to review newest proposal material\nCLASS:PRIVATE\nEND:VEVENT\nEND:VCALENDAR\r\n Test_Data2=BEGIN:VCARD\nVERSION:2.1\n REV:20071109T095015Z\n UID:763920a1eee581e7-00e11ba642605c30-9\n N:williamson;rob\;[];;;\n TEL;VOICE;CELL:0123\nEND:VCARD\r\n [TestStep3] +testNumber=3 Service_Center=+447765222315 Wap_Port=226 Test_Data1=BEGIN:VCARD\r\nVERSION:2.1\r\nFN:Jal\r\nN:Jal\r\nORG:PanSoftware\r\nTITLE:Director\r\nLABEL:Islington\r\nEND:VCARD\r\n Test_Data2=BEGIN:VCARD\r\nVERSION:2.1\r\nFN:Kamran\r\nN:Kambodian\r\nORG:KamranSoftware\r\nTITLE:CEO\r\nLABEL:Islington\r\nEND:VCARD\r\n [TestStep4] +testNumber=4 Service_Center=+447765222315 Wap_Port=226 Test_Data1=BEGIN:VCARD\r\nVERSION:2.1\r\nFN:Jal\r\nN:Jal\r\nORG:PanSoftware\r\nTITLE:Director\r\nLABEL:Islington\r\nEND:VCARD\r\n [TestStep5] +testNumber=5 Service_Center=+447765222315 Wap_Port=2948 [TestStep6] +testNumber=6 Service_Center=+447765222315 Wap_Port=226 Test_Data1=BEGIN:VCARD\r\nVERSION:2.1\r\nFN:Jal\r\nN:Jal\r\nORG:PanSoftware\r\nTITLE:Director\r\nLABEL:Islington\r\nEND:VCARD\r\n [TestStep7] +testNumber=7 Service_Center=+447765222315 Wap_Port=2948 [TestStep8] +testNumber=8 Service_Center=+447765222315 Wap_Port=2948 [TestStep9] +testNumber=9 Service_Center=+447765222315 Wap_Port=2948 [TestStep10] +testNumber=10 Test_Data1=BEGIN:VCARD\r\nVERSION:2.1\r\nFN:Jal\r\nN:Jal\r\nORG:PanSoftware\r\nTITLE:Director\r\nLABEL:Islington\r\nEND:VCARD\r\n Service_Center=+447765222315 Wap_Port=2948 [TestStep11] +testNumber=11 Service_Center=+447765222315 Wap_Port=2948 [TestStep12] +testNumber=12 Service_Center=+447765222315 Wap_Port=2948 [TestStep13] +testNumber=13 Service_Center=+447765222315 Wap_Port=228 Test_Data1=BEGIN:VCALENDAR\nVERSION:1.0\nBEGIN:VEVENT\nCATEGORIES:MEETING\nSTATUS:TENTATIVE\nDTSTART:20010401T033000Z\nDTEND:20010401T043000Z\nSUMMARY:Messaging Meeting\nDESCRIPTION:Britney and Justin to review newest proposal material\nCLASS:PRIVATE\nEND:VEVENT\nEND:VCALENDAR\r\n [TestStep14] +testNumber=14 Service_Center=+447765222315 Wap_Port=228 Test_Data1=BEGIN:VCALENDAR\nVERSION:1.0\nBEGIN:VEVENT\nCATEGORIES:MEETING\nSTATUS:TENTATIVE\nDTSTART:20010401T033000Z\nDTEND:20010401T043000Z\nSUMMARY:Messaging Meeting\nDESCRIPTION:Britney and Justin to review newest proposal material\nCLASS:PRIVATE\nEND:VEVENT\nEND:VCALENDAR\r\n [TestStep15] +testNumber=15 Service_Center=+447765222315 Wap_Port=9204 [TestStep16] +testNumber=16 Test_Data1=BEGIN:VCARD\r\nVERSION:2.1\r\nFN:Jal\r\nN:Jal\r\nORG:PanSoftware\r\nTITLE:Director\r\nLABEL:Islington\r\nEND:VCARD\r\n Service_Center=+447765222315 Wap_Port=2948 [TestStep17_TestWapDatagramSegmentContainingNoData] +testNumber=36 Service_Center=+447765222315 Wap_Port=9204 [Sending7BitBusinessCardWithEmailWAP] +testNumber=35 Service_Center=+447765222315 Wap_Port=226 Test_Data1=begin:vcard\r\nn:;Julia\r\nadr:;;;;;;\r\nversion:2.1\r\nemail;internet:julia.blumin@symbian.com\r\nfn:Julia Blumin\r\nend:vcard + +[EnumeratingVCard] +testNumber=34 +Service_Center=+447765222315 +Wap_Port=226 + +[OversizedDatagram] +testNumber=34 +Service_Center=+447765222315 +Wap_Port=226 + diff -r 962e6306d9d2 -r 7ef16719d8cb smsprotocols/smsstack/wapprot/test/Te_wapprot/WapProtSuiteDefs.h --- a/smsprotocols/smsstack/wapprot/test/Te_wapprot/WapProtSuiteDefs.h Fri Feb 19 23:59:33 2010 +0200 +++ b/smsprotocols/smsstack/wapprot/test/Te_wapprot/WapProtSuiteDefs.h Fri Mar 12 15:49:38 2010 +0200 @@ -15,21 +15,20 @@ * */ - - /** - @file + @file + @test */ -#if (!defined __WAP_DEFS__) -#define __WAP_DEFS__ +#ifndef WAPPROTSUITEDEFS_H +#define WAPPROTSUITEDEFS_H // Keys in the configuration ini file _LIT(KSCNumber,"Service_Center"); _LIT(KWapPort,"Wap_Port"); +_LIT(KWapPort2,"Wap_Port2"); _LIT(KTestData1,"Test_Data1"); _LIT(KTestData2,"Test_Data2"); -_LIT(KTSY,"SIM"); // For test step panics _LIT(KWapProtSuitePanic,"WapProtSuite"); @@ -40,7 +39,6 @@ // Could be read from the ini file const TInt KEchoPort = 7; - ////////////////////////////////////////////////////////////////////////////// // Wap Address / Port Settings ////////////////////////////////////////////////////////////////////////////// @@ -59,5 +57,4 @@ }; */ - -#endif +#endif // WAPPROTSUITEDEFS_H diff -r 962e6306d9d2 -r 7ef16719d8cb smsprotocols/smsstack/wapprot/test/Te_wapprot/WapProtSuiteServer.cpp --- a/smsprotocols/smsstack/wapprot/test/Te_wapprot/WapProtSuiteServer.cpp Fri Feb 19 23:59:33 2010 +0200 +++ b/smsprotocols/smsstack/wapprot/test/Te_wapprot/WapProtSuiteServer.cpp Fri Mar 12 15:49:38 2010 +0200 @@ -16,15 +16,16 @@ // /** - @file + @file + @test */ // Include your own server header file and step header file(s) here #include "WapProtSuiteServer.h" + #include "WapIoctlSteps.h" #include "WapStatusReports.h" - CWapProtSuite* CWapProtSuite::NewL() /** * @return - Instance of the test server @@ -33,19 +34,21 @@ * CTestServer derived server. */ { - CWapProtSuite * server = new (ELeave) CWapProtSuite(); + CWapProtSuite* server = new (ELeave) CWapProtSuite(); CleanupStack::PushL(server); - // CServer base class call - - RProcess handle = RProcess(); - TParsePtrC serverName(handle.FileName()); + + // CSmsStackTestServer intermediate base class call + server->InitializeTsyAndPhonesL(); + + // CServer base class call + RProcess handle = RProcess(); + TParsePtrC serverName(handle.FileName()); server->ConstructL(serverName.Name()); CleanupStack::Pop(server); return server; } - LOCAL_C void MainL() { CActiveScheduler* sched=NULL; @@ -255,10 +258,6 @@ else if (aStepName == _L("ReceiveWapMessage")) { testStep = new CReceiveWapMessage(); - } - else if (aStepName == _L("InitializePhone")) - { - testStep = new CInitializePhone(); } else if (aStepName == _L("TestEnumeratingVCard")) { @@ -272,11 +271,11 @@ { testStep = new CTestOversizedDatagram(); } - else if (aStepName == _L("TestWapDatagramSegmentContainingNoData")) - { - testStep = new CTestWapDatagramSegmentContainingNoData(); - } - + else if (aStepName == _L("TestWapDatagramSegmentContainingNoData")) + { + testStep = new CTestWapDatagramSegmentContainingNoData(); + } + // // Set the test step name here to save code!!! // diff -r 962e6306d9d2 -r 7ef16719d8cb smsprotocols/smsstack/wapprot/test/Te_wapprot/WapProtSuiteServer.h --- a/smsprotocols/smsstack/wapprot/test/Te_wapprot/WapProtSuiteServer.h Fri Feb 19 23:59:33 2010 +0200 +++ b/smsprotocols/smsstack/wapprot/test/Te_wapprot/WapProtSuiteServer.h Fri Mar 12 15:49:38 2010 +0200 @@ -15,23 +15,22 @@ * */ - - /** - @file + @file + @test */ -#if (!defined __WAPPROT_SUITE_SERVER_H__) -#define __WAPPROT_SUITE_SERVER_H__ -#include +#ifndef WAPPROT_SUITE_SERVER_H +#define WAPPROT_SUITE_SERVER_H -class CWapProtSuite : public CTestServer - { +#include "smsstackbasetestserver.h" + +class CWapProtSuite : public CSmsStackTestServer + { public: - static CWapProtSuite* NewL(); - // Base class pure virtual override - virtual CTestStep* CreateTestStep(const TDesC& aStepName); -private: - }; + static CWapProtSuite* NewL(); + // Base class pure virtual override + virtual CTestStep* CreateTestStep(const TDesC& aStepName); + }; -#endif +#endif // WAPPROT_SUITE_SERVER_H diff -r 962e6306d9d2 -r 7ef16719d8cb smsprotocols/smsstack/wapprot/test/Te_wapprot/WapProtSuiteStepBase.cpp --- a/smsprotocols/smsstack/wapprot/test/Te_wapprot/WapProtSuiteStepBase.cpp Fri Feb 19 23:59:33 2010 +0200 +++ b/smsprotocols/smsstack/wapprot/test/Te_wapprot/WapProtSuiteStepBase.cpp Fri Mar 12 15:49:38 2010 +0200 @@ -14,527 +14,161 @@ // /** - @file + @file + @test */ -#include -#include #include "WapProtSuiteStepBase.h" -#include "WapProtSuiteDefs.h" -/** -Utility for setting the test number used by SIM TSY -*/ -void CWapProtSuiteStepBase::SetTestNumberL() -{ - TInt testNumber; - GetIntFromConfig(ConfigSection(), _L("testNumber"), testNumber); - - RProperty testNumberProperty; - User::LeaveIfError(testNumberProperty.Attach(KUidPSSimTsyCategory, KPSSimTsyTestNumber)); - CleanupClosePushL(testNumberProperty); +#include +#include - TRequestStatus status; - testNumberProperty.Subscribe(status); - INFO_PRINTF1(_L("Setting Sim.Tsy test number P&S property")); - User::LeaveIfError(testNumberProperty.Set(KUidPSSimTsyCategory,KPSSimTsyTestNumber,testNumber)); - User::WaitForRequest(status); - - TEST(status.Int() == KErrNone); - TInt testNumberCheck; - User::LeaveIfError(testNumberProperty.Get(testNumberCheck)); - if (testNumber != testNumberCheck) - { - INFO_PRINTF3(_L("Test number property set to [%d], but value returned is [%d]"),testNumber,testNumberCheck); - User::Leave(KErrNotFound); - } +#include "smspver.h" +#include "WapProtSuiteDefs.h" +#include "wap_sock.h" +#include "smsstacktestconsts.h" - CleanupStack::PopAndDestroy(&testNumberProperty); - -} - - -void CWapProtSuiteStepBase::WaitForRecvL(RSocket& aSocket) +TVerdict CWapProtSuiteStepBase::doTestStepPreambleL() /** - * Wait for an Sms to be received - * @param aSocket The status is return to this socket - * @leave Leaves if receiving is completed with error code + * @return - TVerdict + * Implementation of CTestStep base class virtual + * Do all initialisation common to derived classes in here. */ { - TPckgBuf sbuf; - sbuf()=KSockSelectRead; - TRequestStatus status; - aSocket.Ioctl(KIOctlSelect,status,&sbuf,KSOLSocket); - User::WaitForRequest(status); - TEST(status.Int() == KErrNone); + //base class preamble - marks the heap + CSmsBaseTestStep::doTestStepPreambleL(); + + return TestStepResult(); + } + +TVerdict CWapProtSuiteStepBase::doTestStepPostambleL() + { + //base class postamble - unmarks the heap + CSmsBaseTestStep::doTestStepPostambleL(); + + return TestStepResult(); } - -CSmsMessage* CWapProtSuiteStepBase::RecvSmsL(RSocket& aSocket, TInt aIoctl) /** - * Receive an Sms - * @param aSocket is used to stream the sms message from the socket server - * @return CSmsMessage* :Sms message from Sms stack - * @leave Leaves if streaming the message from the socket server doesn't succeed - */ + Set up and open socket +*/ +void CWapProtSuiteStepBase::SetupWapSocketL() { - - RFs lFs; - User::LeaveIfError(lFs.Connect()); - - CSmsBuffer* buffer=CSmsBuffer::NewL(); - CSmsMessage* smsMessage=CSmsMessage::NewL(lFs, CSmsPDU::ESmsSubmit,buffer); - CleanupStack::PushL(smsMessage); - - RSmsSocketReadStream readstream(aSocket); - TRAPD(ret,readstream >> *smsMessage); - TEST(ret == KErrNone); - - TPckgBuf sbuf; - TRequestStatus status; - aSocket.Ioctl(aIoctl, status, &sbuf, KSolSmsProv); - User::WaitForRequest(status); - - CleanupStack::Pop(smsMessage); - - lFs.Close(); - - return smsMessage; + SetupWapSocketL(iSocket, iWapAddr, KWapPort); } - +void CWapProtSuiteStepBase::SetupWapSocketL(RSocket& aSocket, TWapAddr& aWapAddr, const TDesC& aPort, TBool aNewStyleClient) + { + OpenSocketL(iSocketServer, aSocket); -/** -Utility for setting up the WAP address - Port number and service center address -*/ -void CWapProtSuiteStepBase::SetWapAddrL() -{ - TInt port; - - //Get the port number from the ini file - GetIntFromConfig(ConfigSection(),_L("port"), port); + //Read port and SC number from ini file + ReadWapPortSettingsL(aWapAddr, aPort); + + if (aNewStyleClient) + { + // Indicating to the protocol that it's a new client + INFO_PRINTF1(_L("Socket set option for indicating new client")); + TInt ret = aSocket.SetOpt(KWapSmsOptionNewStyleClient,KWapSmsOptionLevel, 0); + TESTCHECKL(ret, KErrNone, "Indicating to the protocol that it's a new client") + } + + // Bind + TInt ret = aSocket.Bind(aWapAddr); + TESTCHECKL(ret, KErrNone, "Socket bind"); + + TProtocolDesc desc; + aSocket.Info(desc); + INFO_PRINTF2(_L("Protocol name: %S"), &desc.iName); - iWapAddr.SetWapPort(TWapPortNumber(port)); + TTimeIntervalMicroSeconds32 InitPause=9000000; //Required Pause to Allow SMSStack to Complete its Async Init + User::After(InitPause); //call to the TSY and finish its StartUp. - //Get the service center number - TPtrC telNumber; - GetStringFromConfig(ConfigSection(),_L("telNumber"), telNumber); - TBuf8<100> scNumber; - scNumber.Copy(telNumber); - TPtrC8 scAddr(scNumber); - iWapAddr.SetWapAddress(scAddr); - - // Bind - User::LeaveIfError(iSocket.Bind(iWapAddr)); -} - + } /** Setup a socket for receiving status repots */ void CWapProtSuiteStepBase::SetupStatusReportSocketL() { - // Open the socket for receiving status reports - User::LeaveIfError(iStatusReportSocket.Open(iSocketServer,KSMSAddrFamily,KSockDatagram,KSMSDatagramProtocol)); - - //Bind to the socket - //TSmsAddr smsAddr; - iSmsAddr.SetSmsAddrFamily(ESmsAddrStatusReport); - TInt ret=iStatusReportSocket.Bind(iSmsAddr); - INFO_PRINTF2(_L("Socket Bind Return Value : %d"),ret); - TESTL(ret == KErrNone); - - // Waiting for the phone to be initialised - //WaitForInitializeL(); -} - - -/** -Get the coding of the message -*/ -void CWapProtSuiteStepBase::SetCodingSchemeL() -{ - TInt dataCoding; - - //Get the port number from the ini file - GetIntFromConfig(ConfigSection(),_L("dataCoding"), dataCoding); - - if(dataCoding==8) - iCodingScheme = EWapSms8BitDCS; - else - iCodingScheme = EWapSms7BitDCS; - - if(iCodingScheme==EWapSms8BitDCS) - User::LeaveIfError(iSocket.SetOpt(KWapSmsOptionNameDCS,KWapSmsOptionLevel,EWapSms8BitDCS)); - else - User::LeaveIfError(iSocket.SetOpt(KWapSmsOptionNameDCS,KWapSmsOptionLevel,EWapSms7BitDCS)); -} - -void CWapProtSuiteStepBase::SetMessageTypeL() -{ - //Get the type of message - TPtrC messageType; - GetStringFromConfig(ConfigSection(),_L("type"), messageType); - - //Set the message type to WapDatagram - if(messageType.Compare(_L("Datagram")) ==0) - User::LeaveIfError(iSocket.SetOpt(KWapSmsOptionWapDatagram,KWapSmsOptionLevel)); -// else -// User::LeaveIfError(iSocket.SetOpt(KWapSmsOptionSmartMessage,KWapSmsOptionLevel)); - - //The creation of the message will set the type to SMART by default -} - - - -TVerdict CWapProtSuiteStepBase::doTestStepPreambleL() -/** - * @return - TVerdict - * Implementation of CTestStep base class virtual - * Load serial drivers - * Do all initialisation common to derived classes in here. - */ - { - __UHEAP_MARK; - - iScheduler = new(ELeave) CActiveScheduler; - CActiveScheduler::Install(iScheduler); - - iSecureBackupEngine = CSBEClient::NewL(); - iSecureBackupEngine->SetBURModeL(TDriveList(_L8("C")), - EBURNormal, ENoBackup); - - TInt err; - err=User::LoadPhysicalDevice(PDD_NAME); - TESTL(err == KErrNone || err == KErrAlreadyExists); - - err=User::LoadLogicalDevice(LDD_NAME ); - TESTL(err == KErrNone || err == KErrAlreadyExists); - - err = StartC32(); - if(err != KErrNone && err != KErrAlreadyExists) - { - ERR_PRINTF2(TRefByValue(_L("Start Comms Process Status = %d")), err); - SetTestStepResult(EFail); - } - - INFO_PRINTF1(_L("Deleting segmentation and reassembly stores...")); - - RFs fileServer; - User::LeaveIfError(fileServer.Connect()); - - // delete segmentation and reassembly store files before the test - _LIT(KReassemblyStoreName,"C:\\Private\\101F7989\\sms\\smsreast.dat"); - _LIT(KSegmentationStoreName,"C:\\Private\\101F7989\\sms\\smssegst.dat"); - _LIT(KWapReassemblyStoreName,"C:\\Private\\101F7989\\sms\\wapreast.dat"); - - fileServer.Delete(KWapReassemblyStoreName); - fileServer.Delete(KReassemblyStoreName); - fileServer.Delete(KSegmentationStoreName); - - fileServer.Close(); - - return TestStepResult(); - } - -TVerdict CWapProtSuiteStepBase::doTestStepPostambleL() - { - delete iSecureBackupEngine; - iSecureBackupEngine = NULL; - - delete iScheduler; - iScheduler = NULL; - - __UHEAP_MARKEND; - - return TestStepResult(); - } - -void CWapProtSuiteStepBase::WaitForInitializeL() - { - TName tsy(KTSY); - RTelServer serverT; - User::LeaveIfError(serverT.Connect()); - CleanupClosePushL(serverT); - User::LeaveIfError(serverT.LoadPhoneModule(tsy)); - - // Find the phone corresponding to this TSY and open a number of handles on it - TInt numPhones; - User::LeaveIfError(serverT.EnumeratePhones(numPhones)); - RPhone phone; - - while (numPhones--) - { - TName phoneTsy; - User::LeaveIfError(serverT.GetTsyName(numPhones,phoneTsy)); - if (phoneTsy.CompareF(tsy)==KErrNone) - { - RTelServer::TPhoneInfo info; - User::LeaveIfError(serverT.GetPhoneInfo(numPhones,info)); - User::LeaveIfError(phone.Open(serverT,info.iName)); - CleanupClosePushL(phone); - const TInt err = phone.Initialise(); - User::LeaveIfError(err); - CleanupStack::PopAndDestroy(&phone); - break; - } - } - - CleanupStack::PopAndDestroy(&serverT); - } - - - -/** - * Set high and low limits in .RSC file. When the SMS Stack starts the limits - * will be loaded as if set by the licensee. - * - * @param aLowLimit Low limit value. - * @param aHighLimit High limit value. - * - * @note Only works in debug mode for security reasons. - */ -void CWapProtSuiteStepBase::SetLowHighLimitsInSmsuRscL(TInt64 aLowLimit, TInt64 aHighLimit) - { - INFO_PRINTF3(_L("Setting high and low .RSC limits to %ld and %ld."), - aHighLimit, aLowLimit); - - __ASSERT_ALWAYS(aLowLimit < 0x7fffffff, User::Leave(KErrArgument)); - __ASSERT_ALWAYS(aHighLimit < 0x7fffffff, User::Leave(KErrArgument)); - __ASSERT_ALWAYS(aLowLimit < aHighLimit, User::Leave(KErrArgument)); - - RFs lFs; - User::LeaveIfError(lFs.Connect()); + // Open the socket for receiving status reports + OpenSocketL(iSocketServer, iStatusReportSocket, KSMSAddrFamily, KSMSDatagramProtocol); + + //Bind to the socket + iSmsAddr.SetSmsAddrFamily(ESmsAddrStatusReport); + TInt ret=iStatusReportSocket.Bind(iSmsAddr); + TESTCHECKL(ret, KErrNone, "Status Report Socket bind"); - // - // Data for the SMSU resource file. The low limit is written at position - // 20 and the high limit at position 24. - // - const TInt smsuRscSize = 34; - TChar smsuRscData[smsuRscSize] = - {0x6b, 0x4a, 0x1f, 0x10, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x19, 0xfd, 0x48, 0xe8, - 0x01, 0x04, 0x00, 0x00, 0x78, 0x56, 0x34, 0x12, - 0x87, 0x65, 0x43, 0x21, 0x14, 0x00, 0x18, 0x00, - 0x1c, 0x00}; - - smsuRscData[20] = (aLowLimit >> 0) & 0xff; - smsuRscData[21] = (aLowLimit >> 8) & 0xff; - smsuRscData[22] = (aLowLimit >> 16) & 0xff; - smsuRscData[23] = (aLowLimit >> 24) & 0xff; - smsuRscData[24] = (aHighLimit >> 0) & 0xff; - smsuRscData[25] = (aHighLimit >> 8) & 0xff; - smsuRscData[26] = (aHighLimit >> 16) & 0xff; - smsuRscData[27] = (aHighLimit >> 24) & 0xff; - - TBuf8 smsuRscBuffer; - - for (TInt index = 0; index < smsuRscSize; index++) - { - smsuRscBuffer.Append(smsuRscData[index]); - } - - // - // Ensure the target directory exists... - // - TInt ret; - - ret = lFs.MkDir(KSMSUResourceDir); - if (ret != KErrNone && ret != KErrAlreadyExists) - { - User::Leave(ret); - } - - // - // Write the RSC file to the private C:\ directory... - // - RFile file; - - User::LeaveIfError(file.Replace(lFs, KSMSUResourceFile, EFileWrite)); - CleanupClosePushL(file); - User::LeaveIfError(file.Write(smsuRscSize, smsuRscBuffer)); - CleanupStack::PopAndDestroy(&file); - - lFs.Close(); - } - -/** - * Sets high and low limits in .RSC file and then reserves disk space to match requested levels. - * - * Checks the current free space and then sets the high and low marks - * to be aHighDrop MB and aLowDrop MB below the current free space - * level. - * - * Then diskspace is reserved to aFreeDrop MB below the current free - * space level. - * - * If the current free space level is greater then aMax then the - * current free space level is set to aMax - * - * If the current free space level is less than aLowDrop MB then this - * method leaves with KErrArgument. - * - * @param aHighDrop The number of MB below the current free space level for the high level mark (in the .RSC file) - * @param aLowDrop The number of MB below the current free space level for the low level mark (in the .RSC file) - * @param aFreeDrop The number of MB below the current free space level to set the free space to ; - * if aFreeDrop == 0, then SetFreeDiskSpaceL() is not called - * @param aMax The maximum level for the high limit allowed - * - * @return The max current free space level used. - * - * @leave KErrArgument if the current free diskspace level is less than aLowDrop MB - * @leave KErrArgument if aMax is not greater than aLowDrop MB - * @leave KErrArgument if aHighDrop >= aLowDrop - */ -TUint64 CWapProtSuiteStepBase::SetHighLowLimitsAndDiskSpaceLevelL(TUint aHighDrop, TUint aLowDrop, TUint aFreeDrop, TUint64 aMax/*=0x7fffffff*/) - { - INFO_PRINTF5(_L("Setting High-Low limits and Diskspace levels [aHighDrop=%u, aLowDrop=%u, aFreeDrop=%u, aMax=%ld]"), - aHighDrop, aLowDrop, aFreeDrop, aMax); - - __ASSERT_ALWAYS( (aMax > (aLowDrop*1024*1024)), User::Leave(KErrArgument)); - __ASSERT_ALWAYS( (aLowDrop > aHighDrop), User::Leave(KErrArgument)); - - ReleaseDiskSpaceL(); - - TVolumeInfo volumeInfo; - RFs fs; - User::LeaveIfError(fs.Connect()); - CleanupClosePushL(fs); - User::LeaveIfError(fs.Volume(volumeInfo, EDriveC)); - INFO_PRINTF2(_L(" Drive C currently has %ld bytes free."), volumeInfo.iFree); + TProtocolDesc desc; + iStatusReportSocket.Info(desc); + INFO_PRINTF2(_L("Protocol name: %S"), &desc.iName); - TUint64 current = volumeInfo.iFree; - if( current < (aLowDrop*1024*1024) ) - { - INFO_PRINTF1(_L(" Drive C already has too little free space!")); - User::Leave(KErrArgument); - } - if( current > aMax ) - { - current = aMax; - } - TUint64 high = current - (aHighDrop*1024*1024); - TUint64 low = current - (aLowDrop*1024*1024); - - SetLowHighLimitsInSmsuRscL(low, high); - - if( aFreeDrop > 0 ) - { - TUint64 free = current - (aFreeDrop*1024*1024); - SetFreeDiskSpaceL(free); - } - - CleanupStack::PopAndDestroy(&fs); - return current; - } + TTimeIntervalMicroSeconds32 InitPause=9000000; //Required Pause to Allow SMSStack to Complete its Async Init + User::After(InitPause); //call to the TSY and finish its StartUp. -void CWapProtSuiteStepBase::SetFreeDiskSpaceFromDropLevelL(TUint aFreeDrop) - { - if( aFreeDrop == 0) - { - return; - } - - RFs fs; - User::LeaveIfError(fs.Connect()); - CleanupClosePushL(fs); - - TVolumeInfo volumeInfo; - User::LeaveIfError(fs.Volume(volumeInfo, EDriveC)); - TUint64 current = volumeInfo.iFree; - if( current > 0x7fffffff ) - { - current = 0x7fffffff; - } - TUint64 free = current - (aFreeDrop*1024*1024); - SetFreeDiskSpaceL(free); - CleanupStack::PopAndDestroy(&fs); - } -/** - * Reserves disk space so that a specified amount of free disk space is - * available. - * - * @param aNewFreeValue Amount of free space required. - */ -void CWapProtSuiteStepBase::SetFreeDiskSpaceL(TInt64 aNewFreeValue) - { - -#ifndef _DEBUG - ERR_PRINTF1(_L("Unexpected call: CWapProtSuiteStepBase::SetFreeDiskSpaceL() is expected to be called only in DEBUG mode.")); - User::Leave(KErrNotSupported); -#else - - INFO_PRINTF2(_L("Setting Drive C free disk space to %ld bytes."), aNewFreeValue); - - __ASSERT_DEBUG( (aNewFreeValue <= 0x7fffffff), User::Leave(KErrArgument)); - - TInt err = RProperty::Set(KUidPSSMSStackCategory, KUidPSSMSStackFreeDiskSpaceKey, (TInt)aNewFreeValue); - if (err != KErrNone) - { - ERR_PRINTF2(_L("RProperty::Set() failure [err=%d]"), err); - User::Leave(err); - } -#endif - } // CSMSTestSteps::SetFreeDiskSpaceL - -/** - * Release all reserved disk space. - */ -void CWapProtSuiteStepBase::ReleaseDiskSpaceL() - { - -#ifndef _DEBUG - ERR_PRINTF1(_L("Unexpected call: CWapProtSuiteStepBase::ReleaseDiskSpaceL() is expected to be called only in DEBUG mode.")); - User::Leave(KErrNotSupported); -#else - - INFO_PRINTF1(_L("CWapProtSuiteStepBase::ReleaseDiskSpaceL()")); - - RFs fs; - User::LeaveIfError(fs.Connect()); - CleanupClosePushL(fs); - - TVolumeInfo volumeInfo; - User::LeaveIfError(fs.Volume(volumeInfo, EDriveC)); - TUint64 current = volumeInfo.iFree; - if( current > 0x7fffffff ) - { - current = 0x7fffffff; - } - - SetFreeDiskSpaceL(current); - CleanupStack::PopAndDestroy(&fs); -#endif - } // CSMSTestSteps::ReleaseDiskSpaceL - +} /** Get WAP Address from INI file */ -void CWapProtSuiteStepBase::ReadWapPortSettingsL(TWapAddr &aWapAddr) +void CWapProtSuiteStepBase::ReadWapPortSettingsL(TWapAddr& aWapAddr, const TDesC& aPort) { //Local vars TPtrC16 telNumber; TInt port; //Read Port and SC number from INI file - if(!GetStringFromConfig(ConfigSection(),KSCNumber,telNumber) || - !GetIntFromConfig(ConfigSection(),KWapPort,port) - ) - { - // Leave if there's any error. - User::Leave(KErrNotFound); - } - + User::LeaveIfError(GetStringFromConfig(ConfigSection(),KSCNumber,telNumber)); + User::LeaveIfError(GetIntFromConfig(ConfigSection(), aPort, port)); aWapAddr.SetWapPort(TWapPortNumber(port)); TBuf8<100> scNumber; scNumber.Copy(telNumber); TPtrC8 scAddr(scNumber); - aWapAddr.SetWapAddress(scAddr); + aWapAddr.SetWapAddress(scAddr); } +/** +Get the coding of the message +*/ +void CWapProtSuiteStepBase::SetCodingSchemeL() + { + TInt dataCoding; + TInt err = KErrNone; + //Get the port number from the ini file + GetIntFromConfig(ConfigSection(),_L("dataCoding"), dataCoding); + + if(dataCoding==8) + { + err = iSocket.SetOpt(KWapSmsOptionNameDCS,KWapSmsOptionLevel,EWapSms8BitDCS); + } + else + { + err = iSocket.SetOpt(KWapSmsOptionNameDCS,KWapSmsOptionLevel,EWapSms7BitDCS); + } + + TESTCHECKL(err, KErrNone, "Setting Data Coding Scheme"); + } + +void CWapProtSuiteStepBase::SetMessageTypeL() + { + TInt err = KErrNone; + TPtrC messageType; + + //Get the type of message + GetStringFromConfig(ConfigSection(),_L("type"), messageType); + + //Set the message type to WapDatagram + if(messageType.Compare(_L("Datagram")) == 0) + { + err = iSocket.SetOpt(KWapSmsOptionWapDatagram,KWapSmsOptionLevel); + } + //The creation of the message will set the type to SMART by default + // else + // User::LeaveIfError(iSocket.SetOpt(KWapSmsOptionSmartMessage,KWapSmsOptionLevel)); + + TESTCHECKL(err, KErrNone, "Setting Message Type"); + } /** Used to check the CSmsMessage, will also print details of values in CSmsMessage @@ -583,13 +217,11 @@ void CWapProtSuiteStepBase::GetMessageParameterL(RSocket& aSock, TPtr8& aParameterStorePtr) { TRequestStatus getParamStatus; - - // Get the message parameter and assign to TPtr8 - INFO_PRINTF1(_L("Issue of IOCTL for KSOGetMessageParameters")); + + INFO_PRINTF1(_L("Getting message parameter...")); aSock.Ioctl(KSOGetMessageParameters, getParamStatus, &aParameterStorePtr, KSolWapProv); User::WaitForRequest(getParamStatus); - INFO_PRINTF1(_L("KSOGetMessageParameters on Ioctl completed")); - TESTL(getParamStatus.Int()==KErrNone); + TESTCHECK(getParamStatus.Int(), KErrNone, "Getting message parameter"); } /** @@ -607,15 +239,13 @@ CleanupClosePushL(rFs); smsMessageBuf = CSmsMessage::NewL(rFs, CSmsPDU::ESmsStatusReport, CSmsBuffer::NewL()); + CleanupStack::PushL(smsMessageBuf); smsMessageBuf->InternalizeWithoutBufferL(reader); INFO_PRINTF1(_L("Check the contents of the internalized sms message")); CheckSmsMessageL(*smsMessageBuf, aScnumber); - rFs.Close(); - delete smsMessageBuf; - CleanupStack::PopAndDestroy(); // rFs.Close() - CleanupStack::PopAndDestroy(&reader); + CleanupStack::PopAndDestroy(3, &reader); // reader, rFs, smsMessageBuf } void CWapProtSuiteStepBase::OpenSocketL(RSocketServ& aSocketServer, RSocket& aSocket, TUint aAddrFamily,TUint aProtocol) @@ -632,8 +262,6 @@ //If error == KErrNone, do nothing. //If error == KErrServerBusy, change the leave code to "84" to imply the failure otherwise the failed step will be started again. //Any other errors will leave with the error code. - - if(error == KErrServerBusy) { error = TEST_ERROR_CODE; @@ -645,7 +273,59 @@ } User::Leave(error); } - CleanupClosePushL(aSocket); } +void CWapProtSuiteStepBase::ReceiveWapMessageFromSocket(TInt aLength, TPtrC& aData) + { + // Receiving a message, length of which should be requested prior to calling + // this method from the socket and supplied thought aLength parameter + + TRequestStatus status; + TWapAddr recvWapAddr; + HBufC8* recvBuf = HBufC8::NewLC(aLength); + TPtr8 recvPtr = recvBuf->Des(); + + INFO_PRINTF1(_L("Receiving a message from the socket...")); + iSocket.RecvFrom(recvPtr, recvWapAddr, 0, status); + User::WaitForRequest(status); + TESTCHECKL(status.Int(), KErrNone, "Receiving a message"); + + TBuf8<300> data; + data.Copy(aData); + TESTCHECK(recvPtr.Compare(data), 0, "Checking the received message matched expected"); + + // Confirm the receipt of the message to the client + INFO_PRINTF1(_L("Setting Socket option for indicating receipt of the message...")); + TInt ret = iSocket.SetOpt(KWapSmsOptionOKToDeleteMessage,KWapSmsOptionLevel, 0); + TESTCHECKL(ret, KErrNone, "Setting Socket option for indicating receipt of the message"); + CleanupStack::PopAndDestroy(recvBuf); + } + +void CWapProtSuiteStepBase::ReceiveWapMessage(TPtrC& aData) + { + TRequestStatus ioctlStatus; + TPckgBuf length; + + INFO_PRINTF1(_L("Issuing IOCTL for getting the length of the message...")); + iSocket.Ioctl(KSOGetLength, ioctlStatus, &length, KSolWapProv); + User::WaitForRequest(ioctlStatus); + TESTCHECKL(ioctlStatus.Int(), KErrNone, "Getting the length of the incoming message"); + + // Check if reported length is correct + TESTCHECK(length(), aData.Length(), "Check if reported length is correct"); + + ReceiveWapMessageFromSocket(length(), aData); + } + +void CWapProtSuiteStepBase::SendWapMessage(TPtrC& aData) + { + TRequestStatus status; + TBuf8<300> data; + data.Copy(aData); + + INFO_PRINTF1(_L("Sending a message...")); + iSocket.SendTo(data, iWapAddr, 0, status); + User::WaitForRequest(status); + TESTCHECKL(status.Int(), KErrNone, "Sending a message"); + } diff -r 962e6306d9d2 -r 7ef16719d8cb smsprotocols/smsstack/wapprot/test/Te_wapprot/WapProtSuiteStepBase.h --- a/smsprotocols/smsstack/wapprot/test/Te_wapprot/WapProtSuiteStepBase.h Fri Feb 19 23:59:33 2010 +0200 +++ b/smsprotocols/smsstack/wapprot/test/Te_wapprot/WapProtSuiteStepBase.h Fri Mar 12 15:49:38 2010 +0200 @@ -15,32 +15,19 @@ * */ - - /** - @file + @file + @test */ -#if (!defined __WAPPROT_SUITE_STEP_BASE__) -#define __WAPPROT_SUITE_STEP_BASE__ -#include +#ifndef WAPPROTSUITESTEPBASE_H +#define WAPPROTSUITESTEPBASE_H + +#include "smsstackbaseteststeps.h" + #include - -#include #include -#include -#include -#include - -#include -#include -#include -#include -#include #include -#include "WapProtSuiteDefs.h" -#include "wap_sock.h" -#include "smsustrm.h" #if defined (__WINS__) #define PDD_NAME _L("ECDRV") @@ -53,58 +40,41 @@ using namespace conn; - -// Location and name of the RSC file. -_LIT(KSMSUResourceDir, "C:\\private\\101f7989\\sms\\"); -_LIT(KSMSUResourceFile, "C:\\private\\101f7989\\sms\\smsu.rsc"); -// Location of directory for reserving disk space -_LIT(KTempDiskSpaceDirName, "C:\\sms\\temp\\"); - -class CWapProtSuiteStepBase : public CTestStep +class CWapProtSuiteStepBase : public CSmsBaseTestStep { public: virtual TVerdict doTestStepPreambleL(); virtual TVerdict doTestStepPostambleL(); - - + + void SetupWapSocketL(); + void SetupWapSocketL(RSocket& aSocket, TWapAddr& aWapAddr, const TDesC& aPort, TBool aNewStyleClient = ETrue); + //Socket for receiving status reports + void SetupStatusReportSocketL(); - //Utitilies - void WaitForRecvL(RSocket& aSocket); - CSmsMessage* RecvSmsL(RSocket& aSocket, TInt aIoctl = KIoctlReadMessageSucceeded); - TUint64 SetHighLowLimitsAndDiskSpaceLevelL(TUint aHighDrop, TUint aLowDrop, TUint aFreeDrop, TUint64 aMax=0x7fffffff); - void SetFreeDiskSpaceFromDropLevelL(TUint aFreeDrop); - void SetLowHighLimitsInSmsuRscL(TInt64 aLowLimit, TInt64 aHighLimit); - void SetFreeDiskSpaceL(TInt64 aNewFreeValue); - void ReleaseDiskSpaceL(); - void ReadWapPortSettingsL(TWapAddr &aWapAddr); - void SetTestNumberL(); - void SetWapAddrL(); + void ReadWapPortSettingsL(TWapAddr& aWapAddr, const TDesC& aPort); void SetCodingSchemeL(); void SetMessageTypeL(); - - //Socket for receiving status reports - void SetupStatusReportSocketL(); - -private: - void CheckSmsMessageL(CSmsMessage& aSmsmessagebuf, TPtrC8& aScnumber); protected: - void WaitForInitializeL(); void InternaliseSmsDataAndCheckL(TDes8& aBuffer , TPtrC8& aScnumber); TInt GetMessageParameterLengthL(RSocket& aSock); void GetMessageParameterL(RSocket& aSock, TPtr8& aParameterStorePtr); - void OpenSocketLC(RSocketServ& aSocketServer, RSocket& aSocket, TUint aAddrFamily = KWAPSMSAddrFamily, TUint aProtocol =KWAPSMSDatagramProtocol); - void OpenSocketL(RSocketServ& aSocketServer, RSocket& aSocket, TUint aAddrFamily = KWAPSMSAddrFamily, TUint aProtocol =KWAPSMSDatagramProtocol); + + void OpenSocketLC(RSocketServ& aSocketServer, RSocket& aSocket, TUint aAddrFamily = KWAPSMSAddrFamily, TUint aProtocol =KWAPSMSDatagramProtocol); + void OpenSocketL(RSocketServ& aSocketServer, RSocket& aSocket, TUint aAddrFamily = KWAPSMSAddrFamily, TUint aProtocol =KWAPSMSDatagramProtocol); + + void ReceiveWapMessageFromSocket(TInt aLength, TPtrC& aData); + void ReceiveWapMessage(TPtrC& aData); + void SendWapMessage(TPtrC& aData); + +private: + void CheckSmsMessageL(CSmsMessage& aSmsmessagebuf, TPtrC8& aScnumber); protected: - CActiveScheduler* iScheduler; - CSBEClient* iSecureBackupEngine; - RSocketServ iSocketServer; RSocket iSocket; RSocket iStatusReportSocket; TWapAddr iWapAddr; - TWapSmsDataCodingScheme iCodingScheme; TSmsAddr iSmsAddr; }; -#endif +#endif // WAPPROTSUITESTEPBASE_H diff -r 962e6306d9d2 -r 7ef16719d8cb smsprotocols/smsstack/wapprot/test/Te_wapprot/WapStatusReports.cpp --- a/smsprotocols/smsstack/wapprot/test/Te_wapprot/WapStatusReports.cpp Fri Feb 19 23:59:33 2010 +0200 +++ b/smsprotocols/smsstack/wapprot/test/Te_wapprot/WapStatusReports.cpp Fri Mar 12 15:49:38 2010 +0200 @@ -16,120 +16,124 @@ // /** - @file + @file + @test */ #include "WapStatusReports.h" +#include +#include + +#include "WapProtSuiteDefs.h" + /** Preamble for all status report steps */ TVerdict CTestWapStatusReports::doTestStepPreambleL() -{ - CWapProtSuiteStepBase::doTestStepPreambleL(); - - SetTestNumberL(); - - // Connect to socket server - User::LeaveIfError(iSocketServer.Connect()); + { + CWapProtSuiteStepBase::doTestStepPreambleL(); + + OpenSocketL(iSocketServer, iSocket); + + SetCodingSchemeL(); + INFO_PRINTF1(_L("Coding scheme set is successful ...")); + SetMessageTypeL(); + INFO_PRINTF1(_L("Message type setup is successful ...")); + ReadWapPortSettingsL(iWapAddr, KWapPort); + INFO_PRINTF1(_L("Reading Wap port setting is successful ...")); + + // Bind + User::LeaveIfError(iSocket.Bind(iWapAddr)); + + TTimeIntervalMicroSeconds32 InitPause=9000000; //Required Pause to Allow SMSStack to Complete its Async Init + User::After(InitPause); //call to the TSY and finish its StartUp. - // Define and open the socket - User::LeaveIfError(iSocket.Open(iSocketServer,KWAPSMSAddrFamily,KSockDatagram,KWAPSMSDatagramProtocol)); - - // Waiting for the phone to be initialised - WaitForInitializeL(); + + return TestStepResult(); + } - SetCodingSchemeL(); - SetMessageTypeL(); - SetWapAddrL(); - - return TestStepResult(); -} +/** +Postamble for all status report steps +*/ +TVerdict CTestWapStatusReports::doTestStepPostambleL() + { + iSocket.Close(); + + CWapProtSuiteStepBase::doTestStepPostambleL(); + + return TestStepResult(); + } /** Utility for sending a wap message */ void CTestWapStatusReports::SendWapMessageL() -{ - // Indicating to the protocol that it's a new client - //INFO_PRINTF1(_L("Socket set option for indicating new client")); - //User::LeaveIfError(iSocket.SetOpt(KWapSmsOptionNewStyleClient,KWapSmsOptionLevel, 0)); - - //Get the data - TPtrC textData; - GetStringFromConfig(ConfigSection(),_L("message"), textData); - - //Set the buffer - TBuf8<1000> data; - data.Copy(textData); - - //Send the message - TRequestStatus status; - iSocket.SendTo(data, iWapAddr, 0, status); - User::WaitForRequest(status); - User::LeaveIfError(status.Int()); - INFO_PRINTF1(_L("Message sent!")); -} - + { + // Indicating to the protocol that it's a new client + //INFO_PRINTF1(_L("Socket set option for indicating new client")); + //User::LeaveIfError(iSocket.SetOpt(KWapSmsOptionNewStyleClient,KWapSmsOptionLevel, 0)); + + //Get the data + TPtrC textData; + GetStringFromConfig(ConfigSection(),_L("message"), textData); + + //Set the buffer + TBuf8<1000> data; + data.Copy(textData); + + //Send the message + TRequestStatus status; + iSocket.SendTo(data, iWapAddr, 0, status); + User::WaitForRequest(status); + User::LeaveIfError(status.Int()); + INFO_PRINTF1(_L("Message sent!")); + } /** Utility for getting the expected status */ void CTestWapStatusReports::GetExpectedStatus() -{ - //Get the port number from the ini file - GetIntFromConfig(ConfigSection(),_L("expectedStatus"), iExpectedStatus); -} + { + //Get the port number from the ini file + GetIntFromConfig(ConfigSection(),_L("expectedStatus"), iExpectedStatus); + } /** Utility for receiving status reports */ TSmsStatus::TSmsStatusValue CTestWapStatusReports::ReceiveStatusReportL() -{ - INFO_PRINTF1(_L("waiting for incoming status report...") ); - WaitForRecvL(iStatusReportSocket); - CSmsMessage* smsMessage = RecvSmsL(iStatusReportSocket); - - INFO_PRINTF1(_L("incoming SMS") ); - - //Check the status report - CleanupStack::PushL(smsMessage); - TBool isSR = (smsMessage->Type()==CSmsPDU::ESmsStatusReport); - - if (isSR) - { - INFO_PRINTF1(_L("Received status report")); - TSmsServiceCenterAddress telephoneNumber=smsMessage->ToFromAddress(); - } - else - { - INFO_PRINTF1(_L("Received SMS is NOT a Status report!")); - } - - TEST(isSR==1); - - //Get the status report - CSmsStatusReport& statusReport = static_cast(smsMessage->SmsPDU()); - TSmsStatus::TSmsStatusValue status = statusReport.Status(); - - CleanupStack::PopAndDestroy(smsMessage); - - return status; -} - - -/** -Postamble for all status report steps -*/ -TVerdict CTestWapStatusReports::doTestStepPostambleL() -{ - iSocket.Close(); - iSocketServer.Close(); - - CWapProtSuiteStepBase::doTestStepPostambleL(); - - return TestStepResult(); -} + { + INFO_PRINTF1(_L("waiting for incoming status report...") ); + WaitForRecvL(iStatusReportSocket); + CSmsMessage* smsMessage = RecvSmsL(iStatusReportSocket); + + INFO_PRINTF1(_L("incoming SMS") ); + + //Check the status report + CleanupStack::PushL(smsMessage); + TBool isSR = (smsMessage->Type()==CSmsPDU::ESmsStatusReport); + + if (isSR) + { + INFO_PRINTF1(_L("Received status report")); + TSmsServiceCenterAddress telephoneNumber=smsMessage->ToFromAddress(); + } + else + { + INFO_PRINTF1(_L("Received SMS is NOT a Status report!")); + } + + TEST(isSR); + + //Get the status report + CSmsStatusReport& statusReport = static_cast(smsMessage->SmsPDU()); + TSmsStatus::TSmsStatusValue status = statusReport.Status(); + + CleanupStack::PopAndDestroy(smsMessage); + + return status; + } //----------------------------------------------------------------------------- @@ -137,78 +141,80 @@ Setup the SMS for TP-SRR operations on the SMS */ TVerdict CTestRequestingStatusReports::doTestStepPreambleL() -{ - //Call the base class preamble - CTestWapStatusReports::doTestStepPreambleL(); - - return TestStepResult(); -} + { + //Call the base class preamble + CTestWapStatusReports::doTestStepPreambleL(); + + return TestStepResult(); + } /** Common test steps for all status reports steps */ TVerdict CTestRequestingStatusReports::doTestStepL() -{ - SendWapMessageL(); - - return TestStepResult(); -} + { + SendWapMessageL(); + + return TestStepResult(); + } + //----------------------------------------------------------------------------- /** Setup the SMS for TP-SRR operations on the SMS */ TVerdict CTestRequestingStatusReportsWithOption::doTestStepPreambleL() -{ - //Call the base class preamble - CTestRequestingStatusReports::doTestStepPreambleL(); - - INFO_PRINTF1(_L("Socket set option for indicating last PDU status report")); - User::LeaveIfError(iSocket.SetOpt(KWapSmsStatusReportScheme, KWapSmsOptionLevel, EWapSmsTPSRR)); + { + //Call the base class preamble + CTestRequestingStatusReports::doTestStepPreambleL(); - return TestStepResult(); -} + INFO_PRINTF1(_L("Socket set option for indicating last PDU status report")); + User::LeaveIfError(iSocket.SetOpt(KWapSmsStatusReportScheme, KWapSmsOptionLevel, EWapSmsTPSRR)); + + return TestStepResult(); + } + //----------------------------------------------------------------------------- /** Setup the SMS for TP-SRR operations on the SMS */ TVerdict CTestReceivingStatusReports::doTestStepPreambleL() -{ - //Call the base class preamble - CTestWapStatusReports::doTestStepPreambleL(); - - GetExpectedStatus(); - SetupStatusReportSocketL(); + { + //Call the base class preamble + CTestWapStatusReports::doTestStepPreambleL(); - return TestStepResult(); -} + GetExpectedStatus(); + SetupStatusReportSocketL(); + + return TestStepResult(); + } /** Common test steps for all status reports steps */ TVerdict CTestReceivingStatusReports::doTestStepL() -{ - SendWapMessageL(); - TSmsStatus::TSmsStatusValue status; - status=ReceiveStatusReportL(); - - TESTL(status == iExpectedStatus); - - return TestStepResult(); -} + { + SendWapMessageL(); + TSmsStatus::TSmsStatusValue status; + status=ReceiveStatusReportL(); + + TESTL(status == iExpectedStatus); + + return TestStepResult(); + } /** Common test steps for all status reports steps */ TVerdict CTestReceivingStatusReports::doTestStepPostambleL() -{ - iStatusReportSocket.Close(); - - //Call the base class preamble - CTestWapStatusReports::doTestStepPostambleL(); - - return TestStepResult(); -} + { + iStatusReportSocket.Close(); + + //Call the base class preamble + CTestWapStatusReports::doTestStepPostambleL(); + + return TestStepResult(); + } //----------------------------------------------------------------------------- @@ -216,31 +222,31 @@ Common test steps for all status reports steps */ TVerdict CTestReceivingStatusReportsSevenBitMultiplePDUs::doTestStepL() -{ - CTestReceivingStatusReports::doTestStepL(); - - //We will receive 2 status reports for this message - TSmsStatus::TSmsStatusValue status; - status=ReceiveStatusReportL(); - TESTL(status == iExpectedStatus); - - return TestStepResult(); -} + { + CTestReceivingStatusReports::doTestStepL(); + + //We will receive 3 status reports for this message + TSmsStatus::TSmsStatusValue status; + status=ReceiveStatusReportL(); + TESTL(status == iExpectedStatus); + + status=ReceiveStatusReportL(); + TESTL(status == iExpectedStatus); + return TestStepResult(); + } //----------------------------------------------------------------------------- TVerdict CTestReceivingStatusReportsWithOption::doTestStepPreambleL() -{ - //Sets up the socket for receiving status reports - CTestReceivingStatusReports::doTestStepPreambleL(); - - //Set the option for last PDU only (TPSRR Scheme) - INFO_PRINTF1(_L("Socket set option for indicating last PDU status report")); - User::LeaveIfError(iSocket.SetOpt(KWapSmsStatusReportScheme, KWapSmsOptionLevel, EWapSmsTPSRR)); + { + //Sets up the socket for receiving status reports + CTestReceivingStatusReports::doTestStepPreambleL(); + + //Set the option for last PDU only (TPSRR Scheme) + INFO_PRINTF1(_L("Socket set option for indicating last PDU status report")); + User::LeaveIfError(iSocket.SetOpt(KWapSmsStatusReportScheme, KWapSmsOptionLevel, EWapSmsTPSRR)); return TestStepResult(); -} + } //----------------------------------------------------------------------------- - - diff -r 962e6306d9d2 -r 7ef16719d8cb smsprotocols/smsstack/wapprot/test/Te_wapprot/WapStatusReports.h --- a/smsprotocols/smsstack/wapprot/test/Te_wapprot/WapStatusReports.h Fri Feb 19 23:59:33 2010 +0200 +++ b/smsprotocols/smsstack/wapprot/test/Te_wapprot/WapStatusReports.h Fri Mar 12 15:49:38 2010 +0200 @@ -15,23 +15,15 @@ * */ - - /** - @file + @file + @test */ - - -#if (!defined __WAPPROT_STATUS_REPORTS__) -#define __WAPPROT_STATUS_REPORTS__ +#ifndef WAPPROTSTATUSREPORTS_H +#define WAPPROTSTATUSREPORTS_H #include "WapProtSuiteStepBase.h" -#include -#include -#include -#include - /** Base class for testing WAP status reports @@ -53,7 +45,6 @@ TInt iExpectedStatus; }; - /** Base class for sending WAP messages, requesting status reports */ @@ -64,7 +55,6 @@ virtual TVerdict doTestStepL(); }; - /** Class sets the request for only the last segment to receive status reports */ @@ -74,7 +64,6 @@ virtual TVerdict doTestStepPreambleL(); }; - /** Class for receiving status reports */ @@ -86,7 +75,6 @@ virtual TVerdict doTestStepPostambleL(); }; - /** Class for receiving status reports for multiple 7 bit messages */ @@ -96,7 +84,6 @@ virtual TVerdict doTestStepL(); }; - /** Step receives a status report for a request for only the last segment */ @@ -106,5 +93,4 @@ virtual TVerdict doTestStepPreambleL(); }; - -#endif +#endif //WAPPROTSTATUSREPORTS_H diff -r 962e6306d9d2 -r 7ef16719d8cb smsprotocols/smsstack/wapprot/test/Te_wapprot/WapStatusReports.ini --- a/smsprotocols/smsstack/wapprot/test/Te_wapprot/WapStatusReports.ini Fri Feb 19 23:59:33 2010 +0200 +++ b/smsprotocols/smsstack/wapprot/test/Te_wapprot/WapStatusReports.ini Fri Mar 12 15:49:38 2010 +0200 @@ -4,117 +4,117 @@ [Sending7BitSinglePDUWAP] testNumber =17 -port =2948 +Wap_Port=2948 message =BEGIN:VCARD\r\nVERSION:2.1\r\nFN:Jal\r\nN:Jal\r\nORG:PanSoftware\r\nTITLE:Director\r\nLABEL:Islington\r\nEND:VCARD\r\n -telNumber =+447765222315 +Service_Center=+447765222315 dataCoding =7 type =Datagram [Sending8BitSinglePDUWAP] testNumber =18 -port =2948 +Wap_Port=2948 message =BEGIN:VCARD\r\nVERSION:2.1\r\nFN:Jal\r\nN:Jal\r\nORG:PanSoftware\r\nTITLE:Director\r\nLABEL:Islington\r\nEND:VCARD\r\n -telNumber =+447765222315 +Service_Center=+447765222315 dataCoding =8 type =Datagram [Sending7BitMultiplePDU] testNumber =19 -port =266 +Wap_Port=266 message =BEGIN:VCALENDAR\nVERSION:1.0\nBEGIN:VEVENT\nCATEGORIES:MEETING\nSTATUS:TENTATIVE\nDTSTART:20010401T033000Z\nDTEND:20010401T043000Z\nSUMMARY:Messaging Meeting\nDESCRIPTION:Britney and Justin to review newest proposal material\nCLASS:PRIVATE\nEND:VEVENT\nEND:VCALENDAR\r\n -telNumber =+447765222315 +Service_Center=+447765222315 dataCoding =7 type =Smart [Sending8BitMultiplePDU] testNumber =20 -port =250 +Wap_Port=250 message =BEGIN:VCALENDAR\nVERSION:1.0\nBEGIN:VEVENT\nCATEGORIES:MEETING\nSTATUS:TENTATIVE\nDTSTART:20010401T033000Z\nDTEND:20010401T043000Z\nSUMMARY:Messaging Meeting\nDESCRIPTION:Britney and Justin to review newest proposal material\nCLASS:PRIVATE\nEND:VEVENT\nEND:VCALENDAR\r\n -telNumber =+447765222315 +Service_Center=+447765222315 dataCoding =8 type =Datagram [Sending7BitMultiplePDUWithOption] testNumber =21 -port =299 +Wap_Port=299 message =BEGIN:VCALENDAR\nVERSION:1.0\nBEGIN:VEVENT\nCATEGORIES:MEETING\nSTATUS:TENTATIVE\nDTSTART:20010401T033000Z\nDTEND:20010401T043000Z\nSUMMARY:Messaging Meeting\nDESCRIPTION:Britney and Justin to review newest proposal material\nCLASS:PRIVATE\nEND:VEVENT\nEND:VCALENDAR\r\n -telNumber =+447765222315 +Service_Center=+447765222315 dataCoding =7 type =Smart [Sending8BitMultiplePDUWithOption] testNumber =22 -port =299 +Wap_Port=299 message =BEGIN:VCALENDAR\nVERSION:1.0\nBEGIN:VEVENT\nCATEGORIES:MEETING\nSTATUS:TENTATIVE\nDTSTART:20010401T033000Z\nDTEND:20010401T043000Z\nSUMMARY:Messaging Meeting\nDESCRIPTION:Britney and Justin to review newest proposal material\nCLASS:PRIVATE\nEND:VEVENT\nEND:VCALENDAR\r\n -telNumber =+447765222315 +Service_Center=+447765222315 dataCoding =8 type =Datagram [Sending7BitSinglePDUSMART] testNumber =24 -port =2948 +Wap_Port=2948 message =BEGIN:VCARD\r\nVERSION:2.1\r\nFN:Jal\r\nN:Jal\r\nORG:PanSoftware\r\nTITLE:Director\r\nLABEL:Islington\r\nEND:VCARD\r\n -telNumber =+447765222315 +Service_Center=+447765222315 dataCoding =7 type =Smart [Sending8BitSinglePDUSMART] testNumber =25 -port =2948 +Wap_Port=2948 message =BEGIN:VCARD\r\nVERSION:2.1\r\nFN:Jal\r\nN:Jal\r\nORG:PanSoftware\r\nTITLE:Director\r\nLABEL:Islington\r\nEND:VCARD\r\n -telNumber =+447765222315 +Service_Center=+447765222315 dataCoding =8 type =Smart [Sending7BitSinglePDUWAPWithOption] testNumber =26 -port =2948 +Wap_Port=2948 message =BEGIN:VCARD\r\nVERSION:2.1\r\nFN:Jal\r\nN:Jal\r\nORG:PanSoftware\r\nTITLE:Director\r\nLABEL:Islington\r\nEND:VCARD\r\n -telNumber =+447765222315 +Service_Center=+447765222315 dataCoding =7 type =Smart [ReceiveStatusReportSinglePDU7BitSmart] testNumber =27 -port =266 +Wap_Port=266 message =BEGIN:VCARD\r\nVERSION:2.1\r\nFN:Jal\r\nN:Jal\r\nORG:PanSoftware\r\nTITLE:Director\r\nLABEL:Islington\r\nEND:VCARD\r\n -telNumber =+447765222315 +Service_Center=+447765222315 dataCoding =7 type =Smart expectedStatus =0 [ReceiveStatusReportMultiple7BitSmart] testNumber =28 -port =266 +Wap_Port=266 message =BEGIN:VCALENDAR\nVERSION:1.0\nBEGIN:VEVENT\nCATEGORIES:MEETING\nSTATUS:TENTATIVE\nDTSTART:20010401T033000Z\nDTEND:20010401T043000Z\nSUMMARY:Messaging Meeting\nDESCRIPTION:Britney and Justin to review newest proposal material\nCLASS:PRIVATE\nEND:VEVENT\nEND:VCALENDAR\r\n -telNumber =+447765222315 +Service_Center=+447765222315 dataCoding =7 type =Smart expectedStatus =0 [ReceiveStatusReportSinglePDU8BitWAP] testNumber =29 -port =2948 +Wap_Port=2948 message =BEGIN:VCARD\r\nVERSION:2.1\r\nFN:Jal\r\nN:Jal\r\nORG:PanSoftware\r\nTITLE:Director\r\nLABEL:Islington\r\nEND:VCARD\r\n -telNumber =+447765222315 +Service_Center=+447765222315 dataCoding =8 type =Datagram expectedStatus =0 [ReceiveStatusReportMultiplePDU8BitWAP] testNumber =30 -port =250 +Wap_Port=250 message =BEGIN:VCALENDAR\nVERSION:1.0\nBEGIN:VEVENT\nCATEGORIES:MEETING\nSTATUS:TENTATIVE\nDTSTART:20010401T033000Z\nDTEND:20010401T043000Z\nSUMMARY:Messaging Meeting\nDESCRIPTION:Britney and Justin to review newest proposal material\nCLASS:PRIVATE\nEND:VEVENT\nEND:VCALENDAR\r\n -telNumber =+447765222315 +Service_Center=+447765222315 dataCoding =8 type =Datagram expectedStatus =64 [ReceiveStatusReportLastPDUMultiple8BitWAP] testNumber =31 -port =250 +Wap_Port=250 message =BEGIN:VCALENDAR\nVERSION:1.0\nBEGIN:VEVENT\nCATEGORIES:MEETING\nSTATUS:TENTATIVE\nDTSTART:20010401T033000Z\nDTEND:20010401T043000Z\nSUMMARY:Messaging Meeting\nDESCRIPTION:Britney and Justin to review newest proposal material\nCLASS:PRIVATE\nEND:VEVENT\nEND:VCALENDAR\r\n -telNumber =+447765222315 +Service_Center=+447765222315 dataCoding =8 type =Datagram expectedStatus =0 \ No newline at end of file diff -r 962e6306d9d2 -r 7ef16719d8cb telephonyprotocols/pdplayer/inc/PDPSCPR.h --- a/telephonyprotocols/pdplayer/inc/PDPSCPR.h Fri Feb 19 23:59:33 2010 +0200 +++ b/telephonyprotocols/pdplayer/inc/PDPSCPR.h Fri Mar 12 15:49:38 2010 +0200 @@ -157,6 +157,7 @@ //quite a big structure so kept here to avoid stack overflow. RPacketContext::TDataChannelV2 iTempDataChannelV2; + TInt iProvisionFailure; protected: __FLOG_DECLARATION_MEMBER; TInt iLinkUps; diff -r 962e6306d9d2 -r 7ef16719d8cb telephonyprotocols/pdplayer/src/PDPSCPR.cpp --- a/telephonyprotocols/pdplayer/src/PDPSCPR.cpp Fri Feb 19 23:59:33 2010 +0200 +++ b/telephonyprotocols/pdplayer/src/PDPSCPR.cpp Fri Mar 12 15:49:38 2010 +0200 @@ -243,7 +243,8 @@ :CCoreSubConnectionProvider(aFactory, PDPSCprActivities::activityMap::Self()), iPDPFsmContextId(EInvalidContextId), iPdpFsmInterface(NULL), - iActivityAwaitingResponse(KActivityNull) + iActivityAwaitingResponse(KActivityNull), + iProvisionFailure(KErrCorrupt) { LOG_NODE_CREATE1(KPDPSCprSubTag, CPDPSubConnectionProvider, " [factory=%08x]", &aFactory) __FLOG_OPEN(KCFNodeTag, KPDPSCprSubTag); diff -r 962e6306d9d2 -r 7ef16719d8cb telephonyprotocols/pdplayer/src/PDPSCPRStates.cpp --- a/telephonyprotocols/pdplayer/src/PDPSCPRStates.cpp Fri Feb 19 23:59:33 2010 +0200 +++ b/telephonyprotocols/pdplayer/src/PDPSCPRStates.cpp Fri Mar 12 15:49:38 2010 +0200 @@ -177,7 +177,12 @@ DEFINE_SMELEMENT(TSelfInit, NetStateMachine::MStateTransition, PDPSCprStates::TContext) void TSelfInit::DoL() { - if (iContext.Node().iPdpFsmInterface == NULL) + CPDPSubConnectionProvider &tNode = static_cast(iContext.Node()); + + // if the FSM interface is null, this means that we're initializing a secondary context + // as this code is common for both + + if (tNode.iPdpFsmInterface == NULL) { //Non-default SCPR running this code ASSERT(iContext.Node().ControlProvider()); @@ -193,60 +198,58 @@ } else { - //default SCPR running this code - const CTSYProvision* tsyProvision = static_cast( - iContext.Node().AccessPointConfig().FindExtension(CTSYProvision::TypeId())); + //default SCPR running this code (i.e. primary context) + const CTSYProvision* tsyProvision =\ + static_cast(tNode.AccessPointConfig().FindExtension(CTSYProvision::TypeId())); + if (tsyProvision == NULL) { + // we do not have to set provision failure here + // as it was set in the base class constructor + // svg will show the leave error code though User::Leave(KErrCorrupt); } + CGPRSProvision* gprsProvision = const_cast(static_cast( - iContext.Node().AccessPointConfig().FindExtension(STypeId::CreateSTypeId(CGPRSProvision::EUid,CGPRSProvision::ETypeId)))); + tNode.AccessPointConfig().FindExtension(STypeId::CreateSTypeId(CGPRSProvision::EUid,CGPRSProvision::ETypeId)))); + if (gprsProvision == NULL) - { - User::Leave(KErrCorrupt); - } - switch(gprsProvision->UmtsGprsRelease()) + { + tNode.iProvisionFailure = KErrCorrupt; + User::Leave(KErrCorrupt); + } + + TInt configType = TPacketDataConfigBase::KConfigGPRS; + + switch (gprsProvision->UmtsGprsRelease()) { case TPacketDataConfigBase::KConfigGPRS: - iContext.Node().iPdpFsmInterface->NewL(tsyProvision->iTsyName, TPacketDataConfigBase::KConfigGPRS); + configType = TPacketDataConfigBase::KConfigGPRS; break; case TPacketDataConfigBase::KConfigRel99Rel4: - iContext.Node().iPdpFsmInterface->NewL(tsyProvision->iTsyName, TPacketDataConfigBase::KConfigRel99Rel4); + configType = TPacketDataConfigBase::KConfigRel99Rel4; break; case TPacketDataConfigBase::KConfigRel5: - iContext.Node().iPdpFsmInterface->NewL(tsyProvision->iTsyName, TPacketDataConfigBase::KConfigRel5); + configType = TPacketDataConfigBase::KConfigRel5; break; default: + // we do not have to set provision failure here + // as it was set in the base class constructor + // svg will show the leave error code though User::Leave(KErrNotSupported); + break; } - - iContext.Node().iDefaultSCPR = static_cast(&iContext.Node()); + + // a provisioning failure would be unrecoverable as this only happens + // we cannot create memory, access etel or there is a configuration + // problem - however, leaving with an error here does not stop the + // sequence of events because the handler for provision config is not + // expecting a response. if there is a failure then it will be errored in + // the next activity in the sequence, i.e. DataClientStart + TRAP(tNode.iProvisionFailure,tNode.iPdpFsmInterface->NewL(tsyProvision->iTsyName,configType)); + + tNode.iDefaultSCPR = static_cast(&tNode); } - - //Replace the BCA provision - we'll be overriding the portname (the rest stays the same). - - // BA: This doesn't make sense, the port name is copied too so just replaces one CBCAProvision - // with another identical one!! -// const CBCAProvision* bcaExtension = static_cast( -// iContext.Node().AccessPointConfig().FindExtensionL(CBCAProvision::TypeId())); - -/* - CBCAProvision* bcaExtension2 = new (ELeave) CBCAProvision; - CleanupStack::PushL(bcaExtension2); - - //Could optimise it one day. - bcaExtension2->SetBCAStack(bcaExtension->GetBCAStack()); - bcaExtension2->SetBCAName(bcaExtension->GetBCAName()); - bcaExtension2->SetIAPid(bcaExtension->GetIAPid()); - bcaExtension2->SetPortName(bcaExtension->GetPortName()); - bcaExtension2->SetCommRole(bcaExtension->GetCommRole()); - bcaExtension2->SetHandShaking(bcaExtension->GetHandShaking()); - - iContext.Node().iAccessPointConfig->RemoveAndDestroyExtension_INTERNALTECH(CBCAProvision::TypeId()); - iContext.Node().iAccessPointConfig->AppendExtensionL(bcaExtension2); - CleanupStack::Pop(bcaExtension2); //Ownership with the list -*/ } @@ -447,7 +450,15 @@ void TCreatePrimaryPDPCtx::DoL() { - ASSERT(iContext.Node().iPdpFsmInterface); + // if the provisionconfig failed, there is no way to inform the CPR of the failure + // as the framework doesn't expect a response from provisionconfig, so error here + // if there was a problem so that the appropriate clean up can happen. + + CPDPDefaultSubConnectionProvider &tNode = static_cast(iContext.Node()); + + User::LeaveIfError(tNode.iProvisionFailure); + + ASSERT(tNode.iPdpFsmInterface); iContext.Node().PostToClients( iContext.NodeId(), diff -r 962e6306d9d2 -r 7ef16719d8cb telephonyprotocols/pdplayer/src/pdpmcpr.cpp --- a/telephonyprotocols/pdplayer/src/pdpmcpr.cpp Fri Feb 19 23:59:33 2010 +0200 +++ b/telephonyprotocols/pdplayer/src/pdpmcpr.cpp Fri Mar 12 15:49:38 2010 +0200 @@ -154,17 +154,26 @@ mec.AppendExtensionL(gprsProvision); CleanupStack::Pop(gprsProvision); - //It's legal for the qos defaults to be absent. - //in this case they're going to be supplied by - //GuQoS. + //It's not legal for the qos defaults to be absent. CDefaultPacketQoSProvision* defaultQoS = NULL; - TRAP_IGNORE(defaultQoS = CDefaultPacketQoSProvision::NewL(iapView)); - if (defaultQoS) - { - CleanupStack::PushL(defaultQoS); - mec.AppendExtensionL(defaultQoS); - CleanupStack::Pop(defaultQoS); - } + TRAPD(ret, defaultQoS = CDefaultPacketQoSProvision::NewL(iapView)); + if ((KErrNone == ret) && defaultQoS) + { + CleanupStack::PushL(defaultQoS); + mec.AppendExtensionL(defaultQoS); + CleanupStack::Pop(defaultQoS); + } + else + { + if (KErrNoMemory == ret) + { + User::Leave(KErrNoMemory); + } + else + { + User::Leave(KErrCorrupt); + } + } CRawIpAgentConfig* rawIpAgentConfig = CRawIpAgentConfig::NewLC(iapView, &gprsProvision->GetScratchContextAs()); mec.AppendExtensionL(rawIpAgentConfig); diff -r 962e6306d9d2 -r 7ef16719d8cb telephonyprotocols/pdplayer/umts/spudfsm/src/cpdpfsmfactory.cpp --- a/telephonyprotocols/pdplayer/umts/spudfsm/src/cpdpfsmfactory.cpp Fri Feb 19 23:59:33 2010 +0200 +++ b/telephonyprotocols/pdplayer/umts/spudfsm/src/cpdpfsmfactory.cpp Fri Mar 12 15:49:38 2010 +0200 @@ -100,7 +100,12 @@ void CPdpFsmFactory::Close (void) { SPUDFSMVERBOSE_FNLOG("CPdpFsmFactory::Close()"); - iEtelDriverInput->Close(); + // in OOM conditions iEtelDriveInput may not have successfully + // been created, check here for safety. + if (iEtelDriverInput != NULL) + { + iEtelDriverInput->Close(); + } } diff -r 962e6306d9d2 -r 7ef16719d8cb telephonyprotocols/pdplayer/umts/spudtel/src/ceteldriverfactory.cpp --- a/telephonyprotocols/pdplayer/umts/spudtel/src/ceteldriverfactory.cpp Fri Feb 19 23:59:33 2010 +0200 +++ b/telephonyprotocols/pdplayer/umts/spudtel/src/ceteldriverfactory.cpp Fri Mar 12 15:49:38 2010 +0200 @@ -205,12 +205,14 @@ { SPUDTELVERBOSE_INFO_LOG1(_L("Free pdp id : %d"), aPdpId); - // the context has to be closed before a call to FreePdp - __ASSERT_ALWAYS(!Context(aPdpId).PacketContext().SubSessionHandle(), User::Panic(KTxtSpudTel, KErrInUse)); - - delete iContexts[aPdpId]; - iContexts[aPdpId] = NULL; - + // In an OOM situation, this object may be cleaned up prior to establishment. + if (iContexts[aPdpId] != NULL) + { + // the context has to be closed before a call to FreePdp + __ASSERT_ALWAYS(!Context(aPdpId).PacketContext().SubSessionHandle(), User::Panic(KTxtSpudTel, KErrInUse)); + delete iContexts[aPdpId]; + iContexts[aPdpId] = NULL; + } } diff -r 962e6306d9d2 -r 7ef16719d8cb telephonyprotocols/pdplayer/umts/test/te_spudNetworkSide/configs/te_SpudNetworkSide.xml --- a/telephonyprotocols/pdplayer/umts/test/te_spudNetworkSide/configs/te_SpudNetworkSide.xml Fri Feb 19 23:59:33 2010 +0200 +++ b/telephonyprotocols/pdplayer/umts/test/te_spudNetworkSide/configs/te_SpudNetworkSide.xml Fri Mar 12 15:49:38 2010 +0200 @@ -130,6 +130,14 @@ 0 Location.Mobile + + IAP_GRPS_BAD_QOS + OutgoingGPRS.GPRS_BAD_QOS + ModemBearer.Loopback_SPUD_2 + Network.Intranet + 0 + Location.Mobile + @@ -417,6 +425,16 @@ TRUE 192.168.1.13 + + GPRS_BAD_QOS + IPV4 + lowernif=RAWIP + FALSE + TRUE + TRUE + 192.168.1.2 + UmtsR99QoSAndOn.BAD_QOS + @@ -611,6 +629,36 @@ FALSE 0 + + + BAD_QOS + 1 + 1 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + FALSE + FALSE + 0 + diff -r 962e6306d9d2 -r 7ef16719d8cb telephonyprotocols/pdplayer/umts/test/te_spudNetworkSide/configs/te_spudNetworkSide.ini --- a/telephonyprotocols/pdplayer/umts/test/te_spudNetworkSide/configs/te_spudNetworkSide.ini Fri Feb 19 23:59:33 2010 +0200 +++ b/telephonyprotocols/pdplayer/umts/test/te_spudNetworkSide/configs/te_spudNetworkSide.ini Fri Mar 12 15:49:38 2010 +0200 @@ -430,3 +430,11 @@ SimTsyTestNum = 106 PrimaryIapId1 = 2 PrimaryActivationErr1 = -17 + +[PrimaryActivationFails20] +SimTsyTestNum = 1 +PrimaryIapId1 = 10 +PrimaryActivationErr1 = -20 +SubConnectionCount1 = 0 +SubConnectionCount2 = 2 +PolicySelector = 1 diff -r 962e6306d9d2 -r 7ef16719d8cb telephonyprotocols/pdplayer/umts/test/te_spudNetworkSide/scripts/TE_spudNetworkSide.script --- a/telephonyprotocols/pdplayer/umts/test/te_spudNetworkSide/scripts/TE_spudNetworkSide.script Fri Feb 19 23:59:33 2010 +0200 +++ b/telephonyprotocols/pdplayer/umts/test/te_spudNetworkSide/scripts/TE_spudNetworkSide.script Fri Mar 12 15:49:38 2010 +0200 @@ -553,6 +553,23 @@ END_TESTCASE NET-Spud-NetworkSide-0829 run_script z:\TestData\scripts\te_esock_test_unloadesockForced.script +run_script z:\TestData\scripts\te_esock_test_loadesock.script + +START_TESTCASE NET-Spud-NetworkSide-0830 +//! @SYMTestCaseID NET-Spud-NetworkSide-0830 +//! @SYMTestCaseDesc Sanity check: fail to activate Primary context (KErrCorrupt) because of bad QoS record in UmtsR99QoSAndOnTable. +//! @SYMFssID NETWORKING/Spud/Control Plane/Primary PDP Context Creation +//! @SYMTestActions Explicitly start the SPUD interface. SIM TSY, etc fail to activate the primary context. +//! @SYMTestExpectedResults Primary PDP context activation fails with -20. +//! @SYMTestPriority Critical +//! @SYMTestStatus Implemented +//! @SYMTestType CIT +RUN_TEST_STEP 60 TE_SpudNetworkSide CSpudPrimary z:\testdata\configs\te_spudNetworkSide.ini PrimaryActivationFails20 +DELAY 3000 +RUN_TEST_STEP 60 TE_SpudNetworkSide CESockCheck z:\testdata\configs\te_spudNetworkSide.ini ESockCheck +END_TESTCASE NET-Spud-NetworkSide-0830 + +run_script z:\TestData\scripts\te_esock_test_unloadesockForced.script RUN_UTILS MakeReadWrite c:\simtsy\config.txt RUN_UTILS MakeReadWrite c:\config.txt diff -r 962e6306d9d2 -r 7ef16719d8cb telephonyprotocols/rawipnif/rawipnif2/src/IPv6Binder.cpp --- a/telephonyprotocols/rawipnif/rawipnif2/src/IPv6Binder.cpp Fri Feb 19 23:59:33 2010 +0200 +++ b/telephonyprotocols/rawipnif/rawipnif2/src/IPv6Binder.cpp Fri Mar 12 15:49:38 2010 +0200 @@ -25,6 +25,8 @@ #include "RawIP2Flow.h" #include "IPv6Binder.h" #include +#include + #ifdef WCDMA_STUB diff -r 962e6306d9d2 -r 7ef16719d8cb telephonyprotocols/rawipnif/src/IPv6Binder.cpp --- a/telephonyprotocols/rawipnif/src/IPv6Binder.cpp Fri Feb 19 23:59:33 2010 +0200 +++ b/telephonyprotocols/rawipnif/src/IPv6Binder.cpp Fri Mar 12 15:49:38 2010 +0200 @@ -25,6 +25,8 @@ #include "RawIPFlow.h" #include "IPv6Binder.h" #include +#include + using namespace ESock; #ifdef WCDMA_STUB diff -r 962e6306d9d2 -r 7ef16719d8cb telephonyprotocols/rawipnif/src/RawIPFlow.cpp --- a/telephonyprotocols/rawipnif/src/RawIPFlow.cpp Fri Feb 19 23:59:33 2010 +0200 +++ b/telephonyprotocols/rawipnif/src/RawIPFlow.cpp Fri Mar 12 15:49:38 2010 +0200 @@ -529,11 +529,13 @@ { _LOG_L1C2(_L8("CRawIPFlow %08x:\tUnbind()"), this); - ASSERT(iBinder); - iBinder->Unbind(aUpperReceiver, aUpperControl); + if (iBinder) + { + iBinder->Unbind(aUpperReceiver, aUpperControl); - delete iBinder; - iBinder = NULL; + delete iBinder; + iBinder = NULL; + } SendDataClientIdleIfNoClients(); } diff -r 962e6306d9d2 -r 7ef16719d8cb telephonyserverplugins/common_tsy/commontsy/exportinc/serviceapi/MmTsy_IPCdefs.h --- a/telephonyserverplugins/common_tsy/commontsy/exportinc/serviceapi/MmTsy_IPCdefs.h Fri Feb 19 23:59:33 2010 +0200 +++ b/telephonyserverplugins/common_tsy/commontsy/exportinc/serviceapi/MmTsy_IPCdefs.h Fri Mar 12 15:49:38 2010 +0200 @@ -132,7 +132,7 @@ EMmTsyNotifyEGprsInfoChangeIPC, //1000373 - EMmTsyGetCustomVendorExtPtrIPC, //1000374 + EMmTsyGetCustomVendorExtPtrIPC, //1000374 (@deprecated. There should be no references to this.) EMmTsyONStoreReadEntryIPC, //1000375 EMmTsyONStoreReadSizeIPC, //1000376 diff -r 962e6306d9d2 -r 7ef16719d8cb telephonyserverplugins/common_tsy/commontsy/inc/mmcustomtsy/CMmCustomTsy.h --- a/telephonyserverplugins/common_tsy/commontsy/inc/mmcustomtsy/CMmCustomTsy.h Fri Feb 19 23:59:33 2010 +0200 +++ b/telephonyserverplugins/common_tsy/commontsy/inc/mmcustomtsy/CMmCustomTsy.h Fri Mar 12 15:49:38 2010 +0200 @@ -1922,12 +1922,6 @@ CMmCustomSecurityTsy* iMmSecurityTsy; /** - * Pointer to vendor extension - * Own. - */ - CMmCustomVendorExt* iMmCustomVendorExt; - - /** * Pointer to 2G authentication data * Not Own. */ diff -r 962e6306d9d2 -r 7ef16719d8cb telephonyserverplugins/common_tsy/commontsy/inc/mmcustomtsy/CMmSIMTsy.h --- a/telephonyserverplugins/common_tsy/commontsy/inc/mmcustomtsy/CMmSIMTsy.h Fri Feb 19 23:59:33 2010 +0200 +++ b/telephonyserverplugins/common_tsy/commontsy/inc/mmcustomtsy/CMmSIMTsy.h Fri Mar 12 15:49:38 2010 +0200 @@ -482,6 +482,11 @@ * Is ViagHomeZone cache ready */ TBool iViagHomeZoneCacheReady; + + /** + * last ViagHomeZone cache error + */ + TInt iLastViagHomeZoneCacheError; /** * Used for queuing ReadViagHomeZoneCache requests diff -r 962e6306d9d2 -r 7ef16719d8cb telephonyserverplugins/common_tsy/commontsy/inc/mmsms/cmmsmstsy.h --- a/telephonyserverplugins/common_tsy/commontsy/inc/mmsms/cmmsmstsy.h Fri Feb 19 23:59:33 2010 +0200 +++ b/telephonyserverplugins/common_tsy/commontsy/inc/mmsms/cmmsmstsy.h Fri Mar 12 15:49:38 2010 +0200 @@ -833,6 +833,15 @@ * @return TBool */ TBool IsRequestPossibleInOffline( TInt aIpc ) const; + + /** + * Checks if error code is a relay protocol error + * + * + * @param aError Cause value received from LTSY + * @return TBool + */ + static TBool IsRPError(TInt aError); private: diff -r 962e6306d9d2 -r 7ef16719d8cb telephonyserverplugins/common_tsy/commontsy/inc/mmstorage/cmmonstoretsy.h --- a/telephonyserverplugins/common_tsy/commontsy/inc/mmstorage/cmmonstoretsy.h Fri Feb 19 23:59:33 2010 +0200 +++ b/telephonyserverplugins/common_tsy/commontsy/inc/mmstorage/cmmonstoretsy.h Fri Mar 12 15:49:38 2010 +0200 @@ -334,6 +334,12 @@ virtual void Complete( TInt aReqHandleType, TInt aError ); #endif + /* + * This method used to notify the phone that the phone book store initilization was complete + * + * @param aError Error value + */ + void PhoneBookStoreInitCompleteL(TInt aError); private: /** @@ -674,11 +680,6 @@ RMobileONStore::TMobileONStoreInfoV1* iONStoreInfoChanged; /* - * Holds the info is GetInfo active - */ - TBool iIsGetInfoActive; - - /* * ReadAll message pointer * Own. */ diff -r 962e6306d9d2 -r 7ef16719d8cb telephonyserverplugins/common_tsy/commontsy/inc/mmstorage/cmmphonebookstoretsy.h --- a/telephonyserverplugins/common_tsy/commontsy/inc/mmstorage/cmmphonebookstoretsy.h Fri Feb 19 23:59:33 2010 +0200 +++ b/telephonyserverplugins/common_tsy/commontsy/inc/mmstorage/cmmphonebookstoretsy.h Fri Mar 12 15:49:38 2010 +0200 @@ -346,6 +346,11 @@ */ TUint8 GetPhonebookType(); + /** + * This method will be activate by the phone to notify the SIM is ready + */ + void SimIsReady(); + private: /** @@ -812,6 +817,8 @@ * Attribute to tell the status of PB initialization */ TBool iIsPBInitCompleted; + + TInt iInitError; }; #endif // PHONEBOOKSTORAGE_H diff -r 962e6306d9d2 -r 7ef16719d8cb telephonyserverplugins/common_tsy/commontsy/inc/mmtsy/cmmphonetsy.h --- a/telephonyserverplugins/common_tsy/commontsy/inc/mmtsy/cmmphonetsy.h Fri Feb 19 23:59:33 2010 +0200 +++ b/telephonyserverplugins/common_tsy/commontsy/inc/mmtsy/cmmphonetsy.h Fri Mar 12 15:49:38 2010 +0200 @@ -76,6 +76,8 @@ class MTelephonyAudioControl; +class CCtsySystemStatePluginHandler; + // CLASS DECLARATION /** @@ -239,6 +241,10 @@ */ TBool IsModemStatusReady() const; + CCtsySystemStatePluginHandler* SystemStatePluginHandler() + { + return iSystemStatePluginHandler; + } private: /** used for queuing GetServiceTable requests */ struct TServiceTableRequests @@ -1463,6 +1469,13 @@ */ void SaveFdnInfoDetails(TInt aErrorCode, CMmDataPackage* aDataPackage ); + /* + * This method used to notify the phone that the phone book store initilization was complete + * + * @param aError Error value + */ + void PhoneBookStoreInitCompleteL(TInt aError); + private: /** @@ -2709,6 +2722,16 @@ * Pointer to the ChargingStatusObserver */ CChargingStatusObserver* iChargingStatus; + + /** + * Pointer to SystemStatePlugin + */ + CCtsySystemStatePluginHandler* iSystemStatePluginHandler; + + /** + * Holds the mailbox data + */ + RMobilePhone::TMobilePhoneVoicemailIdsV3 iMailboxData; }; #endif // CMMPHONETSY_H diff -r 962e6306d9d2 -r 7ef16719d8cb telephonyserverplugins/common_tsy/commontsy/src/mmcustomtsy/CMmCustomTsy.cpp --- a/telephonyserverplugins/common_tsy/commontsy/src/mmcustomtsy/CMmCustomTsy.cpp Fri Feb 19 23:59:33 2010 +0200 +++ b/telephonyserverplugins/common_tsy/commontsy/src/mmcustomtsy/CMmCustomTsy.cpp Fri Mar 12 15:49:38 2010 +0200 @@ -66,28 +66,7 @@ iMmSecurityTsy = CMmCustomSecurityTsy::NewL( this, aMmPhoneTsy ); - // Create custom vendor extension - // Send request to the Domestic OS layer. - iMmCustomVendorExt = (CMmCustomVendorExt*) NULL; - CMmDataPackage package; - - package.PackData( &iMmCustomVendorExt ); // ptr to ptr - Phone()->MessageManager()->HandleRequestL( - EMmTsyGetCustomVendorExtPtrIPC, &package ); -TFLOGSTRING2("TSY: CMmCustomTsy::ConstructL -- iMmCustomVendorExt=0x%x", TUint(iMmCustomVendorExt)); - // The request above is 'completed' immediatedly (there is no need for - // actual complete) - - // iMmCustomVendorExt should now hold ptr to custom vendor extension. - // But if not, no problem, we just use the base class. - if ( NULL == iMmCustomVendorExt ) - { -TFLOGSTRING("TSY: CMmCustomTsy::ConstructL -- no vendor IPC extensions"); - iMmCustomVendorExt = new(ELeave)CMmCustomVendorExt(); - } - - // initialize custom vendor extension - iMmCustomVendorExt->InitializeL( *this ); + #ifdef REQHANDLE_TIMER // Create req handle store @@ -162,7 +141,7 @@ CMmCustomTsy::~CMmCustomTsy() { TFLOGSTRING("TSY: CMmCustomTsy::~CMmCustomTsy"); - + iMmPhoneTsy->SetHomeZoneParamsChecked( EFalse ); iFeatureControl.Close(); // Delete subsystems @@ -171,12 +150,6 @@ delete iMmSubTsy[i]; } - if ( iMmCustomVendorExt ) - { - // delete vendor extension - delete iMmCustomVendorExt; - } - if ( iMmSecurityTsy ) { // Delete SecurityTsy @@ -195,7 +168,6 @@ delete iTsyReqHandleStore; } - iMmCustomVendorExt = NULL; iMmSecurityTsy = NULL; iMmCustomExtInterface = NULL; iTsyReqHandleStore = NULL; @@ -293,18 +265,9 @@ if ( KErrNotSupported == ret ) { - // then check if this is vendor extension IPC - // these IPCs are handled by VendorExt class in licensee tsy. - if ( iMmCustomVendorExt->SupportingIPC(aIpc) ) - { - ret = iMmCustomVendorExt->DoExtFuncL( aTsyReqHandle, aIpc, - aPackage ); - } - else - { - // then check all the Custom extension modules - ret = CMmTsyBase::DoBaseExtFuncL( aTsyReqHandle, aIpc, aPackage ); - } + + // then check all the Custom extension modules + ret = CMmTsyBase::DoBaseExtFuncL( aTsyReqHandle, aIpc, aPackage ); // if extension modules did not serve this request if ( KErrNotSupported == ret ) @@ -638,14 +601,7 @@ break; default: - if ( iMmCustomVendorExt->SupportingIPC( aIpc ) ) - { - ret = iMmCustomVendorExt->RegisterNotification( aIpc ); - } - else - { - ret = CMmTsyBase::RegisterNotification( aIpc ); - } + ret = CMmTsyBase::RegisterNotification( aIpc ); break; } @@ -686,14 +642,7 @@ ret = KErrNone; break; default: - if ( iMmCustomVendorExt->SupportingIPC( aIpc ) ) - { - ret = iMmCustomVendorExt->DeregisterNotification( aIpc ); - } - else - { - ret = CMmTsyBase::DeregisterNotification( aIpc ); - } + ret = CMmTsyBase::DeregisterNotification( aIpc ); break; } @@ -794,14 +743,7 @@ ret = 0; break; default: - if ( iMmCustomVendorExt->SupportingIPC( aIpc ) ) - { - ret = iMmCustomVendorExt->ReqModeL( aIpc ); - } - else - { - ret = CMmTsyBase::ReqModeL ( aIpc ); - } + ret = CMmTsyBase::ReqModeL ( aIpc ); break; } @@ -841,14 +783,7 @@ break; default: - if ( iMmCustomVendorExt->SupportingIPC( aIpc ) ) - { - numberOfSlots = iMmCustomVendorExt->NumberOfSlotsL( aIpc ); - } - else - { - numberOfSlots = CMmTsyBase:: NumberOfSlotsL( aIpc ); - } + numberOfSlots = CMmTsyBase:: NumberOfSlotsL( aIpc ); break; } @@ -1061,16 +996,9 @@ policy = TSecurityPolicy( ECapabilityWriteDeviceData ); break; default: - if ( iMmCustomVendorExt->SupportingIPC(ipc) ) - { - policy = iMmCustomVendorExt->GetRequiredPlatSecCaps(ipc); - } - else - { - // if none of the above then we end up here, - // as a default we already have caps as alwaysfail. + // if none of the above then we end up here, + // as a default we already have caps as alwaysfail. TFLOGSTRING("TSY: CMmCustomTsy::GetRequiredPlatSecCaps policy=AlwaysFail"); - } break; } @@ -1239,11 +1167,6 @@ ret = iMmSecurityTsy->CancelService ( aIpc, aTsyReqHandle ); } - else if ( iMmCustomVendorExt->SupportingIPC( aIpc ) ) - { - ret = iMmCustomVendorExt->CancelService ( aIpc, - aTsyReqHandle ); - } else { ret = CMmTsyBase::CancelService ( aIpc, aTsyReqHandle ); @@ -5453,19 +5376,22 @@ // packed parameter: TSetDriveMode (mode status) CMmDataPackage dataPackage; dataPackage.PackData( aModeStatus ); + // allow for ECustomSetDriveModeIPC immediate completion +#ifdef REQHANDLE_TIMER + // set timer for the request + SetTypeOfResponse ( ECustomTsySetDriveMode, aTsyReqHandle ); +#else + iTsyReqHandleStore->SetTsyReqHandle( ECustomTsySetDriveMode, + aTsyReqHandle ); +#endif // REQHANDLE_TIMER TInt ret = iMmPhoneTsy->MessageManager()->HandleRequestL( ECustomSetDriveModeIPC, &dataPackage ); // check success - if ( KErrNone != ret ) + if ( (KErrNone != ret) && (iTsyReqHandleStore->ResetTsyReqHandle(ECustomTsySetDriveMode)) ) { ReqCompleted ( aTsyReqHandle, ret ); } - else - { - // Store the request handle - iReqHandleType = ECustomTsySetDriveMode; - } } } else diff -r 962e6306d9d2 -r 7ef16719d8cb telephonyserverplugins/common_tsy/commontsy/src/mmcustomtsy/CMmSIMTsy.cpp --- a/telephonyserverplugins/common_tsy/commontsy/src/mmcustomtsy/CMmSIMTsy.cpp Fri Feb 19 23:59:33 2010 +0200 +++ b/telephonyserverplugins/common_tsy/commontsy/src/mmcustomtsy/CMmSIMTsy.cpp Fri Mar 12 15:49:38 2010 +0200 @@ -556,6 +556,7 @@ TInt aError ) { TFLOGSTRING("TSY: CMmSIMTsy::CompleteReadViagHomeZoneCacheRespL"); + iLastViagHomeZoneCacheError = aError; if (iCurrentlyRetrievedCache == NULL) { // Got an unexpected update... ignore! @@ -643,9 +644,21 @@ else { // caching aborted - delete iCurrentlyRetrievedCache; - iCurrentlyRetrievedCache = NULL; + delete iCurrentlyRetrievedCache; + iCurrentlyRetrievedCache = NULL; TFLOGSTRING2("TSY: CMmSIMTsy::CompleteReadViagHomeZoneCacheRespL:There was a problem reading cache values from SIM, error=%d", aError); + //iViagHomeZoneCacheReady = ETrue; +TFLOGSTRING("TSY: CMmSIMTsy::CompleteReadViagHomeZoneCacheRespL: Caching completed unsuccessfully!"); + + for (TInt i = 0; i < iReadViagHomeZoneCacheRequests.Count(); i++) + { +TFLOGSTRING2("TSY: CMmSIMTsy::CompleteReadDynamicViagHomeZoneCacheRespL: for i:%d", i); + TReadViagHomeZoneCacheRequest* req = + iReadViagHomeZoneCacheRequests[i]; + iMmCustomTsy->ReqCompleted(req->iReqHandle, aError); + } + iReadViagHomeZoneCacheRequests.ResetAndDestroy(); + } } @@ -748,6 +761,11 @@ req->iViagRecordId = aViagRecordId; req->iViagRecordContent = aViagRecordContent; iReadViagHomeZoneCacheRequests.AppendL( req ); + if(iLastViagHomeZoneCacheError != KErrNone) + { + // Got an error last time, ask again + StartDynamicCachingL(); + } } // complete to client @@ -882,7 +900,7 @@ void CMmSIMTsy::StartDynamicCachingL() { TFLOGSTRING("TSY: CMmSIMTsy::StartDynamicCachingL"); - + iLastViagHomeZoneCacheError = KErrNone; // Make sure there are no ongoing dynamic caching requests.. if( iCurrentlyRetrievedCache ) { diff -r 962e6306d9d2 -r 7ef16719d8cb telephonyserverplugins/common_tsy/commontsy/src/mmgsmwcdma/cmmcallgsmwcdmaext.cpp --- a/telephonyserverplugins/common_tsy/commontsy/src/mmgsmwcdma/cmmcallgsmwcdmaext.cpp Fri Feb 19 23:59:33 2010 +0200 +++ b/telephonyserverplugins/common_tsy/commontsy/src/mmgsmwcdma/cmmcallgsmwcdmaext.cpp Fri Mar 12 15:49:38 2010 +0200 @@ -123,9 +123,7 @@ TInt err = iFeatureControl.Open(); iUsingFeatureManager = (err == KErrNone); - //Create the SSM Plugin Handler on creation rather than on demand to avoid problems - //with Emergency Calls in Out Of Memory situations. - iSystemStatePluginHandler = CCtsySystemStatePluginHandler::NewL(); + iSystemStatePluginHandler = iMmCallTsy->Phone()->SystemStatePluginHandler(); ResetInternalAttributes(); } @@ -174,12 +172,6 @@ iMmCallTsy = NULL; iMessageManager = NULL; - if ( iSystemStatePluginHandler ) - { - delete iSystemStatePluginHandler; - } - iSystemStatePluginHandler = NULL; - } // --------------------------------------------------------------------------- diff -r 962e6306d9d2 -r 7ef16719d8cb telephonyserverplugins/common_tsy/commontsy/src/mmgsmwcdma/cmmcallgsmwcdmaextwithdispatcher.cpp --- a/telephonyserverplugins/common_tsy/commontsy/src/mmgsmwcdma/cmmcallgsmwcdmaextwithdispatcher.cpp Fri Feb 19 23:59:33 2010 +0200 +++ b/telephonyserverplugins/common_tsy/commontsy/src/mmgsmwcdma/cmmcallgsmwcdmaextwithdispatcher.cpp Fri Mar 12 15:49:38 2010 +0200 @@ -34,13 +34,23 @@ TInt CMmCallGsmWcdmaExt::SwapL(TInt aCallId) { TInt ret = KErrNone; - - // CTSY supports RMobileCall::Swap where there are two calls (one held, one active) - // and their states are swapped. Where Swap() is called on a single call, this is - // not supported. + const TInt KInvalidCallId = -1; + + // CTSY supports RMobileCall::Swap when there are one or two calls. When Swap() is called + // on a single call, it's state is switched (active to held or held to active), when on two + // calls(one held, one active) their states are swapped. CMmPhoneTsy& mmPhone = *iMmCallTsy->Phone(); CMmCallList& callList = *mmPhone.CallList(); + + CCallDataPackage package; + + if ( callList.GetNumberOfObjects() > 2 ) + { + // Swapping between calls only makes sense with one or two opened calls. + return KErrNotSupported; + } CMmCallTsy* call = callList.GetMmCallById(aCallId); + package.SetCallIdAndMode(aCallId, iSymbianCallMode); if (!call) { @@ -60,16 +70,13 @@ package.SetCallIdAndMode(aCallId, iSymbianCallMode); // Get connected call and pack its call ID CMmCallTsy* connectedCall = callList.GetMmCallByStatus(RMobileCall::EStatusConnected); + TInt connectedCallId = KInvalidCallId; if (connectedCall) { - TInt connectedCallId = connectedCall->CallId(); - package.PackData(&connectedCallId); - ret = iMessageManager->HandleRequestL(EMobileCallSwap, &package); + connectedCallId = connectedCall->CallId(); } - else - { - ret = KErrNotSupported; - } + package.PackData(&connectedCallId); + ret = iMessageManager->HandleRequestL(EMobileCallSwap, &package); break; } @@ -79,18 +86,15 @@ // Pack the following to the dispatcher: // Call status of connected call in additional parameter slot in CCallDataPackage CCallDataPackage package; + package.PackData(&aCallId); // Get held call and pack its call ID CMmCallTsy* heldCall = callList.GetMmCallByStatus(RMobileCall::EStatusHold); - if (heldCall) + if (heldCall) { package.SetCallIdAndMode(heldCall->CallId(), heldCall->CallMode()); - ret = iMessageManager->HandleRequestL(EMobileCallSwap, &package); } - else - { - ret = KErrNotSupported; - } + ret = iMessageManager->HandleRequestL(EMobileCallSwap, &package); break; } diff -r 962e6306d9d2 -r 7ef16719d8cb telephonyserverplugins/common_tsy/commontsy/src/mmgsmwcdma/cmmconferencecallgsmwcdmaext.cpp --- a/telephonyserverplugins/common_tsy/commontsy/src/mmgsmwcdma/cmmconferencecallgsmwcdmaext.cpp Fri Feb 19 23:59:33 2010 +0200 +++ b/telephonyserverplugins/common_tsy/commontsy/src/mmgsmwcdma/cmmconferencecallgsmwcdmaext.cpp Fri Mar 12 15:49:38 2010 +0200 @@ -632,8 +632,7 @@ if ( counter == *aIndex ) { //get mobile call info - mobileCall->FillMobileCallInfo( aCallInfo ); - ret = KErrNone; + ret = mobileCall->FillMobileCallInfo( aCallInfo ); break; } else diff -r 962e6306d9d2 -r 7ef16719d8cb telephonyserverplugins/common_tsy/commontsy/src/mmsms/cmmsmstsy.cpp --- a/telephonyserverplugins/common_tsy/commontsy/src/mmsms/cmmsmstsy.cpp Fri Feb 19 23:59:33 2010 +0200 +++ b/telephonyserverplugins/common_tsy/commontsy/src/mmsms/cmmsmstsy.cpp Fri Mar 12 15:49:38 2010 +0200 @@ -1831,7 +1831,54 @@ return KErrNone; } + +//---------------------------------------------------------------------------- +// CMmSmsTsy::IsRPError +// Checks if error code is a relay protocol error +// --------------------------------------------------------------------------- +TBool CMmSmsTsy::IsRPError(TInt aError) + { + TFLOGSTRING2("CMmSmsTsy::IsRPError(): %d", aError); + TBool isRPError = EFalse; + switch (aError) + { + case KErrGsmSMSShortMessageTransferRejected: + { + isRPError = ETrue; + } + break; + case KErrGsmSMSInvalidMandatoryInformation: + { + isRPError = ETrue; + } + break; + case KErrGsmSMSUnidentifiedSubscriber: + { + isRPError = ETrue; + } + break; + case KErrGsmSMSUnknownSubscriber: + { + isRPError = ETrue; + } + break; + case KErrGsmSMSNetworkOutOfOrder: + { + isRPError = ETrue; + } + break; + default: + { + // NOP + } + break; + } + + return isRPError; + } // CMmSmsTsy::IsRPError + + //---------------------------------------------------------------------------- // CMmSmsTsy::CompleteSendMessage // Complete SendMessage request @@ -1842,7 +1889,25 @@ TInt aError, CMmDataPackage* aDataPackage ) { - if ( ( KErrNone != aError ) && ( KErrTimedOut != aError ) + TInt extendedError = CMmCommonStaticUtility::ExtendedErrorCode(aError); + TBool res = IsRPError(extendedError); + if(res) + { + // Delete send message entry from send array + if ( iSmsSendReq ) + { + delete iSmsSendReq; // Delete object + iSmsSendReq = NULL; // Reset pointer + } + // reset req handle and complete request + TTsyReqHandle reqHandle = iTsyReqHandleStore->ResetTsyReqHandle( + EMultimodeSmsSendMessage ); + ReqCompleted( reqHandle, extendedError ); + // reset pointer to client memory + iSendMessageMsgAttrPckgPtr = NULL; + iSmsNoFdnCheckFlag = ESmsNoFdnCheckUnknown; + } + else if ( ( KErrNone != aError ) && ( KErrTimedOut != aError ) && ( KErrGsmSMSOperationNotAllowed != CMmCommonStaticUtility::ExtendedErrorCode ( aError ) ) // FDB check failed diff -r 962e6306d9d2 -r 7ef16719d8cb telephonyserverplugins/common_tsy/commontsy/src/mmstorage/cmmenstoretsy.cpp --- a/telephonyserverplugins/common_tsy/commontsy/src/mmstorage/cmmenstoretsy.cpp Fri Feb 19 23:59:33 2010 +0200 +++ b/telephonyserverplugins/common_tsy/commontsy/src/mmstorage/cmmenstoretsy.cpp Fri Mar 12 15:49:38 2010 +0200 @@ -454,7 +454,7 @@ RMobileENStore::TMobileENEntryV1& entry = ( *entryPckg )(); // Check that client uses valid location index - if ( 0 < entry.iIndex ) + if (0 < entry.iIndex && sizeof( RMobileENStore::TMobileENEntryV1 ) <= aEntry->MaxLength()) { // Forward request to GSM Extension ret = iMmENStoreExtInterface->Read( @@ -464,7 +464,7 @@ // ISI message construction failed or phonet sender returned error if ( KErrNone != ret ) { - ReqCompleted( aTsyReqHandle, ret ); + ReqCompleted( aTsyReqHandle, ret ); } else { diff -r 962e6306d9d2 -r 7ef16719d8cb telephonyserverplugins/common_tsy/commontsy/src/mmstorage/cmmonstoretsy.cpp --- a/telephonyserverplugins/common_tsy/commontsy/src/mmstorage/cmmonstoretsy.cpp Fri Feb 19 23:59:33 2010 +0200 +++ b/telephonyserverplugins/common_tsy/commontsy/src/mmstorage/cmmonstoretsy.cpp Fri Mar 12 15:49:38 2010 +0200 @@ -471,14 +471,18 @@ ( RMobileONStore::TMobileONEntryV1Pckg*, aEntry ); RMobileONStore::TMobileONEntryV1& entry = ( *entryPckg )(); - // Save entry pointer - iReadONStoreEntryPtr = aEntry; - - // Forward request to GSM Extension - ret = iMmONStoreExtInterface->ReadL( EMmTsyONStoreReadIPC, entry.iIndex ); + // Check index + if ( (-1) <= entry.iIndex ) + { + // Forward request to GSM Extension + ret = iMmONStoreExtInterface->ReadL( EMmTsyONStoreReadIPC, entry.iIndex ); + } if ( KErrNone == ret ) { + // Save entry pointer + iReadONStoreEntryPtr = aEntry; + // Save tsy req handle type iReqHandleType = EMultimodeONStoreRead; } @@ -600,8 +604,6 @@ TDesC8* aEntry ) { TFLOGSTRING("TSY: CMmONStoreTsy::WriteL"); - // Save tsy req handle type - iReqHandleType = EMultimodeONStoreWrite; // Unpack entry param to get the location RMobileONStore::TMobileONEntryV1Pckg* entryPckg = @@ -609,14 +611,24 @@ ( RMobileONStore::TMobileONEntryV1Pckg*, aEntry ); RMobileONStore::TMobileONEntryV1& entry = ( *entryPckg )(); + // Return value + TInt ret( KErrArgument ); + + // Check Parameters + if( (-1) > entry.iIndex || sizeof( RMobileONStore::TMobileONEntryV1 ) != aEntry->Size() ) + { + return ret; + } + + // Save tsy req handle type + iReqHandleType = EMultimodeONStoreWrite; + iWriteONStoreEntryPtr = aEntry; iWriteIndexToReturn = entry.iIndex; // It is not possible to cancel write request anymore... iIsWriteCancellingPossible = EFalse; - // Return value - TInt ret( KErrNone ); ret = iMmONStoreExtInterface-> WriteL( @@ -959,6 +971,13 @@ TInt ret( KErrNone ); + TTsyReqHandle reqHandle = iTsyReqHandleStore->GetTsyReqHandle( + EMultimodeONStoreGetInfo ); + if(reqHandle != EMultimodeONStoreReqHandleUnknown) + { + ReqCompleted( aTsyReqHandle, KErrServerBusy ); + return ret; + } // if aInfo is not correct type, send KErrArgument to client and return if( RMobilePhoneStore::KETelMobileONStoreV1 != aInfo->ExtensionId() ) { @@ -967,55 +986,63 @@ } // Don't send request if pb init is still ongoing - // instead send KErrNotReady to client - TBool done ( ETrue ); + // instead create an ADN book store and wait for it to initilize + TFLOGSTRING2( "TSY: CMmONStoreTsy::GetInfoL iPBList->GetNumberOfObjects() = %d", iMmPhone->PBList()->GetNumberOfObjects()); - - for( TInt i = 0; i < iMmPhone->PBList()->GetNumberOfObjects(); i++ ) + CMmPhoneBookStoreTsy* pbStore = NULL; + for( TInt i = 0; (i < iMmPhone->PBList()->GetNumberOfObjects()) && (NULL == pbStore) ; i++ ) { - CMmPhoneBookStoreTsy* pbStore = iMmPhone->PBList()-> - GetMmPBByIndex( i ); + pbStore = iMmPhone->PBList()->GetMmPBByIndex( i ); TFLOGSTRING2( "TSY: CMmONStoreTsy::GetInfoL index = %d", i); - - if ( !pbStore->IsPBInitDone() - && ( pbStore->GetPhonebookType() == KADNPhoneBook - || pbStore->GetPhonebookType() == KFDNPhoneBook ) ) - { -TFLOGSTRING("TSY: CMmONStoreTsy::GetInfoL - ADN or FDN init not done"); -TFLOGSTRING("TSY: CMmONStoreTsy::GetInfoL - in !pbStore->IsPBInitDone()"); - // init still ongoing - done = EFalse; - } - } - - // Check if some PB is not initialized, if so send KErrNotReady to client - if ( !done ) - { -TFLOGSTRING("TSY: CMmONStoreTsy::GetInfoL - PBInit not done, return KErrNotReady"); - ReqCompleted( aTsyReqHandle, KErrNotReady ); - } - - else - { -TFLOGSTRING("TSY: CMmONStoreTsy::GetInfoL - PBInit done, complete"); - // Set get info internal pointer - iONStoreInfoChanged = aInfo; - - // Request to GSM extension, get used entries, - // -1 as a index param-> specified location param not needed - ret = iMmONStoreExtInterface->ReadL( EMmTsyONStoreGetInfoIPC, -1 ); - - if ( KErrNone != ret ) // Message sending failed + if( (pbStore->GetPhonebookType() != KADNPhoneBook) && (pbStore->GetPhonebookType() != KFDNPhoneBook ) ) { - ReqCompleted( aTsyReqHandle, ret ); + pbStore = NULL; } else { - iIsGetInfoActive = ETrue; - // Save tsy req handle type - iReqHandleType = EMultimodeONStoreGetInfo; + +TFLOGSTRING("TSY: CMmONStoreTsy::GetInfoL - found ADN or FDN store"); + } + } + if(NULL == pbStore) + { +TFLOGSTRING("TSY: CMmONStoreTsy::GetInfoL - no ADN nor FDN store- creating ADN"); + pbStore = CMmPhoneBookStoreTsy::NewL( iMmPhone, KETelIccAdnPhoneBook ); + TInt addPBSucceeded = iMmPhone->PBList()->AddObject( pbStore ); + if(addPBSucceeded != KErrNone) + { + delete pbStore; + ReqCompleted( aTsyReqHandle, addPBSucceeded ); + return KErrNone; } - } + } + + // Set get info internal pointer + iONStoreInfoChanged = aInfo; + + if ( !pbStore->IsPBInitDone()) + { +TFLOGSTRING("TSY: CMmONStoreTsy::GetInfoL - waiting for phone book to be initilized"); + // Save tsy req handle type + iReqHandleType = EMultimodeONStoreGetInfo; + return KErrNone; + } + +TFLOGSTRING("TSY: CMmONStoreTsy::GetInfoL - PBInit done, complete"); + + // Request to GSM extension, get used entries, + // -1 as a index param-> specified location param not needed + ret = iMmONStoreExtInterface->ReadL(EMmTsyONStoreGetInfoIPC, -1); + + if (KErrNone != ret) // Message sending failed + { + ReqCompleted(aTsyReqHandle, ret); + } + else + { + // Save tsy req handle type + iReqHandleType = EMultimodeONStoreGetInfo; + } return KErrNone; } @@ -1032,11 +1059,6 @@ { TFLOGSTRING2("TSY: CMmONStoreTsy::CompleteGetInfo - Result: %d", aResult ); - // The number of used entries - TServiceType serviceType; - //unpack data - aDataPackage->UnPackData( serviceType ); - // Reset req handle. Returns the deleted req handle TTsyReqHandle reqHandle = iTsyReqHandleStore->ResetTsyReqHandle( EMultimodeONStoreGetInfo ); @@ -1048,6 +1070,11 @@ // give info to client if ( KErrNone == aResult ) { + // The number of used entries + TServiceType serviceType; + //unpack data + aDataPackage->UnPackData( serviceType ); + iONStoreInfo.iTotalEntries = serviceType.iNumOfEntries; iONStoreInfo.iUsedEntries = serviceType.iUsedEntries; iONStoreInfo.iNumberLen = serviceType.iNumLen; @@ -1062,7 +1089,6 @@ // NULL the pointer to info supplied to TSY from the client iONStoreInfoChanged = NULL; - iIsGetInfoActive = EFalse; // Complete with error ReqCompleted( reqHandle, aResult ); @@ -2005,4 +2031,43 @@ #endif +// --------------------------------------------------------------------------- +// CMmONStoreTsy::PhoneBookStoreInitCompleteL +// Phone book store initilization was complete +// (other items were commented in a header). +// --------------------------------------------------------------------------- +// +void CMmONStoreTsy::PhoneBookStoreInitCompleteL(TInt aError) + { + TFLOGSTRING("TSY: CMmONStoreTsy::PhoneBookStoreInitCompleteL "); + TTsyReqHandle reqHandle = iTsyReqHandleStore->ResetTsyReqHandle( EMultimodeONStoreGetInfo ); + if( EMultimodeONStoreReqHandleUnknown != reqHandle ) + { + if( KErrNone != aError ) + { + + ReqCompleted(reqHandle, aError); + return; + } + iReqHandleType = EMultimodeONStoreReqHandleUnknown; + TInt ret = GetInfoL(reqHandle, iONStoreInfoChanged); + if (ret == KErrNone) + { + if (iReqHandleType != EMultimodeONStoreReqHandleUnknown) + { +#ifdef REQHANDLE_TIMER + SetTypeOfResponse(iReqHandleType, reqHandle); +#else // REQHANDLE_TIMER + iTsyReqHandleStore->SetTsyReqHandle( iReqHandleType, reqHandle ); +#endif // REQHANDLE_TIMER + } + } + else + { + ReqCompleted(reqHandle, ret); + } + } + + } + // End of File diff -r 962e6306d9d2 -r 7ef16719d8cb telephonyserverplugins/common_tsy/commontsy/src/mmstorage/cmmphonebookstoretsy.cpp --- a/telephonyserverplugins/common_tsy/commontsy/src/mmstorage/cmmphonebookstoretsy.cpp Fri Feb 19 23:59:33 2010 +0200 +++ b/telephonyserverplugins/common_tsy/commontsy/src/mmstorage/cmmphonebookstoretsy.cpp Fri Mar 12 15:49:38 2010 +0200 @@ -52,6 +52,7 @@ #endif + iInitError = KErrNone; // Get mode of current extension. RMobilePhone::TMobilePhoneNetworkMode currentMode; iMmPhoneTsy->GetStaticExtensionMode( ¤tMode ); @@ -91,29 +92,13 @@ TFLOGSTRING2("TSY: CMmPhoneBookStoreTsy::ConstructL - iIsPhonebookInitialized: %i", iStoreInfoData->iIsPhonebookInitialized); TFLOGSTRING2("TSY: CMmPhoneBookStoreTsy::ConstructL - iSIMReady: %i", bootState->iSIMReady); TFLOGSTRING("TSY: CMmPhoneBookStoreTsy::ConstructL - before initialization"); - // Check if phonebook has been initialized - if ( !iMmPhoneTsy->IsPBInitActive() - && ( !iStoreInfoData->iIsPhonebookInitialized ) - && bootState->iSIMReady) + if(bootState->iSIMReady) { -TFLOGSTRING("TSY: CMmPhoneBookStoreTsy::ConstructL - starting initialization"); - - // before phonebook requests, phonebook must be initialized - iMmPhoneBookStoreExtInterface->InitPhonebook( - EMmTsyPhoneBookStoreInitIPC, iPhoneBookName ); - - iMmPhoneTsy->SetPBInitActiveStatus( ETrue ); + SimIsReady(); } - - if ( bootState->iSIMReady && iStoreInfoData->iIsPhonebookInitialized - && ( iPhoneBookType == KADNPhoneBook - || iPhoneBookType == KFDNPhoneBook ) ) + else { - // Set initialization flag - iIsPBInitCompleted = ETrue; -TFLOGSTRING("TSY: CMmPhoneBookStoreTsy::ConstructL - starting caching"); - // Call CacheEntries method to read entries from SIM. - CacheEntriesL(); + iIsPBInitCompleted = EFalse; } } @@ -650,8 +635,6 @@ { TFLOGSTRING2("TSY: CMmPhoneBookStoreTsy::CompletePBStoreInitializationL - Result: %i",aResult ); TFLOGSTRING2("TSY: CMmPhoneBookStoreTsy::CompletePBStoreInitializationL - PhoneBookType: %u",iPhoneBookType ); - // Set initialization flag - iIsPBInitCompleted = ETrue; // If initialization made successfully // fill phonebook related static data @@ -667,11 +650,19 @@ // Reset initialization value iStoreInfoData->iIsPhonebookInitialized = ETrue; iStoreInfoData->iIsPhonebookInitializeFailed = EFalse; - // Set max name & number length for the current phonebook - SetMaxNameAndNumLenght(); - // Just in case here, if cache request has been come - // before initialization is finished. - CacheEntriesL(); + // Set initialization flag for all phonebooks + for( TInt i = 0; i < iMmPhoneTsy->PBList()->GetNumberOfObjects(); i++ ) + { + //Get pbStore object + CMmPhoneBookStoreTsy* pbStore = iMmPhoneTsy->PBList()->GetMmPBByIndex( i ); + pbStore->iIsPBInitCompleted = ETrue; + pbStore->iInitError = aResult; + // Set max name & number length for the current phonebook + pbStore->SetMaxNameAndNumLenght(); + // Just in case here, if cache request has been come + // before initialization is finished. + pbStore->CacheEntriesL(); + } } else //Initialisation has failed @@ -698,6 +689,33 @@ iStoreInfoData->iIsPhonebookInitializeFailed = ETrue; } } + if( iStoreInfoData->iIsPhonebookInitialized ) + { + TTsyReqHandle getInfoHandle = + iTsyReqHandleStore->ResetTsyReqHandle( EMultimodePhoneStoreGetInfo ); + if ( EMultimodePhoneBookStoreReqHandleUnknown != getInfoHandle ) + { + iReqHandleType = EMultimodePhoneBookStoreReqHandleUnknown; + RMobilePhoneBookStore::TMobilePhoneBookInfoV1Pckg info(*iPhoneBookInfoChanged); + TInt result = GetInfoL(getInfoHandle, &info); + if ( KErrNone != result ) + { + ReqCompleted( getInfoHandle, result ); + } + // Save request handle + if ( EMultimodePhoneBookStoreReqHandleUnknown != iReqHandleType ) + { +#ifdef REQHANDLE_TIMER + SetTypeOfResponse( iReqHandleType, getInfoHandle ); +#else + iTsyReqHandleStore->SetTsyReqHandle( iReqHandleType, getInfoHandle ); +#endif + } + + } + } + iMmPhoneTsy->PhoneBookStoreInitCompleteL(iInitError); + } // --------------------------------------------------------------------------- @@ -2379,6 +2397,21 @@ // the situation. ret = KErrServerBusy; } + else if(iInitError != KErrNone) + { + // The phone book initilization failed + return iInitError; + } + else if ( !(iStoreInfoData->iIsPhonebookInitialized) ) + { + // The data is not ready yet, the store was not initialized... + RMobilePhoneBookStore::TMobilePhoneBookInfoV1Pckg* infoPckg = + reinterpret_cast( + aInfo ); + iPhoneBookInfoChanged = &( ( *infoPckg )() ); + iReqHandleType = EMultimodePhoneStoreGetInfo; + return KErrNone; + } else if ( sizeof( RMobilePhoneBookStore::TMobilePhoneBookInfoV1 ) > aInfo->MaxLength() ) { @@ -2543,7 +2576,8 @@ TFLOGSTRING2("TSY: CMmPhoneBookStoreTsy::GetInfoL - total entries: %i",iStoreInfoData->iVMBXNumOfEntries ); // Set caps by the store info data - iPhoneBookInfoChanged->iCaps = iStoreInfoData->iVMBXCaps; + //iPhoneBookInfoChanged->iCaps = iStoreInfoData->iVMBXCaps; + iPhoneBookInfoChanged->iCaps = KPBTypeVMBXCaps; if ( !iIsUsedEntriesCounted ) { @@ -2586,7 +2620,7 @@ TFLOGSTRING2("TSY: CMmPhoneBookStoreTsy::GetInfoL - iMaxTextLength: %i",iPhoneBookInfoChanged->iMaxTextLength ); // Set caps by the store info data - iPhoneBookInfoChanged->iCaps = iStoreInfoData->iMBDNCaps; + iPhoneBookInfoChanged->iCaps = KPBTypeMBDNCaps; } if ( completeRequest ) { @@ -3208,6 +3242,50 @@ } } +// --------------------------------------------------------------------------- +// CMmPhoneBookStoreTsy::SimIsReady() +// This method will be activate by the phone to notify the SIM is ready. +// --------------------------------------------------------------------------- +// +void CMmPhoneBookStoreTsy::SimIsReady() + { + + TFLOGSTRING2("TSY: CMmPhoneBookStoreTsy::SimIsReady - iIsPhonebookInitialized: %i", iStoreInfoData->iIsPhonebookInitialized); + TFLOGSTRING("TSY: CMmPhoneBookStoreTsy::SimIsReady - before initialization"); + // Check if phonebook has been initialized + if ( !iMmPhoneTsy->IsPBInitActive() + && ( !iStoreInfoData->iIsPhonebookInitialized ) + ) + { + TFLOGSTRING("TSY: CMmPhoneBookStoreTsy::SimIsReady - starting initialization"); + + // before phonebook requests, phonebook must be initialized + iMmPhoneBookStoreExtInterface->InitPhonebook( + EMmTsyPhoneBookStoreInitIPC, iPhoneBookName ); + + iMmPhoneTsy->SetPBInitActiveStatus( ETrue ); + } + else if (iMmPhoneTsy->IsPBInitActive()) + { + TFLOGSTRING("TSY: CMmPhoneBookStoreTsy::SimIsReady - initialization active via other store, waiting for completion"); + iIsPBInitCompleted = EFalse; + } + else + { + TFLOGSTRING("TSY: CMmPhoneBookStoreTsy::SimIsReady - Initialization was done via other store"); + // Set initialization flag + iIsPBInitCompleted = ETrue; + } + + if ( iStoreInfoData->iIsPhonebookInitialized + && ( iPhoneBookType == KADNPhoneBook + || iPhoneBookType == KFDNPhoneBook ) ) + { + TFLOGSTRING("TSY: CMmPhoneBookStoreTsy::SimIsReady - starting caching"); + // Call CacheEntries method to read entries from SIM. + CacheEntriesL(); + } + } // End of File diff -r 962e6306d9d2 -r 7ef16719d8cb telephonyserverplugins/common_tsy/commontsy/src/mmtsy/cmmnettsy.cpp --- a/telephonyserverplugins/common_tsy/commontsy/src/mmtsy/cmmnettsy.cpp Fri Feb 19 23:59:33 2010 +0200 +++ b/telephonyserverplugins/common_tsy/commontsy/src/mmtsy/cmmnettsy.cpp Fri Mar 12 15:49:38 2010 +0200 @@ -2124,12 +2124,25 @@ } else { - //get mode specific information - TInt ret ( iMmPhoneTsy->iMmPhoneExtInterface-> - GetNetworkRegistrationStatusL() ); + TInt ret(KErrGeneral); + // verify that modem is ready + if ( iMmPhoneTsy->IsModemStatusReady() ) + { + //get mode specific information + TFLOGSTRING("TSY: CMmNetTsy::GetNetworkRegistrationStatusL - Sending request to LTSY" ); + ret = iMmPhoneTsy->iMmPhoneExtInterface-> + GetNetworkRegistrationStatusL(); + } + else + { + // modem is not ready. Client to be completed with error code. + TFLOGSTRING("TSY: CMmNetTsy::GetNetworkRegistrationStatusL - Modem not ready" ); + ret = KErrNotReady; + } if ( KErrNone != ret ) { + TFLOGSTRING2("TSY: CMmNetTsy::GetNetworkRegistrationStatusL - Complete with error %d", ret ); iMmPhoneTsy->ReqCompleted( aTsyReqHandle, ret ); } else diff -r 962e6306d9d2 -r 7ef16719d8cb telephonyserverplugins/common_tsy/commontsy/src/mmtsy/cmmphonetsy.cpp --- a/telephonyserverplugins/common_tsy/commontsy/src/mmtsy/cmmphonetsy.cpp Fri Feb 19 23:59:33 2010 +0200 +++ b/telephonyserverplugins/common_tsy/commontsy/src/mmtsy/cmmphonetsy.cpp Fri Mar 12 15:49:38 2010 +0200 @@ -91,10 +91,13 @@ MLtsyFactoryBase* aFactory ) { TFLOGSTRING2("TSY: CMmPhoneTsy::NewL - Phone model Id: %S", &KPhoneModelId); + CleanupStack::PushL( aMessageManager ); CMmPhoneTsy* mmPhoneTsy = new (ELeave) CMmPhoneTsy(); mmPhoneTsy->iMessageManager = aMessageManager; + CleanupStack::Pop(aMessageManager); mmPhoneTsy->iMmPhoneFactory = aMmPhoneFactoryTsy; + CleanupClosePushL( *mmPhoneTsy ); //For pointer is stored for deleting licenseetsy instance mmPhoneTsy->iLtsyFactory = aFactory; mmPhoneTsy->iTelephonyAudioControl = NULL; @@ -115,7 +118,6 @@ } } - CleanupClosePushL( *mmPhoneTsy ); mmPhoneTsy->ConstructL(); CleanupStack::Pop( mmPhoneTsy ); return mmPhoneTsy; @@ -184,6 +186,10 @@ iBattery = CBatteryInfoObserver::NewL( *iPowerManager, *this ); iChargingStatus = CChargingStatusObserver::NewL( *this ); } + + //Create the SSM Plugin Handler on creation rather than on demand to avoid problems + //with Emergency Calls in Out Of Memory situations. + iSystemStatePluginHandler = CCtsySystemStatePluginHandler::NewL(); //#ifdef __WINS__ SYMBIAN commented out // iMmPhoneExtInterface->NotifySimStatusReadyL(); @@ -545,6 +551,13 @@ iRetAclStatus = NULL; iSetAclStatus = NULL; iRetNotifyAclStatus = NULL; + + if ( iSystemStatePluginHandler ) + { + iSystemStatePluginHandler->Close(); + delete iSystemStatePluginHandler; + } + iSystemStatePluginHandler = NULL; TFLOGSTRING("TSY: CMmPhoneTsy::~CMmPhoneTsy DONE"); } @@ -687,24 +700,10 @@ // entries from SIM into cache. for( TInt i = 0; i < iPBList->GetNumberOfObjects(); i++ ) { - //Get pbStore object + // Get pbStore object CMmPhoneBookStoreTsy* pbStore = iPBList->GetMmPBByIndex( i ); - //Check if the current PB is the object that we are trying to find. - //If both names are exactly the same, CompareF returns 0. - if ( 0 == pbStore->PhoneBookName()->CompareF( KETelIccAdnPhoneBook ) ) - { -TFLOGSTRING("TSY: CMmPhoneTsy::StartPBCachingL - Start to read ADN entries"); - //Start to cache phonebook entries. - pbStore->CacheEntriesL(); - } - //If current PB is FDN - else if ( 0 == pbStore->PhoneBookName()->CompareF( - KETelIccFdnPhoneBook ) ) - { -TFLOGSTRING("TSY: CMmPhoneTsy::StartPBCaching - Start to read FDN entries" ); - //Start to cache phonebook entries. - pbStore->CacheEntriesL(); - } + // Notify the store that the SIM is ready + pbStore->SimIsReady(); } } @@ -5686,16 +5685,48 @@ REINTERPRET_CAST ( RMobilePhone::TMobilePhoneVoicemailIdsV3Pckg*, aMailBox ); - RMobilePhone::TMobilePhoneVoicemailIdsV3& mailboxData = - ( *entryPckg )(); - - if ( KETelExtMultimodeV3 == mailboxData.ExtensionId() ) + iMailboxData = ( *entryPckg )(); + + if ( KETelExtMultimodeV3 == iMailboxData.ExtensionId() ) { // Save pointer to client space iMailBoxData = aMailBox; + // Check that VMBX book store was initilized... + TBool found = EFalse; + for( TInt i = 0; (!found) && (i < iPBList->GetNumberOfObjects()); i++ ) + { + //Get pbStore object + CMmPhoneBookStoreTsy* pbStore = iPBList->GetMmPBByIndex( i ); + //Check if the current PB is the object that we are trying to find. + if ( 0 == pbStore->PhoneBookName()->CompareF( KETelIccVoiceMailBox ) ) + { + found = ETrue; + if( !pbStore->IsPBInitDone() ) + { + TFLOGSTRING("TSY: CMmPhoneTsy::GetMailboxNumbersL VoiceMailBox initilizing was not complete... Waiting for completion"); + iReqHandleType = EMultimodePhoneGetMailboxNumbers; + return KErrNone; + } + } + } + if(!found) + { + TFLOGSTRING("TSY: CMmPhoneTsy::GetMailboxNumbersL VoiceMailBox should be created..."); + iMmPhoneBookStoreTsy = + CMmPhoneBookStoreTsy::NewL( this, KETelIccVoiceMailBox ); + + TInt addPBSucceeded = iPBList->AddObject( iMmPhoneBookStoreTsy ); + if( !iMmPhoneBookStoreTsy->IsPBInitDone() ) + { + iReqHandleType = EMultimodePhoneGetMailboxNumbers; + return addPBSucceeded; + } + } + + CMmDataPackage mailBoxDataPackage; - mailBoxDataPackage.PackData( &mailboxData ); + mailBoxDataPackage.PackData( &iMailboxData ); ret = ( MessageManager()->HandleRequestL( EMobilePhoneGetMailboxNumbers, &mailBoxDataPackage ) ); @@ -6654,17 +6685,6 @@ } // --------------------------------------------------------------------------- -// CMmPhoneTsy::HandleType -// Returns req handle type -// (other items were commented in a header). -// --------------------------------------------------------------------------- -// -CMmPhoneTsy::TPhoneRequestTypes CMmPhoneTsy::HandleType() - { - return iReqHandleType; - } - -// --------------------------------------------------------------------------- // CMmPhoneTsy::GetSecurityTsy // Returns SecurityTsy instance // (other items were commented in a header). @@ -7936,5 +7956,43 @@ return iIsModemReady; } + +// --------------------------------------------------------------------------- +// CMmPhoneTsy::PhoneBookStoreInitCompleteL +// The phone book store initilization was complete +// (other items were commented in a header). +// --------------------------------------------------------------------------- +// +void CMmPhoneTsy::PhoneBookStoreInitCompleteL(TInt aError) + { + TFLOGSTRING("TSY: CMmPhoneTsy::PhoneBookStoreInitCompleteL "); + TTsyReqHandle reqHandle = iTsyReqHandleStore->GetTsyReqHandle( + EMultimodePhoneGetMailboxNumbers ); + if( EMultimodePhoneReqHandleUnknown != reqHandle ) + { + if( KErrNone != aError ) + { + iTsyReqHandleStore->ResetTsyReqHandle( EMultimodePhoneGetMailboxNumbers ); + ReqCompleted(reqHandle, aError); + return; + } + CMmDataPackage mailBoxDataPackage; + mailBoxDataPackage.PackData( &iMailboxData ); + + TInt ret = ( MessageManager()->HandleRequestL( + EMobilePhoneGetMailboxNumbers, &mailBoxDataPackage ) ); + if(ret != KErrNone) + { + iTsyReqHandleStore->ResetTsyReqHandle( EMultimodePhoneGetMailboxNumbers ); + ReqCompleted(reqHandle, ret); + } + + } + if(GetONStoreTsy() != NULL) + { + GetONStoreTsy()->PhoneBookStoreInitCompleteL(aError); + } + } + // End of File diff -r 962e6306d9d2 -r 7ef16719d8cb telephonyserverplugins/common_tsy/commontsy/src/mmtsy/cmmvoicelinetsy.cpp --- a/telephonyserverplugins/common_tsy/commontsy/src/mmtsy/cmmvoicelinetsy.cpp Fri Feb 19 23:59:33 2010 +0200 +++ b/telephonyserverplugins/common_tsy/commontsy/src/mmtsy/cmmvoicelinetsy.cpp Fri Mar 12 15:49:38 2010 +0200 @@ -386,14 +386,15 @@ { mmCall = reinterpret_cast( iMmPhone->CallList()->GetMmCallByIndex(i) ); - if ( mmCall->ServiceRequested( + if ( ( ( mmCall->CallId() == 0 ) || ( mmCall->CallId() == -1 )) + && ( mmCall->ServiceRequested( CMmCallTsy::EMultimodeCallDial ) || mmCall->ServiceRequested( CMmCallTsy::EMultimodeMobileCallDialEmergencyCall ) || ( mmCall->ServiceRequested( CMmCallTsy::EMultimodeCallDialISV ) ) || ( mmCall->ServiceRequested( - CMmCallTsy::EMultimodeCallDialNoFdnCheck ) ) ) + CMmCallTsy::EMultimodeCallDialNoFdnCheck ) ) ) ) { mmCall->SetCallId( callId ); TFLOGSTRING2("TSY: CMmVoiceLineTsy::CompleteNotifyDiallingStatus - mmCall SetCallId: %d", callId); @@ -454,6 +455,10 @@ } } + CMmCallList* callList = iMmPhone->CallList(); + TInt numberOfObjectsInCallList = callList->GetNumberOfObjects(); + CMmVoiceCallTsy* mmCall = NULL; + //is TSY still waiting both hold and connected status indications if ( EWaitingHoldAndResumeOk == iSwapStatus ) { @@ -477,9 +482,6 @@ ( EWaitingHoldOk == iSwapStatus && RMobileCall::EStatusHold == aCallStatus ) ) { - CMmCallList* callList = iMmPhone->CallList(); - TInt numberOfObjectsInCallList = callList->GetNumberOfObjects(); - CMmVoiceCallTsy* mmCall = NULL; //find the call object from which the swap was requested. for ( TInt i = 0; i < numberOfObjectsInCallList; i++ ) { @@ -532,6 +534,22 @@ ret = ETrue; } } + + if ( numberOfObjectsInCallList==1 && !otherVoiceLine ) + { + + // Swapping a single call. + mmCall = reinterpret_cast( + callList->GetMmCallByIndex(0) ); + if ( mmCall->ServiceRequested( + CMmCallTsy::EMultimodeMobileCallSwap ) ) + { + // Complete swap request when the correct object has been found + mmCall->CompleteSwap( KErrNone ); + } + ret = ETrue; + } + return ret; } diff -r 962e6306d9d2 -r 7ef16719d8cb telephonyserverplugins/common_tsy/phonetsy/src/cmmphonefactorytsy.cpp --- a/telephonyserverplugins/common_tsy/phonetsy/src/cmmphonefactorytsy.cpp Fri Feb 19 23:59:33 2010 +0200 +++ b/telephonyserverplugins/common_tsy/phonetsy/src/cmmphonefactorytsy.cpp Fri Mar 12 15:49:38 2010 +0200 @@ -142,6 +142,8 @@ // set the pointer to the message router object messageManager->SetMessageRouter( iMessageRouter ); + // Ownership of messageManager passed to iPhoneTsy. + CleanupStack::Pop( messageManager ); // Create Phone Tsy (which creates the whole Common TSY) TFLOGSTRING("TSY: CMmPhoneFactoryTsy::NewL - Starting to open CommonTSY"); iPhoneTsy = CMmPhoneTsy::NewL( @@ -149,14 +151,9 @@ if ( iPhoneTsy ) { - CleanupStack::Pop( messageManager ); TFLOGSTRING("TSY: CMmPhoneFactoryTsy::NewL - CommonTSY successfully opened"); messageManager->SetPhoneTsy( iPhoneTsy ); } - else - { - CleanupStack::PopAndDestroy( messageManager ); - } } else { diff -r 962e6306d9d2 -r 7ef16719d8cb telephonyserverplugins/common_tsy/systemstateplugin/src/ctsysystemstateplugin.cpp --- a/telephonyserverplugins/common_tsy/systemstateplugin/src/ctsysystemstateplugin.cpp Fri Feb 19 23:59:33 2010 +0200 +++ b/telephonyserverplugins/common_tsy/systemstateplugin/src/ctsysystemstateplugin.cpp Fri Mar 12 15:49:38 2010 +0200 @@ -33,6 +33,7 @@ { // create active object for do RF state changing iAoChangeRfForEmergencyCall = new (ELeave) CChangeRfForEmergencyCall(*this, iSsmEmergencyCallRf); + User::LeaveIfError(Connect()); } CCtsySystemStatePlugin::~CCtsySystemStatePlugin() @@ -54,12 +55,19 @@ TFLOGSTRING("CCtsySystemStatePlugin::Connect()"); TInt error (KErrNone); - if (!iConnected) + if (!iConnected) { - error = iSsmEmergencyCallRf.Connect(); - if (KErrNone == error) + error = iSsmEmergencyCallRf.Connect(); + if (KErrNone != error) + { + return error; + } + iConnected = ETrue; + error = iSsmEmergencyCallRf.SetAsPriorityClient(); + if (KErrNone != error) { - iConnected = ETrue; + TFLOGSTRING2("CCtsySystemStatePlugin::Connect() - SetAsPriorityClient returned %d", error); + error = KErrNone; } } return error; @@ -75,18 +83,7 @@ TCtsySsmCallbackData& aCallbackData) { TFLOGSTRING("CCtsySystemStatePlugin::ActivateRfForEmergencyCall()" ); - //try to connect - TInt err = Connect(); - if (err) - { - TFLOGSTRING2("CCtsySystemStatePlugin::ActivateRfForEmergencyCall() failed to connect %d", err); - // inform CTSY about error... - aSsmPluginCallback->SsmPluginCallback(err, aCallbackData); - // and do nothing - return; - } - iAoChangeRfForEmergencyCall->ActivateRfForEmergencyCall(aSsmPluginCallback, aCallbackData); } @@ -237,7 +234,6 @@ iBusy = ENotBusy; // close SSM - iCtsySystemStatePlugin.Close(); if (iSsmPluginCallback) { // just call callback interface and pass into it error code diff -r 962e6306d9d2 -r 7ef16719d8cb telephonyserverplugins/common_tsy/test/component/inc/cctsycustomipcfu.h --- a/telephonyserverplugins/common_tsy/test/component/inc/cctsycustomipcfu.h Fri Feb 19 23:59:33 2010 +0200 +++ b/telephonyserverplugins/common_tsy/test/component/inc/cctsycustomipcfu.h Fri Mar 12 15:49:38 2010 +0200 @@ -108,7 +108,9 @@ void TestReadViagHomeZoneParams0003L(); void TestReadViagHomeZoneParams0004L(); void TestReadViagHomeZoneParams0005L(); - void TestReadViagHomeZoneCache0001L(); + void TestReadViagHomeZoneCache0001L(); + void TestReadViagHomeZoneCache0001bL(); + void TestReadViagHomeZoneCache0001cL(); void TestReadViagHomeZoneCache0002L(); void TestReadViagHomeZoneCache0003L(); void TestReadViagHomeZoneCache0004L(); @@ -330,8 +332,8 @@ RMobileCall::TMobileCallStatus aMobileCallStatus, RMobilePhone::TMobileService aMobileService ); - void OpenPhoneAndCustomAPILC(RMmCustomAPI& aCustomAPI); - void MockPrimeEReadViagHomeZoneCacheIPCL(TInt aCacheId,TInt aRecordId, TBool aDoComplete = ETrue, TBool aDoExpect = ETrue); + void OpenPhoneAndCustomAPILC(RMmCustomAPI& aCustomAPI, TInt aNtsyError = KErrNone); + void MockPrimeEReadViagHomeZoneCacheIPCL(TInt aCacheId,TInt aRecordId, TBool aDoComplete = ETrue, TBool aDoExpect = ETrue, TInt aNtsyError = KErrNone); void FillWithRandomData( RMmCustomAPI::TMmCellInfo& cell, TInt aRnd = 0) const; void FillWithRandomDataLC( RMmCustomAPI::TViagElements*& cell, TInt aRnd = 0) const; void InitSimCbTopicsL(RMmCustomAPI &aCustomApi, const TDesC& aTopic, TInt aNum); diff -r 962e6306d9d2 -r 7ef16719d8cb telephonyserverplugins/common_tsy/test/component/inc/cctsymailboxnumbersfu.h --- a/telephonyserverplugins/common_tsy/test/component/inc/cctsymailboxnumbersfu.h Fri Feb 19 23:59:33 2010 +0200 +++ b/telephonyserverplugins/common_tsy/test/component/inc/cctsymailboxnumbersfu.h Fri Mar 12 15:49:38 2010 +0200 @@ -35,7 +35,10 @@ public: // Individual test steps - void TestGetMailboxNumbers0001L(); + void TestGetMailboxNumbers0001L(); + void TestGetMailboxNumbers0001bL(); + void TestGetMailboxNumbers0001cL(); + void TestGetMailboxNumbers0001dL(); void TestGetMailboxNumbers0002L(); void TestGetMailboxNumbers0003L(); void TestGetMailboxNumbers0004L(); diff -r 962e6306d9d2 -r 7ef16719d8cb telephonyserverplugins/common_tsy/test/component/inc/cctsyonstorefu.h --- a/telephonyserverplugins/common_tsy/test/component/inc/cctsyonstorefu.h Fri Feb 19 23:59:33 2010 +0200 +++ b/telephonyserverplugins/common_tsy/test/component/inc/cctsyonstorefu.h Fri Mar 12 15:49:38 2010 +0200 @@ -60,7 +60,10 @@ void TestDelete0003L(); void TestDelete0004L(); void TestDelete0005L(); - void TestGetInfo0001L(); + void TestGetInfo0001L(); + void TestGetInfo0001bL(); + void TestGetInfo0001cL(); + void TestGetInfo0001dL(); void TestGetInfo0002L(); void TestGetInfo0003L(); void TestGetInfo0004L(); diff -r 962e6306d9d2 -r 7ef16719d8cb telephonyserverplugins/common_tsy/test/component/inc/cctsyphonebookstorefu.h --- a/telephonyserverplugins/common_tsy/test/component/inc/cctsyphonebookstorefu.h Fri Feb 19 23:59:33 2010 +0200 +++ b/telephonyserverplugins/common_tsy/test/component/inc/cctsyphonebookstorefu.h Fri Mar 12 15:49:38 2010 +0200 @@ -137,33 +137,39 @@ void TestDelete00028L(); void TestDelete00029L(); void TestDelete00030L(); - void TestGetInfo0001L(); + void TestGetInfo0001L(); + void TestGetInfo0001bL(); //void TestGetInfo0002L(); void TestGetInfo0003L(); void TestGetInfo0004L(); //void TestGetInfo0005L(); void TestGetInfo0006L(); - void TestGetInfo0006bL(); + void TestGetInfo0006bL(); + void TestGetInfo0006cL(); //void TestGetInfo0007L(); void TestGetInfo0008L(); void TestGetInfo0009L(); //void TestGetInfo00010L(); - void TestGetInfo00011L(); + void TestGetInfo00011L(); + void TestGetInfo00011bL(); void TestGetInfo00012L(); void TestGetInfo00013L(); void TestGetInfo00014L(); void TestGetInfo00015L(); - void TestGetInfo00016L(); + void TestGetInfo00016L(); + void TestGetInfo00016bL(); void TestGetInfo00017L(); void TestGetInfo00018L(); void TestGetInfo00019L(); void TestGetInfo00020L(); - void TestGetInfo00021L(); + void TestGetInfo00021L(); + void TestGetInfo00021bL(); //void TestGetInfo00022L(); void TestGetInfo00023L(); void TestGetInfo00024L(); //void TestGetInfo00025L(); - void TestGetInfo00026L(); + void TestGetInfo00026L(); + void TestGetInfo00026bL(); //void TestGetInfo00027L(); void TestGetInfo00028L(); void TestGetInfo00029L(); @@ -257,6 +263,7 @@ void AuxDelete5L(const TDesC& aName); void AuxGetInfo1L(const TDesC& aName); + void AuxGetInfo1bL(const TDesC& aName); void AuxGetInfo2L(const TDesC& aName); void AuxGetInfo3L(const TDesC& aName); void AuxGetInfo4L(const TDesC& aName); diff -r 962e6306d9d2 -r 7ef16719d8cb telephonyserverplugins/common_tsy/test/component/mockltsy/mockltsy/inc/CMmCustomMessHandlerGsmExt.h --- a/telephonyserverplugins/common_tsy/test/component/mockltsy/mockltsy/inc/CMmCustomMessHandlerGsmExt.h Fri Feb 19 23:59:33 2010 +0200 +++ b/telephonyserverplugins/common_tsy/test/component/mockltsy/mockltsy/inc/CMmCustomMessHandlerGsmExt.h Fri Mar 12 15:49:38 2010 +0200 @@ -78,12 +78,6 @@ * Own. */ CMmMessageRouter* iMessageRouter; - - /* - * Pointer to the Custom stub extension - * Own. - */ - CMmCustomStubExt* iMmCustomStubExt; }; #endif // CMMCUSTOMMESSHANDLERGSMEXT_H diff -r 962e6306d9d2 -r 7ef16719d8cb telephonyserverplugins/common_tsy/test/component/mockltsy/mockltsy/src/Cmmcustommesshandlergsmext.cpp --- a/telephonyserverplugins/common_tsy/test/component/mockltsy/mockltsy/src/Cmmcustommesshandlergsmext.cpp Fri Feb 19 23:59:33 2010 +0200 +++ b/telephonyserverplugins/common_tsy/test/component/mockltsy/mockltsy/src/Cmmcustommesshandlergsmext.cpp Fri Mar 12 15:49:38 2010 +0200 @@ -30,7 +30,6 @@ void CMmCustomMessHandlerGsmExt::ConstructL() { - iMmCustomStubExt = 0; } CMmCustomMessHandlerGsmExt* CMmCustomMessHandlerGsmExt::NewL( @@ -69,23 +68,6 @@ switch ( aIpc ) { - - case EMmTsyGetCustomVendorExtPtrIPC: - { - // return pointer to customapi extension -TFLOGSTRING("TSY: CMmCustomMessHandler::ExtFuncL --- EMmTsyGetCustomVendorExtPtrIPC"); - CMmCustomVendorExt** extPtr; - aDataPackage->UnPackData( &extPtr ); - - if ( !iMmCustomStubExt ) - { - iMmCustomStubExt = new ( ELeave ) CMmCustomStubExt( ); - } - - *extPtr = iMmCustomStubExt; - iMmCustomStubExt->SetMessageRouter( iMessageRouter ); - break; - } case ECustomCheckAlsPpSupportIPC: { diff -r 962e6306d9d2 -r 7ef16719d8cb telephonyserverplugins/common_tsy/test/component/mockltsy/mockltsy/src/cmmmessagerouter.cpp --- a/telephonyserverplugins/common_tsy/test/component/mockltsy/mockltsy/src/cmmmessagerouter.cpp Fri Feb 19 23:59:33 2010 +0200 +++ b/telephonyserverplugins/common_tsy/test/component/mockltsy/mockltsy/src/cmmmessagerouter.cpp Fri Mar 12 15:49:38 2010 +0200 @@ -291,7 +291,6 @@ case ECustomReadHSxPAStatusIPC: case ECustomNotifyRauEventIPC: - case EMmTsyGetCustomVendorExtPtrIPC: case ECustomSimLockActivateIPC: case ECustomSimLockDeActivateIPC: case ECustomSendAPDUReqIPC: diff -r 962e6306d9d2 -r 7ef16719d8cb telephonyserverplugins/common_tsy/test/component/scripts/te_ctsycomponent_callemergency_individual.script --- a/telephonyserverplugins/common_tsy/test/component/scripts/te_ctsycomponent_callemergency_individual.script Fri Feb 19 23:59:33 2010 +0200 +++ b/telephonyserverplugins/common_tsy/test/component/scripts/te_ctsycomponent_callemergency_individual.script Fri Mar 12 15:49:38 2010 +0200 @@ -113,7 +113,7 @@ //!@SYMTestActions Invokes RMobileCall::DialEmergencyCall with bad parameter data for voice calls //!@SYMTestExpectedResults Pass //!@SYMTestType CT -//RUN_TEST_STEP 100 te_ctsy_component TEFUnit.CCTsyCallEmergencyFU.TestDialEmergencyCall0004L +RUN_TEST_STEP 100 te_ctsy_component TEFUnit.CCTsyCallEmergencyFU.TestDialEmergencyCall0004L END_TESTCASE BA-CTSY-CEMG-CDEC-0004 START_TESTCASE BA-CTSY-CEMG-CDEC-0005 diff -r 962e6306d9d2 -r 7ef16719d8cb telephonyserverplugins/common_tsy/test/component/scripts/te_ctsycomponent_conferencecallcontrol_individual.script --- a/telephonyserverplugins/common_tsy/test/component/scripts/te_ctsycomponent_conferencecallcontrol_individual.script Fri Feb 19 23:59:33 2010 +0200 +++ b/telephonyserverplugins/common_tsy/test/component/scripts/te_ctsycomponent_conferencecallcontrol_individual.script Fri Mar 12 15:49:38 2010 +0200 @@ -475,5 +475,5 @@ //!@SYMTestActions Invokes RMobileConferenceCall::GetMobileCallInfo with bad parameter data //!@SYMTestExpectedResults Pass //!@SYMTestType CT -//RUN_TEST_STEP 100 te_ctsy_component TEFUnit.CCTsyConferenceCallControlFU.TestGetMobileCallInfo0003L +RUN_TEST_STEP 100 te_ctsy_component TEFUnit.CCTsyConferenceCallControlFU.TestGetMobileCallInfo0003L END_TESTCASE BA-CTSY-CONC-CGMCI-0003 diff -r 962e6306d9d2 -r 7ef16719d8cb telephonyserverplugins/common_tsy/test/component/scripts/te_ctsycomponent_customipc_individual.script --- a/telephonyserverplugins/common_tsy/test/component/scripts/te_ctsycomponent_customipc_individual.script Fri Feb 19 23:59:33 2010 +0200 +++ b/telephonyserverplugins/common_tsy/test/component/scripts/te_ctsycomponent_customipc_individual.script Fri Mar 12 15:49:38 2010 +0200 @@ -568,6 +568,28 @@ RUN_TEST_STEP 100 te_ctsy_component TEFUnit.CCTsyCustomIPCFU.TestReadViagHomeZoneCache0001L END_TESTCASE BA-CTSY-CIPC-MCRVHZC-0001 +START_TESTCASE BA-CTSY-CIPC-MCRVHZC-0001b +//!@SYMTestCaseID BA-CTSY-CIPC-MCRVHZC-0001b +//!@SYMComponent telephony_ctsy +//!@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::ReadViagHomeZoneCache when request failed by NTSY +//!@SYMTestPriority High +//!@SYMTestActions Invokes RMmCustomAPI::ReadViagHomeZoneCache +//!@SYMTestExpectedResults Pass +//!@SYMTestType CT +RUN_TEST_STEP 100 te_ctsy_component TEFUnit.CCTsyCustomIPCFU.TestReadViagHomeZoneCache0001bL +END_TESTCASE BA-CTSY-CIPC-MCRVHZC-0001b + +START_TESTCASE BA-CTSY-CIPC-MCRVHZC-0001c +//!@SYMTestCaseID BA-CTSY-CIPC-MCRVHZC-0001c +//!@SYMComponent telephony_ctsy +//!@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::ReadViagHomeZoneCache when request complete when customAPI is dead +//!@SYMTestPriority High +//!@SYMTestActions Invokes RMmCustomAPI::ReadViagHomeZoneCache +//!@SYMTestExpectedResults Pass +//!@SYMTestType CT +RUN_TEST_STEP 100 te_ctsy_component TEFUnit.CCTsyCustomIPCFU.TestReadViagHomeZoneCache0001cL +END_TESTCASE BA-CTSY-CIPC-MCRVHZC-0001c + START_TESTCASE BA-CTSY-CIPC-MCRVHZC-0002 //!@SYMTestCaseID BA-CTSY-CIPC-MCRVHZC-0002 //!@SYMComponent telephony_ctsy diff -r 962e6306d9d2 -r 7ef16719d8cb telephonyserverplugins/common_tsy/test/component/scripts/te_ctsycomponent_knownfailures_individual.script --- a/telephonyserverplugins/common_tsy/test/component/scripts/te_ctsycomponent_knownfailures_individual.script Fri Feb 19 23:59:33 2010 +0200 +++ b/telephonyserverplugins/common_tsy/test/component/scripts/te_ctsycomponent_knownfailures_individual.script Fri Mar 12 15:49:38 2010 +0200 @@ -27,72 +27,6 @@ RUN_TEST_STEP 100 te_ctsy_component TEFUnit.CCTsyCallEmergencyFU.TestDialEmergencyCall0004L END_TESTCASE BA-CTSY-CEMG-CDEC-0004 -START_TESTCASE BA-CTSY-CIPC-MCRVHZP-0002 -//!@SYMTestCaseID BA-CTSY-CIPC-MCRVHZP-0002 -//!@SYMComponent telephony_ctsy -//!@SYMTestCaseDesc Test support in CTSY for cancelling of RMmCustomAPI::ReadViagHomeZoneParams -//!@SYMTestPriority High -//!@SYMTestActions Invokes cancelling of RMmCustomAPI::ReadViagHomeZoneParams -//!@SYMTestExpectedResults Pass -//!@SYMTestType CT -RUN_TEST_STEP 100 te_ctsy_component TEFUnit.CCTsyCustomIPCFU.TestReadViagHomeZoneParams0002L -END_TESTCASE BA-CTSY-CIPC-MCRVHZP-0002 - -START_TESTCASE BA-CTSY-CIPC-MCRVHZP-0003 -//!@SYMTestCaseID BA-CTSY-CIPC-MCRVHZP-0003 -//!@SYMComponent telephony_ctsy -//!@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::ReadViagHomeZoneParams with bad parameter data -//!@SYMTestPriority High -//!@SYMTestActions Invokes RMmCustomAPI::ReadViagHomeZoneParams with bad parameter data -//!@SYMTestExpectedResults Pass -//!@SYMTestType CT -RUN_TEST_STEP !PanicCode=10 100 te_ctsy_component TEFUnit.CCTsyCustomIPCFU.TestReadViagHomeZoneParams0003L -END_TESTCASE BA-CTSY-CIPC-MCRVHZP-0003 - -START_TESTCASE BA-CTSY-CIPC-MCRVHZC-0001 -//!@SYMTestCaseID BA-CTSY-CIPC-MCRVHZC-0001 -//!@SYMComponent telephony_ctsy -//!@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::ReadViagHomeZoneCache -//!@SYMTestPriority High -//!@SYMTestActions Invokes RMmCustomAPI::ReadViagHomeZoneCache -//!@SYMTestExpectedResults Pass -//!@SYMTestType CT -RUN_TEST_STEP 100 te_ctsy_component TEFUnit.CCTsyCustomIPCFU.TestReadViagHomeZoneCache0001L -END_TESTCASE BA-CTSY-CIPC-MCRVHZC-0001 - -START_TESTCASE BA-CTSY-CIPC-MCRVHZC-0004 -//!@SYMTestCaseID BA-CTSY-CIPC-MCRVHZC-0004 -//!@SYMComponent telephony_ctsy -//!@SYMTestCaseDesc Test support in CTSY for multiple client requests to RMmCustomAPI::ReadViagHomeZoneCache -//!@SYMTestPriority High -//!@SYMTestActions Invokes multiple client requests to RMmCustomAPI::ReadViagHomeZoneCache -//!@SYMTestExpectedResults Pass -//!@SYMTestType CT -RUN_TEST_STEP 100 te_ctsy_component TEFUnit.CCTsyCustomIPCFU.TestReadViagHomeZoneCache0004L -END_TESTCASE BA-CTSY-CIPC-MCRVHZC-0004 - -START_TESTCASE BA-CTSY-CIPC-MCWVHZC-0001 -//!@SYMTestCaseID BA-CTSY-CIPC-MCWVHZC-0001 -//!@SYMComponent telephony_ctsy -//!@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::WriteViagHomeZoneCache -//!@SYMTestPriority High -//!@SYMTestActions Invokes RMmCustomAPI::WriteViagHomeZoneCache -//!@SYMTestExpectedResults Pass -//!@SYMTestType CT -RUN_TEST_STEP 100 te_ctsy_component TEFUnit.CCTsyCustomIPCFU.TestWriteViagHomeZoneCache0001L -END_TESTCASE BA-CTSY-CIPC-MCWVHZC-0001 - -START_TESTCASE BA-CTSY-CIPC-MCWVHZC-0004 -//!@SYMTestCaseID BA-CTSY-CIPC-MCWVHZC-0004 -//!@SYMComponent telephony_ctsy -//!@SYMTestCaseDesc Test support in CTSY for multiple client requests to RMmCustomAPI::WriteViagHomeZoneCache -//!@SYMTestPriority High -//!@SYMTestActions Invokes multiple client requests to RMmCustomAPI::WriteViagHomeZoneCache -//!@SYMTestExpectedResults Pass -//!@SYMTestType CT -RUN_TEST_STEP 100 te_ctsy_component TEFUnit.CCTsyCustomIPCFU.TestWriteViagHomeZoneCache0004L -END_TESTCASE BA-CTSY-CIPC-MCWVHZC-0004 - START_TESTCASE BA-CTSY-FXD-CDNFC-0001 //!@SYMTestCaseID BA-CTSY-FXD-CDNFC-0001 //!@SYMComponent telephony_ctsy diff -r 962e6306d9d2 -r 7ef16719d8cb telephonyserverplugins/common_tsy/test/component/scripts/te_ctsycomponent_mailboxnumbers_individual.script --- a/telephonyserverplugins/common_tsy/test/component/scripts/te_ctsycomponent_mailboxnumbers_individual.script Fri Feb 19 23:59:33 2010 +0200 +++ b/telephonyserverplugins/common_tsy/test/component/scripts/te_ctsycomponent_mailboxnumbers_individual.script Fri Mar 12 15:49:38 2010 +0200 @@ -27,6 +27,39 @@ RUN_TEST_STEP 100 te_ctsy_component TEFUnit.CCTsyMailboxNumbersFU.TestGetMailboxNumbers0001L END_TESTCASE BA-CTSY-MBXN-MGMN-0001 +START_TESTCASE BA-CTSY-MBXN-MGMN-0001b +//!@SYMTestCaseID BA-CTSY-MBXN-MGMN-0001b +//!@SYMComponent telephony_ctsy +//!@SYMTestCaseDesc Test support in CTSY for RMobilePhone::GetMailboxNumbers when VMBX storage is not exist +//!@SYMTestPriority High +//!@SYMTestActions Invokes RMobilePhone::GetMailboxNumbers +//!@SYMTestExpectedResults Pass +//!@SYMTestType CT +RUN_TEST_STEP 100 te_ctsy_component TEFUnit.CCTsyMailboxNumbersFU.TestGetMailboxNumbers0001bL +END_TESTCASE BA-CTSY-MBXN-MGMN-0001b + +START_TESTCASE BA-CTSY-MBXN-MGMN-0001c +//!@SYMTestCaseID BA-CTSY-MBXN-MGMN-0001c +//!@SYMComponent telephony_ctsy +//!@SYMTestCaseDesc Test support in CTSY for RMobilePhone::GetMailboxNumbers when VMBX storage is exist but not ready +//!@SYMTestPriority High +//!@SYMTestActions Invokes RMobilePhone::GetMailboxNumbers +//!@SYMTestExpectedResults Pass +//!@SYMTestType CT +RUN_TEST_STEP 100 te_ctsy_component TEFUnit.CCTsyMailboxNumbersFU.TestGetMailboxNumbers0001cL +END_TESTCASE BA-CTSY-MBXN-MGMN-0001c + +START_TESTCASE BA-CTSY-MBXN-MGMN-0001d +//!@SYMTestCaseID BA-CTSY-MBXN-MGMN-0001d +//!@SYMComponent telephony_ctsy +//!@SYMTestCaseDesc Test support in CTSY for RMobilePhone::GetMailboxNumbers when VMBX storage is not exist but another phone book store (ADN) exist +//!@SYMTestPriority High +//!@SYMTestActions Invokes RMobilePhone::GetMailboxNumbers +//!@SYMTestExpectedResults Pass +//!@SYMTestType CT +RUN_TEST_STEP 100 te_ctsy_component TEFUnit.CCTsyMailboxNumbersFU.TestGetMailboxNumbers0001dL +END_TESTCASE BA-CTSY-MBXN-MGMN-0001d + START_TESTCASE BA-CTSY-MBXN-MGMN-0002 //!@SYMTestCaseID BA-CTSY-MBXN-MGMN-0002 //!@SYMComponent telephony_ctsy diff -r 962e6306d9d2 -r 7ef16719d8cb telephonyserverplugins/common_tsy/test/component/scripts/te_ctsycomponent_onstore_individual.script --- a/telephonyserverplugins/common_tsy/test/component/scripts/te_ctsycomponent_onstore_individual.script Fri Feb 19 23:59:33 2010 +0200 +++ b/telephonyserverplugins/common_tsy/test/component/scripts/te_ctsycomponent_onstore_individual.script Fri Mar 12 15:49:38 2010 +0200 @@ -239,6 +239,39 @@ RUN_TEST_STEP 100 te_ctsy_component TEFUnit.CCTsyONStoreFU.TestGetInfo0001L END_TESTCASE BA-CTSY-PBON-OSGI-0001 +START_TESTCASE BA-CTSY-PBON-OSGI-0001b +//!@SYMTestCaseID BA-CTSY-PBON-OSGI-0001b +//!@SYMComponent telephony_ctsy +//!@SYMTestCaseDesc Test support in CTSY for RMobileONStore::GetInfo when there is no ADN store +//!@SYMTestPriority High +//!@SYMTestActions Invokes RMobileONStore::GetInfo +//!@SYMTestExpectedResults Pass +//!@SYMTestType CT +RUN_TEST_STEP 100 te_ctsy_component TEFUnit.CCTsyONStoreFU.TestGetInfo0001bL +END_TESTCASE BA-CTSY-PBON-OSGI-0001b + +START_TESTCASE BA-CTSY-PBON-OSGI-0001c +//!@SYMTestCaseID BA-CTSY-PBON-OSGI-0001c +//!@SYMComponent telephony_ctsy +//!@SYMTestCaseDesc Test support in CTSY for RMobileONStore::GetInfo when there is no ADN store and another store is initilize +//!@SYMTestPriority High +//!@SYMTestActions Invokes RMobileONStore::GetInfo +//!@SYMTestExpectedResults Pass +//!@SYMTestType CT +RUN_TEST_STEP 100 te_ctsy_component TEFUnit.CCTsyONStoreFU.TestGetInfo0001cL +END_TESTCASE BA-CTSY-PBON-OSGI-0001c + +START_TESTCASE BA-CTSY-PBON-OSGI-0001d +//!@SYMTestCaseID BA-CTSY-PBON-OSGI-0001d +//!@SYMComponent telephony_ctsy +//!@SYMTestCaseDesc Test support in CTSY for RMobileONStore::GetInfo when there is no ADN store and SIM is not ready +//!@SYMTestPriority High +//!@SYMTestActions Invokes RMobileONStore::GetInfo +//!@SYMTestExpectedResults Pass +//!@SYMTestType CT +RUN_TEST_STEP 100 te_ctsy_component TEFUnit.CCTsyONStoreFU.TestGetInfo0001dL +END_TESTCASE BA-CTSY-PBON-OSGI-0001d + START_TESTCASE BA-CTSY-PBON-OSGI-0002 //!@SYMTestCaseID BA-CTSY-PBON-OSGI-0002 //!@SYMComponent telephony_ctsy diff -r 962e6306d9d2 -r 7ef16719d8cb telephonyserverplugins/common_tsy/test/component/scripts/te_ctsycomponent_phonebookstore_individual.script --- a/telephonyserverplugins/common_tsy/test/component/scripts/te_ctsycomponent_phonebookstore_individual.script Fri Feb 19 23:59:33 2010 +0200 +++ b/telephonyserverplugins/common_tsy/test/component/scripts/te_ctsycomponent_phonebookstore_individual.script Fri Mar 12 15:49:38 2010 +0200 @@ -1148,6 +1148,17 @@ RUN_TEST_STEP 100 te_ctsy_component TEFUnit.CCTsyPhoneBookStoreFU.TestGetInfo0001L END_TESTCASE BA-CTSY-PBSTR-PBSGI-0001 +START_TESTCASE BA-CTSY-PBSTR-PBSGI-0001b +//!@SYMTestCaseID BA-CTSY-PBSTR-PBSGI-0001b +//!@SYMComponent telephony_ctsy +//!@SYMTestCaseDesc Test support in CTSY for RMobilePhoneBookStore::GetInfo for ADN phonebook with slow SIM +//!@SYMTestPriority High +//!@SYMTestActions Invokes RMobilePhoneBookStore::GetInfo for ADN phonebook +//!@SYMTestExpectedResults Pass +//!@SYMTestType CT +RUN_TEST_STEP 100 te_ctsy_component TEFUnit.CCTsyPhoneBookStoreFU.TestGetInfo0001bL +END_TESTCASE BA-CTSY-PBSTR-PBSGI-0001b + START_TESTCASE BA-CTSY-PBSTR-PBSGI-0003 //!@SYMTestCaseID BA-CTSY-PBSTR-PBSGI-0003 //!@SYMComponent telephony_ctsy @@ -1192,6 +1203,17 @@ RUN_TEST_STEP 100 te_ctsy_component TEFUnit.CCTsyPhoneBookStoreFU.TestGetInfo0006bL END_TESTCASE BA-CTSY-PBSTR-PBSGI-0006b +START_TESTCASE BA-CTSY-PBSTR-PBSGI-0006c +//!@SYMTestCaseID BA-CTSY-PBSTR-PBSGI-0006c +//!@SYMComponent telephony_ctsy +//!@SYMTestCaseDesc Test support in CTSY for RMobilePhoneBookStore::GetInfo for FDN phonebook with slow SIM +//!@SYMTestPriority High +//!@SYMTestActions Invokes RMobilePhoneBookStore::GetInfo for FDN phonebook +//!@SYMTestExpectedResults Pass +//!@SYMTestType CT +RUN_TEST_STEP 100 te_ctsy_component TEFUnit.CCTsyPhoneBookStoreFU.TestGetInfo0006cL +END_TESTCASE BA-CTSY-PBSTR-PBSGI-0006c + START_TESTCASE BA-CTSY-PBSTR-PBSGI-0008 //!@SYMTestCaseID BA-CTSY-PBSTR-PBSGI-0008 //!@SYMComponent telephony_ctsy @@ -1225,6 +1247,17 @@ RUN_TEST_STEP 100 te_ctsy_component TEFUnit.CCTsyPhoneBookStoreFU.TestGetInfo00011L END_TESTCASE BA-CTSY-PBSTR-PBSGI-00011 +START_TESTCASE BA-CTSY-PBSTR-PBSGI-00011b +//!@SYMTestCaseID BA-CTSY-PBSTR-PBSGI-00011b +//!@SYMComponent telephony_ctsy +//!@SYMTestCaseDesc Test support in CTSY for RMobilePhoneBookStore::GetInfo for SDN phonebook with slow SIM +//!@SYMTestPriority High +//!@SYMTestActions Invokes RMobilePhoneBookStore::GetInfo for SDN phonebook +//!@SYMTestExpectedResults Pass +//!@SYMTestType CT +RUN_TEST_STEP 100 te_ctsy_component TEFUnit.CCTsyPhoneBookStoreFU.TestGetInfo00011bL +END_TESTCASE BA-CTSY-PBSTR-PBSGI-00011b + START_TESTCASE BA-CTSY-PBSTR-PBSGI-00012 //!@SYMTestCaseID BA-CTSY-PBSTR-PBSGI-00012 //!@SYMComponent telephony_ctsy @@ -1280,6 +1313,17 @@ RUN_TEST_STEP 100 te_ctsy_component TEFUnit.CCTsyPhoneBookStoreFU.TestGetInfo00016L END_TESTCASE BA-CTSY-PBSTR-PBSGI-00016 +START_TESTCASE BA-CTSY-PBSTR-PBSGI-00016b +//!@SYMTestCaseID BA-CTSY-PBSTR-PBSGI-00016b +//!@SYMComponent telephony_ctsy +//!@SYMTestCaseDesc Test support in CTSY for RMobilePhoneBookStore::GetInfo for VMBX phonebook with slow SIM +//!@SYMTestPriority High +//!@SYMTestActions Invokes RMobilePhoneBookStore::GetInfo for VMBX phonebook +//!@SYMTestExpectedResults Pass +//!@SYMTestType CT +RUN_TEST_STEP 100 te_ctsy_component TEFUnit.CCTsyPhoneBookStoreFU.TestGetInfo00016bL +END_TESTCASE BA-CTSY-PBSTR-PBSGI-00016b + START_TESTCASE BA-CTSY-PBSTR-PBSGI-00017 //!@SYMTestCaseID BA-CTSY-PBSTR-PBSGI-00017 //!@SYMComponent telephony_ctsy @@ -1335,6 +1379,17 @@ RUN_TEST_STEP 100 te_ctsy_component TEFUnit.CCTsyPhoneBookStoreFU.TestGetInfo00021L END_TESTCASE BA-CTSY-PBSTR-PBSGI-00021 +START_TESTCASE BA-CTSY-PBSTR-PBSGI-00021b +//!@SYMTestCaseID BA-CTSY-PBSTR-PBSGI-00021b +//!@SYMComponent telephony_ctsy +//!@SYMTestCaseDesc Test support in CTSY for RMobilePhoneBookStore::GetInfo for BDN phonebook with slow SIM +//!@SYMTestPriority High +//!@SYMTestActions Invokes RMobilePhoneBookStore::GetInfo for BDN phonebook +//!@SYMTestExpectedResults Pass +//!@SYMTestType CT +RUN_TEST_STEP 100 te_ctsy_component TEFUnit.CCTsyPhoneBookStoreFU.TestGetInfo00021bL +END_TESTCASE BA-CTSY-PBSTR-PBSGI-00021b + START_TESTCASE BA-CTSY-PBSTR-PBSGI-00023 //!@SYMTestCaseID BA-CTSY-PBSTR-PBSGI-00023 //!@SYMComponent telephony_ctsy @@ -1368,6 +1423,17 @@ RUN_TEST_STEP 100 te_ctsy_component TEFUnit.CCTsyPhoneBookStoreFU.TestGetInfo00026L END_TESTCASE BA-CTSY-PBSTR-PBSGI-00026 +START_TESTCASE BA-CTSY-PBSTR-PBSGI-00026b +//!@SYMTestCaseID BA-CTSY-PBSTR-PBSGI-00026b +//!@SYMComponent telephony_ctsy +//!@SYMTestCaseDesc Test support in CTSY for RMobilePhoneBookStore::GetInfo for MBDN phonebook with slow SIM +//!@SYMTestPriority High +//!@SYMTestActions Invokes RMobilePhoneBookStore::GetInfo for MBDN phonebook +//!@SYMTestExpectedResults Pass +//!@SYMTestType CT +RUN_TEST_STEP 100 te_ctsy_component TEFUnit.CCTsyPhoneBookStoreFU.TestGetInfo00026bL +END_TESTCASE BA-CTSY-PBSTR-PBSGI-00026b + START_TESTCASE BA-CTSY-PBSTR-PBSGI-00028 //!@SYMTestCaseID BA-CTSY-PBSTR-PBSGI-00028 //!@SYMComponent telephony_ctsy diff -r 962e6306d9d2 -r 7ef16719d8cb telephonyserverplugins/common_tsy/test/component/src/cctsycallemergencyfu.cpp --- a/telephonyserverplugins/common_tsy/test/component/src/cctsycallemergencyfu.cpp Fri Feb 19 23:59:33 2010 +0200 +++ b/telephonyserverplugins/common_tsy/test/component/src/cctsycallemergencyfu.cpp Fri Mar 12 15:49:38 2010 +0200 @@ -282,9 +282,7 @@ User::__DbgSetAllocFail(EFalse, RAllocator::ENone, 1); User::__DbgSetAllocFail(ETrue, RAllocator::ENone, 1); - ERR_PRINTF2(_L("$CTSYKnownFailure: Dependent on Symbian System State Manager. DEF141353 "), 210106); - // Symbian SSM allocates memory in call to Connect() in ActivateRfForEmergencyCall - + // check results ASSERT_EQUALS(KErrNone, reqStatus.Int()); AssertMockLtsyStatusL(); @@ -677,126 +675,9 @@ TMockLtsyCallData1 completeCallStatusData2(KCallId2, KMobileService, mobileCallStatus); //------------------------------------------------------------------------- - // Test requesting RMobileCall::DialEmergencyCall - // when pending RCall::Dial - //------------------------------------------------------------------------- - - // create pending dial request - RMobileCall::TMobileCallParamsV1 expDialCallParams; - expDialCallParams.iInterval = 0; - expDialCallParams.iCug.iCugIndex = 0xFFFF; - expDialCallParams.iSpeakerControl = - RCall::EMonitorSpeakerControlOnUntilCarrier; - expDialCallParams.iSpeakerVolume = RCall::EMonitorSpeakerVolumeLow; - expDialCallParams.iWaitForDialTone = RCall::EDialToneWait; - expDialCallParams.iIdRestrict = RMobileCall::EIdRestrictDefault; - expDialCallParams.iCug.iExplicitInvoke = EFalse; - expDialCallParams.iCug.iSuppressPrefCug = EFalse; - expDialCallParams.iCug.iSuppressOA = EFalse; - expDialCallParams.iAutoRedial = EFalse; - - - RMobileCall::TMobileCallInfoV8 expDialCallInfo; - _LIT(KPhoneNumber, "101632960000"); - expDialCallInfo.iDialledParty.iTelNumber.Copy(KPhoneNumber); - expDialCallInfo.iService = KMobileService; - expDialCallInfo.iValid = RMobileCall::KCallDialledParty|RMobileCall::KCallAlternating; - expDialCallInfo.iDialledParty.iNumberPlan = - RMobilePhone::EUnknownNumberingPlan; - expDialCallInfo.iDialledParty.iTypeOfNumber = - RMobilePhone::EUnknownNumber; - expDialCallInfo.iAlternatingCall = - RMobilePhone::EAlternatingModeUnspecified; - - - TMockLtsyCallData2 - dialExpectData(0, KMobileService, expDialCallParams, expDialCallInfo); - - data.Close(); - dialExpectData.SerialiseL(data); - iMockLTSY.ExpectL(EEtelCallDial, data); - - data.Close(); - completeDialCallInfoData.SerialiseL(data); - iMockLTSY.CompleteL(EMobileCallGetMobileCallInfo, KErrNone, data, 10); - - data.Close(); - mobileCallStatus = RMobileCall::EStatusDialling; - completeCallStatusData.SerialiseL(data); - iMockLTSY.CompleteL(EMobileCallNotifyMobileCallStatusChange, KErrNone, data, 10); - - ERR_PRINTF2(_L("$CTSYKnownFailure: defect id = %d"), 210106); - // Test fails, TEF aborts the test and all the following - // Actually DialEmergencyCall completes with KErrServerBusy - - // following assert is added to prevent test abortions - ASSERT_TRUE( EFalse ); - - TRequestStatus dialStatus; - mobileCall.Dial(dialStatus, KPhoneNumber); - - // prepare test - - // prepare canceling dial request - data.Close(); - TInt hangUpCause = KErrGsmReleaseByUser; - TBool autoStChangeDisable = ETrue; - TMockLtsyCallData2 expHangupData(KCallId, KMobileService, - hangUpCause, - autoStChangeDisable); - expHangupData.SerialiseL(data); - iMockLTSY.ExpectL(EEtelCallHangUp, data); - - data.Close(); - mobileCallStatus = RMobileCall::EStatusIdle; - completeCallStatusData.SerialiseL(data); - iMockLTSY.CompleteL(EMobileCallNotifyMobileCallStatusChange, hangUpCause, data, 10); - - // prepare dialling emergency call - data.Close(); - numberLtsyData.SerialiseL(data); - iMockLTSY.ExpectL(EMobileCallDialEmergencyCall, data, KErrNone); - - data.Close(); - completeCallInfoData.SerialiseL(data); - iMockLTSY.CompleteL(EMobileCallGetMobileCallInfo, KErrNone, data); - - data.Close(); - mobileCallStatus = RMobileCall::EStatusDialling; - completeCallStatusData.SerialiseL(data); - iMockLTSY.CompleteL(EMobileCallNotifyMobileCallStatusChange, KErrNone, data); - - data.Close(); - mobileCallStatus = RMobileCall::EStatusConnecting; - completeCallStatusData.SerialiseL(data); - iMockLTSY.CompleteL(EMobileCallNotifyMobileCallStatusChange, KErrNone, data); - - data.Close(); - mobileCallStatus = RMobileCall::EStatusConnected; - completeCallStatusData.SerialiseL(data); - iMockLTSY.CompleteL(EMobileCallNotifyMobileCallStatusChange, KErrNone, data); - - // actual test - mobileCall.DialEmergencyCall(reqStatus, number); - - User::WaitForRequest(dialStatus); - ASSERT_EQUALS(KErrCancel, dialStatus.Int()); - - User::WaitForRequest(reqStatus); - ASSERT_EQUALS(KErrNone, reqStatus.Int()); - - PrepareCallCloseL(KCallId, KMobileService); - CleanupStack::PopAndDestroy(&mobileCall); - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- // Test A: Test multiple clients requesting RMobileCall::DialEmergencyCall //------------------------------------------------------------------------- - err = mobileCall.OpenNewCall(line, callName); - ASSERT_EQUALS(KErrNone, err); - CleanupClosePushL(mobileCall); - // Open second client RTelServer telServer2; err = telServer2.Connect(); @@ -871,11 +752,7 @@ User::WaitForRequest(reqStatus2); AssertMockLtsyStatusL(); ASSERT_EQUALS(KErrNone, reqStatus.Int()); - ERR_PRINTF2(_L("$CTSYKnownFailure: defect id = %d"), 210104); - // Second completion with EMobileCallGetMobileCallInfo ipc - // changes callid of 1st call from 1 to 2 - // can not invoke completions for 2nd call - ASSERT_EQUALS(KErrNone, reqStatus2.Int()); // KErrTimedOut + ASSERT_EQUALS(KErrNone, reqStatus2.Int()); // Done ! CleanupStack::PopAndDestroy(8, this); // mobileCall2, line2, phone2, telServer2, mobileCall, line, data, this @@ -953,62 +830,6 @@ AssertMockLtsyStatusL(); - //------------------------------------------------------------------------- - // Test: Test timeout of RMobileCall::DialEmergencyCall - // when call status is changed to RMobileCall::EStatusDialling - //------------------------------------------------------------------------- - - data.Close(); - numberLtsyData.SerialiseL(data); - iMockLTSY.ExpectL(EMobileCallDialEmergencyCall, data, KErrNone); - - data.Close(); - completeCallInfoData.SerialiseL(data); - iMockLTSY.CompleteL(EMobileCallGetMobileCallInfo, KErrNone, data); - - RMobileCall::TMobileCallStatus mobileCallStatus = RMobileCall::EStatusDialling; - TMockLtsyCallData1 completeCallStatusData(KCallId, KMobileService, mobileCallStatus); - data.Close(); - completeCallStatusData.SerialiseL(data); - iMockLTSY.CompleteL(EMobileCallNotifyMobileCallStatusChange, KErrNone, data); - - mobileCall.DialEmergencyCall(reqStatus, number); - ERR_PRINTF2(_L("$CTSYKnownFailure: defect id = %d"), 210107); - // TEF aborts the test - User::WaitForRequest(reqStatus); - ASSERT_EQUALS(KErrTimedOut, reqStatus.Int()); - - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // Test: Test timeout of RMobileCall::DialEmergencyCall - // when call status is changed to RMobileCall::EStatusConnecting - //------------------------------------------------------------------------- - - data.Close(); - numberLtsyData.SerialiseL(data); - iMockLTSY.ExpectL(EMobileCallDialEmergencyCall, data, KErrNone); - - data.Close(); - completeCallInfoData.SerialiseL(data); - iMockLTSY.CompleteL(EMobileCallGetMobileCallInfo, KErrNone, data); - - data.Close(); - mobileCallStatus = RMobileCall::EStatusDialling; - completeCallStatusData.SerialiseL(data); - iMockLTSY.CompleteL(EMobileCallNotifyMobileCallStatusChange, KErrNone, data); - - data.Close(); - mobileCallStatus = RMobileCall::EStatusConnecting; - completeCallStatusData.SerialiseL(data); - iMockLTSY.CompleteL(EMobileCallNotifyMobileCallStatusChange, KErrNone, data); - - mobileCall.DialEmergencyCall(reqStatus, number); - User::WaitForRequest(reqStatus); - ASSERT_EQUALS(KErrTimedOut, reqStatus.Int()); - - AssertMockLtsyStatusL(); - CleanupStack::PopAndDestroy(2); // mobileCall, line CleanupStack::PopAndDestroy(2, this); // data, this diff -r 962e6306d9d2 -r 7ef16719d8cb telephonyserverplugins/common_tsy/test/component/src/cctsyconferencecallcontrolfu.cpp --- a/telephonyserverplugins/common_tsy/test/component/src/cctsyconferencecallcontrolfu.cpp Fri Feb 19 23:59:33 2010 +0200 +++ b/telephonyserverplugins/common_tsy/test/component/src/cctsyconferencecallcontrolfu.cpp Fri Mar 12 15:49:38 2010 +0200 @@ -3337,6 +3337,7 @@ OpenEtelServerL(EUseExtendedError); CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); RBuf8 data; @@ -3419,14 +3420,7 @@ TRequestStatus mockLtsyStatus; iMockLTSY.NotifyTerminated(mockLtsyStatus); iMockLTSY.CompleteL(EMobileCallNotifyMobileCallStatusChange, KErrNone, data); - - // when call becomes idle, remaining duration of the call is added to life time param in LTSY: - TUint32 duration = 5; // this is a dummy value, which won't be checked by mocksy engine - TMockLtsyData1 ltsyData( duration ); - data.Close(); - ltsyData.SerialiseL(data); - iMockLTSY.ExpectL(EMmTsyUpdateLifeTimeIPC, data); - + User::WaitForRequest(mockLtsyStatus); ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); @@ -3434,7 +3428,7 @@ User::WaitForRequest(reqStatus); // CTSY has no cancel for this ipc, so request completes with KErrNone ASSERT_EQUALS(KErrNone, reqStatus.Int()); - + AssertMockLtsyStatusL(); CleanupStack::PopAndDestroy(10, this); // call5, call4, call3, call2, call, line, callsInConference, conferenceCall, data, this @@ -4389,9 +4383,6 @@ // RMobileConferenceCall::GetMobileCallInfo //------------------------------------------------------------------------- - ERR_PRINTF2(_L("$CTSYKnownFailure: defect id = %d"), 201701); - ASSERT_TRUE(EFalse); - TBuf8<1> smallSizeBuf; res = conferenceCall.GetMobileCallInfo(0, smallSizeBuf); ASSERT_TRUE(KErrNone != res); diff -r 962e6306d9d2 -r 7ef16719d8cb telephonyserverplugins/common_tsy/test/component/src/cctsycustomipcfu.cpp --- a/telephonyserverplugins/common_tsy/test/component/src/cctsycustomipcfu.cpp Fri Feb 19 23:59:33 2010 +0200 +++ b/telephonyserverplugins/common_tsy/test/component/src/cctsycustomipcfu.cpp Fri Mar 12 15:49:38 2010 +0200 @@ -36,6 +36,7 @@ const TInt KViagHomeZoneCacheIdMax = KPhEngMaxViagHomeZones; const TInt KViagHomeZoneCacheRecordIdMin = 0; const TInt KViagHomeZoneCacheRecordIdMax = KPhEngMaxCacheId - 1; +const TInt KOneSecond=1000000; // Used in a time out function, 1 second (in microSeconds) CTestSuite* CCTsyCustomIPCFU::CreateSuiteL(const TDesC& aName) { @@ -102,7 +103,9 @@ ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestReadViagHomeZoneParams0004L); ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestReadViagHomeZoneParams0005L); - ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestReadViagHomeZoneCache0001L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestReadViagHomeZoneCache0001L); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestReadViagHomeZoneCache0001bL); + ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestReadViagHomeZoneCache0001cL); ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestReadViagHomeZoneCache0002L); ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestReadViagHomeZoneCache0003L); ADD_TEST_STEP_ISO_CPP(CCTsyCustomIPCFU, TestReadViagHomeZoneCache0004L); @@ -4641,72 +4644,326 @@ @SYMTestType CT */ void CCTsyCustomIPCFU::TestReadViagHomeZoneCache0001L() - { - OpenEtelServerL(EUseExtendedError); - CleanupStack::PushL(TCleanupItem(Cleanup,this)); - - RMmCustomAPI customAPI; - - //---------------------------------------------- - // TEST D: CTSY will get results from the cache. - //---------------------------------------------- - - //******************************************************************************** - //* To initialize the VIAG home zone cache properly RMmCustomAPI::OpenL should be - //* invoked _before_ EMmTsyBootNotifySimStatusReadyIPC is triggered. - //* That's why OpenPhoneAndCustomAPILC was implemented and is used here - //* instead of usual OpenPhoneL/OpenCustomAPILC sequence. - //******************************************************************************** - - OpenPhoneAndCustomAPILC(customAPI); - - for(TInt c = KViagHomeZoneCacheIdMin; c <= KViagHomeZoneCacheIdMin; c++) - { - for(TInt r = KViagHomeZoneCacheRecordIdMin; r <= KViagHomeZoneCacheRecordIdMax; r++) - { - RMmCustomAPI::TViagCacheRecordId recId; - recId.iCacheId = c; - recId.iRecordId = r; - - RMmCustomAPI::TViagCacheRecordContent recContent; - - TRequestStatus reqStatus; - customAPI.ReadViagHomeZoneCache(reqStatus,recId,recContent); - User::WaitForRequest(reqStatus); - - ASSERT_EQUALS(KErrNone,reqStatus.Int()); - - const RMmCustomAPI::TViagCacheRecordContent& expectedContent = - iViagHomeZoneCache[c - KViagHomeZoneCacheIdMin][r - KViagHomeZoneCacheRecordIdMin]; - ASSERT_EQUALS(expectedContent.iLac, recContent.iLac); - ASSERT_EQUALS(expectedContent.iCellId, recContent.iCellId); - } - } - - AssertMockLtsyStatusL(); - - //------------------------------------------------------------------------- - // TEST E: Unsolicited completion of RMmCustomAPI::ReadViagHomeZoneCache - // from LTSY. - //------------------------------------------------------------------------- - - // unsolicited EReadViagHomeZoneCacheIPC completion crashes CTSY - - RMmCustomAPI::TViagCacheRecordContent unsolicitedData; - TPckgC unsolicitedDataPckg(unsolicitedData); - unsolicitedData.iCellId = 111; - unsolicitedData.iLac = 222; - - TRequestStatus mockLtsyStatus; - iMockLTSY.NotifyTerminated(mockLtsyStatus); - iMockLTSY.CompleteL(EReadViagHomeZoneCacheIPC,KErrNone,unsolicitedDataPckg); - - User::WaitForRequest(mockLtsyStatus); - ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(2, this); // customAPI, this - } + { + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + + RMmCustomAPI customAPI; + + //---------------------------------------------- + // TEST D: CTSY will get results from the cache. + //---------------------------------------------- + + //******************************************************************************** + //* To initialize the VIAG home zone cache properly RMmCustomAPI::OpenL should be + //* invoked _before_ EMmTsyBootNotifySimStatusReadyIPC is triggered. + //* That's why OpenPhoneAndCustomAPILC was implemented and is used here + //* instead of usual OpenPhoneL/OpenCustomAPILC sequence. + //******************************************************************************** + + OpenPhoneAndCustomAPILC(customAPI); + + for(TInt c = KViagHomeZoneCacheIdMin; c <= KViagHomeZoneCacheIdMin; c++) + { + for(TInt r = KViagHomeZoneCacheRecordIdMin; r <= KViagHomeZoneCacheRecordIdMax; r++) + { + RMmCustomAPI::TViagCacheRecordId recId; + recId.iCacheId = c; + recId.iRecordId = r; + + RMmCustomAPI::TViagCacheRecordContent recContent; + + TRequestStatus reqStatus; + customAPI.ReadViagHomeZoneCache(reqStatus,recId,recContent); + User::WaitForRequest(reqStatus); + + ASSERT_EQUALS(KErrNone,reqStatus.Int()); + + const RMmCustomAPI::TViagCacheRecordContent& expectedContent = + iViagHomeZoneCache[c - KViagHomeZoneCacheIdMin][r - KViagHomeZoneCacheRecordIdMin]; + ASSERT_EQUALS(expectedContent.iLac, recContent.iLac); + ASSERT_EQUALS(expectedContent.iCellId, recContent.iCellId); + } + } + + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- + // TEST E: Unsolicited completion of RMmCustomAPI::ReadViagHomeZoneCache + // from LTSY. + //------------------------------------------------------------------------- + + // unsolicited EReadViagHomeZoneCacheIPC completion crashes CTSY + + RMmCustomAPI::TViagCacheRecordContent unsolicitedData; + TPckgC unsolicitedDataPckg(unsolicitedData); + unsolicitedData.iCellId = 111; + unsolicitedData.iLac = 222; + + TRequestStatus mockLtsyStatus; + iMockLTSY.NotifyTerminated(mockLtsyStatus); + iMockLTSY.CompleteL(EReadViagHomeZoneCacheIPC,KErrNone,unsolicitedDataPckg); + + User::WaitForRequest(mockLtsyStatus); + ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(2, this); // customAPI, this + } + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCRVHZC-0001b +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::ReadViagHomeZoneCache when request failed by NTSY +@SYMTestPriority High +@SYMTestActions Invokes RMmCustomAPI::ReadViagHomeZoneCache +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestReadViagHomeZoneCache0001bL() + { + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + + RMmCustomAPI customAPI; + + //******************************************************************************** + //* To initialize the VIAG home zone cache properly RMmCustomAPI::OpenL should be + //* invoked _before_ EMmTsyBootNotifySimStatusReadyIPC is triggered. + //* That's why OpenPhoneAndCustomAPILC was implemented and is used here + //* instead of usual OpenPhoneL/OpenCustomAPILC sequence. + //******************************************************************************** + + OpenPhoneAndCustomAPILC(customAPI, KErrGeneral); + + // Complete with an error + MockPrimeEReadViagHomeZoneCacheIPCL(KViagHomeZoneCacheIdMin, KViagHomeZoneCacheRecordIdMin, ETrue, ETrue, KErrGeneral); + + RMmCustomAPI::TViagCacheRecordContent recContent; + TRequestStatus reqStatus; + RMmCustomAPI::TViagCacheRecordId recId; + recId.iCacheId = 2; + recId.iRecordId = 2; + customAPI.ReadViagHomeZoneCache(reqStatus, recId, recContent); + User::WaitForRequest(reqStatus); + + ASSERT_EQUALS(KErrGeneral,reqStatus.Int()); + + //complete without an error + for(TInt c = KViagHomeZoneCacheIdMin; c <= KViagHomeZoneCacheIdMax; c++) + { + for(TInt r = KViagHomeZoneCacheRecordIdMin; r <= KViagHomeZoneCacheRecordIdMax; r++) + { + MockPrimeEReadViagHomeZoneCacheIPCL(c,r, ETrue, ETrue, KErrNone); + } + } + + + for(TInt c = KViagHomeZoneCacheIdMin; c <= KViagHomeZoneCacheIdMin; c++) + { + for(TInt r = KViagHomeZoneCacheRecordIdMin; r <= KViagHomeZoneCacheRecordIdMax; r++) + { + recId.iCacheId = c; + recId.iRecordId = r; + customAPI.ReadViagHomeZoneCache(reqStatus,recId,recContent); + User::WaitForRequest(reqStatus); + + ASSERT_EQUALS(KErrNone,reqStatus.Int()); + + const RMmCustomAPI::TViagCacheRecordContent& expectedContent = + iViagHomeZoneCache[c - KViagHomeZoneCacheIdMin][r - KViagHomeZoneCacheRecordIdMin]; + ASSERT_EQUALS(expectedContent.iLac, recContent.iLac); + ASSERT_EQUALS(expectedContent.iCellId, recContent.iCellId); + } + } + + AssertMockLtsyStatusL(); + + + CleanupStack::PopAndDestroy(2, this); // customAPI, this + } + +/** +@SYMTestCaseID BA-CTSY-CIPC-MCRVHZC-0001c +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMmCustomAPI::ReadViagHomeZoneCache when request complete when customAPI is dead +@SYMTestPriority High +@SYMTestActions Invokes RMmCustomAPI::ReadViagHomeZoneCache +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyCustomIPCFU::TestReadViagHomeZoneCache0001cL() + { + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + RBuf8 data; + data.CleanupClosePushL(); + + RMmCustomAPI customAPI; + CleanupClosePushL(customAPI); + TInt err = iPhone.Open(iTelServer,KMmTsyPhoneName); + ASSERT_EQUALS(KErrNone, err); + + err=iMockLTSY.Connect(); + ASSERT_EQUALS(KErrNone, err); + + RMmCustomAPI::TViagCacheRecordId currentlyRetrievedCache; + currentlyRetrievedCache.iCacheId = 1; + currentlyRetrievedCache.iRecordId = 0; + TMockLtsyData1 ltsyData(currentlyRetrievedCache); + + // Only Expect, no complete + MockPrimeEReadViagHomeZoneCacheIPCL(KViagHomeZoneCacheIdMin, KViagHomeZoneCacheRecordIdMin, EFalse, ETrue ); + + TRequestStatus mockLtsyStatus; + iMockLTSY.NotifyTerminated(mockLtsyStatus); + + //************************************************************ + //* Invoke RMmCustomAPI::Open prior to triggering any further + //* CTSY events including EMmTsyBootNotifySimStatusReadyIPC + //************************************************************ + err = customAPI.Open(iPhone); + ASSERT_EQUALS(KErrNone, err); + + // EMmTsyBootNotifyModemStatusReadyIPC + iMockLTSY.CompleteL(EMmTsyBootNotifyModemStatusReadyIPC,KErrNone); + + // EMobilePhoneGetNetworkRegistrationStatus + iMockLTSY.ExpectL(EMobilePhoneGetNetworkRegistrationStatus); + iMockLTSY.CompleteL(EMobilePhoneGetNetworkRegistrationStatus,KErrNone,0); + + // EMmTsyBootNotifySimStatusReadyIPC + iMockLTSY.ExpectL(EMmTsyBootNotifySimStatusReadyIPC); + iMockLTSY.CompleteL(EMmTsyBootNotifySimStatusReadyIPC,KErrNone,0); + + + // EMobilePhoneGetHomeNetwork + RMobilePhone::TMobilePhoneNetworkInfoV5 homeNetwork; + homeNetwork.iMode = RMobilePhone::ENetworkModeWcdma; + homeNetwork.iStatus = RMobilePhone::ENetworkStatusCurrent; + homeNetwork.iBandInfo = RMobilePhone::EBandUnknown; + homeNetwork.iCountryCode = _L("234"); + homeNetwork.iCdmaSID = _L(""); + homeNetwork.iAnalogSID = _L(""); + homeNetwork.iNetworkId = _L("23499"); + homeNetwork.iDisplayTag = _L("symbian"); + homeNetwork.iShortName = _L("symbian"); + homeNetwork.iLongName = _L("symbian mobile"); + homeNetwork.iAccess = RMobilePhone::ENetworkAccessUtran; + homeNetwork.iEgprsAvailableIndicator = ETrue; + homeNetwork.iHsdpaAvailableIndicator = ETrue; + TMockLtsyData1 homeNetworkData(homeNetwork); + homeNetworkData.SerialiseL(data); + iMockLTSY.ExpectL(EMobilePhoneGetHomeNetwork); + iMockLTSY.CompleteL(EMobilePhoneGetHomeNetwork,KErrNone,data,0); + + // EMmTsyPhoneGetPin1DisableSupportedIPC + TBool pin1DisableSupport = ETrue; + TMockLtsyData1 pin1DisableSupportData(pin1DisableSupport); + data.Close(); + pin1DisableSupportData.SerialiseL(data); + iMockLTSY.ExpectL(EMmTsyPhoneGetPin1DisableSupportedIPC); + iMockLTSY.CompleteL(EMmTsyPhoneGetPin1DisableSupportedIPC,KErrNone,data,0); + + // EMmTsySimRefreshRegisterIPC + iMockLTSY.ExpectL(EMmTsySimRefreshRegisterIPC); + iMockLTSY.CompleteL(EMmTsySimRefreshRegisterIPC, KErrGeneral, 0); + + // EMobilePhoneGetServiceTable + RMobilePhone::TMobilePhoneServiceTable serviceTable = RMobilePhone::ESIMServiceTable; + TMockLtsyData1 serviceTableData(serviceTable); + data.Close(); + serviceTableData.SerialiseL(data); + iMockLTSY.ExpectL(EMobilePhoneGetServiceTable, data); + RMobilePhone::TMobilePhoneServiceTableV1 serviceTableResult; + serviceTableResult.iServices1To8 = 0xFF; + serviceTableResult.iServices9To16 = 0xFF; + serviceTableResult.iServices17To24= 0xFF; + serviceTableResult.iServices25To32= 0xFF; + serviceTableResult.iServices33To40= 0xFF; + serviceTableResult.iServices41To48= 0xFF; + serviceTableResult.iServices49To56= 0xFF; + TMockLtsyData1 serviceTableResultData(serviceTableResult); + data.Close(); + serviceTableResultData.SerialiseL(data); + iMockLTSY.CompleteL(EMobilePhoneGetServiceTable,KErrNone,data,0); + + // EMobilePhoneGetALSLine + RMobilePhone::TMobilePhoneALSLine alsLine = RMobilePhone::EAlternateLinePrimary; + TMockLtsyData1 alsLineData(alsLine); + data.Close(); + alsLineData.SerialiseL(data); + iMockLTSY.ExpectL(EMobilePhoneGetALSLine); + iMockLTSY.CompleteL(EMobilePhoneGetALSLine,KErrNone,data,0); + + // ECustomGetIccCallForwardingStatusIPC + iMockLTSY.ExpectL(ECustomGetIccCallForwardingStatusIPC); + + // EMobilePhoneGetIccMessageWaitingIndicators + RMobilePhone::TMobilePhoneMessageWaitingV1 expectedMessageIndicators; + TMockLtsyData1 + indicatorsData(expectedMessageIndicators); + data.Close(); + indicatorsData.SerialiseL(data); + iMockLTSY.ExpectL(EMobilePhoneGetIccMessageWaitingIndicators); + iMockLTSY.CompleteL(EMobilePhoneGetIccMessageWaitingIndicators, KErrNone, data); + + iMockLTSY.ExpectL(ECustomCheckAlsPpSupportIPC); + iMockLTSY.ExpectL(EMobilePhoneGetCustomerServiceProfile); + + + User::WaitForRequest(mockLtsyStatus); + ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); + + // Close the customAPI. + CleanupStack::PopAndDestroy(&customAPI); + // Wait for server to clear... + User::After(KOneSecond); + + // ECustomGetIccCallForwardingStatusIPC + iMockLTSY.ExpectL(ECustomGetIccCallForwardingStatusIPC); + + for(TInt c = KViagHomeZoneCacheIdMin; c <= KViagHomeZoneCacheIdMax; c++) + { + for(TInt r = KViagHomeZoneCacheRecordIdMin; r <= KViagHomeZoneCacheRecordIdMax; r++) + { + MockPrimeEReadViagHomeZoneCacheIPCL(c,r, ETrue, ETrue, KErrNone); + } + } + + // Open another client + RMmCustomAPI customAPI2; + CleanupClosePushL(customAPI2); + ASSERT_EQUALS(KErrNone,customAPI2.Open(iPhone)); + + + + for(TInt c = KViagHomeZoneCacheIdMin; c <= KViagHomeZoneCacheIdMin; c++) + { + for(TInt r = KViagHomeZoneCacheRecordIdMin; r <= KViagHomeZoneCacheRecordIdMax; r++) + { + TRequestStatus reqStatus; + RMmCustomAPI::TViagCacheRecordId recId; + recId.iCacheId = c; + recId.iRecordId = r; + RMmCustomAPI::TViagCacheRecordContent recContent; + customAPI2.ReadViagHomeZoneCache(reqStatus,recId,recContent); + User::WaitForRequest(reqStatus); + + ASSERT_EQUALS(KErrNone,reqStatus.Int()); + + const RMmCustomAPI::TViagCacheRecordContent& expectedContent = + iViagHomeZoneCache[c - KViagHomeZoneCacheIdMin][r - KViagHomeZoneCacheRecordIdMin]; + ASSERT_EQUALS(expectedContent.iLac, recContent.iLac); + ASSERT_EQUALS(expectedContent.iCellId, recContent.iCellId); + } + } + + AssertMockLtsyStatusL(); + + + CleanupStack::PopAndDestroy(3, this); // customAPI2, data, this + } /** @@ -18864,7 +19121,7 @@ * _before_ EMmTsyBootNotifySimStatusReadyIPC CTSY event is triggered and thus * let the Viag Home Zome Cache to be initialized. */ -void CCTsyCustomIPCFU::OpenPhoneAndCustomAPILC(RMmCustomAPI& aCustomAPI) +void CCTsyCustomIPCFU::OpenPhoneAndCustomAPILC(RMmCustomAPI& aCustomAPI, TInt aNtsyError) { CleanupClosePushL(aCustomAPI); TInt err = iPhone.Open(iTelServer,KMmTsyPhoneName); @@ -18886,7 +19143,13 @@ { for(TInt r = KViagHomeZoneCacheRecordIdMin; r <= KViagHomeZoneCacheRecordIdMax; r++) { - MockPrimeEReadViagHomeZoneCacheIPCL(c,r); + MockPrimeEReadViagHomeZoneCacheIPCL(c,r, ETrue, ETrue, aNtsyError); + if(aNtsyError != KErrNone) + { + // got error, send only once + c = KViagHomeZoneCacheIdMax + 1; + r = KViagHomeZoneCacheRecordIdMax + 1; + } } } @@ -18990,7 +19253,13 @@ { for(TInt r = KViagHomeZoneCacheRecordIdMin; r <= KViagHomeZoneCacheRecordIdMax; r++) { - MockPrimeEReadViagHomeZoneCacheIPCL(c,r); + MockPrimeEReadViagHomeZoneCacheIPCL(c,r, ETrue, ETrue, aNtsyError); + if(aNtsyError != KErrNone) + { + // got error, send only once + c = KViagHomeZoneCacheIdMax + 1; + r = KViagHomeZoneCacheRecordIdMax + 1; + } } } @@ -19001,7 +19270,7 @@ CleanupStack::PopAndDestroy(1,&data); } -void CCTsyCustomIPCFU::MockPrimeEReadViagHomeZoneCacheIPCL(TInt aCacheId,TInt aRecordId,TBool aDoComplete, TBool aDoExpect) +void CCTsyCustomIPCFU::MockPrimeEReadViagHomeZoneCacheIPCL(TInt aCacheId,TInt aRecordId,TBool aDoComplete, TBool aDoExpect, TInt aNtsyError) { RBuf8 data; data.CleanupClosePushL(); @@ -19027,7 +19296,7 @@ TMockLtsyData1 contentData(content); data.Close(); contentData.SerialiseL(data); - iMockLTSY.CompleteL(EReadViagHomeZoneCacheIPC,KErrNone,data,0); + iMockLTSY.CompleteL(EReadViagHomeZoneCacheIPC,aNtsyError,data,0); } CleanupStack::PopAndDestroy(1,&data); diff -r 962e6306d9d2 -r 7ef16719d8cb telephonyserverplugins/common_tsy/test/component/src/cctsyenstorefu.cpp --- a/telephonyserverplugins/common_tsy/test/component/src/cctsyenstorefu.cpp Fri Feb 19 23:59:33 2010 +0200 +++ b/telephonyserverplugins/common_tsy/test/component/src/cctsyenstorefu.cpp Fri Mar 12 15:49:38 2010 +0200 @@ -351,6 +351,7 @@ ASSERT_EQUALS(KErrNone, ret); CleanupClosePushL(enStore); + // Test 1: Bad index const TInt KIndex(0); //bad index TRequestStatus requestStatus; RMobileENStore::TMobileENEntryV1 info; @@ -363,6 +364,15 @@ User::WaitForRequest(requestStatus); ASSERT_EQUALS(KErrArgument, requestStatus.Int()); + // Test 2: Bad package size + RMobileNamStore::TMobileNamEntryV1 info2; + RMobileNamStore::TMobileNamEntryV1Pckg infoPckg2(info2); + + enStore.Read(requestStatus, infoPckg2); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrArgument, requestStatus.Int()); + AssertMockLtsyStatusL(); CleanupStack::PopAndDestroy(2, this); // enStore, this } diff -r 962e6306d9d2 -r 7ef16719d8cb telephonyserverplugins/common_tsy/test/component/src/cctsymailboxnumbersfu.cpp --- a/telephonyserverplugins/common_tsy/test/component/src/cctsymailboxnumbersfu.cpp Fri Feb 19 23:59:33 2010 +0200 +++ b/telephonyserverplugins/common_tsy/test/component/src/cctsymailboxnumbersfu.cpp Fri Mar 12 15:49:38 2010 +0200 @@ -28,11 +28,16 @@ #include "tmockltsydata.h" #include +const TInt KOneSecond=1000000; // Used in a time out function, 1 second (in microSeconds) + CTestSuite* CCTsyMailboxNumbersFU::CreateSuiteL(const TDesC& aName) { SUB_SUITE; - ADD_TEST_STEP_ISO_CPP(CCTsyMailboxNumbersFU, TestGetMailboxNumbers0001L); + ADD_TEST_STEP_ISO_CPP(CCTsyMailboxNumbersFU, TestGetMailboxNumbers0001L); + ADD_TEST_STEP_ISO_CPP(CCTsyMailboxNumbersFU, TestGetMailboxNumbers0001bL); + ADD_TEST_STEP_ISO_CPP(CCTsyMailboxNumbersFU, TestGetMailboxNumbers0001cL); + ADD_TEST_STEP_ISO_CPP(CCTsyMailboxNumbersFU, TestGetMailboxNumbers0001dL); ADD_TEST_STEP_ISO_CPP(CCTsyMailboxNumbersFU, TestGetMailboxNumbers0002L); ADD_TEST_STEP_ISO_CPP(CCTsyMailboxNumbersFU, TestGetMailboxNumbers0003L); ADD_TEST_STEP_ISO_CPP(CCTsyMailboxNumbersFU, TestGetMailboxNumbers0004L); @@ -63,6 +68,11 @@ OpenEtelServerL(EUseExtendedError); CleanupStack::PushL(TCleanupItem(Cleanup,this)); OpenPhoneL(); + + RMobilePhoneBookStore bookStore; + TName name(KETelIccVoiceMailBox); + OpenPhoneBookStoreL(bookStore, name, iPhone); + CleanupClosePushL(bookStore); RBuf8 data; CleanupClosePushL(data); @@ -147,10 +157,272 @@ ASSERT_EQUALS(KErrNone, reqStatus.Int()); AssertMockLtsyStatusL(); - CleanupStack::PopAndDestroy(2, this); // data, this + CleanupStack::PopAndDestroy(3, this); // data, bookStore, this } +/** +@SYMTestCaseID BA-CTSY-MBXN-MGMN-0001b +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMobilePhone::GetMailboxNumbers when VMBX storage is not exist +@SYMTestPriority High +@SYMTestActions Invokes RMobilePhone::GetMailboxNumbers +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyMailboxNumbersFU::TestGetMailboxNumbers0001bL() + { + // Since we can not read the mail box number from the SIM if the VMBX storage was not initilized, the + // CTSY must make sure that the VMBX storage was initilize before requesting the mail box number from + // the LTSY. This test test if the CTSY knows to create a new VMBX and wait for the initilization to complete. + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RBuf8 data; + CleanupClosePushL(data); + + TRequestStatus reqStatus; + + TName name(KETelIccVoiceMailBox); + TMockLtsyPhoneBookData0 storeInitData(name); + storeInitData.SerialiseL(data); + iMockLTSY.ExpectL(EMmTsyPhoneBookStoreInitIPC, data); + + + RMobilePhone::TMobilePhoneVoicemailIdsV3 voicemailIds; + voicemailIds.iVoice = 1; + voicemailIds.iData = 2; + voicemailIds.iFax = 3; + voicemailIds.iOther = 4; + RMobilePhone::TMobilePhoneVoicemailIdsV3Pckg voicemailIdsPckg(voicemailIds); + + iPhone.GetMailboxNumbers(reqStatus, voicemailIdsPckg); + ASSERT_EQUALS(KRequestPending, reqStatus.Int()); + User::After(KOneSecond); + ASSERT_EQUALS(KRequestPending, reqStatus.Int()); + + CStorageInfoData storageData; + SetStorageInfoData(storageData); + + // only after the book store is ready, and CTSY can send the EMobilePhoneGetMailboxNumbers. + TMockLtsyPhoneBookData1< CStorageInfoData > retStoreInitC(name, storageData); + data.Close(); + retStoreInitC.SerialiseL(data); + iMockLTSY.CompleteL(EMmTsyPhoneBookStoreInitIPC, KErrNone, data, 0); + + RMobilePhone::TMobilePhoneVoicemailIdsV3 expVoicemailIds; + expVoicemailIds.iVoice = 1; + expVoicemailIds.iData = 2; + expVoicemailIds.iFax = 3; + expVoicemailIds.iOther = 4; + TMockLtsyData1 + voicemailIdsData( expVoicemailIds ); + data.Close(); + voicemailIdsData.SerialiseL(data); + iMockLTSY.ExpectL(EMobilePhoneGetMailboxNumbers, data, KErrNone); + + ASSERT_EQUALS(KRequestPending, reqStatus.Int()); + User::After(KOneSecond); + ASSERT_EQUALS(KRequestPending, reqStatus.Int()); + + RMobilePhone::TMobilePhoneVoicemailIdsV3 completeVoicemailIds; + TMockLtsyData1 + completeVoicemailIdsData( completeVoicemailIds ); + completeVoicemailIds.iVoice = 5; + completeVoicemailIds.iData = 6; + completeVoicemailIds.iFax = 7; + completeVoicemailIds.iOther = 8; + data.Close(); + completeVoicemailIdsData.SerialiseL(data); + iMockLTSY.CompleteL(EMobilePhoneGetMailboxNumbers, KErrNone, data); + + User::WaitForRequest(reqStatus); + ASSERT_EQUALS(KErrNone, reqStatus.Int()); + AssertMockLtsyStatusL(); + ASSERT_EQUALS(completeVoicemailIds.iVoice, voicemailIds.iVoice); + ASSERT_EQUALS(completeVoicemailIds.iData, voicemailIds.iData); + ASSERT_EQUALS(completeVoicemailIds.iFax, voicemailIds.iFax); + ASSERT_EQUALS(completeVoicemailIds.iOther, voicemailIds.iOther); + + CleanupStack::PopAndDestroy(2, this); // data, this + + } + +/** +@SYMTestCaseID BA-CTSY-MBXN-MGMN-0001c +@SYMComponent telephony_ctsy +@SYMTestCaseDesc support in CTSY for RMobilePhone::GetMailboxNumbers when VMBX storage is exist but not ready +@SYMTestPriority High +@SYMTestActions Invokes RMobilePhone::GetMailboxNumbers +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyMailboxNumbersFU::TestGetMailboxNumbers0001cL() + { + // Since we can not read the mail box number from the SIM if the VMBX storage was not initilized, the + // CTSY must make sure that the VMBX storage was initilize before requesting the mail box number from + // the LTSY. This test test if the CTSY knows to wait for an previous initilize request to complete + // before requesting to get the mail box number. + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RBuf8 data; + CleanupClosePushL(data); + + TRequestStatus reqStatus; + + TName name(KETelIccVoiceMailBox); + TMockLtsyPhoneBookData0 storeInitData(name); + storeInitData.SerialiseL(data); + iMockLTSY.ExpectL(EMmTsyPhoneBookStoreInitIPC, data); + + RMobilePhoneBookStore bookStore; + CleanupClosePushL(bookStore); + TInt ret = bookStore.Open(iPhone, name); + ASSERT_EQUALS(KErrNone, ret); + + + RMobilePhone::TMobilePhoneVoicemailIdsV3 voicemailIds; + voicemailIds.iVoice = 1; + voicemailIds.iData = 2; + voicemailIds.iFax = 3; + voicemailIds.iOther = 4; + RMobilePhone::TMobilePhoneVoicemailIdsV3Pckg voicemailIdsPckg(voicemailIds); + + iPhone.GetMailboxNumbers(reqStatus, voicemailIdsPckg); + ASSERT_EQUALS(KRequestPending, reqStatus.Int()); + User::After(KOneSecond); + ASSERT_EQUALS(KRequestPending, reqStatus.Int()); + + CStorageInfoData storageData; + SetStorageInfoData(storageData); + + TMockLtsyPhoneBookData1< CStorageInfoData > retStoreInitC(name, storageData); + data.Close(); + retStoreInitC.SerialiseL(data); + iMockLTSY.CompleteL(EMmTsyPhoneBookStoreInitIPC, KErrNone, data, 0); + + RMobilePhone::TMobilePhoneVoicemailIdsV3 expVoicemailIds; + expVoicemailIds.iVoice = 1; + expVoicemailIds.iData = 2; + expVoicemailIds.iFax = 3; + expVoicemailIds.iOther = 4; + TMockLtsyData1 + voicemailIdsData( expVoicemailIds ); + data.Close(); + voicemailIdsData.SerialiseL(data); + iMockLTSY.ExpectL(EMobilePhoneGetMailboxNumbers, data, KErrNone); + + ASSERT_EQUALS(KRequestPending, reqStatus.Int()); + User::After(KOneSecond); + ASSERT_EQUALS(KRequestPending, reqStatus.Int()); + + RMobilePhone::TMobilePhoneVoicemailIdsV3 completeVoicemailIds; + TMockLtsyData1 + completeVoicemailIdsData( completeVoicemailIds ); + completeVoicemailIds.iVoice = 5; + completeVoicemailIds.iData = 6; + completeVoicemailIds.iFax = 7; + completeVoicemailIds.iOther = 8; + data.Close(); + completeVoicemailIdsData.SerialiseL(data); + iMockLTSY.CompleteL(EMobilePhoneGetMailboxNumbers, KErrNone, data); + + User::WaitForRequest(reqStatus); + ASSERT_EQUALS(KErrNone, reqStatus.Int()); + AssertMockLtsyStatusL(); + ASSERT_EQUALS(completeVoicemailIds.iVoice, voicemailIds.iVoice); + ASSERT_EQUALS(completeVoicemailIds.iData, voicemailIds.iData); + ASSERT_EQUALS(completeVoicemailIds.iFax, voicemailIds.iFax); + ASSERT_EQUALS(completeVoicemailIds.iOther, voicemailIds.iOther); + + CleanupStack::PopAndDestroy(3, this); // data, bookStore, this + + } + +/** +@SYMTestCaseID BA-CTSY-MBXN-MGMN-0001d +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMobilePhone::GetMailboxNumbers when VMBX storage is not exist but another phone book store (ADN) exist +@SYMTestPriority High +@SYMTestActions Invokes RMobilePhone::GetMailboxNumbers +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyMailboxNumbersFU::TestGetMailboxNumbers0001dL() + { + // Since we can not read the mail box number from the SIM if the VMBX storage was not initilized, the + // CTSY must make sure that the VMBX storage was initilize before requesting the mail box number from + // the LTSY. This test test if the CTSY knows that another phone book store (ADN) initilization would do. + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + TName name(KETelIccAdnPhoneBook); + RMobilePhoneBookStore adnBookStore; + OpenPhoneBookStoreL(adnBookStore, name, iPhone); + CleanupClosePushL(adnBookStore); + + RBuf8 data; + CleanupClosePushL(data); + + TRequestStatus reqStatus; + + RMobilePhoneBookStore bookStore; + CleanupClosePushL(bookStore); + TInt ret = bookStore.Open(iPhone, name); + ASSERT_EQUALS(KErrNone, ret); + + + RMobilePhone::TMobilePhoneVoicemailIdsV3 voicemailIds; + voicemailIds.iVoice = 1; + voicemailIds.iData = 2; + voicemailIds.iFax = 3; + voicemailIds.iOther = 4; + RMobilePhone::TMobilePhoneVoicemailIdsV3Pckg voicemailIdsPckg(voicemailIds); + + RMobilePhone::TMobilePhoneVoicemailIdsV3 expVoicemailIds; + expVoicemailIds.iVoice = 1; + expVoicemailIds.iData = 2; + expVoicemailIds.iFax = 3; + expVoicemailIds.iOther = 4; + TMockLtsyData1 + voicemailIdsData( expVoicemailIds ); + data.Close(); + voicemailIdsData.SerialiseL(data); + iMockLTSY.ExpectL(EMobilePhoneGetMailboxNumbers, data, KErrNone); + + iPhone.GetMailboxNumbers(reqStatus, voicemailIdsPckg); + ASSERT_EQUALS(KRequestPending, reqStatus.Int()); + User::After(KOneSecond); + ASSERT_EQUALS(KRequestPending, reqStatus.Int()); + + RMobilePhone::TMobilePhoneVoicemailIdsV3 completeVoicemailIds; + TMockLtsyData1 + completeVoicemailIdsData( completeVoicemailIds ); + completeVoicemailIds.iVoice = 5; + completeVoicemailIds.iData = 6; + completeVoicemailIds.iFax = 7; + completeVoicemailIds.iOther = 8; + data.Close(); + completeVoicemailIdsData.SerialiseL(data); + iMockLTSY.CompleteL(EMobilePhoneGetMailboxNumbers, KErrNone, data); + + User::WaitForRequest(reqStatus); + ASSERT_EQUALS(KErrNone, reqStatus.Int()); + AssertMockLtsyStatusL(); + ASSERT_EQUALS(completeVoicemailIds.iVoice, voicemailIds.iVoice); + ASSERT_EQUALS(completeVoicemailIds.iData, voicemailIds.iData); + ASSERT_EQUALS(completeVoicemailIds.iFax, voicemailIds.iFax); + ASSERT_EQUALS(completeVoicemailIds.iOther, voicemailIds.iOther); + + CleanupStack::PopAndDestroy(4, this); // data, adnBookStore, bookStore, this + + } /** @SYMTestCaseID BA-CTSY-MBXN-MGMN-0002 @@ -171,6 +443,11 @@ CleanupStack::PushL(TCleanupItem(Cleanup,this)); OpenPhoneL(); + RMobilePhoneBookStore bookStore; + TName name(KETelIccVoiceMailBox); + OpenPhoneBookStoreL(bookStore, name, iPhone); + CleanupClosePushL(bookStore); + TRequestStatus mockLtsyStatus; iMockLTSY.NotifyTerminated(mockLtsyStatus); @@ -208,7 +485,7 @@ ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); AssertMockLtsyStatusL(); - CleanupStack::PopAndDestroy(2); // data, this + CleanupStack::PopAndDestroy(3); // data, bookStore, this } @@ -264,6 +541,11 @@ CleanupStack::PushL(TCleanupItem(Cleanup,this)); OpenPhoneL(); + RMobilePhoneBookStore bookStore; + TName name(KETelIccVoiceMailBox); + OpenPhoneBookStoreL(bookStore, name, iPhone); + CleanupClosePushL(bookStore); + RBuf8 data; CleanupClosePushL(data); @@ -323,7 +605,7 @@ AssertMockLtsyStatusL(); // Done ! - CleanupStack::PopAndDestroy(4, this); // phone2, telServer2, data, this + CleanupStack::PopAndDestroy(5, this); // phone2, bookStore, telServer2, data, this } @@ -345,6 +627,11 @@ CleanupStack::PushL(TCleanupItem(Cleanup,this)); OpenPhoneL(); + RMobilePhoneBookStore bookStore; + TName name(KETelIccVoiceMailBox); + OpenPhoneBookStoreL(bookStore, name, iPhone); + CleanupClosePushL(bookStore); + RBuf8 data; CleanupClosePushL(data); @@ -368,7 +655,7 @@ AssertMockLtsyStatusL(); // Done ! - CleanupStack::PopAndDestroy(2, this); // data, this + CleanupStack::PopAndDestroy(3, this); // data, bookStore, this } diff -r 962e6306d9d2 -r 7ef16719d8cb telephonyserverplugins/common_tsy/test/component/src/cctsynetworkcontrolfu.cpp --- a/telephonyserverplugins/common_tsy/test/component/src/cctsynetworkcontrolfu.cpp Fri Feb 19 23:59:33 2010 +0200 +++ b/telephonyserverplugins/common_tsy/test/component/src/cctsynetworkcontrolfu.cpp Fri Mar 12 15:49:38 2010 +0200 @@ -5272,14 +5272,27 @@ OpenEtelServerL(EUseExtendedError); CleanupStack::PushL(TCleanupItem(Cleanup,this)); - OpenPhoneL(); - + + TRequestStatus requestStatus; + RMobilePhone::TMobilePhoneRegistrationStatus status; + + // Initial test to verify that GetNetworkRegistrationStatus completes + // with an error if the modem is not ready (i.e., before the LTSY sends + // a EMmTsyBootNotifyModemStatusReadyIPC notification to CTSY) + TInt err = iPhone.Open(iTelServer,KMmTsyPhoneName); + ASSERT_EQUALS(KErrNone, err); + + iPhone.GetNetworkRegistrationStatus(requestStatus, status); + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNotReady, requestStatus.Int()); + + iPhone.Close(); + + OpenPhoneL(); // whole phone bootup procedure for rest of tests + RBuf8 data; CleanupClosePushL(data); - TRequestStatus requestStatus; - RMobilePhone::TMobilePhoneRegistrationStatus status; - //------------------------------------------------------------------------- // TEST A: failure to dispatch request to LTSY //------------------------------------------------------------------------- diff -r 962e6306d9d2 -r 7ef16719d8cb telephonyserverplugins/common_tsy/test/component/src/cctsyonstorefu.cpp --- a/telephonyserverplugins/common_tsy/test/component/src/cctsyonstorefu.cpp Fri Feb 19 23:59:33 2010 +0200 +++ b/telephonyserverplugins/common_tsy/test/component/src/cctsyonstorefu.cpp Fri Mar 12 15:49:38 2010 +0200 @@ -32,6 +32,8 @@ #include "cctsyactiveretriever.h" #include +const TInt KOneSecond=1000000; // Used in a time out function, 1 second (in microSeconds) + CTestSuite* CCTsyONStoreFU::CreateSuiteL(const TDesC& aName) { SUB_SUITE; @@ -61,7 +63,10 @@ ADD_TEST_STEP_ISO_CPP(CCTsyONStoreFU, TestDelete0003L); ADD_TEST_STEP_ISO_CPP(CCTsyONStoreFU, TestDelete0004L); ADD_TEST_STEP_ISO_CPP(CCTsyONStoreFU, TestDelete0005L); - ADD_TEST_STEP_ISO_CPP(CCTsyONStoreFU, TestGetInfo0001L); + ADD_TEST_STEP_ISO_CPP(CCTsyONStoreFU, TestGetInfo0001L); + ADD_TEST_STEP_ISO_CPP(CCTsyONStoreFU, TestGetInfo0001bL); + ADD_TEST_STEP_ISO_CPP(CCTsyONStoreFU, TestGetInfo0001cL); + ADD_TEST_STEP_ISO_CPP(CCTsyONStoreFU, TestGetInfo0001dL); ADD_TEST_STEP_ISO_CPP(CCTsyONStoreFU, TestGetInfo0002L); ADD_TEST_STEP_ISO_CPP(CCTsyONStoreFU, TestGetInfo0003L); ADD_TEST_STEP_ISO_CPP(CCTsyONStoreFU, TestGetInfo0004L); @@ -1199,6 +1204,7 @@ ASSERT_EQUALS(KErrNone, ret); CleanupClosePushL(onStore); + // Test 1: Bad package size TRequestStatus requestStatus; RMobileNamStore::TMobileNamEntryV1 info; // bad param RMobileNamStore::TMobileNamEntryV1Pckg infoPckg(info); @@ -1208,6 +1214,16 @@ User::WaitForRequest(requestStatus); ASSERT_EQUALS(KErrArgument, requestStatus.Int()); + // Test 2: Bad index + RMobileONStore::TMobileONEntryV1 info2; + RMobileONStore::TMobileONEntryV1Pckg infoPckg2(info2); + info2.iIndex = -2; // bad param + + onStore.Read(requestStatus, infoPckg2); + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrArgument, requestStatus.Int()); + AssertMockLtsyStatusL(); CleanupStack::PopAndDestroy(2); // this, onStore @@ -1602,32 +1618,26 @@ ASSERT_EQUALS(KErrNone, ret); CleanupClosePushL(onStore); + // Test 1: Bad index TRequestStatus requestStatus; RMobileONStore::TMobileONEntryV1 info; RMobileONStore::TMobileONEntryV1Pckg infoPckg(info); info.iIndex = -2; //bad index - TMockLtsyData1 tsyData(info); - tsyData.SerialiseL(expData); - - const TInt KLocation(2); - TInt location(KLocation); - - TMockLtsyData1 tsyData2(location); - tsyData2.SerialiseL(completeData); - - iMockLTSY.ExpectL(EMmTsyONStoreWriteIPC, expData); - iMockLTSY.CompleteL(EMmTsyONStoreWriteIPC, KErrNone, completeData); - onStore.Write(requestStatus, infoPckg); - User::WaitForRequest(requestStatus); - ERR_PRINTF2(_L("$CTSYKnownFailure: defect id = %d"), 160401); - - ASSERT_EQUALS(KLocation, info.iIndex); - ASSERT_TRUE(KErrNone != requestStatus.Int()); + ASSERT_EQUALS(KErrArgument, requestStatus.Int()); + + // Test 2: Bad package + RMobileNamStore::TMobileNamEntryV1 info2; // bad param + RMobileNamStore::TMobileNamEntryV1Pckg infoPckg2(info2); + + onStore.Write(requestStatus, infoPckg); + User::WaitForRequest(requestStatus); + + ASSERT_EQUALS(KErrArgument, requestStatus.Int()); AssertMockLtsyStatusL(); @@ -2093,6 +2103,12 @@ CleanupStack::PushL(TCleanupItem(Cleanup,this)); OpenPhoneL(); + // Open ADN phonebook + TName name(KETelIccAdnPhoneBook); + RMobilePhoneBookStore bookStore; + OpenPhoneBookStoreL(bookStore, name, iPhone); + CleanupClosePushL(bookStore); + RBuf8 expData; CleanupClosePushL(expData); @@ -2177,50 +2193,490 @@ AssertMockLtsyStatusL(); - //------------------------------------------------------------------------- - // TEST F: DEF132954: GetInfo fails when another phonebook's initialisation - // is in progress. - //------------------------------------------------------------------------- - - TName name(KETelIccAdnPhoneBook); - RMobilePhoneBookStore bookStore; - - RBuf8 data; - CleanupClosePushL(data); - - RBuf8 data2; - CleanupClosePushL(data2); - - iMockLTSY.NotifyTerminated(mockLtsyStatus); - - //EMmTsyPhoneBookStoreInitIPC - TMockLtsyPhoneBookData0 storeInitData(name); - storeInitData.SerialiseL(data); - - iMockLTSY.ExpectL(EMmTsyPhoneBookStoreInitIPC, data); - - //Open - ret = bookStore.Open(iPhone, name); - ASSERT_EQUALS(KErrNone, ret); - CleanupClosePushL(bookStore); - - User::WaitForRequest(mockLtsyStatus); - ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); - - onStore.GetInfo(requestStatus, storePckg); - - User::WaitForRequest(requestStatus); - ASSERT_EQUALS(KErrNotReady, requestStatus.Int()); - - AssertMockLtsyStatusL(); - - CleanupStack::PopAndDestroy(3); //data, data2, bookStore - - CleanupStack::PopAndDestroy(4, this); // this, etc... + CleanupStack::PopAndDestroy(5, this); // this, etc... } /** +@SYMTestCaseID BA-CTSY-PBON-OSGI-0001b +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMobileONStore::GetInfo when there is no ADN store +@SYMTestPriority High +@SYMTestActions Invokes RMobileONStore::GetInfo +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyONStoreFU::TestGetInfo0001bL() + { + // Since we can not get the ON store info from the SIM if the ADN storage was not initilized, the + // CTSY must make sure that the ADN storage was initilize before requesting to get the ON store info from + // the LTSY. This test test if the CTSY knows to create a new ADN and wait for the initilization to complete. + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RBuf8 expData; + CleanupClosePushL(expData); + + RBuf8 completeData; + CleanupClosePushL(completeData); + + RMobileONStore onStore; + TInt ret = onStore.Open(iPhone); + ASSERT_EQUALS(KErrNone, ret); + CleanupClosePushL(onStore); + + + TRequestStatus requestStatus; + RMobileONStore::TMobileONStoreInfoV1 storeInfo; + RMobileONStore::TMobileONStoreInfoV1Pckg storePckg(storeInfo); + + TName name(KETelIccAdnPhoneBook); + expData.Close(); + TMockLtsyPhoneBookData0 storeInitData(name); + storeInitData.SerialiseL(expData); + iMockLTSY.ExpectL(EMmTsyPhoneBookStoreInitIPC, expData); + + onStore.GetInfo(requestStatus, storePckg); + ASSERT_EQUALS(KRequestPending, requestStatus.Int()); + User::After(KOneSecond); + ASSERT_EQUALS(KRequestPending, requestStatus.Int()); + + CStorageInfoData storageData; + SetStorageInfoData(storageData); + + ASSERT_EQUALS(KErrNone, iMockLTSY.PauseCompletion()); + + TMockLtsyPhoneBookData1< CStorageInfoData > retStoreInitC(name, storageData); + completeData.Close(); + retStoreInitC.SerialiseL(completeData); + iMockLTSY.CompleteL(EMmTsyPhoneBookStoreInitIPC, KErrNone, completeData, 0); + + //EMmTsyPhoneBookStoreCacheIPC + CArrayPtrSeg* cache = new(ELeave) CArrayPtrSeg( 1 ); + CleanupStack::PushL(cache); + + TMockLtsyPhoneBookData1*> storeCacheData(name, cache); + completeData.Close(); + storeCacheData.SerialiseL(completeData); + expData.Close(); + storeInitData.SerialiseL(expData); + + + iMockLTSY.ExpectL(EMmTsyPhoneBookStoreCacheIPC, expData); + iMockLTSY.CompleteL(EMmTsyPhoneBookStoreCacheIPC, KErrNone, completeData, 0); + + TInt readIndex(-1); + TMockLtsyData1 tsyData(readIndex); + expData.Close(); + tsyData.SerialiseL(expData); + iMockLTSY.ExpectL(EMmTsyONStoreGetInfoIPC, expData); + + ASSERT_EQUALS(KErrNone, iMockLTSY.ResumeCompletion()); + + ASSERT_EQUALS(KRequestPending, requestStatus.Int()); + User::After(KOneSecond); + ASSERT_EQUALS(KRequestPending, requestStatus.Int()); + + const TInt KNumOfEntries = 11; + const TInt KUsedEntries = 21; + const TInt KNameLen = 31; + const TInt KNumLen = 41; + TServiceType serviceType = {KNumOfEntries, KUsedEntries, KNameLen, KNumLen}; + TMockLtsyData1 tsyData2(serviceType); + completeData.Close(); + tsyData2.SerialiseL(completeData); + iMockLTSY.CompleteL(EMmTsyONStoreGetInfoIPC, KErrNone, completeData); + + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + + ASSERT_EQUALS(RMobilePhoneStore::EOwnNumberStore, storeInfo.iType); + ASSERT_EQUALS(KONStoreCaps, storeInfo.iCaps); + ASSERT_TRUE(0 == storeInfo.iName.Compare(KETelOwnNumberStore)); + ASSERT_EQUALS(KUsedEntries, storeInfo.iUsedEntries); + ASSERT_EQUALS(KNumOfEntries, storeInfo.iTotalEntries); + ASSERT_EQUALS(KNumLen, storeInfo.iNumberLen); + ASSERT_EQUALS(KNameLen, storeInfo.iTextLen); + + CleanupStack::PopAndDestroy(5, this); // this, etc... + } + +/** +@SYMTestCaseID BA-CTSY-PBON-OSGI-0001c +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMobileONStore::GetInfo when there is no ADN store and another store is initilize +@SYMTestPriority High +@SYMTestActions Invokes RMobileONStore::GetInfo +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyONStoreFU::TestGetInfo0001cL() + { + // Since we can not get the ON store info from the SIM if the ADN storage was not initilized, the + // CTSY must make sure that the ADN storage was initilize before requesting to get the ON store info from + // the LTSY. This test test if the CTSY knows what to do when another storage creation was initilize but not completed. + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhoneL(); + + RBuf8 expData; + CleanupClosePushL(expData); + + RBuf8 completeData; + CleanupClosePushL(completeData); + + RMobileONStore onStore; + TInt ret = onStore.Open(iPhone); + ASSERT_EQUALS(KErrNone, ret); + CleanupClosePushL(onStore); + + + TRequestStatus requestStatus; + RMobileONStore::TMobileONStoreInfoV1 storeInfo; + RMobileONStore::TMobileONStoreInfoV1Pckg storePckg(storeInfo); + + TName mbdnName(KETelIccMbdnPhoneBook); + expData.Close(); + TMockLtsyPhoneBookData0 storeInitData(mbdnName); + storeInitData.SerialiseL(expData); + iMockLTSY.ExpectL(EMmTsyPhoneBookStoreInitIPC, expData); + + RMobilePhoneBookStore mbdnBookStore; + CleanupClosePushL(mbdnBookStore); + ASSERT_EQUALS(KErrNone, mbdnBookStore.Open(iPhone, KETelIccMbdnPhoneBook)); + + + onStore.GetInfo(requestStatus, storePckg); + ASSERT_EQUALS(KRequestPending, requestStatus.Int()); + User::After(KOneSecond); + ASSERT_EQUALS(KRequestPending, requestStatus.Int()); + + CStorageInfoData storageData; + SetStorageInfoData(storageData); + + ASSERT_EQUALS(KErrNone, iMockLTSY.PauseCompletion()); + + TMockLtsyPhoneBookData1< CStorageInfoData > retStoreInitC(mbdnName, storageData); + completeData.Close(); + retStoreInitC.SerialiseL(completeData); + iMockLTSY.CompleteL(EMmTsyPhoneBookStoreInitIPC, KErrNone, completeData, 0); + + //EMmTsyPhoneBookStoreCacheIPC + CArrayPtrSeg* cache = new(ELeave) CArrayPtrSeg( 1 ); + CleanupStack::PushL(cache); + + TName adnName(KETelIccAdnPhoneBook); + TMockLtsyPhoneBookData1*> storeCacheData(adnName, cache); + completeData.Close(); + storeCacheData.SerialiseL(completeData); + TMockLtsyPhoneBookData0 adnStoreInitData(adnName); + expData.Close(); + adnStoreInitData.SerialiseL(expData); + + + iMockLTSY.ExpectL(EMmTsyPhoneBookStoreCacheIPC, expData); + iMockLTSY.CompleteL(EMmTsyPhoneBookStoreCacheIPC, KErrNone, completeData, 0); + + TInt readIndex(-1); + TMockLtsyData1 tsyData(readIndex); + expData.Close(); + tsyData.SerialiseL(expData); + iMockLTSY.ExpectL(EMmTsyONStoreGetInfoIPC, expData); + + ASSERT_EQUALS(KErrNone, iMockLTSY.ResumeCompletion()); + + ASSERT_EQUALS(KRequestPending, requestStatus.Int()); + User::After(KOneSecond); + ASSERT_EQUALS(KRequestPending, requestStatus.Int()); + + const TInt KNumOfEntries = 12; + const TInt KUsedEntries = 23; + const TInt KNameLen = 3; + const TInt KNumLen = 14; + TServiceType serviceType = {KNumOfEntries, KUsedEntries, KNameLen, KNumLen}; + TMockLtsyData1 tsyData2(serviceType); + completeData.Close(); + tsyData2.SerialiseL(completeData); + iMockLTSY.CompleteL(EMmTsyONStoreGetInfoIPC, KErrNone, completeData); + + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + + ASSERT_EQUALS(RMobilePhoneStore::EOwnNumberStore, storeInfo.iType); + ASSERT_EQUALS(KONStoreCaps, storeInfo.iCaps); + ASSERT_TRUE(0 == storeInfo.iName.Compare(KETelOwnNumberStore)); + ASSERT_EQUALS(KUsedEntries, storeInfo.iUsedEntries); + ASSERT_EQUALS(KNumOfEntries, storeInfo.iTotalEntries); + ASSERT_EQUALS(KNumLen, storeInfo.iNumberLen); + ASSERT_EQUALS(KNameLen, storeInfo.iTextLen); + + CleanupStack::PopAndDestroy(6, this); // this, etc... + } + + +/** +@SYMTestCaseID BA-CTSY-PBON-OSGI-0001d +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMobileONStore::GetInfo when there is no ADN store and SIM is not ready +@SYMTestPriority High +@SYMTestActions Invokes RMobileONStore::GetInfo +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyONStoreFU::TestGetInfo0001dL() + { + // Since we can not get the ON store info from the SIM if the ADN storage was not initilized, the + // CTSY must make sure that the ADN storage was initilize before requesting to get the ON store info from + // the LTSY. We can not initilize the storage if the SIM is not ready. This test test if the CTSY knows + // to wait for the SIM to be ready, the wait for the storage to complete the initilization and only then to + // ask the ON storage info from the LTSY. + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + + RBuf8 expData; + CleanupClosePushL(expData); + + RBuf8 completeData; + CleanupClosePushL(completeData); + + // Open the phone + RMobilePhone::TMobilePhoneNetworkInfoV8 homeNetwork; + homeNetwork.iMode = RMobilePhone::ENetworkModeWcdma; + homeNetwork.iStatus = RMobilePhone::ENetworkStatusCurrent; + homeNetwork.iBandInfo = RMobilePhone::EBandUnknown; + homeNetwork.iCountryCode = _L("234"); + homeNetwork.iCdmaSID = _L(""); + homeNetwork.iAnalogSID = _L(""); + homeNetwork.iNetworkId = _L("23499"); + homeNetwork.iDisplayTag = _L("symbian"); + homeNetwork.iShortName = _L("symbian"); + homeNetwork.iLongName = _L("symbian mobile"); + homeNetwork.iAccess = RMobilePhone::ENetworkAccessUtran; + homeNetwork.iEgprsAvailableIndicator = ETrue; + homeNetwork.iHsdpaAvailableIndicator = ETrue; + homeNetwork.iHsupaAvailableIndicator = ETrue; + TMockLtsyData1 homeNetworkData(homeNetwork); + homeNetworkData.SerialiseL(completeData); + + TInt err = iPhone.Open(iTelServer,KMmTsyPhoneName); + ASSERT_EQUALS(KErrNone, err); + + err=iMockLTSY.Connect(); + ASSERT_EQUALS(KErrNone, err); + + // EMmTsyBootNotifyModemStatusReadyIPC + ASSERT_EQUALS(KErrNone, iMockLTSY.PauseCompletion()); + iMockLTSY.CompleteL(EMmTsyBootNotifyModemStatusReadyIPC,KErrNone); + + // EMobilePhoneGetNetworkRegistrationStatus + iMockLTSY.ExpectL(EMobilePhoneGetNetworkRegistrationStatus); + iMockLTSY.CompleteL(EMobilePhoneGetNetworkRegistrationStatus,KErrNone,0); + // EMmTsyBootNotifySimStatusReadyIPC + iMockLTSY.ExpectL(EMmTsyBootNotifySimStatusReadyIPC); + + ASSERT_EQUALS(KErrNone, iMockLTSY.ResumeCompletion()); + + + + + + RMobileONStore onStore; + TInt ret = onStore.Open(iPhone); + ASSERT_EQUALS(KErrNone, ret); + CleanupClosePushL(onStore); + + + TRequestStatus requestStatus; + RMobileONStore::TMobileONStoreInfoV1 storeInfo; + RMobileONStore::TMobileONStoreInfoV1Pckg storePckg(storeInfo); + + onStore.GetInfo(requestStatus, storePckg); + ASSERT_EQUALS(KRequestPending, requestStatus.Int()); + User::After(KOneSecond); + ASSERT_EQUALS(KRequestPending, requestStatus.Int()); + + ASSERT_EQUALS(KErrNone, iMockLTSY.PauseCompletion()); + + TRequestStatus mockLtsyStatus; + iMockLTSY.NotifyTerminated(mockLtsyStatus); + iMockLTSY.CompleteL(EMmTsyBootNotifySimStatusReadyIPC,KErrNone,0); + + // EMobilePhoneGetHomeNetwork + iMockLTSY.ExpectL(EMobilePhoneGetHomeNetwork); + iMockLTSY.CompleteL(EMobilePhoneGetHomeNetwork,KErrNone,completeData,0); + + // EMmTsyPhoneGetPin1DisableSupportedIPC + iMockLTSY.ExpectL(EMmTsyPhoneGetPin1DisableSupportedIPC); + + // EMmTsySimRefreshRegisterIPC + iMockLTSY.ExpectL(EMmTsySimRefreshRegisterIPC); + + // EMobilePhoneGetServiceTable + RMobilePhone::TMobilePhoneServiceTable serviceTable = RMobilePhone::ESIMServiceTable; + TMockLtsyData1 serviceTableData(serviceTable); + expData.Close(); + serviceTableData.SerialiseL(expData); + iMockLTSY.ExpectL(EMobilePhoneGetServiceTable, expData); + + TName name(KETelIccAdnPhoneBook); + expData.Close(); + TMockLtsyPhoneBookData0 storeInitData(name); + storeInitData.SerialiseL(expData); + iMockLTSY.ExpectL(EMmTsyPhoneBookStoreInitIPC, expData); + + + CStorageInfoData storageData; + SetStorageInfoData(storageData); + + + TMockLtsyPhoneBookData1< CStorageInfoData > retStoreInitC(name, storageData); + completeData.Close(); + retStoreInitC.SerialiseL(completeData); + iMockLTSY.CompleteL(EMmTsyPhoneBookStoreInitIPC, KErrNone, completeData, 0); + + + // EMobilePhoneGetALSLine + iMockLTSY.ExpectL(EMobilePhoneGetALSLine); + + iMockLTSY.ExpectL(ECustomGetIccCallForwardingStatusIPC); + + // EMobilePhoneGetIccMessageWaitingIndicators + iMockLTSY.ExpectL(EMobilePhoneGetIccMessageWaitingIndicators); + + //ECustomCheckAlsPpSupportIPC + iMockLTSY.ExpectL(ECustomCheckAlsPpSupportIPC); + + //EMobilePhoneGetCustomerServiceProfile + iMockLTSY.ExpectL(EMobilePhoneGetCustomerServiceProfile); + + + // Complete for EMmTsyPhoneGetPin1DisableSupportedIPC + TBool pin1DisableSupport = ETrue; + TMockLtsyData1 pin1DisableSupportData(pin1DisableSupport); + completeData.Close(); + pin1DisableSupportData.SerialiseL(completeData); + iMockLTSY.CompleteL(EMmTsyPhoneGetPin1DisableSupportedIPC,KErrNone,completeData,0); + + // Complete for EMmTsySimRefreshRegisterIPC + iMockLTSY.CompleteL(EMmTsySimRefreshRegisterIPC, KErrGeneral, 0); + + // Complete for EMobilePhoneGetServiceTable + RMobilePhone::TMobilePhoneServiceTableV1 serviceTableResult; + serviceTableResult.iServices1To8 = 0xFF; + serviceTableResult.iServices9To16 = 0xFF; + serviceTableResult.iServices17To24= 0xFF; + serviceTableResult.iServices25To32= 0xFF; + serviceTableResult.iServices33To40= 0xFF; + serviceTableResult.iServices41To48= 0xFF; + serviceTableResult.iServices49To56= 0xFF; + TMockLtsyData1 serviceTableResultData(serviceTableResult); + completeData.Close(); + serviceTableResultData.SerialiseL(completeData); + iMockLTSY.CompleteL(EMobilePhoneGetServiceTable,KErrNone,completeData,0); + + + // Complete for EMobilePhoneGetALSLine + RMobilePhone::TMobilePhoneALSLine alsLine = RMobilePhone::EAlternateLinePrimary; + TMockLtsyData1 alsLineData(alsLine); + completeData.Close(); + alsLineData.SerialiseL(completeData); + iMockLTSY.CompleteL(EMobilePhoneGetALSLine,KErrNone,completeData,0); + + + + // Complete for EMobilePhoneGetIccMessageWaitingIndicators + RMobilePhone::TMobilePhoneMessageWaitingV1 expectedMessageIndicators; + TMockLtsyData1 + indicatorsData(expectedMessageIndicators); + completeData.Close(); + indicatorsData.SerialiseL(completeData); + iMockLTSY.CompleteL(EMobilePhoneGetIccMessageWaitingIndicators, KErrNone, completeData); + + //Complete for ECustomCheckAlsPpSupportIPC + RMmCustomAPI::TAlsSupport alsSupport(RMmCustomAPI::EAlsSupportOff); + TMockLtsyData1< RMmCustomAPI::TAlsSupport > alsSupportData(alsSupport); + completeData.Close(); + alsSupportData.SerialiseL(completeData); + iMockLTSY.CompleteL(ECustomCheckAlsPpSupportIPC, KErrNone, completeData); + + // Complete for EMobilePhoneGetCustomerServiceProfile + RMobilePhone::TMobilePhoneCspFileV1 completeCsp; + completeCsp.iCallOfferingServices = 1; + completeCsp.iCallRestrictionServices = 2; + completeCsp.iOtherSuppServices = 3; + completeCsp.iCallCompletionServices = 4; + completeCsp.iTeleservices = 5; + completeCsp.iCphsTeleservices = 6; + completeCsp.iCphsFeatures = 7; + completeCsp.iNumberIdentServices = 8; + completeCsp.iPhase2PlusServices = 9; + completeCsp.iValueAddedServices = 10; + TMockLtsyData1 completeLtsyData(completeCsp); + completeData.Close(); + completeLtsyData.SerialiseL(completeData); + iMockLTSY.CompleteL(EMobilePhoneGetCustomerServiceProfile, KErrNone, completeData, 10); + + + //EMmTsyPhoneBookStoreCacheIPC + CArrayPtrSeg* cache = new(ELeave) CArrayPtrSeg( 1 ); + CleanupStack::PushL(cache); + + TMockLtsyPhoneBookData1*> storeCacheData(name, cache); + completeData.Close(); + storeCacheData.SerialiseL(completeData); + TMockLtsyPhoneBookData0 adnStoreInitData(name); + expData.Close(); + adnStoreInitData.SerialiseL(expData); + + + iMockLTSY.ExpectL(EMmTsyPhoneBookStoreCacheIPC, expData); + iMockLTSY.CompleteL(EMmTsyPhoneBookStoreCacheIPC, KErrNone, completeData, 0); + + TInt readIndex(-1); + TMockLtsyData1 tsyData(readIndex); + expData.Close(); + tsyData.SerialiseL(expData); + iMockLTSY.ExpectL(EMmTsyONStoreGetInfoIPC, expData); + + ASSERT_EQUALS(KErrNone, iMockLTSY.ResumeCompletion()); + + User::WaitForRequest(mockLtsyStatus); + AssertMockLtsyStatusL(); + + ASSERT_EQUALS(KRequestPending, requestStatus.Int()); + User::After(KOneSecond); + ASSERT_EQUALS(KRequestPending, requestStatus.Int()); + + + const TInt KNumOfEntries = 11; + const TInt KUsedEntries = 21; + const TInt KNameLen = 31; + const TInt KNumLen = 41; + TServiceType serviceType = {KNumOfEntries, KUsedEntries, KNameLen, KNumLen}; + TMockLtsyData1 tsyData2(serviceType); + completeData.Close(); + tsyData2.SerialiseL(completeData); + iMockLTSY.CompleteL(EMmTsyONStoreGetInfoIPC, KErrNone, completeData); + + + User::WaitForRequest(requestStatus); + ASSERT_EQUALS(KErrNone, requestStatus.Int()); + + ASSERT_EQUALS(RMobilePhoneStore::EOwnNumberStore, storeInfo.iType); + ASSERT_EQUALS(KONStoreCaps, storeInfo.iCaps); + ASSERT_TRUE(0 == storeInfo.iName.Compare(KETelOwnNumberStore)); + ASSERT_EQUALS(KUsedEntries, storeInfo.iUsedEntries); + ASSERT_EQUALS(KNumOfEntries, storeInfo.iTotalEntries); + ASSERT_EQUALS(KNumLen, storeInfo.iNumberLen); + ASSERT_EQUALS(KNameLen, storeInfo.iTextLen); + + CleanupStack::PopAndDestroy(5, this); // this, etc... + } + +/** @SYMTestCaseID BA-CTSY-PBON-OSGI-0002 @SYMComponent telephony_ctsy @SYMTestCaseDesc Test support in CTSY for cancelling of RMobileONStore::GetInfo @@ -2236,6 +2692,12 @@ CleanupStack::PushL(TCleanupItem(Cleanup,this)); OpenPhoneL(); + // Open ADN phonebook + TName name(KETelIccAdnPhoneBook); + RMobilePhoneBookStore bookStore; + OpenPhoneBookStoreL(bookStore, name, iPhone); + CleanupClosePushL(bookStore); + TRequestStatus mockLtsyStatus; iMockLTSY.NotifyTerminated(mockLtsyStatus); @@ -2281,7 +2743,7 @@ User::WaitForRequest(mockLtsyStatus); AssertMockLtsyStatusL(); - CleanupStack::PopAndDestroy(4); // expData, this + CleanupStack::PopAndDestroy(5); // expData, this } @@ -2357,6 +2819,12 @@ CleanupStack::PushL(TCleanupItem(Cleanup,this)); OpenPhoneL(); + // Open ADN phonebook + TName name(KETelIccAdnPhoneBook); + RMobilePhoneBookStore bookStore; + OpenPhoneBookStoreL(bookStore, name, iPhone); + CleanupClosePushL(bookStore); + RTelServer telServer2; TInt ret = telServer2.Connect(); ASSERT_EQUALS(KErrNone, ret); @@ -2442,7 +2910,7 @@ AssertMockLtsyStatusL(); - CleanupStack::PopAndDestroy(7, this); + CleanupStack::PopAndDestroy(8, this); } diff -r 962e6306d9d2 -r 7ef16719d8cb telephonyserverplugins/common_tsy/test/component/src/cctsyphonebookstorefu.cpp --- a/telephonyserverplugins/common_tsy/test/component/src/cctsyphonebookstorefu.cpp Fri Feb 19 23:59:33 2010 +0200 +++ b/telephonyserverplugins/common_tsy/test/component/src/cctsyphonebookstorefu.cpp Fri Mar 12 15:49:38 2010 +0200 @@ -141,33 +141,39 @@ ADD_TEST_STEP_ISO_CPP(CCTsyPhoneBookStoreFU, TestDelete00028L); ADD_TEST_STEP_ISO_CPP(CCTsyPhoneBookStoreFU, TestDelete00029L); ADD_TEST_STEP_ISO_CPP(CCTsyPhoneBookStoreFU, TestDelete00030L); - ADD_TEST_STEP_ISO_CPP(CCTsyPhoneBookStoreFU, TestGetInfo0001L); //adn + ADD_TEST_STEP_ISO_CPP(CCTsyPhoneBookStoreFU, TestGetInfo0001L); //adn + ADD_TEST_STEP_ISO_CPP(CCTsyPhoneBookStoreFU, TestGetInfo0001bL); //ADD_TEST_STEP_ISO_CPP(CCTsyPhoneBookStoreFU, TestGetInfo0002L); ADD_TEST_STEP_ISO_CPP(CCTsyPhoneBookStoreFU, TestGetInfo0003L); ADD_TEST_STEP_ISO_CPP(CCTsyPhoneBookStoreFU, TestGetInfo0004L); //ADD_TEST_STEP_ISO_CPP(CCTsyPhoneBookStoreFU, TestGetInfo0005L); ADD_TEST_STEP_ISO_CPP(CCTsyPhoneBookStoreFU, TestGetInfo0006L); //fdn - ADD_TEST_STEP_ISO_CPP(CCTsyPhoneBookStoreFU, TestGetInfo0006bL); + ADD_TEST_STEP_ISO_CPP(CCTsyPhoneBookStoreFU, TestGetInfo0006bL); + ADD_TEST_STEP_ISO_CPP(CCTsyPhoneBookStoreFU, TestGetInfo0006cL); //ADD_TEST_STEP_ISO_CPP(CCTsyPhoneBookStoreFU, TestGetInfo0007L); ADD_TEST_STEP_ISO_CPP(CCTsyPhoneBookStoreFU, TestGetInfo0008L); ADD_TEST_STEP_ISO_CPP(CCTsyPhoneBookStoreFU, TestGetInfo0009L); //ADD_TEST_STEP_ISO_CPP(CCTsyPhoneBookStoreFU, TestGetInfo00010L); - ADD_TEST_STEP_ISO_CPP(CCTsyPhoneBookStoreFU, TestGetInfo00011L); //sdn + ADD_TEST_STEP_ISO_CPP(CCTsyPhoneBookStoreFU, TestGetInfo00011L); //sdn + ADD_TEST_STEP_ISO_CPP(CCTsyPhoneBookStoreFU, TestGetInfo00011bL); ADD_TEST_STEP_ISO_CPP(CCTsyPhoneBookStoreFU, TestGetInfo00012L); ADD_TEST_STEP_ISO_CPP(CCTsyPhoneBookStoreFU, TestGetInfo00013L); ADD_TEST_STEP_ISO_CPP(CCTsyPhoneBookStoreFU, TestGetInfo00014L); ADD_TEST_STEP_ISO_CPP(CCTsyPhoneBookStoreFU, TestGetInfo00015L); - ADD_TEST_STEP_ISO_CPP(CCTsyPhoneBookStoreFU, TestGetInfo00016L); //vmbx + ADD_TEST_STEP_ISO_CPP(CCTsyPhoneBookStoreFU, TestGetInfo00016L); //vmbx + ADD_TEST_STEP_ISO_CPP(CCTsyPhoneBookStoreFU, TestGetInfo00016bL); ADD_TEST_STEP_ISO_CPP(CCTsyPhoneBookStoreFU, TestGetInfo00017L); ADD_TEST_STEP_ISO_CPP(CCTsyPhoneBookStoreFU, TestGetInfo00018L); ADD_TEST_STEP_ISO_CPP(CCTsyPhoneBookStoreFU, TestGetInfo00019L); ADD_TEST_STEP_ISO_CPP(CCTsyPhoneBookStoreFU, TestGetInfo00020L); - ADD_TEST_STEP_ISO_CPP(CCTsyPhoneBookStoreFU, TestGetInfo00021L); //bdn + ADD_TEST_STEP_ISO_CPP(CCTsyPhoneBookStoreFU, TestGetInfo00021L); //bdn + ADD_TEST_STEP_ISO_CPP(CCTsyPhoneBookStoreFU, TestGetInfo00021bL); //ADD_TEST_STEP_ISO_CPP(CCTsyPhoneBookStoreFU, TestGetInfo00022L); ADD_TEST_STEP_ISO_CPP(CCTsyPhoneBookStoreFU, TestGetInfo00023L); ADD_TEST_STEP_ISO_CPP(CCTsyPhoneBookStoreFU, TestGetInfo00024L); //ADD_TEST_STEP_ISO_CPP(CCTsyPhoneBookStoreFU, TestGetInfo00025L); - ADD_TEST_STEP_ISO_CPP(CCTsyPhoneBookStoreFU, TestGetInfo00026L); //mbdn + ADD_TEST_STEP_ISO_CPP(CCTsyPhoneBookStoreFU, TestGetInfo00026L); //mbdn + ADD_TEST_STEP_ISO_CPP(CCTsyPhoneBookStoreFU, TestGetInfo00026bL); //ADD_TEST_STEP_ISO_CPP(CCTsyPhoneBookStoreFU, TestGetInfo00027L); ADD_TEST_STEP_ISO_CPP(CCTsyPhoneBookStoreFU, TestGetInfo00028L); ADD_TEST_STEP_ISO_CPP(CCTsyPhoneBookStoreFU, TestGetInfo00029L); @@ -2121,9 +2127,24 @@ @SYMTestType CT */ void CCTsyPhoneBookStoreFU::TestGetInfo0001L() - { - AuxGetInfo1L(KETelIccAdnPhoneBook); - } + { + AuxGetInfo1L(KETelIccAdnPhoneBook); + } + + +/** +@SYMTestCaseID BA-CTSY-PBSTR-PBSGI-0001b +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMobilePhoneBookStore::GetInfo for ADN phonebook with a slow SIM +@SYMTestPriority High +@SYMTestActions Invokes RMobilePhoneBookStore::GetInfo for ADN phonebook +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyPhoneBookStoreFU::TestGetInfo0001bL() + { + AuxGetInfo1bL(KETelIccAdnPhoneBook); + } @@ -2168,9 +2189,9 @@ @SYMTestType CT */ void CCTsyPhoneBookStoreFU::TestGetInfo0006L() - { - AuxGetInfo1L(KETelIccFdnPhoneBook); - } + { + AuxGetInfo1L(KETelIccFdnPhoneBook); + } /** @SYMTestCaseID BA-CTSY-PBSTR-PBSGI-0006b @@ -2236,6 +2257,21 @@ CleanupStack::PopAndDestroy(4, this); // this, data, completeData, bookStore, cache } + +/** +@SYMTestCaseID BA-CTSY-PBSTR-PBSGI-0006c +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMobilePhoneBookStore::GetInfo for FDN phonebook with a slow SIM +@SYMTestPriority High +@SYMTestActions Invokes RMobilePhoneBookStore::GetInfo for FDN phonebook +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyPhoneBookStoreFU::TestGetInfo0006cL() + { + AuxGetInfo1bL(KETelIccFdnPhoneBook); + } + /** @SYMTestCaseID BA-CTSY-PBSTR-PBSGI-0008 @SYMComponent telephony_ctsy @@ -2277,9 +2313,23 @@ @SYMTestType CT */ void CCTsyPhoneBookStoreFU::TestGetInfo00011L() - { - AuxGetInfo1L(KETelIccSdnPhoneBook); - } + { + AuxGetInfo1L(KETelIccSdnPhoneBook); + } + +/** +@SYMTestCaseID BA-CTSY-PBSTR-PBSGI-00011b +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMobilePhoneBookStore::GetInfo for SDN phonebook with a slow SIM +@SYMTestPriority High +@SYMTestActions Invokes RMobilePhoneBookStore::GetInfo for SDN phonebook +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyPhoneBookStoreFU::TestGetInfo00011bL() + { + AuxGetInfo1bL(KETelIccSdnPhoneBook); + } /** @@ -2357,9 +2407,23 @@ @SYMTestType CT */ void CCTsyPhoneBookStoreFU::TestGetInfo00016L() - { - AuxGetInfo1L(KETelIccVoiceMailBox); - } + { + AuxGetInfo1L(KETelIccVoiceMailBox); + } + +/** +@SYMTestCaseID BA-CTSY-PBSTR-PBSGI-00016b +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMobilePhoneBookStore::GetInfo for VMBX phonebook with a slow SIM +@SYMTestPriority High +@SYMTestActions Invokes RMobilePhoneBookStore::GetInfo for VMBX phonebook +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyPhoneBookStoreFU::TestGetInfo00016bL() + { + AuxGetInfo1bL(KETelIccVoiceMailBox); + } /** @@ -2433,9 +2497,23 @@ @SYMTestType CT */ void CCTsyPhoneBookStoreFU::TestGetInfo00021L() - { - AuxGetInfo1L(KETelIccBdnPhoneBook); - } + { + AuxGetInfo1L(KETelIccBdnPhoneBook); + } + +/** +@SYMTestCaseID BA-CTSY-PBSTR-PBSGI-00021b +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMobilePhoneBookStore::GetInfo for BDN phonebook with slow SIM +@SYMTestPriority High +@SYMTestActions Invokes RMobilePhoneBookStore::GetInfo for BDN phonebook +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyPhoneBookStoreFU::TestGetInfo00021bL() + { + AuxGetInfo1bL(KETelIccBdnPhoneBook); + } /** @@ -2478,9 +2556,23 @@ @SYMTestType CT */ void CCTsyPhoneBookStoreFU::TestGetInfo00026L() - { - AuxGetInfo1L(KETelIccMbdnPhoneBook); - } + { + AuxGetInfo1L(KETelIccMbdnPhoneBook); + } + +/** +@SYMTestCaseID BA-CTSY-PBSTR-PBSGI-00026b +@SYMComponent telephony_ctsy +@SYMTestCaseDesc Test support in CTSY for RMobilePhoneBookStore::GetInfo for MBDN phonebook with slow SIM +@SYMTestPriority High +@SYMTestActions Invokes RMobilePhoneBookStore::GetInfo for MBDN phonebook +@SYMTestExpectedResults Pass +@SYMTestType CT +*/ +void CCTsyPhoneBookStoreFU::TestGetInfo00026bL() + { + AuxGetInfo1bL(KETelIccMbdnPhoneBook); + } @@ -5446,7 +5538,7 @@ ASSERT_EQUALS((TUint16)0, bookInfo.iChangeCounter); if(!name.CompareF( KETelIccVoiceMailBox )) { - ASSERT_EQUALS((TUint32)0, bookInfo.iCaps); + ASSERT_EQUALS(KPBTypeVMBXCaps, bookInfo.iCaps); } else { @@ -5502,6 +5594,14 @@ RMobilePhoneBookStore::KCapsRestrictedWriteAccess), bookInfo.iCaps); } + else if( !name.CompareF( KETelIccVoiceMailBox )) + { + ASSERT_EQUALS(KPBTypeVMBXCaps, bookInfo.iCaps); + } + else if( !name.CompareF( KETelIccMbdnPhoneBook )) + { + ASSERT_EQUALS(KPBTypeMBDNCaps, bookInfo.iCaps); + } else { ASSERT_EQUALS((TUint32)0, bookInfo.iCaps); @@ -5563,10 +5663,13 @@ ASSERT_TRUE(bookInfo.iLocation == bookInfo2.iLocation); ASSERT_TRUE(bookInfo.iIdentity == bookInfo2.iIdentity); ASSERT_TRUE(bookInfo.iChangeCounter == bookInfo2.iChangeCounter); // no write or delete was done - if ( !name.CompareF( KETelIccVoiceMailBox ) || - !name.CompareF( KETelIccMbdnPhoneBook ) ) + if ( !name.CompareF( KETelIccVoiceMailBox ) ) { - ASSERT_EQUALS(KCaps, bookInfo2.iCaps); + ASSERT_EQUALS(KPBTypeVMBXCaps, bookInfo2.iCaps); + } + else if ( !name.CompareF( KETelIccMbdnPhoneBook ) ) + { + ASSERT_EQUALS(KPBTypeMBDNCaps, bookInfo2.iCaps); } } @@ -5615,6 +5718,130 @@ } +void CCTsyPhoneBookStoreFU::AuxGetInfo1bL(const TDesC& aName) + { + // Since we can not get the phone book info from the SIM if the phone book was not initilized, the + // CTSY must make sure that the phone book was initilize before requesting the info from + // the LTSY. This test test if the CTSY knows to wait for the initilize request to complete + // before requesting to get the phone book info. + + OpenEtelServerL(EUseExtendedError); + CleanupStack::PushL(TCleanupItem(Cleanup,this)); + OpenPhone2L(); + + RBuf8 data; + CleanupClosePushL(data); + + RBuf8 data2; + CleanupClosePushL(data2); + + TName name(aName); + RMobilePhoneBookStore bookStore; + CleanupClosePushL(bookStore); + + TMockLtsyPhoneBookData0 storeInitData(name); + storeInitData.SerialiseL(data); + iMockLTSY.ExpectL(EMmTsyPhoneBookStoreInitIPC, data); + + TInt ret = bookStore.Open(iPhone, name); + + ASSERT_EQUALS(KErrNone, ret); + + TRequestStatus requestStatus; + TRequestStatus mockLtsyStatus; + RMobilePhoneBookStore::TMobilePhoneBookInfoV1 bookInfo; + RMobilePhoneBookStore::TMobilePhoneBookInfoV1Pckg bookPckg(bookInfo); + bookStore.GetInfo(requestStatus, bookPckg); + + ASSERT_EQUALS(KRequestPending, requestStatus.Int()); + User::After(KOneSecond); + ASSERT_EQUALS(KRequestPending, requestStatus.Int()); + + + CStorageInfoData storageData; + SetStorageInfoData(storageData); + + TMockLtsyPhoneBookData1< CStorageInfoData > retStoreInitC(name, storageData); + retStoreInitC.SerialiseL(data2); + iMockLTSY.CompleteL(EMmTsyPhoneBookStoreInitIPC, KErrNone, data2, 0); + + TInt expected = KErrNone; + TInt usedEntries(12); + if ( !aName.CompareF( KETelIccAdnPhoneBook ) || + !aName.CompareF( KETelIccFdnPhoneBook )) + { + data.Close(); + storeInitData.SerialiseL(data); + iMockLTSY.ExpectL(EMmTsyPhoneBookStoreCacheIPC, data); + CArrayPtrSeg* cache = new(ELeave) CArrayPtrSeg( 1 ); + CleanupStack::PushL(cache); + + TMockLtsyPhoneBookData1*> storeCacheData(name, cache); + data2.Close(); + storeCacheData.SerialiseL(data2); + + + iMockLTSY.CompleteL(EMmTsyPhoneBookStoreCacheIPC, KErrNone, data2, 0); + CleanupStack::PopAndDestroy(cache); + expected = KErrNotReady; + } + else if ( ( !aName.CompareF( KETelIccBdnPhoneBook ) ) || (!aName.CompareF( KETelIccMbdnPhoneBook ) ) ) + { + usedEntries = 0; + } + else + { + data.Close(); + TMockLtsyPhoneBookData0 tsyData(name); + tsyData.SerialiseL(data); + + iMockLTSY.ExpectL(EMmTsyPhoneBookStoreGetInfoIPC, data); + ASSERT_EQUALS(KRequestPending, requestStatus.Int()); + User::After(KOneSecond); + ASSERT_EQUALS(KRequestPending, requestStatus.Int()); + TMockLtsyPhoneBookData1< TInt > styData2(name, usedEntries); + data2.Close(); + styData2.SerialiseL(data2); + iMockLTSY.CompleteL(EMmTsyPhoneBookStoreGetInfoIPC, KErrNone, data2, 10); + } + + + User::WaitForRequest(requestStatus); + AssertMockLtsyStatusL(); + ASSERT_EQUALS(expected, requestStatus.Int()); + if ( ( aName.CompareF( KETelIccBdnPhoneBook ) ) && (KErrNone == expected) ) + { + ASSERT_TRUE(0 == bookInfo.iName.Compare(name)); + + ASSERT_EQUALS(usedEntries, bookInfo.iUsedEntries); + ASSERT_EQUALS(-1, bookInfo.iTotalEntries); + ASSERT_EQUALS(50, bookInfo.iMaxTextLength); + ASSERT_EQUALS(50, bookInfo.iMaxNumLength); + ASSERT_EQUALS(RMobilePhoneBookStore::ELocationIccMemory, bookInfo.iLocation); + ASSERT_EQUALS((TUint16)0, bookInfo.iChangeCounter); + if( !name.CompareF( KETelIccVoiceMailBox )) + { + ASSERT_EQUALS(KPBTypeVMBXCaps, bookInfo.iCaps); + } + else if( !name.CompareF( KETelIccMbdnPhoneBook )) + { + ASSERT_EQUALS(KPBTypeMBDNCaps, bookInfo.iCaps); + } + else if( !name.CompareF( KETelIccSdnPhoneBook )) + { + ASSERT_EQUALS((TUint32)RMobilePhoneStore::KCapsReadAccess, bookInfo.iCaps); + } + else + { + ASSERT_EQUALS((TUint32)0, bookInfo.iCaps); + } + + } + AssertMockLtsyStatusL(); + + CleanupStack::PopAndDestroy(4, this); // data, data2, this... + } + void CCTsyPhoneBookStoreFU::AuxGetInfo2L(const TDesC& aName) { diff -r 962e6306d9d2 -r 7ef16719d8cb telephonyserverplugins/common_tsy/test/component/src/cctsysmsmessagingfu.cpp --- a/telephonyserverplugins/common_tsy/test/component/src/cctsysmsmessagingfu.cpp Fri Feb 19 23:59:33 2010 +0200 +++ b/telephonyserverplugins/common_tsy/test/component/src/cctsysmsmessagingfu.cpp Fri Mar 12 15:49:38 2010 +0200 @@ -406,6 +406,7 @@ compTsyData.SerialiseL(data); iMockLTSY.CompleteL(EMobileSmsMessagingSendMessage, KErrGeneral, data, 10); + messaging.SendMessage(reqStatus, tmpName, smsAttrPckg); data.Close(); @@ -417,6 +418,7 @@ User::WaitForRequest(reqStatus); ASSERT_EQUALS(KErrGeneral, reqStatus.Int()); + AssertMockLtsyStatusL(); //------------------------------------------------------------------------- @@ -459,6 +461,28 @@ AssertMockLtsyStatusL(); + //-------------------------------------------------------------------------- + // TEST B3: failure on completion of pending request from LTSY->CTSY + //-------------------------------------------------------------------------- + TMockLtsyData1 expData(dataAndAttr); + expData.SerialiseL(data); + iMockLTSY.ExpectL(EMobileSmsMessagingSendMessage, data); + + data.Close(); + compTsyData.SerialiseL(data); + //simulate error code sent by network when SMS msg has an invalid destination number + TInt compErrorCode = -298123266; + iMockLTSY.CompleteL(EMobileSmsMessagingSendMessage, compErrorCode, data, 10); + + messaging.SendMessage(reqStatus, tmpName, smsAttrPckg); + + + User::WaitForRequest(reqStatus); + ASSERT_EQUALS(KErrGsmSMSNetworkOutOfOrder, reqStatus.Int()); + + AssertMockLtsyStatusL(); + + //------------------------------------------------------------------------- // TEST C: Successful completion request of // RMobileSmsMessaging::SendMessage when result is not cached. diff -r 962e6306d9d2 -r 7ef16719d8cb telephonyserverplugins/common_tsy/test/component/src/cctsyussdmessagingfu.cpp --- a/telephonyserverplugins/common_tsy/test/component/src/cctsyussdmessagingfu.cpp Fri Feb 19 23:59:33 2010 +0200 +++ b/telephonyserverplugins/common_tsy/test/component/src/cctsyussdmessagingfu.cpp Fri Mar 12 15:49:38 2010 +0200 @@ -1295,13 +1295,9 @@ User::WaitForRequest(requestStatus2); - /* - * The function returned KErrNone instead of KErrServerBusy. - */ - - ERR_PRINTF2(_L("$CTSYKnownFailure: defect id = %d"), 380303); - - ASSERT_EQUALS(KErrServerBusy, requestStatus2.Int()); + // CTSY treats USSD receive requests as multiple completion requests, and completes + // all client requests when a message comes in. + ASSERT_EQUALS(KErrNone, requestStatus2.Int()); ASSERT_EQUALS(completeAttributes1.iFlags , attributes1.iFlags ); ASSERT_EQUALS(completeAttributes1.iFormat, attributes1.iFormat); diff -r 962e6306d9d2 -r 7ef16719d8cb telephonyserverplugins/ctsydispatchlayer/exportinc/mltsydispatchcallcontrolinterface.h --- a/telephonyserverplugins/ctsydispatchlayer/exportinc/mltsydispatchcallcontrolinterface.h Fri Feb 19 23:59:33 2010 +0200 +++ b/telephonyserverplugins/ctsydispatchlayer/exportinc/mltsydispatchcallcontrolinterface.h Fri Mar 12 15:49:38 2010 +0200 @@ -475,6 +475,7 @@ public: static const TInt KLtsyDispatchCallControlSwapApiId = KDispatchCallControlFuncUnitId + 14; + static const TInt KLtsyDispatchCallControlSingleSwapApiId = KDispatchCallControlFuncUnitId + 29; /** * The CTSY Dispatcher shall invoke this function on receiving the EMobileCallSwap @@ -483,30 +484,50 @@ * It is a request call that is completed by invoking * CCtsyDispatcherCallback::CallbackCallControlSwapComp() * - * This request should be completed when the request to swap the call has - * been placed. + * This request should be completed when the request to swap two calls has + * been placed. One is held and the other connected. The held call becomes connected + * (RMobileCall::EStatusConnected) and the connected call becomes held + * (RMobileCall::EStatusHold). * * Implementation of this interface should request that the Licensee TSY - * swap the specified calls. Swapping requires two calls to be active, - * one held and one connected. It involves switching the states of the - * two call such that the held call becomes connected (RMobileCall::EStatusConnected) - * and the connected call becomes held (RMobileCall::EStatusHold). + * swap the specified calls. Swapping is allowed for one or two active calls. * - * @param aHeldCallId The Call ID of the held call to swap. - * - * @param aConnectedCallId The Call ID of the connected call to swap with - * aHeldCallId. + * @param aCallId The Call ID of the call to swap. * * @return KErrNone on success, otherwise another error code indicating the * failure. * * @see RMobileCall::Swap() */ - virtual TInt HandleSwapReqL(TInt aHeldCallId, TInt aConnectedCallId) = 0; + virtual TInt HandleSwapReqL(TInt aCallId, TInt aSecondCallId) = 0; + + /** + * The CTSY Dispatcher shall invoke this function on receiving the EMobileCallSwap + * request, for a single call, from the CTSY. + * + * It is a request call that is completed by invoking + * CCtsyDispatcherCallback::CallbackCallControlSwapComp() + * + * This request should be completed when the request to swap the single call has + * been placed. + * + * Implementation of this interface should request that the Licensee TSY + * swap the specified call. The state of the call will be swapped from held to connected + * (or visa versa) + * + * @param aCallId The Call ID of the single call to swap. + * + * @return KErrNone on success, otherwise another error code indicating the + * failure. + * + * @see RMobileCall::Swap() + */ + virtual TInt HandleSwapReqL(TInt aCallId) = 0; }; // class MLtsyDispatchCallControlSwap + class MLtsyDispatchCallControlLoanDataPort : public MLtsyDispatchInterface { public: @@ -909,6 +930,9 @@ }; // class MLtsyDispatchCallControlUpdateLifeTimer - + +// Note: A static constant has been defined in MLtsyDispatchCallControlSwap (abbove) with the highest Id +// in this file... "KLtsyDispatchCallControlSingleSwapApiId = KDispatchCallControlFuncUnitId + 29" +// If adding a new Id it must be greater than KDispatchCallControlFuncUnitId + 29. #endif /*MLTSYDISPATCHCALLCONTROLINTERFACE_H_*/ diff -r 962e6306d9d2 -r 7ef16719d8cb telephonyserverplugins/ctsydispatchlayer/inc/ccallcontroldispatcher.h --- a/telephonyserverplugins/ctsydispatchlayer/inc/ccallcontroldispatcher.h Fri Feb 19 23:59:33 2010 +0200 +++ b/telephonyserverplugins/ctsydispatchlayer/inc/ccallcontroldispatcher.h Fri Mar 12 15:49:38 2010 +0200 @@ -218,6 +218,7 @@ MLtsyDispatchCallControlSendDtmfTones* iLtsyDispatchCallControlSendDtmfTones; MLtsyDispatchCallControlGetIdentityServiceStatus* iLtsyDispatchCallControlGetIdentityServiceStatus; MLtsyDispatchCallControlSwap* iLtsyDispatchCallControlSwap; + MLtsyDispatchCallControlSwap* iLtsyDispatchCallControlSingleSwap; MLtsyDispatchCallControlLoanDataPort* iLtsyDispatchCallControlLoanDataPort; MLtsyDispatchCallControlRecoverDataPort* iLtsyDispatchCallControlRecoverDataPort; MLtsyDispatchCallControlStartDtmfTone* iLtsyDispatchCallControlStartDtmfTone; @@ -283,13 +284,13 @@ * These Call IDs should only have a value != -1 when there is a pending swap * operation. */ - TInt iSwapHeldCallId; - TInt iSwapConnectedCallId; + TInt iSwapCallId; + TInt iSecondSwapCallId; /** * These are the two Call IDs of the calls on which a transfer operation - * has been requested. It is needed for the same reason as iSwapHeldCallId - * and iSwapConnectedCallId above. + * has been requested. It is needed for the same reason as iSwapCallId + * and iSecondSwapCallId above. */ TInt iTransferHeldCallId; TInt iTransferSecondCallId; diff -r 962e6306d9d2 -r 7ef16719d8cb telephonyserverplugins/ctsydispatchlayer/src/ccallcontroldispatcher.cpp --- a/telephonyserverplugins/ctsydispatchlayer/src/ccallcontroldispatcher.cpp Fri Feb 19 23:59:33 2010 +0200 +++ b/telephonyserverplugins/ctsydispatchlayer/src/ccallcontroldispatcher.cpp Fri Mar 12 15:49:38 2010 +0200 @@ -32,8 +32,8 @@ iMessageManagerCallback(aMessageManagerCallback), iRequestAsyncOneShot(aRequestAsyncOneShot), iFoundDtmfStop(EFalse), iModeUsedForVoiceCallDial(RMobilePhone::EServiceUnspecified), - iFdnCheckPerformed(EFalse),iSwapHeldCallId(KInvalidCallId), - iSwapConnectedCallId(KInvalidCallId),iTransferHeldCallId(KInvalidCallId), + iFdnCheckPerformed(EFalse),iSwapCallId(KInvalidCallId), + iSecondSwapCallId(KInvalidCallId),iTransferHeldCallId(KInvalidCallId), iTransferSecondCallId(KInvalidCallId) { iDtmfString.Zero(); @@ -237,6 +237,17 @@ __ASSERT_DEBUG(iLtsyDispatchCallControlSwap, CtsyDispatcherPanic(EInvalidNullPtr)); } + if(iLtsyFactoryV1.IsDispatchInterfaceSupported(KDispatchCallControlFuncUnitId, MLtsyDispatchCallControlSwap::KLtsyDispatchCallControlSingleSwapApiId)) + { + TAny* swapInterface = NULL; + iLtsyFactoryV1.GetDispatchHandler( + MLtsyDispatchCallControlSwap::KLtsyDispatchCallControlSingleSwapApiId, + swapInterface); + iLtsyDispatchCallControlSingleSwap = + static_cast(swapInterface); + __ASSERT_DEBUG(iLtsyDispatchCallControlSingleSwap, CtsyDispatcherPanic(EInvalidNullPtr)); + } + if(iLtsyFactoryV1.IsDispatchInterfaceSupported(KDispatchCallControlFuncUnitId, MLtsyDispatchCallControlLoanDataPort::KLtsyDispatchCallControlLoanDataPortApiId)) { TAny* loanDataPortInterface = NULL; @@ -839,9 +850,23 @@ { const CCallDataPackage* dataPackage = static_cast(aDataPackage); RMobilePhone::TMobileService mode; - dataPackage->GetCallIdAndMode(iSwapHeldCallId, mode); - dataPackage->UnPackData(iSwapConnectedCallId); - ret = iLtsyDispatchCallControlSwap->HandleSwapReqL(iSwapHeldCallId, iSwapConnectedCallId); + dataPackage->GetCallIdAndMode(iSwapCallId, mode); + dataPackage->UnPackData(iSecondSwapCallId); + + if (iSwapCallId == KInvalidCallId) + { + // Swapping a single call. + ret = iLtsyDispatchCallControlSwap->HandleSwapReqL(iSecondSwapCallId); + } + else if (iSecondSwapCallId == KInvalidCallId) + { + // Swapping a single call. + ret = iLtsyDispatchCallControlSwap->HandleSwapReqL(iSwapCallId); + } + else + { + ret = iLtsyDispatchCallControlSwap->HandleSwapReqL(iSwapCallId, iSecondSwapCallId); + } } return TSYLOGSETEXITERR(ret); @@ -1651,7 +1676,7 @@ if (iTransferSecondCallId != KInvalidCallId) { dataPackage.SetCallIdAndMode(iTransferSecondCallId, RMobilePhone::EServiceUnspecified); - iSwapConnectedCallId = KInvalidCallId; + iSecondSwapCallId = KInvalidCallId; iMessageManagerCallback.Complete(EMobileCallTransfer, &dataPackage, aError); } @@ -1726,17 +1751,17 @@ // Check in case LTSY has completed a swap when no swap was called // Don't complete back to CTSY in this case - if (iSwapHeldCallId != KInvalidCallId) + if (iSwapCallId != KInvalidCallId) { - dataPackage.SetCallIdAndMode(iSwapHeldCallId, RMobilePhone::EServiceUnspecified); - iSwapHeldCallId = KInvalidCallId; + dataPackage.SetCallIdAndMode(iSwapCallId, RMobilePhone::EServiceUnspecified); + iSwapCallId = KInvalidCallId; iMessageManagerCallback.Complete(EMobileCallSwap, &dataPackage, aError); } - if (iSwapConnectedCallId != KInvalidCallId) + if (iSecondSwapCallId != KInvalidCallId) { - dataPackage.SetCallIdAndMode(iSwapConnectedCallId, RMobilePhone::EServiceUnspecified); - iSwapConnectedCallId = KInvalidCallId; + dataPackage.SetCallIdAndMode(iSecondSwapCallId, RMobilePhone::EServiceUnspecified); + iSecondSwapCallId = KInvalidCallId; iMessageManagerCallback.Complete(EMobileCallSwap, &dataPackage, aError); } diff -r 962e6306d9d2 -r 7ef16719d8cb telephonyserverplugins/ctsydispatchlayer/test/dispatchertests/dispatchinc/cctsycallcontrolfu.h --- a/telephonyserverplugins/ctsydispatchlayer/test/dispatchertests/dispatchinc/cctsycallcontrolfu.h Fri Feb 19 23:59:33 2010 +0200 +++ b/telephonyserverplugins/ctsydispatchlayer/test/dispatchertests/dispatchinc/cctsycallcontrolfu.h Fri Mar 12 15:49:38 2010 +0200 @@ -103,6 +103,7 @@ void DriverCreateIncomingCallL(TInt aCallId, RMobilePhone::TMobileService aMode); void DriverAnswerIncomingCallL(TInt aCallId, RMobilePhone::TMobileService aMode, TBool aIsIsvCall = EFalse, TInt aAnswerError = KErrNone); void DriverResumeCallL(TInt aCallId, TInt aResumeError); + void DriverSwapCallL(TInt aCallId, TInt aSwapError, RMobileCall::TMobileCallStatus aNewCallStatus); void DriverSwapCallL(TInt aCallId1, TInt aCallId2, TInt aSwapError, RMobileCall::TMobileCallStatus aNewCall1Status, RMobileCall::TMobileCallStatus aNewCall2Status); }; // class CCTsyCallControlFU diff -r 962e6306d9d2 -r 7ef16719d8cb telephonyserverplugins/ctsydispatchlayer/test/dispatchertests/dispatchinc/cctsyphonebookfu.h --- a/telephonyserverplugins/ctsydispatchlayer/test/dispatchertests/dispatchinc/cctsyphonebookfu.h Fri Feb 19 23:59:33 2010 +0200 +++ b/telephonyserverplugins/ctsydispatchlayer/test/dispatchertests/dispatchinc/cctsyphonebookfu.h Fri Mar 12 15:49:38 2010 +0200 @@ -79,6 +79,11 @@ void TestUnit0011L(); void TestUnit0012L(); +protected: + virtual void OpenNonCachingPhoneBookL(DispatcherPhonebook::TPhonebook aPhonebook, RMobilePhoneBookStore& aPhoneBookStore, TInt aError); + virtual void OpenCachingPhoneBookL(DispatcherPhonebook::TPhonebook aPhonebook, RMobilePhoneBookStore& aPhoneBookStore, TInt aError); + virtual void DoCleanup(); + private: void CreateTlvFromEntryL(const CPhoneBookEntry& aPhoneBookEntry, RBuf8& aBuf); @@ -92,9 +97,7 @@ void OpenPhoneBookL(DispatcherPhonebook::TPhonebook aPhonebook, RMobilePhoneBookStore& aPhoneBookStore, RMmCustomAPI& aCustomApi); void OpenPhoneBookWithInitialisationL(DispatcherPhonebook::TPhonebook aPhonebook, RMobilePhoneBookStore& aPhoneBookStore, TInt aError); - void OpenCachingPhoneBookL(DispatcherPhonebook::TPhonebook aPhonebook, RMobilePhoneBookStore& aPhoneBookStore, TInt aError); void CompleteCacheL(DispatcherPhonebook::TPhonebook aPhonebook, TInt aError, TBool aIsRefresh); - void OpenNonCachingPhoneBookL(DispatcherPhonebook::TPhonebook aPhonebook, RMobilePhoneBookStore& aPhoneBookStore, TInt aError); TBool InitialisationRequired(DispatcherPhonebook::TPhonebook aPhonebook) const; TBool CachingPhonebook(DispatcherPhonebook::TPhonebook aPhonebook) const; @@ -127,8 +130,6 @@ static void PhoneBookEntryArrayCleanup(TAny* aArray); void OpenSmsStoreL(RMobileSmsMessaging& aSmsMessaging, RMobileSmsStore& aSmsStore, const TDesC& aSmsStoreName); - - virtual void DoCleanup(); private: diff -r 962e6306d9d2 -r 7ef16719d8cb telephonyserverplugins/ctsydispatchlayer/test/dispatchertests/dispatchinc/cctsyphonebookonfu.h --- a/telephonyserverplugins/ctsydispatchlayer/test/dispatchertests/dispatchinc/cctsyphonebookonfu.h Fri Feb 19 23:59:33 2010 +0200 +++ b/telephonyserverplugins/ctsydispatchlayer/test/dispatchertests/dispatchinc/cctsyphonebookonfu.h Fri Mar 12 15:49:38 2010 +0200 @@ -31,14 +31,14 @@ #include #include #include -#include "cctsycomponenttestbase.h" +#include "cctsyphonebookfu.h" _LIT(KText, "Number%d"); _LIT(KNumber, "0000000%d"); _LIT(KText1, "Number1"); _LIT(KNumber1, "11111111"); -class CCTsyPhonebookOnFU : public CCtsyComponentTestBase +class CCTsyPhonebookOnFU : public CCTsyPhonebookFU { public: // Create a suite of all the tests diff -r 962e6306d9d2 -r 7ef16719d8cb telephonyserverplugins/ctsydispatchlayer/test/dispatchertests/dispatchinc/cctsyphonebookonfunegative.h --- a/telephonyserverplugins/ctsydispatchlayer/test/dispatchertests/dispatchinc/cctsyphonebookonfunegative.h Fri Feb 19 23:59:33 2010 +0200 +++ b/telephonyserverplugins/ctsydispatchlayer/test/dispatchertests/dispatchinc/cctsyphonebookonfunegative.h Fri Mar 12 15:49:38 2010 +0200 @@ -22,9 +22,9 @@ #ifndef CTSYPHONEBOOKONFUNEGATIVE_H_ #define CTSYPHONEBOOKONFUNEGATIVE_H_ -#include "cctsycomponenttestbase.h" +#include "cctsyphonebookfu.h" -class CCTsyPhonebookOnFUNegative : public CCtsyComponentTestBase +class CCTsyPhonebookOnFUNegative : public CCTsyPhonebookFU { public: // Create a suite of all the tests @@ -40,9 +40,13 @@ void TestReadEntryIpcL(); void TestReadSizeIpcL(); void TestWriteSizeIpcL(); + virtual void DoCleanup(); private: void OpenAndPushEtelAndPhoneONStoreL(RMobileONStore& aONStore); + +private: + RMobilePhoneBookStore iAdnPhoneBookStore; }; // class CCTsyPhonebookOnFUNegative diff -r 962e6306d9d2 -r 7ef16719d8cb telephonyserverplugins/ctsydispatchlayer/test/dispatchertests/dispatchsrc/cctsycallcontrolfu.cpp --- a/telephonyserverplugins/ctsydispatchlayer/test/dispatchertests/dispatchsrc/cctsycallcontrolfu.cpp Fri Feb 19 23:59:33 2010 +0200 +++ b/telephonyserverplugins/ctsydispatchlayer/test/dispatchertests/dispatchsrc/cctsycallcontrolfu.cpp Fri Mar 12 15:49:38 2010 +0200 @@ -926,6 +926,12 @@ // Resume call DriverResumeCallL(callId, KErrNone); + // Swap single call. + DriverSwapCallL(callId, KErrNone, RMobileCall::EStatusHold); + + // Swap single call again. + DriverSwapCallL(callId, KErrNone, RMobileCall::EStatusConnected); + TInt hangUpCause = KErrGsmCCNormalCallClearing; DriverHangUpCallL(callId, hangUpCause); @@ -960,13 +966,32 @@ User::WaitForRequest(notifyStatus); ASSERT_EQUALS(KErrNone, notifyStatus.Int()); ASSERT_EQUALS(RMobileCall::EStatusConnected, callStatus); - - // Attempt to swap it when it is the sole call (not supported by CTSY) + + mobileCall.NotifyMobileCallStatusChange(notifyStatus, callStatus); + + // Attempt to swap it when it is the sole call. TRequestStatus swapStatus; mobileCall.Swap(swapStatus); User::WaitForRequest(swapStatus); - ASSERT_EQUALS(KErrNotSupported, swapStatus.Int()); - + ASSERT_EQUALS(KErrNone, swapStatus.Int()); + + User::WaitForRequest(notifyStatus); + ASSERT_EQUALS(KErrNone, notifyStatus.Int()); + ASSERT_EQUALS(RMobileCall::EStatusHold, callStatus); + + mobileCall.NotifyMobileCallStatusChange(notifyStatus, callStatus); + + // Swapping single call again, back to connected. + swapStatus; + mobileCall.Swap(swapStatus); + User::WaitForRequest(swapStatus); + ASSERT_EQUALS(KErrNone, swapStatus.Int()); + + User::WaitForRequest(notifyStatus); + ASSERT_EQUALS(KErrNone, notifyStatus.Int()); + ASSERT_EQUALS(RMobileCall::EStatusConnected, callStatus); + + TRequestStatus reqStatusTerminated; iMockLTSY.NotifyTerminated(reqStatusTerminated); @@ -976,8 +1001,8 @@ mobileLine.Close(); data.Close(); - User::WaitForRequest(reqStatusTerminated); - ASSERT_EQUALS(KErrNone, reqStatusTerminated.Int()); + User::WaitForRequest(notifyStatus); + ASSERT_EQUALS(KErrNone, notifyStatus.Int()); AssertMockLtsyStatusL(); CleanupStack::PopAndDestroy(4, this); // mobileCall, mobileLine, data, this @@ -3534,6 +3559,43 @@ /** * Swap the call. * + * @param aCallId Call ID of held call to swap. + * @param aSwapError Error returned by LTSY in response to the swap request. + * @param aNewCallStatus New status of the call 1 if aSwapError = KErrNone + * + * In the case where aSwapError passed is not KErrNone, the new call statuses + * are irrelevant as the calls don't change state. + */ +void CCTsyCallControlFU::DriverSwapCallL(TInt aCallId, TInt aSwapError, + RMobileCall::TMobileCallStatus aNewCallStatus) + { + RBuf8 data; + CleanupClosePushL(data); + + TMockLtsyData1 mockData2(aCallId); + data.Close(); + mockData2.SerialiseL(data); + iMockLTSY.ExpectL(MLtsyDispatchCallControlSwap::KLtsyDispatchCallControlSingleSwapApiId, data); + + iMockLTSY.CompleteL(MLtsyDispatchCallControlSwap::KLtsyDispatchCallControlSingleSwapApiId, aSwapError); + + if (aSwapError == KErrNone) + { + TMockLtsyCallData1 mockCallData2( + aCallId, RMobilePhone::EServiceUnspecified, aNewCallStatus); + data.Close(); + mockCallData2.SerialiseL(data); + iMockLTSY.CompleteL(KMockLtsyDispatchCallControlNotifyCallStatusChangeIndId, KErrNone, data); + } + + data.Close(); + CleanupStack::PopAndDestroy(1, &data); + } // CCTsyCallControlFU::DriverSwapCallL + + +/** + * Swap the call. + * * @param aCallId1 Call ID of held call to swap. * @param aCallId2 Call ID of connected call to swap. * @param aSwapError Error returned by LTSY in response to the swap request. @@ -3577,8 +3639,6 @@ } // CCTsyCallControlFU::DriverSwapCallL - - /** * Waits for an incoming call notification and opens the call. * diff -r 962e6306d9d2 -r 7ef16719d8cb telephonyserverplugins/ctsydispatchlayer/test/dispatchertests/dispatchsrc/cctsyphonebookonfu.cpp --- a/telephonyserverplugins/ctsydispatchlayer/test/dispatchertests/dispatchsrc/cctsyphonebookonfu.cpp Fri Feb 19 23:59:33 2010 +0200 +++ b/telephonyserverplugins/ctsydispatchlayer/test/dispatchertests/dispatchsrc/cctsyphonebookonfu.cpp Fri Mar 12 15:49:38 2010 +0200 @@ -229,6 +229,9 @@ OpenEtelServerL(EUseExtendedError); CleanupStack::PushL(TCleanupItem(Cleanup,this)); OpenPhoneL(); + RMobilePhoneBookStore adnPhoneBookStore; + CleanupClosePushL(adnPhoneBookStore); + OpenCachingPhoneBookL(DispatcherPhonebook::EIccAdn,adnPhoneBookStore,KErrNone); RMobileONStore onStore; TInt ret = onStore.Open(iPhone); @@ -378,7 +381,7 @@ AssertMockLtsyStatusL(); - CleanupStack::PopAndDestroy(4, this); // completeData, expectData, onStore, this + CleanupStack::PopAndDestroy(5, this); // completeData, expectData, onStore, adnPhoneBookStore, this } /** @@ -395,6 +398,9 @@ OpenEtelServerL(EUseExtendedError); CleanupStack::PushL(TCleanupItem(Cleanup,this)); OpenPhoneL(); + RMobilePhoneBookStore adnPhoneBookStore; + CleanupClosePushL(adnPhoneBookStore); + OpenCachingPhoneBookL(DispatcherPhonebook::EIccAdn,adnPhoneBookStore,KErrNone); RMobileONStore onStore; TInt ret = onStore.Open(iPhone); @@ -470,7 +476,7 @@ AssertMockLtsyStatusL(); - CleanupStack::PopAndDestroy(3, this); // completeData, onStore, this + CleanupStack::PopAndDestroy(4, this); // completeData, onStore, adnPhoneBookStore, this } @@ -492,6 +498,9 @@ OpenEtelServerL(EUseExtendedError); CleanupStack::PushL(TCleanupItem(Cleanup,this)); OpenPhoneL(); + RMobilePhoneBookStore adnPhoneBookStore; + CleanupClosePushL(adnPhoneBookStore); + OpenCachingPhoneBookL(DispatcherPhonebook::EIccAdn,adnPhoneBookStore,KErrNone); RMobileONStore onStore; TInt ret = onStore.Open(iPhone); @@ -573,7 +582,7 @@ ASSERT_EQUALS(KErrNone, mockLtsyStatus.Int()); AssertMockLtsyStatusL(); - CleanupStack::PopAndDestroy(3, this); // data, onStore, this + CleanupStack::PopAndDestroy(4, this); // data, onStore, adnPhoneBookStore, this } diff -r 962e6306d9d2 -r 7ef16719d8cb telephonyserverplugins/ctsydispatchlayer/test/dispatchertests/dispatchsrc/cctsyphonebookonfunegative.cpp --- a/telephonyserverplugins/ctsydispatchlayer/test/dispatchertests/dispatchsrc/cctsyphonebookonfunegative.cpp Fri Feb 19 23:59:33 2010 +0200 +++ b/telephonyserverplugins/ctsydispatchlayer/test/dispatchertests/dispatchsrc/cctsyphonebookonfunegative.cpp Fri Mar 12 15:49:38 2010 +0200 @@ -44,6 +44,15 @@ } /** + * Cleanup + */ +void CCTsyPhonebookOnFUNegative::DoCleanup() + { + iAdnPhoneBookStore.Close(); + CCTsyPhonebookFU::DoCleanup(); + } + +/** * Wraps up boilerplate code for starting tests with a clean RPhone session and RMobileONStore * initialised. On return this and aONStore have been pushed to the CleanupStack */ @@ -52,6 +61,8 @@ OpenEtelServerL(EUseExtendedError); CleanupStack::PushL(TCleanupItem(Cleanup,this)); OpenPhoneL(); + + OpenCachingPhoneBookL(DispatcherPhonebook::EIccAdn,iAdnPhoneBookStore,KErrNone); TInt ret = aONStore.Open(iPhone); ASSERT_EQUALS(ret, KErrNone); diff -r 962e6306d9d2 -r 7ef16719d8cb telephonyserverplugins/ctsydispatchlayer/test/ltsyskeleton_using_dispatcher/ltsyskeleton/inc/cltsycallcontrolhandler.h --- a/telephonyserverplugins/ctsydispatchlayer/test/ltsyskeleton_using_dispatcher/ltsyskeleton/inc/cltsycallcontrolhandler.h Fri Feb 19 23:59:33 2010 +0200 +++ b/telephonyserverplugins/ctsydispatchlayer/test/ltsyskeleton_using_dispatcher/ltsyskeleton/inc/cltsycallcontrolhandler.h Fri Mar 12 15:49:38 2010 +0200 @@ -130,7 +130,10 @@ virtual TInt HandleGetIdentityServiceStatusReqL(RMobilePhone::TMobilePhoneIdService aService); // From MLtsyDispatchCallControlSwap - virtual TInt HandleSwapReqL(TInt aHeldCallId, TInt aConnectedCallId); + virtual TInt HandleSwapReqL(TInt aCallId, TInt aSecondCallId); + + // From MLtsyDispatchCallControlSwap + virtual TInt HandleSwapReqL(TInt aCallId); // From MLtsyDispatchCallControlLoanDataPort virtual TInt HandleLoanDataPortSyncL(TInt aCallId, RCall::TCommPort& aCommPort); diff -r 962e6306d9d2 -r 7ef16719d8cb telephonyserverplugins/ctsydispatchlayer/test/ltsyskeleton_using_dispatcher/ltsyskeleton/src/cltsycallcontrolhandler.cpp --- a/telephonyserverplugins/ctsydispatchlayer/test/ltsyskeleton_using_dispatcher/ltsyskeleton/src/cltsycallcontrolhandler.cpp Fri Feb 19 23:59:33 2010 +0200 +++ b/telephonyserverplugins/ctsydispatchlayer/test/ltsyskeleton_using_dispatcher/ltsyskeleton/src/cltsycallcontrolhandler.cpp Fri Mar 12 15:49:38 2010 +0200 @@ -385,12 +385,12 @@ } // CLtsyCallControlHandler::HandleDialReqL -TInt CLtsyCallControlHandler::HandleTransferReqL(TInt aHeldCallId, TInt aSecondCallId) +TInt CLtsyCallControlHandler::HandleTransferReqL(TInt aCallId, TInt aSecondCallId) /** * This request is completed by invoking * CCtsyDispatcherCallback::CallbackCallControlTransferComp() * - * @param aHeldCallId Call ID of the held call to transfer. + * @param aCallId Call ID of the held call to transfer. * * @param aSecondCallId Call ID of the other to transfer the held call to. * @@ -406,7 +406,7 @@ // REMOVE this line when implementing for real LTSY MTEST_ISSUE_MOCKLTSYENGINE_REQ(ret, KDispatchCallControlFuncUnitId, MLtsyDispatchCallControlTransfer::KLtsyDispatchCallControlTransferApiId, - aHeldCallId, aSecondCallId); + aCallId, aSecondCallId); return TSYLOGSETEXITERR(ret); } // CLtsyCallControlHandler::HandleTransferReqL @@ -467,14 +467,14 @@ } // CLtsyCallControlHandler::HandleGetIdentityServiceStatusReqL -TInt CLtsyCallControlHandler::HandleSwapReqL(TInt aHeldCallId, TInt aConnectedCallId) +TInt CLtsyCallControlHandler::HandleSwapReqL(TInt aCallId, TInt aSecondCallId) /** * This request is completed by invoking * CCtsyDispatcherCallback::CallbackCallControlSwapComp() * - * @param aHeldCallId The Call ID of the held call to swap. + * @param aCallId The Call ID of the call to swap. * - * @param aConnectedCallId The Call ID of the connected call to swap. + * @param aSecondCallId The Call ID of the second call to swap. * * @return KErrNone on success, KErrNotSupported if this request is not supported, * or another error code to indicate the failure otherwise. @@ -488,11 +488,34 @@ // REMOVE this line when implementing for real LTSY MTEST_ISSUE_MOCKLTSYENGINE_REQ(ret, KDispatchCallControlFuncUnitId, MLtsyDispatchCallControlSwap::KLtsyDispatchCallControlSwapApiId, - aHeldCallId, aConnectedCallId); + aCallId, aSecondCallId); return TSYLOGSETEXITERR(ret); } // CLtsyCallControlHandler::HandleSwapReqL +TInt CLtsyCallControlHandler::HandleSwapReqL(TInt aCallId) +/** + * This request is completed by invoking + * CCtsyDispatcherCallback::CallbackCallControlSwapComp() + * + * @param aCallId The Call ID of the call to swap. + * + * @return KErrNone on success, KErrNotSupported if this request is not supported, + * or another error code to indicate the failure otherwise. + */ + { + TSYLOGENTRYEXIT; + + TInt ret = KErrNotSupported; + + // Add implementation here....... + + // REMOVE this line when implementing for real LTSY + MTEST_ISSUE_MOCKLTSYENGINE_REQ(ret, KDispatchCallControlFuncUnitId, MLtsyDispatchCallControlSwap::KLtsyDispatchCallControlSingleSwapApiId, + aCallId); + + return TSYLOGSETEXITERR(ret); + } // CLtsyCallControlHandler::HandleSwapReqL TInt CLtsyCallControlHandler::HandleLoanDataPortSyncL(TInt aCallId, RCall::TCommPort& aCommPort) /** diff -r 962e6306d9d2 -r 7ef16719d8cb telephonyserverplugins/ctsydispatchlayer/test/ltsyskeleton_using_dispatcher/ltsyskeleton/src/cltsyfactoryv1.cpp --- a/telephonyserverplugins/ctsydispatchlayer/test/ltsyskeleton_using_dispatcher/ltsyskeleton/src/cltsyfactoryv1.cpp Fri Feb 19 23:59:33 2010 +0200 +++ b/telephonyserverplugins/ctsydispatchlayer/test/ltsyskeleton_using_dispatcher/ltsyskeleton/src/cltsyfactoryv1.cpp Fri Mar 12 15:49:38 2010 +0200 @@ -312,6 +312,10 @@ aDispatchInterface = static_cast (iLtsyDispatchCallControlHandler); break; + case MLtsyDispatchCallControlSwap::KLtsyDispatchCallControlSingleSwapApiId: + aDispatchInterface = static_cast + (iLtsyDispatchCallControlHandler); + break; case MLtsyDispatchCallControlLoanDataPort::KLtsyDispatchCallControlLoanDataPortApiId: aDispatchInterface = static_cast (iLtsyDispatchCallControlHandler); diff -r 962e6306d9d2 -r 7ef16719d8cb telephonyserverplugins/ctsydispatchlayer/test/mockltsy_under_ctsydispatch/src/cmockcallcontrolmesshandler.cpp --- a/telephonyserverplugins/ctsydispatchlayer/test/mockltsy_under_ctsydispatch/src/cmockcallcontrolmesshandler.cpp Fri Feb 19 23:59:33 2010 +0200 +++ b/telephonyserverplugins/ctsydispatchlayer/test/mockltsy_under_ctsydispatch/src/cmockcallcontrolmesshandler.cpp Fri Mar 12 15:49:38 2010 +0200 @@ -91,6 +91,7 @@ case MLtsyDispatchCallControlSendDtmfTones::KLtsyDispatchCallControlSendDtmfTonesApiId: case MLtsyDispatchCallControlGetIdentityServiceStatus::KLtsyDispatchCallControlGetIdentityServiceStatusApiId: case MLtsyDispatchCallControlSwap::KLtsyDispatchCallControlSwapApiId: + case MLtsyDispatchCallControlSwap::KLtsyDispatchCallControlSingleSwapApiId: case MLtsyDispatchCallControlLoanDataPort::KLtsyDispatchCallControlLoanDataPortApiId: case MLtsyDispatchCallControlRecoverDataPort::KLtsyDispatchCallControlRecoverDataPortApiId: case MLtsyDispatchCallControlStartDtmfTone::KLtsyDispatchCallControlStartDtmfToneApiId: @@ -219,6 +220,12 @@ TMockLtsyData2 data(heldCallId, connectedCallId); return iMockLtsyEngine.ExecuteCommandL(aInterfaceId, data); } + case MLtsyDispatchCallControlSwap::KLtsyDispatchCallControlSingleSwapApiId: + { + TInt callId = VA_ARG(aList, TInt); + TMockLtsyData1 data(callId); + return iMockLtsyEngine.ExecuteCommandL(aInterfaceId, data); + } case MLtsyDispatchCallControlLoanDataPort::KLtsyDispatchCallControlLoanDataPortApiId: { TInt callId = VA_ARG(aList, TInt); @@ -467,6 +474,11 @@ iCompletionCallback.CallbackCallControlSwapComp(aResult); } break; + case MLtsyDispatchCallControlSwap::KLtsyDispatchCallControlSingleSwapApiId: + { + iCompletionCallback.CallbackCallControlSwapComp(aResult); + } + break; case MLtsyDispatchCallControlStartDtmfTone::KLtsyDispatchCallControlStartDtmfToneApiId: { iCompletionCallback.CallbackCallControlStartDtmfToneComp(aResult); diff -r 962e6306d9d2 -r 7ef16719d8cb telephonyserverplugins/ctsydispatchlayer/test/mockltsy_under_ctsydispatch/src/cmockltsyengine.cpp --- a/telephonyserverplugins/ctsydispatchlayer/test/mockltsy_under_ctsydispatch/src/cmockltsyengine.cpp Fri Feb 19 23:59:33 2010 +0200 +++ b/telephonyserverplugins/ctsydispatchlayer/test/mockltsy_under_ctsydispatch/src/cmockltsyengine.cpp Fri Mar 12 15:49:38 2010 +0200 @@ -71,6 +71,7 @@ _LIT(KCallControlSendDtmfTonesApiName, "CallControl SendDtmfTones"); _LIT(KCallControlGetIdentityServiceStatusApiName, "CallControl GetIdentityServiceStatus"); _LIT(KCallControlSwapApiName, "CallControl Swap"); +_LIT(KCallControlSingleSwapApiName, "CallControl Single Swap"); _LIT(KCallControlLoanDataPortApiName, "CallControl LoanDataPort"); _LIT(KCallControlRecoverDataPortApiName, "CallControl RecoverDataPort"); _LIT(KCallControlStartDtmfToneApiName, "CallControl StartDtmfTone"); @@ -751,6 +752,8 @@ return KCallControlGetIdentityServiceStatusApiName; case MLtsyDispatchCallControlSwap::KLtsyDispatchCallControlSwapApiId: return KCallControlSwapApiName; + case MLtsyDispatchCallControlSwap::KLtsyDispatchCallControlSingleSwapApiId: + return KCallControlSingleSwapApiName; case MLtsyDispatchCallControlLoanDataPort::KLtsyDispatchCallControlLoanDataPortApiId: return KCallControlLoanDataPortApiName; case MLtsyDispatchCallControlRecoverDataPort::KLtsyDispatchCallControlRecoverDataPortApiId: diff -r 962e6306d9d2 -r 7ef16719d8cb telephonyserverplugins/licenseetsystub/licensee_tsy_stub/inc/cmmmockmesshandler.h --- a/telephonyserverplugins/licenseetsystub/licensee_tsy_stub/inc/cmmmockmesshandler.h Fri Feb 19 23:59:33 2010 +0200 +++ b/telephonyserverplugins/licenseetsystub/licensee_tsy_stub/inc/cmmmockmesshandler.h Fri Mar 12 15:49:38 2010 +0200 @@ -111,12 +111,6 @@ */ CPeriodic* iTimer; - /* - * Pointer to the Custom stub extension - * Own. - */ - CMmCustomStubExt* iMmCustomStubExt; - }; #endif // CMMMOCKMESSHANDLER_H diff -r 962e6306d9d2 -r 7ef16719d8cb telephonyserverplugins/licenseetsystub/licensee_tsy_stub/src/cmmmockmesshandler.cpp --- a/telephonyserverplugins/licenseetsystub/licensee_tsy_stub/src/cmmmockmesshandler.cpp Fri Feb 19 23:59:33 2010 +0200 +++ b/telephonyserverplugins/licenseetsystub/licensee_tsy_stub/src/cmmmockmesshandler.cpp Fri Mar 12 15:49:38 2010 +0200 @@ -64,7 +64,7 @@ // TInt CMmMockMessHandler::ExtFuncL( TInt aIpc, - const CMmDataPackage* aDataPackage ) + const CMmDataPackage* /*aDataPackage*/) { TFLOGSTRING2("TSY: CMmMockMessHandler::ExtFuncL. IPC: %d", aIpc ); @@ -291,24 +291,6 @@ ret = KErrNone; complete = ETrue; break; - - // Custom functionality - case EMmTsyGetCustomVendorExtPtrIPC: - { -TFLOGSTRING("TSY: CMmCustomMessHandler::ExtFuncL --- EMmTsyGetCustomVendorExtPtrIPC"); - // return pointer to customapi extension - CMmCustomVendorExt** extPtr; - aDataPackage->UnPackData( &extPtr ); - - if ( !iMmCustomStubExt ) - { - iMmCustomStubExt = new ( ELeave ) CMmCustomStubExt( ); - } - - *extPtr = iMmCustomStubExt; - iMmCustomStubExt->SetMessageRouter( iMessageRouter ); - break; - } default: ret = KErrNotSupported; diff -r 962e6306d9d2 -r 7ef16719d8cb telephonyserverplugins/simatktsy/tests/src/ccsatcomponenttestbase.cpp --- a/telephonyserverplugins/simatktsy/tests/src/ccsatcomponenttestbase.cpp Fri Feb 19 23:59:33 2010 +0200 +++ b/telephonyserverplugins/simatktsy/tests/src/ccsatcomponenttestbase.cpp Fri Mar 12 15:49:38 2010 +0200 @@ -1423,7 +1423,8 @@ aCommandQualifier, aGeneralResultAddInfo, aGeneralResult, - aAdditionalInfoTlv); + aAdditionalInfoTlv, + aExpResult); TerminalResponseL( aRSatTypeOfCommand, aRspPckg, aExpResult); } diff -r 962e6306d9d2 -r 7ef16719d8cb telephonyserverplugins/simatktsy/tests/src/ccsatsendssfu.cpp --- a/telephonyserverplugins/simatktsy/tests/src/ccsatsendssfu.cpp Fri Feb 19 23:59:33 2010 +0200 +++ b/telephonyserverplugins/simatktsy/tests/src/ccsatsendssfu.cpp Fri Mar 12 15:49:38 2010 +0200 @@ -277,11 +277,22 @@ rsp.iAdditionalInfo.Zero(); rsp.iAdditionalInfo.Append(KSSOpCodeAndParameters); - // defect, first byte from additional info is deleted in CSatNotifySendSs::TerminalResponseL() +// first byte from additional info is deleted in CSatNotifySendSs::TerminalResponseL() +// Let MockLTsy expect this behaviour + rsp.iAdditionalInfo.Delete( 0, 1 ); - GenerateTerminalResponseL(KCmdId, KSendSs, KCmdDetails, - RSat::ESendSs, rspPckg, rsp.iAdditionalInfo, - rsp.iGeneralResult); + PrepareTerminalResponseMockDataL( + KCmdId, + KSendSs, + KCmdDetails, + rsp.iAdditionalInfo, + rsp.iGeneralResult, + KNullDesC8); + + rsp.iAdditionalInfo.Zero(); + rsp.iAdditionalInfo.Append( KSSOpCodeAndParameters ); + + TerminalResponseL( RSat::ESendSs, rspPckg); AssertMockLtsyStatusL(); @@ -885,15 +896,43 @@ if ( rsp->iInfoType == RSat::KSendSsInfo ) { rsp->iAdditionalInfo.Append( KSSOpCodeAndParameters ); + +// first byte from additional info is deleted in CSatNotifySendSs::TerminalResponseL() +// Let MockLTsy expect this behaviour + if( rsp->iGeneralResult == RSat::KSuccess || + rsp->iGeneralResult == RSat::KPartialComprehension || + rsp->iGeneralResult == RSat::KMissingInformation || + rsp->iGeneralResult == RSat::KSuccessRequestedIconNotDisplayed ) + { + rsp->iAdditionalInfo.Delete( 0, 1 ); + } } else { rsp->iAdditionalInfo.Append( KResponsesToTest[i].iAdditionalInfo ); } } - GenerateTerminalResponseL(KCmdId, KSendSs, KCmdDetails, - RSat::ESendSs, *rspPckg, rsp->iAdditionalInfo, - rsp->iGeneralResult, KNullDesC8, KResponsesToTest[i].iExpectedResult); + PrepareTerminalResponseMockDataL( + KCmdId, + KSendSs, + KCmdDetails, + rsp->iAdditionalInfo, + rsp->iGeneralResult, + KNullDesC8, + KResponsesToTest[i].iExpectedResult); + + if ( (!KResponsesToTest[i].iIntentionallyOmmitAdditionalInfo && rsp->iInfoType == RSat::KSendSsInfo ) + && + (rsp->iGeneralResult == RSat::KSuccess || + rsp->iGeneralResult == RSat::KPartialComprehension || + rsp->iGeneralResult == RSat::KMissingInformation || + rsp->iGeneralResult == RSat::KSuccessRequestedIconNotDisplayed) ) + { + rsp->iAdditionalInfo.Zero(); + rsp->iAdditionalInfo.Append( KSSOpCodeAndParameters ); + } + + TerminalResponseL( RSat::ESendSs, *rspPckg, KResponsesToTest[i].iExpectedResult); } else { @@ -901,10 +940,18 @@ rsp->iGeneralResult = RSat::KSuccess; rsp->iInfoType = RSat::KSendSsInfo; rsp->iAdditionalInfo.Append(KSSOpCodeAndParameters); + +// first byte from additional info is deleted in CSatNotifySendSs::TerminalResponseL() +// Let MockLTsy expect this behaviour + + rsp->iAdditionalInfo.Delete( 0, 1 ); PrepareTerminalResponseMockDataL( KCmdId, KSendSs, KCmdDetails, rsp->iAdditionalInfo, rsp->iGeneralResult, KNullDesC8, KErrUnknown); + rsp->iAdditionalInfo.Zero(); + rsp->iAdditionalInfo.Append( KSSOpCodeAndParameters ); + TerminalResponseL( RSat::ESendSs, *rspPckg, KErrUnknown); } diff -r 962e6306d9d2 -r 7ef16719d8cb telephonyserverplugins/simtsy/inc/CSimPhone.h --- a/telephonyserverplugins/simtsy/inc/CSimPhone.h Fri Feb 19 23:59:33 2010 +0200 +++ b/telephonyserverplugins/simtsy/inc/CSimPhone.h Fri Mar 12 15:49:38 2010 +0200 @@ -197,7 +197,7 @@ inline RPhone::TMode Mode() const {return iMode; } RMobilePhone::TMobilePhoneNetworkMode NetworkMode(); - void ResetTestNumber(); + void SetTestNumberAndReadConfigurationFileL(); // Methods added to allow indicator object to retrieve information // from other objects owned by the phone @@ -217,6 +217,10 @@ TInt CheckSimTsyVersion(RMobilePhone::CImsAuthorizationInfoV5& aDataStruct); TInt CheckSimTsyVersion(RPacketContext::CTFTMediaAuthorizationV3& aDataStruct); + // Callback function invoked by the observer object + void HandleTestNumberChangedL(); + TInt CheckConfigFile(); + protected: void ConstructL(); @@ -253,6 +257,7 @@ TInt CopyServiceTable(RMobilePhone::TMobilePhoneServiceTableV1* aFrom, RMobilePhone::TMobilePhoneServiceTableV1* aTo); TInt CopyServiceTableV8(RMobilePhone::TMobilePhoneServiceTableV8* aFrom, RMobilePhone::TMobilePhoneServiceTableV8* aTo); + void ReadConfigurationFileL(); TInt NotifyModeChange(const TTsyReqHandle aTsyReqHandle, RMobilePhone::TMobilePhoneNetworkMode* aCaps); TInt NotifyModeChangeCancel(const TTsyReqHandle aTsyReqHandle); @@ -296,6 +301,7 @@ CSimONStore* iONStore; CTestConfig* iConfigFile; //< Pointer to the Configuration file reader + CTestConfigSection* iConfigSection; //< Pointer to the Configuration section for current test. TBuf8 iSectionName; CSimSat* iSat; //< Pointer to the Sat object CSimPacketService* iPacketService; //< Pointer to the Packet object @@ -365,7 +371,31 @@ CSimPhone *iPhone; TTsyReqHandle iHandle; }; - CSetCallProcessingSuspendStateTimerCallBack iTimerCallBackSetCallProcessingSuspendState; + + // Observer class monitoring test number property + NONSHARABLE_CLASS(CSimTestNumberObserver) : public CActive + { + public: + static CSimTestNumberObserver* NewL(CSimPhone& aSimPhone); + virtual ~CSimTestNumberObserver(); + + private: // methods from CActive + virtual void RunL(); + virtual void DoCancel(); + + private: + CSimTestNumberObserver(CSimPhone& aSimPhone); + void ConstructL(); + void Start(); + + private: + CSimPhone& iSimPhone; // Reference to sim phone object (owner object) + RProperty iProperty; // Property describing the event we require notification of + }; + +private: + CSetCallProcessingSuspendStateTimerCallBack iTimerCallBackSetCallProcessingSuspendState; + CSimTestNumberObserver* iTestNumberObserver; }; #endif diff -r 962e6306d9d2 -r 7ef16719d8cb telephonyserverplugins/simtsy/inc/SimConstants.h --- a/telephonyserverplugins/simtsy/inc/SimConstants.h Fri Feb 19 23:59:33 2010 +0200 +++ b/telephonyserverplugins/simtsy/inc/SimConstants.h Fri Mar 12 15:49:38 2010 +0200 @@ -166,7 +166,6 @@ _LIT8(KPLMNFieldDefault, "\x50\x03\x21\x44\x21"); // < Default PLMN field TLV buffer. This corresponds to tag=80, len=3,val=(MCC=123, MNC=123) _LIT8(KSubscriberId,"SubscriberId"); // < Configuration tag for Subscriber ID -_LIT8(KSubscriberIdDefault,"01234567890123"); // < Default Subscriber ID (used if no Subscriber ID tag is present) _LIT8(KPhoneId,"PhoneId"); // < Configuration tag for PhoneId _LIT8(KPhoneManufacturerDefault, "Symbian"); // < Default Manufacturer _LIT8(KPhoneModelDefault, "888"); // < Default Model diff -r 962e6306d9d2 -r 7ef16719d8cb telephonyserverplugins/simtsy/inc/SimTsy.h --- a/telephonyserverplugins/simtsy/inc/SimTsy.h Fri Feb 19 23:59:33 2010 +0200 +++ b/telephonyserverplugins/simtsy/inc/SimTsy.h Fri Mar 12 15:49:38 2010 +0200 @@ -229,5 +229,8 @@ _LIT(KPhoneName,"SimulatorPhone"); //< The name of the phone supported by the Simulator TSY. _LIT(KVoiceLineName,"Voice"); //< The name of the voice line supported by the Simulator TSY. _LIT(KDataLineName,"Data"); //< The name of the data line supported by the Simulator TSY. +_LIT8(KSIMTSYSubSystem, "SIMTSY"); ///< The name of the sub-system used by Comms Debug Utility. +_LIT8(KSubscriberIdDefault,"01234567890123"); /// < Default Subscriber ID for the Simulator TSY (used if no Subscriber ID tag is present) +_LIT8(KIccIdDefault, "01234567890123456789"); /// < Default ICC ID for the Simulator TSY (used if no ICC ID tag is present) #endif // __SIMTSY_H__ diff -r 962e6306d9d2 -r 7ef16719d8cb telephonyserverplugins/simtsy/inc/Simlog.h --- a/telephonyserverplugins/simtsy/inc/Simlog.h Fri Feb 19 23:59:33 2010 +0200 +++ b/telephonyserverplugins/simtsy/inc/Simlog.h Fri Mar 12 15:49:38 2010 +0200 @@ -64,6 +64,7 @@ #include #include +#include "SimTsy.h" #ifdef _DEBUG #define _SIMTSY_LOGGING_ENABLED @@ -72,8 +73,6 @@ #ifdef _SIMTSY_LOGGING_ENABLED -_LIT8(KSIMTSYSubSystem, "SIMTSY"); - #define SIMTSYFLOG1(N,A) { \ _LIT8(KLogString, A); \ __FLOG_STATIC0(KSIMTSYSubSystem,(N),KLogString); \ diff -r 962e6306d9d2 -r 7ef16719d8cb telephonyserverplugins/simtsy/inc/csimsmsmess.h --- a/telephonyserverplugins/simtsy/inc/csimsmsmess.h Fri Feb 19 23:59:33 2010 +0200 +++ b/telephonyserverplugins/simtsy/inc/csimsmsmess.h Fri Mar 12 15:49:38 2010 +0200 @@ -96,7 +96,9 @@ // MSubSessionExtBaseTSY pure virtual virtual TInt ExtFunc(const TTsyReqHandle aTsyReqHandle,const TInt aIpc,const TDataPackage& aPackage); - + + void ReloadConfigurationSettingsL(); + protected: void ConstructL(); @@ -120,8 +122,6 @@ ESmsRxStateWaitingToStart } iRxState; - TSmsRxState iRxStatePrevious; - enum TSmsTxEvent { ESmsEventSendReq, @@ -195,10 +195,12 @@ void AppendNpiToBuffer(TDes8& aBuffer, const RMobilePhone::TMobileNPI& aNpi); #endif - TInt ReloadConfigL(const TTsyReqHandle aReqHandle); HBufC8* PduToAscii(TDesC8& aSmsPdu); void DumpPdu(const TDesC8& aText, TDesC8& aSmsPdu, HBufC8* aPduInAscii = 0); + void Reset(); + void InitializeL(); + private: CSimTimer* iRxTimer; diff -r 962e6306d9d2 -r 7ef16719d8cb telephonyserverplugins/simtsy/src/CSimPhone.cpp --- a/telephonyserverplugins/simtsy/src/CSimPhone.cpp Fri Feb 19 23:59:33 2010 +0200 +++ b/telephonyserverplugins/simtsy/src/CSimPhone.cpp Fri Mar 12 15:49:38 2010 +0200 @@ -198,6 +198,34 @@ } } + + + void CSimPhone::SetTestNumberAndReadConfigurationFileL() + { + TInt testNumber; + User::LeaveIfError(GetTestNumber(testNumber)); + iSectionName.Format(KSectionNameFormat,testNumber); + + delete iConfigFile; + iConfigFile = NULL; + + TRAPD(err, iConfigFile = CTestConfig::NewLC(iFs, KConfigFileDir, KConfigFilename); CleanupStack::Pop(iConfigFile)); + if( err == KErrNone && iConfigFile->Section(iSectionName) != NULL ) + { + iConfigSection = iConfigFile->Section(iSectionName); + } + else + { + LOGPHONE2("Section for requested test number (%d) not found in the Config File",testNumber); + delete iConfigFile; + iConfigFile = NULL; + + User::Leave(KErrNotFound); + } + + User::LeaveIfError(SetTestNumberInUse(testNumber)); + } + void CSimPhone::ConstructL() /** * 2 Phase Construction (Second phase) @@ -214,24 +242,11 @@ #endif LOGPHONE1("Starting to Load and Parse the Config File"); - (void)User::LeaveIfError(iFs.Connect()); - iConfigFile=CTestConfig::NewLC(iFs,KConfigFileDir,KConfigFilename); - - TInt testNumber; - (void)User::LeaveIfError(GetTestNumber(testNumber)); - iSectionName.Format(KSectionNameFormat,testNumber); - if(iConfigFile->Section(iSectionName)==NULL) - { - LOGPHONE2("Section for requested test number (%d) not found in the Config File",testNumber); - CleanupStack::Pop(); - User::Leave(KErrNotFound); - } - else - { - (void)User::LeaveIfError(SetTestNumberInUse(testNumber)); - } - CleanupStack::Pop(); // iConfigFile pointer is safely stored as a member variable - + + User::LeaveIfError(iFs.Connect()); + + SetTestNumberAndReadConfigurationFileL(); + CSimTsyMode::InitL(this); iReduceTimers = CSimReduceTimers::NewL(); @@ -293,18 +308,22 @@ TPtrC8 IMSI; iSubscriberId.iError = KErrNone; - const CTestConfigItem* item=CfgFile()->Item(KSubscriberId); - if (item) + const CTestConfigItem* itemSubscriberId=CfgFile()->Item(KSubscriberId); + if( itemSubscriberId != NULL ) { - TInt ret=CTestConfig::GetElement(item->Value(),KStdDelimiter,0,IMSI); - if(ret!=KErrNone) + TInt ret=CTestConfig::GetElement(itemSubscriberId->Value(),KStdDelimiter,0,IMSI); + if( ret != KErrNone ) + { LOGPARSERR("IMSI",ret,0,&KSubscriberId); + } // coverity[check_return] - CTestConfig::GetElement(item->Value(),KStdDelimiter,1,iSubscriberId.iError); + CTestConfig::GetElement(itemSubscriberId->Value(),KStdDelimiter,1,iSubscriberId.iError); iSubscriberId.iIMSI.Copy(IMSI); } else + { iSubscriberId.iIMSI.Copy(KSubscriberIdDefault); + } iNtwkMode=(RMobilePhone::TMobilePhoneNetworkMode)CfgFile()->ItemValue(KNetworkMode,KNetworkModeDefault); //get phone id from config file @@ -332,7 +351,7 @@ iNetworkModeTimer = CSimTimer::NewL(this); //< Read in all network mode data TInt count = CfgFile()->ItemCount(KNetworkMode); - item = NULL; + const CTestConfigItem* item = NULL; for (TInt i = 0; i < count; ++i) { item = CfgFile()->Item(KNetworkMode,i); @@ -388,7 +407,8 @@ iNetworkModeTimer->Start(initialNetworkMode.iDuration, &iTimerCallBackNetworkMode); } // end of network mode simulation setup - + iTestNumberObserver = CSimTestNumberObserver::NewL(*this); + LOGPHONE1("Completed Loading and Parsing the Config File"); } @@ -411,6 +431,7 @@ else { aTestNumber = KDefaultTestNumber; + LOGPHONE2("Using the default test number. testNumber=%d", aTestNumber); } return KErrNone; @@ -479,8 +500,7 @@ if (iUSIMServiceTableV8 != NULL) delete(iUSIMServiceTableV8); - - if(iPhBkStores) + if( iPhBkStores != NULL ) { TInt storeCount=iPhBkStores->Count(); for(TInt i=0;iCount(); for(TInt i=0;iClose(); iONStore = NULL; } - - - if (iNetworkModeArray != NULL) + if( iNetworkModeArray != NULL ) { iNetworkModeArray->Delete(0,iNetworkModeArray->Count()); delete iNetworkModeArray; } - - - if(iPacketService) + if( iPacketService!= NULL ) + { iPacketService->Close(); - - if(iSat) + } + if( iSat != NULL ) + { iSat->Close(); - if(iConfigFile) - delete iConfigFile; - if(iCallBarring) - delete iCallBarring; - if (iCallForwarding) - delete iCallForwarding; - if (iCallWaiting) - delete iCallWaiting; + } + if( iConfigFile == NULL) + { + // In this case if iConfigSection exists then it is not owned + // by iConfigFile - this is cos there was no config file for + // this SIM TSY. + delete iConfigSection; + } + delete iConfigFile; + delete iCallBarring; + delete iCallForwarding; + delete iCallWaiting; if (iSetCallProcessingSuspendStateTimer) { @@ -536,7 +557,8 @@ delete iSimPhoneInitialise; delete iReduceTimers; - + delete iTestNumberObserver; + CSimTsyMode::FreeMode(); LOGPHONE1("CSimPhone Destroyed"); } @@ -2174,12 +2196,18 @@ if (iSubscriberId.iError == KErrNone) { if(iSubscriberId.iIMSI.Length()>RMobilePhone::KIMSISize) + { subscribe.Copy(iSubscriberId.iIMSI.Left(RMobilePhone::KIMSISize)); + } else + { subscribe.Copy(iSubscriberId.iIMSI); + } } else + { ret = iSubscriberId.iError; + } ReqCompleted(aReqHandle,ret); return KErrNone; } @@ -2191,7 +2219,7 @@ * @return CTestConfigSection pointer to the configuration file section */ { - return iConfigFile->Section(iSectionName); + return iConfigSection; } const CTestConfigSection* CSimPhone::DefaultCfgFile() @@ -2201,6 +2229,10 @@ * @return CTestConfigSection pointer to the default configuration file section */ { + if( iConfigFile == NULL ) + { + return NULL; + } return iConfigFile->Section(KScriptDefaults); } @@ -2948,6 +2980,38 @@ } /** + * Callback function invoked by the observer object when test number property is changed. + * This function is supposed to reset SIMTSY. Currently only SMS messaging part of SIMTSY + * is re-started with the new test number. + */ +void CSimPhone::HandleTestNumberChangedL() + { + SetTestNumberAndReadConfigurationFileL(); + iSmsMessaging->ReloadConfigurationSettingsL(); + } + +TInt CSimPhone::CheckConfigFile() + { + TInt testNumber; + User::LeaveIfError(GetTestNumber(testNumber)); + iSectionName.Format(KSectionNameFormat,testNumber); + + CTestConfig* configFile = NULL; + + TRAPD(err, configFile = CTestConfig::NewLC(iFs, KConfigFileDir, KConfigFilename); CleanupStack::Pop(configFile)); + CleanupStack::PushL(configFile); + if( err != KErrNone || configFile->Section(iSectionName) != NULL ) + { + err = KErrNone; + } + else + { + err = KErrNotFound; + } + CleanupStack::PopAndDestroy(configFile); + return err; + } +/** Constructor for suspend call processing timer */ CSimPhone::CSetCallProcessingSuspendStateTimerCallBack::CSetCallProcessingSuspendStateTimerCallBack() @@ -3050,14 +3114,6 @@ iNetworkModeTimer->Start(iNetworkModeArray->At(iNetworkModeIndex).iDuration, &iTimerCallBackNetworkMode); } - -void CSimPhone::ResetTestNumber() - { - TInt testNumber; - GetTestNumber(testNumber); - iSectionName.Format(KSectionNameFormat,testNumber); - } - TInt CSimPhone::CheckSimTsyVersion(RMobilePhone::TMultimodeType& aDataStruct) // overload this for other types of structures /** * Checks the version of a data structure against the (simulated) version of SIMTSY, in order @@ -3247,3 +3303,61 @@ return ret; } +//////////////////// +// CSimTestNumberObserver +//////////////////// + +CSimPhone::CSimTestNumberObserver::CSimTestNumberObserver(CSimPhone& aSimPhone) +: CActive(CActive::EPriorityStandard), + iSimPhone(aSimPhone) + { + CActiveScheduler::Add(this); + } + +CSimPhone::CSimTestNumberObserver::~CSimTestNumberObserver() + { + Cancel(); + iProperty.Close(); + } + +CSimPhone::CSimTestNumberObserver* CSimPhone::CSimTestNumberObserver::NewL(CSimPhone& aSimPhone) + { + CSimPhone::CSimTestNumberObserver* self = new(ELeave)CSimPhone::CSimTestNumberObserver(aSimPhone); + CleanupStack::PushL(self); + self->ConstructL(); + CleanupStack::Pop(self); + return self; + } + +void CSimPhone::CSimTestNumberObserver::ConstructL() + { + LOGPHONE1("CSimPhone::CSimPhoneObserver::ConstructL"); + User::LeaveIfError(iProperty.Attach(KUidPSSimTsyCategory, KPSSimTsyTestNumber)); + Start(); + } + +void CSimPhone::CSimTestNumberObserver::Start() + { + LOGPHONE1("CSimPhone::CSimPhoneObserver::Start"); + iProperty.Subscribe(iStatus); + SetActive(); + } + +void CSimPhone::CSimTestNumberObserver::RunL() + { + LOGPHONE2("CSimPhone::CSimPhoneObserver::RunL [iStatus=%d]", iStatus.Int()); + TInt err = iSimPhone.CheckConfigFile(); + if( err == KErrNone ) + { + iSimPhone.HandleTestNumberChangedL(); + } + + Start(); + } + +void CSimPhone::CSimTestNumberObserver::DoCancel() + { + LOGPHONE1("CSimPhone::CSimPhoneObserver::DoCancel"); + iProperty.Cancel(); + } + diff -r 962e6306d9d2 -r 7ef16719d8cb telephonyserverplugins/simtsy/src/csimsmsmess.cpp --- a/telephonyserverplugins/simtsy/src/csimsmsmess.cpp Fri Feb 19 23:59:33 2010 +0200 +++ b/telephonyserverplugins/simtsy/src/csimsmsmess.cpp Fri Mar 12 15:49:38 2010 +0200 @@ -68,6 +68,11 @@ * If there are no constraints any SMS specified in the configuration file and the "incoming SMS event" timer will * be started. */ + { + InitializeL(); + } + +void CSimSmsMessaging::InitializeL() { LOGSMS1("Starting to Load and Parse Sms Messaging Config "); iRxTimer=CSimTimer::NewL(iPhone); @@ -95,48 +100,70 @@ } -CSimSmsMessaging::~CSimSmsMessaging() -/** - * Standard destructor. Any objects created by the ::ConstructL() function should be destroyed here. - */ - { - if(iSmsRxParameterListGsm) +void CSimSmsMessaging::Reset() + { + if(iSmsRxParameterListGsm) { iSmsRxParameterListGsm->Delete(0,iSmsRxParameterListGsm->Count()); delete iSmsRxParameterListGsm; + iSmsRxParameterListGsm = NULL; } if(iSmsTxParametersListGsm) { iSmsTxParametersListGsm->Delete(0,iSmsTxParametersListGsm->Count()); delete iSmsTxParametersListGsm; + iSmsTxParametersListGsm = NULL; } - delete iSmspEntries; - - if (iSmsStores) - { - TInt storeCount=iSmsStores->Count(); - for(TInt i=0;iAt(i)->Close(); - } - delete iSmsStores; - } + delete iSmspEntries; + iSmspEntries = NULL; + + if (iSmsStores) + { + TInt storeCount=iSmsStores->Count(); + for(TInt i=0;iAt(i)->Close(); + } + delete iSmsStores; + iSmsStores = NULL; + } - if (iSmspReadAll) - { - iSmspReadAll->ResetAndDestroy(); - delete iSmspReadAll; - } - - iConstraints.Close(); - if(iRxTimer) - delete iRxTimer; - if(iTxTimer) - delete iTxTimer; - if(iSmspTimer) - delete iSmspTimer; + if (iSmspReadAll) + { + iSmspReadAll->ResetAndDestroy(); + delete iSmspReadAll; + iSmspReadAll = NULL; + } + + iConstraints.Reset(); + + iSmsTxCnt = 0; + iSmsRxCnt = 0; + iCurrentConstraint = 0; + iConstraintRxCnt = 0; + + iSmspBusy = EFalse; + iRxState = ESmsRxStateIdle; + iTxState = ESmsTxStateIdle; + + delete iRxTimer; + iRxTimer = NULL; + + delete iTxTimer; + iTxTimer = NULL; + + delete iSmspTimer; + iSmspTimer = NULL; + } + +CSimSmsMessaging::~CSimSmsMessaging() +/** + * Standard destructor. Any objects created by the ::ConstructL() function should be destroyed here. + */ + { + Reset(); } void CSimSmsMessaging::FindAndCreateRxAttributesL() @@ -816,8 +843,8 @@ // NOTE - call ConstraintEllapsed() before doing loop below as iCurrentConstraint // is updated in the loop and so can result in ConstraintEllapsed() giving a // different result - - for(i=0;iCancel(); iSmsRxReqOutstanding=EFalse; iRxState=ESmsRxStateIdle; ReqCompleted(iSmsRxReqHandle,KErrCancel); @@ -1570,6 +1598,21 @@ if(IpcMatch()) { iConstraintRxCnt=0; + if( iRxState == ESmsRxStateSuspend ) + { + // A previous rx message was NACKed due memory full and + // SIM TSY is waiting for resume event from client - as + // a new message needs to be received, change states + // to allow receipt of the message. + if( iSmsRxReqOutstanding ) + { + iRxState = ESmsRxStateWaitingForSmsRx; + } + else + { + iRxState = ESmsRxStateIdle; + } + } if( iSmsRxReqOutstanding ) { // Client has a pending receive request - safe to start Rx timer @@ -2103,58 +2146,15 @@ } -TInt CSimSmsMessaging::ReloadConfigL(const TTsyReqHandle aReqHandle) +void CSimSmsMessaging::ReloadConfigurationSettingsL() /** - * This function reloads the Rx, Tx and constraint parameters from the config file - * @param aReqHandle Handle to notify when operation completed - * @return KErrNone + * This function reloads settings from the config file */ - { - LOGSMS1("Reloading configuration"); - //Tell SimPhone to reread the test number property - iPhone->ResetTestNumber(); - //Delete current configuration - iSmsRxParameterListGsm->Reset(); - iSmsTxParametersListGsm->Reset(); - - iSmsTxCnt = 0; - iSmsRxCnt = 0; - iConstraints.Reset(); - iCurrentConstraint = 0; - iConstraintRxCnt = 0; - //Reread the configuration - TInt err; - TRAP(err, FindAndCreateRxAttributesL()); - if (err != KErrNone) return err; - TRAP(err, FindAndCreateTxAttributesL()); - if (err != KErrNone) return err; - FindAndCreateConstraints(); - - TInt count; - count = iSmsRxParameterListGsm->Count(); - - if((count>0)&&(iConstraints.Count()==0)) // If there are messages to receive & no constraints, then - { - if (iRxTimer->Running()) - { - iRxTimer->Cancel(); - } - LOGSMS1("Starting Rx Timer"); - iRxStatePrevious = iRxState; - iRxState = ESmsRxStateWaitingToStart; - iRxTimer->Start(iSmsRxStartDelay,this, ETimerIdSmsMessRx); - } - else if (iRxTimer->Running()) - { - LOGSMS1("Stopping Rx Timer"); - iRxTimer->Cancel(); - } - - LOGSMS1("Finished reloading configuration"); - ReqCompleted(aReqHandle,KErrNone); - return KErrNone; - } - + { + Reset(); + InitializeL(); + } + HBufC8* CSimSmsMessaging::PduToAscii(TDesC8& aSmsPdu) /** * Converts the contents of a TDes8 to their Hex representation