datacommsserver/esockserver/test/TE_Socket/SocketTestSection31.cpp
branchRCL_3
changeset 12 8b5d60ce1e94
parent 5 68ef71f0cd72
equal deleted inserted replaced
11:98a7181d2ce7 12:8b5d60ce1e94
   632     
   632     
   633     SetTestStepResult(EPass);
   633     SetTestStepResult(EPass);
   634     return TestStepResult();
   634     return TestStepResult();
   635     }
   635     }
   636 
   636 
       
   637 
       
   638 // Test step 31.5
       
   639 // Using fixed async request slot pool and system free request pool connections
       
   640 // 
       
   641 const TDesC& CSocketTest31_5::GetTestName()
       
   642     {
       
   643     _LIT(ret,"Test31.5");
       
   644     return ret;
       
   645     }
       
   646 
       
   647 
       
   648 CSocketTest31_5::CSockReq* CSocketTest31_5::CSockReq::NewLC()
       
   649     {
       
   650     CSockReq* sockReq = new(ELeave) CSockReq;
       
   651     CleanupStack::PushL(sockReq);
       
   652     return sockReq;
       
   653     }
       
   654 
       
   655 CSocketTest31_5::CSockReq::~CSockReq()
       
   656     {
       
   657     TInt ret = iReq.Int();
       
   658     iSock.Close();
       
   659     if(ret == KRequestPending)
       
   660         {
       
   661         User::WaitForRequest(iReq);
       
   662         }
       
   663     }
       
   664 
       
   665 TInt CSocketTest31_5::MakePendingRequestL()
       
   666     {
       
   667     CSockReq* req = CSockReq::NewLC();
       
   668     iSocks.AppendL(req);
       
   669     CleanupStack::Pop(req);
       
   670     
       
   671     TInt idx = iSocks.Count() - 1;
       
   672     TInt ret = req->iSock.Open(iSess, KDummyAddrFamily, KSockDatagram, KDummyOne);
       
   673     Logger().WriteFormat(_L("sock[%d].Open() returned %S"), idx, &EpocErrorToText(ret));
       
   674     TESTL(KErrNone == ret);
       
   675     req->iSock.Read(req->iData, req->iReq);
       
   676     User::After(250 * 1000);    // short delay to allow for almost-instant failure
       
   677     Logger().WriteFormat(_L("sock[%d].Read() status %S"), idx, &EpocErrorToText(req->iReq.Int()));
       
   678     return req->iReq.Int();
       
   679     }
       
   680 
       
   681 enum TVerdict CSocketTest31_5::InternalDoTestStepL( void )
       
   682     {
       
   683     TVerdict verdict = EPass;
       
   684 
       
   685     Logger().WriteFormat(_L("Test Purpose: Test bounded and unbounded (default) async request slot pool."));
       
   686 
       
   687     Logger().WriteFormat(_L("Trying %d pending requests against default (unbounded pool) connection"), KESockDefaultMessageSlots + 1);
       
   688     TInt ret = iSess.Connect();
       
   689     CleanupClosePushL(iSess);
       
   690     Logger().WriteFormat(_L("Connect returned %S"), &EpocErrorToText(ret));
       
   691     TESTL(KErrNone == ret);
       
   692     for(TInt sockNum = 0; sockNum <= KESockDefaultMessageSlots; ++sockNum)
       
   693         {
       
   694         ret = MakePendingRequestL();
       
   695         TESTL(ret == KRequestPending);
       
   696         }
       
   697     iSocks.ResetAndDestroy();
       
   698     CleanupStack::PopAndDestroy(&iSess);
       
   699 
       
   700     Logger().WriteFormat(_L("Trying %d pending requests against old default (KESockDefaultMessageSlots pool) connection"), KESockDefaultMessageSlots + 1);
       
   701     ret = iSess.Connect(KESockDefaultMessageSlots);
       
   702     CleanupClosePushL(iSess);
       
   703     Logger().WriteFormat(_L("Connect returned %S"), &EpocErrorToText(ret));
       
   704     TESTL(KErrNone == ret);
       
   705     for(TInt sockNum = 0; sockNum < KESockDefaultMessageSlots; ++sockNum)
       
   706         {
       
   707         ret = MakePendingRequestL();
       
   708         TESTL(ret == KRequestPending);
       
   709         }
       
   710     ret = MakePendingRequestL();
       
   711     TESTL(ret == KErrServerBusy);
       
   712     iSocks.ResetAndDestroy();
       
   713     CleanupStack::PopAndDestroy(&iSess);
       
   714 
       
   715     SetTestStepResult(EPass);
       
   716     return TestStepResult();
       
   717     }
       
   718