commsfwutils/commsbufs/TS_mbufmgr/Test06SplitL.cpp
changeset 33 8fc8de15e664
parent 0 dfb7c4ff071f
child 66 cbb19216b74d
equal deleted inserted replaced
32:d2396c80c344 33:8fc8de15e664
    59 	bRet = GetIntFromConfig(_L("MBufMgrTest06"), _L("Offset"), aOffset);
    59 	bRet = GetIntFromConfig(_L("MBufMgrTest06"), _L("Offset"), aOffset);
    60 	if (!bRet)
    60 	if (!bRet)
    61 		{
    61 		{
    62 		return EFail;
    62 		return EFail;
    63 		}
    63 		}
       
    64 	TBool forceSmallBuf = EFalse;
       
    65     bRet = GetIntFromConfig(_L("MBufMgrTest06"), _L("ForceSmallBuf"), forceSmallBuf);
    64  	Log(_L("     ------- Chain & Desc LENGTH   = %d --"), aLength);
    66  	Log(_L("     ------- Chain & Desc LENGTH   = %d --"), aLength);
    65  	Log(_L("     ------- OFFSET where to Split = %d --"), aOffset);
    67  	Log(_L("     ------- OFFSET where to Split = %d --"), aOffset);
    66 	if ( (aLength > 1000)    ||(aLength <0) ||
    68 	if ( (aLength > 1000)    ||(aLength <0) ||
    67 		 (aOffset > aLength) || (aOffset <0)  )
    69 		 (aOffset > aLength) || (aOffset <0)  )
    68 		{
    70 		{
    77 
    79 
    78 	//-------------- substep 1 --------------------
    80 	//-------------- substep 1 --------------------
    79 	Log(_L("  01 Creating CMBufManager and installing active scheduler:"));
    81 	Log(_L("  01 Creating CMBufManager and installing active scheduler:"));
    80     CleanupStack::PushL( iActSch = new(ELeave) CActiveScheduler );
    82     CleanupStack::PushL( iActSch = new(ELeave) CActiveScheduler );
    81 	CActiveScheduler::Install(iActSch);
    83 	CActiveScheduler::Install(iActSch);
    82 	CreateInstanceMBufMgrL(KMBufDefaultHeapSize);
    84 
       
    85 	enum { KBigBuf = 256, KSmallBuf = 128 };
       
    86 	if(forceSmallBuf)
       
    87 	    {
       
    88         RArray<TCommsBufPoolCreateInfo> createInfoArray;
       
    89         
       
    90         TCommsBufPoolCreateInfo createInfo;
       
    91         createInfo.iBufSize = KSmallBuf;
       
    92         createInfo.iInitialBufs = 128;
       
    93         createInfo.iGrowByBufs = 64;
       
    94         createInfo.iMinFreeBufs = 40;
       
    95         createInfo.iCeiling = 410; 
       
    96         createInfoArray.AppendL(createInfo);
       
    97         
       
    98         createInfo.iBufSize = KBigBuf;
       
    99         createInfo.iInitialBufs = 3;
       
   100         createInfo.iGrowByBufs = 1;
       
   101         createInfo.iMinFreeBufs = 1;
       
   102         createInfo.iCeiling = 3;
       
   103         createInfoArray.AppendL(createInfo);
       
   104 
       
   105         CreateInstanceMBufMgrL(createInfoArray);
       
   106 
       
   107         createInfoArray.Close();
       
   108 	    }	
       
   109 	else
       
   110 	    {
       
   111         CreateInstanceMBufMgrL(KMBufDefaultHeapSize);
       
   112 	    }
       
   113 	
    83 	CleanupClosePushL(iBufPond);
   114 	CleanupClosePushL(iBufPond);
    84 
   115 
    85 	//-------------- substep 2 --------------------
   116 	//-------------- substep 2 --------------------
    86 	Log(_L("  02 Allocating two descriptors (Des1 & Des2):"));
   117 	Log(_L("  02 Allocating two descriptors (Des1 & Des2):"));
    87 	TBuf8<1000> *aDes1, *aDes2;
   118 	TBuf8<1000> *aDes1, *aDes2;
   109 		__CFLOG_CLOSE;
   140 		__CFLOG_CLOSE;
   110 		__CFLOG_DELETE;
   141 		__CFLOG_DELETE;
   111 #endif
   142 #endif
   112 		User::Leave(EFail);
   143 		User::Leave(EFail);
   113 		}
   144 		}
       
   145 	
       
   146 	if(forceSmallBuf)
       
   147 	    {
       
   148         for(RMBuf* buf = aChain1.First(); buf; buf = buf->Next())
       
   149             {
       
   150             if(buf->Size() != KBigBuf)
       
   151                 {
       
   152                 Log(_L("-- initial chain should be composed of %d buf, found %d buf"), KBigBuf, buf->Size());
       
   153                 User::Leave(EFail);
       
   154                 }
       
   155             }
       
   156 	    }
   114 
   157 
   115 	//-------------- substep 6 --------------------
   158 	//-------------- substep 6 --------------------
   116 	Log(_L("  06 Copy in Des1 into Chain1:"));
   159 	Log(_L("  06 Copy in Des1 into Chain1:"));
   117 	aChain1.CopyIn(*aDes1);
   160 	aChain1.CopyIn(*aDes1);
   118 
   161 
   156 		__CFLOG_CLOSE;
   199 		__CFLOG_CLOSE;
   157 		__CFLOG_DELETE;
   200 		__CFLOG_DELETE;
   158 #endif
   201 #endif
   159 		User::Leave(EFail);
   202 		User::Leave(EFail);
   160 		}
   203 		}
       
   204 	
       
   205     if(forceSmallBuf)
       
   206         {
       
   207         if(!aChain2.First() || aChain2.First()->Size() != KSmallBuf ||
       
   208            !aChain2.First()->Next() || aChain2.First()->Next()->Size() != KSmallBuf)
       
   209             {
       
   210             Log(_L("-- split chain should start with two %d buf"), KSmallBuf);
       
   211             User::Leave(EFail);
       
   212             }
       
   213         }
   161 
   214 
   162 	//-------------- substep 9 --------------------
   215 	//-------------- substep 9 --------------------
   163 	Log(_L("  09 Copy out Chain1 into Des2:"));
   216 	Log(_L("  09 Copy out Chain1 into Des2:"));
   164 	aChain1.CopyOut(*aDes2);
   217 	aChain1.CopyOut(*aDes2);
   165 
   218 
   182 	aDes2->SetLength(aLength);
   235 	aDes2->SetLength(aLength);
   183 
   236 
   184 	//-------------- substep 12 --------------------
   237 	//-------------- substep 12 --------------------
   185 	Log(_L("  12 Copy out the whole Chain2 into Des2 at offset = OFFSET"));
   238 	Log(_L("  12 Copy out the whole Chain2 into Des2 at offset = OFFSET"));
   186 	TPtr8 dest((TUint8*)aDes2->Ptr() + aOffset, aLength-aOffset, aLength - aOffset);
   239 	TPtr8 dest((TUint8*)aDes2->Ptr() + aOffset, aLength-aOffset, aLength - aOffset);
   187 	aChain1.CopyOut(dest);
   240 	aChain2.CopyOut(dest);
   188 
   241 
   189 	//-------------- substep 13 --------------------
   242 	//-------------- substep 13 --------------------
   190 	Log(_L("  13 Compare the content of Des1 & Des2:"));
   243 	Log(_L("  13 Compare the content of Des1 & Des2:"));
   191 	if(aDes1->Compare(*aDes2))
   244 	if(aDes1->Compare(*aDes2))
   192 		{
   245 		{