# HG changeset patch # User Dremov Kirill (Nokia-D-MSW/Tampere) # Date 1264504154 -7200 # Node ID 928ed51ddc435375e855ae6cd4e979e5b4165ddf # Parent b6139031a2397933bf0aedfca35575ccb406897d Revision: 201004 Kit: 201004 diff -r b6139031a239 -r 928ed51ddc43 commsconfig/commsdatabaseshim/Documentation/BC Shim Design Document.doc --- a/commsconfig/commsdatabaseshim/Documentation/BC Shim Design Document.doc Fri Jan 22 10:58:59 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -ÐÏࡱ \ No newline at end of file diff -r b6139031a239 -r 928ed51ddc43 commsconfig/commsdatabaseshim/Documentation/CommDb_API.doc --- a/commsconfig/commsdatabaseshim/Documentation/CommDb_API.doc Fri Jan 22 10:58:59 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -ÐÏࡱ \ No newline at end of file diff -r b6139031a239 -r 928ed51ddc43 commsconfig/commsdatabaseshim/Documentation/CommDb_Design_Delta.doc --- a/commsconfig/commsdatabaseshim/Documentation/CommDb_Design_Delta.doc Fri Jan 22 10:58:59 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -ÐÏࡱ \ No newline at end of file diff -r b6139031a239 -r 928ed51ddc43 commsconfig/commsdatabaseshim/Documentation/CommDb_Unit_Test_Specification.doc --- a/commsconfig/commsdatabaseshim/Documentation/CommDb_Unit_Test_Specification.doc Fri Jan 22 10:58:59 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -ÐÏࡱ \ No newline at end of file diff -r b6139031a239 -r 928ed51ddc43 commsfw_info/commsinfrastructuredocs/Comms Framework Migration Guide for NIFs and v1.5 PRTs.doc Binary file commsfw_info/commsinfrastructuredocs/Comms Framework Migration Guide for NIFs and v1.5 PRTs.doc has changed diff -r b6139031a239 -r 928ed51ddc43 commsfw_info/commsinfrastructuredocs/Comms-Infras_Subsystem_Architectural_Description.doc Binary file commsfw_info/commsinfrastructuredocs/Comms-Infras_Subsystem_Architectural_Description.doc has changed diff -r b6139031a239 -r 928ed51ddc43 commsfw_info/commsinfrastructuredocs/Comms-Infras_Subsystem_Architecture_FAQ.doc Binary file commsfw_info/commsinfrastructuredocs/Comms-Infras_Subsystem_Architecture_FAQ.doc has changed diff -r b6139031a239 -r 928ed51ddc43 commsfw_info/commsinfrastructuredocs/Comms-Infras_Subsystem_Functional_Specification.doc Binary file commsfw_info/commsinfrastructuredocs/Comms-Infras_Subsystem_Functional_Specification.doc has changed diff -r b6139031a239 -r 928ed51ddc43 commsfw_info/commsinfrastructuredocs/Comms-Infras_Subsystem_How_to_implement_a_layer.doc Binary file commsfw_info/commsinfrastructuredocs/Comms-Infras_Subsystem_How_to_implement_a_layer.doc has changed diff -r b6139031a239 -r 928ed51ddc43 commsfw_info/commsinfrastructuredocs/Comms-Infras_Subsystem_Release_Note.doc Binary file commsfw_info/commsinfrastructuredocs/Comms-Infras_Subsystem_Release_Note.doc has changed diff -r b6139031a239 -r 928ed51ddc43 commsfw_info/commsinfrastructuredocs/How to run test harnesses in Comms-Infras.doc Binary file commsfw_info/commsinfrastructuredocs/How to run test harnesses in Comms-Infras.doc has changed diff -r b6139031a239 -r 928ed51ddc43 commsfw_info/commsinfrastructuredocs/Selection Fundamentals.doc Binary file commsfw_info/commsinfrastructuredocs/Selection Fundamentals.doc has changed diff -r b6139031a239 -r 928ed51ddc43 commsfwsupport/commselements/MsgParser/Documentation/Message Structure & Parser Design Document.doc Binary file commsfwsupport/commselements/MsgParser/Documentation/Message Structure & Parser Design Document.doc has changed diff -r b6139031a239 -r 928ed51ddc43 commsfwsupport/commselements/NetMeta/Documentation/NetMeta_Design_Document.doc Binary file commsfwsupport/commselements/NetMeta/Documentation/NetMeta_Design_Document.doc has changed diff -r b6139031a239 -r 928ed51ddc43 commsfwsupport/commselements/NetSubscribe/documentation/NetSubscribe Design.doc Binary file commsfwsupport/commselements/NetSubscribe/documentation/NetSubscribe Design.doc has changed diff -r b6139031a239 -r 928ed51ddc43 commsfwsupport/commselements/StartServer/Documentation/Start Server Design Document.doc Binary file commsfwsupport/commselements/StartServer/Documentation/Start Server Design Document.doc has changed diff -r b6139031a239 -r 928ed51ddc43 commsfwsupport/commselements/StateMachine/Documentation/State Machine Design Document.doc Binary file commsfwsupport/commselements/StateMachine/Documentation/State Machine Design Document.doc has changed diff -r b6139031a239 -r 928ed51ddc43 commsfwsupport/commselements/commsfw/documentation/CFTransport Design Document.doc Binary file commsfwsupport/commselements/commsfw/documentation/CFTransport Design Document.doc has changed diff -r b6139031a239 -r 928ed51ddc43 commsfwsupport/commselements/commsfw/documentation/Comms Framework API.doc Binary file commsfwsupport/commselements/commsfw/documentation/Comms Framework API.doc has changed diff -r b6139031a239 -r 928ed51ddc43 commsfwsupport/commselements/commsfw/documentation/Comms Framework Test Specification.doc Binary file commsfwsupport/commselements/commsfw/documentation/Comms Framework Test Specification.doc has changed diff -r b6139031a239 -r 928ed51ddc43 commsfwsupport/commselements/commsfw/te_commsfw_transport/documentation/Preq 399 Thread Transport Test Specification.doc Binary file commsfwsupport/commselements/commsfw/te_commsfw_transport/documentation/Preq 399 Thread Transport Test Specification.doc has changed diff -r b6139031a239 -r 928ed51ddc43 commsfwsupport/commselements/meshmachine/documentation/MeshMachineFundamentals.doc Binary file commsfwsupport/commselements/meshmachine/documentation/MeshMachineFundamentals.doc has changed diff -r b6139031a239 -r 928ed51ddc43 commsfwsupport/commselements/nodemessages/documentation/SGL.GT0359.057.NodeMessages_Design.doc Binary file commsfwsupport/commselements/nodemessages/documentation/SGL.GT0359.057.NodeMessages_Design.doc has changed diff -r b6139031a239 -r 928ed51ddc43 commsfwsupport/commselements/rootserver/documentation/Root Server API Reference.doc Binary file commsfwsupport/commselements/rootserver/documentation/Root Server API Reference.doc has changed diff -r b6139031a239 -r 928ed51ddc43 commsfwsupport/commselements/rootserver/documentation/Root Server Capabilities Test Spec.doc Binary file commsfwsupport/commselements/rootserver/documentation/Root Server Capabilities Test Spec.doc has changed diff -r b6139031a239 -r 928ed51ddc43 commsfwsupport/commselements/rootserver/documentation/Root Server Design Document.doc Binary file commsfwsupport/commselements/rootserver/documentation/Root Server Design Document.doc has changed diff -r b6139031a239 -r 928ed51ddc43 commsfwsupport/commselements/rootserver/documentation/RootServer Component Test Spec.doc Binary file commsfwsupport/commselements/rootserver/documentation/RootServer Component Test Spec.doc has changed diff -r b6139031a239 -r 928ed51ddc43 commsfwsupport/commselements/testing/asyncenv_devcycle_demo/documentation/Asynchronous Environment Development Demo.doc Binary file commsfwsupport/commselements/testing/asyncenv_devcycle_demo/documentation/Asynchronous Environment Development Demo.doc has changed diff -r b6139031a239 -r 928ed51ddc43 commsfwtools/commstools/messageinterceptregister/documentation/HowToTestFallibleMessages.doc Binary file commsfwtools/commstools/messageinterceptregister/documentation/HowToTestFallibleMessages.doc has changed diff -r b6139031a239 -r 928ed51ddc43 commsfwtools/commstools/messageinterceptregister/documentation/MessageInterceptorDesign.doc Binary file commsfwtools/commstools/messageinterceptregister/documentation/MessageInterceptorDesign.doc has changed diff -r b6139031a239 -r 928ed51ddc43 commsfwtools/commstools/svg/messagesequencetool.doc Binary file commsfwtools/commstools/svg/messagesequencetool.doc has changed diff -r b6139031a239 -r 928ed51ddc43 commsfwtools/preparedefaultcommsdatabase/Documentation/CED_Migration_Design.doc Binary file commsfwtools/preparedefaultcommsdatabase/Documentation/CED_Migration_Design.doc has changed diff -r b6139031a239 -r 928ed51ddc43 commsfwtools/preparedefaultcommsdatabase/Documentation/Ceddump migration Design.doc Binary file commsfwtools/preparedefaultcommsdatabase/Documentation/Ceddump migration Design.doc has changed diff -r b6139031a239 -r 928ed51ddc43 commsfwtools/preparedefaultcommsdatabase/Documentation/Comms Dat Ref Final Documentation.doc Binary file commsfwtools/preparedefaultcommsdatabase/Documentation/Comms Dat Ref Final Documentation.doc has changed diff -r b6139031a239 -r 928ed51ddc43 commsfwtools/preparedefaultcommsdatabase/Documentation/Comms Database Data Schema Description.doc Binary file commsfwtools/preparedefaultcommsdatabase/Documentation/Comms Database Data Schema Description.doc has changed diff -r b6139031a239 -r 928ed51ddc43 commsfwtools/preparedefaultcommsdatabase/Documentation/CommsDat API and Migration Guide.doc Binary file commsfwtools/preparedefaultcommsdatabase/Documentation/CommsDat API and Migration Guide.doc has changed diff -r b6139031a239 -r 928ed51ddc43 commsfwtools/preparedefaultcommsdatabase/Documentation/CommsDatAPI.doc Binary file commsfwtools/preparedefaultcommsdatabase/Documentation/CommsDatAPI.doc has changed diff -r b6139031a239 -r 928ed51ddc43 commsfwtools/preparedefaultcommsdatabase/Documentation/CommsData Format.doc Binary file commsfwtools/preparedefaultcommsdatabase/Documentation/CommsData Format.doc has changed diff -r b6139031a239 -r 928ed51ddc43 commsfwtools/preparedefaultcommsdatabase/Documentation/Deprecate R97_R98 QoS Parameters & PSD agent_Migration_HowTo.doc Binary file commsfwtools/preparedefaultcommsdatabase/Documentation/Deprecate R97_R98 QoS Parameters & PSD agent_Migration_HowTo.doc has changed diff -r b6139031a239 -r 928ed51ddc43 commsfwtools/preparedefaultcommsdatabase/Documentation/HowTo_Access_Points.doc Binary file commsfwtools/preparedefaultcommsdatabase/Documentation/HowTo_Access_Points.doc has changed diff -r b6139031a239 -r 928ed51ddc43 commsfwtools/preparedefaultcommsdatabase/Documentation/Howto_Configure_CSD_Connections.doc Binary file commsfwtools/preparedefaultcommsdatabase/Documentation/Howto_Configure_CSD_Connections.doc has changed diff -r b6139031a239 -r 928ed51ddc43 commsfwtools/preparedefaultcommsdatabase/Documentation/Howto_Configure_Network_Connections.doc Binary file commsfwtools/preparedefaultcommsdatabase/Documentation/Howto_Configure_Network_Connections.doc has changed diff -r b6139031a239 -r 928ed51ddc43 commsfwtools/preparedefaultcommsdatabase/Documentation/Howto_Configure_PSD_Connections.doc Binary file commsfwtools/preparedefaultcommsdatabase/Documentation/Howto_Configure_PSD_Connections.doc has changed diff -r b6139031a239 -r 928ed51ddc43 commsfwtools/preparedefaultcommsdatabase/Documentation/Howto_Configure_VPN_Connections.doc Binary file commsfwtools/preparedefaultcommsdatabase/Documentation/Howto_Configure_VPN_Connections.doc has changed diff -r b6139031a239 -r 928ed51ddc43 commsfwtools/preparedefaultcommsdatabase/Documentation/Mapping in the Comms Database.doc Binary file commsfwtools/preparedefaultcommsdatabase/Documentation/Mapping in the Comms Database.doc has changed diff -r b6139031a239 -r 928ed51ddc43 commsfwtools/preparedefaultcommsdatabase/Documentation/OS Versioning for the Tools2 Port of Commsdat.doc Binary file commsfwtools/preparedefaultcommsdatabase/Documentation/OS Versioning for the Tools2 Port of Commsdat.doc has changed diff -r b6139031a239 -r 928ed51ddc43 commsfwtools/preparedefaultcommsdatabase/Documentation/Tools2 deliverables.doc Binary file commsfwtools/preparedefaultcommsdatabase/Documentation/Tools2 deliverables.doc has changed diff -r b6139031a239 -r 928ed51ddc43 commsfwtools/preparedefaultcommsdatabase/Documentation/te_commsdat test spec.doc Binary file commsfwtools/preparedefaultcommsdatabase/Documentation/te_commsdat test spec.doc has changed diff -r b6139031a239 -r 928ed51ddc43 commsfwtools/preparedefaultcommsdatabase/Tools/ced/Documentation/Commdb_Configuration_Editor.doc Binary file commsfwtools/preparedefaultcommsdatabase/Tools/ced/Documentation/Commdb_Configuration_Editor.doc has changed diff -r b6139031a239 -r 928ed51ddc43 commsfwtools/preparedefaultcommsdatabase/Tools/ced/Documentation/HiddenReadOnlyUpdates/ReadOnly_Hidden_Support_Architectural_Analysis.doc Binary file commsfwtools/preparedefaultcommsdatabase/Tools/ced/Documentation/HiddenReadOnlyUpdates/ReadOnly_Hidden_Support_Architectural_Analysis.doc has changed diff -r b6139031a239 -r 928ed51ddc43 commsfwtools/preparedefaultcommsdatabase/Tools/ced/Documentation/HiddenReadOnlyUpdates/ReadOnly_Hidden_Support_Design.doc Binary file commsfwtools/preparedefaultcommsdatabase/Tools/ced/Documentation/HiddenReadOnlyUpdates/ReadOnly_Hidden_Support_Design.doc has changed diff -r b6139031a239 -r 928ed51ddc43 commsfwtools/preparedefaultcommsdatabase/Tools/ceddump/documents/Commdb_Configuration_Dumper.doc Binary file commsfwtools/preparedefaultcommsdatabase/Tools/ceddump/documents/Commdb_Configuration_Dumper.doc has changed diff -r b6139031a239 -r 928ed51ddc43 commsfwutils/commsbufs/Documentation/CommsBufsDesign.doc Binary file commsfwutils/commsbufs/Documentation/CommsBufsDesign.doc has changed diff -r b6139031a239 -r 928ed51ddc43 commsfwutils/commsbufs/version1/mbufmgr/Documentation/MBuf Manager Component Test Specification.doc Binary file commsfwutils/commsbufs/version1/mbufmgr/Documentation/MBuf Manager Component Test Specification.doc has changed diff -r b6139031a239 -r 928ed51ddc43 commsfwutils/commsbufs/version1/mbufmgr/Documentation/MBuf Manager Design.doc Binary file commsfwutils/commsbufs/version1/mbufmgr/Documentation/MBuf Manager Design.doc has changed diff -r b6139031a239 -r 928ed51ddc43 commsprocess/commsrootserverconfig/Documentation/Comms Process Startup-Config Design Document.doc Binary file commsprocess/commsrootserverconfig/Documentation/Comms Process Startup-Config Design Document.doc has changed diff -r b6139031a239 -r 928ed51ddc43 commsprocess/commsrootserverconfig/Documentation/Configurator Capabilities Test Spec.doc Binary file commsprocess/commsrootserverconfig/Documentation/Configurator Capabilities Test Spec.doc has changed diff -r b6139031a239 -r 928ed51ddc43 commsprocess/commsrootserverconfig/Documentation/Root Server API Reference.doc Binary file commsprocess/commsrootserverconfig/Documentation/Root Server API Reference.doc has changed diff -r b6139031a239 -r 928ed51ddc43 commsprocess/commsrootserverconfig/Documentation/Root Server Capabilities Test Spec.doc Binary file commsprocess/commsrootserverconfig/Documentation/Root Server Capabilities Test Spec.doc has changed diff -r b6139031a239 -r 928ed51ddc43 commsprocess/commsrootserverconfig/Documentation/Root Server Design Document.doc Binary file commsprocess/commsrootserverconfig/Documentation/Root Server Design Document.doc has changed diff -r b6139031a239 -r 928ed51ddc43 commsprocess/commsrootserverconfig/Documentation/RootServer Component Test Spec.doc Binary file commsprocess/commsrootserverconfig/Documentation/RootServer Component Test Spec.doc has changed diff -r b6139031a239 -r 928ed51ddc43 commsprocess/commsrootserverconfig/Te_Configurator/Documentation/SGL.GT0280.202 PREQ890 Configurator Test Specification_v1.0.doc Binary file commsprocess/commsrootserverconfig/Te_Configurator/Documentation/SGL.GT0280.202 PREQ890 Configurator Test Specification_v1.0.doc has changed diff -r b6139031a239 -r 928ed51ddc43 datacommsserver/esockserver/CoreProviders/src/coretiernotificationactivity.cpp --- a/datacommsserver/esockserver/CoreProviders/src/coretiernotificationactivity.cpp Fri Jan 22 10:58:59 2010 +0200 +++ b/datacommsserver/esockserver/CoreProviders/src/coretiernotificationactivity.cpp Tue Jan 26 13:09:14 2010 +0200 @@ -156,7 +156,6 @@ /*virtual*/ void CTierNotificationActivity::StartL(RPointerArray& aCollectors) { - CleanupResetAndDestroyPushL(aCollectors); if(aCollectors.Count() == 0) { User::Leave(KErrArgument); @@ -167,15 +166,17 @@ iCache = CTierNotificationCache::NewL(); // set up a session with each collector - for(TInt sessionId=0 ; sessionId(iContext.iMessage); RPointerArray* collrs = static_cast< RPointerArray*> (inMsg.iPtr); - CleanupStack::PushL(collrs); - CleanupResetAndDestroyPushL(*collrs); + CleanupStack::PushL(collrs); // We take ownership of the collector array + CleanupResetAndDestroyPushL(*collrs); // Note that RPointerArray<> doesn't destroy contained items at destruction so this cleanup item is needed CTierNotificationActivity* act = static_cast(iContext.iNodeActivity); // my custom StartL (sets the activity going) diff -r b6139031a239 -r 928ed51ddc43 datacommsserver/esockserver/Documentation/BR2506migrationdocument.doc Binary file datacommsserver/esockserver/Documentation/BR2506migrationdocument.doc has changed diff -r b6139031a239 -r 928ed51ddc43 datacommsserver/esockserver/Documentation/Connection Server API Functional Spec.doc Binary file datacommsserver/esockserver/Documentation/Connection Server API Functional Spec.doc has changed diff -r b6139031a239 -r 928ed51ddc43 datacommsserver/esockserver/Documentation/Connection Server HowTo.doc Binary file datacommsserver/esockserver/Documentation/Connection Server HowTo.doc has changed diff -r b6139031a239 -r 928ed51ddc43 datacommsserver/esockserver/Documentation/Connection Stack_How_To.doc Binary file datacommsserver/esockserver/Documentation/Connection Stack_How_To.doc has changed diff -r b6139031a239 -r 928ed51ddc43 datacommsserver/esockserver/Documentation/Control Plane Connection Stack(phase 1).doc Binary file datacommsserver/esockserver/Documentation/Control Plane Connection Stack(phase 1).doc has changed diff -r b6139031a239 -r 928ed51ddc43 datacommsserver/esockserver/Documentation/Design for Flexible Comms Stack.doc Binary file datacommsserver/esockserver/Documentation/Design for Flexible Comms Stack.doc has changed diff -r b6139031a239 -r 928ed51ddc43 datacommsserver/esockserver/Documentation/ESOCK Component Test Specification.doc Binary file datacommsserver/esockserver/Documentation/ESOCK Component Test Specification.doc has changed diff -r b6139031a239 -r 928ed51ddc43 datacommsserver/esockserver/Documentation/ESock_CESockIniData_Te_Ini_Test_Specification.doc Binary file datacommsserver/esockserver/Documentation/ESock_CESockIniData_Te_Ini_Test_Specification.doc has changed diff -r b6139031a239 -r 928ed51ddc43 datacommsserver/esockserver/Documentation/ESock_Design.doc Binary file datacommsserver/esockserver/Documentation/ESock_Design.doc has changed diff -r b6139031a239 -r 928ed51ddc43 datacommsserver/esockserver/Documentation/ESock_HowTo.doc Binary file datacommsserver/esockserver/Documentation/ESock_HowTo.doc has changed diff -r b6139031a239 -r 928ed51ddc43 datacommsserver/esockserver/Documentation/Esock_CR1039_CommsData_ Plug-in_Design_Document.doc Binary file datacommsserver/esockserver/Documentation/Esock_CR1039_CommsData_ Plug-in_Design_Document.doc has changed diff -r b6139031a239 -r 928ed51ddc43 datacommsserver/esockserver/Documentation/Esock_integration_test_specification.doc Binary file datacommsserver/esockserver/Documentation/Esock_integration_test_specification.doc has changed diff -r b6139031a239 -r 928ed51ddc43 datacommsserver/esockserver/Documentation/HOWTO install an esock protocol after market.doc Binary file datacommsserver/esockserver/Documentation/HOWTO install an esock protocol after market.doc has changed diff -r b6139031a239 -r 928ed51ddc43 datacommsserver/esockserver/Documentation/NonSeamlessBearerMobility_ClientSideAPIs.doc Binary file datacommsserver/esockserver/Documentation/NonSeamlessBearerMobility_ClientSideAPIs.doc has changed diff -r b6139031a239 -r 928ed51ddc43 datacommsserver/esockserver/Documentation/NonSeamlessBearerMobility_ReferenceImplementation.doc Binary file datacommsserver/esockserver/Documentation/NonSeamlessBearerMobility_ReferenceImplementation.doc has changed diff -r b6139031a239 -r 928ed51ddc43 datacommsserver/esockserver/Documentation/NonSeamlessBearerMobility_ServerSideAPIs.doc Binary file datacommsserver/esockserver/Documentation/NonSeamlessBearerMobility_ServerSideAPIs.doc has changed diff -r b6139031a239 -r 928ed51ddc43 datacommsserver/esockserver/Documentation/RConnection API for Connection Management.doc Binary file datacommsserver/esockserver/Documentation/RConnection API for Connection Management.doc has changed diff -r b6139031a239 -r 928ed51ddc43 datacommsserver/esockserver/Documentation/RConnection deprecated methods HOWTO.doc Binary file datacommsserver/esockserver/Documentation/RConnection deprecated methods HOWTO.doc has changed diff -r b6139031a239 -r 928ed51ddc43 datacommsserver/esockserver/Documentation/RConnection_API.doc Binary file datacommsserver/esockserver/Documentation/RConnection_API.doc has changed diff -r b6139031a239 -r 928ed51ddc43 datacommsserver/esockserver/Documentation/RConnection_Test_Specification.doc Binary file datacommsserver/esockserver/Documentation/RConnection_Test_Specification.doc has changed diff -r b6139031a239 -r 928ed51ddc43 datacommsserver/esockserver/Documentation/RInternalSocket_TE_EintSock_Test_Specification.doc Binary file datacommsserver/esockserver/Documentation/RInternalSocket_TE_EintSock_Test_Specification.doc has changed diff -r b6139031a239 -r 928ed51ddc43 datacommsserver/esockserver/Documentation/RSubConnection_API.doc Binary file datacommsserver/esockserver/Documentation/RSubConnection_API.doc has changed diff -r b6139031a239 -r 928ed51ddc43 datacommsserver/esockserver/Documentation/TS_Multihoming_Test_Specification.doc Binary file datacommsserver/esockserver/Documentation/TS_Multihoming_Test_Specification.doc has changed diff -r b6139031a239 -r 928ed51ddc43 datacommsserver/esockserver/MobilityCoreProviders/inc/mobilitymcpractivities.h --- a/datacommsserver/esockserver/MobilityCoreProviders/inc/mobilitymcpractivities.h Fri Jan 22 10:58:59 2010 +0200 +++ b/datacommsserver/esockserver/MobilityCoreProviders/inc/mobilitymcpractivities.h Tue Jan 26 13:09:14 2010 +0200 @@ -52,6 +52,7 @@ private: TBool EvaluatePreference(TContext& aContext); + void SetHandshakingFlag(); void ClearHandshakingFlag(); @@ -78,6 +79,10 @@ DECLARE_SMELEMENT_HEADER(TNoTagOrAwaitMobilityBackwardsOnMobilityTrigger, MeshMachine::TStateFork, NetStateMachine::MStateFork, CMobilityActivity::TContext) virtual TInt TransitionTag(); DECLARE_SMELEMENT_FOOTER(TNoTagOrAwaitMobilityBackwardsOnMobilityTrigger) + + DECLARE_SMELEMENT_HEADER(TRejectedOrStartMobilityHandshakeBackwards, MeshMachine::TStateFork, NetStateMachine::MStateFork, TContext) + virtual TInt TransitionTag(); + DECLARE_SMELEMENT_FOOTER(TRejectedOrStartMobilityHandshakeBackwards) DECLARE_SMELEMENT_HEADER(TClearHandshakingFlag, MeshMachine::TStateTransition, NetStateMachine::MStateTransition, CMobilityActivity::TContext) virtual void DoL(); diff -r b6139031a239 -r 928ed51ddc43 datacommsserver/esockserver/MobilityCoreProviders/inc/mobilitymcprstates.h --- a/datacommsserver/esockserver/MobilityCoreProviders/inc/mobilitymcprstates.h Fri Jan 22 10:58:59 2010 +0200 +++ b/datacommsserver/esockserver/MobilityCoreProviders/inc/mobilitymcprstates.h Tue Jan 26 13:09:14 2010 +0200 @@ -41,6 +41,7 @@ const TInt KStartMobilityHandshake = 10000; const TInt KAwaitMobility = 10001; +const TInt KRejected = 10002; //-========================================================= // diff -r b6139031a239 -r 928ed51ddc43 datacommsserver/esockserver/MobilityCoreProviders/src/mobilitymcpractivities.cpp --- a/datacommsserver/esockserver/MobilityCoreProviders/src/mobilitymcpractivities.cpp Fri Jan 22 10:58:59 2010 +0200 +++ b/datacommsserver/esockserver/MobilityCoreProviders/src/mobilitymcpractivities.cpp Tue Jan 26 13:09:14 2010 +0200 @@ -100,7 +100,7 @@ //first checks (TNoTagOrAwaitMobilityBlockedByErrorRecovery) if the availability has changed since it last checked //(availability could have been reported amidst the previous handshake loop) THROUGH_NODEACTIVITY_ENTRY(MobilityMCprStates::KStartMobilityHandshake, CMobilityActivity::TClearHandshakingFlag, CMobilityActivity::TNoTagOrAwaitMobilityBlockedByErrorRecovery) - NODEACTIVITY_ENTRY(MobilityMCprStates::KAwaitMobility, MeshMachine::TDoNothing, CMobilityActivity::TAwaitingCurrentCarrierRejectedOrAvailabilityChange, CMobilityActivity::TNoTagOrAwaitMobilityBackwardsOnMobilityTriggerBlockedByErrorRecovery) + NODEACTIVITY_ENTRY(MobilityMCprStates::KAwaitMobility, MeshMachine::TDoNothing, CMobilityActivity::TAwaitingCurrentCarrierRejectedOrAvailabilityChange, CMobilityActivity::TNoTagOrAwaitMobilityBackwardsOnMobilityTriggerBlockedByErrorRecovery) //Mobility has been triggered ((a) or (b)). Start mobility handshake (set handshaking flag and inform the client about the preferred bearer) NODEACTIVITY_ENTRY(KNoTag, CMobilityActivity::TInformMigrationAvailableAndSetHandshakingFlag, MobilityMCprStates::TAwaitingMigrationRequestedOrRejected, CMobilityActivity::TNoTagOrStartMobilityHandshakeBackwards) @@ -112,7 +112,8 @@ NODEACTIVITY_ENTRY(KNoTag, CMobilityActivity::TRequestReConnect, MCprStates::TAwaitingReConnectCompleteOrError, CMobilityActivity::TNoTagOrStartMobilityHandshakeBackwards) //Rebinding has been successful. As far as MCPR is concerned, the mobility is finished, but the MCPR must await //for the handshake (accept|reject) before it can offer another bearer. - NODEACTIVITY_ENTRY(KNoTag, CMobilityActivity::TInformMigrationCompleted, MobilityMCprStates::TAwaitingMigrationAcceptedOrRejected, MeshMachine::TTag) + NODEACTIVITY_ENTRY(KNoTag, CMobilityActivity::TInformMigrationCompleted, MobilityMCprStates::TAwaitingMigrationAcceptedOrRejected, CMobilityActivity::TRejectedOrStartMobilityHandshakeBackwards) + NODEACTIVITY_ENTRY(MobilityMCprStates::KRejected, CoreNetStates::TStopDataClients, CoreNetStates::TAwaitingDataClientsStopped, MeshMachine::TTag) NODEACTIVITY_END() } @@ -311,6 +312,53 @@ return MobilityMCprStates::KAwaitMobility; } + +DEFINE_SMELEMENT(CMobilityActivity::TRejectedOrStartMobilityHandshakeBackwards, NetStateMachine::MStateFork, MobilityMCprStates::TContext) +TInt CMobilityActivity::TRejectedOrStartMobilityHandshakeBackwards::TransitionTag() + { + __ASSERT_DEBUG(iContext.iNodeActivity, User::Panic(KCoreMobileMCprPanic, KPanicNoActivity)); + CMobilityActivity& activity = static_cast(*iContext.iNodeActivity); + + // if rejected last ap and there's no more + if (iContext.iMessage.IsMessage()) + { + TBool otherSP = EFalse; + + // Find if there anymore available non rejected service providers + TClientIter iter = iContext.Node().GetClientIter(TClientType(TCFClientType::EServProvider)); + __ASSERT_DEBUG(iter[0], User::Panic(KCoreMobileMCprPanic, KPanicNoServiceProvider)); //A Service Provider must exist! + RMetaServiceProviderInterface* rejected = static_cast(iContext.Node().ServiceProvider()); + RMetaServiceProviderInterface* candidate = NULL; + + while ((candidate = static_cast(iter++)) != NULL) + { + if (candidate == rejected) + { + continue; + } + + const TAvailabilityStatus& status = candidate->AvailabilityStatus(); + if (!status.IsKnown()) + { + continue; + } + + if (status.Score() > activity.iAvailabilityScoreTreshold) + { + otherSP=ETrue; + break; + } + } + + if (!otherSP) + { + return MobilityMCprStates::KRejected; + } + } + + return MobilityMCprStates::KStartMobilityHandshake | NetStateMachine::EBackward; + } + DEFINE_SMELEMENT(CMobilityActivity::TSendAvailabilityRequest, NetStateMachine::MStateTransition, CMobilityActivity::TContext) void CMobilityActivity::TSendAvailabilityRequest::DoL() { diff -r b6139031a239 -r 928ed51ddc43 datacommsserver/esockserver/core_states/ss_corepractivities.cpp --- a/datacommsserver/esockserver/core_states/ss_corepractivities.cpp Fri Jan 22 10:58:59 2010 +0200 +++ b/datacommsserver/esockserver/core_states/ss_corepractivities.cpp Tue Jan 26 13:09:14 2010 +0200 @@ -1891,6 +1891,39 @@ EXPORT_C CStartActivity::~CStartActivity() { + CMMCommsProviderBase& node(static_cast(iNode)); + const TProviderInfoExt* providerInfoExt = static_cast(node.AccessPointConfig().FindExtension( + STypeId::CreateSTypeId(TProviderInfoExt::EUid, TProviderInfoExt::ETypeId))); + + __ASSERT_DEBUG(providerInfoExt, User::Panic(KSpecAssert_ESockCrStaCPRAC, 40)); + + if (Error() != KErrNone) + { + CNodeActivityBase* stopActivity = iNode.FindActivityById(ECFActivityStop); + + // If the Stop activity is running we skip sending the GoneDown message. This is because the Stop + // activity will send GoneDown too. + if (!stopActivity) + { + TCFControlClient::TGoneDown goneDown(Error(), providerInfoExt->iProviderInfo.APId()); + + TClientIter iter = iNode.GetClientIter( + TClientType(TCFClientType::ECtrl), TClientType(0, TCFClientType::ELeaving)); + RNodeInterface* ctrlClient = NULL; + + while ( (ctrlClient = iter++) ) + { + // Let control clients know the node has gone down, other than those that originated Start (they will be errored by ~CNodeActivityBase)... + if (FindOriginator(*ctrlClient) >= 0) + { + continue; // ControlClient is a Start originator + } + + TNodeCtxId ctxId(ActivityId(), iNode.Id()); + ctrlClient->PostMessage(ctxId, goneDown.CRef()); + } + } + } } EXPORT_C MeshMachine::CNodeActivityBase* CStartActivity::NewL(const MeshMachine::TNodeActivity& aActivitySig, MeshMachine::AMMNodeBase& aNode) diff -r b6139031a239 -r 928ed51ddc43 datacommsserver/esockserver/core_states/ss_coreprstates.cpp --- a/datacommsserver/esockserver/core_states/ss_coreprstates.cpp Fri Jan 22 10:58:59 2010 +0200 +++ b/datacommsserver/esockserver/core_states/ss_coreprstates.cpp Tue Jan 26 13:09:14 2010 +0200 @@ -1204,9 +1204,10 @@ TClientIter iter = iContext.Node().GetClientIter(TClientType(TCFClientType::ECtrl)); for (TInt i = 0; iter[i]; i++) { - //Send TGoneUp to every Ctrl client except the originator (who would be recieving TStarted) - if ((iContext.iNodeActivity && iContext.iNodeActivity->FindOriginator(*iter[i]) != KErrNone) - && iter[i] != iContext.iPeer) + // Send TGoneUp to every Ctrl client except the originator (who would be recieving TStarted) + // (activity might be the GoneUp Activity rather than the Start Activity, but then the originator + // would be a ServiceProvider, and so the ControlClient will not be found) + if (iContext.iNodeActivity && iContext.iNodeActivity->FindOriginator(*iter[i]) == KErrNotFound) { iter[i]->PostMessage(TNodeCtxId(iContext.ActivityId(), iContext.NodeId()), TCFControlClient::TGoneUp()); } @@ -1291,17 +1292,22 @@ TCFControlClient::TGoneDown goneDown(stopCode, providerInfo.APId()); TClientIter iter = iContext.Node().GetClientIter(TClientType(TCFClientType::ECtrl)); - for (TInt i = 0; iter[i]; i++) + CNodeActivityBase* startActivity = iContext.Node().FindActivityById(ECFActivityStart); + + for (TInt i = 0; iter[i]; i++) { - CNodeActivityBase* startActivity = iContext.Node().FindActivityById(ECFActivityStart); - //Send TGoneDown to every Ctrl client except // * the originator (who would be recieving TStopped) // * originators of the start activity (these will be errored separately) - if (((iContext.iNodeActivity && iContext.iNodeActivity->FindOriginator(*iter[i]) != KErrNone) || - (iContext.iNodeActivity == NULL && iter[i] != iContext.iPeer)) - && (startActivity == NULL || startActivity->FindOriginator(*iter[i]) != KErrNone)) + if (iContext.iNodeActivity && iContext.iNodeActivity->FindOriginator(*iter[i]) >= 0) + { + continue; // ControlClient is a Stop originator + } + + // So far the control client is not a Stop originator + if (startActivity == NULL || startActivity->FindOriginator(*iter[i]) == KErrNotFound) { + // ControlClient is not a Start originator iter[i]->PostMessage(TNodeCtxId(iContext.ActivityId(), iContext.NodeId()), goneDown); } } diff -r b6139031a239 -r 928ed51ddc43 datacommsserver/esockserver/csock/CS_CLI.CPP --- a/datacommsserver/esockserver/csock/CS_CLI.CPP Fri Jan 22 10:58:59 2010 +0200 +++ b/datacommsserver/esockserver/csock/CS_CLI.CPP Tue Jan 26 13:09:14 2010 +0200 @@ -1221,7 +1221,8 @@ @param someFlags Flags which are passed through to protocol @param aStatus On completion, KErrNone if successful, otherwise one of the system wide error codes. Note that KErrEof indicates that the socket has been shutdown -with option EStopOutput. +with option EStopOutput. In the case of KSONonBlockingIO & writeFlowedoff, +it has to return KerrWouldBlock, but it returns KErrNone for compatibiity @param aLen Filled in with amount of data sent before completion @capability Dependent on the type of socket so deferred to PRT */ diff -r b6139031a239 -r 928ed51ddc43 datacommsserver/esockserver/inc/ss_nodemessages_legacy_internal.h --- a/datacommsserver/esockserver/inc/ss_nodemessages_legacy_internal.h Fri Jan 22 10:58:59 2010 +0200 +++ b/datacommsserver/esockserver/inc/ss_nodemessages_legacy_internal.h Tue Jan 26 13:09:14 2010 +0200 @@ -285,7 +285,6 @@ virtual void ProcessL(MeshMachine::TNodeContextBase& aContext); virtual void Cancel(MeshMachine::TNodeContextBase& aContext); - virtual TInt CheckError(MeshMachine::TNodeContextBase& aContext, TInt aError); private: TBool HasServiceProviderL(const Messages::TRuntimeCtxId& aRecipient); @@ -350,7 +349,6 @@ virtual void ProcessL(MeshMachine::TNodeContextBase& aContext); virtual void Cancel(MeshMachine::TNodeContextBase& aContext); - virtual TInt CheckError(MeshMachine::TNodeContextBase& aContext, TInt aError); public: DECLARE_MVIP_CTR(TLegacyDataMonitoringNotificationRequest) diff -r b6139031a239 -r 928ed51ddc43 datacommsserver/esockserver/ssock/ss_api_ext.cpp --- a/datacommsserver/esockserver/ssock/ss_api_ext.cpp Fri Jan 22 10:58:59 2010 +0200 +++ b/datacommsserver/esockserver/ssock/ss_api_ext.cpp Tue Jan 26 13:09:14 2010 +0200 @@ -305,6 +305,7 @@ TBool platsecResult; platsecResult = aPolicy.CheckPolicy(process); + process.Close(); if (!platsecResult) { return KErrPermissionDenied; diff -r b6139031a239 -r 928ed51ddc43 datacommsserver/esockserver/ssock/ss_commsdataobject.cpp --- a/datacommsserver/esockserver/ssock/ss_commsdataobject.cpp Fri Jan 22 10:58:59 2010 +0200 +++ b/datacommsserver/esockserver/ssock/ss_commsdataobject.cpp Tue Jan 26 13:09:14 2010 +0200 @@ -41,7 +41,7 @@ TUint interfaceId = (*iDataObject)->RequiredItfExtId(); RLegacyResponseMsg responseMsg(aContext, iMessage, iMessage.Int0()); TRAPD(err, ForwardRequestL(aContext)); - if(err == KErrNotFound) + if(err == KErrNotReady) { // We've reached the bottom of the stack, so complete the message if ((*iDataObject)->IsProgressive()) @@ -104,7 +104,7 @@ // forward the data object down to the next node TRAP(err, ForwardRequestL(aContext)); - if(err == KErrNotFound) + if(err == KErrNotReady) { // We've reached the bottom of the stack, so complete the message Complete(aContext, KErrNone); diff -r b6139031a239 -r 928ed51ddc43 datacommsserver/esockserver/ssock/ss_connLegacy.cpp --- a/datacommsserver/esockserver/ssock/ss_connLegacy.cpp Fri Jan 22 10:58:59 2010 +0200 +++ b/datacommsserver/esockserver/ssock/ss_connLegacy.cpp Tue Jan 26 13:09:14 2010 +0200 @@ -353,13 +353,11 @@ void AConnectionLegacy::CompleteAllInterfaceNotificationL(TInt aError) { - LOG(ESockLog::Printf(KESockConnectionTag, _L8("AConnectionLegacy [this=%08x] CompleteAllInterfaceNotificationL message (%08X) with %d"), &iConnection, iAllInterfaceNotificationMessage.Handle(), aError)); - - if(!iAllInterfaceNotificationMessage.IsNull()) + if (!iAllInterfaceNotificationMessage.IsNull()) { if(aError == KErrNone) { - if(!iNotificationQueue.IsEmpty()) + if (!iNotificationQueue.IsEmpty()) { TInterfaceNotification notification; iNotificationQueue.Deque(notification); @@ -368,12 +366,14 @@ // Write the buffer to the client iAllInterfaceNotificationMessage.WriteL(0, buf); + LOG(ESockLog::Printf(KESockConnectionTag, _L8("AConnectionLegacy [this=%08x] CompleteAllInterfaceNotificationL, RMessage2::Complete (%08x) with 0"), &iConnection, iAllInterfaceNotificationMessage.Handle())); iAllInterfaceNotificationMessage.Complete(KErrNone); iAllInterfaceNotificationMessage = RMessage2(); } } else { + LOG(ESockLog::Printf(KESockConnectionTag, _L8("AConnectionLegacy [this=%08x] CompleteAllInterfaceNotificationL, RMessage2::Complete (%08x) with %d"), &iConnection, iAllInterfaceNotificationMessage.Handle(), aError)); iAllInterfaceNotificationMessage.Complete(aError); iAllInterfaceNotificationMessage = RMessage2(); } diff -r b6139031a239 -r 928ed51ddc43 datacommsserver/esockserver/ssock/ss_connstates.cpp --- a/datacommsserver/esockserver/ssock/ss_connstates.cpp Fri Jan 22 10:58:59 2010 +0200 +++ b/datacommsserver/esockserver/ssock/ss_connstates.cpp Tue Jan 26 13:09:14 2010 +0200 @@ -1707,15 +1707,13 @@ DEFINE_SMELEMENT(THandleRMessage2Error, NetStateMachine::MStateTransition, ConnStates::TContext) void THandleRMessage2Error::DoL() { - CConnLegacyRMessage2Activity* act = static_cast(iContext.Activity()); - + CConnLegacyRMessage2Activity* act = static_cast(iContext.Activity()); ASSERT(act->Message().IsTypeOf(Meta::STypeId::CreateSTypeId(TCFSigLegacyRMessage2Ext::EUid, TCFSigLegacyRMessage2Ext::ETypeId))); TInt error = static_cast(act->Message()).CheckError(iContext, act->Error()); act->SetError(error); act->Complete(error); } - DEFINE_SMELEMENT(TCancelAllLegacyRMessage2Activities, NetStateMachine::MStateTransition, TContext) void TCancelAllLegacyRMessage2Activities::DoL() { diff -r b6139031a239 -r 928ed51ddc43 datacommsserver/esockserver/ssock/ss_intsock.cpp --- a/datacommsserver/esockserver/ssock/ss_intsock.cpp Fri Jan 22 10:58:59 2010 +0200 +++ b/datacommsserver/esockserver/ssock/ss_intsock.cpp Tue Jan 26 13:09:14 2010 +0200 @@ -1195,10 +1195,19 @@ ret = KErrNoMemory; } } - if(ret == KErrNone && (iOptions & KOptBlocking)) - { - completeReq = EFalse; - } + if(ret == KErrNone) + { + if(iOptions & KOptBlocking) + { + completeReq = EFalse; + } + else if(iBlockedOperations & EWriteFlowedOff) + { + //it should return KErrWouldBlock instead of KErrNone + //but it returns KErrNone for backward compatibility. + iSendData.Free(); + } + } } } else // !IsStream() @@ -1317,8 +1326,12 @@ if (nwr == 0) { // Flow unable to accept data but not erroring - completeReq = EFalse; - iSendData.Assign(data); + // WriteFlowedOff + if(iOptions & KOptBlocking) + { + completeReq = EFalse; + iSendData.Assign(data); + } } if (iErrorOperationMask & (MSessionControlNotify::EErrorSend)) diff -r b6139031a239 -r 928ed51ddc43 datacommsserver/esockserver/ssock/ss_nodemessages_legacy.cpp --- a/datacommsserver/esockserver/ssock/ss_nodemessages_legacy.cpp Fri Jan 22 10:58:59 2010 +0200 +++ b/datacommsserver/esockserver/ssock/ss_nodemessages_legacy.cpp Tue Jan 26 13:09:14 2010 +0200 @@ -122,7 +122,7 @@ } else { - User::Leave(KErrNotFound); + User::Leave(KErrNotReady); } } @@ -308,7 +308,7 @@ { CConnection* conn = static_cast(&aContext.Node()); ConnActivities::CConnLegacyRMessage2Activity* act = static_cast(aContext.Activity()); - if (aError == KErrNotFound) + if (aError == KErrNotReady) { TPckgBuf progressBuf; progressBuf().iStage = conn->iLastProgress.iStage; @@ -372,7 +372,7 @@ { CConnection* conn = static_cast(&aContext.Node()); ConnActivities::CConnLegacyRMessage2Activity* act = static_cast(aContext.Activity()); - if (aError == KErrNotFound) + if (aError == KErrNotReady) { TPckgBuf progressBuf; progressBuf().iStage = conn->iLastProgressError.iStage; @@ -646,15 +646,6 @@ // do nothing, a DataMonitoringTransferedRequest cannot be cancelled as the response is immediate } -TInt TLegacyDataMonitoringTransferredRequest::CheckError(MeshMachine::TNodeContextBase& /*aContext*/, TInt aError) - { - if (aError == KErrNotFound) - { - return KErrNotReady; - } - return aError; - } - /** Return ETrue if the node has a Service Provider, else EFalse. @@ -779,11 +770,6 @@ } } -TInt TLegacyDataMonitoringNotificationRequest::CheckError(MeshMachine::TNodeContextBase& /*aContext*/, TInt aError) - { - return aError; - } - /** * * TLegacyEnumerateSubConnections @@ -890,7 +876,7 @@ // it or we hit the bottom TRAP(ret, ForwardRequestL(aContext)); - if(ret == KErrNotFound) + if(ret == KErrNotReady) { // We've reached the bottom of the stack and control call was never serviced User::Leave(KErrNotSupported); diff -r b6139031a239 -r 928ed51ddc43 datacommsserver/esockserver/ssock/ss_roles.cpp --- a/datacommsserver/esockserver/ssock/ss_roles.cpp Fri Jan 22 10:58:59 2010 +0200 +++ b/datacommsserver/esockserver/ssock/ss_roles.cpp Tue Jan 26 13:09:14 2010 +0200 @@ -143,7 +143,7 @@ } } - LOG(ESockLog::Printf(KESockBootingTag, _L8("CPlayer::MaybeSetPlayerShutdownComplete(), shutdownComplete = %d [#subSess=%d, numFam=%d, dataPending=%d]"), + LOG(ESockLog::Printf(KESockBootingTag, _L8("CPlayer::IsPlayerShutdownComplete(), shutdownComplete = %d [#subSess=%d, numFam=%d, dataPending=%d]"), shutdownComplete, SubSessions().Count(), globals->iNumFamilies, dataThreadShutdownPending) ); if(globals->iNumFamilies) diff -r b6139031a239 -r 928ed51ddc43 datacommsserver/esockserver/test/TE_EsockTestSteps/Documentation/TE_EsockTestSteps_Test Specification.doc Binary file datacommsserver/esockserver/test/TE_EsockTestSteps/Documentation/TE_EsockTestSteps_Test Specification.doc has changed diff -r b6139031a239 -r 928ed51ddc43 datacommsserver/esockserver/test/TE_EsockTestSteps/group/te_EsockTestStepsSuite.mmp --- a/datacommsserver/esockserver/test/TE_EsockTestSteps/group/te_EsockTestStepsSuite.mmp Fri Jan 22 10:58:59 2010 +0200 +++ b/datacommsserver/esockserver/test/TE_EsockTestSteps/group/te_EsockTestStepsSuite.mmp Tue Jan 26 13:09:14 2010 +0200 @@ -72,7 +72,7 @@ LIBRARY commdb.lib LIBRARY efsrv.lib LIBRARY ecom.lib -LIBRARY etel.lib etelmm.lib +LIBRARY etel.lib etelmm.lib etelpckt.lib LIBRARY c32root.lib LIBRARY netmeta.lib LIBRARY esocksvr.lib diff -r b6139031a239 -r 928ed51ddc43 datacommsserver/esockserver/test/TE_EsockTestSteps/group/te_EsockTestStepsSuite_captest.mmp --- a/datacommsserver/esockserver/test/TE_EsockTestSteps/group/te_EsockTestStepsSuite_captest.mmp Fri Jan 22 10:58:59 2010 +0200 +++ b/datacommsserver/esockserver/test/TE_EsockTestSteps/group/te_EsockTestStepsSuite_captest.mmp Tue Jan 26 13:09:14 2010 +0200 @@ -74,7 +74,7 @@ LIBRARY commdb.lib LIBRARY efsrv.lib LIBRARY ecom.lib -LIBRARY etel.lib etelmm.lib +LIBRARY etel.lib etelmm.lib etelpckt.lib LIBRARY c32root.lib LIBRARY netmeta.lib LIBRARY esocksvr.lib diff -r b6139031a239 -r 928ed51ddc43 datacommsserver/esockserver/test/TE_EsockTestSteps/inc/ConnectionServer.TestSteps.h --- a/datacommsserver/esockserver/test/TE_EsockTestSteps/inc/ConnectionServer.TestSteps.h Fri Jan 22 10:58:59 2010 +0200 +++ b/datacommsserver/esockserver/test/TE_EsockTestSteps/inc/ConnectionServer.TestSteps.h Tue Jan 26 13:09:14 2010 +0200 @@ -451,6 +451,26 @@ _LIT(KSetPppAccessPointAvailabilityStep, "SetPppAccessPointAvailabilityStep"); /** +Class implementing CSetPacketDataAccessPointAvailabilityStep + +@internalComponent +@description Enables the setting of PDP availability status on access points for simulation of availability +*/ +class CSetPacketDataAccessPointAvailabilityStep : public CTe_EsockStepBase + { +public: + CSetPacketDataAccessPointAvailabilityStep(CCEsockTestBase*& aEsockTest); + TVerdict doTestStepPreambleL(); + TVerdict doSingleTestStep(); + TInt ConfigureFromIni(); + +private: + TBool iSetToAvailable; + }; + +_LIT(KSetPacketDataAccessPointAvailabilityStep, "SetPacketDataAccessPointAvailabilityStep"); + +/** Class implementing CSetWifiAccessPointAvailabilityStep @internalComponent diff -r b6139031a239 -r 928ed51ddc43 datacommsserver/esockserver/test/TE_EsockTestSteps/src/ConnectionServer.TestSteps.cpp --- a/datacommsserver/esockserver/test/TE_EsockTestSteps/src/ConnectionServer.TestSteps.cpp Fri Jan 22 10:58:59 2010 +0200 +++ b/datacommsserver/esockserver/test/TE_EsockTestSteps/src/ConnectionServer.TestSteps.cpp Tue Jan 26 13:09:14 2010 +0200 @@ -1756,6 +1756,160 @@ return TestStepResult(); } +// Packet Data (PDP) specific availability simulation +CSetPacketDataAccessPointAvailabilityStep::CSetPacketDataAccessPointAvailabilityStep(CCEsockTestBase*& aEsockTest) +: CTe_EsockStepBase(aEsockTest) + { + SetTestStepName(KSetPppAccessPointAvailabilityStep); + } + +TVerdict CSetPacketDataAccessPointAvailabilityStep::doTestStepPreambleL() + { + SetTestStepResult(EFail); + + if (iEsockTest==NULL) + iEsockTest = new (ELeave) CCEsockTestBase; + + SetTestStepResult(EPass); + return TestStepResult(); + } + + +TInt CSetPacketDataAccessPointAvailabilityStep::ConfigureFromIni() + { + TBool found(EFalse); + TPtrC availState; + if(GetStringFromConfig(iSection, KAccessPointState, availState)) + { + if (availState == KAvailable) + { + iSetToAvailable = ETrue; + found=ETrue; + } + else if (availState == KUnavailable) + { + iSetToAvailable = EFalse; + found=ETrue; + } + } + + if( ! found) + { + INFO_PRINTF1(_L("Must have availability status set to Available or Unavailable.")); + return KErrArgument; + } + + // All ok if we got this far + return KErrNone; + } + +_LIT(KSimtsyName,"SIM"); + +TVerdict CSetPacketDataAccessPointAvailabilityStep::doSingleTestStep() + { + // Fail by default + SetTestStepResult(EFail); + + // Action 1- RTelServer::Connect + RTelServer telServer; + TInt ret = telServer.Connect(); + if (ret!=KErrNone) + { + INFO_PRINTF1(_L("Failed to connect to telephony server")); + } + else + { + // Action 2- RTelServer::LoadPhoneModule + ret=telServer.LoadPhoneModule(KSimtsyName); + if (ret!=KErrNone) + { + INFO_PRINTF1(_L("Failed to load phone module")); + } + else + { + // Action 3- RPhone::Open + RPhone phone; + ret=phone.Open(telServer,KPhoneName) ; + if (ret!=KErrNone) + { + INFO_PRINTF1(_L("Failed to open phone module")); + } + else + { + // Action 4- RPhone::Initialise + ret=phone.Initialise(); + if (ret!=KErrNone) + { + INFO_PRINTF1(_L("Failed to initialise the phone")); + } + else + { + // Action 5- RPacketService::Open + RPacketService packetService; + ret = packetService.Open(phone); + if (ret!=KErrNone) + { + INFO_PRINTF1(_L("Failed to initialise the packet service")); + } + else + { + // Action 6- RPacketService::NotifyStatusChange + TRequestStatus notifyStatus; + RPacketService::TStatus pktStatus; + packetService.NotifyStatusChange(notifyStatus,pktStatus); + + // Action 7- RPacketService::Attach/Detach + TRequestStatus status; + if(iSetToAvailable) + { + packetService.Attach(status); + } + else + { + packetService.Detach(status); + } + User::WaitForRequest(status); + User::WaitForRequest(notifyStatus); + + if(status.Int() != KErrNone ) + { + INFO_PRINTF1(_L("Failed to attach/detach the packet service")); + } + else if( notifyStatus.Int() != KErrNone ) + { + INFO_PRINTF1(_L("Failed to receive notification of packet service attach/detach")); + } + else + { + // Success at last!!! + SetTestStepResult(EPass); + } + + // now clean up: + + // Action 5- RPacketService::Open + packetService.Close(); + } + // Action 4- RPhone::Initialise + // don't need to "un-Initialise" phone + } + // Action 3- RPhone::Open + phone.Close(); + } + // Action 2- RTelServer::LoadPhoneModule + telServer.UnloadPhoneModule(KSimtsyName); + } + // Action 1- RTelServer::Connect + telServer.Close(); + } + // There! CleanupStack ShmeanupStack. + User::LeaveIfError(ret); + + return TestStepResult(); + } + + + // wifi specific availability simulation // Requires the "MockupWifiHardware" emulation mechanism to be enabled on udeb CSetWifiAccessPointAvailabilityStep::CSetWifiAccessPointAvailabilityStep(CCEsockTestBase*& aEsockTest) diff -r b6139031a239 -r 928ed51ddc43 datacommsserver/esockserver/test/TE_EsockTestSteps/src/Te_esockteststepsSuiteServer.cpp --- a/datacommsserver/esockserver/test/TE_EsockTestSteps/src/Te_esockteststepsSuiteServer.cpp Fri Jan 22 10:58:59 2010 +0200 +++ b/datacommsserver/esockserver/test/TE_EsockTestSteps/src/Te_esockteststepsSuiteServer.cpp Tue Jan 26 13:09:14 2010 +0200 @@ -391,7 +391,8 @@ NEW_ESOCK_TESTSTEP(CancelMBMSNtfnStep) // Availability control NEW_ESOCK_TESTSTEP(SetAccessPointAvailabilityStep) - NEW_ESOCK_TESTSTEP(SetPppAccessPointAvailabilityStep) + NEW_ESOCK_TESTSTEP(SetPppAccessPointAvailabilityStep) + NEW_ESOCK_TESTSTEP(SetPacketDataAccessPointAvailabilityStep) NEW_ESOCK_TESTSTEP(SetWifiAccessPointAvailabilityStep) NEW_ESOCK_TESTSTEP(EnumerateConnectionsStep) diff -r b6139031a239 -r 928ed51ddc43 datacommsserver/esockserver/test/TE_RConnection/configs/Mobility/BearerMobility_001.ced.cfg --- a/datacommsserver/esockserver/test/TE_RConnection/configs/Mobility/BearerMobility_001.ced.cfg Fri Jan 22 10:58:59 2010 +0200 +++ b/datacommsserver/esockserver/test/TE_RConnection/configs/Mobility/BearerMobility_001.ced.cfg Tue Jan 26 13:09:14 2010 +0200 @@ -310,6 +310,77 @@ FIELD_COUNT=71 END_ADD +ADD_SECTION +# COMMDB_ID = 5 + Name=Dummy timeout if orphan1 + IfName=dummynif + PortName=COMM::1 + TSYName=MM + CSYName=ECUART + LastSocketActivityTimeout=-1 + LastSessionClosedTimeout=10 + LastSocketClosedTimeout=-1 + DataBits=8 + StopBits=1 + Parity=NONE + Rate=115200 + Handshaking=0 + SpecialRate=0 + XonChar=0 + XoffChar=0 + FaxClassPref=AUTO + SpeakerPref=NEVER + SpeakerVolPref=QUIET + ModemInitString=AT + DataInitString=AT + FaxInitString=AT + DialPauseLength=S8= + SpeakerVolContorlLow=L0 + SpeakerVolControlMedium=L1 + SpeakerVolControlHigh=L2 + SpeakerAlwaysOff=M0 + SpeakerOnUntilCarrier=M1 + SpeakerAlwaysOn=M2 + SpeakerOnAfterUntilCarrier=M3 + DialToneWaitModifier=W + CallProgress1=X1 + CallProgress2=X2 + CallProgress3=X3 + CallProgress4=X4 + EchoOff=E0 + VerboseText=V1 + QuietOff=Q0 + QuietOn=Q1 + DialCommandStateModifier=; + OnLine=O + ResetConfiguration=Z + ReturnToFactoryDefs=&F + DCDOnDuringLink=&C1 + DTRHangUp=&D2 + DSRAlwaysOn=&S0 + RTSCTSHandshake=&K3 + XonXoffHandshake=&K4 + EscapeCharacter=+ + EscapeGuardPeriod=S12 + NoDialTone=NO DIAL TONE + Busy=BUSY + NoAnswer=NO ANSWER + Carrier=CARRIER + Connect=CONNECT + CompressionClass5=COMPRESSION:CLASS 5 + CompressionV42bis=COMPRESSION:V.42 bis + CompressionNone=COMPRESSION:NONE + ProtocolLAPD=PROTOCOL:LAPD + ProtocolALT=PROTOCOL:ALT + ProtocolALTCELLULAR=PROTOCOL:ALT-CELLULAR + ProtocolNone=PROTOCOL:NONE + MessageValidityPeriod=0 + MessageDeliveryReport=TRUE + MinimumSignalLevel=0 + Agent=NULLAGT.agt + FIELD_COUNT=66 +END_ADD + ############################################################ ## LANBearer ## @@ -629,34 +700,32 @@ ADD_SECTION # COMMDB_ID = 7 - Id=20 - Name=IPProtoMappedFromIAP1 - Tier=Link.TierTable.271064560 - MCpr=MCprTable.2 + Id=7 + Name=dummynif2MappedFromIAP7 + Tier=Link.TierTable.271064565 + MCpr=MCprTable.8 AccessPointSelectionPolicy=0 - Cpr=CprTable.2 - CprConfig=1 - SCpr=SCprTable.2 - Protocol=ProtocolTable.2 + Cpr=CprTable.3 + CprConfig=7 + SCpr=SCprTable.3 + Protocol=ProtocolTable.8 AppSID=0 - CustomSelectionPolicy=1 - FIELD_COUNT=11 + FIELD_COUNT=10 END_ADD ADD_SECTION # COMMDB_ID = 8 - Id=21 - Name=IPProtoMappedFromIAP2 - Tier=Link.TierTable.271064560 - MCpr=MCprTable.2 + Id=8 + Name=dummynif2MappedFromIAP8 + Tier=Link.TierTable.271064565 + MCpr=MCprTable.8 AccessPointSelectionPolicy=0 - Cpr=CprTable.2 - CprConfig=2 - SCpr=SCprTable.2 - Protocol=ProtocolTable.2 + Cpr=CprTable.3 + CprConfig=8 + SCpr=SCprTable.3 + Protocol=ProtocolTable.8 AppSID=0 - CustomSelectionPolicy=2 - FIELD_COUNT=11 + FIELD_COUNT=10 END_ADD ADD_SECTION @@ -828,6 +897,99 @@ FIELD_COUNT=10 END_ADD +ADD_SECTION +# COMMDB_ID = 20 + Id=58 + Name=SNAP58 + Tier=Link.TierTable.2048 + MCpr=MCprTable.1 + AccessPointSelectionPolicy=APPrioritySelectionPolicyTable.8 + Cpr=CprTable.1 + CprConfig=0 + SCpr=SCprTable.7 + Protocol=ProtocolTable.1 + AppSID=0 + FIELD_COUNT=10 +END_ADD + +ADD_SECTION +# COMMDB_ID = 21 + Id=59 + Name=IPProtoMappedFromIAP7 + Tier=Link.TierTable.271064560 + MCpr=MCprTable.2 + AccessPointSelectionPolicy=0 + Cpr=CprTable.2 + CprConfig=7 + SCpr=SCprTable.2 + Protocol=ProtocolTable.2 + AppSID=0 + CustomSelectionPolicy=7 + FIELD_COUNT=11 +END_ADD + +ADD_SECTION +# COMMDB_ID = 22 + Id=61 + Name=IPProtoMappedFromIAP8 + Tier=Link.TierTable.271064560 + MCpr=MCprTable.2 + AccessPointSelectionPolicy=0 + Cpr=CprTable.2 + CprConfig=8 + SCpr=SCprTable.2 + Protocol=ProtocolTable.2 + AppSID=0 + CustomSelectionPolicy=8 + FIELD_COUNT=11 +END_ADD + +ADD_SECTION +# COMMDB_ID = 23 + Id=62 + Name=SNAP62 + Tier=Link.TierTable.2048 + MCpr=MCprTable.1 + AccessPointSelectionPolicy=APPrioritySelectionPolicyTable.9 + Cpr=CprTable.1 + CprConfig=0 + SCpr=SCprTable.7 + Protocol=ProtocolTable.1 + AppSID=0 + FIELD_COUNT=10 +END_ADD + +ADD_SECTION +# COMMDB_ID = 24 + Id=20 + Name=IPProtoMappedFromIAP1 + Tier=Link.TierTable.271064560 + MCpr=MCprTable.2 + AccessPointSelectionPolicy=0 + Cpr=CprTable.2 + CprConfig=1 + SCpr=SCprTable.2 + Protocol=ProtocolTable.2 + AppSID=0 + CustomSelectionPolicy=1 + FIELD_COUNT=11 +END_ADD + +ADD_SECTION +# COMMDB_ID = 25 + Id=21 + Name=IPProtoMappedFromIAP2 + Tier=Link.TierTable.271064560 + MCpr=MCprTable.2 + AccessPointSelectionPolicy=0 + Cpr=CprTable.2 + CprConfig=2 + SCpr=SCprTable.2 + Protocol=ProtocolTable.2 + AppSID=0 + CustomSelectionPolicy=2 + FIELD_COUNT=11 +END_ADD ############################################################ ## OutgoingGPRS @@ -955,6 +1117,33 @@ END_ADD +ADD_SECTION +# COMMDB_ID = 7 + Name=cdgdummynifnosessiontimeout + IAPServiceType=DialOutISP + IAPService=2 + IAPBearerType=ModemBearer + IAPBearer=5 + IAPNetwork=1 + IAPNetworkWeighting=0 + Location=2 + FIELD_COUNT=8 +END_ADD + +ADD_SECTION +# COMMDB_ID = 8 + Name=cdgdummynifnosessiontimeout2 + IAPServiceType=DialOutISP + IAPService=2 + IAPBearerType=ModemBearer + IAPBearer=5 + IAPNetwork=1 + IAPNetworkWeighting=0 + Location=2 + FIELD_COUNT=8 +END_ADD + + ############################################################ ## APPrioritySelectionPolicyTable @@ -1023,6 +1212,25 @@ FIELD_COUNT=5 END_ADD +ADD_SECTION +# COMMDB_ID = 8 + Name=SelectionPolicy8 + AP1=Link.AccessPointTable.59 + AP2=Link.AccessPointTable.61 + APCOUNT=2 + FIELD_COUNT=4 +END_ADD + +ADD_SECTION +# COMMDB_ID = 9 + Name=SelectionPolicy9 + AP1=Link.AccessPointTable.59 + AP2=Link.AccessPointTable.61 + AP3=Link.AccessPointTable.23 + APCOUNT=3 + FIELD_COUNT=5 +END_ADD + ############################################################ ## TierTable ## diff -r b6139031a239 -r 928ed51ddc43 datacommsserver/esockserver/test/TE_RConnection/documentation/GT0429 - PDP Contention Management Test Specification.doc Binary file datacommsserver/esockserver/test/TE_RConnection/documentation/GT0429 - PDP Contention Management Test Specification.doc has changed diff -r b6139031a239 -r 928ed51ddc43 datacommsserver/esockserver/test/TE_RConnection/documentation/SGL.GT0253.202 Non-Seamless Bearer Mobility - Test Spec.doc Binary file datacommsserver/esockserver/test/TE_RConnection/documentation/SGL.GT0253.202 Non-Seamless Bearer Mobility - Test Spec.doc has changed diff -r b6139031a239 -r 928ed51ddc43 datacommsserver/esockserver/test/TE_RConnection/documentation/SGL.GT0253.220 Data Monitoring - Test Specification.doc Binary file datacommsserver/esockserver/test/TE_RConnection/documentation/SGL.GT0253.220 Data Monitoring - Test Specification.doc has changed diff -r b6139031a239 -r 928ed51ddc43 datacommsserver/esockserver/test/TE_RConnection/documentation/TE_RConnection_Test_Specification.doc Binary file datacommsserver/esockserver/test/TE_RConnection/documentation/TE_RConnection_Test_Specification.doc has changed diff -r b6139031a239 -r 928ed51ddc43 datacommsserver/esockserver/test/TE_RConnection/group/bld.inf --- a/datacommsserver/esockserver/test/TE_RConnection/group/bld.inf Fri Jan 22 10:58:59 2010 +0200 +++ b/datacommsserver/esockserver/test/TE_RConnection/group/bld.inf Tue Jan 26 13:09:14 2010 +0200 @@ -267,6 +267,8 @@ ../scripts/Mobility/Mobility_761402.script z:/testdata/scripts/bearermobility/mobility_761402.script ../scripts/Mobility/Mobility_761403.script z:/testdata/scripts/bearermobility/mobility_761403.script +../scripts/Mobility/Mobility_761404.script z:/testdata/scripts/bearermobility/mobility_761404.script +../scripts/Mobility/Mobility_761405.script z:/testdata/scripts/bearermobility/mobility_761405.script ../scripts/Mobility/Mobility_761406.script z:/testdata/scripts/bearermobility/mobility_761406.script ../scripts/Mobility/Mobility_780100.script z:/testdata/scripts/bearermobility/mobility_780100.script ../scripts/Mobility/Mobility_780110.script z:/testdata/scripts/bearermobility/mobility_780110.script diff -r b6139031a239 -r 928ed51ddc43 datacommsserver/esockserver/test/TE_RConnection/group/te_BearerMobilityTestSuite.mmp --- a/datacommsserver/esockserver/test/TE_RConnection/group/te_BearerMobilityTestSuite.mmp Fri Jan 22 10:58:59 2010 +0200 +++ b/datacommsserver/esockserver/test/TE_RConnection/group/te_BearerMobilityTestSuite.mmp Tue Jan 26 13:09:14 2010 +0200 @@ -41,6 +41,8 @@ LIBRARY testexecuteutils.lib LIBRARY testexecutelogclient.lib LIBRARY ecom.lib +LIBRARY esock_api_ext.lib +LIBRARY insock.lib START WINS BASEADDRESS 0x59100000 diff -r b6139031a239 -r 928ed51ddc43 datacommsserver/esockserver/test/TE_RConnection/scripts/Mobility/Mobility_761404.script --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/datacommsserver/esockserver/test/TE_RConnection/scripts/Mobility/Mobility_761404.script Tue Jan 26 13:09:14 2010 +0200 @@ -0,0 +1,58 @@ +// +// 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: +// +//! @file +//! @SYMTestSuiteName NET-BEARERMOBILITY +//! @SYMScriptTestEnvironment Standard Symbian HRP or emulator environment + +// Load the test suite +LOAD_SUITE te_BearerMobilityTestSuite + +// Set up the comms database and start esock in preparation for the test +RUN_SCRIPT Z:\TestData\scripts\te_esock_test_unloadesockForced.script +CED -i z:\testdata\configs\BearerMobility\BearerMobility_001.ced.cfg c:\BearerMobility_001.ced.cfg.log +RUN_SCRIPT z:\TestData\scripts\te_esock_test_loadesock.script + + +START_TESTCASE COMINF-ESOCK-RConnection-Mobility-3704 +//! @SYMTestCaseID COMINF-ESOCK-RConnection-Mobility-3704 +//!@SYMTestCaseDesc Test that rejecting a bearer doesn't hold it open +//!@SYMPREQ PREQ1060 +//!@SYMAPI +//Mobility +//RCommsMobilityApiExt +//!@SYMTestPriority Critical +//!@SYMTestActions +// Bring up a snap with two bearers, both on. +// Kill the top priority. +// Accept the migration. +// Reject the new carrier. +// Verify that the new carrier has gone away. +// The new carrier should go away because of the short idle timer. The bearers in this test have only short idle timer to verify. +// +//!@SYMTestType CIT +//!@SYMTestExpectedResults All progresses are as expected + +RUN_TEST_STEP 100 te_BearerMobilityTestSuite NET_BMOBILITY_761404 +END_TESTCASE COMINF-ESOCK-RConnection-Mobility-3704 + +// Clean up +RUN_SCRIPT Z:\TestData\Scripts\te_esock_test_stopallinterfaces.script +RUN_SCRIPT Z:\TestData\scripts\te_esock_test_unloadesockForced.script + +PRINT Completed NET_BMOBILITY_761404 + + + diff -r b6139031a239 -r 928ed51ddc43 datacommsserver/esockserver/test/TE_RConnection/scripts/Mobility/Mobility_761405.script --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/datacommsserver/esockserver/test/TE_RConnection/scripts/Mobility/Mobility_761405.script Tue Jan 26 13:09:14 2010 +0200 @@ -0,0 +1,59 @@ +// +// 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: +// +//! @file +//! @SYMTestSuiteName NET-BEARERMOBILITY +//! @SYMScriptTestEnvironment Standard Symbian HRP or emulator environment + +// Load the test suite +LOAD_SUITE te_BearerMobilityTestSuite + +// Set up the comms database and start esock in preparation for the test +RUN_SCRIPT Z:\TestData\scripts\te_esock_test_unloadesockForced.script +CED -i z:\testdata\configs\BearerMobility\BearerMobility_001.ced.cfg c:\BearerMobility_001.ced.cfg.log +RUN_SCRIPT z:\TestData\scripts\te_esock_test_loadesock.script + + +START_TESTCASE COMINF-ESOCK-RConnection-Mobility-3705 +//! @SYMTestCaseID COMINF-ESOCK-RConnection-Mobility-3705 +//!@SYMTestCaseDesc Test that rejecting a bearer doesn't hold it open, yet we don't get KLinkLayerClosed by mistake +//!@SYMPREQ PREQ1060 +//!@SYMAPI +//Mobility +//RCommsMobilityApiExt +//!@SYMTestPriority Critical +//!@SYMTestActions +// Bring up a snap with three bearers, all on. +// Kill the top priority. +// Accept the migration. +// Reject the new carrier. +// Verify that the new carrier has gone away. +// Get offered the third priority. +// Accept third priority +// Verify KLinkLayerClosed is never received. +// +//!@SYMTestType CIT +//!@SYMTestExpectedResults All progresses are as expected +RUN_TEST_STEP 100 te_BearerMobilityTestSuite NET_BMOBILITY_761405 +END_TESTCASE COMINF-ESOCK-RConnection-Mobility-3705 + +// Clean up +RUN_SCRIPT Z:\TestData\Scripts\te_esock_test_stopallinterfaces.script +RUN_SCRIPT Z:\TestData\scripts\te_esock_test_unloadesockForced.script + +PRINT Completed NET_BMOBILITY_761405 + + + diff -r b6139031a239 -r 928ed51ddc43 datacommsserver/esockserver/test/TE_RConnection/scripts/te_RConnection_Mobility.script --- a/datacommsserver/esockserver/test/TE_RConnection/scripts/te_RConnection_Mobility.script Fri Jan 22 10:58:59 2010 +0200 +++ b/datacommsserver/esockserver/test/TE_RConnection/scripts/te_RConnection_Mobility.script Tue Jan 26 13:09:14 2010 +0200 @@ -56,6 +56,8 @@ RUN_SCRIPT z:\testdata\scripts\BearerMobility\Mobility_761402.script RUN_SCRIPT z:\testdata\scripts\BearerMobility\Mobility_761403.script +RUN_SCRIPT z:\testdata\scripts\BearerMobility\Mobility_761404.script +RUN_SCRIPT z:\testdata\scripts\BearerMobility\Mobility_761405.script RUN_SCRIPT z:\testdata\scripts\BearerMobility\Mobility_761406.script RUN_SCRIPT z:\testdata\scripts\BearerMobility\Mobility_761500.script diff -r b6139031a239 -r 928ed51ddc43 datacommsserver/esockserver/test/TE_RConnection/src/te_BearerMobilityTestSuite.cpp --- a/datacommsserver/esockserver/test/TE_RConnection/src/te_BearerMobilityTestSuite.cpp Fri Jan 22 10:58:59 2010 +0200 +++ b/datacommsserver/esockserver/test/TE_RConnection/src/te_BearerMobilityTestSuite.cpp Tue Jan 26 13:09:14 2010 +0200 @@ -22,8 +22,10 @@ */ #include "te_BearerMobilityTestSuite.h" +#include #include - +#include +#include using namespace ESock; @@ -311,7 +313,449 @@ testStep = new CBearerMobilityTestStep_761402(); else if(aStepName.Compare(_L("NET_BMOBILITY_761403")) == 0) testStep = new CBearerMobilityTestStep_761403(); + else if(aStepName.Compare(_L("NET_BMOBILITY_761404")) == 0) + testStep = new CBearerMobilityTestStep_761404(); + else if(aStepName.Compare(_L("NET_BMOBILITY_761405")) == 0) + testStep = new CBearerMobilityTestStep_761405(); return testStep; } +const TInt KBufferLength = 512; +const TInt KEchoPortNum = 8; +TInt RequestInterfaceDownL(RConnection& conn, RSocketServ& ss) +/** + * Sends a special packet to the dummy nif telling it to signal that the interface is down + * @param conn The connection to signal + * @param ss The socket server that the connection is within + * @return system wide error code + */ +{ + TRequestStatus status; + + TBuf8 buffer; + + RSocket sock; + TInetAddr dest; + + User::LeaveIfError(sock.Open(ss, KAfInet, KSockDatagram, KProtocolInetUdp, conn)); + CleanupClosePushL(sock); + + User::LeaveIfError(sock.SetOpt(KSoReuseAddr, KSolInetIp, 1)); + User::LeaveIfError(sock.SetLocalPort(KEchoPortNum)); + + dest.SetAddress(KDummyNifLocalAddressBase + 4); + dest.SetPort(KDummyNifCmdPort); + + buffer.SetMax(); + buffer.FillZ(); + buffer[0] = (TUint8) KForceDisconnect; + + sock.SendTo(buffer, dest, 0, status); + User::WaitForRequest(status); + User::LeaveIfError(status.Int()); + + buffer.Zero(); + // I expect some sort of response + // this fails - possibly ok as the interface might have gone already?? + //sock.RecvFrom(buffer, dest, 0, status); + //User::WaitForRequest(status); + //TESTEL(KErrNone == status.Int(), status.Int()); + + CleanupStack::PopAndDestroy(&sock); + + return KErrNone; +} + +/** + Bring up a snap with two bearers, both on. + Kill the top priority. + Accept the migration. + Reject the new carrier. + Verify that the new carrier has gone away. + The new carrier should go away because of the short idle timer. The bearers in this test have only short idle timer to verify. + + This test verifies DEF143172 +*/ +enum TVerdict CBearerMobilityTestStep_761404::doTestStepL() + { + const TInt KTestSnap = 20; + const TInt KPriority1BearerAP = 7; + const TInt KPriority2BearerAP = 8; + + TInt error; + TInterfaceNotificationBuf info1; + TNifProgress progress; + TNifProgressBuf progbuf(progress); + TBuf8 eventnotbuf; + TRequestStatus status1, status2, status3; + + RSocketServ ss; + RConnection connS, connAIN; + RCommsMobilityApiExt mobility; + TConnSnapPref p; + p.SetSnap(KTestSnap); + + INFO_PRINTF1(_L("Description: ")); + INFO_PRINTF1(_L("Bring up a snap with two bearers, both on.")); + INFO_PRINTF1(_L("Kill the top priority.")); + INFO_PRINTF1(_L("Accept the migration.")); + INFO_PRINTF1(_L("Reject the new carrier.")); + INFO_PRINTF1(_L("Verify that the new carrier has goes away.")); + INFO_PRINTF1(_L("The new carrier should go away because of the short idle timer. The bearers in this test have only short idle timer to verify.")); + INFO_PRINTF1(_L("=============================================================================")); + + // Set both bearer to be up + RProperty a1; + error = a1.Define(KAvailabilityTestingPubSubUid, KPriority1BearerAP, RProperty::EInt); + if((error == KErrAlreadyExists) || (error == KErrNone)) + { + error = a1.Attach(KAvailabilityTestingPubSubUid, KPriority1BearerAP); + ASSERT(error == KErrNone); + + a1.Set(ESock::TAvailabilityStatus::EMaxAvailabilityScore); + } + + RProperty a2; + error = a2.Define(KAvailabilityTestingPubSubUid, KPriority1BearerAP, RProperty::EInt); + if((error == KErrAlreadyExists) || (error == KErrNone)) + { + error = a2.Attach(KAvailabilityTestingPubSubUid, KPriority1BearerAP); + ASSERT(error == KErrNone); + + a2.Set(ESock::TAvailabilityStatus::EMaxAvailabilityScore); + } + + // Open session and subsessions + User::LeaveIfError(ss.Connect()); + CleanupClosePushL(ss); + + User::LeaveIfError(connAIN.Open(ss)); + CleanupClosePushL(connAIN); + + User::LeaveIfError(connS.Open(ss)); + CleanupClosePushL(connS); + + // Register for notification of connections going up/down + INFO_PRINTF1(_L("Register for notification of connections going up/down")); + connAIN.AllInterfaceNotification(info1, status1); + + // Start the connection + INFO_PRINTF2(_L("Start connection (%d)"), p.Snap()); + User::LeaveIfError(connS.Start(p)); + + // Check all interface notification + User::WaitForRequest(status1); + INFO_PRINTF3(_L("Interface changed IAP (%d) is in state (%d)"), info1().iConnectionInfo.iIapId, info1().iState); + TESTL(info1().iConnectionInfo.iIapId == KPriority1BearerAP && info1().iState == 0); + + // Register for notification again + connAIN.AllInterfaceNotification(info1, status1); + + // Check the current progress + error = connS.Progress(progress); + INFO_PRINTF3(_L("Current progress iStage(%d) iError(%d)"), progress.iStage, progress.iError); + TESTL(error == KErrNone); + TESTL(progress.iStage == KLinkLayerOpen && progress.iError == KErrNone); + + // open mobility + INFO_PRINTF1(_L("Open mobility on connection")); + error = mobility.Open(connS); + TESTL(error == KErrNone); + CleanupClosePushL(mobility); + + // register for mobility notification + eventnotbuf.Zero(); + INFO_PRINTF1(_L("Register for notification")); + mobility.RegisterForMobilityNotification(eventnotbuf, status2); + + // Turn first priority off + INFO_PRINTF1(_L("Turn off highest priority bearer")); + a1.Set(ESock::TAvailabilityStatus::EMinAvailabilityScore); + RequestInterfaceDownL(connS, ss); + + // wait for all interface notification to report bearer down + User::WaitForRequest(status1); + INFO_PRINTF3(_L("Interface changed IAP (%d) is in state (%d)"), info1().iConnectionInfo.iIapId, info1().iState); + TESTL(info1().iConnectionInfo.iIapId == KPriority1BearerAP && info1().iState == 1); + + // register for all interface notification again + connAIN.AllInterfaceNotification(info1, status1); + + // wait for mobility notification + User::WaitForRequest(status2); + CCommsApiExtRespMsg * msg = CCommsApiExtRespMsg::NewL(eventnotbuf); + CleanupStack::PushL(msg); + + ESock::CPreferredCarrierAvailable* pca = static_cast(msg); + INFO_PRINTF3(_L("Preferred carrier available NewAP(%d) OldAP(%d)"), pca->NewAPInfo().AccessPoint(), pca->OldAPInfo().AccessPoint()); + TESTL(KPriority2BearerAP == pca->NewAPInfo().AccessPoint() && KPriority1BearerAP == pca->OldAPInfo().AccessPoint()); + + // register for mobility and migrate + mobility.RegisterForMobilityNotification(eventnotbuf, status2); + INFO_PRINTF1(_L("Migrate to preferred carrier")); + mobility.MigrateToPreferredCarrier(); + + // check that the expected bearer has come up + User::WaitForRequest(status1); + INFO_PRINTF3(_L("Interface changed IAP (%d) is in state (%d)"), info1().iConnectionInfo.iIapId, info1().iState); + TESTEL(info1().iConnectionInfo.iIapId == KPriority2BearerAP && info1().iState == 0, KErrCorrupt); + + // register for it again + connAIN.AllInterfaceNotification(info1, status1); + + // register for progress notification, for KLinkLayerClosed. + connS.ProgressNotification(progbuf, status3, KLinkLayerClosed); + + // wait for new carrier active + User::WaitForRequest(status2); + + CleanupStack::PopAndDestroy(msg); + // verify the new carrier is as expected and then reject it + msg = CCommsApiExtRespMsg::NewL(eventnotbuf); + CleanupStack::PushL(msg); + ESock::CNewCarrierActive* nca = static_cast(msg); + INFO_PRINTF2(_L("NewCarrierActive NewAP(%d)"), nca->NewAPInfo().AccessPoint()); + TESTL(nca->NewAPInfo().AccessPoint() == KPriority2BearerAP); + CleanupStack::PopAndDestroy(msg); + + INFO_PRINTF1(_L("Reject new carrier")); + mobility.NewCarrierRejected(); + + // wait for all interface notification to tell us connection has gone down. + User::WaitForRequest(status1); + INFO_PRINTF3(_L("Interface changed IAP (%d) is in state (%d)"), info1().iConnectionInfo.iIapId, info1().iState); + TESTL(info1().iConnectionInfo.iIapId == KPriority2BearerAP && info1().iState == 1); + + User::WaitForRequest(status3); + INFO_PRINTF3(_L("Progress notification received iStage(%d) iError(%d)"), progbuf().iStage, progbuf().iError); + TESTL(progbuf().iStage == KLinkLayerClosed); + + CleanupStack::PopAndDestroy(&mobility); + CleanupStack::PopAndDestroy(&connS); + CleanupStack::PopAndDestroy(&connAIN); + CleanupStack::PopAndDestroy(&ss); + + return EPass; + } + +/** + Bring up a snap with three bearers, all on. + Kill the top priority. + Accept the migration. + Reject the new carrier. + Verify that the new carrier has gone away. + Get offered the third priority. + Accept third priority + Verify KLinkLayerClosed is never received. + + This test verifies DEF143172 +*/ +enum TVerdict CBearerMobilityTestStep_761405::doTestStepL() + { + const TInt KTestSnap = 23; + const TInt KPriority1BearerAP = 7; + const TInt KPriority2BearerAP = 8; + const TInt KPriority3BearerAP = 4; + + TInt error; + TInterfaceNotificationBuf info1; + TNifProgress progress; + TNifProgressBuf progbuf(progress); + TBuf8 eventnotbuf; + TRequestStatus status1, status2, status3; + + RSocketServ ss; + RConnection connS, connAIN; + RCommsMobilityApiExt mobility; + TConnSnapPref p; + p.SetSnap(KTestSnap); + + INFO_PRINTF1(_L("Description: ")); + INFO_PRINTF1(_L("Bring up a snap with three bearers, all on.")); + INFO_PRINTF1(_L("Kill the top priority.")); + INFO_PRINTF1(_L("Accept the migration.")); + INFO_PRINTF1(_L("Reject the new carrier.")); + INFO_PRINTF1(_L("Verify that the new carrier has goes away.")); + INFO_PRINTF1(_L("Accept the migration to the third priority.")); + INFO_PRINTF1(_L("Accept the new carrier.")); + INFO_PRINTF1(_L("The new carrier should go away because of the short idle timer. The bearers in this test have only short idle timer to verify.")); + INFO_PRINTF1(_L("=============================================================================")); + + // Set both bearer to be up + RProperty a1; + error = a1.Define(KAvailabilityTestingPubSubUid, KPriority1BearerAP, RProperty::EInt); + if((error == KErrAlreadyExists) || (error == KErrNone)) + { + error = a1.Attach(KAvailabilityTestingPubSubUid, KPriority1BearerAP); + ASSERT(error == KErrNone); + + a1.Set(ESock::TAvailabilityStatus::EMaxAvailabilityScore); + } + + RProperty a2; + error = a2.Define(KAvailabilityTestingPubSubUid, KPriority1BearerAP, RProperty::EInt); + if((error == KErrAlreadyExists) || (error == KErrNone)) + { + error = a2.Attach(KAvailabilityTestingPubSubUid, KPriority1BearerAP); + ASSERT(error == KErrNone); + + a2.Set(ESock::TAvailabilityStatus::EMaxAvailabilityScore); + } + + RProperty a3; + error = a3.Define(KAvailabilityTestingPubSubUid, KPriority3BearerAP, RProperty::EInt); + if((error == KErrAlreadyExists) || (error == KErrNone)) + { + error = a3.Attach(KAvailabilityTestingPubSubUid, KPriority3BearerAP); + ASSERT(error == KErrNone); + + a3.Set(ESock::TAvailabilityStatus::EMaxAvailabilityScore); + } + + // Open session and subsessions + User::LeaveIfError(ss.Connect()); + CleanupClosePushL(ss); + + User::LeaveIfError(connAIN.Open(ss)); + CleanupClosePushL(connAIN); + + User::LeaveIfError(connS.Open(ss)); + CleanupClosePushL(connS); + + // Register for notification of connections going up/down + INFO_PRINTF1(_L("Register for notification of connections going up/down")); + connAIN.AllInterfaceNotification(info1, status1); + + // Start the connection + INFO_PRINTF2(_L("Start connection (%d)"), p.Snap()); + User::LeaveIfError(connS.Start(p)); + + // Check all interface notification + User::WaitForRequest(status1); + INFO_PRINTF3(_L("Interface changed IAP (%d) is in state (%d)"), info1().iConnectionInfo.iIapId, info1().iState); + TESTL(info1().iConnectionInfo.iIapId == KPriority1BearerAP && info1().iState == 0); + + // Register for notification again + connAIN.AllInterfaceNotification(info1, status1); + + // Check the current progress + error = connS.Progress(progress); + INFO_PRINTF3(_L("Current progress iStage(%d) iError(%d)"), progress.iStage, progress.iError); + TESTL(error == KErrNone); + TESTL(progress.iStage == KLinkLayerOpen && progress.iError == KErrNone); + + // open mobility + INFO_PRINTF1(_L("Open mobility on connection")); + error = mobility.Open(connS); + TESTL(error == KErrNone); + CleanupClosePushL(mobility); + + // register for mobility notification + eventnotbuf.Zero(); + INFO_PRINTF1(_L("Register for notification")); + mobility.RegisterForMobilityNotification(eventnotbuf, status2); + + // Turn first priority off + INFO_PRINTF1(_L("Turn off highest priority bearer")); + a1.Set(ESock::TAvailabilityStatus::EMinAvailabilityScore); + RequestInterfaceDownL(connS, ss); + + // wait for all interface notification to report bearer down + User::WaitForRequest(status1); + INFO_PRINTF3(_L("Interface changed IAP (%d) is in state (%d)"), info1().iConnectionInfo.iIapId, info1().iState); + TESTL(info1().iConnectionInfo.iIapId == KPriority1BearerAP && info1().iState == 1); + + // register for all interface notification again + connAIN.AllInterfaceNotification(info1, status1); + + // wait for mobility notification + User::WaitForRequest(status2); + CCommsApiExtRespMsg * msg = CCommsApiExtRespMsg::NewL(eventnotbuf); + CleanupStack::PushL(msg); + + ESock::CPreferredCarrierAvailable* pca = static_cast(msg); + INFO_PRINTF3(_L("Preferred carrier available NewAP(%d) OldAP(%d)"), pca->NewAPInfo().AccessPoint(), pca->OldAPInfo().AccessPoint()); + TESTL(KPriority2BearerAP == pca->NewAPInfo().AccessPoint() && KPriority1BearerAP == pca->OldAPInfo().AccessPoint()); + + // register for mobility and migrate + mobility.RegisterForMobilityNotification(eventnotbuf, status2); + INFO_PRINTF1(_L("Migrate to preferred carrier")); + mobility.MigrateToPreferredCarrier(); + + // check that the expected bearer has come up + User::WaitForRequest(status1); + INFO_PRINTF3(_L("Interface changed IAP (%d) is in state (%d)"), info1().iConnectionInfo.iIapId, info1().iState); + TESTEL(info1().iConnectionInfo.iIapId == KPriority2BearerAP && info1().iState == 0, KErrCorrupt); + + // register for it again + connAIN.AllInterfaceNotification(info1, status1); + + // register for progress notification, for KLinkLayerClosed. + connS.ProgressNotification(progbuf, status3, KLinkLayerClosed); + + // wait for new carrier active + User::WaitForRequest(status2); + + CleanupStack::PopAndDestroy(msg); + // verify the new carrier is as expected and then reject it + msg = CCommsApiExtRespMsg::NewL(eventnotbuf); + CleanupStack::PushL(msg); + ESock::CNewCarrierActive* nca = static_cast(msg); + INFO_PRINTF2(_L("NewCarrierActive NewAP(%d)"), nca->NewAPInfo().AccessPoint()); + TESTL(nca->NewAPInfo().AccessPoint() == KPriority2BearerAP); + CleanupStack::PopAndDestroy(msg); + + mobility.RegisterForMobilityNotification(eventnotbuf, status2); + INFO_PRINTF1(_L("Reject new carrier")); + mobility.NewCarrierRejected(); + + // wait for mobility notification + User::WaitForRequest(status2); + msg = CCommsApiExtRespMsg::NewL(eventnotbuf); + CleanupStack::PushL(msg); + + pca = static_cast(msg); + INFO_PRINTF3(_L("Preferred carrier available NewAP(%d) OldAP(%d)"), pca->NewAPInfo().AccessPoint(), pca->OldAPInfo().AccessPoint()); + TESTL(KPriority3BearerAP == pca->NewAPInfo().AccessPoint() && KPriority2BearerAP == pca->OldAPInfo().AccessPoint()); + + // register for mobility and migrate + mobility.RegisterForMobilityNotification(eventnotbuf, status2); + INFO_PRINTF1(_L("Migrate to preferred carrier")); + mobility.MigrateToPreferredCarrier(); + + // check that the expected bearer has come up + User::WaitForRequest(status1); + INFO_PRINTF3(_L("Interface changed IAP (%d) is in state (%d)"), info1().iConnectionInfo.iIapId, info1().iState); + TESTL(info1().iConnectionInfo.iIapId == KPriority3BearerAP && info1().iState == 0); + + connAIN.AllInterfaceNotification(info1, status1); + + // wait for all interface notification to tell us connection has gone down. + User::WaitForRequest(status1); + INFO_PRINTF3(_L("Interface changed IAP (%d) is in state (%d)"), info1().iConnectionInfo.iIapId, info1().iState); + TESTL(info1().iConnectionInfo.iIapId == KPriority2BearerAP && info1().iState == 1); + + CleanupStack::PopAndDestroy(msg); + // verify the new carrier is as expected and then reject it + msg = CCommsApiExtRespMsg::NewL(eventnotbuf); + CleanupStack::PushL(msg); + nca = static_cast(msg); + INFO_PRINTF2(_L("NewCarrierActive NewAP(%d)"), nca->NewAPInfo().AccessPoint()); + TESTL(nca->NewAPInfo().AccessPoint() == KPriority3BearerAP); + CleanupStack::PopAndDestroy(msg); + + INFO_PRINTF1(_L("Accept migration")); + mobility.NewCarrierAccepted(); + + // Ensure we're never got KLinkLayerClosed + TESTL(status3.Int() == KRequestPending); + connS.CancelProgressNotification(); + + CleanupStack::PopAndDestroy(&mobility); + CleanupStack::PopAndDestroy(&connS); + CleanupStack::PopAndDestroy(&connAIN); + CleanupStack::PopAndDestroy(&ss); + + return EPass; + } diff -r b6139031a239 -r 928ed51ddc43 datacommsserver/esockserver/test/TE_RConnection/src/te_BearerMobilityTestSuite.h --- a/datacommsserver/esockserver/test/TE_RConnection/src/te_BearerMobilityTestSuite.h Fri Jan 22 10:58:59 2010 +0200 +++ b/datacommsserver/esockserver/test/TE_RConnection/src/te_BearerMobilityTestSuite.h Tue Jan 26 13:09:14 2010 +0200 @@ -101,6 +101,19 @@ enum TVerdict doTestStepL(void); }; +class CBearerMobilityTestStep_761404 : public CTestStep + { +public: + virtual ~CBearerMobilityTestStep_761404() {} + enum TVerdict doTestStepL(void); + }; + +class CBearerMobilityTestStep_761405 : public CTestStep + { +public: + virtual ~CBearerMobilityTestStep_761405() {} + enum TVerdict doTestStepL(void); + }; #endif /* TE_BEARERMOBILITYTESTSUITE_H */ diff -r b6139031a239 -r 928ed51ddc43 datacommsserver/esockserver/test/TE_RConnectionServ/documentation/RConnectionServ API test specification.doc Binary file datacommsserver/esockserver/test/TE_RConnectionServ/documentation/RConnectionServ API test specification.doc has changed diff -r b6139031a239 -r 928ed51ddc43 datacommsserver/esockserver/test/TE_RConnectionSuite/config/def143083.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/datacommsserver/esockserver/test/TE_RConnectionSuite/config/def143083.xml Tue Jan 26 13:09:14 2010 +0200 @@ -0,0 +1,1249 @@ + + + + + + + + + + + + + NT RAS + + + Linux + + + Dummy + + + Hungry + + + Dummy (Long Timeout) + + + Hungry (Long Timeout) + + + + + + Hungry + DialOutISP.Dummy + ModemBearer.Hungry + Network.Hungry + 0 + Location.Office Direct Dial + + + NTRas GPRS + OutgoingGPRS.NTRas GPRS + ModemBearer.Hungry (Long Timeout) + Network.NT RAS + 0 + Location.Mobile + + + Additional Dial In ISP + DialInISP.Dial In CS ISP + ModemBearer.Linux + Network.NT RAS + 0 + Location.Home + + + Default Dial In ISP + DialInISP.Dial In CS ISP + ModemBearer.Linux + Network.NT RAS + 0 + Location.Home + + + Linux + DialOutISP.Linux + ModemBearer.Linux + Network.Linux + 0 + Location.Office Direct Dial + + + Dummy + DialOutISP.Dummy + ModemBearer.Dummy + Network.Dummy + 0 + Location.Office Direct Dial + + + Actual NT RAS + DialOutISP.NT RAS + ModemBearer.Null Modem 115200bps + Network.NT RAS + 0 + Location.Office + + + Virtual Comm port + DialOutISP.Linux + ModemBearer.Null Modem 115200bps + Network.Linux + 0 + Location.Office + + + Bad NT RAS + DialOutISP.Bad NT RAS + ModemBearer.Null Modem 115200bps + Network.NT RAS + 0 + Location.Office + + + Dummy (Long Timeout) + DialOutISP.Dummy + ModemBearer.Dummy (Long Timeout) + Network.Dummy (Long Timeout) + 0 + Location.Office + + + Hungry (Long Timeout) + DialOutISP.Dummy + ModemBearer.Hungry (Long Timeout) + Network.Hungry (Long Timeout) + 0 + Location.Office + + + QoS Test Nif + DialOutISP.NT RAS + ModemBearer.QoS Test Bearer + Network.Hungry (Long Timeout) + 0 + Location.Office + + + + + + 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 + 30 + 8 + 10 + + + 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 + 0 + 30 + 8 + 30 + + + Linux + CSD.agt + PPP + COMM::3 + NTRASTSY + ECUART + 5 + 1 + NONE + 115200 + 0 + 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 + TRUE + 0 + 30 + 8 + 10 + + + Dummy + NULLAGT.agt + dummynif + COMM::0 + NTRASTSY + ECUART + 5 + 1 + NONE + 115200 + 0 + 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 + TRUE + 0 + 30 + 5 + 10 + + + Hungry + NULLAGT.agt + hungrynif + COMM::0 + NTRASTSY + ECUART + 5 + 1 + NONE + 115200 + 0 + 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 + TRUE + 0 + 30 + 8 + 30 + + + Dummy (Long Timeout) + NULLAGT.agt + dummynif + COMM::0 + MM + ECUART + 8 + 1 + NONE + 115200 + 0 + 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 + TRUE + 0 + 14 + 6 + 10 + + + Hungry (Long Timeout) + NULLAGT.agt + hungrynif + COMM::0 + MM + ECUART + 8 + 1 + NONE + 115200 + 0 + 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 + TRUE + 0 + 16 + 8 + 12 + + + QoS Test Bearer + CSD.agt + QoSPPP + 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 + 30 + 8 + 10 + + + + + + Dummy LAN Bearer + PSD.agt + ppp + Dummy LDD + Dummy PDD + + + + + + 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 + + + + + + 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 + FALSE + 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 + RasUser + pass + 0 + FALSE + 0 + 10.16.59.15 + 0.0.0.0 + FALSE + FALSE + FALSE + FALSE + 0 + ASYNCHRONOUS + UNSPECIFIED + UNSPECIFIED + CSD + UNSPECIFIED + 9600 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + FALSE + FALSE + + + Linux + TRUE + FALSE + FALSE + FALSE + TRUE + TRUE + Linux + INTERNETONLY + New Record + RasUser + FALSE + ip + RasUser + pass + 0 + FALSE + IETF0 + 0 + FALSE + FALSE + FALSE + FALSE + 0 + ASYNCHRONOUS + UNSPECIFIED + UNSPECIFIED + CSD + UNSPECIFIED + 9600 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + FALSE + FALSE + + + Dummy + TRUE + FALSE + FALSE + FALSE + TRUE + TRUE + Dummy + INTERNETONLY + New Record + FALSE + ip + 0 + FALSE + IETF0 + 0 + FALSE + FALSE + FALSE + FALSE + 0 + ASYNCHRONOUS + UNSPECIFIED + UNSPECIFIED + CSD + UNSPECIFIED + 9600 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + FALSE + FALSE + + + Bad NT RAS + TRUE + TRUE + FALSE + FALSE + TRUE + FALSE + 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 + RasUser + badpass + 0 + FALSE + 0 + FALSE + FALSE + FALSE + FALSE + 0 + ASYNCHRONOUS + UNSPECIFIED + UNSPECIFIED + CSD + UNSPECIFIED + 9600 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + FALSE + FALSE + + + + + + + + + Dummy BT Chargecard + 144,12345678 + 0000 + HG + HFG + HEFG + + + Dummy Mercury Chargecard + 0500800800,,12345678 + **** + HG + J,K,0FG + HEFG + + + + + + ConnectionPreferencesTable2 + 1 + OUTGOING + DONOTPROMPT + CSD + IAP.Dummy + + + + + + GlobalSettingsTable1 + 3 + 2 + 2 + 1 + 1 + 2 + 2 + 2 + Location.Office + Location.Office + GSM + Network.NT RAS + 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 b6139031a239 -r 928ed51ddc43 datacommsserver/esockserver/test/TE_RConnectionSuite/config/te_rconnectionallinterfacenot_NonConnection.script --- a/datacommsserver/esockserver/test/TE_RConnectionSuite/config/te_rconnectionallinterfacenot_NonConnection.script Fri Jan 22 10:58:59 2010 +0200 +++ b/datacommsserver/esockserver/test/TE_RConnectionSuite/config/te_rconnectionallinterfacenot_NonConnection.script Tue Jan 26 13:09:14 2010 +0200 @@ -118,5 +118,25 @@ END_TESTCASE COMINF-ESOCK-RConnectionSuite-AllInterfaceNot-0209 + + + + +// NOTE: This test changes the previously loaded commdb +run_script z:\TestData\scripts\te_esock_test_unloadesockForced.script +ced z:\testdata\configs\def143083.xml +run_script z:\TestData\scripts\te_esock_test_loadesock.script + + +START_TESTCASE COMINF-ESOCK-RConnectionSuite-AllInterfaceNot-0210 +//! @SYMTestCaseID COMINF-ESOCK-RConnectionSuite-AllInterfaceNot-0210 + +heap_mark +run_test_step 500, TE_RConnectionSuite TestAllInterfaceNot210 +heap_markend +test_complete +END_TESTCASE COMINF-ESOCK-RConnectionSuite-AllInterfaceNot-0210 + + run_script z:\TestData\scripts\te_esock_test_unloadesockForced.script diff -r b6139031a239 -r 928ed51ddc43 datacommsserver/esockserver/test/TE_RConnectionSuite/group/TE_RConnectionSuite.iby --- a/datacommsserver/esockserver/test/TE_RConnectionSuite/group/TE_RConnectionSuite.iby Fri Jan 22 10:58:59 2010 +0200 +++ b/datacommsserver/esockserver/test/TE_RConnectionSuite/group/TE_RConnectionSuite.iby Tue Jan 26 13:09:14 2010 +0200 @@ -42,6 +42,7 @@ data=EPOCROOT##epoc32\data\z\testdata\scripts\te_rconnectionhostresolvertests_connection_eth_target.script testdata\scripts\te_rconnectionhostresolvertests_connection_eth.script data=EPOCROOT##epoc32\data\z\testdata\scripts\te_rconnectionallinterfacenot_connection_eth_target.script testdata\scripts\te_rconnectionallinterfacenot_connection_eth.script +data=EPOCROOT##epoc32\data\z\testdata\configs\def143083.xml testdata\configs\def143083.xml data=EPOCROOT##epoc32\data\z\testdata\configs\rconnectionudp_ethernet_MOMAP16xx.xml testdata\configs\rconnectionudp_ethernet.xml data=EPOCROOT##epoc32\data\z\testdata\configs\rconnectionethernet_MOMAP16xx.xml testdata\configs\rconnectionethernet.xml data=EPOCROOT##epoc32\data\z\testdata\configs\ainethernet_MOMAP16xx.xml testdata\configs\ainethernet.xml diff -r b6139031a239 -r 928ed51ddc43 datacommsserver/esockserver/test/TE_RConnectionSuite/group/bld.inf --- a/datacommsserver/esockserver/test/TE_RConnectionSuite/group/bld.inf Fri Jan 22 10:58:59 2010 +0200 +++ b/datacommsserver/esockserver/test/TE_RConnectionSuite/group/bld.inf Tue Jan 26 13:09:14 2010 +0200 @@ -107,6 +107,7 @@ // Configs // ------------------------------------ +../config/def143083.xml z:/testdata/configs/def143083.xml ../config/rconnectionudp.xml z:/testdata/configs/rconnectionudp.xml ../config/rconnectionntras.xml z:/testdata/configs/rconnectionntras.xml ../config/ainudp.xml z:/testdata/configs/ainudp.xml diff -r b6139031a239 -r 928ed51ddc43 datacommsserver/esockserver/test/TE_RConnectionSuite/inc/TE_AllInterfaceNotification.h --- a/datacommsserver/esockserver/test/TE_RConnectionSuite/inc/TE_AllInterfaceNotification.h Fri Jan 22 10:58:59 2010 +0200 +++ b/datacommsserver/esockserver/test/TE_RConnectionSuite/inc/TE_AllInterfaceNotification.h Tue Jan 26 13:09:14 2010 +0200 @@ -153,5 +153,23 @@ }; -#endif // TS_ALLINTERFACENOTIFICATION_H +class TE_RConnectionTestAllInterfaceNot210 : public CTestStep + { +public: + virtual TVerdict doTestStepL(); + virtual TVerdict doTestStepPreambleL(); + virtual TVerdict doTestStepPostambleL(); + ~TE_RConnectionTestAllInterfaceNot210(); + +private: + RSocketServ iSS; + RConnection iConnStart; + RConnection iConnAttach; + RConnection iConnAllIfaceNotify; + RTimer iTimer; + }; + +#endif +// TS_ALLINTERFACENOTIFICATION_H + diff -r b6139031a239 -r 928ed51ddc43 datacommsserver/esockserver/test/TE_RConnectionSuite/src/TE_AllInterfaceNotification.cpp --- a/datacommsserver/esockserver/test/TE_RConnectionSuite/src/TE_AllInterfaceNotification.cpp Fri Jan 22 10:58:59 2010 +0200 +++ b/datacommsserver/esockserver/test/TE_RConnectionSuite/src/TE_AllInterfaceNotification.cpp Tue Jan 26 13:09:14 2010 +0200 @@ -1628,3 +1628,201 @@ return TestStepResult(); } // TE_RConnectionTest318 + +/****************************************************************************** + * + * Test TestAllInterfaceNot112 + * + * Added for def143083 + * + * Commsdat configuration should have a default connection that fails to start. + * Uses dummynif and sets it to fail using the mobility pub/sub. + * + * Start listening for AllInterfaceNotification + * Start a connection asynchronously + * On completion of AllInterfaceNotification with EInterfaceUp - Re-request + * Attach another connection to the interface reported as up + * Async start completes with error + * AllInterfaceNotification *SHOULD* complete with EInterfaceDown + *****************************************************************************/ +TVerdict TE_RConnectionTestAllInterfaceNot210::doTestStepL(void) + { + TInt err; + + TRequestStatus allIfaceStatus; + TInterfaceNotificationBuf notificationBuf; + iConnAllIfaceNotify.AllInterfaceNotification(notificationBuf, allIfaceStatus); + + TRequestStatus connStartStatus; + iConnStart.Start(connStartStatus); + User::WaitForRequest(connStartStatus, allIfaceStatus); + + if (allIfaceStatus == KRequestPending) + { + // Fail + INFO_PRINTF2(_L("Connection start completed with %d before AllInterfaceNotification()"), connStartStatus.Int()); + iConnAllIfaceNotify.CancelAllInterfaceNotification(); + User::WaitForRequest(allIfaceStatus); + return EFail; // EFail has no effect, default fail result set in pre-amble + } + + // AllInterfaceNotification() completed + if (notificationBuf().iState != EInterfaceUp) + { + // Fail + INFO_PRINTF1(_L("AllInterfaceNotification() completed with unexpected state [iState != EInterfaceUp]")); + iConnStart.Stop(); + User::WaitForRequest(connStartStatus); + return EFail; // EFail has no effect, default fail result set in pre-amble + } + + INFO_PRINTF1(_L("AllInterfaceNotification() completed with [iState == EInterfaceUp]")); + TConnectionInfoBuf connInfoBuf(notificationBuf().iConnectionInfo); + + // Attach() to the connection + err = iConnAttach.Attach(connInfoBuf, RConnection::EAttachTypeMonitor); + if (err != KErrNone) + { + // FAIL + INFO_PRINTF2(_L("Attach() completed with %d"), err); + iConnStart.Stop(); + User::WaitForRequest(connStartStatus); + return EFail; // EFail has no effect, default fail result set in pre-amble + } + + // Re-request + iConnAllIfaceNotify.AllInterfaceNotification(notificationBuf, allIfaceStatus); + + // Set test time out + TRequestStatus timerStatus; + const TInt KTimerDelay = 20 * 1000 * 1000; // 20 secs should be plenty for the connection start to fail + iTimer.After(timerStatus, KTimerDelay); + + const TInt KRequestCount = 3; + TRequestStatus* requests[KRequestCount] = { &connStartStatus, &allIfaceStatus, &timerStatus }; + User::WaitForNRequest(requests, KRequestCount); + + if (timerStatus != KRequestPending) + { + // Fail + INFO_PRINTF1(_L("Guard timer elapsed")); + iConnAllIfaceNotify.CancelAllInterfaceNotification(); + User::WaitForRequest(allIfaceStatus); + iConnStart.Stop(); + User::WaitForRequest(connStartStatus); + return EFail; // EFail has no effect, default fail result set in pre-amble + } + + iTimer.Cancel(); + User::WaitForRequest(timerStatus); + + if (allIfaceStatus == KRequestPending) + { + // Connection start completed + if (connStartStatus.Int() != KErrNone) + { + // Reset timer and wait a little longer + iTimer.After(timerStatus, KTimerDelay); + User::WaitForRequest(allIfaceStatus, timerStatus); + } + else + { + // FAIL - Misconfigured? Connection is expected to fail + INFO_PRINTF1(_L("Connection started successfully (** Was expected to fail **)")); + iConnAllIfaceNotify.CancelAllInterfaceNotification(); + User::WaitForRequest(allIfaceStatus); + return EFail; // EFail has no effect, default fail result set in pre-amble + } + + if (allIfaceStatus == KRequestPending) + { + // FAIL + INFO_PRINTF1(_L("Guard timer elapsed")); + iConnAllIfaceNotify.CancelAllInterfaceNotification(); + User::WaitForRequest(allIfaceStatus); + return EFail; // EFail has no effect, default fail result set in pre-amble + } + + iTimer.Cancel(); + User::WaitForRequest(timerStatus); + } + else + { + // Just wait for the conn start to complete + User::WaitForRequest(connStartStatus); + if (connStartStatus.Int() == KErrNone) + { + // FAIL - Misconfigured? Connection is expected to fail + INFO_PRINTF1(_L("Connection started successfully (** Was expected to fail **)")); + iConnAllIfaceNotify.CancelAllInterfaceNotification(); + User::WaitForRequest(allIfaceStatus); + return EFail; // EFail has no effect, default fail result set in pre-amble + } + } + + // Last thing to check - make sure it completed with interface down + if (notificationBuf().iState != EInterfaceDown) + { + // FAIL + INFO_PRINTF1(_L("AllInterfaceNotification() completed with unexpected state [iState != EInterfaceDown]")); + return EFail; // EFail has no effect, default fail result set in pre-amble + } + + // PASS + SetTestStepResult(EPass); + } + +TVerdict TE_RConnectionTestAllInterfaceNot210::doTestStepPreambleL() + { + TInt err; + + SetTestStepResult(EFail); + + // Prepare socket server and connections + err = iSS.Connect(); + TESTEL(err == KErrNone, err); + + err = iConnStart.Open(iSS); + TESTEL(err == KErrNone, err); + + err = iConnAttach.Open(iSS); + TESTEL(err == KErrNone, err); + + err = iConnAllIfaceNotify.Open(iSS); + TESTEL(err == KErrNone, err); + + err = iTimer.CreateLocal(); + TESTEL(err == KErrNone, err); + + // Setup the dummynif pub/sub setting + const TUid KAvailabilityTestingPubSubUid = { 0x10272F42 }; + const TInt KApId = 6; /* see the def143083.xml config */ + + RProperty dummyNifEnableProperty; + err = dummyNifEnableProperty.Define(KAvailabilityTestingPubSubUid, KApId , RProperty::EInt); + if (err != KErrAlreadyExists) + { + TESTEL(err == KErrNone, err); + } + + err = dummyNifEnableProperty.Attach(KAvailabilityTestingPubSubUid, KApId); + TESTEL(err == KErrNone, err); + + dummyNifEnableProperty.Set(0); // Dummy NIF not available - Start should fail + dummyNifEnableProperty.Close(); + } + +TVerdict TE_RConnectionTestAllInterfaceNot210::doTestStepPostambleL() + { + + } + +TE_RConnectionTestAllInterfaceNot210::~TE_RConnectionTestAllInterfaceNot210() + { + iConnAllIfaceNotify.Close(); + iConnAttach.Close(); + iConnStart.Close(); + iSS.Close(); + + iTimer.Close(); + } diff -r b6139031a239 -r 928ed51ddc43 datacommsserver/esockserver/test/TE_RConnectionSuite/src/TE_RConnectionSuite.cpp --- a/datacommsserver/esockserver/test/TE_RConnectionSuite/src/TE_RConnectionSuite.cpp Fri Jan 22 10:58:59 2010 +0200 +++ b/datacommsserver/esockserver/test/TE_RConnectionSuite/src/TE_RConnectionSuite.cpp Tue Jan 26 13:09:14 2010 +0200 @@ -481,6 +481,8 @@ testStep=new TE_RConnectionTest318(); else if(aStepName.Compare(_L("Test319")) == 0) testStep=new TE_RConnectionTest319(); + else if (aStepName.Compare(_L("TestAllInterfaceNot210")) == 0) + testStep = new TE_RConnectionTestAllInterfaceNot210(); return testStep; } diff -r b6139031a239 -r 928ed51ddc43 datacommsserver/esockserver/test/TE_RSubconnection/documentation/TE_RSubConnection_Test_Specification.doc Binary file datacommsserver/esockserver/test/TE_RSubconnection/documentation/TE_RSubConnection_Test_Specification.doc has changed diff -r b6139031a239 -r 928ed51ddc43 datacommsserver/esockserver/test/TE_Socket/SocketTestSection31.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/datacommsserver/esockserver/test/TE_Socket/SocketTestSection31.cpp Tue Jan 26 13:09:14 2010 +0200 @@ -0,0 +1,637 @@ +// Copyright (c) 2002-2009 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of the License "Symbian Foundation License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.symbianfoundation.org/legal/sfl-v10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// This contains ESock Test cases from section 1 +// +// + +// EPOC includes +#include +#include + +// Test system includes +#include "SocketTestSection31.h" +#include + +const TInt KBufferLength= 60000; + + + +// Test step 31.1 +// Sending more than 16k packets. +// Stream +// Blocking mode +// Using pdummy +// +const TDesC& CSocketTest31_1::GetTestName() + { + _LIT(ret,"Test31.1"); + return ret; + } + +enum TVerdict CSocketTest31_1::InternalDoTestStepL( void ) + { + TVerdict verdict = EPass; + + Logger().WriteFormat(_L("Test Purpose: Sending large amount of data (more than 16K,60k) by using Stream")); + + // connect to esock + Logger().WriteFormat(_L("Attempting to connect to socket server")); + RSocketServ ss; + + TSessionPref pref; + pref.iAddrFamily = KDummyAddrFamily; + pref.iProtocol = KDummyFour; + TInt ret = ss.Connect(pref); + CleanupClosePushL(ss); + Logger().WriteFormat(_L("Connect returned %S"), &EpocErrorToText(ret)); + TESTL(KErrNone == ret); + + Logger().WriteFormat(_L("Finding for dummy protocol 4")); + TProtocolDesc protoInfo; + ret = ss.FindProtocol(_L("Dummy Protocol 4"), protoInfo); + Logger().WriteFormat(_L("FindProtocol returned %S"), &EpocErrorToText(ret)); + TESTL(KErrNone == ret); + + Logger().WriteFormat(_L("Open a socket on Dummy Protocol 4")); + RSocket sock; + CleanupClosePushL (sock); + ret = sock.Open(ss, protoInfo.iAddrFamily, protoInfo.iSockType, protoInfo.iProtocol); + Logger().WriteFormat(_L("Open returned %S"), &EpocErrorToText(ret)); + TESTL(KErrNone == ret); + + Logger().WriteFormat(_L("Perform connect")); + TRequestStatus status; + TSockAddr addr; + sock.Connect(addr, status); + User::WaitForRequest(status); + TESTL(KErrNone == status.Int()); + + + // Setting options + // Force the Send to 'flow off' + TBool flowOff = ETrue; + ret = sock.SetOpt(KDummyOptionSetFlowOffWrite, 0, flowOff); + Logger().WriteFormat(_L("SetOpt (flow off) returned %S"), &EpocErrorToText(ret)); + TESTL(KErrNone == ret); + + // Setting up buffer + HBufC8* writebuf = HBufC8::NewMaxLC(KBufferLength); + HBufC8* readbuf = HBufC8::NewMaxLC(KBufferLength); + + TPtr8 ptrwritebuf(const_cast(writebuf->Ptr()), KBufferLength); + TPtr8 ptrreadbuf(const_cast(readbuf->Ptr()), KBufferLength); + + ptrwritebuf.SetLength(ptrwritebuf.MaxLength()); + ptrreadbuf.SetLength(ptrreadbuf.MaxLength()); + + // Filling buffer + ptrwritebuf.Repeat(_L8("Stream-packet: helloworld")); + + TRequestStatus txStat; + TRequestStatus rxStat; + TSockXfrLength txlen; + TSockXfrLength rxlen; + TInt txSize = 0, txCnt = 0;; + TInt rxSize = 0, rxCnt = -1; + TBool txSentAll = EFalse; + TBool rxRecvAll = EFalse; + + while(rxSize < KBufferLength) + { + // sending packets + if(txStat.Int() != KRequestPending && !txSentAll) + { + RDebug::Printf("tx status:%d, ", txStat.Int()); + TPtrC8 ptrtempbuf(ptrwritebuf.Mid(txSize)); + sock.Send(ptrtempbuf, 0, txStat, txlen); + + // Now enable the write to complete, by ending the 'flow off' + flowOff = EFalse; + ret = sock.SetOpt(KDummyOptionSetFlowOffWrite, 0, flowOff); + TESTL(KErrNone == ret); + + User::WaitForRequest(txStat); + ++txCnt; + txSize += txlen(); + + if(txStat!=KErrNone) + { + Logger().WriteFormat(_L("Error in sending packet : %d "), txStat.Int()); + break; + } + RDebug::Printf("tx #%d, +%d\n", txCnt, txlen()); + if(txSize >= KBufferLength) + { + txSentAll=ETrue; + } + } + + // receiving packets + if((rxStat.Int() != KRequestPending) && !rxRecvAll) + { + RDebug::Printf("rx status:%d, ", rxStat.Int()); + ++rxCnt; + + sock.RecvOneOrMore(ptrreadbuf, 0, rxStat, rxlen); + User::WaitForRequest(rxStat); + rxSize += rxlen(); + + if(rxStat!=KErrNone) + { + Logger().WriteFormat(_L("Error in receiving packet : %d "), rxStat.Int()); + break; + } + RDebug::Printf("rx #%d, +%d\n", rxCnt, rxlen()); + + if(rxSize >= KBufferLength) + { + rxRecvAll=ETrue; + } + } + } + + CleanupStack::PopAndDestroy(2, writebuf); // writebuf and readbuf + CleanupStack::PopAndDestroy(2); // sock, ss + + SetTestStepResult(EPass); + return TestStepResult(); + } + +// Test step 31.2 +// Sending more than 16k packets. +// Stream +// Non-Blocking mode +// Using pdummy +// +const TDesC& CSocketTest31_2::GetTestName() + { + _LIT(ret,"Test31.2"); + return ret; + } + +enum TVerdict CSocketTest31_2::InternalDoTestStepL( void ) + { + TVerdict verdict = EPass; + + Logger().WriteFormat(_L("Test Purpose: Sending large amount of data (more than 16K,60k) by using Stream")); + + // connect to esock + Logger().WriteFormat(_L("Attempting to connect to socket server")); + RSocketServ ss; + + TSessionPref pref; + pref.iAddrFamily = KDummyAddrFamily; + pref.iProtocol = KDummyFour; + TInt ret = ss.Connect(pref); + CleanupClosePushL(ss); + Logger().WriteFormat(_L("Connect returned %S"), &EpocErrorToText(ret)); + TESTL(KErrNone == ret); + + Logger().WriteFormat(_L("Finding for dummy protocol 4")); + TProtocolDesc protoInfo; + ret = ss.FindProtocol(_L("Dummy Protocol 4"), protoInfo); + Logger().WriteFormat(_L("FindProtocol returned %S"), &EpocErrorToText(ret)); + TESTL(KErrNone == ret); + + Logger().WriteFormat(_L("Open a socket on Dummy Protocol 4")); + RSocket sock; + CleanupClosePushL (sock); + ret = sock.Open(ss, protoInfo.iAddrFamily, protoInfo.iSockType, protoInfo.iProtocol); + Logger().WriteFormat(_L("Open returned %S"), &EpocErrorToText(ret)); + TESTL(KErrNone == ret); + + Logger().WriteFormat(_L("Perform connect")); + TRequestStatus status; + TSockAddr addr; + sock.Connect(addr, status); + User::WaitForRequest(status); + TESTL(KErrNone == status.Int()); + + + // Setting options + // Force the Send to 'flow off' + TBool flowOff = ETrue; + ret = sock.SetOpt(KDummyOptionSetFlowOffWrite, 0, flowOff); + Logger().WriteFormat(_L("SetOpt (flow off) returned %S"), &EpocErrorToText(ret)); + TESTL(KErrNone == ret); + + ret = sock.SetOpt(KSONonBlockingIO, KSOLSocket, 1); + Logger().WriteFormat(_L("SetOpt NonBlockingIO returned %S"), &EpocErrorToText(ret)); + TESTL(KErrNone == ret); + + // Setting up buffer + HBufC8* writebuf = HBufC8::NewMaxLC(KBufferLength); + HBufC8* readbuf = HBufC8::NewMaxLC(KBufferLength); + + TPtr8 ptrwritebuf(const_cast(writebuf->Ptr()), KBufferLength); + TPtr8 ptrreadbuf(const_cast(readbuf->Ptr()), KBufferLength); + + ptrwritebuf.SetLength(ptrwritebuf.MaxLength()); + ptrreadbuf.SetLength(ptrreadbuf.MaxLength()); + + // Filling buffer + ptrwritebuf.Repeat(_L8("Stream-packet: helloworld")); + + TRequestStatus txStat; + TRequestStatus rxStat; + TSockXfrLength txlen; + TSockXfrLength rxlen; + TInt txSize = 0, txCnt = 0;; + TInt rxSize = 0, rxCnt = -1; + TBool txSentAll = EFalse; + TBool rxRecvAll = EFalse; + + while(rxSize < KBufferLength) + { + // sending packets + if(txStat.Int() != KRequestPending && !txSentAll) + { + RDebug::Printf("tx status:%d, ", txStat.Int()); + TPtrC8 ptrtempbuf(ptrwritebuf.Mid(txSize)); + sock.Send(ptrtempbuf, 0, txStat, txlen); + + // Now enable the write to complete, by ending the 'flow off' + flowOff = EFalse; + ret = sock.SetOpt(KDummyOptionSetFlowOffWrite, 0, flowOff); + TESTL(KErrNone == ret); + + User::WaitForRequest(txStat); + ++txCnt; + txSize += txlen(); + + if(txStat!=KErrNone) + { + Logger().WriteFormat(_L("Error in sending packet : %d "), txStat.Int()); + break; + } + RDebug::Printf("tx #%d, +%d\n", txCnt, txlen()); + if(txSize >= KBufferLength) + { + txSentAll=ETrue; + } + } + + // receiving packets + if((rxStat.Int() != KRequestPending) && !rxRecvAll) + { + RDebug::Printf("rx status:%d, ", rxStat.Int()); + ++rxCnt; + + sock.RecvOneOrMore(ptrreadbuf, 0, rxStat, rxlen); + User::WaitForRequest(rxStat); + rxSize += rxlen(); + + if(rxStat!=KErrNone && rxStat!=KErrWouldBlock) + { + Logger().WriteFormat(_L("Error in receiving packet : %d "), rxStat.Int()); + break; + } + RDebug::Printf("rx #%d, +%d\n", rxCnt, rxlen()); + + if(rxSize >= KBufferLength) + { + rxRecvAll=ETrue; + } + } + } + + CleanupStack::PopAndDestroy(2, writebuf); // writebuf and readbuf + CleanupStack::PopAndDestroy(2); // sock, ss + + SetTestStepResult(EPass); + return TestStepResult(); + } + +// Test step 31.3 +// Sending more than 16k packets. +// Datagram +// Blocking mode +// +const TDesC& CSocketTest31_3::GetTestName() + { + _LIT(ret,"Test31.3"); + return ret; + } + +enum TVerdict CSocketTest31_3::InternalDoTestStepL( void ) + { + TVerdict verdict = EPass; + + Logger().WriteFormat(_L("Test Purpose: Repeat send over 64K datagram using TSockXfrLength.")); + + // connect to esock + Logger().WriteFormat(_L("Attempting to connect to socket server")); + RSocketServ ss; + + // protocol allowing unlimited datagram size + TSessionPref pref; + pref.iAddrFamily = KDummyAddrFamily; + pref.iProtocol = KDummyFive; + TInt ret = ss.Connect(pref); + + CleanupClosePushL(ss); + Logger().WriteFormat(_L("Connect returned %S"), &EpocErrorToText(ret)); + TESTL(KErrNone == ret); + + Logger().WriteFormat(_L("Finding for dummy protocol 5")); + TProtocolDesc protoInfo; + ret = ss.FindProtocol(_L("Dummy Protocol 5"), protoInfo); + Logger().WriteFormat(_L("FindProtocol returned %S"), &EpocErrorToText(ret)); + TESTL(KErrNone == ret); + + Logger().WriteFormat(_L("Opening a socket")); + RSocket sock; + ret = sock.Open(ss, protoInfo.iAddrFamily, protoInfo.iSockType, protoInfo.iProtocol); + CleanupClosePushL(sock); + Logger().WriteFormat(_L("Open returned %S"), &EpocErrorToText(ret)); + TESTL(KErrNone == ret); + + TPckgBuf lenbuf; + Logger().WriteFormat(_L("Getting SendBuf length")); + ret = sock.GetOpt(KSOSendBuf, KSOLSocket, lenbuf); + Logger().WriteFormat(_L("GetOpt returned %S, length %d"), + &EpocErrorToText(ret), lenbuf()); + TESTL(KErrNone == ret); + + TUint x(KBufferLength); + lenbuf() = x; + Logger().WriteFormat(_L("Setting SendBuf length to %d"), lenbuf()); + ret = sock.SetOpt(KSOSendBuf, KSOLSocket, lenbuf); + Logger().WriteFormat(_L("SetOpt returned %S"), &EpocErrorToText(ret)); + TESTL(KErrNone == ret); + + Logger().WriteFormat(_L("Getting SendBuf length")); + ret = sock.GetOpt(KSOSendBuf, KSOLSocket, lenbuf); + Logger().WriteFormat(_L("GetOpt returned %S, length %d"), &EpocErrorToText(ret), lenbuf()); + TESTL(KErrNone == ret); + TESTL(lenbuf() == x); + + // Force the SendTo to 'flow off' + TBool flowOff = ETrue; + ret = sock.SetOpt(KDummyOptionSetFlowOffWrite, 0, flowOff); + Logger().WriteFormat(_L("SetOpt (flow off) returned %S"), &EpocErrorToText(ret)); + TESTL(KErrNone == ret); + + Logger().WriteFormat(_L("Try sending datagram over protocol allowing unlimited datagram size")); + TInetAddr destAddr; + TRequestStatus status; + + // Setting up buffer + HBufC8* writebuf = HBufC8::NewMaxLC(KBufferLength); + HBufC8* readbuf = HBufC8::NewMaxLC(KBufferLength); + + TPtr8 ptrwritebuf(const_cast(writebuf->Ptr()), KBufferLength); + TPtr8 ptrreadbuf(const_cast(readbuf->Ptr()), KBufferLength); + + ptrwritebuf.SetLength(ptrwritebuf.MaxLength()); + ptrreadbuf.SetLength(ptrreadbuf.MaxLength()); + + // Filling buffer + ptrwritebuf.Repeat(_L8("Datagram-packet: helloworld")); + + TRequestStatus txStat; + TRequestStatus rxStat; + TSockXfrLength txlen; + TSockXfrLength rxlen; + TInt txSize = 0, txCnt = 0;; + TInt rxSize = 0, rxCnt = -1; + TBool txSentAll = EFalse; + TBool rxRecvAll = EFalse; + + while(rxSize < KBufferLength) + { + // sending packets + if(txStat.Int() != KRequestPending && !txSentAll) + { + RDebug::Printf("tx status:%d, ", txStat.Int()); + TPtrC8 ptrtempbuf(ptrwritebuf.Mid(txSize)); + sock.SendTo(ptrtempbuf, destAddr, 0, txStat, txlen); + + // Now enable the write to complete, by ending the 'flow off' + flowOff = EFalse; + ret = sock.SetOpt(KDummyOptionSetFlowOffWrite, 0, flowOff); + TESTL(KErrNone == ret); + + User::WaitForRequest(txStat); + ++txCnt; + txSize += txlen(); + + if(txStat!=KErrNone) + { + Logger().WriteFormat(_L("Error in sending packet : %d "), txStat.Int()); + break; + } + RDebug::Printf("tx #%d, +%d\n", txCnt, txlen()); + if(txSize >= KBufferLength) + { + txSentAll=ETrue; + } + } + + // receiving packets + if((rxStat.Int() != KRequestPending) && !rxRecvAll) + { + RDebug::Printf("rx status:%d, ", rxStat.Int()); + ++rxCnt; + + ptrreadbuf.Zero(); + sock.RecvFrom(ptrreadbuf,destAddr, 0, rxStat, rxlen); + User::WaitForRequest(rxStat); + rxSize += ptrreadbuf.Length(); + + if(rxStat!=KErrNone) + { + Logger().WriteFormat(_L("Error in receiving packet : %d "), rxStat.Int()); + break; + } + RDebug::Printf("rx #%d, +%d\n", rxCnt, ptrreadbuf.Length()); + + if(rxSize >= KBufferLength) + { + rxRecvAll=ETrue; + } + } + } + + CleanupStack::PopAndDestroy(2, writebuf); // writebuf and readbuf + CleanupStack::PopAndDestroy(2); // sock, ss + + SetTestStepResult(EPass); + return TestStepResult(); + } + +// Test step 31.4 +// Sending more than 16k packets. +// Datagram +// Non-Blocking mode +// +const TDesC& CSocketTest31_4::GetTestName() + { + _LIT(ret,"Test31.4"); + return ret; + } + +enum TVerdict CSocketTest31_4::InternalDoTestStepL( void ) + { + TVerdict verdict = EPass; + + Logger().WriteFormat(_L("Test Purpose: Repeat send over 64K datagram using TSockXfrLength.")); + + // connect to esock + Logger().WriteFormat(_L("Attempting to connect to socket server")); + RSocketServ ss; + + // protocol allowing unlimited datagram size + TSessionPref pref; + pref.iAddrFamily = KDummyAddrFamily; + pref.iProtocol = KDummyFive; + TInt ret = ss.Connect(pref); + + CleanupClosePushL(ss); + Logger().WriteFormat(_L("Connect returned %S"), &EpocErrorToText(ret)); + TESTL(KErrNone == ret); + + Logger().WriteFormat(_L("Finding for dummy protocol 5")); + TProtocolDesc protoInfo; + ret = ss.FindProtocol(_L("Dummy Protocol 5"), protoInfo); + Logger().WriteFormat(_L("FindProtocol returned %S"), &EpocErrorToText(ret)); + TESTL(KErrNone == ret); + + Logger().WriteFormat(_L("Opening a socket")); + RSocket sock; + ret = sock.Open(ss, protoInfo.iAddrFamily, protoInfo.iSockType, protoInfo.iProtocol); + CleanupClosePushL(sock); + Logger().WriteFormat(_L("Open returned %S"), &EpocErrorToText(ret)); + TESTL(KErrNone == ret); + + TPckgBuf lenbuf; + Logger().WriteFormat(_L("Getting SendBuf length")); + ret = sock.GetOpt(KSOSendBuf, KSOLSocket, lenbuf); + Logger().WriteFormat(_L("GetOpt returned %S, length %d"), + &EpocErrorToText(ret), lenbuf()); + TESTL(KErrNone == ret); + + TUint x(KBufferLength); + lenbuf() = x; + Logger().WriteFormat(_L("Setting SendBuf length to %d"), lenbuf()); + ret = sock.SetOpt(KSOSendBuf, KSOLSocket, lenbuf); + Logger().WriteFormat(_L("SetOpt returned %S"), &EpocErrorToText(ret)); + TESTL(KErrNone == ret); + + Logger().WriteFormat(_L("Getting SendBuf length")); + ret = sock.GetOpt(KSOSendBuf, KSOLSocket, lenbuf); + Logger().WriteFormat(_L("GetOpt returned %S, length %d"), &EpocErrorToText(ret), lenbuf()); + TESTL(KErrNone == ret); + TESTL(lenbuf() == x); + + // Setting option + // Force the SendTo to 'flow off' + TBool flowOff = ETrue; + ret = sock.SetOpt(KDummyOptionSetFlowOffWrite, 0, flowOff); + Logger().WriteFormat(_L("SetOpt (flow off) returned %S"), &EpocErrorToText(ret)); + TESTL(KErrNone == ret); + + ret = sock.SetOpt(KSONonBlockingIO, KSOLSocket, 1); + Logger().WriteFormat(_L("SetOpt NonBlockingIO returned %S"), &EpocErrorToText(ret)); + TESTL(KErrNone == ret); + + Logger().WriteFormat(_L("Try sending datagram over protocol allowing unlimited datagram size")); + TInetAddr destAddr; + TRequestStatus status; + + // Setting up buffer + HBufC8* writebuf = HBufC8::NewMaxLC(KBufferLength); + HBufC8* readbuf = HBufC8::NewMaxLC(KBufferLength); + + TPtr8 ptrwritebuf(const_cast(writebuf->Ptr()), KBufferLength); + TPtr8 ptrreadbuf(const_cast(readbuf->Ptr()), KBufferLength); + + ptrwritebuf.SetLength(ptrwritebuf.MaxLength()); + ptrreadbuf.SetLength(ptrreadbuf.MaxLength()); + + // Filling buffer + ptrwritebuf.Repeat(_L8("Datagram-packet: helloworld")); + + TRequestStatus txStat; + TRequestStatus rxStat; + TSockXfrLength txlen; + TSockXfrLength rxlen; + TInt txSize = 0, txCnt = 0;; + TInt rxSize = 0, rxCnt = -1; + TBool txSentAll = EFalse; + TBool rxRecvAll = EFalse; + + while(rxSize < KBufferLength) + { + // sending packets + if(txStat.Int() != KRequestPending && !txSentAll) + { + RDebug::Printf("tx status:%d, ", txStat.Int()); + TPtrC8 ptrtempbuf(ptrwritebuf.Mid(txSize)); + sock.SendTo(ptrtempbuf, destAddr, 0, txStat, txlen); + + // Now enable the write to complete, by ending the 'flow off' + flowOff = EFalse; + ret = sock.SetOpt(KDummyOptionSetFlowOffWrite, 0, flowOff); + TESTL(KErrNone == ret); + + User::WaitForRequest(txStat); + ++txCnt; + txSize += txlen(); + + if(txStat!=KErrNone) + { + Logger().WriteFormat(_L("Error in sending packet : %d "), txStat.Int()); + break; + } + RDebug::Printf("tx #%d, +%d\n", txCnt, txlen()); + if(txSize >= KBufferLength) + { + txSentAll=ETrue; + } + } + + // receiving packets + if((rxStat.Int() != KRequestPending) && !rxRecvAll) + { + RDebug::Printf("rx status:%d, ", rxStat.Int()); + ++rxCnt; + + ptrreadbuf.Zero(); + sock.RecvFrom(ptrreadbuf,destAddr, 0, rxStat, rxlen); + User::WaitForRequest(rxStat); + rxSize += ptrreadbuf.Length(); + //rxSize += rxlen(); + + if(rxStat!=KErrNone && rxStat!=KErrWouldBlock) + { + Logger().WriteFormat(_L("Error in receiving packet : %d "), rxStat.Int()); + break; + } + RDebug::Printf("rx #%d, +%d\n", rxCnt, ptrreadbuf.Length()); + + if(rxSize >= KBufferLength) + { + rxRecvAll=ETrue; + } + } + } + + CleanupStack::PopAndDestroy(2, writebuf); // writebuf and readbuf + CleanupStack::PopAndDestroy(2); // sock, ss + + SetTestStepResult(EPass); + return TestStepResult(); + } + diff -r b6139031a239 -r 928ed51ddc43 datacommsserver/esockserver/test/TE_Socket/SocketTestSection31.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/datacommsserver/esockserver/test/TE_Socket/SocketTestSection31.h Tue Jan 26 13:09:14 2010 +0200 @@ -0,0 +1,55 @@ +// Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of the License "Symbian Foundation License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.symbianfoundation.org/legal/sfl-v10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// This is the header file for ESOCK basic socket test section 31 +// +// + + +#if (!defined __SOCKETTEST_31_H__) +#define __SOCKETTEST_31_H__ + +#include "TestStepSocket.h" + +class CSocketTest31_1 : public CTestStepSocket + { + public: + static const TDesC &GetTestName(); + virtual enum TVerdict InternalDoTestStepL( void ); + }; + +class CSocketTest31_2 : public CTestStepSocket + { + public: + static const TDesC &GetTestName(); + virtual enum TVerdict InternalDoTestStepL( void ); + }; + +class CSocketTest31_3 : public CTestStepSocket + { + public: + static const TDesC &GetTestName(); + virtual enum TVerdict InternalDoTestStepL( void ); + }; + +class CSocketTest31_4 : public CTestStepSocket + { + public: + static const TDesC &GetTestName(); + virtual enum TVerdict InternalDoTestStepL( void ); + }; + + +#endif //__SOCKETTEST_31_H__ + + diff -r b6139031a239 -r 928ed51ddc43 datacommsserver/esockserver/test/TE_Socket/TestSuiteSocket.cpp --- a/datacommsserver/esockserver/test/TE_Socket/TestSuiteSocket.cpp Fri Jan 22 10:58:59 2010 +0200 +++ b/datacommsserver/esockserver/test/TE_Socket/TestSuiteSocket.cpp Tue Jan 26 13:09:14 2010 +0200 @@ -43,6 +43,7 @@ #include "SocketTestSection19.h" #include "SocketTestSection20.h" #include "SocketTestSection21.h" +#include "SocketTestSection31.h" _LIT(KServerName,"TE_Socket"); @@ -225,6 +226,11 @@ ADD_TEST_STEP(CSocketTest20_5) ADD_TEST_STEP(CSocketTest21_1) ADD_TEST_STEP(CSocketTest21_2) + + ADD_TEST_STEP(CSocketTest31_1) + ADD_TEST_STEP(CSocketTest31_2) + ADD_TEST_STEP(CSocketTest31_3) + ADD_TEST_STEP(CSocketTest31_4) END_TEST_STEP_LIST } diff -r b6139031a239 -r 928ed51ddc43 datacommsserver/esockserver/test/TE_Socket/group/TE_Socket.mmp --- a/datacommsserver/esockserver/test/TE_Socket/group/TE_Socket.mmp Fri Jan 22 10:58:59 2010 +0200 +++ b/datacommsserver/esockserver/test/TE_Socket/group/TE_Socket.mmp Tue Jan 26 13:09:14 2010 +0200 @@ -46,7 +46,8 @@ SOURCE SocketTestSection18.cpp SOURCE SocketTestSection19.cpp SOURCE SocketTestSection20.cpp -SOURCE SocketTestSection21.cpp +SOURCE SocketTestSection21.cpp +SOURCE SocketTestSection31.cpp USERINCLUDE ../../protocols/pdummy diff -r b6139031a239 -r 928ed51ddc43 datacommsserver/esockserver/test/TE_Socket/scriptfiles/te_socket_tests.script --- a/datacommsserver/esockserver/test/TE_Socket/scriptfiles/te_socket_tests.script Fri Jan 22 10:58:59 2010 +0200 +++ b/datacommsserver/esockserver/test/TE_Socket/scriptfiles/te_socket_tests.script Tue Jan 26 13:09:14 2010 +0200 @@ -492,3 +492,67 @@ RUN_TEST_STEP 100 TE_Socket Test21.2 TEST_COMPLETE END_TESTCASE COMINF-ESOCK-Socket-0171 + +START_TESTCASE COMINF-ESOCK-Socket-0172 +//! @SYMTestCaseID COMINF-ESOCK-Socket-0172 +//! @SYMTestCaseDesc Sending more than 60k packet by Stream protocol with blocking mode +//! @SYMTestActions RSocket::Send +//! @SYMTestExpectedResults pass +//! @SYMTestPriority Critical +//! @SYMTestType CT +//! @SYMComponent comms-infras_esock +//! @SYMDEF DEF143021 + +// run test 31.1 +PRINT +RUN_TEST_STEP 100 TE_Socket Test31.1 +TEST_COMPLETE +END_TESTCASE COMINF-ESOCK-Socket-0172 + +START_TESTCASE COMINF-ESOCK-Socket-0173 +//! @SYMTestCaseID COMINF-ESOCK-Socket-0173 +//! @SYMTestCaseDesc Sending more than 60k packet by Stream protocol with non-blocking mode +//! @SYMTestActions RSocket::Send +//! @SYMTestExpectedResults pass +//! @SYMTestPriority Critical +//! @SYMTestType CT +//! @SYMComponent comms-infras_esock +//! @SYMDEF DEF143021 + +// run test 31.2 +PRINT +RUN_TEST_STEP 100 TE_Socket Test31.2 +TEST_COMPLETE +END_TESTCASE COMINF-ESOCK-Socket-0173 + +START_TESTCASE COMINF-ESOCK-Socket-0174 +//! @SYMTestCaseID COMINF-ESOCK-Socket-0174 +//! @SYMTestCaseDesc Sending more than 60k packet by datagram protocol with blocking mode +//! @SYMTestActions RSocket::SendTo +//! @SYMTestExpectedResults pass +//! @SYMTestPriority Critical +//! @SYMTestType CT +//! @SYMComponent comms-infras_esock +//! @SYMDEF DEF143021 + +// run test 31.3 +PRINT +RUN_TEST_STEP 100 TE_Socket Test31.3 +TEST_COMPLETE +END_TESTCASE COMINF-ESOCK-Socket-0174 + +START_TESTCASE COMINF-ESOCK-Socket-0175 +//! @SYMTestCaseID COMINF-ESOCK-Socket-0175 +//! @SYMTestCaseDesc Sending more than 60k packet by Stream protocol with non-blocking mode +//! @SYMTestActions RSocket::SendTo +//! @SYMTestExpectedResults pass +//! @SYMTestPriority Critical +//! @SYMTestType CT +//! @SYMComponent comms-infras_esock +//! @SYMDEF DEF143021 + +// run test 31.4 +PRINT +RUN_TEST_STEP 100 TE_Socket Test31.4 +TEST_COMPLETE +END_TESTCASE COMINF-ESOCK-Socket-0175 diff -r b6139031a239 -r 928ed51ddc43 datacommsserver/esockserver/test/protocols/pdummy/PDUMMY.CPP --- a/datacommsserver/esockserver/test/protocols/pdummy/PDUMMY.CPP Fri Jan 22 10:58:59 2010 +0200 +++ b/datacommsserver/esockserver/test/protocols/pdummy/PDUMMY.CPP Tue Jan 26 13:09:14 2010 +0200 @@ -1035,16 +1035,15 @@ return 0; } - // From opposite angle, we dont need a new chain if it is a stream - // we just append to the existing, unless there isn't an existing... - if(iDataArray->Count()==0 || IsTransportType(KSockDatagram)) + // add a new chain for storing data + if(iDataArray->Count()==0 ||( iDataArray->Count()>0 && !iDataArray->At(iDataArray->Count()-1).IsEmpty())) { RMBufChain chain; TRAPD(ret, iDataArray->AppendL(chain)); if(ret!=KErrNone) return ret; } - + iDataArray->At(iDataArray->Count()-1).Append(aData); // Gotta save the length of the chain before calling diff -r b6139031a239 -r 928ed51ddc43 datacommsserver/networkcontroller/Documentation/Network_Controller_Design.doc Binary file datacommsserver/networkcontroller/Documentation/Network_Controller_Design.doc has changed diff -r b6139031a239 -r 928ed51ddc43 datacommsserver/networkcontroller/Documentation/Network_Controller_Unit_Test_Specification.doc Binary file datacommsserver/networkcontroller/Documentation/Network_Controller_Unit_Test_Specification.doc has changed diff -r b6139031a239 -r 928ed51ddc43 datacommsserver/networkcontroller/Documentation/SGL.GT0161.208 Mobile IP to Simple IP Fallback.doc Binary file datacommsserver/networkcontroller/Documentation/SGL.GT0161.208 Mobile IP to Simple IP Fallback.doc has changed diff -r b6139031a239 -r 928ed51ddc43 datacommsserver/networkcontroller/Documentation/SGL.GT0161.211 Mobile IP to Simple IP Fallback Mechanism Design.doc Binary file datacommsserver/networkcontroller/Documentation/SGL.GT0161.211 Mobile IP to Simple IP Fallback Mechanism Design.doc has changed diff -r b6139031a239 -r 928ed51ddc43 datacommsserver/networkcontroller/Documentation/SGL.GT0161.305 Mobile IP to Simple IP Fallback Mechanism Test Specification.doc Binary file datacommsserver/networkcontroller/Documentation/SGL.GT0161.305 Mobile IP to Simple IP Fallback Mechanism Test Specification.doc has changed diff -r b6139031a239 -r 928ed51ddc43 datacommsserver/networkingdialogapi/Documentation/Dialog_API_Specification.doc Binary file datacommsserver/networkingdialogapi/Documentation/Dialog_API_Specification.doc has changed diff -r b6139031a239 -r 928ed51ddc43 datacommsserver/networkingdialogapi/Documentation/Dialog_Design.doc Binary file datacommsserver/networkingdialogapi/Documentation/Dialog_Design.doc has changed diff -r b6139031a239 -r 928ed51ddc43 datacommsserver/networkingdialogapi/Documentation/Dialog_Test_Specification.doc Binary file datacommsserver/networkingdialogapi/Documentation/Dialog_Test_Specification.doc has changed diff -r b6139031a239 -r 928ed51ddc43 serialserver/c32serialserver/Test/TE_C32/documentation/C32_How_to_test.doc Binary file serialserver/c32serialserver/Test/TE_C32/documentation/C32_How_to_test.doc has changed diff -r b6139031a239 -r 928ed51ddc43 serialserver/c32serialserver/Test/TE_C32/documentation/C32_Test_Specification.doc Binary file serialserver/c32serialserver/Test/TE_C32/documentation/C32_Test_Specification.doc has changed diff -r b6139031a239 -r 928ed51ddc43 serialserver/c32serialserver/Test/TE_C32/documentation/C32_Unit_Test_Specification.doc Binary file serialserver/c32serialserver/Test/TE_C32/documentation/C32_Unit_Test_Specification.doc has changed diff -r b6139031a239 -r 928ed51ddc43 serialserver/c32serialserver/Test/te_C32Performance/Documentation/C32 Performance Test Design.doc Binary file serialserver/c32serialserver/Test/te_C32Performance/Documentation/C32 Performance Test Design.doc has changed diff -r b6139031a239 -r 928ed51ddc43 serialserver/c32serialserver/documentation/C32API.doc Binary file serialserver/c32serialserver/documentation/C32API.doc has changed diff -r b6139031a239 -r 928ed51ddc43 serialserver/c32serialserver/documentation/C32_Design_Document.doc Binary file serialserver/c32serialserver/documentation/C32_Design_Document.doc has changed diff -r b6139031a239 -r 928ed51ddc43 serialserver/c32serialserver/documentation/C32_Design_Document_v1.doc Binary file serialserver/c32serialserver/documentation/C32_Design_Document_v1.doc has changed diff -r b6139031a239 -r 928ed51ddc43 serialserver/c32serialserver/documentation/C32_Heap_Check_Migration.doc Binary file serialserver/c32serialserver/documentation/C32_Heap_Check_Migration.doc has changed diff -r b6139031a239 -r 928ed51ddc43 serialserver/c32serialserver/documentation/How_To_configure_C32.doc Binary file serialserver/c32serialserver/documentation/How_To_configure_C32.doc has changed diff -r b6139031a239 -r 928ed51ddc43 serialserver/c32serialserverdocs/SerComms_Subsystem_Architectural_Description.doc Binary file serialserver/c32serialserverdocs/SerComms_Subsystem_Architectural_Description.doc has changed diff -r b6139031a239 -r 928ed51ddc43 serialserver/c32serialserverdocs/SerComms_Subsystem_Functional_Specification.doc Binary file serialserver/c32serialserverdocs/SerComms_Subsystem_Functional_Specification.doc has changed diff -r b6139031a239 -r 928ed51ddc43 serialserver/c32serialserverdocs/SerComms_Subsystem_Release_Note.doc Binary file serialserver/c32serialserverdocs/SerComms_Subsystem_Release_Note.doc has changed diff -r b6139031a239 -r 928ed51ddc43 serialserver/packetloopbackcsy/Documentation/PacketLoopbackCsy_Design_Document.doc Binary file serialserver/packetloopbackcsy/Documentation/PacketLoopbackCsy_Design_Document.doc has changed diff -r b6139031a239 -r 928ed51ddc43 serialserver/packetloopbackcsy/src/LoopbackConfig.cpp --- a/serialserver/packetloopbackcsy/src/LoopbackConfig.cpp Fri Jan 22 10:58:59 2010 +0200 +++ b/serialserver/packetloopbackcsy/src/LoopbackConfig.cpp Tue Jan 26 13:09:14 2010 +0200 @@ -64,6 +64,8 @@ { RFs fs; User::LeaveIfError(fs.Connect()); + CleanupClosePushL(fs); + CTestConfig* configFile = CTestConfig::NewLC(fs, KConfigFileDir, KLoopbackConfigFilename); TBuf8 sectionName; @@ -164,6 +166,7 @@ } CleanupStack::PopAndDestroy(configFile); + CleanupStack::PopAndDestroy(); // RFs handle } /** diff -r b6139031a239 -r 928ed51ddc43 serialserver/packetloopbackcsy/src/loopback.cpp --- a/serialserver/packetloopbackcsy/src/loopback.cpp Fri Jan 22 10:58:59 2010 +0200 +++ b/serialserver/packetloopbackcsy/src/loopback.cpp Tue Jan 26 13:09:14 2010 +0200 @@ -1012,6 +1012,9 @@ * This method is the destructor for the factory object. */ { + ASSERT(iPorts.Count()==0); + iPorts.Close(); + delete iLoopbackConfig; iLoopbackConfig = NULL; LOGDESTROY();