diff -r 000000000000 -r dfb7c4ff071f commsprocess/commsrootserverconfig/ts_rootserver/TestStepRootServer.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/commsprocess/commsrootserverconfig/ts_rootserver/TestStepRootServer.cpp Thu Dec 17 09:22:25 2009 +0200 @@ -0,0 +1,223 @@ +// Copyright (c) 2003-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: +// This contains CTestCaseRootServer +// +// + +// EPOC includes +#include + +// Test system includes +#include +#include +#include + +#include "TestStepRootServer.h" +#include "TestSuiteRootServer.h" +#include "TestAsynchHandler.h" + +// const (times in ms) +const TInt CTestStepRootServer::isTestServerLifeTime = 3000; +const TInt CTestStepRootServer::isTestServerWaitTime = + 2 * CTestStepRootServer::isTestServerLifeTime; +const TInt CTestStepRootServer::isRendezvousDelayTime = 1000; + + + +// constructor +CTestStepRootServer::CTestStepRootServer() +{ +} + +// destructor +CTestStepRootServer::~CTestStepRootServer() +{ +} + + +//------------------------ +TVerdict CTestStepRootServer::doTestStepPreambleL( void ) + { + TInt ret; + + // kick off the RootServer thread + Log(_L("Attempting to start RootServer")); + ret = iRootServerSuite->StartRootServer(); + if (KErrNone != ret) + { + Log(_L("Failed to start RootServer: err %d"), ret); + return EInconclusive; + } + + return EPass; + } + + +//------------------------ +TVerdict CTestStepRootServer::doTestStepPostambleL( void ) + { + Log(_L("Attempting to shutdown RootServer")); + if (!iRootServerSuite->ShutdownRootServer()) + { + Log(_L("Failed to shutdown RootServer")); + return EInconclusive; + } + return EPass; + } + + +//------------------------ +void CTestStepRootServer::GetTestStepServerName(const TDesC &aNamePostFix, + TDes &aServerName) + { + aServerName.Copy(_L("TS_")); + aServerName.Append(iTestStepName); + aServerName.Append(_L("_")); + aServerName.AppendNum(iRootServerSuite->NextServerNumber()); + if (aNamePostFix.Length() > 0) + { + aServerName.Append(_L("_")); + aServerName.Append(aNamePostFix); + } + } + + +void CTestStepRootServer::DefaultStartParams(TRSStartModuleParams& aStartParams, TTestModuleIniData& aIniData) + { + aStartParams.iParams.iFilename = _L("testcpm.cpm"); + aStartParams.iParams.iPriority = EPriorityNormal; + aStartParams.iParams.iStackSize = 8192; + aStartParams.iParams.iHeapType = ENewHeap; + aStartParams.iParams.iMinHeapSize = 65536; + aStartParams.iParams.iMaxHeapSize = 262144; + aStartParams.iParams.iShareHeapWith = KNullDesC8; + aStartParams.iParams.iThreadFunctionOrdinal = 1; + aStartParams.iParams.iIsSticky = EFalse; + aStartParams.iParams.iIsServer = EFalse; + + aIniData.iParams.iInitDelay = 0; + aIniData.iParams.iDeathDelay = NO_PREMATURE_DEATH; + aIniData.iParams.iDiscoveryDelay = 0; + aIniData.iParams.iBindDelay = 0; + aIniData.iParams.iUnbindDelay = 0; + aIniData.iParams.iShutdownDelay = 0; + } + +void CTestStepRootServer::LoadNormalModuleL(CTestAsynchHandler* aHandler, const TDesC8& aModule, TThreadPriority aPriority) + { + TRSStartModuleParams startParams; + TTestModuleIniData iniData; + DefaultStartParams(startParams, iniData); + startParams.iParams.iName = aModule; + startParams.iParams.iPriority = aPriority; + + aHandler->TryLoad( startParams, iniData); + + CActiveScheduler::Start(); + if (aHandler->iStatus != KErrNone) + { + Log(_L("Error: load returned %d"), aHandler->iStatus.Int()); + User::Leave(aHandler->iStatus.Int()); + } + } + +TInt CTestStepRootServer::TryHierachicalBind(CTestAsynchHandler* aHandler, + const TDesC8& aTopModule, const TDesC8& aTopSubModule, + const TDesC8& aBottomModule, const TDesC8& aBottomSubModule) + { + TRSBindingInfo bindInfo; + bindInfo.iParams.iType = EHierarchical; + bindInfo.iParams.iAddress1.SetModule(aTopModule); + bindInfo.iParams.iAddress1.SetSubModule(aTopSubModule); + bindInfo.iParams.iAddress2.SetModule(aBottomModule); + bindInfo.iParams.iAddress2.SetSubModule(aBottomSubModule); + bindInfo.iParams.iState1 = KErrNone; + bindInfo.iParams.iState2 = KErrNone; + bindInfo.iParams.iForwardQLength = TRSBindingInfo::EMinQueueLength; + bindInfo.iParams.iReverseQLength = TRSBindingInfo::EMinQueueLength; + + aHandler->TryBind( bindInfo ); + CActiveScheduler::Start(); + return aHandler->iStatus.Int(); + } + +_LIT(KSingleDesFmt, "%S"); + +void CTestStepRootServer::Log( TRefByValue aFormat, ... ) + { + // Although a memory-spendthrift approach it's ok for the case of TS_ROOTSERVER + TBuf8 buf8; + VA_LIST list; + VA_START(list, aFormat); + buf8.FormatList(aFormat, list); + TBuf16 buf16; + buf16.Copy(buf8); + CTestStep::Log(KSingleDesFmt, &buf16); + } + +void CTestStepRootServer::Log( TInt aSeverity, TRefByValue aFormat, ... ) + { + // Although a memory-spendthrift approach it's ok for the case of TS_ROOTSERVER + TBuf8 buf8; + VA_LIST list; + VA_START(list, aFormat); + buf8.FormatList(aFormat, list); + TBuf16 buf16; + buf16.Copy(buf8); + CTestStep::Log(aSeverity, KSingleDesFmt, &buf16); + } + +void CTestStepRootServer::LogExtra(const TText8* aFile, TInt aLine, TInt aSeverity, TRefByValue aFormat,...) + { + // Although a memory-spendthrift approach it's ok for the case of TS_ROOTSERVER + TBuf8 buf8; + VA_LIST list; + VA_START(list, aFormat); + buf8.FormatList(aFormat, list); + TBuf16 buf16; + buf16.Copy(buf8); + CTestStep::LogExtra(aFile, aLine, aSeverity, KSingleDesFmt, &buf16); + } + +void CTestStepRootServer::Log( TRefByValue aFormat, ... ) + { + // Although a memory-spendthrift approach it's ok for the case of TS_ROOTSERVER + TBuf16 buf16; + VA_LIST list; + VA_START(list, aFormat); + buf16.FormatList(aFormat, list); + CTestStep::Log(KSingleDesFmt, &buf16); + } + +void CTestStepRootServer::Log( TInt aSeverity, TRefByValue aFormat, ... ) + { + // Although a memory-spendthrift approach it's ok for the case of TS_ROOTSERVER + TBuf16 buf16; + VA_LIST list; + VA_START(list, aFormat); + buf16.FormatList(aFormat, list); + CTestStep::Log(aSeverity, KSingleDesFmt, &buf16); + } + +void CTestStepRootServer::LogExtra(const TText8* aFile, TInt aLine, TInt aSeverity, + TRefByValue aFormat,...) + { + // Although a memory-spendthrift approach it's ok for the case of TS_ROOTSERVER + TBuf16 buf16; + VA_LIST list; + VA_START(list, aFormat); + buf16.FormatList(aFormat, list); + CTestStep::LogExtra(aFile, aLine, aSeverity, KSingleDesFmt, &buf16); + } +