# HG changeset patch # User Dremov Kirill (Nokia-D-MSW/Tampere) # Date 1282118399 -10800 # Node ID 41cc8e7ff4964d4ae120fbbefb9f0e64ba7b951e # Parent 34fc115b8742e1cf15d10cb0076961230fbe6f42 Revision: 201033 Kit: 201033 diff -r 34fc115b8742 -r 41cc8e7ff496 commsconfig/commsdatabaseshim/commdbshim/SCDB/commdb_impl.cpp --- a/commsconfig/commsdatabaseshim/commdbshim/SCDB/commdb_impl.cpp Fri Jun 11 14:52:21 2010 +0300 +++ b/commsconfig/commsdatabaseshim/commdbshim/SCDB/commdb_impl.cpp Wed Aug 18 10:59:59 2010 +0300 @@ -362,7 +362,7 @@ User::LeaveIfError(recSet->iRecords.Append(aConnPref)); iCurrentRecord = recSet->iRecords[recSet->iRecords.Count()-1]; - iInsertedRecords.Insert(iCurrentRecord->RecordId(), KFirstRecord); + iInsertedRecords.InsertL(iCurrentRecord->RecordId(), KFirstRecord); TInt index = iDeletedRecords.Find(iCurrentRecord->RecordId()); @@ -451,7 +451,7 @@ CleanupStack::Pop(newRecord); iCurrentRecord = newRecord; - iInsertedRecords.Insert(iCurrentRecord->RecordId(), KFirstRecord); + iInsertedRecords.InsertL(iCurrentRecord->RecordId(), KFirstRecord); SortById(); aId = newRecord->RecordId(); diff -r 34fc115b8742 -r 41cc8e7ff496 commsfwsupport/commselements/commsfw/src/cfutil.cpp --- a/commsfwsupport/commselements/commsfw/src/cfutil.cpp Fri Jun 11 14:52:21 2010 +0300 +++ b/commsfwsupport/commselements/commsfw/src/cfutil.cpp Wed Aug 18 10:59:59 2010 +0300 @@ -493,14 +493,14 @@ } if(!found) { - files.Append(entry); + files.AppendL(entry); fullEntry.Set(entry.iName, &ff.File(), NULL); AddL(TOwnEntry(fullEntry, entry)); } } else { - files.Append(entry); + files.AppendL(entry); fullEntry.Set(entry.iName, &ff.File(), NULL); AddL(TOwnEntry(fullEntry, entry)); } diff -r 34fc115b8742 -r 41cc8e7ff496 commsfwsupport/commselements/meshmachine/src/mm_node.cpp --- a/commsfwsupport/commselements/meshmachine/src/mm_node.cpp Fri Jun 11 14:52:21 2010 +0300 +++ b/commsfwsupport/commselements/meshmachine/src/mm_node.cpp Wed Aug 18 10:59:59 2010 +0300 @@ -198,11 +198,11 @@ __ASSERT_DEBUG(!client->RecipientId().IsNull(), User::Panic(KSpecAssert_ElemMeshMachNodC, 1)); AbortActivitiesOriginatedBy(aContext, client->RecipientId()); + if (aContext.iSender == aClientId) + { + aContext.iPeer = NULL; + } ANodeBase::RemoveClient(foundAt); - if (aContext.iSender == aClientId) - { - aContext.iPeer = NULL; - } } EXPORT_C CNodeActivityBase* AMMNodeBase::FindActivityById(TUint aActivityId) const diff -r 34fc115b8742 -r 41cc8e7ff496 commsfwsupport/commselements/serverden/bwins/serverdenu.def --- a/commsfwsupport/commselements/serverden/bwins/serverdenu.def Fri Jun 11 14:52:21 2010 +0300 +++ b/commsfwsupport/commselements/serverden/bwins/serverdenu.def Wed Aug 18 10:59:59 2010 +0300 @@ -138,7 +138,7 @@ ?IsShuttingDown@CCommonPitBoss@Den@@QBEHXZ @ 137 NONAME ; int Den::CCommonPitBoss::IsShuttingDown(void) const ?IsSubSessionIpcExtensionSupported@CWorkerSubSession@Den@@IAEPAVTIpcExtensionRoutingMessageFromSubSession@2@HAAVTDes8@@@Z @ 138 NONAME ; class Den::TIpcExtensionRoutingMessageFromSubSession * Den::CWorkerSubSession::IsSubSessionIpcExtensionSupported(int, class TDes8 &) ?LogSubSession@CWorkerSession@Den@@SAXPAV12@PAVCWorkerSubSession@2@HPAX@Z @ 139 NONAME ; void Den::CWorkerSession::LogSubSession(class Den::CWorkerSession *, class Den::CWorkerSubSession *, int, void *) - ?MaybeCompleteUnbinding@CCommonWorkerThread@Den@@IAEXG@Z @ 140 NONAME ; void Den::CCommonWorkerThread::MaybeCompleteUnbinding(unsigned short) + ?MaybeCompleteUnbinding@CCommonWorkerThread@Den@@IAEXGH@Z @ 140 NONAME ; void Den::CCommonWorkerThread::MaybeCompleteUnbinding(unsigned short) ?MaybeCompleteUnbindings@CCommonWorkerThread@Den@@QAEHXZ @ 141 NONAME ; int Den::CCommonWorkerThread::MaybeCompleteUnbindings(void) ?MaybeSetPlayerShutdownComplete@CCommonPlayer@Den@@QAEXH@Z @ 142 NONAME ; void Den::CCommonPlayer::MaybeSetPlayerShutdownComplete(int) ?MaybeSwitch@THeapSwitcher@Den@@AAEXAAVCCommonPitBoss@2@G@Z @ 143 NONAME ; void Den::THeapSwitcher::MaybeSwitch(class Den::CCommonPitBoss &, unsigned short) diff -r 34fc115b8742 -r 41cc8e7ff496 commsfwsupport/commselements/serverden/eabi/serverdenu.def --- a/commsfwsupport/commselements/serverden/eabi/serverdenu.def Fri Jun 11 14:52:21 2010 +0300 +++ b/commsfwsupport/commselements/serverden/eabi/serverdenu.def Wed Aug 18 10:59:59 2010 +0300 @@ -149,7 +149,7 @@ _ZN3Den19CCommonWorkerThread20CompleteSessionCloseEPNS_14CWorkerSessionE @ 148 NONAME _ZN3Den19CCommonWorkerThread21DecProlongBindingLifeEv @ 149 NONAME _ZN3Den19CCommonWorkerThread21IncProlongBindingLifeEv @ 150 NONAME - _ZN3Den19CCommonWorkerThread22MaybeCompleteUnbindingEt @ 151 NONAME + _ZN3Den19CCommonWorkerThread22MaybeCompleteUnbindingEti @ 151 NONAME _ZN3Den19CCommonWorkerThread23MaybeCompleteUnbindingsEv @ 152 NONAME _ZN3Den19CCommonWorkerThread25SetDealerShutdownCompleteEi @ 153 NONAME _ZN3Den19CCommonWorkerThread25SetPlayerShutdownCompleteEi @ 154 NONAME @@ -379,4 +379,3 @@ _ZNK3Den18RApiExtSessionBase4SendERNS_13TApiExtReqMsgERK11RHandleBaseR14TRequestStatus @ 378 NONAME _ZNK3Den21RApiExtSubSessionBase4SendERNS_13TApiExtReqMsgERK11RHandleBaseR14TRequestStatus @ 379 NONAME - diff -r 34fc115b8742 -r 41cc8e7ff496 commsfwsupport/commselements/serverden/inc/sd_roles.h --- a/commsfwsupport/commselements/serverden/inc/sd_roles.h Fri Jun 11 14:52:21 2010 +0300 +++ b/commsfwsupport/commselements/serverden/inc/sd_roles.h Wed Aug 18 10:59:59 2010 +0300 @@ -545,7 +545,19 @@ { private: enum { ELivingSession = 0x80000000 }; - + + NONSHARABLE_CLASS(CSubSessionCloseThrottle) : public CAsyncOneShot + { + public: + CSubSessionCloseThrottle(CCommonSessionProxy& aProxy); + void RunL(); + private: + CCommonSessionProxy& iProxy; + }; + + static const TInt KSubSessionThrottleSize = 15; + friend class CSubSessionCloseThrottle; + public: IMPORT_C ~CCommonSessionProxy(); @@ -576,10 +588,14 @@ IMPORT_C CCommonSessionProxy(CWorkerSession* aSession, CCommonPlayer& aPlayer); private: + void DeleteSubSessionsWithThrottling(); + +private: CWorkerSession* iSession; //< The session which is represented by proxy instance CCommonPlayer& iPlayer; TInt iNumSubSessClosing; //< Number of subsessions in current thread to complete TDblQueLink iLink; + CSubSessionCloseThrottle iSubSessionCloseThrottle; }; /** diff -r 34fc115b8742 -r 41cc8e7ff496 commsfwsupport/commselements/serverden/inc/sd_thread.h --- a/commsfwsupport/commselements/serverden/inc/sd_thread.h Fri Jun 11 14:52:21 2010 +0300 +++ b/commsfwsupport/commselements/serverden/inc/sd_thread.h Wed Aug 18 10:59:59 2010 +0300 @@ -269,7 +269,7 @@ void ProcessIniDataL(); IMPORT_C TInt DecodePeerId(const CommsFW::TCFSubModuleAddress* aSubModule1, const CommsFW::TCFSubModuleAddress* aSubModule2, CommsFW::TWorkerId& aPeerId); - IMPORT_C void MaybeCompleteUnbinding(CommsFW::TWorkerId aWorker); + IMPORT_C void MaybeCompleteUnbinding(CommsFW::TWorkerId aWorker, TBool aPeerIsDead); protected: /** This is the handler used for bi-directional communication with the Root Server. */ diff -r 34fc115b8742 -r 41cc8e7ff496 commsfwsupport/commselements/serverden/src/sd_player.cpp --- a/commsfwsupport/commselements/serverden/src/sd_player.cpp Fri Jun 11 14:52:21 2010 +0300 +++ b/commsfwsupport/commselements/serverden/src/sd_player.cpp Wed Aug 18 10:59:59 2010 +0300 @@ -17,7 +17,7 @@ @file @internalComponent */ - + #include #include #include "sd_log.h" @@ -39,10 +39,12 @@ // // CSockSessionProxy // + EXPORT_C CCommonSessionProxy::CCommonSessionProxy(CWorkerSession* aSession, CCommonPlayer& aPlayer) : iSession(aSession), iPlayer(aPlayer), - iNumSubSessClosing(ELivingSession) + iNumSubSessClosing(ELivingSession), + iSubSessionCloseThrottle(*this) { //COMMONLOG((WorkerId(),KECommonBootingTag, _L8("CSockSessionProxy %08x:\tCSockSessionProxy(), iSockSession %08x"), this, iSession) ); } @@ -66,37 +68,77 @@ __ASSERT_DEBUG(!IsClosing(), User::Panic(KSpecAssert_ElemSvrDenPlayrC, 1)); iNumSubSessClosing = 1; // dummy subsession to prevent premature suicide during this close loop - // The object container is stored as a packed array, so working backwards through it avoids invalidating - // the iterator when removing entries (and as a bonus is more efficient) - CCommonPlayer::TSubSessionContainer& subSessions(iPlayer.SubSessions()); - for(TInt i = subSessions.Count() - 1; i >= 0; --i) - { - CWorkerSubSession* subSession = subSessions[i]; - if(subSession->Session() == iSession) - { - ++iNumSubSessClosing; - if(!subSession->IsClosing()) - { - subSession->DeleteMe(); - } - } - } + + DeleteSubSessionsWithThrottling(); + } + +void CCommonSessionProxy::DeleteSubSessionsWithThrottling() + { + // Why Throttle? The original scenario is a process which opens a large number of sockets (100 in the + // original case) and terminates without closing them, leaving BeginSessionClose() to clean them up. + // In addition, the worker in question (pdummy1) synchronously deletes subsessions (1) and uses a shared + // shared heap configuration (i.e. limited memory). As each deletion results in a message being sent + // (to an SCPR), and there is no opportunity to drain these due to the synchronous deletion, the transport + // queue overflows and cannot be grown resulting in a panic. So use a (*low* priority) active object to + // delete a limited number of subsessions per RunL(). + // + // (1) a call to DeleteMe() results in an immediate upcall to NotifySubSessionDestroyed(). + + TInt count = KSubSessionThrottleSize; + + // The object container is stored as a packed array, so working backwards through it avoids invalidating + // the iterator when removing entries (and as a bonus is more efficient) - NotifySubSessionDestroyed(); // remove the dummy subsession - } + CCommonPlayer::TSubSessionContainer& subSessions(iPlayer.SubSessions()); + for(TInt i = subSessions.Count() - 1; i >= 0; --i) + { + CWorkerSubSession* subSession = subSessions[i]; + if(subSession->Session() == iSession) + { + ++iNumSubSessClosing; + if(!subSession->IsClosing()) + { + subSession->DeleteMe(); + // Throttle the deletions as appropriate + if (--count <= 0) + { + COMMONLOG((Player().WorkerId(),KECommonBootingTag, _L8("CCommonSessionProxy %08x:\tDeleteSubSessionBunch(): throttled subsession deletion"), this) ); + // Re-prime the one shot + iSubSessionCloseThrottle.Call(); + return; + } + } + } + } + NotifySubSessionDestroyed(); // all, done, remove the dummy subsession + } EXPORT_C void CCommonSessionProxy::NotifySubSessionDestroyed() { - //COMMONLOG((Player().WorkerId(),KECommonBootingTag, _L8("CCommonSessionProxy %08x:\tNotifySubSessionDestroyed(), iSockSession %08x"), this, iSession) ); - if(IsClosing() && --iNumSubSessClosing <= 0) - { - __ASSERT_DEBUG(iNumSubSessClosing == 0, User::Panic(KSpecAssert_ElemSvrDenPlayrC, 2)); - CCommonWorkerThread& worker = iPlayer.WorkerThread(); - worker.CompleteSessionClose(iSession); - delete this; - } + //COMMONLOG((Player().WorkerId(),KECommonBootintgTag, _L8("CCommonSessionProxy %08x:\tNotifySubSessionDestroyed(), iSockSession %08x"), this, iSession) ); + if(IsClosing() &&--iNumSubSessClosing <= 0) + { + __ASSERT_DEBUG(iNumSubSessClosing == 0, User::Panic(KSpecAssert_ElemSvrDenPlayrC, 2)); + CCommonWorkerThread& worker = iPlayer.WorkerThread(); + worker.CompleteSessionClose(iSession); + delete this; + } } +// +// CCommonSessionProxy::CSubSessionCloseThrottle +// + +CCommonSessionProxy::CSubSessionCloseThrottle::CSubSessionCloseThrottle(CCommonSessionProxy& aProxy) + : CAsyncOneShot(EPriorityLow), iProxy(aProxy) // This must be low priority! + { + } + +void CCommonSessionProxy::CSubSessionCloseThrottle::RunL() + { + // Delete some more subsessions + iProxy.DeleteSubSessionsWithThrottling(); + } // // CCommonPlayer diff -r 34fc115b8742 -r 41cc8e7ff496 commsfwsupport/commselements/serverden/src/sd_workerthread.cpp --- a/commsfwsupport/commselements/serverden/src/sd_workerthread.cpp Fri Jun 11 14:52:21 2010 +0300 +++ b/commsfwsupport/commselements/serverden/src/sd_workerthread.cpp Wed Aug 18 10:59:59 2010 +0300 @@ -454,7 +454,7 @@ #endif // Mark the peer handler as unbinding - __CFLOG_VAR(( KECommonComponentTag, KECommonServerTag, _L8("W%d: CFUnbindMessageReceived %S <=> %S"), + COMMONLOG((WorkerId(), KECommonBootingTag, _L8("W%d: CFUnbindMessageReceived %S <=> %S"), WorkerId(), &fullModName1, &fullModName2 )); @@ -483,7 +483,7 @@ { iTransport->SetLastRequestIdConcerningPeer(unbindId, aMsg.Identifier()); iTransport->SetDropTransportPending(unbindId, ETrue); - MaybeCompleteUnbinding(unbindId); + MaybeCompleteUnbinding(unbindId, aMsg.PeerIsDead()); } else { @@ -507,7 +507,7 @@ // We always have a transport to ourself & it needs no unbinding if(player != WorkerId()) { - MaybeCompleteUnbinding(player); + MaybeCompleteUnbinding(player, EFalse); if(iTransport->PeerReachable(player)) { return EFalse; @@ -526,13 +526,13 @@ @see CCommonPlayer::CanUnbindFromWorker @see TCFUnbindCompleteMsg */ -EXPORT_C void CCommonWorkerThread::MaybeCompleteUnbinding(TWorkerId aWorker) +EXPORT_C void CCommonWorkerThread::MaybeCompleteUnbinding(TWorkerId aWorker, TBool aPeerIsDead) { if(iTransport->PeerReachable(aWorker) && iTransport->IsDropTransportPending(aWorker)) { - if(!Dealer() || Dealer()->CanUnbindFromWorker(aWorker)) + if(aPeerIsDead || !Dealer() || Dealer()->CanUnbindFromWorker(aWorker)) { - if(!Player() || Player()->CanUnbindFromWorker(aWorker)) + if(aPeerIsDead || !Player() || Player()->CanUnbindFromWorker(aWorker)) { COMMONLOG((WorkerId(), KECommonBootingTag, _L8("CCommonWorkerThread::MaybeCompleteUnbinding(%d) - dropping transport & unbinding"), aWorker)); // Let the peer know that we've unbound - if it has management responsibility towards us then @@ -719,7 +719,7 @@ if(iTransport->PeerReachable(peerId)) { - MaybeCompleteUnbinding(peerId); + MaybeCompleteUnbinding(peerId, ETrue); if(iTransport->PeerReachable(peerId)) { COMMONLOG((iWorkerId, KECommonServerTag, _L8("Destroying peer #%d handler"),peerId)); diff -r 34fc115b8742 -r 41cc8e7ff496 commsfwtools/commstools/svg/parse.ini --- a/commsfwtools/commstools/svg/parse.ini Fri Jun 11 14:52:21 2010 +0300 +++ b/commsfwtools/commstools/svg/parse.ini Wed Aug 18 10:59:59 2010 +0300 @@ -119,6 +119,11 @@ TPolicyCheckRequest iParams.iProcessId_Lo iParams.iThreadId_Lo iParams.iPlatSecResult ReJoinDataClientRequest iNodeId1.iPtr:node iNodeId2.iPtr:node SubSess iValue +SimpleSelect iSelectionPrefs.iSelectionParams iSelectionPrefs.iSubSessionUniqueId +TApiExtMsgDispatcher iResponseMsg.iMessage.iHandle:x iClientId +TOpenExtensionInterface iMessage.iHandle:x iClientId iInterfaceId +TDataMonitoringNotification iValue1 iValue2 +TConnFlowRequest iSubSessionUniqueId:x iFlowParams.iAddrFamily iFlowParams.iProtocol iFlowParams.iSocketType iFlowParams.iFlowRequestType iSession:x iHandle:x [ObjectNameTruncateAndOrder] # Note: the order that entries appear in this section is important as string substitutions occur in the order specified TransportFlowShim TranFlowShim 2 diff -r 34fc115b8742 -r 41cc8e7ff496 commsfwtools/commstools/svg/parselog.pl --- a/commsfwtools/commstools/svg/parselog.pl Fri Jun 11 14:52:21 2010 +0300 +++ b/commsfwtools/commstools/svg/parselog.pl Wed Aug 18 10:59:59 2010 +0300 @@ -38,12 +38,13 @@ # 4 include ESOCK session creation # 8 display activity name along with each tuple line (e.g. "(IpCprNoBearer) (CoreNetStates::TSendBindTo, CoreNetStates::TAwaitingBindToComplete)") # 16 display AddClient/RemoveClient operations +# -o Write HTML and SVG output files into directory use strict; require 'getopts.pl'; -my $version = "2.1 (24/02/09)"; +my $version = "2.2 (16/04/10)"; # # Internal Options @@ -53,12 +54,13 @@ my $globalIndex = 1; my $lifeStage = 0; # 0 = not running or shutting down, 1 = during boot, 2 = main phase +my $outputPath = ""; # path to output directory specified by "-o" +our($opt_p,$opt_s,$opt_x,$opt_X, $opt_o); -our($opt_p,$opt_s,$opt_x,$opt_X); +Getopts("ps:x:X:o:"); -Getopts("ps:x:X:"); - +$outputPath = processPathArgument($opt_o); ### to get 1st line of latest log: type log.txt | perl -e "while(<>){if(/^#Logging started/){$a=$.;print $a.' '}};print $a" @@ -83,7 +85,8 @@ use constant ArgumentSignedDecimal => 0; use constant ArgumentNode => 1; -my %argumentFormatToConstant = ( "node" => ArgumentNode ); # used to have several other options +use constant ArgumentHex => 2; +my %argumentFormatToConstant = ( "node" => ArgumentNode, "x" => ArgumentHex ); # used to have several other options my %arguments; # Support for AddClient/RemoveClient @@ -317,13 +320,14 @@ } elsif (($opt_s & 2) && (/CWorkerSubSession\(.{8}\):\s*CompleteMessage\((.{8})\) with (.+), session .{8}/ || + /~CESockClientActivityBase..{8}.\s*RMessage2::Complete \((.{8})\) with ([-\d]+)\./ || + /RSafeMessage\(.{8}\)::Complete\((.{8})\) with ([-\d]+)/)) + { # /ProcessMessageL, session=.{8}, RMessage2::Complete \((.{8})\) with ([-\d]+)\./ || - /~CESockClientActivityBase..{8}.\s*RMessage2::Complete \((.{8})\) with ([-\d]+)\./ || - /RSafeMessage\((.{8})\)::Complete\((\d+)\) - session .{8}/)) - { # W6: CPlayer: ProcessMessageL, session=0be839a8, RMessage2::Complete (00de5538) with 0. # W0: CWorkerSubSession(0c941bc4): CompleteMessage(00de1a6c) with -3, session 0be839a8. # W6: ~CESockClientActivityBase=0c941f8c, RMessage2::Complete (00de5538) with 0. + # RSafeMessage(00e01590)::Complete(cd21cb80) with -36 my $msgAddr = $1; my $ret = $2; @@ -792,7 +796,11 @@ if ($value =~ m/^0x/) { $value = hex($value); } - $buf .= sprintf "%d", $value; + if ($format == ArgumentHex) { + $buf .= sprintf "0x%x", $value; + } else { + $buf .= sprintf "%d", $value; + } } else { $buf .= $value; } @@ -934,12 +942,19 @@ my ($exeName) = @_; $exeName =~ s/\.exe$//; $exeName =~ s/\.EXE$//; + $exeName =~ s/ /_/g; return $exeName; } sub outputSymbols() { - open SYM, ">logsym.html" || die "Cannot open logsym.html for writing\n"; + # Should have already created $outputPath directory, create html/ subdirectory. + my $path = $outputPath . "html"; + if (! -d $path) { + mkdir $path; + } + $path .= "/logsym.html"; + open SYM, ">$path" || die "Cannot open $path for writing\n"; print SYM "\n\n"; my @keys = sort keys %symtab; for my $i (@keys) { @@ -1145,4 +1160,32 @@ if (defined $activityName{$actAddr}) { delete $activityName{$actAddr}; } -} \ No newline at end of file +} + +sub processPathArgument($) +{ + my $path = $_[0]; + if ($path) { + # ensure "/" at the end + if ($path !~ /\/$/) { + $path .= "/"; + } + mkdirp($path); + return $path; + } else { + return ""; + } +} + +sub mkdirp($) +{ + my $dirName = @_[0]; + if ($dirName =~ m/^(.*)\//i) { + if ($1 ne "") { + mkdirp($1); + } + } + if (! -d $dirName) { + mkdir($dirName); + } +} diff -r 34fc115b8742 -r 41cc8e7ff496 commsfwtools/commstools/svg/parseseq.pl --- a/commsfwtools/commstools/svg/parseseq.pl Fri Jun 11 14:52:21 2010 +0300 +++ b/commsfwtools/commstools/svg/parseseq.pl Wed Aug 18 10:59:59 2010 +0300 @@ -56,8 +56,10 @@ my $version = "2.2 (27/02/08)"; -getopts("MHpx:N:A:vVr:R:hnf"); -our($opt_M, $opt_H, $opt_p, $opt_x, $opt_N, $opt_A, $opt_v, $opt_V, $opt_r, $opt_R, $opt_h, $opt_n, $opt_f); +getopts("MHpx:N:A:vVr:R:hnfo:"); +our($opt_M, $opt_H, $opt_p, $opt_x, $opt_N, $opt_A, $opt_v, $opt_V, $opt_r, $opt_R, $opt_h, $opt_n, $opt_f, $opt_o); + +my $outputPath = processPathArgument($opt_o); if ($opt_h) { @@ -122,8 +124,10 @@ [6] AgentSCPr :: AgentSCprStart Select activity to draw: ... - - -h This help message + +-o Place all output files into /html/ directory (including log.html). + +-h This help message HELP exit (0); } @@ -307,6 +311,7 @@ my $rowsPerView = int(($rowsToDisplay + $viewsToDisplay - 1) / $viewsToDisplay); my $viewNumber = 0; createViewMap(); + createIpcMap(); while ($beginRow < $totalRows) { $endRow = $beginRow + $rowsPerView - 1; if ($endRow >= $totalRows) { @@ -318,6 +323,7 @@ $beginRow = $endRow + 1; } closeViewMap($viewNumber); + closeIpcMap($viewNumber); } print "\n" if ($opt_V); @@ -353,19 +359,22 @@ $fileName .= $viewNumber; } - open SVG, ">html/${fileName}.svg" || die "Cannot open html/${fileName}.svg for writing\n"; + my $path = $outputPath . "html/${fileName}.svg"; + open SVG, ">$path" || die "Cannot open $path for writing\n"; #open RTTTL, ">html/${fileName}.rtttlpre" || die "Cannot open html/${fileName}.rttlpre for writing\n"; outputDocHeader($screenWidth, $screenHeight); - drawObjectNames(0); updateObjectViewList($viewNumber); drawObjectLifelines($beginRow, $endRow, $screenHeight); + drawObjectNames(0); drawActivities($beginRow, $endRow, $screenHeight, $viewNumber); my @labelsOnPage = (); my @objectsDestroyed = (); my @objectsCreated = (); - drawSequences($beginRow, $endRow, 1, \@labelsOnPage, \@objectsCreated, \@objectsDestroyed); + my @ipc = (); + drawSequences($beginRow, $endRow, 1, \@labelsOnPage, \@objectsCreated, \@objectsDestroyed, \@ipc); outputViewMap($viewNumber, $lastViewNumber, \@labelsOnPage, \@objectsCreated, \@objectsDestroyed); + outputIpcMap($viewNumber, $lastViewNumber, \@ipc); outputDocFooter(); close SVG; @@ -379,9 +388,11 @@ resetForNextView(); } -sub createSubDir() { - if (! -d html) { - mkdir "html" || die "Cannot create 'html' subdirectory\n"; +sub createSubDir() +{ + my $path = $outputPath . "html"; + if (! -d $path) { + mkdir $path || die "Cannot create $path subdirectory\n"; } } sub resetForNextView() { @@ -946,11 +957,12 @@ { if ($i->{Order} == 0) { - $colour = ""; + $colour = "!"; } else { $colour = (($i->{Order} % 2) == 0) ? $objectNameColour1 : $objectNameColour2; + $colour = "!" . $colour; } } my $name = $i->{Name}; @@ -967,10 +979,11 @@ } else { - outputText($i->{X}, $name, $currentY, "middle", $colour, qq{id="$name" onclick="debugEvent(evt)"}); + my $stagger = ($i->{colno} & 1); + outputText($i->{X}, $name, $currentY + ($stagger * $incrementY), "middle", $colour, qq{id="$name" onclick="debugEvent(evt)"}); } } - incrementY(); + incrementY(2); } # @@ -1137,7 +1150,7 @@ sub drawSequences($$$$$$) { - my ($startRow, $endRow, $drawFlag, $labelsOnPageRef, $objectsCreatedRef, $objectsDestroyedRef) = @_; + my ($startRow, $endRow, $drawFlag, $labelsOnPageRef, $objectsCreatedRef, $objectsDestroyedRef, $ipcRef) = @_; my $nextLabel = ""; # startRow/endRow = start/end row of displayed area (inclusive) @@ -1150,7 +1163,6 @@ my $drawDone = 0; my $inRange = 0; my $lastPopupText = ""; # text of last "pn" action - foreach my $ref (@sequences) { my $action = $ref->{Action}; @@ -1169,7 +1181,8 @@ $colour .= "rgb($1)"; $text = $2; } - my $attrs = generatePopupAttrs(\$lastPopupText, qq{id="$ref->{Object}->{Name}"}); + my $name = $ref->{Object}->{Name}; + my $attrs = generatePopupAttrs(\$lastPopupText, qq{id="$name"}); outputText($objX + $lifelineTextLeftMargin, $text, $currentY, "begin", $colour, $attrs); $drawDone = 1; # support for putting threads into the view map @@ -1181,6 +1194,9 @@ push @{$objectsDestroyedRef}, $1; } } + if ($name =~ s/^!//) { + push @{$ipcRef}, $ref; + } } else { fakeUpCreationDeletionIfRequired($ref->{Object}, $absoluteRow); } @@ -1384,16 +1400,16 @@ $inRange = IsInRangeInclusive($absoluteRow, $startRow, $endRow); if ($inRange) { - # drawObjectNames() increments Y once, and we increment Y once for - # spacing, so we occupy two rows here. - $rows += 2; + # drawObjectNames() increments Y twice (for stagger), and we increment Y once for + # spacing, so we occupy three rows here. + $rows += 3; if ($drawFlag == 1) { drawObjectNames(1); incrementY(); } } - $absoluteRow += 2; + $absoluteRow += 3; # 2 + 1 for stagger } } return $rows; @@ -1699,7 +1715,8 @@ sub createViewMap() { - open MAP, ">logmap.html" || die "Cannot open logmap.html for writing\n"; + my $path = $outputPath . "html/logmap.html"; + open MAP, ">$path" || die "Cannot open $path for writing\n"; print MAP "\n\n"; # Begin page label/time table @@ -1830,6 +1847,84 @@ } } +sub createIpcMap() +{ + my $path = $outputPath . "html/ipcmap.html"; + open IPC, ">$path" || die "Cannot open $path for writing\n"; + print IPC "\n"; + print IPC qq{\n"; + + # Begin page label/time table + print IPC qq { \n }; + print IPC qq { \n }; +} + +sub closeIpcMap() +{ + print IPC "
PageEXEs...
\n"; + close IPC; +} + +my @IpcExeColumns = (); + +sub addToArrayUniquely($$) +{ + my ($arrRef, $element) = @_; + foreach my $i ( @{$arrRef} ) { + if ($i eq $element) { + return; + } + } + push @{$arrRef}, $element; +} + +sub outputIpcMap($$$) +{ + my ($viewNumber, $lastViewNumber, $ipcRef) = @_; + my %ipcExeUsed = (); + my $exe; + my $ipc; + foreach $ipc (@{$ipcRef}) { + $exe = $ipc->{Object}->{Name}; + addToArrayUniquely(\@IpcExeColumns, $exe); + $ipcExeUsed{$exe} = 1; + } + + # Page number in first column (two rows) + #my $style = qq{style="text-align: left; font-family: courier new; white-space: nowrap ; font-size: smaller"}; + print IPC qq {$viewNumber\n}; + + # Second and subsequent columns showing the exe names + foreach $exe ( @IpcExeColumns ) { + my $exe2 = $exe; # why do things go wrong if I operate directly on $exe??? + $exe2 =~ s/^!//; + if (!defined($ipcExeUsed{$exe})) { + print IPC qq{$exe2}; + } else { + print IPC qq{$exe2}; + } + } + + # next row + print IPC qq{\n}; + # for each exe there is column... + my $rr; + foreach $rr ( @IpcExeColumns ) { + print IPC qq{}; + # ...showing the IPCs + foreach my $ref ( @{$ipcRef} ) { + if ($ref->{Object}->{Name} eq $rr) { + print IPC qq{$ref->{Text}
}; + } else { + print IPC qq{
}; + } + } + print IPC qq{}; + } + print IPC qq {\n}; +} # # Output the "0 1 2 3 4 ..." anchors representing the different views @@ -1850,6 +1945,34 @@ } } +sub processPathArgument($) +{ + my $path = $_[0]; + if ($path) { + # ensure "/" at the end + if ($path !~ /\/$/) { + $path .= "/"; + } + mkdirp($path); + return $path; + } else { + return ""; + } +} + +sub mkdirp($) +{ + my $dirName = @_[0]; + if ($dirName =~ m/^(.*)\//i) { + if ($1 ne "") { + mkdirp($1); + } + } + if (! -d $dirName) { + mkdir($dirName); + } +} + sub outputHTMLEmbedder($$$$$) { my ($width, $height, $viewNumber, $lastViewNumber, $fileName) = @_; @@ -1874,7 +1997,8 @@ $svgPathInHtmlFile = "html/" . $fileName; $mainPath = ""; } - open HTML, ">${htmlPath}.html" || die "Cannot open ${htmlPath}.html for writing\n"; + my $path = $outputPath . $htmlPath . ".html"; + open HTML, ">$path" || die "Cannot open $path for writing\n"; if (! $opt_f) { # DOCTYPE needed for "position: fixed" to work in IE @@ -1917,6 +2041,7 @@ print HTML qq{\n}; print HTML qq{\n}; print HTML qq{\n}; + print HTML qq{\n}; print HTML qq{ Zoom%\n\n}; if ($opt_f) { @@ -2010,16 +2135,20 @@ // function popupSymbols() { - symbols = window.open(mainPath + "logsym.html", "_blank", "width=400,resizable=yes,scrollbars=yes"); + symbols = window.open(mainPath + "html/logsym.html", "_blank", "width=400,resizable=yes,scrollbars=yes"); } function popupRelations() { - relations = window.open(mainPath + "relations.html", "_blank", "resizable=yes,scrollbars=yes,status=yes"); + relations = window.open(mainPath + "html/relations.html", "_blank", "resizable=yes,scrollbars=yes,status=yes"); relationsDefined = 1; } function popupMap() { - relations = window.open(mainPath + "logmap.html", "_blank", "resizable=yes,scrollbars=yes,status=yes"); + relations = window.open(mainPath + "html/logmap.html", "_blank", "resizable=yes,scrollbars=yes,status=yes"); +} + +function popupIpcMap() { + relations = window.open(mainPath + "html/ipcmap.html", "_blank", "resizable=yes,scrollbars=yes,status=yes"); } // diff -r 34fc115b8742 -r 41cc8e7ff496 commsfwtools/commstools/svg/relations.pl --- a/commsfwtools/commstools/svg/relations.pl Fri Jun 11 14:52:21 2010 +0300 +++ b/commsfwtools/commstools/svg/relations.pl Wed Aug 18 10:59:59 2010 +0300 @@ -154,9 +154,12 @@ my $tabToFontAdjustTopY = 2; my $tabToFontAdjustBottomY = 1; my $tabLineLengthY = 5; +my $outputPath = ""; # output path as specified by "-o " argument +our($opt_x,$opt_v,$opt_V, $opt_o); +Getopts("x:vVo:"); -our($opt_x,$opt_v,$opt_V); -Getopts("x:vV"); +$outputPath = processPathArgument($opt_o); + readRelationshipFile(); print "Reading sequences\n" if ($opt_V); @@ -225,9 +228,15 @@ outputRelationsHTMLEmbedder($width, $height); sub createOutputFile() - { - open SVG, ">relations.svg" || die "Cannot open relations.svg for writing\n"; +{ + # Have already created the directory $outputPath, just create the "html" subdirectory + my $path = $outputPath . "html"; + if (! -d $path) { + mkdir $path; } + $path .= "/relations.svg"; + open SVG, ">$path" || die "Cannot open $path for writing\n"; +} sub closeOutputFile() { @@ -835,7 +844,9 @@ sub outputRelationsHTMLEmbedder($$) { my ($width,$height) = @_; - open HTML, ">relations.html" || die "Cannot open relations.html for writing\n"; + # Should have already created $outputPath/html directory. + my $path = $outputPath . "html/relations.html"; + open HTML, ">$path" || die "Cannot open $path for writing\n"; print HTML qq{\n\n}; print HTML qq{\n}; print HTML qq{\n}; @@ -875,7 +886,13 @@ # sub outputAnimateHTML() { - open HTML, ">animate.html" || die "Cannot open animate.html for writing\n"; + # Should have already created $outputPath directory, create html/ subdirectory. + my $path = $outputPath . "html"; + if (! -d $path) { + mkdir $path; + } + $path .= "/animate.html"; + open HTML, ">$path" || die "Cannot open $path for writing\n"; ################################# # Begin Interpolated Text... # ################################# @@ -2096,3 +2113,31 @@ { print SVG ");\n\n"; } + +sub processPathArgument($) +{ + my $path = $_[0]; + if ($path) { + # ensure "/" at the end + if ($path !~ /\/$/) { + $path .= "/"; + } + mkdirp($path); + return $path; + } else { + return ""; + } +} + +sub mkdirp($) +{ + my $dirName = @_[0]; + if ($dirName =~ m/^(.*)\//i) { + if ($1 ne "") { + mkdirp($1); + } + } + if (! -d $dirName) { + mkdir($dirName); + } +} diff -r 34fc115b8742 -r 41cc8e7ff496 commsfwtools/commstools/utracedecoder/data/esockmessages.definition.txt --- a/commsfwtools/commstools/utracedecoder/data/esockmessages.definition.txt Fri Jun 11 14:52:21 2010 +0300 +++ b/commsfwtools/commstools/utracedecoder/data/esockmessages.definition.txt Wed Aug 18 10:59:59 2010 +0300 @@ -58,6 +58,7 @@ ImplicitFlow = 112 ConnectionFlow = 113 SubConnectionFlow = 114 + ActivityDestroyOrphans = 115 GetParamLength = 116 GetParam = 117 ActivitySubConnectionCreate = 118 @@ -405,27 +406,28 @@ // EGetOrSetParameters = 100 EMCprGetConnectionSetting = 101 - ECprRetrieveProgress = 102 - ECprRetrieveLastProgressError = 103 -// ECprRequestServiceNotification = 104 + ECprRetrieveProgress = 201 + ECprRetrieveLastProgressError = 202 +// ECprRequestServiceNotification = 203 -// ECprSendIoctl = 105 -// ECprAllSubConnectionNotificationEnable = 106 -// ECprEnumerateConnections = 107 +// ECprSendIoctl = 204 +// ECprAllSubConnectionNotificationEnable = 205 +// ECprEnumerateConnections = 206 -// ELegacyDataMonitoringTransferredRequest = 108 - ELegacyDataMonitoringNotificationRequest = 109 + ELegacyDataMonitoringTransferredRequest = 207 + ELegacyDataMonitoringNotificationRequest = 208 - ELegacySubConnectionActiveRequest = 110 + ELegacySubConnectionActiveRequest = 209 - ELegacyEnumerateSubConnections = 111 + ELegacyEnumerateSubConnections = 210 - ELegacyControlMessage = 112 - ELegacyConnEnumMessage = 113 + ELegacyControlMessage = 211 + ELegacyConnEnumMessage = 212 - ESignatureRMessage2Response = 114 + ESignatureRMessage2Response = 213 - ELegacyGetSubConnectionInfo = 115 + ELegacyGetSubConnectionInfo = 214 + END ENUM ENUM TDataMonitoringDirection : UINT32 @@ -438,6 +440,16 @@ RMessage2 iMessage END SIGNATURE +SIGNATURE TLegacyDataMonitoringTransferredRequest : TCFSigLegacyRMessage2Ext + TYPEID = KTCFLegacyMessageRealmId:ELegacyDataMonitoringTransferredRequest + UINT32 iClientId +END SIGNATURE + +MESSAGE LegacyDataMonitoringTransferredRequest + SIGNATURE = TLegacyDataMonitoringTransferredRequest + MESSAGEID = KTCFLegacyMessageRealmId:ELegacyDataMonitoringTransferredRequest +END MESSAGE + SIGNATURE TLegacyDataMonitoringNotificationRequest : TCFSigLegacyRMessage2Ext TYPEID = KTCFLegacyMessageRealmId:ELegacyDataMonitoringNotificationRequest TDataMonitoringDirection iDirection @@ -519,6 +531,17 @@ MESSAGEID = KTCFLegacyMessageRealmId:EMCprGetConnectionSetting END MESSAGE +SIGNATURE TLegacyConnectionEnumRequest : TSignalBase + TYPEID = KTCFLegacyMessageRealmId:ELegacyConnEnumMessage + UINT32 iSCPRCandidates + UINT32 iClientType +END SIGNATURE + +MESSAGE LegacyConnectionEnumRequest + SIGNATURE = TLegacyConnectionEnumRequest + MESSAGEID = KTCFLegacyMessageRealmId:ELegacyConnEnumMessage +END MESSAGE + SIGNATURE TLegacyControlMessage : TCFSigLegacyRMessage2Ext TYPEID = KTCFLegacyMessageRealmId:ELegacyControlMessage END SIGNATURE @@ -530,6 +553,7 @@ SIGNATURE TLegacyGetSubConnectionInfo : TCFSigLegacyRMessage2Ext TYPEID = KTCFLegacyMessageRealmId:ELegacyGetSubConnectionInfo + UINT32 iClientId // TSubSessionUniqueId TSubConnectionInfo iSubConnectionInfo END SIGNATURE @@ -544,6 +568,7 @@ ECFSubConnDataTransferred = 94 EStateChange = 95 ECFTransportNotification = 100 + ECFDestroyOrphans = 102 END ENUM MESSAGE SubConnDataTransferred @@ -561,6 +586,11 @@ MESSAGEID = KTCFMessageRealmId:ECFTransportNotification END MESSAGE +MESSAGE DestroyOrphans + SIGNATURE = TSigVoid + MESSAGEID = KTCFMessageRealmId:ECFDestroyOrphans +END MESSAGE + // ss_nodemessages_availability_control_client.h CONST KAvailablityControlClientRealmId = 0x10285F3D ENUM AvailCC_MessageId : UINT16 @@ -604,6 +634,7 @@ CONST KControlClientRealmId = 0x10285F3F ENUM ControlClient_MessageID : UINT16 ECFGoneDown = 1 + ECFGoneUp = 2 END ENUM MESSAGE GoneDown @@ -611,6 +642,11 @@ MESSAGEID = KControlClientRealmId:ECFGoneDown END MESSAGE +MESSAGE TGoneUp + SIGNATURE = TSigVoid + MESSAGEID = KControlClientRealmId:ECFGoneUp +END MESSAGE + // ss_nodemessages_controlprovider.h CONST KControlProviderRealmId = 0x10285F40 ENUM ControlProvider_MessageID : UINT16 @@ -1217,3 +1253,32 @@ SIGNATURE = TSigNumberNumber MESSAGEID = TCFDataMonitoringNotificationRealmId:ECFDataMonitoringNotification END MESSAGE + +// ss_apiext_messages.h + +CONST KExtItfMsgImplementationUid = 0x102822F7 + +ENUM EExtItfMessageId : UINT32 + EApiExtMsgDispatcher = 0 + EOpenExtensionInterface = 1 + ECloseExtensionInterface = 2 + ECancelAndCloseAllClientExtItf = 3 +END ENUM + +SIGNATURE TApiExtMsgDispatcher : TSignalBase + TYPEID = KExtItfMsgImplementationUid:EApiExtMsgDispatcher + UINT32 iClientId + RResponseMsg iResponseMsg +END SIGNATURE + +SIGNATURE TOpenExtensionInterface : TCFSigRMessage2Ext + TYPEID = KExtItfMsgImplementationUid:EOpenExtensionInterface + UINT32 iClientId + UINT32 iInterfaceId +END SIGNATURE + +SIGNATURE TCancelAndCloseAllClientExtItf : TSignalBase + TYPEID = KExtItfMsgImplementationUid:ECancelAndCloseAllClientExtItf + UINT32 iClientId +END SIGNATURE + diff -r 34fc115b8742 -r 41cc8e7ff496 commsfwtools/commstools/utracedecoder/data/ipmessages.definition.txt --- a/commsfwtools/commstools/utracedecoder/data/ipmessages.definition.txt Fri Jun 11 14:52:21 2010 +0300 +++ b/commsfwtools/commstools/utracedecoder/data/ipmessages.definition.txt Wed Aug 18 10:59:59 2010 +0300 @@ -71,7 +71,7 @@ ECprGetConnectionSetting = 10 - ELegacyDataMonitoringTransferredRequest = 11 +// ELegacyDataMonitoringTransferredRequest = 11 // ELegacyDataMonitoringNotificationRequest = 12 ELegacyDataMonitoringNotificationCancel = 13 @@ -146,16 +146,6 @@ MESSAGEID = KESockCprLinkExtMessages:ECprEnumerateConnections END MESSAGE -SIGNATURE TLegacyDataMonitoringTransferredRequest : TCFSigRMessage2Ext - TYPEID = KESockCprLinkExtMessages:ELegacyDataMonitoringTransferredRequest - UINT32 iClientId -END SIGNATURE - -MESSAGE LegacyDataMonitoringTransferredRequest - SIGNATURE = TLegacyDataMonitoringTransferredRequest - MESSAGEID = KESockCprLinkExtMessages:ELegacyDataMonitoringTransferredRequest -END MESSAGE - MESSAGE LegacyDataMonitoringNotificationRequest SIGNATURE = TLegacyDataMonitoringNotificationRequest MESSAGEID = KESockCprLinkExtMessages:ELegacyDataMonitoringNotificationRequest @@ -186,19 +176,6 @@ MESSAGEID = KESockCprLinkExtMessages:ELegacyCancelSubConnectionActive END MESSAGE -// - -CONST KExtItfMsgImplementationUid = 0x102822F7 - -ENUM EExtItfMessageId : UINT32 - ECancelAndCloseAllClientExtItf = 3 -END ENUM - -SIGNATURE TCancelAndCloseAllClientExtItf : TSignalBase - TYPEID = KExtItfMsgImplementationUid:ECancelAndCloseAllClientExtItf - UINT32 iClientId -END SIGNATURE - CONST KQoSIpSCprMessagesRealmId = 0x10204307 ENUM EQoSIpSCprMessagesId : UINT32 diff -r 34fc115b8742 -r 41cc8e7ff496 commsfwtools/commstools/utracedecoder/data/nodemessages.definition.txt --- a/commsfwtools/commstools/utracedecoder/data/nodemessages.definition.txt Fri Jun 11 14:52:21 2010 +0300 +++ b/commsfwtools/commstools/utracedecoder/data/nodemessages.definition.txt Wed Aug 18 10:59:59 2010 +0300 @@ -452,5 +452,11 @@ // MESSAGEID = KPeerRealmId:EJoinRequest //END MESSAGE +STRUCT RResponseMsg + RMessage2 iMessage + PAD 24 // iInterfaceId + UINT8 iRequestMsgParam + UINT8 iResponseMsgParam + PAD 2 +END STRUCT - diff -r 34fc115b8742 -r 41cc8e7ff496 commsfwtools/preparedefaultcommsdatabase/Tools/ced/data/meshpreface1.cfg --- a/commsfwtools/preparedefaultcommsdatabase/Tools/ced/data/meshpreface1.cfg Fri Jun 11 14:52:21 2010 +0300 +++ b/commsfwtools/preparedefaultcommsdatabase/Tools/ced/data/meshpreface1.cfg Wed Aug 18 10:59:59 2010 +0300 @@ -257,6 +257,13 @@ FIELD_COUNT=2 END_ADD +ADD_SECTION +# COMMDB_ID = 12 + Name=wlanmcpr + MCprUid=0x2001B2D2 + FIELD_COUNT=2 +END_ADD + ## PAN Ether MCpr Uid = 271070626 (0x102835A2) ADD_SECTION # COMMDB_ID = 13 @@ -458,6 +465,13 @@ FIELD_COUNT=2 END_ADD +ADD_SECTION +# COMMDB_ID = 12 + Name=wlan + ProtocolUid=0x2001B2D3 + FIELD_COUNT=2 +END_ADD + ############################################################ ## BearerTypeTable ## @@ -611,3 +625,14 @@ Protocol=ProtocolTable.11 FIELD_COUNT=6 END_ADD + +ADD_SECTION +# COMMDB_ID = 14 + Name=wlannif + Tier=Link.TierTable.271064565 + MCpr=MCprTable.12 + Cpr=CprTable.3 + SCpr=SCprTable.3 + Protocol=ProtocolTable.12 + FIELD_COUNT=6 +END_ADD diff -r 34fc115b8742 -r 41cc8e7ff496 commsfwtools/preparedefaultcommsdatabase/Tools/ced/data/meshpreface2.cfg --- a/commsfwtools/preparedefaultcommsdatabase/Tools/ced/data/meshpreface2.cfg Fri Jun 11 14:52:21 2010 +0300 +++ b/commsfwtools/preparedefaultcommsdatabase/Tools/ced/data/meshpreface2.cfg Wed Aug 18 10:59:59 2010 +0300 @@ -257,6 +257,13 @@ FIELD_COUNT=2 END_ADD +ADD_SECTION +# COMMDB_ID = 12 + Name=wlanmcpr + MCprUid=0x2001B2D2 + FIELD_COUNT=2 +END_ADD + ## PAN Ether MCpr Uid = 271070626 (0x102835A2) ADD_SECTION # COMMDB_ID = 13 @@ -452,6 +459,19 @@ FIELD_COUNT=2 END_ADD +ADD_SECTION +# COMMDB_ID = 11 + Name=rawip2 + ProtocolUid=0x10286AF8 + FIELD_COUNT=2 +END_ADD + +ADD_SECTION +# COMMDB_ID = 12 + Name=wlan + ProtocolUid=0x2001B2D3 + FIELD_COUNT=2 +END_ADD ############################################################ ## BearerTypeTable @@ -585,3 +605,35 @@ FIELD_COUNT=6 END_ADD +ADD_SECTION +# COMMDB_ID = 12 + Name=rawip2 + Tier=Link.TierTable.271064565 + MCpr=MCprTable.10 + Cpr=CprTable.8 + SCpr=SCprTable.4 + Protocol=ProtocolTable.11 + FIELD_COUNT=6 +END_ADD + +ADD_SECTION +# COMMDB_ID = 13 + Name=spud-rawip2 + Tier=Link.TierTable.271064565 + MCpr=MCprTable.10 + Cpr=CprTable.8 + SCpr=SCprTable.4 + Protocol=ProtocolTable.11 + FIELD_COUNT=6 +END_ADD + +ADD_SECTION +# COMMDB_ID = 14 + Name=wlannif + Tier=Link.TierTable.271064565 + MCpr=MCprTable.12 + Cpr=CprTable.3 + SCpr=SCprTable.3 + Protocol=ProtocolTable.12 + FIELD_COUNT=6 +END_ADD diff -r 34fc115b8742 -r 41cc8e7ff496 commsfwtools/preparedefaultcommsdatabase/Tools/ced/group/ced.iby --- a/commsfwtools/preparedefaultcommsdatabase/Tools/ced/group/ced.iby Fri Jun 11 14:52:21 2010 +0300 +++ b/commsfwtools/preparedefaultcommsdatabase/Tools/ced/group/ced.iby Wed Aug 18 10:59:59 2010 +0300 @@ -23,7 +23,12 @@ #include #include +#ifdef __ROHID_CED +file=ABI_DIR\DEBUG_DIR\_rohid_ced.exe System\Libs\ced.exe +#else file=ABI_DIR\DEBUG_DIR\ced.exe System\Libs\ced.exe +#endif + data=EPOCROOT##epoc32\data\z\system\data\meshpreface1.cfg system\data\meshpreface1.cfg #endif diff -r 34fc115b8742 -r 41cc8e7ff496 commsfwtools/preparedefaultcommsdatabase/Tools/ced/inc/CXMLContentHandler.h --- a/commsfwtools/preparedefaultcommsdatabase/Tools/ced/inc/CXMLContentHandler.h Fri Jun 11 14:52:21 2010 +0300 +++ b/commsfwtools/preparedefaultcommsdatabase/Tools/ced/inc/CXMLContentHandler.h Wed Aug 18 10:59:59 2010 +0300 @@ -275,7 +275,7 @@ public: // Functions to manipulate the database elements - void AddTableEntry(CXMLTableEntry* aEntry); + void AddTableEntryL(CXMLTableEntry* aEntry); CXMLTableEntry* GetTableEntry(const TInt aIndex); TInt GetNumberTableEntries() const; CXMLTableEntry* GetLastTableEntry(); diff -r 34fc115b8742 -r 41cc8e7ff496 commsfwtools/preparedefaultcommsdatabase/Tools/ced/src/CXMLContentHandler.cpp --- a/commsfwtools/preparedefaultcommsdatabase/Tools/ced/src/CXMLContentHandler.cpp Fri Jun 11 14:52:21 2010 +0300 +++ b/commsfwtools/preparedefaultcommsdatabase/Tools/ced/src/CXMLContentHandler.cpp Wed Aug 18 10:59:59 2010 +0300 @@ -507,7 +507,7 @@ gMsg->Msg(_L("Create new table entry for table : [%S] with operation (%S)"), &iCurrentTableName, &operation); - iXmlDb->AddTableEntry(tableEntry); + iXmlDb->AddTableEntryL(tableEntry); return; } @@ -1475,11 +1475,11 @@ { TBuf* name = new(ELeave) TBuf; name->Copy(aParamName); - paramName.Append(name); + paramName.AppendL(name); TBuf* value = new(ELeave) TBuf; value->Copy(aParamValue); - paramValue.Append(value); + paramValue.AppendL(value); } // Remove a parameter from the list @@ -1530,11 +1530,11 @@ } // Add a table entry to the database given the pointer -void CXMLDatabase::AddTableEntry(CXMLTableEntry* aEntry) +void CXMLDatabase::AddTableEntryL(CXMLTableEntry* aEntry) { if(aEntry != NULL) { - tableEntries.Append(aEntry); + tableEntries.AppendL(aEntry); } } diff -r 34fc115b8742 -r 41cc8e7ff496 commsfwtools/preparedefaultcommsdatabase/Tools/ced/src/ced.cpp --- a/commsfwtools/preparedefaultcommsdatabase/Tools/ced/src/ced.cpp Fri Jun 11 14:52:21 2010 +0300 +++ b/commsfwtools/preparedefaultcommsdatabase/Tools/ced/src/ced.cpp Wed Aug 18 10:59:59 2010 +0300 @@ -98,7 +98,9 @@ /** flag to indicate whether the execution format is .dll or .exe*/ TBool gIsExeDLL = EFalse; /** flag to indicate whether the configuration file is in XML format */ -TBool gIsXML = ETrue; +TBool gIsXML = ETrue; +/** flag to keep generic records */ +TBool gKeepGenerics = ETrue; #ifdef SYMBIAN_NETWORKING_3GPPDEFAULTQOS TBool gDeprecatedFields = EFalse; @@ -293,6 +295,7 @@ } // delete everything in the database + TInt keptElements = 0; if (ids.Count()) { for ( TInt i = ids.Count()-1; i >=0 ; i--) @@ -302,10 +305,18 @@ { gMsg->Msg(_L("%d"),i); } - User::LeaveIfError(storage->Delete(ids[i])); + if(!gKeepGenerics || ids[i] < KCDInitialUDefRecordType || ids[i] > KCDLastUDefRecordType) + { + User::LeaveIfError(storage->Delete(ids[i])); + } + else + { + ++keptElements; + } } } + gMsg->Msg(_L("Kept %d elements intact (KeepGenerics option == %d"), keptElements, gKeepGenerics); TUint32 aErrorId; err = storage->CommitTransaction(aErrorId); @@ -690,6 +701,10 @@ return !gProcessingSuccessful; } +TBool MatchArg(const TDesC& aArg, const TDesC& aOpt) + { + return aArg.Left(aOpt.Length()).CompareF(aOpt) == 0; + } TInt ParseCommandLineL(TBool &aDebugOn, TBool &aOverWrite, TBool &aForceXMLProcessing, TDes &aIn, TDes &aOut, TDes &aInPref) /** Parse the command line for any overriding settings from exe command line @@ -734,14 +749,14 @@ // CED will report all the failures on the end, unlike success in all the cases except missing cfg file // Switch introduced because of high impact on test results and to avoid BC break - if ( arg.FindF(_L("-V")) != KErrNotFound ) + if ( MatchArg(arg, _L("-V")) ) { gValidityChecking = ETrue; continue; } //Display help - if ( arg.FindF(_L("-H")) != KErrNotFound ) + if ( MatchArg(arg, _L("-H")) ) { HelpDump(); CleanupStack::Pop(pCmd); @@ -750,36 +765,50 @@ } // Append database switch - if ( arg.FindF(_L("-A")) != KErrNotFound ) + if ( MatchArg(arg, _L("-A")) ) { aOverWrite = EFalse; continue; } // Debug switch - if ( arg.FindF(_L("-D")) != KErrNotFound ) + if ( MatchArg(arg, _L("-D")) ) { aDebugOn = ETrue; continue; } // Debug switch - if ( arg.FindF(_L("-M")) != KErrNotFound ) + if ( MatchArg(arg, _L("-M")) ) { aInPref = pCmd->Arg(++i); continue; } + // Keep generics switch + if ( MatchArg(arg, _L("-KG")) ) + { + gKeepGenerics = ETrue; + continue; + } + + // Zap generics switch + if ( MatchArg(arg, _L("-ZG")) ) + { + gKeepGenerics = EFalse; + continue; + } + // Presence of invalid table entry links // will not cause an error - if ( arg.FindF(_L("-F")) != KErrNotFound ) + if ( MatchArg(arg, _L("-F")) ) { aForceXMLProcessing = ETrue; continue; } // Specification of an input file - if ( arg.FindF(_L("-I")) != KErrNotFound ) + if ( MatchArg(arg, _L("-I")) ) { if( i != pCmd->Count()-1 ) { @@ -800,7 +829,7 @@ } } // Specification of an output file - if ( arg.FindF(_L("-O")) != KErrNotFound ) + if ( MatchArg(arg, _L("-O")) ) { if( i != pCmd->Count()-1 ) { @@ -823,7 +852,7 @@ // This must be specified on the tools2 platform. TBuf<16> databaseVersion; - if ( arg.FindF(_L("-B")) != KErrNotFound ) + if ( MatchArg(arg, _L("-B")) ) { if( i != pCmd->Count()-1 ) { @@ -875,7 +904,7 @@ if ( !bInFound ) { RFs fs; - fs.Connect(); + User::LeaveIfError(fs.Connect()); CleanupClosePushL(fs); TUint dummy; @@ -929,6 +958,8 @@ gConsole->Printf(_L("\n-v Enables validation of the configuration data while writing to the database.")); gConsole->Printf(_L("\n-i Specifies an input file to CED. Must be either *.xml or *.cfg. Defaults to reading '%S' or '%S'."), &CFG_TARGET, &XML_TARGET); gConsole->Printf(_L("\n-o Specifies an output file for CED to log to. Defaults to '%S'."), &LOG_TARGET); + gConsole->Printf(_L("\n-kg Keep existing generic-record elements (default)")); + gConsole->Printf(_L("\n-zg Zap all existing elements including generics (unless appending)")); #ifdef __TOOLS2__ gConsole->Printf(_L("\n-b Specifies the binary output should be compatible with this Symbian OS version.\n")); #endif diff -r 34fc115b8742 -r 41cc8e7ff496 commsfwtools/preparedefaultcommsdatabase/Tools/ced/te_ced/group/te_cedsuite.iby --- a/commsfwtools/preparedefaultcommsdatabase/Tools/ced/te_ced/group/te_cedsuite.iby Fri Jun 11 14:52:21 2010 +0300 +++ b/commsfwtools/preparedefaultcommsdatabase/Tools/ced/te_ced/group/te_cedsuite.iby Wed Aug 18 10:59:59 2010 +0300 @@ -20,19 +20,19 @@ #include -file=ABI_DIR\BUILD_DIR\te_cedSuite.exe sys\bin\te_cedSuite.exe +data=ABI_DIR\BUILD_DIR\te_cedSuite.exe sys\bin\te_cedSuite.exe data=EPOCROOT##Epoc32\winscw\c\TestData\configs\te_cedSuite.ini TestData\configs\te_cedSuite.ini data=EPOCROOT##Epoc32\winscw\c\TestData\scripts\te_cedSuite.script TestData\Scripts\te_cedSuite.Script - +data=EPOCROOT##epoc32\winscw\c\testdata\scripts\te_cedtest.script testdata\scripts\te_cedtest.script -data=EPOCROOT##Epoc32\winscw\c\TestData\configs\te_ced_reference_table01.cfg TestData\configs\te_ced_reference_table01.cfg -data=EPOCROOT##Epoc32\winscw\c\TestData\configs\te_ced_reference_table01.xml TestData\configs\te_ced_reference_table01.xml -data=EPOCROOT##Epoc32\winscw\c\TestData\configs\te_ced_reference_table01_all.cfg TestData\configs\te_ced_reference_table01_all.cfg -data=EPOCROOT##Epoc32\winscw\c\TestData\configs\te_ced_reference_table01_IAP_append.cfg TestData\configs\te_ced_reference_table01_IAP_append.cfg -data=EPOCROOT##Epoc32\winscw\c\TestData\configs\te_ced_reference_table01_IAP_append.xml TestData\configs\te_ced_reference_table01_IAP_append.xml -data=EPOCROOT##Epoc32\winscw\c\TestData\configs\te_ced_reference_table01_IAP_append_tricky.xml TestData\configs\te_ced_reference_table01_IAP_append_tricky.xml -data=EPOCROOT##Epoc32\winscw\c\TestData\configs\te_ced_reference_table01_IAP_append02.cfg TestData\configs\configs/te_ced_reference_table01_IAP_append02.cfg -data=EPOCROOT##Epoc32\winscw\c\TestData\configs\te_ced_reference_table02.cfg TestData\configs\te_ced_reference_table02.cfg +data=EPOCROOT##Epoc32\release\winscw\udeb\z\TestData\configs\te_ced_reference_table01.cfg TestData\configs\te_ced_reference_table01.cfg +data=EPOCROOT##Epoc32\release\winscw\udeb\z\TestData\configs\te_ced_reference_table01.xml TestData\configs\te_ced_reference_table01.xml +data=EPOCROOT##Epoc32\release\winscw\udeb\z\TestData\configs\te_ced_reference_table01_all.cfg TestData\configs\te_ced_reference_table01_all.cfg +data=EPOCROOT##Epoc32\release\winscw\udeb\z\TestData\configs\te_ced_reference_table01_IAP_append.cfg TestData\configs\te_ced_reference_table01_IAP_append.cfg +data=EPOCROOT##Epoc32\release\winscw\udeb\z\TestData\configs\te_ced_reference_table01_IAP_append.xml TestData\configs\te_ced_reference_table01_IAP_append.xml +data=EPOCROOT##Epoc32\release\winscw\udeb\z\TestData\configs\te_ced_reference_table01_IAP_append_tricky.xml TestData\configs\te_ced_reference_table01_IAP_append_tricky.xml +data=EPOCROOT##Epoc32\release\winscw\udeb\z\TestData\configs\te_ced_reference_table01_IAP_append02.cfg TestData\configs\configs/te_ced_reference_table01_IAP_append02.cfg +data=EPOCROOT##Epoc32\release\winscw\udeb\z\TestData\configs\te_ced_reference_table02.cfg TestData\configs\te_ced_reference_table02.cfg diff -r 34fc115b8742 -r 41cc8e7ff496 commsfwtools/preparedefaultcommsdatabase/Tools/ceddump/group/_ROHID_ceddump.mmp --- a/commsfwtools/preparedefaultcommsdatabase/Tools/ceddump/group/_ROHID_ceddump.mmp Fri Jun 11 14:52:21 2010 +0300 +++ b/commsfwtools/preparedefaultcommsdatabase/Tools/ceddump/group/_ROHID_ceddump.mmp Wed Aug 18 10:59:59 2010 +0300 @@ -43,6 +43,7 @@ USERINCLUDE ../../ced/inc LIBRARY euser.lib efsrv.lib bafl.lib commsdat.lib +LIBRARY centralrepository.lib CAPABILITY ALL -Tcb diff -r 34fc115b8742 -r 41cc8e7ff496 commsfwtools/preparedefaultcommsdatabase/Tools/ceddump/group/ceddump.mmp --- a/commsfwtools/preparedefaultcommsdatabase/Tools/ceddump/group/ceddump.mmp Fri Jun 11 14:52:21 2010 +0300 +++ b/commsfwtools/preparedefaultcommsdatabase/Tools/ceddump/group/ceddump.mmp Wed Aug 18 10:59:59 2010 +0300 @@ -39,6 +39,7 @@ USERINCLUDE ../../ced/inc LIBRARY euser.lib efsrv.lib bafl.lib commsdat.lib +LIBRARY centralrepository.lib CAPABILITY ALL -Tcb diff -r 34fc115b8742 -r 41cc8e7ff496 commsfwtools/preparedefaultcommsdatabase/Tools/ceddump/inc/ceddumper.h --- a/commsfwtools/preparedefaultcommsdatabase/Tools/ceddump/inc/ceddumper.h Fri Jun 11 14:52:21 2010 +0300 +++ b/commsfwtools/preparedefaultcommsdatabase/Tools/ceddump/inc/ceddumper.h Wed Aug 18 10:59:59 2010 +0300 @@ -26,6 +26,7 @@ #include +#include #include "filedump.h" #include "ceddumpglobals.h" @@ -50,6 +51,8 @@ #define TRUE_VAL _S("TRUE") #define FALSE_VAL _S("FALSE") +typedef RArray RRecordInfoArray; +typedef TBuf TGenericTableName; class CCedDumper : public CBase { @@ -93,6 +96,12 @@ //this function doesn't need to be modified. void ResolveCommsDatTableNameVariant_to_CommdbTableNameVariant(RBuf& aCommsdatTableName); + void ListGenericTablesL(); + void DumpGenericTablesL(); + void ConvertFieldTypeL(TInt aFieldType, TDes &aConvertedFieldType); + void ConvertFieldAttributeL(TInt aFieldAttribute, TDes &aConvertedFieldAttribute); + TBool WriteFieldValueL(CMDBGenericRecord* aRecord, const TDesC& aFieldName); + private: CMDBSession* iDbSession; // Session to connect to CenRep CMDBRecordSetBase *iTable; //To get the Record type @@ -117,6 +126,11 @@ // SYMBIAN_NETWORKING_3GPPDEFAULTQOS TBool iUseHexFormat; TBool iROHIDSupport; + CRepository* iRepository; + + RArray iGenericTableIds; + RArray iGenericTableNames; + RArray iGenericTableFields; }; #endif diff -r 34fc115b8742 -r 41cc8e7ff496 commsfwtools/preparedefaultcommsdatabase/Tools/ceddump/src/ceddumper.cpp --- a/commsfwtools/preparedefaultcommsdatabase/Tools/ceddump/src/ceddumper.cpp Fri Jun 11 14:52:21 2010 +0300 +++ b/commsfwtools/preparedefaultcommsdatabase/Tools/ceddump/src/ceddumper.cpp Wed Aug 18 10:59:59 2010 +0300 @@ -55,6 +55,8 @@ #define KLinkSeparator _L(".") #define TableNameTag _L("Table") +const TUid KCommsDatUid = {0xcccccc00}; + const TText* const gAtttibutesArray[]= { Hidden, @@ -66,7 +68,16 @@ CCedDumper::~CCedDumper() { - delete iFileDumper; + iGenericTableIds.Close(); + iGenericTableNames.Close(); + for(TInt i=0; i tempTable; @@ -2181,3 +2195,224 @@ } #endif //SYMBIAN_NETWORKING_3GPPDEFAULTQOS + +void CCedDumper::ListGenericTablesL() + { + TUint32 KMaskForNames = 0x007FFFFF; + TUint32 KKeyForNames = KCDMaskShowFieldType | KCDMaskShowRecordId; + + + RArray tableIds; + iRepository->FindL(KKeyForNames, KMaskForNames, tableIds); + for(TInt i=0; i= KCDInitialUDefRecordType && + tableIds[i] <= KCDLastUDefRecordType) + { + TBuf name; + iRepository->Get(tableIds[i], name); + iGenericTableIds.Append(tableIds[i]); + iGenericTableNames.Append(name); + + RRecordInfoArray recordInfoArray; + + RArray fields; + TUint32 KMaskForFields = 0xFF80FFFF; + TUint32 tableId = tableIds[i]; + iRepository->FindL(tableIds[i], KMaskForFields, fields); + for(TInt j=0; j package(ptr); + + iRepository->Get(fields[j], package); + + recordInfoArray.Append(ptr); + } + iGenericTableFields.Append(recordInfoArray); + fields.Close(); + } + + } + + tableIds.Close(); + } + +void CCedDumper::ConvertFieldTypeL(TInt aFieldType, TDes &aConvertedFieldType) + { + switch(aFieldType) + { + case EText: + aConvertedFieldType.Copy(_L("EText")); + break; + case EDesC8: + aConvertedFieldType.Copy(_L("EDesC8")); + break; + case EUint32: + aConvertedFieldType.Copy(_L("EUint32")); + break; + case EInt: + aConvertedFieldType.Copy(_L("EInt")); + break; + case EBool: + aConvertedFieldType.Copy(_L("EBool")); + break; + case EMedText: + aConvertedFieldType.Copy(_L("EMedText")); + break; + case ELongText: + aConvertedFieldType.Copy(_L("ELongText")); + break; + case ELink: + aConvertedFieldType.Copy(_L("ELink")); + break; + default: + User::Leave(KErrArgument); + } + + } + +void CCedDumper::ConvertFieldAttributeL(TInt aFieldAttribute, TDes &aConvertedFieldAttribute) + { + switch(aFieldAttribute) + { + case ENoAttrs: + aConvertedFieldAttribute.Copy(_L("ENoAttrs")); + break; + case ENotNull: + aConvertedFieldAttribute.Copy(_L("ENotNull")); + break; + default: + User::Leave(KErrArgument); + } + } + +void CCedDumper::DumpGenericTablesL() + { + + for(TInt i = 0; i< iGenericTableIds.Count(); i++) + { + TUint32 tableId = iGenericTableIds[i] & KCDMaskShowRecordType; + + CMDBRecordSet* recordSet = new (ELeave) CMDBRecordSet(tableId); + CleanupStack::PushL(recordSet); + + + iFileDumper->WriteTableHeader(iGenericTableNames[i]); + + //First print out table declaration + if(iGenericTableFields[i].Count()>0) + { + iFileDumper->WriteSectionHeader(-2); + _LIT(KFieldStructure, "FIELDSTRUCTURE"); + _LIT(KFormat, "%08x,%S,%S,%S"); + TPtrC ptrFieldStructure(KFieldStructure); + for(TInt f = 0; f< iGenericTableFields[i].Count(); f++) + { + // line will hold sth like 00120000,EText,ENotNull,SomeName + // its total length is: + // hex id : 8 chars + // type : max 9 chars + // attribute: max 8 chars + // + TBuf line; + // type: max 9 chars + TBuf<9> fieldType, fieldAttribute; + ConvertFieldTypeL(iGenericTableFields[i][f].iValType, fieldType); + ConvertFieldAttributeL(iGenericTableFields[i][f].iTypeAttr, fieldAttribute); + line.Format(KFormat, iGenericTableFields[i][f].iTypeId, &fieldType, &fieldAttribute ,&(iGenericTableFields[i][f].iTypeName)); + TPtrC ptrFieldLine(line); + iFileDumper->WriteColumnValue(ptrFieldStructure, ptrFieldLine); + } + iFileDumper->WriteSectionFooter(-2); + } + + TRAPD(err, recordSet->LoadL(*iDbSession)); + if(err!= KErrNotFound) + { + User::LeaveIfError(err); + } + + for(TInt j = 0; jiRecords.Count();j++) + { + iFileDumper->WriteSectionHeader(recordSet->iRecords[j]->RecordId()); + TInt noOfFields(0); + for(TInt k = 0; k < iGenericTableFields[i].Count(); k++) + { + SGenericRecordTypeInfo recordTypeInfo = iGenericTableFields[i][k]; + if(WriteFieldValueL(reinterpret_cast(recordSet->iRecords[j]), iGenericTableFields[i][k].iTypeName)) + { + noOfFields++; + } + } + iFileDumper->WriteFieldCount(noOfFields); + iFileDumper->WriteSectionFooter(recordSet->iRecords[j]->RecordId()); + } + CleanupStack::PopAndDestroy(recordSet); + } + } + +TBool CCedDumper::WriteFieldValueL(CMDBGenericRecord* aRecord, const TDesC& aFieldName) + { + TInt valType; + TPtrC ptrFieldName(aFieldName); + TBuf<20> bufVal; + CMDBElement* element = aRecord->GetFieldByNameL(aFieldName, valType); + if(element->IsNull()) + { + return EFalse; + } + switch(valType) + { + case EText: + case EMedText: + case ELongText: + { + CMDBField* textField = static_cast *>(element); + TPtrC ptrTextField(*textField); + iFileDumper->WriteColumnValue(ptrFieldName, ptrTextField); + break; + } + case EDesC8: + { + CMDBField* text8Field = static_cast *>(element); + TPtrC8 ptrText8Field(*text8Field); + iFileDumper->WriteColumnValue(ptrFieldName, reinterpret_cast(ptrText8Field)); + break; + } + case EInt: + { + TInt intVal; + CMDBField* intField = static_cast *>(element); + intVal = *intField; + bufVal.Num(intVal); + TPtrC ptrIntField(bufVal.MidTPtr(0)); + iFileDumper->WriteColumnValue(ptrFieldName, ptrIntField); + break; + } + case EBool: + { + TBool boolVal; + CMDBField* boolField = static_cast *>(element); + boolVal = *boolField; + TPtrC ptrBoolField(boolVal?TRUE_VAL:FALSE_VAL); + iFileDumper->WriteColumnValue(ptrFieldName, ptrBoolField); + break; + } + case EUint32: + case ELink: + { + TInt int32Val; + CMDBField* int32Field = static_cast *>(element); + int32Val = *int32Field; + bufVal.Num(int32Val); + TPtrC ptrInt32Field(bufVal.MidTPtr(0)); + iFileDumper->WriteColumnValue(ptrFieldName, ptrInt32Field); + break; + } + default: + User::Leave(KErrArgument); + } + return ETrue; + } diff -r 34fc115b8742 -r 41cc8e7ff496 commsfwtools/preparedefaultcommsdatabase/Tools/ceddump/src/filedump.cpp --- a/commsfwtools/preparedefaultcommsdatabase/Tools/ceddump/src/filedump.cpp Fri Jun 11 14:52:21 2010 +0300 +++ b/commsfwtools/preparedefaultcommsdatabase/Tools/ceddump/src/filedump.cpp Wed Aug 18 10:59:59 2010 +0300 @@ -99,6 +99,9 @@ case 0: iBuffer.Copy(_L("ADD_TEMPLATE\r\n")); break; + case -2: + iBuffer.Copy(_L("ADD_DEFINITION\r\n")); + break; default: iBuffer.Format(_L("ADD_SECTION\r\n# COMMDB_ID = %d\r\n"), aCommDbId); @@ -210,6 +213,10 @@ { iBuffer.Copy(_L("END_TEMPLATE\r\n\r\n")); } + else if (aCommDbId == -2) + { + iBuffer.Copy(_L("END_DEFINITION\r\n\r\n")); + } else { iBuffer.Copy(_L("END_ADD\r\n\r\n")); diff -r 34fc115b8742 -r 41cc8e7ff496 commsfwtools/preparedefaultcommsdatabase/src/CommsDatSessionImpl.cpp --- a/commsfwtools/preparedefaultcommsdatabase/src/CommsDatSessionImpl.cpp Fri Jun 11 14:52:21 2010 +0300 +++ b/commsfwtools/preparedefaultcommsdatabase/src/CommsDatSessionImpl.cpp Wed Aug 18 10:59:59 2010 +0300 @@ -157,8 +157,13 @@ return KErrNone; } - __FLOG_STATIC1(KLogComponent, KCDInfoLog, _L("*** CMDBSessionImpl::ConstructL() constructing session object object <%08x>"), this); - +#ifdef __FLOG_ACTIVE + RThread self; + TBuf name; + self.FullName(name); + __FLOG_STATIC2(KLogComponent, KCDInfoLog, _L("*** CMDBSessionImpl::ConstructL() constructing session object <%08x> in thread \"%S\""), this, &name); +#endif + EstablishVersionL(aRequiredVersion); // Connect to the repository @@ -187,6 +192,7 @@ @internalComponent */ { + __FLOG_STATIC1(KLogComponent, KCDInfoLog, _L("*** CMDBSessionImpl::Close() closing session object <%08x>"), this); #ifndef __TOOLS2__ TRAPD( err, diff -r 34fc115b8742 -r 41cc8e7ff496 commsfwtools/preparedefaultcommsdatabase/src/MetaDatabaseVisitor.cpp --- a/commsfwtools/preparedefaultcommsdatabase/src/MetaDatabaseVisitor.cpp Fri Jun 11 14:52:21 2010 +0300 +++ b/commsfwtools/preparedefaultcommsdatabase/src/MetaDatabaseVisitor.cpp Wed Aug 18 10:59:59 2010 +0300 @@ -235,7 +235,7 @@ { if ( KErrNotFound == fieldIds.Find(aRecordIds[i], CompareByRecordId) ) { - aCandidateIds.Append(aRecordIds[i]); + aCandidateIds.AppendL(aRecordIds[i]); } } CleanupStack::PopAndDestroy(&fieldIds); diff -r 34fc115b8742 -r 41cc8e7ff496 commsfwutils/commsbufs/mbufmgr/src/mb_chn.cpp --- a/commsfwutils/commsbufs/mbufmgr/src/mb_chn.cpp Fri Jun 11 14:52:21 2010 +0300 +++ b/commsfwutils/commsbufs/mbufmgr/src/mb_chn.cpp Wed Aug 18 10:59:59 2010 +0300 @@ -281,7 +281,7 @@ if(First()) { newChain.iNext = First()->Pool()->Pond().Alloc(len + aHdrReserve, 0, KMaxTInt); - err = iNext ? KErrNone : KErrNoMBufs; + err = newChain.iNext ? KErrNone : KErrNoMBufs; } else { diff -r 34fc115b8742 -r 41cc8e7ff496 commsprocess/commsrootserverconfig/CapTestFw_Configurator/common/Te_Cap_Configurator.IBY --- a/commsprocess/commsrootserverconfig/CapTestFw_Configurator/common/Te_Cap_Configurator.IBY Fri Jun 11 14:52:21 2010 +0300 +++ b/commsprocess/commsrootserverconfig/CapTestFw_Configurator/common/Te_Cap_Configurator.IBY Wed Aug 18 10:59:59 2010 +0300 @@ -18,6 +18,10 @@ #ifndef __Cap_PARAM_SVR_SUITENAME_IBY__ #define __Cap_PARAM_SVR_SUITENAME_IBY__ -file=ABI_DIR\DEBUG_DIR\Cap_PARAM_SVR_SUITENAME.exe System\bin\Cap_PARAM_SVR_SUITENAME.exe - +data=ABI_DIR\DEBUG_DIR\Cap_PARAM_SVR_SUITENAME.exe System\bin\Cap_PARAM_SVR_SUITENAME.exe +data=EPOCROOT##epoc32\release\winscw\udeb\z\TestData\Scripts\Te_cap_configurator.script TestData\Scripts\Te_cap_configurator.script +data=EPOCROOT##epoc32\release\winscw\udeb\z\TestData\Scripts\Cap_00000000_Te_Cap_ConfiguratorSub.script TestData\Scripts\Cap_00000000_Te_Cap_ConfiguratorSub.script +data=EPOCROOT##epoc32\release\winscw\udeb\z\TestData\Scripts\Cap_00000004_Te_Cap_ConfiguratorSub.script TestData\Scripts\Cap_00000004_Te_Cap_ConfiguratorSub.script +data=EPOCROOT##epoc32\release\winscw\udeb\z\TestData\Scripts\Cap_00000400_Te_Cap_ConfiguratorSub.script TestData\Scripts\Cap_00000400_Te_Cap_ConfiguratorSub.script +data=EPOCROOT##epoc32\release\winscw\udeb\z\TestData\Scripts\Cap_00000404_Te_Cap_ConfiguratorSub.script TestData\Scripts\Cap_00000404_Te_Cap_ConfiguratorSub.script #endif diff -r 34fc115b8742 -r 41cc8e7ff496 commsprocess/commsrootserverconfig/Te_Configurator/util/src/configloader.cpp --- a/commsprocess/commsrootserverconfig/Te_Configurator/util/src/configloader.cpp Fri Jun 11 14:52:21 2010 +0300 +++ b/commsprocess/commsrootserverconfig/Te_Configurator/util/src/configloader.cpp Wed Aug 18 10:59:59 2010 +0300 @@ -437,7 +437,7 @@ // Leave with last seen error, if any if(err!=KErrNone) { - User::Leave(err); +// User::Leave(err); } } diff -r 34fc115b8742 -r 41cc8e7ff496 datacommsserver/esockserver/CoreProviders/src/coremcpractivities.cpp --- a/datacommsserver/esockserver/CoreProviders/src/coremcpractivities.cpp Fri Jun 11 14:52:21 2010 +0300 +++ b/datacommsserver/esockserver/CoreProviders/src/coremcpractivities.cpp Wed Aug 18 10:59:59 2010 +0300 @@ -689,7 +689,7 @@ CSelectNextLayerActivity& ac = static_cast(*iContext.iNodeActivity); TCFSelector::TSelectComplete& msg = message_cast(iContext.iMessage); - ac.iSelectCompleteMessages.Append(msg); + ac.iSelectCompleteMessages.AppendL(msg); } EXPORT_DEFINE_SMELEMENT(CSelectNextLayerActivity::TJoinTierManager, NetStateMachine::MStateTransition, CSelectNextLayerActivity::TContext) diff -r 34fc115b8742 -r 41cc8e7ff496 datacommsserver/esockserver/core_states/ss_corepractivities.cpp --- a/datacommsserver/esockserver/core_states/ss_corepractivities.cpp Fri Jun 11 14:52:21 2010 +0300 +++ b/datacommsserver/esockserver/core_states/ss_corepractivities.cpp Wed Aug 18 10:59:59 2010 +0300 @@ -1113,7 +1113,7 @@ { __ASSERT_DEBUG(aDataClient, User::Panic(KCorePrPanic, KPanicDataClient)); __ASSERT_DEBUG(iSuccessfulDataClients.Find(aDataClient) == KErrNotFound, User::Panic(KCorePrPanic, KPanicIncorrectState)); - iSuccessfulDataClients.Append(aDataClient); + iSuccessfulDataClients.AppendL(aDataClient); } void CBindToActivity::RemoveClientFromSuccessful(Messages::RNodeInterface* aDataClient) diff -r 34fc115b8742 -r 41cc8e7ff496 datacommsserver/esockserver/core_states/ss_coreprstates.cpp --- a/datacommsserver/esockserver/core_states/ss_coreprstates.cpp Fri Jun 11 14:52:21 2010 +0300 +++ b/datacommsserver/esockserver/core_states/ss_coreprstates.cpp Wed Aug 18 10:59:59 2010 +0300 @@ -540,7 +540,7 @@ } else { - __CFLOG_VAR((KCoreProviderStatesTag, KCoreProviderStatesSubTag, _L8("TSendDestroyToSendingDataClient::DoL - client not destroyed, because it is started or has been requested again"))); + __CFLOG_VAR((KCoreProviderStatesTag, KCoreProviderStatesSubTag, _L8("TSendDestroyToSendingDataClient::DoL - client not destroyed, because it is started or has been requested again [flags %x]"), iContext.iPeer->Flags())); TSendDataClientIdleIfNoClients(iContext).DoL(); } } diff -r 34fc115b8742 -r 41cc8e7ff496 datacommsserver/esockserver/etc/esock_dip.cmi --- a/datacommsserver/esockserver/etc/esock_dip.cmi Fri Jun 11 14:52:21 2010 +0300 +++ b/datacommsserver/esockserver/etc/esock_dip.cmi Wed Aug 18 10:59:59 2010 +0300 @@ -11,7 +11,7 @@ ScaledStartupState=0x3040 HeapOption=ENewHeap MinHeapSize=256 -MaxHeapSize=524288 +MaxHeapSize=5242880 SystemCritical=0 SystemCriticalAfterInit=1 Binding0=ESock_DIP:1,ESock_Main:0,ECustom,15,15 diff -r 34fc115b8742 -r 41cc8e7ff496 datacommsserver/esockserver/inc/ss_connstates.h --- a/datacommsserver/esockserver/inc/ss_connstates.h Fri Jun 11 14:52:21 2010 +0300 +++ b/datacommsserver/esockserver/inc/ss_connstates.h Wed Aug 18 10:59:59 2010 +0300 @@ -373,6 +373,7 @@ virtual ~CStartAttachActivity(); virtual TBool Next(MeshMachine::TNodeContextBase& aContext); + virtual void Cancel(MeshMachine::TNodeContextBase& aContext); void ReturnInterfacePtrL(CoreActivities::ABindingActivity*& aInterface) { diff -r 34fc115b8742 -r 41cc8e7ff496 datacommsserver/esockserver/ssock/ss_conn.cpp --- a/datacommsserver/esockserver/ssock/ss_conn.cpp Fri Jun 11 14:52:21 2010 +0300 +++ b/datacommsserver/esockserver/ssock/ss_conn.cpp Wed Aug 18 10:59:59 2010 +0300 @@ -267,8 +267,7 @@ // Handshake a shutdown of AllInterfaceNotificationWorker (send TCancel, await TError). NODEACTIVITY_ENTRY(ConnStates::KCancelAllInterfaceWorker, ConnStates::TCancelAllInterfaceNotificationWorker, TAwaitingMessageState, MeshMachine::TNoTag) THROUGH_NODEACTIVITY_ENTRY(KNoTag, ConnStates::TCancelAllLegacyRMessage2Activities, ConnStates::TNoTagBlockedByLegacyRMessage2Activities) - NODEACTIVITY_ENTRY(KNoTag, ConnStates::TProcessClose, TECABState, MeshMachine::TNoTag) - //TDestroyAwaitingLeaveCompleteLoop loops back to its own triple if more SPs + THROUGH_NODEACTIVITY_ENTRY(KNoTag, ConnStates::TProcessClose, MeshMachine::TNoTag) NODEACTIVITY_ENTRY(KNoTag, MeshMachine::TDoNothing, TECABState, CoreActivities::CDestroyActivity::TNoTagOrNoTagBackwards) LAST_NODEACTIVITY_ENTRY(KNoTag, MeshMachine::TDoNothing) NODEACTIVITY_END() diff -r 34fc115b8742 -r 41cc8e7ff496 datacommsserver/esockserver/ssock/ss_connselect.cpp --- a/datacommsserver/esockserver/ssock/ss_connselect.cpp Fri Jun 11 14:52:21 2010 +0300 +++ b/datacommsserver/esockserver/ssock/ss_connselect.cpp Wed Aug 18 10:59:59 2010 +0300 @@ -131,11 +131,10 @@ { RNodeInterface::OpenPostMessageClose(Id(), aSender, TEChild::TLeft().CRef()); iActiveRequests[idx].SetFlags(TClientType::ELeaving); - } - - if (aSender == iTopMcprId) - { - iTopMcprId.SetNull(); + if (aSender == iTopMcprId) + { + iTopMcprId.SetNull(); + } } } SelectionError(aSender, error.iValue); @@ -260,9 +259,18 @@ __ASSERT_DEBUG(!iDestroying, User::Panic(KSpecAssert_ESockSSockscnslc, 17)); iDestroying = ETrue; - //We are not ready to destruct ourselves yet, waiting for TErrors if (iActiveRequests.Count()!=0) { + /* + Unfortunatelly today the parent of 'this' (CConnection or CFlowRequest) doesn't handle ownership + with 'this' very well and it may (in cancelation scenarios it will) bail out right after posting TDestroy + to 'this'. This is not good because the TSelect protocol carries data owned by the parent (selection preferences) + and MCPRs may attempt to access them after the owner/parent has gone away. We're making it illegal for the + parent to post TDestroy before all requests are completed. Consequently before posting TDestroy the parent + must make sure the selection is complete by awaiting response to the TSelect protocol. If it wants to + terminate selection it _must_ send TCancel (and await responses) before posting TDestroy. + */ + __ASSERT_DEBUG(EFalse, User::Panic(KSpecAssert_ESockSSockscnslc, 44)); return; } diff -r 34fc115b8742 -r 41cc8e7ff496 datacommsserver/esockserver/ssock/ss_connstates.cpp --- a/datacommsserver/esockserver/ssock/ss_connstates.cpp Fri Jun 11 14:52:21 2010 +0300 +++ b/datacommsserver/esockserver/ssock/ss_connstates.cpp Wed Aug 18 10:59:59 2010 +0300 @@ -927,6 +927,20 @@ return nextRet; } +void ConnActivities::CStartAttachActivity::Cancel(MeshMachine::TNodeContextBase& aContext) + { + if (!iCSR.IsNull() && iCSR == PostedToNodeId()) + {//iCSR is a bit akward as it isn't stored in the Node's client array. MeshMachine auto-cancelling refuses to auto-forward TCancels + //to nodes it can't verify they are alive. CStartAttachActivity can warrant iCSR is alive. + RClientInterface::OpenPostMessageClose(TNodeCtxId(ActivityId(), iNode.Id()), PostedToNodeId(), TEBase::TCancel().CRef()); + SetError(KErrCancel); + } + else + { + CESockClientActivityBase::Cancel(aContext); + } + } + DEFINE_SMELEMENT(CStartAttachActivity::TNoTagOrStartPrefsSetTag, NetStateMachine::MStateFork, ConnStates::TContext) TInt CStartAttachActivity::TNoTagOrStartPrefsSetTag::TransitionTag() diff -r 34fc115b8742 -r 41cc8e7ff496 datacommsserver/esockserver/ssock/ss_intsock.cpp --- a/datacommsserver/esockserver/ssock/ss_intsock.cpp Fri Jun 11 14:52:21 2010 +0300 +++ b/datacommsserver/esockserver/ssock/ss_intsock.cpp Wed Aug 18 10:59:59 2010 +0300 @@ -2012,7 +2012,14 @@ // __ASSERT_DEBUG(State()!=ESStateCreated,Panic(EBadStateUpCall)); // no longer forced into shuttingdown state upon half-close __ASSERT_DEBUG(State()!=ESStateClosing,Panic(EBadStateUpCall)); __ASSERT_DEBUG(!(iBlockedOperations&EReadStopped),Panic(EBadStateUpCall)); - __ASSERT_DEBUG(State()!=ESStateError,Panic(EBadStateUpCall)); + + // The socket can now be errored from the control side as well as from the protocol below. Hence, the socket + // can receive an upcall while in the errored state as the protocol is unaware of the socket errored state. + // Specific scenario is that TransportFlowShim receives a DataClientStop(KErrForceDisconnect), places the socket + // in the errored state and, subsequently, the TCP/IP stack issues NewData(KNewDataEndofData) as a result of an + // incoming FIN. + //__ASSERT_DEBUG(State()!=ESStateError,Panic(EBadStateUpCall)); + __ASSERT_DEBUG(State()!=ESStateDisconnected,Panic(EBadStateUpCall)); // zero is used in v1.5 to resume after reneging __ASSERT_DEBUG(aCount>0,Panic(EBadDataCount)); @@ -2056,7 +2063,8 @@ __ASSERT_DEBUG(State()!=ESStateCreated,Panic(EBadStateUpCall)); __ASSERT_DEBUG(State()!=ESStateClosing,Panic(EBadStateUpCall)); __ASSERT_DEBUG(State()!=ESStateShuttingDown,Panic(EBadStateUpCall)); - __ASSERT_DEBUG(State()!=ESStateError,Panic(EBadStateUpCall)); + // See comment in ASocket::NewData() as to why the errored state is valid here. + //__ASSERT_DEBUG(State()!=ESStateError,Panic(EBadStateUpCall)); __ASSERT_DEBUG(State()!=ESStateDisconnected,Panic(EBadStateUpCall)); TBool writeflowedoff = iBlockedOperations&EWriteFlowedOff; @@ -2080,7 +2088,11 @@ //__ASSERT_DEBUG(State()==ESStateOpeningActive,Panic(EBadStateUpCall)); if (IsConnectionOriented()) { - SetState(ESStateConnected); + // See comment in ASocket::NewData() as to why the errored state is valid here. + if (State() != ESStateError) + { + SetState(ESStateConnected); + } //__ASSERT_DEBUG(IsBlockedConnect(), Panic(EUnexpectedConnect)); // assertion is invalid because operation could have been cancelled MarkT CompleteConnect(KErrNone); @@ -2112,7 +2124,8 @@ Called from protocol to indicate that a passive open has completed */ { - __ASSERT_DEBUG(State()==ESStateOpeningPassive,Panic(EBadStateUpCall)); + // See comment in ASocket::NewData() as to why the errored state is valid here. + __ASSERT_DEBUG(State()==ESStateOpeningPassive || State()==ESStateError,Panic(EBadStateUpCall)); __ASSERT_ALWAYS(iAcceptQ, Panic(ENotListeningSocket)); __ASSERT_ALWAYS(iAcceptQ->Count()Length(), Panic(EAcceptQueFull)); @@ -2296,11 +2309,15 @@ */ { __ASSERT_ALWAYS(IsConnectionOriented(),Panic(EBadDisconnect)); - __ASSERT_DEBUG(State()==ESStateConnected || State()==ESStateShuttingDown,Panic(EBadStateUpCall)); + // See comment in ASocket::NewData() as to why the errored state is valid here. + __ASSERT_DEBUG(State()==ESStateConnected || State()==ESStateShuttingDown || State()==ESStateError, Panic(EBadStateUpCall)); iDisconnectDataError=KErrNone; - SetState(CanReconnect() ? ESStateCreated : ESStateDisconnected); + if (State() != ESStateError) + { + SetState(CanReconnect() ? ESStateCreated : ESStateDisconnected); + } CompleteWrite(KErrDisconnected); CompleteRead(KErrDisconnected); CompleteConnect(KErrDisconnected); @@ -2313,7 +2330,8 @@ */ { __ASSERT_DEBUG(IsConnectionOriented(),Panic(EBadDisconnect)); - __ASSERT_DEBUG(State()==ESStateConnected || State()==ESStateShuttingDown,Panic(EBadStateUpCall)); + // See comment in ASocket::NewData() as to why the errored state is valid here. + __ASSERT_DEBUG(State()==ESStateConnected || State()==ESStateShuttingDown || State()==ESStateError,Panic(EBadStateUpCall)); Disconnect(); iDisconnectData=aDisconnectData.Alloc(); diff -r 34fc115b8742 -r 41cc8e7ff496 datacommsserver/esockserver/ssock/ss_sap.cpp --- a/datacommsserver/esockserver/ssock/ss_sap.cpp Fri Jun 11 14:52:21 2010 +0300 +++ b/datacommsserver/esockserver/ssock/ss_sap.cpp Wed Aug 18 10:59:59 2010 +0300 @@ -227,6 +227,10 @@ { SetIdle(); ProcessDCIdleState(); + if(!IdleSent()) + { + LOG( ESockLog::Printf(_L("CNetworkFlow %08x:\tUnbind() - idle not sent"), this) ); + } } } else @@ -255,6 +259,10 @@ if (Idle() && !IdleSent() && !NoBearerGuard()) #endif { + if(Started()) + { + iSubConnectionProvider.PostMessage(Id(), TCFControlProvider::TDataClientGoneDown(KErrConnectionTerminated).CRef()); + } SetIdleSent(); iSubConnectionProvider.PostMessage(Id(), TCFControlProvider::TIdle().CRef()); } diff -r 34fc115b8742 -r 41cc8e7ff496 datacommsserver/esockserver/test/CapTests/RConnServ/Common/Server.csv --- a/datacommsserver/esockserver/test/CapTests/RConnServ/Common/Server.csv Fri Jun 11 14:52:21 2010 +0300 +++ b/datacommsserver/esockserver/test/CapTests/RConnServ/Common/Server.csv Wed Aug 18 10:59:59 2010 +0300 @@ -1,2 +1,2 @@ Name,MajorName,MinorName,BuildName,ListHeaderFile,Panic,SuiteName,SourceDirectory,TemplateDirectory,MessageFile,TemplateFile,Libraries,UserInclude,SystemInclude,BuildOK,ConnectCapability,CapExcept,AllNegative -!ConnectionServer,KES32MajorVersionNumber,KES32MinorVersionNumber,KES32BuildVersionNumber,es_ver.h,TESockPanic,Te_Cap_RConnServ,..\..\CapTestSourceEsock_RConnServ,.,Message.csv,Template.csv,euser.lib c32root.lib commsfw.lib esocksvr.lib insock.lib esock.lib,.\,\epoc32\include,yes,,,1 +!ConnectionServer,KES32MajorVersionNumber,KES32MinorVersionNumber,KES32BuildVersionNumber,es_ver.h,TESockPanic,Te_Cap_RConnServ,..\..\CapTestSourceEsock_RConnServ,.,Message.csv,Template.csv,euser.lib c32root.lib commsfw.lib esocksvr.lib insock.lib esock.lib netmeta.lib,.\,\epoc32\include,yes,,,1 diff -r 34fc115b8742 -r 41cc8e7ff496 datacommsserver/esockserver/test/CapTests/RConnServ/Common/Te_Cap_RConnServ.IBY --- a/datacommsserver/esockserver/test/CapTests/RConnServ/Common/Te_Cap_RConnServ.IBY Fri Jun 11 14:52:21 2010 +0300 +++ b/datacommsserver/esockserver/test/CapTests/RConnServ/Common/Te_Cap_RConnServ.IBY Wed Aug 18 10:59:59 2010 +0300 @@ -18,6 +18,8 @@ #ifndef __Cap_PARAM_SVR_SUITENAME_IBY__ #define __Cap_PARAM_SVR_SUITENAME_IBY__ -file=ABI_DIR\DEBUG_DIR\Cap_PARAM_SVR_SUITENAME.DLL System\bin\Cap_PARAM_SVR_SUITENAME.DLL - +data=ABI_DIR\DEBUG_DIR\PARAM_SVR_SUITENAME.exe Sys\bin\PARAM_SVR_SUITENAME.exe +data=EPOCROOT##epoc32\release\winscw\udeb\z\TestData\Scripts\Te_Cap_RConnServ.script TestData\Scripts\Te_Cap_RConnServ.script +data=EPOCROOT##epoc32\release\winscw\udeb\z\TestData\Scripts\Cap_00000000_RConnServSub.script TestData\Scripts\Cap_00000000_RConnServSub.script +data=EPOCROOT##epoc32\release\winscw\udeb\z\TestData\Scripts\Cap_00002000_RConnServSub.script TestData\Scripts\Cap_00002000_RConnServSub.script #endif diff -r 34fc115b8742 -r 41cc8e7ff496 datacommsserver/esockserver/test/CapTests/Resolver/Common/Te_Cap_RES.IBY --- a/datacommsserver/esockserver/test/CapTests/Resolver/Common/Te_Cap_RES.IBY Fri Jun 11 14:52:21 2010 +0300 +++ b/datacommsserver/esockserver/test/CapTests/Resolver/Common/Te_Cap_RES.IBY Wed Aug 18 10:59:59 2010 +0300 @@ -27,6 +27,6 @@ data=EPOCROOT##epoc32\release\winscw\udeb\z\TestData\Scripts\Cap_00000400_RESSub.script TestData\Scripts\Cap_00000400_RESSub.script data=EPOCROOT##epoc32\release\winscw\udeb\z\TestData\Scripts\Cap_00002000_ReSSub.script TestData\Scripts\Cap_00002000_ResSub.script data=EPOCROOT##epoc32\release\winscw\udeb\z\TestData\Scripts\Cap_00002400_ReSSub.script TestData\Scripts\Cap_00002400_ReSSub.script - +data=EPOCROOT##epoc32\release\winscw\udeb\z\TestData\Scripts\Cap_80000000_RESSub.script TestData\Scripts\Cap_80000000_RESSub.script #endif diff -r 34fc115b8742 -r 41cc8e7ff496 datacommsserver/esockserver/test/CapTests/Socket/Common/Te_Cap_Esock.IBY --- a/datacommsserver/esockserver/test/CapTests/Socket/Common/Te_Cap_Esock.IBY Fri Jun 11 14:52:21 2010 +0300 +++ b/datacommsserver/esockserver/test/CapTests/Socket/Common/Te_Cap_Esock.IBY Wed Aug 18 10:59:59 2010 +0300 @@ -27,6 +27,6 @@ data=EPOCROOT##epoc32\release\winscw\udeb\z\TestData\Scripts\Cap_00000400_EsockSub.script TestData\Scripts\Cap_00000400_EsockSub.script data=EPOCROOT##epoc32\release\winscw\udeb\z\TestData\Scripts\Cap_00002000_EsockSub.script TestData\Scripts\Cap_00002000_EsockSub.script data=EPOCROOT##epoc32\release\winscw\udeb\z\TestData\Scripts\Cap_00002400_EsockSub.script TestData\Scripts\Cap_00002400_EsockSub.script - +data=EPOCROOT##epoc32\release\winscw\udeb\z\TestData\Scripts\Cap_80000000_EsockSub.script TestData\Scripts\Cap_80000000_EsockSub.script #endif diff -r 34fc115b8742 -r 41cc8e7ff496 datacommsserver/esockserver/test/TE_DummyProvider/configs/te_dummyprovider_003.ini --- a/datacommsserver/esockserver/test/TE_DummyProvider/configs/te_dummyprovider_003.ini Fri Jun 11 14:52:21 2010 +0300 +++ b/datacommsserver/esockserver/test/TE_DummyProvider/configs/te_dummyprovider_003.ini Wed Aug 18 10:59:59 2010 +0300 @@ -18,6 +18,9 @@ SNAP=30 Asynch=TRUE +[WaitUntilStuffStucks] +TimeoutInMilliSeconds=600 + [StopConn1] ConnName=Conn1 ConnStopType=EStopNormal diff -r 34fc115b8742 -r 41cc8e7ff496 datacommsserver/esockserver/test/TE_DummyProvider/configs/te_dummyprovider_010.ini --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/datacommsserver/esockserver/test/TE_DummyProvider/configs/te_dummyprovider_010.ini Wed Aug 18 10:59:59 2010 +0300 @@ -0,0 +1,29 @@ +[CreateSockSvr1] +SocketServName=SockSvr1 + +[CreateConn1] +ConnName=Conn1 + +[ConnectSockSvr1] +SocketServName=SockSvr1 + +[OpenConn1] +ConnName=Conn1 +SocketServName=SockSvr1 +ConnType=271069227 + +[StartConn1] +ConnName=Conn1 +SocketServName=SockSvr1 +SNAP=10 +ConnType=271069227 + +[StopConn1] +ConnName=Conn1 +ConnStopType=EStopNormal + +[CloseConn1] +ConnName=Conn1 + +[CloseSockSvr1] +SocketServName=SockSvr1 \ No newline at end of file diff -r 34fc115b8742 -r 41cc8e7ff496 datacommsserver/esockserver/test/TE_DummyProvider/group/TE_DummyProvider.iby --- a/datacommsserver/esockserver/test/TE_DummyProvider/group/TE_DummyProvider.iby Fri Jun 11 14:52:21 2010 +0300 +++ b/datacommsserver/esockserver/test/TE_DummyProvider/group/TE_DummyProvider.iby Wed Aug 18 10:59:59 2010 +0300 @@ -28,6 +28,8 @@ data=EPOCROOT##epoc32\data\z\TestData\scripts\te_dummyprovider_005.script TestData\scripts\te_dummyprovider_005.script data=EPOCROOT##epoc32\data\z\TestData\scripts\te_dummyprovider_006.script TestData\scripts\te_dummyprovider_006.script data=EPOCROOT##epoc32\data\z\TestData\scripts\te_dummyprovider_008.script TestData\scripts\te_dummyprovider_008.script +data=EPOCROOT##epoc32\data\z\TestData\scripts\te_dummyprovider_008.script TestData\scripts\te_dummyprovider_009.script +data=EPOCROOT##epoc32\data\z\TestData\scripts\te_dummyprovider_008.script TestData\scripts\te_dummyprovider_010.script data=EPOCROOT##epoc32\data\z\TestData\scripts\te_dummyprovider_incomingSCPR.script TestData\scripts\te_dummyprovider_incomingSCPR.script data=EPOCROOT##epoc32\data\z\TestData\configs\te_dummyproviders.cfg TestData\configs\te_dummyproviders.cfg @@ -38,5 +40,7 @@ data=EPOCROOT##epoc32\data\z\TestData\configs\te_dummyprovider_005.ini TestData\configs\te_dummyprovider_005.ini data=EPOCROOT##epoc32\data\z\TestData\configs\te_dummyprovider_006.ini TestData\configs\te_dummyprovider_006.ini data=EPOCROOT##epoc32\data\z\TestData\configs\te_dummyprovider_008.ini TestData\configs\te_dummyprovider_008.ini +data=EPOCROOT##epoc32\data\z\TestData\configs\te_dummyprovider_008.ini TestData\configs\te_dummyprovider_009.ini +data=EPOCROOT##epoc32\data\z\TestData\configs\te_dummyprovider_008.ini TestData\configs\te_dummyprovider_010.ini #endif // __TE_DummyProviders_IBY__ diff -r 34fc115b8742 -r 41cc8e7ff496 datacommsserver/esockserver/test/TE_DummyProvider/group/bld.inf --- a/datacommsserver/esockserver/test/TE_DummyProvider/group/bld.inf Fri Jun 11 14:52:21 2010 +0300 +++ b/datacommsserver/esockserver/test/TE_DummyProvider/group/bld.inf Wed Aug 18 10:59:59 2010 +0300 @@ -28,11 +28,11 @@ ../scripts/te_dummyprovider_004.script z:/testdata/scripts/te_dummyprovider_004.script ../scripts/te_dummyprovider_005.script z:/testdata/scripts/te_dummyprovider_005.script ../scripts/te_dummyprovider_006.script z:/testdata/scripts/te_dummyprovider_006.script +../scripts/te_dummyprovider_008.script z:/testdata/scripts/te_dummyprovider_008.script ../scripts/te_dummyprovider_009.script z:/testdata/scripts/te_dummyprovider_009.script +../scripts/te_dummyprovider_010.script z:/testdata/scripts/te_dummyprovider_010.script -../scripts/te_dummyprovider_008.script z:/testdata/scripts/te_dummyprovider_008.script - ../scripts/te_dummyprovider_incomingSCPR.script z:/testdata/scripts/te_dummyprovider_incomingscpr.script ../configs/te_dummyproviders.cfg z:/testdata/configs/te_dummyproviders.cfg ../configs/te_dummyprovider_001.ini z:/testdata/configs/te_dummyprovider_001.ini @@ -41,8 +41,7 @@ ../configs/te_dummyprovider_004.ini z:/testdata/configs/te_dummyprovider_004.ini ../configs/te_dummyprovider_005.ini z:/testdata/configs/te_dummyprovider_005.ini ../configs/te_dummyprovider_006.ini z:/testdata/configs/te_dummyprovider_006.ini +../configs/te_dummyprovider_008.ini z:/testdata/configs/te_dummyprovider_008.ini ../configs/te_dummyprovider_009.ini z:/testdata/configs/te_dummyprovider_009.ini +../configs/te_dummyprovider_010.ini z:/testdata/configs/te_dummyprovider_010.ini ../configs/TE_DummyProvider_ip.tcpip.esk z:/testdata/configs/TE_DummyProvider_ip.tcpip.esk - - -../configs/te_dummyprovider_008.ini z:/testdata/configs/te_dummyprovider_008.ini diff -r 34fc115b8742 -r 41cc8e7ff496 datacommsserver/esockserver/test/TE_DummyProvider/scripts/te_dummyprovider.script --- a/datacommsserver/esockserver/test/TE_DummyProvider/scripts/te_dummyprovider.script Fri Jun 11 14:52:21 2010 +0300 +++ b/datacommsserver/esockserver/test/TE_DummyProvider/scripts/te_dummyprovider.script Wed Aug 18 10:59:59 2010 +0300 @@ -34,6 +34,8 @@ RUN_SCRIPT z:\testdata\scripts\te_dummyprovider_006.script RUN_SCRIPT z:\testdata\scripts\te_dummyprovider_008.script RUN_SCRIPT z:\testdata\scripts\te_dummyprovider_009.script +RUN_SCRIPT z:\testdata\scripts\te_dummyprovider_010.script + RUN_SCRIPT z:\testdata\scripts\te_esock_test_unloadesockForced.script RUN_SCRIPT z:\testdata\scripts\te_esock_test_remove_config_files.script diff -r 34fc115b8742 -r 41cc8e7ff496 datacommsserver/esockserver/test/TE_DummyProvider/scripts/te_dummyprovider_003.script --- a/datacommsserver/esockserver/test/TE_DummyProvider/scripts/te_dummyprovider_003.script Fri Jun 11 14:52:21 2010 +0300 +++ b/datacommsserver/esockserver/test/TE_DummyProvider/scripts/te_dummyprovider_003.script Wed Aug 18 10:59:59 2010 +0300 @@ -32,6 +32,10 @@ RUN_TEST_STEP 100 te_esockteststepsSuite connectrsocketservStep z:\testdata\configs\te_dummyprovider_003.ini ConnectSockSvr1 RUN_TEST_STEP 100 te_esockteststepsSuite openrconnectionStep z:\testdata\configs\te_dummyprovider_003.ini OpenConn1 RUN_TEST_STEP 100 te_esockteststepsSuite startrconnectionStep z:\testdata\configs\te_dummyprovider_003.ini StartConn1 + +//Let the test get stuck where we want to get stuck first (otherwise we may be cancelling prematurely). +RUN_TEST_STEP 100 te_esockteststepsSuite waitStep z:\testdata\configs\te_dummyprovider_003.ini WaitUntilStuffStucks + RUN_TEST_STEP 100 te_esockteststepsSuite stoprconnectionStep z:\testdata\configs\te_dummyprovider_003.ini StopConn1 RUN_TEST_STEP 100 te_esockteststepsSuite AwaitRConnectionStartComplete z:\testdata\configs\te_dummyprovider_003.ini WaitStartComplete1 RUN_TEST_STEP 100 te_esockteststepsSuite closerconnectionStep z:\testdata\configs\te_dummyprovider_003.ini CloseConn1 diff -r 34fc115b8742 -r 41cc8e7ff496 datacommsserver/esockserver/test/TE_DummyProvider/scripts/te_dummyprovider_010.script --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/datacommsserver/esockserver/test/TE_DummyProvider/scripts/te_dummyprovider_010.script Wed Aug 18 10:59:59 2010 +0300 @@ -0,0 +1,48 @@ +// +// Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// + +PRINT Running CASE010 +PRINT Two dummy layers able to start successfully +PRINT Execute the crazy start/wait/stop loop increasing wait with every iteration. +PRINT See how the stack manages cancelations at distinct stages. + + +// +LOAD_SUITE te_esockteststepsSuite -SharedData +RUN_SCRIPT z:\TestData\scripts\te_esock_test_loadesock.script + +START_TESTCASE COMINF-ESOCK-DummyProviders-010 +//! @SYMTestCaseID COMINF-ESOCK-DummyProviders-010 +//! @SYMTestCaseDesc Tests the resiliance of the RConnection::Start to cancelations (induced by RConnection::Stop). +//! @SYMTestActions Execute the crazy start/wait/stop loop increasing wait with every iteration. +//! @SYMTestExpectedResults No crashes, all operations complete (typically with KErrCancel, but that's not cared for) +//! @SYMTestPriority Critical +//! @SYMTestType CT +//! @SYMComponent comms-infras_esock + +RUN_TEST_STEP 100 te_esockteststepsSuite creatersocketservStep z:\testdata\configs\te_dummyprovider_010.ini CreateSockSvr1 +RUN_TEST_STEP 100 te_esockteststepsSuite createrconnectionStep z:\testdata\configs\te_dummyprovider_010.ini CreateConn1 +RUN_TEST_STEP 100 te_esockteststepsSuite connectrsocketservStep z:\testdata\configs\te_dummyprovider_010.ini ConnectSockSvr1 +RUN_TEST_STEP 100 te_esockteststepsSuite openrconnectionStep z:\testdata\configs\te_dummyprovider_010.ini OpenConn1 +RUN_TEST_STEP 100 te_esockteststepsSuite StartStopCrazyLoopRConnectionStep z:\testdata\configs\te_dummyprovider_010.ini StartConn1 +RUN_TEST_STEP 100 te_esockteststepsSuite closerconnectionStep z:\testdata\configs\te_dummyprovider_010.ini CloseConn1 +RUN_TEST_STEP 100 te_esockteststepsSuite closersocketservStep z:\testdata\configs\te_dummyprovider_010.ini CloseSockSvr1 +RUN_TEST_STEP 100 te_esockteststepsSuite cleanallStep +END_TESTCASE COMINF-ESOCK-DummyProviders-010 + +RUN_SCRIPT Z:\TestData\scripts\te_esock_test_unloadesockForced.script + +PRINT Completed CASE010 diff -r 34fc115b8742 -r 41cc8e7ff496 datacommsserver/esockserver/test/TE_ESock/TestSuiteEsock.cpp --- a/datacommsserver/esockserver/test/TE_ESock/TestSuiteEsock.cpp Fri Jun 11 14:52:21 2010 +0300 +++ b/datacommsserver/esockserver/test/TE_ESock/TestSuiteEsock.cpp Wed Aug 18 10:59:59 2010 +0300 @@ -79,20 +79,10 @@ // Third phase constructor for ESOCK test suite void CTestSuiteEsock::InitialiseL( void ) { - TInt ret = User::LoadPhysicalDevice( PDD_NAME ); - if ( KErrNone != ret && KErrAlreadyExists != ret ) - { - User::Leave( ret ); - } - ret = User::LoadLogicalDevice( LDD_NAME ); - if ( KErrNone != ret && KErrAlreadyExists != ret ) - { - User::Leave( ret ); - } // When bootstrapping C32 we have to avoid the PhBkSyncServer being started, since // it needs a different CommDB _LIT(KPhbkSyncCMI, "phbsync.cmi"); - ret = StartC32WithCMISuppressions(KPhbkSyncCMI); + TInt ret = StartC32WithCMISuppressions(KPhbkSyncCMI); if ( KErrNone != ret && KErrAlreadyExists != ret ) { User::Leave( ret ); diff -r 34fc115b8742 -r 41cc8e7ff496 datacommsserver/esockserver/test/TE_ESock/group/bld.inf --- a/datacommsserver/esockserver/test/TE_ESock/group/bld.inf Fri Jun 11 14:52:21 2010 +0300 +++ b/datacommsserver/esockserver/test/TE_ESock/group/bld.inf Wed Aug 18 10:59:59 2010 +0300 @@ -56,6 +56,7 @@ ../scriptfiles/te_esock.xml z:/testdata/configs/te_esock.xml ../scriptfiles/te_esock_ethernet_MOMAP16xx.xml z:/testdata/configs/te_esock_ethernet_momap16xx.xml ../scriptfiles/te_esock_ethernet_wins.xml z:/testdata/configs/te_esock_ethernet.xml +../scriptfiles/te_esock_wlan.xml z:/testdata/configs/te_esock_wlan.xml ../scriptfiles/hosts.te_esock z:/testdata/configs/hosts.te_esock diff -r 34fc115b8742 -r 41cc8e7ff496 datacommsserver/esockserver/test/TE_ESock/scriptfiles/TE_ESock_IP4_Net_wlan.script --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/datacommsserver/esockserver/test/TE_ESock/scriptfiles/TE_ESock_IP4_Net_wlan.script Wed Aug 18 10:59:59 2010 +0300 @@ -0,0 +1,38 @@ +// +// Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// + +PRINT *************************************************************** +PRINT Perform all the TE_ESOCK Connection tests on PPP (IPv4) +PRINT *************************************************************** + +// Ensure that the default config is present if no cleverer one has been put there already +RUN_SCRIPT z:\testdata\scripts\exec_esock_default_to_config_1.script + +RUN_SCRIPT z:\testdata\scripts\te_esock_test_unloadesockForced.script + +ced -i z:\testdata\configs\te_esock_wlan.xml ced.log + +RUN_SCRIPT z:\testdata\scripts\te_esock_test_loadesock.script + +// copy the relevant ini file +RUN_UTILS CopyFile z:\testdata\configs\test_esock_ip4_vlan2.ini c:\test_esock_ip.ini +RUN_UTILS MakeReadWrite c:\test_esock_ip.ini + +RUN_SCRIPT z:\testdata\scripts\te_esock_tests-net-ip.script + +RUN_UTILS DeleteFile c:\test_esock_ip.ini + +RUN_SCRIPT z:\testdata\scripts\te_esock_test_unloadesockForced.script diff -r 34fc115b8742 -r 41cc8e7ff496 datacommsserver/esockserver/test/TE_ESock/scriptfiles/te_esock_wlan.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/datacommsserver/esockserver/test/TE_ESock/scriptfiles/te_esock_wlan.xml Wed Aug 18 10:59:59 2010 +0300 @@ -0,0 +1,1200 @@ + + + + + + + + + + + + + Intranet + + + + + + NT RAS + DialOutISP.NT RAS + ModemBearer.Null Modem 115200bps + Network.Intranet + 0 + Location.Office Direct Dial + + + NTRas GPRS + OutgoingGPRS.NTRas GPRS + ModemBearer.GPRS Ericsson R520m via IR + Network.Intranet + 0 + Location.Mobile + + + Padding for removed CDMA IAP + DialOutISP.NT RAS + ModemBearer.Null Modem 115200bps + Network.Intranet + 0 + Location.Mobile + + + Default Dial In ISP + DialInISP.Dial In CS ISP + ModemBearer.US Robotics Sportster + Network.Intranet + 0 + Location.Home + + + LAN Test IAP + LANService.Ethernet (IPv6 static DNS) + LANBearer.Ethernet + Network.Intranet + 0 + Location.Office + + + NT RAS (IPv6 static DNS) + DialOutISP.NT RAS (IPv6 static DNS) + ModemBearer.Null Modem 115200bps + Network.Intranet + 0 + Location.Office + + + WlanConnectivity + LANService.WlanConnectivity + LANBearer.WLANBearer + Network.Intranet + 0 + Location.Office Direct Dial + + + + + + Default Modem + CSD.agt + PPP + COMM::0 + MM + ECUART + 8 + 1 + NONE + 115200 + 0 + 0 + 0 + 0 + AUTO + AFTERDIALUNTILANSWER + AT + AT + AT + S8= + L0 + L1 + L2 + M0 + M1 + M2 + M3 + W + X1 + X2 + X3 + X4 + E0 + V1 + Q0 + Q1 + ; + O + Z + &F + &C1 + &D2 + &S0 + &K3 + &K4 + + + S12 + NO DIAL TONE + BUSY + NO ANSWER + CARRIER + CONNECT + COMPRESSION:CLASS 5 + COMPRESSION:V.42 bis + COMPRESSION:NONE + PROTOCOL:LAPD + PROTOCOL:ALT + PROTOCOL:ALT-CELLULAR + PROTOCOL:NONE + 6 + 180 + 10 + 0 + + + Null Modem 115200bps + CSD.agt + PPP + COMM::0 + NTRASTSY + ECUART + 8 + 1 + NONE + 115200 + 4 + 0 + 0 + 0 + AUTO + NEVER + QUIET + AT + AT + AT + S8= + L0 + L1 + L2 + M0 + M1 + M2 + M3 + W + X1 + X2 + X3 + X4 + E0 + V1 + Q0 + Q1 + ; + O + Z + &F + &C1 + &D2 + &S0 + &K3 + &K4 + + + S12 + NO DIAL TONE + BUSY + NO ANSWER + CARRIER + CONNECT + COMPRESSION:CLASS 5 + COMPRESSION:V.42 bis + COMPRESSION:NONE + PROTOCOL:LAPD + PROTOCOL:ALT + PROTOCOL:ALT-CELLULAR + PROTOCOL:NONE + 0 + FALSE + 50 + 30 + 40 + + + US Robotics Sportster + CSD.agt + PPP + COMM::0 + MM + ECUART + 8 + 1 + NONE + 57600 + 244 + 0 + 0 + 0 + AUTO + AFTERDIALUNTILANSWER + QUIET + AT&F1 + AT + AT&d2 + S8= + L0 + L1 + L2 + M0 + M1 + M2 + M3 + W + X1 + X2 + X3 + X4 + E0 + V1 + Q0 + Q1 + ; + O + Z + &F + &C1 + &D2 + &S0 + &K3 + &K4 + + + S12 + NO DIAL TONE + BUSY + NO ANSWER + CARRIER + CONNECT + COMPRESSION:CLASS 5 + COMPRESSION:V.42 bis + COMPRESSION:NONE + PROTOCOL:LAPD + PROTOCOL:ALT + PROTOCOL:ALT-CELLULAR + PROTOCOL:NONE + 6 + 180 + 10 + + + Dacom Surfer + CSD.agt + PPP + COMM::0 + MM + ECUART + 8 + 1 + NONE + 57600 + 244 + 0 + 0 + 0 + AUTO + AFTERDIALUNTILANSWER + QUIET + AT&F + AT + AT&d2 + S8= + L0 + L1 + L2 + M0 + M1 + M2 + M3 + W + X1 + X2 + X3 + X4 + E0 + V1 + Q0 + Q1 + ; + O + Z + &F + &C1 + &D2 + &S0 + &K3 + &K4 + + + S12 + NO DIAL TONE + BUSY + NO ANSWER + CARRIER + CONNECT + COMPRESSION:CLASS 5 + COMPRESSION:V.42 bis + COMPRESSION:NONE + PROTOCOL:LAPD + PROTOCOL:ALT + PROTOCOL:ALT-CELLULAR + PROTOCOL:NONE + 6 + 180 + 10 + + + GSM Mobile Phone via Infrared + CSD.agt + PPP + IRCOMM::0 + MM + IRCOMM + 8 + 1 + NONE + 115200 + 196 + 0 + 17 + 19 + AUTO + NEVER + QUIET + ATZ + AT + AT + S8= + L0 + L1 + L2 + M0 + M1 + M2 + M3 + W + X1 + X2 + X3 + X4 + E0 + V1 + Q0 + Q1 + ; + O + Z + &F + &C1 + &D2 + &S0 + &K3 + &K4 + + + S12 + NO DIAL TONE + BUSY + NO ANSWER + CARRIER + CONNECT + COMPRESSION:CLASS 5 + COMPRESSION:V.42 bis + COMPRESSION:NONE + PROTOCOL:LAPD + PROTOCOL:ALT + PROTOCOL:ALT-CELLULAR + PROTOCOL:NONE + +442079460223 + 1440 + FALSE + 9905 + 6 + 180 + 10 + + + GSM Mobile Phone via Serial + CSD.agt + PPP + COMM::0 + MM + ECUART + 8 + 1 + NONE + 19200 + 196 + 0 + 17 + 19 + AUTO + NEVER + QUIET + ATZ + AT + AT + S8= + L0 + L1 + L2 + M0 + M1 + M2 + M3 + W + X1 + X2 + X3 + X4 + E0 + V1 + Q0 + Q1 + ; + O + Z + &F + &C1 + &D2 + &S0 + &K3 + &K4 + + + S12 + NO DIAL TONE + BUSY + NO ANSWER + CARRIER + CONNECT + COMPRESSION:CLASS 5 + COMPRESSION:V.42 bis + COMPRESSION:NONE + PROTOCOL:LAPD + PROTOCOL:ALT + PROTOCOL:ALT-CELLULAR + PROTOCOL:NONE + +442079460223 + 1440 + FALSE + 9905 + 6 + 180 + 10 + + + GPRS Ericsson R520m via IR + CSD.agt + PPP + IRCOMM::0 + MM + IRCOMM + 8 + 1 + NONE + 115200 + 4 + 0 + 17 + 19 + AUTO + NEVER + QUIET + ATZ + AT + AT + S8= + L0 + L1 + L2 + M0 + M1 + M2 + M3 + W + X1 + X2 + X3 + X4 + E0 + V1 + Q0 + Q1 + ; + O + Z + &F + &C1 + &D2 + &S0 + &K3 + &K4 + + + S12 + NO DIAL TONE + BUSY + NO ANSWER + CARRIER + CONNECT + COMPRESSION:CLASS 5 + COMPRESSION:V.42 bis + COMPRESSION:NONE + PROTOCOL:LAPD + PROTOCOL:ALT + PROTOCOL:ALT-CELLULAR + PROTOCOL:NONE + +442079460223 + 1440 + FALSE + 6 + 180 + 10 + + + GPRS Ericsson R520m via Serial + null.agt + PPP + COMM::0 + MM + ECUART + 8 + 1 + NONE + 115200 + 4 + 0 + 17 + 19 + AUTO + NEVER + QUIET + ATZ + AT + AT + S8= + L0 + L1 + L2 + M0 + M1 + M2 + M3 + W + X1 + X2 + X3 + X4 + E0 + V1 + Q0 + Q1 + ; + O + Z + &F + &C1 + &D2 + &S0 + &K3 + &K4 + + + S12 + NO DIAL TONE + BUSY + NO ANSWER + CARRIER + CONNECT + COMPRESSION:CLASS 5 + COMPRESSION:V.42 bis + COMPRESSION:NONE + PROTOCOL:LAPD + PROTOCOL:ALT + PROTOCOL:ALT-CELLULAR + PROTOCOL:NONE + +442079460223 + 1440 + FALSE + 6 + 180 + 10 + + + GPRS Motorola Mobile Phone via Serial + null.agt + PPP + COMM::0 + MM + ECUART + 8 + 1 + NONE + 57600 + 4 + 0 + 17 + 19 + AUTO + NEVER + QUIET + ATZ + AT + AT + S8= + L0 + L1 + L2 + M0 + M1 + M2 + M3 + W + X1 + X2 + X3 + X4 + E0 + V1 + Q0 + Q1 + ; + O + Z + &F + &C1 + &D2 + &S0 + &K3 + &K4 + + + S12 + NO DIAL TONE + BUSY + NO ANSWER + CARRIER + CONNECT + COMPRESSION:CLASS 5 + COMPRESSION:V.42 bis + COMPRESSION:NONE + PROTOCOL:LAPD + PROTOCOL:ALT + PROTOCOL:ALT-CELLULAR + PROTOCOL:NONE + +442079460223 + 1440 + FALSE + 6 + 180 + 10 + + + + + + Ethernet + nullagt.agt + ethint + enet + =Ethernet + ethernet + Ethernet.Wins + EtherPkt.drv + -1 + -1 + -1 + + + WLANBearer + wlannif + not used + not used + -1 + 1 + -1 + wlanagt.agt + + + + + + WlanConnectivity + ip + 255.255.255.0 + 0.0.0.0 + TRUE + 0.0.0.0 + TRUE + 0.0.0.0 + 0.0.0.0 + TRUE + 0:0:0:0:0:0:0:0 + 0:0:0:0:0:0:0:0 + 0 + NetCfgExtnDhcp + !DhcpServ + + + Ethernet + ip,ip6 + 255.255.255.0 + 194.72.6.1 + 192.168.0.100 + TRUE + FALSE + 194.72.6.51 + 194.72.6.52 + + + Ethernet (IPv6 static DNS) + ip,ip6 + 255.255.255.0 + 10.1.2.3 + 192.168.0.100 + TRUE + FALSE + FALSE + 10.1.2.4 + 10.1.2.5 + fe80:0:0:0:0:0:1234:5678 + fe80:0:0:0:0:0:8765:4321 + + + + + + Default Dial In ISP + FALSE + TRUE + TRUE + FALSE + FALSE + FALSE + FALSE + FALSE + + + Dial In CS ISP + FALSE + TRUE + TRUE + FALSE + FALSE + FALSE + FALSE + FALSE + + + + + + Default Dial Out ISP + TRUE + FALSE + TRUE + TRUE + TRUE + TRUE + FALSE + FALSE + FALSE + FALSE + FALSE + FALSE + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + FALSE + FALSE + + + NT RAS + TRUE + TRUE + FALSE + FALSE + TRUE + TRUE + INTERNETONLY + CHARMAP \[windows-1252\]\nLOOP 10\n{\nSEND "CLIENT"+<0x0d>\nWAIT 3\n{\n"SERVER" OK\n}\n}\nEXIT KErrNoAnswer$\n\nOK:\nEXIT\n + FALSE + ip,ip6 + RasUser + pass + 0 + FALSE + 0 + FALSE + FALSE + FALSE + FALSE + 0 + ASYNCHRONOUS + UNSPECIFIED + UNSPECIFIED + CSD + UNSPECIFIED + UNSPECIFIED + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + FALSE + FALSE + + + NT RAS (IPv6 static DNS) + TRUE + TRUE + FALSE + FALSE + TRUE + TRUE + FALSE + Test + INTERNETONLY + CHARMAP \[windows-1252\]\nLOOP 10\n{\nSEND "CLIENT"+<0x0d>\nWAIT 3\n{\n"SERVER" OK\n}\n}\nEXIT KErrNoAnswer$\n\nOK:\nEXIT\n + FALSE + ip,ip6 + RasUser + pass + 0 + fe80:0:0:0:0:0:1234:5678 + fe80:0:0:0:0:0:8765:4321 + FALSE + FALSE + FALSE + FALSE + + + + + + + + + Dummy BT Chargecard + 144,12345678 + 0000 + HG + HFG + HEFG + + + Dummy Mercury Chargecard + 0500800800,,12345678 + **** + HG + J,K,0FG + HEFG + + + + + + ConnectionPreferencesTable1 + 0 + INCOMING + DONOTPROMPT + CSD + IAP.Default Dial In ISP + + + ConnectionPreferencesTable2 + 1 + OUTGOING + DONOTPROMPT + LAN + IAP.WlanConnectivity + + + + + + GlobalSettingsTable1 + 3 + 2 + 2 + 1 + 1 + 2 + 2 + 2 + Location.Office + Location.Office + GSM + Network.Intranet + mm + + + + + + Dummy Incoming GPRS Settings + Test + IPV4 + 0.0.0.0 + FALSE + TRUE + TRUE + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + FALSE + FALSE + FALSE + ip + RasUser + pass + 1 + 0.0.0.0 + 0.0.0.0 + FALSE + FALSE + FALSE + + + + + + NTRas GPRS + Test + IPV4 + FALSE + TRUE + FALSE + 2 + 4 + 3 + 3 + 31 + 2 + 4 + 3 + 3 + 31 + FALSE + FALSE + FALSE + ip + RasUser + pass + 1 + 194.72.6.51 + 194.72.6.51 + FALSE + FALSE + FALSE + + + + + + Dummy Default GPRS Settings + Access point name + IPV6 + www.wid.com + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + TRUE + TRUE + FALSE + TRUE + + + + + + ProxyTable1 + DialOutISP.NT RAS + TRUE + http + www.dummyproxy.com + 80 + www.dummyproxy.com/exception + + + + + + Default Location + TRUE + FALSE + FALSE + 0 + + + 0 + 44 + + + Office + FALSE + FALSE + FALSE + 0 + 00 + 0 + 44 + 171 + 9, + + + Office Direct Dial + FALSE + FALSE + FALSE + 0 + 00 + 0 + 44 + 171 + + + Mobile + TRUE + FALSE + FALSE + 0 + + + 0 + 44 + + + Home + FALSE + TRUE + TRUE + 0 + 00 + 0 + 44 + 181 + + + + + + SecureSocketTable1 + ssl3.0 + ssladaptor.dll + + + SecureSocketTable2 + tls1.0 + ssladaptor.dll + + + + + + + + + + + + + + + + + + Default Dial In ISP + WAPIPBearer + + + Dummy WAP Settings + WAPIPBearer + www.wapstart.com + + + + + + WAPIPBearerTable1 + WAPAccessPoint.-1 + CONNECTIONLESS + FALSE + IAP.-1 + 0 + + + WAPIPBearerTable2 + WAPAccessPoint.Dummy WAP Settings + www.wapgateway.com + CONNECTIONORIENTED + FALSE + IAP.NTRas GPRS + 1 + + + + + + WAPSMSBearerTable1 + WAPAccessPoint.-1 + CONNECTIONLESS + FALSE + + + WAPSMSBearerTable2 + WAPAccessPoint.Dummy WAP Settings + +442079460221 + CONNECTIONORIENTED + FALSE + +442079460223 + + + + + + + + + + + diff -r 34fc115b8742 -r 41cc8e7ff496 datacommsserver/esockserver/test/TE_ESock/scriptfiles/test_esock_ip4_vlan2.ini --- a/datacommsserver/esockserver/test/TE_ESock/scriptfiles/test_esock_ip4_vlan2.ini Fri Jun 11 14:52:21 2010 +0300 +++ b/datacommsserver/esockserver/test/TE_ESock/scriptfiles/test_esock_ip4_vlan2.ini Wed Aug 18 10:59:59 2010 +0300 @@ -26,16 +26,16 @@ [Test_3.4] //-- loncoredev01 -ipAddress=10.23.140.123 -port=5001 +ipAddress=10.29.23.103 +port=643 [Test_3.5] port=7 [Test_3.6] //-- loncoredev01 -ipAddress=10.23.140.123 -errorPort=5001 +ipAddress=10.29.23.10 +errorPort=643 validPort=7 validTries=3 diff -r 34fc115b8742 -r 41cc8e7ff496 datacommsserver/esockserver/test/TE_ESock/scriptfiles/test_esock_ip4_vlan7.ini --- a/datacommsserver/esockserver/test/TE_ESock/scriptfiles/test_esock_ip4_vlan7.ini Fri Jun 11 14:52:21 2010 +0300 +++ b/datacommsserver/esockserver/test/TE_ESock/scriptfiles/test_esock_ip4_vlan7.ini Wed Aug 18 10:59:59 2010 +0300 @@ -1,5 +1,5 @@ [Test_Common] -ipAddress=192.168.20.11 +ipAddress=10.29.23.103 [Test_2.1] numSockets=1 @@ -25,16 +25,16 @@ port=1 [Test_3.4] -ipAddress=192.168.20.11 -port=5001 +ipAddress=10.29.23.103 +port=643 [Test_3.5] port=7 [Test_3.6] -//-- 6TUNNELLER -ipAddress=192.168.20.2 -errorPort=6060 +//-- 6TUNNELLEREXTERNAL +ipAddress=10.29.23.10 +errorPort=643 validPort=7 validTries=3 @@ -306,8 +306,8 @@ //-- Testing 'A' query [Test27.1] Entries=2 -Param1=robocop.movie.edu -Param2=wormhole.movie.edu +Param1=httpsmtp.closedtest.intra +Param2=httpsmtpssl.closedtest.intra //-- Testing 'SVR' query [Test27.2] @@ -334,8 +334,8 @@ //-- Testing 'A' query with explicit connection [Test27.7] Entries=2 -Param1=robocop.movie.edu -Param2=wormhole.movie.edu +Param1=httpsmtp.closedtest.intra +Param2=httpsmtpssl.closedtest.intra //-- Testing Query() interface on two threads [Test27.8] diff -r 34fc115b8742 -r 41cc8e7ff496 datacommsserver/esockserver/test/TE_EsockTestSteps/group/TE_EsockTestStepsSuite.iby --- a/datacommsserver/esockserver/test/TE_EsockTestSteps/group/TE_EsockTestStepsSuite.iby Fri Jun 11 14:52:21 2010 +0300 +++ b/datacommsserver/esockserver/test/TE_EsockTestSteps/group/TE_EsockTestStepsSuite.iby Wed Aug 18 10:59:59 2010 +0300 @@ -20,6 +20,7 @@ #define __TE_ESOCKTESTSTEPSSUITE_IBY__ #include +data=ABI_DIR\DEBUG_DIR\Te_esockteststepsSuite_captest.exe sys\bin\te_esockteststepsSuite_captest.exe #endif diff -r 34fc115b8742 -r 41cc8e7ff496 datacommsserver/esockserver/test/TE_EsockTestSteps/inc/Connections.TestSteps.h --- a/datacommsserver/esockserver/test/TE_EsockTestSteps/inc/Connections.TestSteps.h Fri Jun 11 14:52:21 2010 +0300 +++ b/datacommsserver/esockserver/test/TE_EsockTestSteps/inc/Connections.TestSteps.h Wed Aug 18 10:59:59 2010 +0300 @@ -173,12 +173,36 @@ TVerdict doSingleTestStep(); TInt ConfigureFromIni(); -private: +protected: TRConnectionParams iParams; //current params (.ini) }; _LIT(KStartRConnectionStep,"StartRConnectionStep"); +/** +Class implementing StartStopCrazyLoopRConnectionStep +The test does a loop, where every iteration: +(1) Starts the connection +(2) Snoozes for an +(3) Stops the connection injecting a cancel at that stage of the connection start +(4) Increases the a bit so that next time round the cancel is injected at a different stage. + +Note that since the test is normally executed by a thread of lower priority than ESock_IP, it relies on +ESock_IP yielding (otherwise it won't test different phases. +For instance DummyMCPR will artificially yield on TCFServiceProvider::TJoinRequest. +NetMCPR will not normally yield as is. + +@internalComponent +*/ +class CStartStopCrazyLoopRConnectionStep : public CStartRConnectionStep + { +public: + CStartStopCrazyLoopRConnectionStep(CCEsockTestBase*& aEsockTest); + TVerdict doSingleTestStep(); + TInt CalibrateStart(); + }; + +_LIT(KStartStopCrazyLoopRConnectionStep,"StartStopCrazyLoopRConnectionStep"); /** Class implementing openrconnectionStep @@ -444,6 +468,20 @@ _LIT(KGetParameters_IntStep,"GetParameters_IntStep"); + +class CWaitStep : public CTe_EsockStepBase + { +public: + CWaitStep(CCEsockTestBase*& aEsockTest); + TVerdict doSingleTestStep(); + TInt ConfigureFromIni(); +private: + TInt iTimeOutMs; + }; + +_LIT(KWaitStep,"WaitStep"); + + #endif // CONNECTIONS_TESTSTEPS_H diff -r 34fc115b8742 -r 41cc8e7ff496 datacommsserver/esockserver/test/TE_EsockTestSteps/inc/EsockTestBase.h --- a/datacommsserver/esockserver/test/TE_EsockTestSteps/inc/EsockTestBase.h Fri Jun 11 14:52:21 2010 +0300 +++ b/datacommsserver/esockserver/test/TE_EsockTestSteps/inc/EsockTestBase.h Wed Aug 18 10:59:59 2010 +0300 @@ -502,6 +502,7 @@ //connection functions library RConnection* FindConnection(const TDesC& aConnectionName); TInt CreateConnection(const TDesC& aConnectionName); + TInt RemoveConnection(const TDesC& aConnectionName); TInt OpenConnection(const TRConnectionParams& aParams); TInt StartConnection(RConnection& aConn, TConnPref& aPrefs, TRequestStatus* aRequestStatus); TInt StartConnection(TRConnectionParams& aParams); diff -r 34fc115b8742 -r 41cc8e7ff496 datacommsserver/esockserver/test/TE_EsockTestSteps/src/Connections.TestSteps.cpp --- a/datacommsserver/esockserver/test/TE_EsockTestSteps/src/Connections.TestSteps.cpp Fri Jun 11 14:52:21 2010 +0300 +++ b/datacommsserver/esockserver/test/TE_EsockTestSteps/src/Connections.TestSteps.cpp Wed Aug 18 10:59:59 2010 +0300 @@ -112,9 +112,9 @@ // Optional // Reads the protocol family to use - if (GetIntFromConfig(iSection, KTe_ConnectionType, iParams.iConnectionType) != 1) + if (!GetIntFromConfig(iSection, KTe_ConnectionType, iParams.iConnectionType)) { - iParams.iConnectionType = -1; + iParams.iConnectionType = -1; } // All ok if we got this far @@ -155,6 +155,14 @@ INFO_PRINTF1(_L("Couldn't find appropriate field in config file")); return KErrNotFound; } + + GetStringFromConfig(iSection, KTe_SocketServName, iParams.iSockServName); + // Optional + // Reads the protocol family to use + if (!GetIntFromConfig(iSection, KTe_ConnectionType, iParams.iConnectionType)) + { + iParams.iConnectionType = -1; + } TPtrC16 bearerSet; TBool bearerPresent = ((GetStringFromConfig(iSection,KTe_BearerName,bearerSet)==1) @@ -251,6 +259,152 @@ } + + + + + + + +// CStartStopCrazyLoopRConnectionStep +//----------------- + +CStartStopCrazyLoopRConnectionStep::CStartStopCrazyLoopRConnectionStep(CCEsockTestBase*& aEsockTest) +: CStartRConnectionStep(aEsockTest) + { + SetTestStepName(KStartStopCrazyLoopRConnectionStep); + } + +TInt CStartStopCrazyLoopRConnectionStep::CalibrateStart() + { + TTime timeBegin; + TTime timeEnd; + + TRequestStatus* pConnectionStartStatus = iEsockTest->iRequestStatuses.Find(iParams.iConnectionName); + if (pConnectionStartStatus == NULL) + { + return KErrCorrupt; + } + + timeBegin.HomeTime(); + TInt error = iEsockTest->StartConnection(iParams); + if (error != KErrNone) + { + return error; + } + User::WaitForRequest(*pConnectionStartStatus); + if (pConnectionStartStatus->Int() != KErrNone) + { + return pConnectionStartStatus->Int(); + } + timeEnd.HomeTime(); + iEsockTest->StopConnection(iParams); + return timeEnd.MicroSecondsFrom(timeBegin).Int64(); + } + + +TVerdict CStartStopCrazyLoopRConnectionStep::doSingleTestStep() + { + // Default to failing + SetTestStepResult(EFail); + iParams.iAsynch = ETrue; //force async. + RTimer timer; + TInt error = timer.CreateLocal(); + if (error!=KErrNone) + { + INFO_PRINTF2(_L("Creating RTimer object failed with %d"), error); + return TestStepResult(); + } + + TRequestStatus timerRequestStatus; + TRequestStatus* pConnectionStartStatus = new TRequestStatus; + if (pConnectionStartStatus == NULL) + { + INFO_PRINTF1(_L("Heap allocation for TRequestStatus failed")); + timer.Close(); + return TestStepResult(); + } + error = iEsockTest->iRequestStatuses.Add(pConnectionStartStatus, iParams.iConnectionName); + if (error!=KErrNone) + { + INFO_PRINTF2(_L("Failed "), error); + timer.Close(); + delete pConnectionStartStatus; + return TestStepResult(); + } + TRequestStatus& connectionStartStatus = *pConnectionStartStatus; + + const TInt KLoops = 10; + INFO_PRINTF1(_L("Calibrating timer by running full start")); + //Well, we're running the full start twice as the first run is likely to take more than the representative time. + TInt timerIncrement = Min(CalibrateStart(), CalibrateStart()); + if (timerIncrement < 0) + { + INFO_PRINTF2(_L("Full start failed, unable to calibrate, test failed with %d"), timerIncrement); + return TestStepResult(); + } + INFO_PRINTF3(_L("Start took %dus, will divide by %d and use as the increment"), timerIncrement, KLoops); + + + TInt timerVal = 1; + timerIncrement /= KLoops; + + INFO_PRINTF1(_L("Beginning crazy start/stop loop")); + + for (TInt i = 1; i < KLoops+1; i++) + { + INFO_PRINTF2(_L("[Loop %d], Starting a new loop=============================="), i); + INFO_PRINTF2(_L("[Loop %d], Closing connection"), i); + iEsockTest->CloseConnection(iParams.iConnectionName); + INFO_PRINTF2(_L("[Loop %d], Re-openning connection"), i); + if (iEsockTest->OpenConnection(iParams) != KErrNone) + { + INFO_PRINTF1(_L("Can't reopen connection, most likely you didn't supply the session name")); + timer.Close(); + return TestStepResult(); + } + INFO_PRINTF2(_L("[Loop %d], Starting connection (asynch)"), i); + error = iEsockTest->StartConnection(iParams); + if (error != KErrNone) + { + INFO_PRINTF1(_L("Starting connection failed, aborting")); + timer.Close(); + return TestStepResult(); + } + INFO_PRINTF3(_L("[Loop %d], Setting timer to %dus .zzz...."), i, timerVal); + timer.After(timerRequestStatus,timerVal); + User::WaitForRequest(timerRequestStatus,connectionStartStatus); + if (timerRequestStatus.Int() == KRequestPending) + { + INFO_PRINTF2(_L("Connection Start completed with %d"), connectionStartStatus.Int()); + INFO_PRINTF1(_L("Irrespective of the start result the test has failed, because it hadn't execute enough iterations")); + //If you get this a lot this means there;s a flaw in the logic of this test and for some reason the execution of + //RConnection::Start speeds up with time. You may want to re-calibrate then and rerun the loop again with finer + //interval. + timer.Cancel(); + User::WaitForRequest(timerRequestStatus); + timer.Close(); + return TestStepResult(); + } + + timerVal += timerIncrement; + INFO_PRINTF2(_L("[Loop %d], ....zzz. Stopping connection"), i); + iEsockTest->StopConnection(iParams); + User::WaitForRequest(connectionStartStatus); + INFO_PRINTF2(_L("[Loop %d], Connection stopped"), i); + } + timer.Close(); + SetTestStepResult(EPass); + return TestStepResult(); + } + + + + + + + + // Stop Connection //---------------- @@ -1319,3 +1473,30 @@ return EPass; } +// WaitStep +//------------------------------- + +CWaitStep::CWaitStep(CCEsockTestBase*& aEsockTest) +: CTe_EsockStepBase(aEsockTest) + { + SetTestStepName(KWaitStep); + } + +TInt CWaitStep::ConfigureFromIni() + { + if(!GetIntFromConfig(iSection, KTimeoutInMilliSeconds, iTimeOutMs)) + { + INFO_PRINTF1(_L("Couldn't find appropriate field in config file")); + return KErrNotFound; + } + + return KErrNone; + } + +TVerdict CWaitStep::doSingleTestStep() + { + User::After(iTimeOutMs *1000); + return EPass; + } + + diff -r 34fc115b8742 -r 41cc8e7ff496 datacommsserver/esockserver/test/TE_EsockTestSteps/src/EsockTestBase.cpp --- a/datacommsserver/esockserver/test/TE_EsockTestSteps/src/EsockTestBase.cpp Fri Jun 11 14:52:21 2010 +0300 +++ b/datacommsserver/esockserver/test/TE_EsockTestSteps/src/EsockTestBase.cpp Wed Aug 18 10:59:59 2010 +0300 @@ -1124,6 +1124,18 @@ return error; } +TInt CCEsockTestBase::RemoveConnection(const TDesC& aConnectionName) + { + //check if this connection hasn't been created already + if (iConns.Find(aConnectionName)==NULL) + return KErrNotFound; + + iConns.Remove(aConnectionName); + return KErrNone; + } + + + TInt CCEsockTestBase::OpenConnection(const TRConnectionParams& aParams) { RSocketServ* ss = iSockServs.Find(aParams.iSockServName); @@ -1255,16 +1267,21 @@ TRequestStatus* requestStatus = NULL; if (aParams.iAsynch) { - requestStatus = new TRequestStatus; - if (requestStatus==NULL) - return KErrNoMemory; - - TInt error = iRequestStatuses.Add(requestStatus, aParams.iConnectionName); - if (error!=KErrNone) - { - delete requestStatus; - return error; - } + //The request status may well already be there (created by the previous iteration?) + requestStatus = iRequestStatuses.Find(aParams.iConnectionName); + if (requestStatus == NULL) + { + requestStatus = new TRequestStatus; + if (requestStatus==NULL) + return KErrNoMemory; + + TInt error = iRequestStatuses.Add(requestStatus, aParams.iConnectionName); + if (error!=KErrNone) + { + delete requestStatus; + return error; + } + } } TInt error; diff -r 34fc115b8742 -r 41cc8e7ff496 datacommsserver/esockserver/test/TE_EsockTestSteps/src/Te_esockteststepsSuiteServer.cpp --- a/datacommsserver/esockserver/test/TE_EsockTestSteps/src/Te_esockteststepsSuiteServer.cpp Fri Jun 11 14:52:21 2010 +0300 +++ b/datacommsserver/esockserver/test/TE_EsockTestSteps/src/Te_esockteststepsSuiteServer.cpp Wed Aug 18 10:59:59 2010 +0300 @@ -280,6 +280,8 @@ testStep = new CShutdownRSocketStep(iEsockTest); else if(aStepName.CompareF (KStartRConnectionStep) == 0) testStep = new CStartRConnectionStep(iEsockTest); + else if(aStepName.CompareF (KStartStopCrazyLoopRConnectionStep) == 0) + testStep = new CStartStopCrazyLoopRConnectionStep(iEsockTest); else if(aStepName.CompareF (KAwaitRConnectionStartComplete) == 0) testStep = new CAwaitRConnectionStartComplete(iEsockTest); @@ -424,7 +426,9 @@ NEW_ESOCK_TESTSTEP(RegisterProgressNotificationStep) NEW_ESOCK_TESTSTEP(CheckProgressNotificationStep) NEW_ESOCK_TESTSTEP(CheckNegativeProgressNotificationStep) - NEW_ESOCK_TESTSTEP(GetParameters_IntStep) + NEW_ESOCK_TESTSTEP(GetParameters_IntStep) + NEW_ESOCK_TESTSTEP(WaitStep) + return testStep; } diff -r 34fc115b8742 -r 41cc8e7ff496 datacommsserver/esockserver/test/TE_RConnectionSuite/config/ainethernet_MOMAP16xx.xml --- a/datacommsserver/esockserver/test/TE_RConnectionSuite/config/ainethernet_MOMAP16xx.xml Fri Jun 11 14:52:21 2010 +0300 +++ b/datacommsserver/esockserver/test/TE_RConnectionSuite/config/ainethernet_MOMAP16xx.xml Wed Aug 18 10:59:59 2010 +0300 @@ -30,10 +30,10 @@ - NT RAS + Intranet - Intranet + NT RAS Linux @@ -64,12 +64,12 @@ Location.Mobile - iTest name cdma2000 - CDMA2000PacketService.test name cdma2000 - ModemBearer.Dummy 2 + Additional Dial In ISP + DialInISP.Dial In CS ISP + ModemBearer.Linux Network.NT RAS 0 - Location.Mobile + Location.Home Default Dial In ISP @@ -96,12 +96,12 @@ Location.Office Direct Dial - Ethernet with Daemon Dynamic IP - LANService.Ethernet - LANBearer.EKA2 Ethernet - Network.Intranet - 0 - Location.Office + WlanConnectivity + LANService.WlanConnectivity + LANBearer.WLANBearer + Network.Intranet + 0 + Location.Office Direct Dial Virtual Comm port @@ -156,8 +156,8 @@ DialOutISP.Dummy ModemBearer.Dummy Network.Dummy - 0 - Location.Office Direct Dial + 0 + Location.Office Direct Dial @@ -638,33 +638,34 @@ - EKA2 Ethernet - nullagt.agt - ethint - enet - Ethernet - ethernet - Ethernet.MOMAP16xx - EtherPkt.drv - 10 - 10 - 10 + WLANBearer + wlannif + not used + not used + 10 + 10 + 10 + wlanagt.agt - Ethernet - ip - 255.255.255.0 - 10.23.143.254 - - TRUE - TRUE - 10.16.59.15 - 10.112.58.6 - NetCfgExtnDhcp - !DhcpServ + WlanConnectivity + ip + 255.255.255.0 + 0.0.0.0 + TRUE + 0.0.0.0 + TRUE + 0.0.0.0 + 0.0.0.0 + TRUE + 0:0:0:0:0:0:0:0 + 0:0:0:0:0:0:0:0 + 0 + NetCfgExtnDhcp + !DhcpServ @@ -863,49 +864,6 @@ - - - test name cdma2000 - Test2000 - HIGHSPEEDCDMA2000DATA - IPV4 - PRIORITY04 - PRIORITY04 - 32KBPS - 32KBPS - LOSS1 - LOSS1 - 40MS - 40MS - 8KBPS - 8KBPS - LOSS2 - LOSS2 - 120MS - 120MS - FALSE - FALSE - FALSE - ip - RasUser - pass - 1 - 0.255.255.255 - 10.0.0.1 - TRUE - TRUE - 2 - FALSE - TRUE - TRUE - UNKNOWN - FALSE - 10000000 - - - - - @@ -941,7 +899,7 @@ OUTGOING DONOTPROMPT LAN - IAP.Ethernet with Daemon Dynamic IP + IAP.WlanConnectivity diff -r 34fc115b8742 -r 41cc8e7ff496 datacommsserver/esockserver/test/TE_RConnectionSuite/config/rconnectioncmm_ethernet_MOMAP16xx.xml --- a/datacommsserver/esockserver/test/TE_RConnectionSuite/config/rconnectioncmm_ethernet_MOMAP16xx.xml Fri Jun 11 14:52:21 2010 +0300 +++ b/datacommsserver/esockserver/test/TE_RConnectionSuite/config/rconnectioncmm_ethernet_MOMAP16xx.xml Wed Aug 18 10:59:59 2010 +0300 @@ -6,7 +6,6 @@ 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. @@ -102,12 +101,12 @@ Location.Office Direct Dial - Ethernet with Daemon Dynamic IP - LANService.Ethernet - LANBearer.EKA2 Ethernet - Network.Intranet - 0 - Location.Office + WlanConnectivity + LANService.WlanConnectivity + LANBearer.WLANBearer + Network.Intranet + 0 + Location.Office Direct Dial Virtual Comm port @@ -695,33 +694,34 @@ - EKA2 Ethernet - nullagt.agt - ethint - enet - Ethernet - ethernet - Ethernet.MOMAP16xx - EtherPkt.drv - 10 - 10 - 10 + WLANBearer + wlannif + not used + not used + -1 + -1 + -1 + wlanagt.agt - Ethernet - ip - 255.255.255.0 - 10.23.143.254 - - TRUE - TRUE - 10.16.59.15 - 10.112.58.6 - NetCfgExtnDhcp - !DhcpServ + WlanConnectivity + ip + 255.255.255.0 + 0.0.0.0 + TRUE + 0.0.0.0 + TRUE + 0.0.0.0 + 0.0.0.0 + TRUE + 0:0:0:0:0:0:0:0 + 0:0:0:0:0:0:0:0 + 0 + NetCfgExtnDhcp + !DhcpServ @@ -1000,7 +1000,7 @@ OUTGOING DONOTPROMPT LAN - IAP.Ethernet with Daemon Dynamic IP + IAP.WlanConnectivity diff -r 34fc115b8742 -r 41cc8e7ff496 datacommsserver/esockserver/test/TE_RConnectionSuite/config/rconnectionconfigdaemon_MOMAP16xx.xml --- a/datacommsserver/esockserver/test/TE_RConnectionSuite/config/rconnectionconfigdaemon_MOMAP16xx.xml Fri Jun 11 14:52:21 2010 +0300 +++ b/datacommsserver/esockserver/test/TE_RConnectionSuite/config/rconnectionconfigdaemon_MOMAP16xx.xml Wed Aug 18 10:59:59 2010 +0300 @@ -80,7 +80,7 @@ Emulator Lan IAP No Daemon LANService.Ethernet No Daemon - LANBearer.EKA2 Emulator Ethernet + LANBearer.WLANBearer Network.Intranet 0 Location.Office @@ -88,7 +88,7 @@ Emulator Lan IAP Bad Daemon LANService.Ethernet Bad Daemon - LANBearer.EKA2 Emulator Ethernet + LANBearer.WLANBearer Network.mRouter 0 Location.Office @@ -96,7 +96,7 @@ Emulator Lan IAP Static IP 1 LANService.Ethernet Static IP - LANBearer.EKA2 Emulator Ethernet + LANBearer.WLANBearer Network.mRouter 0 Location.Office @@ -104,23 +104,23 @@ Emulator Lan IAP Static IP 2 LANService.Ethernet Static IP - LANBearer.EKA2 Emulator Ethernet + LANBearer.WLANBearer Network.Intranet 0 Location.Office - Emulator Lan IAP 1 - LANService.Ethernet - LANBearer.EKA2 Target Ethernet - Network.mRouter - 0 - Location.Office + WlanConnectivity + LANService.WlanConnectivity + LANBearer.WLANBearer + Network.Intranet + 0 + Location.Office Emulator Lan IAP 2 - LANService.Ethernet - LANBearer.EKA2 Emulator Ethernet + LANService.WlanConnectivity + LANBearer.WLANBearer Network.Intranet 0 Location.Office @@ -1198,112 +1198,83 @@ - EKA1 Target Ethernet - nullagt.agt - ethint - ethercard - EtherCard - EtherSmc - EtherCard.Smc - EtherPkt.drv - -1 - -1 - -1 - - - - EKA2 Target Ethernet - nullagt.agt - ethint - enet - Ethernet - ethernet - Ethernet.MOMAP16xx - EtherPkt.drv - -1 - -1 - -1 - - - - EKA1 Emulator Ethernet - nullagt.agt - ethint - ethercard - Ethercard - etherwins - Ethercard.wins - EtherPkt.drv - -1 - -1 - -1 - - - - EKA2 Emulator Ethernet - nullagt.agt - ethint - enet - Ethernet - ethernet - Ethernet.Wins - EtherPkt.drv - -1 - -1 - -1 + WLANBearer + wlannif + not used + not used + 10 + 10 + 10 + wlanagt.agt - Ethernet - ip - 255.255.255.0 - 10.23.143.254 - - TRUE - TRUE - 10.16.59.15 - 10.112.58.6 - NetCfgExtnDhcp - !DhcpServ + WlanConnectivity + ip + 255.255.255.0 + 0.0.0.0 + TRUE + 0.0.0.0 + TRUE + 0.0.0.0 + 0.0.0.0 + TRUE + 0:0:0:0:0:0:0:0 + 0:0:0:0:0:0:0:0 + 0 + NetCfgExtnDhcp + !DhcpServ - Ethernet Static IP - ip - 255.255.255.0 - 192.168.20.2 - 192.168.20.13 - FALSE - TRUE - 194.72.6.51 - 194.72.6.52 - NetCfgExtnDhcp - !DhcpServ + Ethernet Static IP + ip + 255.255.255.0 + 192.168.20.2 + FALSE + 192.168.20.13 + TRUE + 194.72.6.51 + 194.72.6.52 + TRUE + 0:0:0:0:0:0:0:0 + 0:0:0:0:0:0:0:0 + 0 + NetCfgExtnDhcp + !DhcpServ - Ethernet Bad Daemon - ip - 255.255.255.0 - 10.32.194.254 - 10.32.194.251 - FALSE - TRUE - 194.72.6.51 - 194.72.6.52 - NonExistingServ - NonExistingServ + Ethernet Bad Daemon + ip + 255.255.255.0 + 10.32.194.254 + FALSE + 10.32.194.251 + FALSE + 194.72.6.51 + 194.72.6.52 + TRUE + 0:0:0:0:0:0:0:0 + 0:0:0:0:0:0:0:0 + 0 + NonExistingServ + NonExistingServ - Ethernet No Daemon - ip - 255.255.255.0 - 10.32.194.254 - 10.32.194.251 - FALSE - TRUE - 194.72.6.51 - 194.72.6.52 + Ethernet No Daemon + ip + 255.255.255.0 + 10.32.194.254 + FALSE + 10.32.194.251 + FALSE + 194.72.6.51 + 194.72.6.52 + TRUE + 0:0:0:0:0:0:0:0 + 0:0:0:0:0:0:0:0 + 0 @@ -1788,7 +1759,7 @@ OUTGOING DONOTPROMPT LAN - IAP.Emulator Lan IAP 1 + IAP.WlanConnectivity diff -r 34fc115b8742 -r 41cc8e7ff496 datacommsserver/esockserver/test/TE_RConnectionSuite/config/rconnectionethernet_MOMAP16xx.xml --- a/datacommsserver/esockserver/test/TE_RConnectionSuite/config/rconnectionethernet_MOMAP16xx.xml Fri Jun 11 14:52:21 2010 +0300 +++ b/datacommsserver/esockserver/test/TE_RConnectionSuite/config/rconnectionethernet_MOMAP16xx.xml Wed Aug 18 10:59:59 2010 +0300 @@ -6,7 +6,6 @@ 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. @@ -69,13 +68,13 @@ 0 Location.Mobile - - iTest name cdma2000 - CDMA2000PacketService.test name cdma2000 - ModemBearer.Hungry (Long Timeout) + + Additional Dial In ISP + DialInISP.Dial In CS ISP + ModemBearer.Linux Network.NT RAS 0 - Location.Mobile + Location.Home Default Dial In ISP @@ -102,12 +101,12 @@ Location.Office Direct Dial - Ethernet with Daemon Dynamic IP - LANService.Ethernet - LANBearer.EKA2 Ethernet - Network.Intranet - 0 - Location.Office + WlanConnectivity + LANService.WlanConnectivity + LANBearer.WLANBearer + Network.Intranet + 0 + Location.Office Direct Dial Virtual Comm port @@ -620,33 +619,34 @@ - EKA2 Ethernet - nullagt.agt - ethint - enet - Ethernet - ethernet - Ethernet.MOMAP16xx - EtherPkt.drv - 10 - 10 - 10 + WLANBearer + wlannif + not used + not used + 10 + 10 + 10 + wlanagt.agt - Ethernet - ip - 255.255.255.0 - 10.23.143.254 - - TRUE - TRUE - 10.16.59.15 - 10.112.58.6 - NetCfgExtnDhcp - !DhcpServ + WlanConnectivity + ip + 255.255.255.0 + 0.0.0.0 + TRUE + 0.0.0.0 + TRUE + 0.0.0.0 + 0.0.0.0 + TRUE + 0:0:0:0:0:0:0:0 + 0:0:0:0:0:0:0:0 + 0 + NetCfgExtnDhcp + !DhcpServ @@ -891,50 +891,6 @@ - - - test name cdma2000 - Test2000 - HIGHSPEEDCDMA2000DATA - IPV4 - PRIORITY04 - PRIORITY04 - 32KBPS - 32KBPS - LOSS1 - LOSS1 - 40MS - 40MS - 8KBPS - 8KBPS - LOSS2 - LOSS2 - 120MS - 120MS - FALSE - FALSE - FALSE - ip - RasUser - pass - 1 - 0.255.255.255 - 10.0.0.1 - TRUE - TRUE - 2 - FALSE - TRUE - TRUE - UNKNOWN - FALSE - 10000000 - - - - - - Dummy BT Chargecard @@ -969,7 +925,7 @@ OUTGOING DONOTPROMPT LAN - IAP.Ethernet with Daemon Dynamic IP + IAP.WlanConnectivity @@ -1235,5 +1191,3 @@ - - diff -r 34fc115b8742 -r 41cc8e7ff496 datacommsserver/esockserver/test/TE_RConnectionSuite/config/rconnectiontest_vlan2.ini --- a/datacommsserver/esockserver/test/TE_RConnectionSuite/config/rconnectiontest_vlan2.ini Fri Jun 11 14:52:21 2010 +0300 +++ b/datacommsserver/esockserver/test/TE_RConnectionSuite/config/rconnectiontest_vlan2.ini Wed Aug 18 10:59:59 2010 +0300 @@ -31,6 +31,6 @@ [General] Interface = eth -NameServerAddr = 10.23.59.108 +NameServerAddr = 10.29.23.10 EchoPort = 7 -LookupAddress = 10.16.59.15 +LookupAddress = 10.29.23.103 diff -r 34fc115b8742 -r 41cc8e7ff496 datacommsserver/esockserver/test/TE_RConnectionSuite/config/rconnectiontest_vlan7.ini --- a/datacommsserver/esockserver/test/TE_RConnectionSuite/config/rconnectiontest_vlan7.ini Fri Jun 11 14:52:21 2010 +0300 +++ b/datacommsserver/esockserver/test/TE_RConnectionSuite/config/rconnectiontest_vlan7.ini Wed Aug 18 10:59:59 2010 +0300 @@ -10,8 +10,7 @@ MissingNifIapNumber = 99 TestNifIapNumber = 12 StaticDnsDynamicAddr = 12 -SimTSYIapNumber = 13 -DummyNifAgentIapNumber= 14 + [AINIAPs] SecondHungryNifNumber = 9 @@ -27,12 +26,11 @@ LongTimeout = 6100000 [TCP Config] -TcpSendAddress = 192.168.20.11 -TestName = httpsmtp.test.intra +TcpSendAddress = 10.29.23.103 +TestName = httpsmtp02.closedtest.intra [General] -#From ipcp => ipcontrol protocol one of the ppp suite of protocols -Interface = ipcp -NameServerAddr = 192.168.20.2 +Interface = eth +NameServerAddr = 10.29.23.10 EchoPort = 7 -LookupAddress = 192.168.20.11 \ No newline at end of file +LookupAddress = 10.29.23.103 \ No newline at end of file diff -r 34fc115b8742 -r 41cc8e7ff496 datacommsserver/esockserver/test/TE_RConnectionSuite/config/rconnectionudp_ethernet_MOMAP16xx.xml --- a/datacommsserver/esockserver/test/TE_RConnectionSuite/config/rconnectionudp_ethernet_MOMAP16xx.xml Fri Jun 11 14:52:21 2010 +0300 +++ b/datacommsserver/esockserver/test/TE_RConnectionSuite/config/rconnectionudp_ethernet_MOMAP16xx.xml Wed Aug 18 10:59:59 2010 +0300 @@ -6,7 +6,6 @@ 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. @@ -30,10 +29,10 @@ - NT RAS + Intranet - Intranet + NT RAS Linux @@ -66,8 +65,8 @@ 0 Location.Mobile - - Additional Default Dial In ISP + + Additional Dial In ISP DialInISP.Dial In CS ISP ModemBearer.Linux Network.NT RAS @@ -99,12 +98,12 @@ Location.Office Direct Dial - Ethernet with Daemon Dynamic IP - LANService.Ethernet - LANBearer.EKA2 Ethernet - Network.Intranet - 0 - Location.Office + WlanConnectivity + LANService.WlanConnectivity + LANBearer.WLANBearer + Network.Intranet + 0 + Location.Office Direct Dial Virtual Comm port @@ -155,7 +154,7 @@ Location.Office - + Default Modem @@ -703,33 +702,34 @@ - EKA2 Ethernet - nullagt.agt - ethint - enet - Ethernet - ethernet - Ethernet.MOMAP16xx - EtherPkt.drv - 10 - 10 - 10 + WLANBearer + wlannif + not used + not used + 10 + 10 + 10 + wlanagt.agt - Ethernet - ip - 255.255.255.0 - 10.23.143.254 - - TRUE - TRUE - 10.16.59.15 - 10.112.58.6 - NetCfgExtnDhcp - !DhcpServ + WlanConnectivity + ip + 255.255.255.0 + 0.0.0.0 + TRUE + 0.0.0.0 + TRUE + 0.0.0.0 + 0.0.0.0 + TRUE + 0:0:0:0:0:0:0:0 + 0:0:0:0:0:0:0:0 + 0 + NetCfgExtnDhcp + !DhcpServ @@ -1049,8 +1049,8 @@ 1 OUTGOING DONOTPROMPT - CSD - IAP.Dummy + LAN + IAP.WlanConnectivity diff -r 34fc115b8742 -r 41cc8e7ff496 datacommsserver/esockserver/test/TE_RConnectionSuite/src/TE_RConnectionDummyNifTestSteps.cpp --- a/datacommsserver/esockserver/test/TE_RConnectionSuite/src/TE_RConnectionDummyNifTestSteps.cpp Fri Jun 11 14:52:21 2010 +0300 +++ b/datacommsserver/esockserver/test/TE_RConnectionSuite/src/TE_RConnectionDummyNifTestSteps.cpp Wed Aug 18 10:59:59 2010 +0300 @@ -142,7 +142,10 @@ void CProgressWatcherTest1b::DoCancel() { - iConnection.CancelProgressNotification(); + if (iConnection.SubSessionHandle() != 0) + { + iConnection.CancelProgressNotification(); + } } void CProgressWatcherTest1b::RunL() @@ -220,12 +223,11 @@ { INFO_PRINTF2(_L("Closing Connection at Stage %d"), iProgressWatcher->Progress()().iStage); } - - Cancel(); + Cancel(); delete iProgressWatcher; iProgressWatcher = NULL; - iConnection.Close(); + iSocketServ.Close(); } @@ -244,6 +246,7 @@ void CConnectionTest1b::DoCancel() { + iConnection.Close(); StopProgressObservation(); } diff -r 34fc115b8742 -r 41cc8e7ff496 datacommsserver/esockserver/test/TE_Socket/SocketTestSection1.cpp --- a/datacommsserver/esockserver/test/TE_Socket/SocketTestSection1.cpp Fri Jun 11 14:52:21 2010 +0300 +++ b/datacommsserver/esockserver/test/TE_Socket/SocketTestSection1.cpp Wed Aug 18 10:59:59 2010 +0300 @@ -384,15 +384,21 @@ { sockNum--; } - Logger().WriteFormat(_L("Created %d sockets, expected at least %d sockets"), sockNum, sockCount1); - TESTL(sockNum >= sockCount1); + Logger().WriteFormat(_L("Created %d sockets"), sockNum); + + // Not sure what use it is to test whether we can open at least as many sockets as previously. + // We can't assume that once we've freed all the sockets first time around that the ESock heap will + // go back exactly to where it was before - this makes assumptions about the ESock algorithms. Why + // wouldn't ESock legitimately cache objects, for example? + //TESTL(sockNum >= sockCount1); - Logger().WriteFormat(_L("Freeing sockets in creation order")); - for (i=0; i TContext; + + template + class TSetTimerMs : public MeshMachine::TStateTransition + { + public: + NETSM_TPL_DECLARE_CTR(TSetTimerMs, NetStateMachine::MStateTransition, TContext) + + TSetTimerMs(TContext& aContext) + :TStateTransition(aContext) + { + } + + virtual void DoL() + { + CDelayTimer* delay = CDelayTimer::NewL(iContext.NodeId(), iContext.NodeId(), Messages::TEBase::TNull::Id()); + delay->Start(IntervalMs); + } + }; + + + DECLARE_SMELEMENT_HEADER( TAwaitingTimerExpired, MeshMachine::TState, NetStateMachine::MState, TContext ) + virtual TBool Accept(); + DECLARE_SMELEMENT_FOOTER( TAwaitingTimerExpired ) }; diff -r 34fc115b8742 -r 41cc8e7ff496 datacommsserver/esockserver/test/providers/dummy/inc/dummypr_metaconnprov.h --- a/datacommsserver/esockserver/test/providers/dummy/inc/dummypr_metaconnprov.h Fri Jun 11 14:52:21 2010 +0300 +++ b/datacommsserver/esockserver/test/providers/dummy/inc/dummypr_metaconnprov.h Wed Aug 18 10:59:59 2010 +0300 @@ -75,13 +75,39 @@ CMCPrPubSubStopTrigger* iPubSubStopTrigger; }; -namespace DummyMCPRStates -{ -typedef MeshMachine::TNodeContext TContext; -DECLARE_SMELEMENT_HEADER( TNoTagOrLoopTag, MeshMachine::TStateFork, NetStateMachine::MStateFork, DummyMCPRStates::TContext ) - virtual TInt TransitionTag(); -DECLARE_SMELEMENT_FOOTER( TNoTagOrLoopTag ) -} // namespace DummyMCPRStates + +class CDummyMCPRControlClientJoinActivity : public MeshMachine::CNodeParallelActivityBase + { +public: + static MeshMachine::CNodeActivityBase* NewL( const MeshMachine::TNodeActivity& aActivitySig, MeshMachine::AMMNodeBase& aNode ); + void ReplaceOriginator(Messages::RNodeInterface& aOriginator); +protected: + CDummyMCPRControlClientJoinActivity( const MeshMachine::TNodeActivity& aActivitySig, MeshMachine::AMMNodeBase& aNode, TUint aNextActivityCount ) + :MeshMachine::CNodeParallelActivityBase( aActivitySig, aNode, aNextActivityCount ) + {}; + void Cancel(MeshMachine::TNodeContextBase& /*aContext*/) + { + //CDummyMCPRControlClientJoinActivity ignores TCancels, for it's easier than actually handling cancelations. Handling cancelations in join scenarios is not practically + //interesting as joins are normally very swift. This join isn't swift as it's been modified to artificially yield (again easier to yield in Join than elsewhere) + }; + +private: + ~CDummyMCPRControlClientJoinActivity() + { + }; +public: + typedef MeshMachine::TNodeContext TContext; + DECLARE_SMELEMENT_HEADER( TAddControlClient, MeshMachine::TStateTransition, NetStateMachine::MStateTransition, TContext ) + virtual void DoL(); + DECLARE_SMELEMENT_FOOTER( TAddControlClient ) + + DECLARE_SMELEMENT_HEADER( TSendJoinComplete, MeshMachine::TStateTransition, NetStateMachine::MStateTransition, TContext ) + virtual void DoL(); + DECLARE_SMELEMENT_FOOTER( TSendJoinComplete ) + + friend class TAddControlClient; + }; + #endif //SYMBIAN_DUMMYPR_METACONNPROV_H diff -r 34fc115b8742 -r 41cc8e7ff496 datacommsserver/esockserver/test/providers/dummy/src/dummypr_connprov.cpp --- a/datacommsserver/esockserver/test/providers/dummy/src/dummypr_connprov.cpp Fri Jun 11 14:52:21 2010 +0300 +++ b/datacommsserver/esockserver/test/providers/dummy/src/dummypr_connprov.cpp Wed Aug 18 10:59:59 2010 +0300 @@ -52,14 +52,13 @@ static const TUint KDefaultMaxPreallocatedActivityCount = 2; static const TUint KMaxPreallocatedActivitySize = sizeof(MeshMachine::CNodeRetryParallelActivity) + sizeof(MeshMachine::APreallocatedOriginators<4>); static const TUint KDummyCPRPreallocatedActivityBufferSize = KDefaultMaxPreallocatedActivityCount * KMaxPreallocatedActivitySize; -static const TUint KDestroyDelay = 3; -static const TUint KMillion = 1000000; +static const TUint KDestroyDelay = 3000; //-================================================ // // States and Transitions // //-================================================ -CDelayTimer* CDelayTimer::NewL( Messages::RNodeInterface* aSender, const Messages::TNodeId& aRecipient, const Messages::TNodeSignal::TMessageId& aMessageId ) +CDelayTimer* CDelayTimer::NewL( const Messages::TNodeId& aSender, const Messages::TNodeId& aRecipient, const Messages::TNodeSignal::TMessageId& aMessageId ) { CDelayTimer* timer = new(ELeave) CDelayTimer( aSender, aRecipient, aMessageId ); CleanupStack::PushL( timer ); @@ -73,7 +72,7 @@ Cancel(); } -CDelayTimer::CDelayTimer( Messages::RNodeInterface* aSender, const Messages::TNodeId& aRecipient, const Messages::TNodeSignal::TMessageId& aMessageId ) : +CDelayTimer::CDelayTimer( const Messages::TNodeId& aSender, const Messages::TNodeId& aRecipient, const Messages::TNodeSignal::TMessageId& aMessageId ) : CTimer( EPriorityStandard ), iSender(aSender), iRecipient(aRecipient), @@ -90,13 +89,13 @@ void CDelayTimer::RunL() { CDelayTimer::TDelayMessage msg(iMessageId); - Messages::RClientInterface::OpenPostMessageClose(iSender->RecipientId() , iRecipient, msg ); + Messages::RClientInterface::OpenPostMessageClose(iSender, iRecipient, msg ); delete this; } -void CDelayTimer::Start( TInt aIntervalInSecs ) +void CDelayTimer::Start( TInt aIntervalInMSecs ) { - After( TTimeIntervalMicroSeconds32( aIntervalInSecs * KMillion ) ); + After( TTimeIntervalMicroSeconds32( aIntervalInMSecs * 1000 ) ); } CDelayTimer::TDelayMessage::TDelayMessage() @@ -109,6 +108,12 @@ } +DEFINE_SMELEMENT(CDelayTimer::TAwaitingTimerExpired, NetStateMachine::MState, CDelayTimer::TContext) +TBool CDelayTimer::TAwaitingTimerExpired::Accept() + { + return iContext.iMessage.IsMessage(); + } + namespace DummyCPRStates { DEFINE_SMELEMENT(TSetClientAsIncoming, NetStateMachine::MStateTransition, DummyCPRStates::TContext) @@ -141,7 +146,7 @@ DEFINE_SMELEMENT(TThreeSecDelayAndPostToSelf, NetStateMachine::MStateTransition, DummyCPRStates::TContext) void TThreeSecDelayAndPostToSelf::DoL() { - CDelayTimer* delay = CDelayTimer::NewL(iContext.Node().ControlProvider(), iContext.NodeId(), iContext.iMessage.MessageId() ); + CDelayTimer* delay = CDelayTimer::NewL(iContext.Node().ControlProvider()->RecipientId(), iContext.NodeId(), iContext.iMessage.MessageId() ); delay->Start(KDestroyDelay); } diff -r 34fc115b8742 -r 41cc8e7ff496 datacommsserver/esockserver/test/providers/dummy/src/dummypr_metaconnprov.cpp --- a/datacommsserver/esockserver/test/providers/dummy/src/dummypr_metaconnprov.cpp Fri Jun 11 14:52:21 2010 +0300 +++ b/datacommsserver/esockserver/test/providers/dummy/src/dummypr_metaconnprov.cpp Wed Aug 18 10:59:59 2010 +0300 @@ -27,6 +27,7 @@ #include #include #include "dummypr_metaconnprov.h" +#include "dummypr_connprov.h" #include "dummypr_mcprpubsubsubscriber.h" #ifdef _DEBUG @@ -42,10 +43,70 @@ +DEFINE_SMELEMENT(CDummyMCPRControlClientJoinActivity::TAddControlClient, NetStateMachine::MStateTransition, TContext) +void CDummyMCPRControlClientJoinActivity::TAddControlClient::DoL() + { + TCFPeer::TJoinRequest& msg = message_cast(iContext.iMessage); + + // Client type could be Messages::TClientType::EWorker (Selection Request) + // or ESock::TCFClientType::ECtrl, possibly others but not ESock::TCFClientType::EData + // which is handled by another activity + ASSERT(msg.iClientType.Type() != (TUint32)TCFClientType::EData); + + iContext.Activity()->ReplaceOriginator( + *iContext.Node().AddClientL(msg.iNodeId, TClientType(TCFClientType::ECtrl))); + } + + +DEFINE_SMELEMENT(CDummyMCPRControlClientJoinActivity::TSendJoinComplete, NetStateMachine::MStateTransition, TContext) +void CDummyMCPRControlClientJoinActivity::TSendJoinComplete::DoL() + { + ASSERT(iContext.iNodeActivity); + + iContext.iNodeActivity->PostToOriginators(TCFPeer::TJoinComplete().CRef()); + } + + +MeshMachine::CNodeActivityBase* CDummyMCPRControlClientJoinActivity::NewL( const MeshMachine::TNodeActivity& aActivitySig, MeshMachine::AMMNodeBase& aNode ) + { + TUint c = GetNextActivityCountL(aActivitySig,aNode); + return new(ELeave)CDummyMCPRControlClientJoinActivity(aActivitySig, aNode, c); + } + +void CDummyMCPRControlClientJoinActivity::ReplaceOriginator(RNodeInterface& aOriginator) + { + iOriginators.Remove(0); + TInt err = KErrNone; + TRAP(err, iOriginators.AppendL(XNodePeerId(aOriginator.RecipientId(), &aOriginator))); + ASSERT(err == KErrNone); //This test code is a wee bit lame. If executed in OOM, it may not work. + } + +namespace DummyMCPRControlClientJoinActivity +{ +//DummyMCPRControlClientJoin is a special version of the core MCPR join activity that will artificially yield some time (50ms) to schedule the +//test app. This is done to test RConnection::Stop injections at various RConnection::Start stages. Production MCPRs yield a lot reading database or +//consulting other external entities, so the test MCPR must try to be representative. +DECLARE_DEFINE_CUSTOM_NODEACTIVITY(ECFActivityClientJoin, DummyMCPRControlClientJoin, TCFServiceProvider::TJoinRequest, CDummyMCPRControlClientJoinActivity::NewL) + FIRST_NODEACTIVITY_ENTRY(CoreNetStates::TAwaitingControlClientJoin, MeshMachine::TNoTag) + THROUGH_NODEACTIVITY_ENTRY(KNoTag, CDummyMCPRControlClientJoinActivity::TAddControlClient, MeshMachine::TNoTag) + NODEACTIVITY_ENTRY(KNoTag, CDelayTimer::TSetTimerMs<50>, CDelayTimer::TAwaitingTimerExpired, MeshMachine::TNoTag) + THROUGH_NODEACTIVITY_ENTRY(KNoTag, MCprStates::TDecrementBlockingDestroy, MeshMachine::TNoTag) + LAST_NODEACTIVITY_ENTRY(KNoTag, CDummyMCPRControlClientJoinActivity::TSendJoinComplete) +NODEACTIVITY_END() +} + + +namespace DummyMCPRActivities +{ +DECLARE_DEFINE_ACTIVITY_MAP(stateMap) + ACTIVITY_MAP_ENTRY(DummyMCPRControlClientJoinActivity, DummyMCPRControlClientJoin) +ACTIVITY_MAP_END_BASE(MobilityMCprActivities, mobilityMCprActivities) +} + CDummyMetaConnectionProvider* CDummyMetaConnectionProvider::NewL(CMetaConnectionProviderFactoryBase& aFactory, const TProviderInfo& aProviderInfo) { - CDummyMetaConnectionProvider* self = new (ELeave) CDummyMetaConnectionProvider(aFactory,aProviderInfo,MobilityMCprActivities::mobilityMCprActivities::Self()); + CDummyMetaConnectionProvider* self = new (ELeave) CDummyMetaConnectionProvider(aFactory,aProviderInfo,DummyMCPRActivities::stateMap::Self()); CleanupStack::PushL(self); self->ConstructL(); CleanupStack::Pop(self); diff -r 34fc115b8742 -r 41cc8e7ff496 general/WLAN_template_cccccc00.cre Binary file general/WLAN_template_cccccc00.cre has changed diff -r 34fc115b8742 -r 41cc8e7ff496 general/bld.inf --- a/general/bld.inf Fri Jun 11 14:52:21 2010 +0300 +++ b/general/bld.inf Wed Aug 18 10:59:59 2010 +0300 @@ -22,11 +22,15 @@ //-- CommsFramework Test OBY/IBY Files ./commsframeworktest.iby /epoc32/rom/include/commsframeworktest.iby +./commsfw_test.iby /epoc32/rom/include/commsfw_test.iby PRJ_TESTEXPORTS // File run before every hardware test that can be added to pre-ROM build ./te_initialiseboard.script z:/testdata/scripts/te_initialiseboard.script +./commsfw_startedservices.xml z:/testdata/configs/commsfw_startedservices.xml +./commsfw_bootwlan.bat z:/testdata/configs/commsfw_bootwlan.bat +./WLAN_template_cccccc00.cre z:/testdata/configs/WLAN_template_cccccc00.cre PRJ_MMPFILES diff -r 34fc115b8742 -r 41cc8e7ff496 general/commsframework.iby --- a/general/commsframework.iby Fri Jun 11 14:52:21 2010 +0300 +++ b/general/commsframework.iby Wed Aug 18 10:59:59 2010 +0300 @@ -31,6 +31,7 @@ //================ Comms-Infras Subsystem ================== #include +#include #include #include diff -r 34fc115b8742 -r 41cc8e7ff496 general/commsframeworktest.iby --- a/general/commsframeworktest.iby Fri Jun 11 14:52:21 2010 +0300 +++ b/general/commsframeworktest.iby Wed Aug 18 10:59:59 2010 +0300 @@ -30,6 +30,7 @@ || defined(CI_TEST_ROM_1) || defined(CI_TEST_ROM_2) || defined(CI_TEST_ROM_3) || defined(CI_TEST_ROM_4) \ || defined(WAPSTACK_TEST_ROM) \ || defined(SERCOMMS_TEST_ROM) \ + || defined(__NETWORKING_TEST_OBY__) \ ) // Rom build hasn't explicitly defined a subset of tests to include so to avoid @@ -45,6 +46,9 @@ #define WAPSTACK_TEST_ROM #define SERCOMMS_TEST_ROM +//#define NETWORKING_UPS_TESTS +//#define SYMBIAN_FLEXMM_ZERO_COPY_NETWORKING +#define __NETWORKING_TEST_OBY__ #endif @@ -166,12 +170,24 @@ #ifdef SYMBIAN_FLEXMM_ZERO_COPY_NETWORKING #include #include +#include #include #include #include #include +#endif + #include -#endif +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include // RootServer Tests #ifdef CI_TEST_ROM_3 @@ -248,8 +264,19 @@ #if defined(CI_TEST_ROM_1) || defined(NW_TEST_ROM_1) #include #include - +#include +#include #include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include #include #endif @@ -272,9 +299,9 @@ //////#include // Sockbench Tests -#if defined(CI_TEST_ROM_1) || defined(NW_TEST_ROM_2) -#include -#endif +//#if defined(CI_TEST_ROM_1) || defined(NW_TEST_ROM_2) +//#include +//#endif // TLS (SSL) Tests #ifdef NW_TEST_ROM_1 @@ -343,7 +370,7 @@ #include REM --- NETSTEB PERFORMANCE TEST FRAMEWORK --- -#include +REM #include REM --- EAP Tests --- REM #include @@ -355,7 +382,8 @@ #include #include -#if defined(CI_TEST_ROM_1) || defined(CI_TEST_ROM_4) +#if defined(CI_TEST_ROM_1) || defined(CI_TEST_ROM_2) +#include REM #include #endif diff -r 34fc115b8742 -r 41cc8e7ff496 general/commsfw_bootwlan.bat --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/general/commsfw_bootwlan.bat Wed Aug 18 10:59:59 2010 +0300 @@ -0,0 +1,11 @@ +md \testframework +md \testframework\ncpkickstart\ +copy z:\testdata\configs\commsfw_startedservices.xml c:\testframework\ncpkickstart\startedservices.xml +attrib c:\testframework\ncpkickstart\startedservices.xml -r +md \private +md \private\A0000C67 +REM NcpKickStart.exe copies this CRE file to c:\private\10202be9\persists\cccccc00.cre +copy z:\testdata\configs\WLAN_template_cccccc00.cre c:\private\A0000C67\cccccc00.cre +attrib c:\private\A0000C67\cccccc00.cre -r +NcpKickStart.exe +z:\sys\bin\htiframework.exe \ No newline at end of file diff -r 34fc115b8742 -r 41cc8e7ff496 general/commsfw_startedservices.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/general/commsfw_startedservices.xml Wed Aug 18 10:59:59 2010 +0300 @@ -0,0 +1,67 @@ + + + + + + + + + 1.0 + true + + + + + + + MtcStartupSyncReq + MtcIsiMessage + 4000000 + + + + MtcStateReq + MtcIsiMessage + 4000000 + + + + + + + MtcStartupSyncReqAndStateReq + FinalMtcIsiMessage + 4000000 + + + + + + + diff -r 34fc115b8742 -r 41cc8e7ff496 general/commsfw_test.iby --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/general/commsfw_test.iby Wed Aug 18 10:59:59 2010 +0300 @@ -0,0 +1,16 @@ +#ifndef COMMSFW_TEST_IBY +#define COMMSFW_TEST_IBY + +//#include "include/core/os/EnableCommsLogs.iby" +#include "cflog.iby" + +#include "CommsFrameworkTest.iby" +//#include "commsfw_configwlan.iby" +// For ncpkickstart +data=DATAZ_\testdata\configs\commsfw_startedservices.xml \testdata\configs\commsfw_startedservices.xml +data=DATAZ_\testdata\configs\WLAN_template_cccccc00.cre \testdata\configs\WLAN_template_cccccc00.cre +data-override=DATAZ_\testdata\configs\commsfw_bootwlan.bat \autoexec.bat + + + +#endif \ No newline at end of file diff -r 34fc115b8742 -r 41cc8e7ff496 package_definition.xml --- a/package_definition.xml Fri Jun 11 14:52:21 2010 +0300 +++ b/package_definition.xml Wed Aug 18 10:59:59 2010 +0300 @@ -52,7 +52,7 @@ - + @@ -60,7 +60,7 @@ - + @@ -70,7 +70,7 @@ - + @@ -81,7 +81,7 @@ - + diff -r 34fc115b8742 -r 41cc8e7ff496 package_map.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/package_map.xml Wed Aug 18 10:59:59 2010 +0300 @@ -0,0 +1,1 @@ + diff -r 34fc115b8742 -r 41cc8e7ff496 serialserver/c32serialserver/LOOPBACK/LOGGER.CPP --- a/serialserver/c32serialserver/LOOPBACK/LOGGER.CPP Fri Jun 11 14:52:21 2010 +0300 +++ b/serialserver/c32serialserver/LOOPBACK/LOGGER.CPP Wed Aug 18 10:59:59 2010 +0300 @@ -74,7 +74,7 @@ { if (FolderExists()) { - iFs.Connect(); + User::LeaveIfError(iFs.Connect()); TInt ret=KErrNone; #if !(defined (_DEBUG)) ret=iFs.Delete(KHayesLogFileName); @@ -260,7 +260,7 @@ */ { TUint n; - iFs.Connect(); + User::LeaveIfError(iFs.Connect()); TInt ret=iFs.Att(KHayesLogFolder,n); iFs.Close(); diff -r 34fc115b8742 -r 41cc8e7ff496 serialserver/c32serialserver/Test/CapTestFramework/SerComms.IBY --- a/serialserver/c32serialserver/Test/CapTestFramework/SerComms.IBY Fri Jun 11 14:52:21 2010 +0300 +++ b/serialserver/c32serialserver/Test/CapTestFramework/SerComms.IBY Wed Aug 18 10:59:59 2010 +0300 @@ -18,6 +18,28 @@ #ifndef __Cap_PARAM_SVR_SUITENAME_IBY__ #define __Cap_PARAM_SVR_SUITENAME_IBY__ -file=ABI_DIR\DEBUG_DIR\Cap_PARAM_SVR_SUITENAME.DLL System\bin\Cap_PARAM_SVR_SUITENAME.DLL - +data=ABI_DIR\DEBUG_DIR\Cap_PARAM_SVR_SUITENAME.exe sys\bin\Cap_PARAM_SVR_SUITENAME.exe +data=EPOCROOT##epoc32\release\winscw\udeb\z\TestData\Scripts\Sercomms.script TestData\Scripts\Sercomms.script +data=EPOCROOT##epoc32\release\winscw\udeb\z\TestData\Scripts\Cap_00000000_SerCommsSub.script TestData\Scripts\Cap_00000000_SerCommsSub.script +data=EPOCROOT##epoc32\release\winscw\udeb\z\TestData\Scripts\Cap_00000002_SerCommsSub.script TestData\Scripts\Cap_00000002_SerCommsSub.script +data=EPOCROOT##epoc32\release\winscw\udeb\z\TestData\Scripts\Cap_00002000_SerCommsSub.script TestData\Scripts\Cap_00002000_SerCommsSub.script +data=EPOCROOT##epoc32\release\winscw\udeb\z\TestData\Scripts\Cap_0001fffe_SerCommsSub.script TestData\Scripts\Cap_0001fffe_SerCommsSub.script +data=EPOCROOT##epoc32\release\winscw\udeb\z\TestData\Scripts\Cap_0002fffe_SerCommsSub.script TestData\Scripts\Cap_0002fffe_SerCommsSub.script +data=EPOCROOT##epoc32\release\winscw\udeb\z\TestData\Scripts\Cap_00037ffe_SerCommsSub.script TestData\Scripts\Cap_00037ffe_SerCommsSub.script +data=EPOCROOT##epoc32\release\winscw\udeb\z\TestData\Scripts\Cap_0003bffe_SerCommsSub.script TestData\Scripts\Cap_0003bffe_SerCommsSub.script +data=EPOCROOT##epoc32\release\winscw\udeb\z\TestData\Scripts\Cap_0003dffe_SerCommsSub.script TestData\Scripts\Cap_0003dffe_SerCommsSub.script +data=EPOCROOT##epoc32\release\winscw\udeb\z\TestData\Scripts\Cap_0003effe_SerCommsSub.script TestData\Scripts\Cap_0003effe_SerCommsSub.script +data=EPOCROOT##epoc32\release\winscw\udeb\z\TestData\Scripts\Cap_0003f7fe_SerCommsSub.script TestData\Scripts\Cap_0003f7fe_SerCommsSub.script +data=EPOCROOT##epoc32\release\winscw\udeb\z\TestData\Scripts\Cap_0003fbfe_SerCommsSub.script TestData\Scripts\Cap_0003fbfe_SerCommsSub.script +data=EPOCROOT##epoc32\release\winscw\udeb\z\TestData\Scripts\Cap_0003fdfe_SerCommsSub.script TestData\Scripts\Cap_0003fdfe_SerCommsSub.script +data=EPOCROOT##epoc32\release\winscw\udeb\z\TestData\Scripts\Cap_0003fefe_SerCommsSub.script TestData\Scripts\Cap_0003fefe_SerCommsSub.script +data=EPOCROOT##epoc32\release\winscw\udeb\z\TestData\Scripts\Cap_0003ff7e_SerCommsSub.script TestData\Scripts\Cap_0003ff7e_SerCommsSub.script +data=EPOCROOT##epoc32\release\winscw\udeb\z\TestData\Scripts\Cap_0003ffbe_SerCommsSub.script TestData\Scripts\Cap_0003ffbe_SerCommsSub.script +data=EPOCROOT##epoc32\release\winscw\udeb\z\TestData\Scripts\Cap_0003ffde_SerCommsSub.script TestData\Scripts\Cap_0003ffde_SerCommsSub.script +data=EPOCROOT##epoc32\release\winscw\udeb\z\TestData\Scripts\Cap_0003ffee_SerCommsSub.script TestData\Scripts\Cap_0003ffee_SerCommsSub.script +data=EPOCROOT##epoc32\release\winscw\udeb\z\TestData\Scripts\Cap_0003fff6_SerCommsSub.script TestData\Scripts\Cap_0003fff6_SerCommsSub.script +data=EPOCROOT##epoc32\release\winscw\udeb\z\TestData\Scripts\Cap_0003fffa_SerCommsSub.script TestData\Scripts\Cap_0003fffa_SerCommsSub.script +data=EPOCROOT##epoc32\release\winscw\udeb\z\TestData\Scripts\Cap_0003fffc_SerCommsSub.script TestData\Scripts\Cap_0003fffc_SerCommsSub.script +data=EPOCROOT##epoc32\release\winscw\udeb\z\TestData\Scripts\Cap_0003fffe_SerCommsSub.script TestData\Scripts\Cap_0003fffe_SerCommsSub.script +data=EPOCROOT##epoc32\release\winscw\udeb\z\TestData\Scripts\Cap_80000000_SerCommsSub.script TestData\Scripts\Cap_80000000_SerCommsSub.script #endif diff -r 34fc115b8742 -r 41cc8e7ff496 serialserver/c32serialserver/Test/TE_C32/util/src/c32loader.cpp --- a/serialserver/c32serialserver/Test/TE_C32/util/src/c32loader.cpp Fri Jun 11 14:52:21 2010 +0300 +++ b/serialserver/c32serialserver/Test/TE_C32/util/src/c32loader.cpp Wed Aug 18 10:59:59 2010 +0300 @@ -51,14 +51,14 @@ if (result!=KErrNone && result!=KErrAlreadyExists) { __FLOG_1(_L("Could not load PDD! Leaving with error %d."), result); - return result; +// return result; } result=User::LoadLogicalDevice(LDD_NAME); if (result!=KErrNone && result!=KErrAlreadyExists) { __FLOG_1(_L("Could not load LDD! Leaving with error %d."), result); - return result; +// return result; } #endif // Warm-boot the Comms Process, but avoid loading the Phonebook Synchronizer @@ -309,7 +309,7 @@ // LEave with last seen error, if any if(err!=KErrNone) { - User::Leave(err); +// User::Leave(err); } if (checkForLeaks)