sl@0: /* sl@0: * Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies). sl@0: * All rights reserved. sl@0: * This component and the accompanying materials are made available sl@0: * under the terms of the License "Eclipse Public License v1.0" sl@0: * which accompanies this distribution, and is available sl@0: * at the URL "http://www.eclipse.org/legal/epl-v10.html". sl@0: * sl@0: * Initial Contributors: sl@0: * Nokia Corporation - initial contribution. sl@0: * sl@0: * Contributors: sl@0: * sl@0: * Description: sl@0: * sl@0: */ sl@0: sl@0: sl@0: /** sl@0: @file sl@0: */ sl@0: sl@0: #include "performancetest.h" sl@0: #include "t_input.h" sl@0: #include "tvectorutils.h" sl@0: sl@0: _LIT8(KPerformanceTestStart, ""); sl@0: _LIT8(KPerformanceTestEnd, ""); sl@0: sl@0: /*static*/ CPerformance* CPerformance::iPerformanceTester = NULL; sl@0: sl@0: /*static*/ CPerformance* CPerformance::NewL() sl@0: { sl@0: if (!iPerformanceTester) sl@0: { sl@0: iPerformanceTester = new (ELeave) CPerformance(); sl@0: } sl@0: sl@0: return (iPerformanceTester); sl@0: } sl@0: sl@0: /*static*/ CPerformance* CPerformance::PerformanceTester() sl@0: { sl@0: ASSERT(iPerformanceTester); sl@0: return (iPerformanceTester); sl@0: } sl@0: sl@0: /*static*/ void CPerformance::ClosePerformanceTester() sl@0: { sl@0: delete iPerformanceTester; sl@0: iPerformanceTester = NULL; sl@0: } sl@0: sl@0: sl@0: CPerformance::CPerformance() sl@0: : iTestingPerformance(EFalse) // Default to no performance testing sl@0: {} sl@0: sl@0: CPerformance::~CPerformance() sl@0: {} sl@0: sl@0: //////////////////////////////////////////////////////////////////////// sl@0: // Use this class as a place holder to turn performance testing on/off sl@0: //////////////////////////////////////////////////////////////////////// sl@0: sl@0: CTestAction* CPerformanceTest::NewL(RFs& aFs, CConsoleBase& aConsole, Output& aOut, const TTestActionSpec& aTestActionSpec) sl@0: { sl@0: CTestAction* me = CPerformanceTest::NewLC(aFs, aConsole, aOut, aTestActionSpec); sl@0: CleanupStack::Pop(me); sl@0: return (me); sl@0: } sl@0: sl@0: CTestAction* CPerformanceTest::NewLC(RFs& /*aFs*/, CConsoleBase& aConsole, Output& aOut, const TTestActionSpec& aTestActionSpec) sl@0: { sl@0: CPerformanceTest* me = new (ELeave) CPerformanceTest(aConsole, aOut); sl@0: CleanupStack::PushL(me); sl@0: me->ConstructL(aTestActionSpec); sl@0: return (static_cast(me)); sl@0: } sl@0: sl@0: sl@0: CPerformanceTest::CPerformanceTest(CConsoleBase& aConsole, Output& aOut) sl@0: : CTestAction(aConsole, aOut) sl@0: { sl@0: } sl@0: sl@0: CPerformanceTest::~CPerformanceTest() sl@0: { sl@0: } sl@0: sl@0: void CPerformanceTest::ConstructL(const TTestActionSpec& aTestActionSpec) sl@0: { sl@0: CTestAction::ConstructL(aTestActionSpec); sl@0: sl@0: // Switch on performance testing? sl@0: TPtrC8 enablePtr = Input::ParseElement(aTestActionSpec.iActionBody, KPerformanceTestStart, KPerformanceTestEnd); sl@0: TBool enablePerformance = VectorUtils::ParseBoolL(enablePtr); sl@0: CPerformance::PerformanceTester()->SetTestingPerformance(enablePerformance); sl@0: sl@0: iExpectedResult = KErrNone; sl@0: } sl@0: sl@0: void CPerformanceTest::DoPerformPrerequisite(TRequestStatus& aStatus) sl@0: { sl@0: TRequestStatus* status = &aStatus; sl@0: User::RequestComplete(status, KErrNone); sl@0: iActionState = CTestAction::EAction; sl@0: } sl@0: sl@0: void CPerformanceTest::DoPerformPostrequisite(TRequestStatus& aStatus) sl@0: { sl@0: TRequestStatus* status = &aStatus; sl@0: iFinished = ETrue; sl@0: User::RequestComplete(status, KErrNone); sl@0: } sl@0: sl@0: void CPerformanceTest::PerformAction(TRequestStatus& aStatus) sl@0: { sl@0: iResult = ETrue; sl@0: iFinished = ETrue; sl@0: TRequestStatus* status = &aStatus; sl@0: User::RequestComplete(status, KErrNone); sl@0: } sl@0: