diff -r 000000000000 -r 08ec8eefde2f traceservices/tracefw/utf_trace_api/unit_test/te-utrace/src/cutrace_kernperf_step.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/traceservices/tracefw/utf_trace_api/unit_test/te-utrace/src/cutrace_kernperf_step.cpp Fri Jan 22 11:06:30 2010 +0200 @@ -0,0 +1,164 @@ +// Copyright (c) 2005-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: +// Example CTestStep derived implementation +// +// + +/** + @file CUTrace_Performance_Step.cpp + @internalTechnology +*/ +#include "cutrace_kernperf_step.h" +#include "te_utracesuitedefs.h" +#include + + + + +CUTrace_KernPerf_Step::~CUTrace_KernPerf_Step() +/** + * Destructor + */ + { + } + +CUTrace_KernPerf_Step::CUTrace_KernPerf_Step() +/** + * Constructor + */ + { + // **MUST** call SetTestStepName in the constructor as the controlling + // framework uses the test step name immediately following construction to set + // up the step's unique logging ID. + ReplaceFile(KLogKBenchFileName); + SetTestStepName(KUTrace_KernPerf_Step); + } + +/*TVerdict CUTrace_Performance_Step::doTestStepPreambleL() +** + * @return - TVerdict code + * Override of base class virtual + * + { + INFO_PRINTF1(_L("Please delete this line or modify it. I am in Test Step Preamble in Class CUTrace_Trace_a1a2a3_Step")); + // uncomment the following 3 lines if you have common pre setting to all the test steps in there + // CTe_UTraceSuiteStepBase::doTestStepPreambleL(); + // if (TestStepResult()!=EPass) + // return TestStepResult(); + // process some pre setting to this test step then set SetTestStepResult to EFail or Epass. + SetTestStepResult(EPass); + return TestStepResult(); + } +*/ + + +TVerdict CUTrace_KernPerf_Step::doTestStepL() +/** + * @return - TVerdict code + * Override of base class pure virtual + * Our implementation only gets called if the base class doTestStepPreambleL() did + * not leave. That being the case, the current test result value will be EPass. + */ + { + if (TestStepResult()==EPass) + { + TInt err = KErrNone; + TBool logged = iLoggingEnabled; + TInt failed = 0; + TUTrace trace(iPF2,KText,EFalse,EFalse); + trace.Printf("CUtrace_Performance_Step"); + INFO_PRINTF1(_L("UID Context PC \t BTrace Time \t UTrace Time \t diff")); + for(TBool logging = 0; logging <= 1; logging++) + { + if(logging) + { + err = StartLogging(); + trace.Printf("Traces enabled"); + INFO_PRINTF1(_L("Traces enabled")); + } + else + { + trace.Printf("Traces disabled"); + INFO_PRINTF1(_L("Traces disabled")); + } + if(!err) + { + TestTraces(); + for(TBool uid = 0; uid <=1; uid++) + for(TBool context = 0; context <= 1; context++) + for(TBool pc = 0; pc <=1; pc++) + for(TInt type = 0; type <= 4; type++) + { + TInt utraceTime = 0; + TInt btraceTime = 0; + err = TestTraces(); + if(!err) + { + if(logged != iLoggingEnabled){INFO_PRINTF2(_L("BTrace failed to log = %i"), logged ); failed++;} + TReal32 calc = utraceTime-btraceTime; + calc = calc/btraceTime*100; + TInt diff = calc; + if(type==0) + INFO_PRINTF7(_L("empty - %i%i%i \t\t %i \t\t %i \t = %i%%"), uid, context, pc, btraceTime, utraceTime, diff); + if(type==1) + INFO_PRINTF7(_L("a1 a2 - %i%i%i \t\t %i \t\t %i \t = %i%%"), uid, context, pc, btraceTime, utraceTime, diff); + if(type==2) + INFO_PRINTF7(_L("KAny %i%i%i \t\t %i \t\t %i \t = %i%%"), uid, context, pc, btraceTime, utraceTime, diff); + if(type==3) + INFO_PRINTF7(_L("Printf char* - %i%i%i \t %i \t\t %i \t = %i%%"), uid, context, pc, btraceTime, utraceTime, diff); + if(type==4) + INFO_PRINTF7(_L("Printf TRefByVal - %i%i%i \t %i \t\t %i \t = %i%%"), uid, context, pc, btraceTime, utraceTime, diff); + } + } + }//if(!err) + if(logging && !err) + StopLogging(); + } + if(!err && failed == 0) + SetTestStepResult(EPass); + else + SetTestStepResult(EFail); + } + //end of test + return TestStepResult(); + } + + + +/* +TVerdict CUTrace_KernPerf_Step::doTestStepPostambleL() +** + * @return - TVerdict code + * Override of base class virtual + * + { + INFO_PRINTF1(_L("Please delete this line or modify it. I am in Test Step Postamble in Class CUTrace_Trace_a1a2a3_Step")); + // process something post setting to the test step + // uncomment the following line if you have common post setting to all the test steps in there + // CTe_UTraceSuiteStepBase::doTestStepPostambleL(); + // uncomment the following line if you have post process or remove the following line if no post process + // SetTestStepResult(EPass); // or EFail + return TestStepResult(); + } +*/ + + +TInt CUTrace_KernPerf_Step::TestTraces() +{ + RUTrace tracer; + tracer.Open(); + TInt failed = 0; + TInt err = tracer.TestUtrace((TInt&)failed); + return err; +}