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: