crypto/weakcrypto/test/tasymmetric/performancetest.cpp
author hgs
Thu, 24 Jun 2010 15:39:07 +0530
changeset 72 de46a57f75fb
permissions -rw-r--r--
201023_02
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
72
de46a57f75fb 201023_02
hgs
parents:
diff changeset
     1
/*
de46a57f75fb 201023_02
hgs
parents:
diff changeset
     2
* Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
de46a57f75fb 201023_02
hgs
parents:
diff changeset
     3
* All rights reserved.
de46a57f75fb 201023_02
hgs
parents:
diff changeset
     4
* This component and the accompanying materials are made available
de46a57f75fb 201023_02
hgs
parents:
diff changeset
     5
* under the terms of the License "Eclipse Public License v1.0"
de46a57f75fb 201023_02
hgs
parents:
diff changeset
     6
* which accompanies this distribution, and is available
de46a57f75fb 201023_02
hgs
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
de46a57f75fb 201023_02
hgs
parents:
diff changeset
     8
*
de46a57f75fb 201023_02
hgs
parents:
diff changeset
     9
* Initial Contributors:
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    11
*
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    12
* Contributors:
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    13
*
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    14
* Description: 
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    15
*
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    16
*/
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    17
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    18
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    19
/**
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    20
 @file
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    21
*/
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    22
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    23
#include "performancetest.h"
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    24
#include "t_input.h"
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    25
#include "tvectorutils.h"
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    26
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    27
_LIT8(KPerformanceTestStart, "<KPerformanceTesting>");
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    28
_LIT8(KPerformanceTestEnd, "</KPerformanceTesting>");
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    29
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    30
/*static*/ CPerformance* CPerformance::iPerformanceTester = NULL;
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    31
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    32
/*static*/ CPerformance* CPerformance::NewL()
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    33
{
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    34
	if (!iPerformanceTester)
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    35
	{
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    36
		iPerformanceTester = new (ELeave) CPerformance();
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    37
	}
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    38
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    39
	return (iPerformanceTester);
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    40
}
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    41
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    42
/*static*/ CPerformance* CPerformance::PerformanceTester()
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    43
{
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    44
	ASSERT(iPerformanceTester);
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    45
	return (iPerformanceTester);
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    46
}
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    47
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    48
/*static*/ void CPerformance::ClosePerformanceTester()
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    49
{
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    50
	delete iPerformanceTester;
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    51
	iPerformanceTester = NULL;
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    52
}
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    53
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    54
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    55
CPerformance::CPerformance()
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    56
:	iTestingPerformance(EFalse)	//	Default to no performance testing
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    57
{}
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    58
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    59
CPerformance::~CPerformance()
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    60
{}
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    61
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    62
////////////////////////////////////////////////////////////////////////
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    63
//	Use this class as a place holder to turn performance testing on/off
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    64
////////////////////////////////////////////////////////////////////////
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    65
	
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    66
CTestAction* CPerformanceTest::NewL(RFs& aFs, CConsoleBase& aConsole, Output& aOut, const TTestActionSpec& aTestActionSpec)
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    67
{
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    68
	CTestAction* me = CPerformanceTest::NewLC(aFs, aConsole, aOut, aTestActionSpec);
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    69
	CleanupStack::Pop(me);
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    70
	return (me);
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    71
}
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    72
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    73
CTestAction* CPerformanceTest::NewLC(RFs& /*aFs*/, CConsoleBase& aConsole, Output& aOut, const TTestActionSpec& aTestActionSpec)
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    74
{
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    75
	CPerformanceTest* me = new (ELeave) CPerformanceTest(aConsole, aOut);
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    76
	CleanupStack::PushL(me);
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    77
	me->ConstructL(aTestActionSpec);
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    78
	return (static_cast<CTestAction*>(me));
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    79
}
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    80
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    81
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    82
CPerformanceTest::CPerformanceTest(CConsoleBase& aConsole, Output& aOut)
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    83
    : CTestAction(aConsole, aOut)
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    84
    {
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    85
    }
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    86
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    87
CPerformanceTest::~CPerformanceTest()
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    88
    {
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    89
    }
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    90
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    91
void CPerformanceTest::ConstructL(const TTestActionSpec& aTestActionSpec)
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    92
{
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    93
	CTestAction::ConstructL(aTestActionSpec);
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    94
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    95
//	Switch on performance testing?    
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    96
	TPtrC8 enablePtr = Input::ParseElement(aTestActionSpec.iActionBody, KPerformanceTestStart, KPerformanceTestEnd);
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    97
    TBool enablePerformance = VectorUtils::ParseBoolL(enablePtr);
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    98
	CPerformance::PerformanceTester()->SetTestingPerformance(enablePerformance);
de46a57f75fb 201023_02
hgs
parents:
diff changeset
    99
	
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   100
	iExpectedResult = KErrNone;
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   101
}
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   102
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   103
void CPerformanceTest::DoPerformPrerequisite(TRequestStatus& aStatus)
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   104
	{
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   105
	TRequestStatus* status = &aStatus;
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   106
	User::RequestComplete(status, KErrNone);
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   107
	iActionState = CTestAction::EAction;
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   108
	}
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   109
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   110
void CPerformanceTest::DoPerformPostrequisite(TRequestStatus& aStatus)
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   111
	{
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   112
	TRequestStatus* status = &aStatus;
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   113
	iFinished = ETrue;
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   114
	User::RequestComplete(status, KErrNone);
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   115
	}
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   116
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   117
void CPerformanceTest::PerformAction(TRequestStatus& aStatus)
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   118
{
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   119
	iResult = ETrue;
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   120
	iFinished = ETrue;
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   121
	TRequestStatus* status = &aStatus;
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   122
	User::RequestComplete(status, KErrNone);	
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   123
}
de46a57f75fb 201023_02
hgs
parents:
diff changeset
   124