traceservices/tracefw/integ_test/ost/TEF/te_ostv2integsuite_performance/src/te_perftracetester.cpp
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/traceservices/tracefw/integ_test/ost/TEF/te_ostv2integsuite_performance/src/te_perftracetester.cpp Fri Jan 22 11:06:30 2010 +0200
@@ -0,0 +1,138 @@
+// Copyright (c) 2007-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:
+// ost Performance Tests ost Call.
+//
+
+
+
+/**
+ @file te_perftracetester.cpp
+ @internalTechnology
+ @prototype
+*/
+
+
+#include <opensystemtrace.h>
+#ifndef __KERNEL_MODE__
+#include <e32base.h> //for cleanupstack
+#endif
+#include "te_perftracetester.h"
+#include "te_instrumentationpoints.h"
+#include "te_perfcacheflush.h"
+#include "te_d32perfdrv.h"
+#include "timer/te_perfusertimer.h"
+
+
+
+
+TInt TUptTraceTester::SendTraceL(const TApiRunConfig& aApiRunConfig, TApiRunResults& aApiRunResults) //pass the configuration here
+ {
+ TInt error = KErrNone;
+ if(TUptTraceCalls::IsKernelTrace(aApiRunConfig.iApiId))
+ {
+ #ifndef __KERNEL_MODE__
+ RUptUTrace utracedriver;
+ //update with test on whether compiled of not!!
+ error = utracedriver.Open();
+ if(!error)
+ {
+ error = utracedriver.TestUptUtrace(aApiRunConfig, aApiRunResults);
+ }
+ utracedriver.Close();
+ #endif
+ }
+ else
+ {
+ //it's a user side trace, call it directly
+ error = TUptTraceCalls::DoSendTraceL(aApiRunConfig, aApiRunResults);
+ }
+ return error;
+ }
+
+TInt TUptTraceTester::TimeTraceL(const TApiRunConfig& aApiRunConfig, TApiRunResults& aApiRunResults) //pass the configuration here
+ {
+ TInt error = KErrNone;
+ TUint32 callResults[KNumberOfTraceCallIterations];
+ for(TInt i = 0; i < KNumberOfTraceCallIterations; i++)
+ {
+ error = TimeTraceCall(aApiRunConfig, aApiRunResults);
+ callResults[i] = aApiRunResults.iApiTraceTime;
+ }
+ TUint32 total = 0;
+ for(TInt i = 0; i < KNumberOfTraceCallIterations; i++)
+ total += callResults[i];
+ aApiRunResults.iApiTraceTime = total / KNumberOfTraceCallIterations; //average
+ return error;
+ }
+
+TInt TUptTraceTester::TimeTraceCall(const TApiRunConfig& aApiRunConfig, TApiRunResults& aApiRunResults)
+ {
+ TInt error = KErrNone;
+ if(TUptTraceCalls::IsKernelTrace(aApiRunConfig.iApiId))
+ {
+ RUptUTrace utracedriver;
+ error = utracedriver.Open();
+ if(!error)
+ {
+ error = utracedriver.TimeUptUtrace(aApiRunConfig, aApiRunResults);
+ }
+ utracedriver.Close();
+ }
+ else
+ {
+ error = TimeUsersideTraceCalls(aApiRunConfig, aApiRunResults);
+ }
+
+ return error;
+ }
+
+TInt TUptTraceTester::TimeUsersideTraceCalls(const TApiRunConfig& aApiRunConfig, TApiRunResults& aApiRunResults) //pass the configuration here
+ {
+ aApiRunResults.iTimeCount = 0;
+ CUptTimer timer;
+ TInt error = timer.StartBackgroundTimer();
+ if(!error)
+ {
+ while(!timer.IsTimerExpired())
+ {
+ if(aApiRunConfig.iDoFlush) //i.e. if we want the non-cache results
+ Te_Flush_The_Cache(); //ignoring error? //will be KErrNotSupported for winscw in any case
+ error = TUptTraceTester::SendTraceL(aApiRunConfig, aApiRunResults);
+
+ timer.IncreaseCount();
+ }
+ aApiRunResults.iApiTraceTime = timer.FinalTime();
+ aApiRunResults.iTimeCount = timer.FinalCount();
+ }
+
+ return error;
+ }
+
+
+TInt TUptTraceTester::GenerateEvpDataField(const TInt aDataSize, TInt8* aData)
+ {
+ TInt err=KErrNone;
+
+ for(TInt i=0;i<aDataSize/8;i++)
+ {
+ *aData=0x00;
+ aData++;
+ }
+ for(TInt i=0;i<aDataSize/8;i++)
+ aData--;
+ return err;
+ }
+
+
+//eof