diff -r 000000000000 -r dfb7c4ff071f commsfwutils/commsbufs/TS_mbufmgr/TestStepCTMbufmgr.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/commsfwutils/commsbufs/TS_mbufmgr/TestStepCTMbufmgr.cpp Thu Dec 17 09:22:25 2009 +0200 @@ -0,0 +1,118 @@ +// Copyright (c) 2001-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: +// Contains definition of CTestStepCTMbufmgr which is the base class +// for all the Mbufmgr Test Step classes +// +// + +// EPOC includes +//#include +//#include + +// Test system includes +#include + +#ifdef SYMBIAN_OLD_EXPORT_LOCATION +#include "networking/log.h" +#include "networking/teststep.h" +#include "networking/testsuite.h" +#else +#include +#include +#include +#endif + +#include "TestStepCTMbufmgr.h" +#include "TestSuiteCTMbufmgr.h" +#include +#include + +// constructor +CTestStepCTMbufmgr::CTestStepCTMbufmgr() + { + } + +// destructor +CTestStepCTMbufmgr::~CTestStepCTMbufmgr() + { + } + +void CTestStepCTMbufmgr::StripeMem(TUint8 *aBuf, + TInt aStartPos, + TInt anEndPos, + TUint aStartChar, + TUint anEndChar) + { + TUint character=aStartChar; + for (TInt i=aStartPos;ianEndChar) character=aStartChar; + } + } + +void CTestStepCTMbufmgr::StripeDes(TDes8 &aBuf, + TInt aStartPos, + TInt anEndPos, + TUint aStartChar, + TUint anEndChar) +// Mark a buffer with repeating byte pattern + { + __ASSERT_ALWAYS(aStartChar<=anEndChar, User::Panic(_L("MBufTest"),0)); + __ASSERT_ALWAYS(aStartPos<=anEndPos, User::Panic(_L("MBufTest"),0)); + __ASSERT_ALWAYS(anEndPos<=aBuf.Length(), User::Panic(_L("MBufTest"),0)); + + StripeMem((TUint8 *)aBuf.Ptr(), aStartPos, anEndPos, aStartChar, anEndChar); + } + +// create an mbuf manager instance with some arbitrary default mbuf size alloc info +// - refer CMBufManager::NewL notes regarding explaination of why this is deliberately not done within the mbuf manager +static const TInt KMBuf_MBufSize = 128; +static const TInt KMBuf_MinGrowth = 64; +static const TInt KMBuf_GrowthThreshold = 40; +#define SYMBIAN_MBUFMGR_BACKGROUND_ALLOCATION +#ifndef SYMBIAN_MBUFMGR_BACKGROUND_ALLOCATION +static const TInt KMBuf_InitialAllocation = 128; +#endif +void CTestStepCTMbufmgr::CreateInstanceMBufMgrL(TInt aMaxHeapSize) + { + + RArray poolInfoArray; + TCommsBufPoolCreateInfo createInfo; +#ifdef SYMBIAN_MBUFMGR_BACKGROUND_ALLOCATION + + // this method used for tests that dont do background allocation so make the + // pool big enough to fill the heap + createInfo.iBufSize = KMBuf_MBufSize; + createInfo.iInitialBufs = (aMaxHeapSize/(KMBuf_MBufSize+sizeof(RMBuf)))-1; + createInfo.iGrowByBufs = KMBuf_MinGrowth; + createInfo.iMinFreeBufs = KMBuf_GrowthThreshold; + createInfo.iCeiling = aMaxHeapSize/KMBuf_MBufSize; +#else + createInfo.iBufSize = KMBuf_MBufSize; + createInfo.iInitialBufs = KMBuf_InitialAllocation; + createInfo.iGrowByBufs = KMBuf_MinGrowth; + createInfo.iMinFreeBufs = KMBuf_GrowthThreshold; + createInfo.iCeiling = aMaxHeapSize/KMBuf_MBufSize; +#endif + poolInfoArray.Append ( createInfo ); + + User::LeaveIfError(iBufPond.Open(poolInfoArray)); + poolInfoArray.Close (); + } + +void CTestStepCTMbufmgr::CreateInstanceMBufMgrL(RArray& aPoolCreateInfo) + { + User::LeaveIfError(iBufPond.Open(aPoolCreateInfo)); + }