/** * Callback function for Trace Activation * * @param aComponentId * @param aGroupId */ void DTraceCompilerTesterAdvanced::TraceActivated( TUint32 aComponentId, TUint16 aGroupId ) { Kern::Printf( "DTraceCompilerTesterAdvanced::TraceActivated - ComponentId = 0x%x, GroupId = 0x%x", aComponentId, aGroupId ); if (aGroupId == POINTER_PARAMETER_TEST) { // Print out pointer values of two NTimers by using %p tag Kern::Printf( "--------------TraceCompilerTesterAdvanced Pointer Parameter Test START----------------" ); NTimer* myNTimer1 = new NTimer(); NTimer* myNTimer2 = new NTimer(); const NTimer* myNTimer3 = new NTimer(); OstTraceExt2( POINTER_PARAMETER_TEST, POINTER_PARAMETER_TRACE1, "Print out pointer values of two NTimers;myNTimer1=%p;myNTimer2=%p", myNTimer1, myNTimer2 ); OstTraceExt1( POINTER_PARAMETER_TEST, POINTER_PARAMETER_TRACE2, "Print out pointer values of one const NTimers;myNTimer3=%p", myNTimer3 ); delete myNTimer1; delete myNTimer2; delete myNTimer3; Kern::Printf( "--------------TraceCompilerTesterAdvanced Pointer Parameter Test END----------------" ); } else if (aGroupId == LONG_TRACE_TEST) { // Print out n times traces those lengths are 60, 300, 512 and 600 characters. // Print out also some traces those parameter total length is more than 512 Kern::Printf( "--------------TraceCompilerTesterAdvanced Long Trace Test START----------------" ); TInt i=0; TUint numberOfTraces = 1; TInt32 freq = NKern::FastCounterFrequency(); TUint32 startTime; TUint32 endTime; TUint32 time; TUint timeTestNumber1 = 0; TUint timeTestNumber2 = 0; TUint timeTestNumber3 = 0; TUint timeTestNumber4 = 0; TUint timeTestNumber5 = 0; TUint timeTestNumber6 = 0; TUint timeTestNumber7 = 0; // ---------------------------- Ascii60 ---------------------------- startTime = NKern::FastCounter(); Kern::Printf( "--------------TraceCompilerTesterAdvanced Long Trace Test : Ascii60----------------" ); for (i=0; i < numberOfTraces; i++) { OstTraceExt1( LONG_TRACE_TEST, ASCII60, "Ascii60: %s", buf60); } endTime = NKern::FastCounter(); time = (endTime - startTime) * 1000 / freq; timeTestNumber1 = time; // ---------------------------- Ascii60 ---------------------------- // ---------------------------- Ascii300 ---------------------------- startTime = NKern::FastCounter(); Kern::Printf( "--------------TraceCompilerTesterAdvanced Long Trace Test : Ascii300----------------" ); for (i=0; i < numberOfTraces; i++) { OstTraceExt1( LONG_TRACE_TEST, ASCII300, "Ascii300: %s", buf300); } endTime = NKern::FastCounter(); time = (endTime - startTime) * 1000 / freq; timeTestNumber2 = time; // ---------------------------- Ascii300 ---------------------------- // ---------------------------- Ascii512 ---------------------------- startTime = NKern::FastCounter(); Kern::Printf( "--------------TraceCompilerTesterAdvanced Long Trace Test : Ascii512----------------" ); for (i=0; i < numberOfTraces; i++) { OstTraceExt1( LONG_TRACE_TEST, ASCII512, "Ascii512: %s", buf512); } endTime = NKern::FastCounter(); time = (endTime - startTime) * 1000 / freq; timeTestNumber3 = time; // ---------------------------- Ascii512 ---------------------------- // ---------------------------- Ascii600 ---------------------------- startTime = NKern::FastCounter(); Kern::Printf( "--------------TraceCompilerTesterAdvanced Long Trace Test : Ascii600----------------" ); for (i=0; i < numberOfTraces; i++) { OstTraceExt1( LONG_TRACE_TEST, ASCII600, "Ascii600: %s", buf600); } endTime = NKern::FastCounter(); time = (endTime - startTime) * 1000 / freq; timeTestNumber4 = time; // ---------------------------- Ascii600 ---------------------------- // ---------------------------- Ascii300 + Ascii512 ---------------------------- startTime = NKern::FastCounter(); Kern::Printf( "--------------TraceCompilerTesterAdvanced Long Trace Test : Ascii300 + Ascii512----------------" ); for (i=0; i < numberOfTraces; i++) { OstTraceExt2( LONG_TRACE_TEST, ASCII300_ASCII512, "Ascii300: %s Ascii512: %s", buf300, buf512); } endTime = NKern::FastCounter(); time = (endTime - startTime) * 1000 / freq; timeTestNumber5 = time; // ---------------------------- Ascii300 + Ascii512 ---------------------------- // ---------------------------- Ascii600 + Ascii300 ---------------------------- startTime = NKern::FastCounter(); Kern::Printf( "--------------TraceCompilerTesterAdvanced Long Trace Test : Ascii600 + Ascii300----------------" ); for (i=0; i < numberOfTraces; i++) { OstTraceExt2( LONG_TRACE_TEST, ASCII600_ASCII300, "Ascii600: %s Ascii300: %s", buf600, buf300); } endTime = NKern::FastCounter(); time = (endTime - startTime) * 1000 / freq; timeTestNumber6 = time; // ---------------------------- Ascii600 + Ascii300 ---------------------------- // ---------------------------- Ascii333 + Ascii333 ---------------------------- startTime = NKern::FastCounter(); Kern::Printf( "--------------TraceCompilerTesterAdvanced Long Trace Test : Ascii333 + Ascii333----------------" ); for (i=0; i < numberOfTraces; i++) { OstTraceExt2( LONG_TRACE_TEST, ASCII333_ASCII333, "Ascii333: %s Ascii333: %s", buf333, buf333); } endTime = NKern::FastCounter(); time = (endTime - startTime) * 1000 / freq; timeTestNumber7 = time; // ---------------------------- Ascii333 + Ascii333 ---------------------------- Kern::Printf( "--------------TraceCompilerTesterAdvanced----------------" ); Kern::Printf( "Ascii60: %d", timeTestNumber1 ); Kern::Printf( "Ascii300: %d", timeTestNumber2 ); Kern::Printf( "Ascii512: %d", timeTestNumber3 ); Kern::Printf( "Ascii600: %d", timeTestNumber4 ); Kern::Printf( "Ascii300 + Ascii512: %d", timeTestNumber5 ); Kern::Printf( "Ascii600 + Ascii300: %d", timeTestNumber6 ); Kern::Printf( "Ascii333 + Ascii333: %d", timeTestNumber7 ); Kern::Printf( "--------------TraceCompilerTesterAdvanced----------------" ); Kern::Printf( "--------------TraceCompilerTesterAdvanced Long Trace Test END----------------" ); } else if (aGroupId == SHORT_TRACE_TEST) { Kern::Printf( "--------------TraceCompilerTesterAdvanced Short Trace Test START----------------" ); Kern::Printf( "--------------TraceCompilerTesterAdvanced Short Trace Test : Ascii1----------------" ); OstTraceExt1( SHORT_TRACE_TEST, ASCII1, "Ascii1: %s", buf1); Kern::Printf( "--------------TraceCompilerTesterAdvanced Short Trace Test : Ascii2----------------" ); OstTraceExt1( SHORT_TRACE_TEST, ASCII2, "Ascii2: %s", buf2); Kern::Printf( "--------------TraceCompilerTesterAdvanced Short Trace Test : Ascii3----------------" ); OstTraceExt1( SHORT_TRACE_TEST, ASCII3, "Ascii3: %s", buf3); Kern::Printf( "--------------TraceCompilerTesterAdvanced Short Trace Test : Ascii4----------------" ); OstTraceExt1( SHORT_TRACE_TEST, ASCII4, "Ascii4: %s", buf4); Kern::Printf( "--------------TraceCompilerTesterAdvanced Short Trace Test : Ascii1 + Acii2----------------" ); OstTraceExt2( SHORT_TRACE_TEST, ASCII5, "Ascii1: %s Ascii2: %s", buf1, buf2); Kern::Printf( "--------------TraceCompilerTesterAdvanced Short Trace Test END----------------" ); } else if (aGroupId == INCLUDED_NON_SOURCE_FILE_TEST) { // Print out traces from included non-source file that is defined in trace.properties file Kern::Printf( "--------------TraceCompilerTesterAdvanced Included Non-Source File Test START----------------" ); this->HelloWorld(); this->HelloMoon(); TUint32 value3 = GetBigValue1000(); TUint32 value4 = GetBigValue2000(); Kern::Printf( "--------------TraceCompilerTesterAdvanced Included Non-Source File Test END----------------" ); } else if (aGroupId == TRACE_FLOW) { OstTrace0(TRACE_FLOW, TEST_TRACE_2, "Test OLD TraceCompiler"); // This test can also use to test function parameters Kern::Printf( "--------------TraceCompilerTesterAdvanced Common Source File Test START----------------"); DTraceCompilerTesterCommon1* common1 = new DTraceCompilerTesterCommon1(); TInt32 sum = common1->SumValues(-1, -2, 100, 200); delete common1; Kern::Printf( "--------------TraceCompilerTesterAdvanced Common Source File Test END----------------"); } else if (aGroupId == KEKKONEN) { Kern::Printf( "--------------TraceCompilerTesterAdvanced Kekkonen START----------------"); DTraceCompilerTesterCommon2* common2 = new DTraceCompilerTesterCommon2(); common2->Kekkonen(); delete common2; Kern::Printf( "--------------TraceCompilerTesterAdvanced Kekkonen END----------------"); } else if (aGroupId == TRACE_STATE) { Kern::Printf( "--------------TraceCompilerTesterAdvanced State Trace Test START----------------"); OstTraceState0(STATE_TRACE_0, "Kone1", "Running"); OstTraceState1(STATE_TRACE_1, "Kone2", "Stopped", this); Kern::Printf( "--------------TraceCompilerTesterAdvanced State Trace Test END----------------"); } else if (aGroupId == TRACE_DATA) { Kern::Printf( "--------------TraceCompilerTesterAdvanced Data Trace Test START----------------"); TBuf8<601> data(buf600); OstTraceData( TRACE_DATA, TRACE_DATA_TRACE, "DTraceCoreXtiIf::DebugPrintMsg - Msg via XTI IF 0x%{hex8[]}", data.Ptr(), data.Size() ); Kern::Printf( "--------------TraceCompilerTesterAdvanced Data Trace Test END----------------"); } else if (aGroupId == POST_CODE_TEST) { Kern::Printf( "--------------TraceCompilerTesterAdvanced POST Code Trace Test START----------------"); OstTrace0(POST_CODE_TEST, POST1, "Print some POST code traces"); Kern::Printf("[POST][X-Loader][Started][OK]"); Kern::Printf("[POST][BootUp][Reset reason][PowerOn]"); Kern::NanoWait(50000000); Kern::Printf("[POST][X-Loader][Authenticate][OK]"); Kern::NanoWait(100000000); Kern::Printf("[POST][X-Loader][load][OK]"); Kern::NanoWait(100000000); Kern::Printf("[POST][X-Loader][Authenticate][OK]"); Kern::NanoWait(700000000); Kern::Printf("[POST][X-Loader][load][OK]"); Kern::NanoWait(50000000); Kern::Printf("[POST][X-Loader][load][OK]"); Kern::NanoWait(50000000); Kern::Printf("[POST][X-Loader][load][OK]"); Kern::NanoWait(50000000); Kern::Printf("[POST][X-Loader][Authenticate][OK]"); Kern::NanoWait(200000000); Kern::Printf("[POST][Boot strap][Started][OK]"); Kern::NanoWait(10000000); Kern::Printf("[POST][Estart][started][OK]"); Kern::NanoWait(10000000); Kern::Printf("[POST][Estart][CompositeFileSys.][OK]"); Kern::NanoWait(500000000); Kern::Printf("[POST][Mount][Drive][OK]"); Kern::NanoWait(200000000); Kern::Printf("[POST][Mount][Drive][OK]"); Kern::NanoWait(200000000); Kern::Printf("[POST][Estart][ISC API start][OK]"); Kern::NanoWait(300000000); Kern::Printf("[POST][Estart][userdisk format][No]"); Kern::NanoWait(10000000); Kern::Printf("[POST][Estart][secenv start][OK]"); Kern::NanoWait(20000000); Kern::Printf("[POST][Estart][startup mode][Local]"); Kern::NanoWait(10000000); Kern::Printf("[POST][Estart][Language selection][OK]"); Kern::NanoWait(200000000); Kern::Printf("[POST][SelfTest][Started][FAIL][KErrOutOfMemory]"); Kern::NanoWait(200000000); Kern::Printf("[POST][BT][Started][OK]"); Kern::NanoWait(800000000); Kern::Printf("[POST][WLAN][Started][OK]"); Kern::NanoWait(800000000); Kern::Printf("[POST][Display][Started][OK]"); Kern::NanoWait(800000000); Kern::Printf("[POST][Camera][Started][OK]"); Kern::NanoWait(80000000); Kern::Printf("[POST][mc_kernelagent][ExtensionInit0][OK]"); Kern::NanoWait(100000000); Kern::Printf("[POST][mc_sender][Pre-init][OK]"); Kern::NanoWait(100000000); Kern::Printf("[POST][mc_useragent][MobileCrashWriter init][OK]"); Kern::Printf( "--------------TraceCompilerTesterAdvanced POST Code Trace Test END----------------"); } }
TInt TUptTraceCalls::DoSendTraceL(const TApiRunConfig& aApiRunConfig, TApiRunResults& aApiRunResults) { TInt error = KErrGeneral; TBool logged = EFalse; TUint32 stackbase=0; TUint32 before=0; aApiRunResults.iApiStackUsage = 0; switch(aApiRunConfig.iApiId) { case EUptPrintTDesC8_big: case EUptKernelPrintfDesc8_big: { __MARK_INITIAL_STACK(aApiRunConfig.iDoStack, stackbase, before); TTraceContext attributes(KComponentId, KGroupId, aApiRunConfig.iHasContext, aApiRunConfig.iHasProgramCounter); logged = OstPrint(attributes, KStringDesc8 );//TPtrC8((const TUint8*)KBigData8, KBigSize8) __RETURN_STACK_SIZE(aApiRunConfig.iDoStack, stackbase, before, aApiRunResults.iApiStackUsage); } break; case EUptPrintTDesC8_huge: case EUptKernelPrintfDesc8_huge: { __MARK_INITIAL_STACK(aApiRunConfig.iDoStack, stackbase, before); TTraceContext attributes(KComponentId, KGroupId, aApiRunConfig.iHasContext, aApiRunConfig.iHasProgramCounter); logged = OstPrint(attributes, KStringDescHuge8);//TPtrC8((const TUint8*)KHugeData8, KHugeSize8) __RETURN_STACK_SIZE(aApiRunConfig.iDoStack, stackbase, before, aApiRunResults.iApiStackUsage); } break; case EUptPrintTDesC16_big: #ifndef __KERNEL_MODE__ { __MARK_INITIAL_STACK(aApiRunConfig.iDoStack, stackbase, before); TTraceContext attributes(KComponentId, KGroupId, aApiRunConfig.iHasContext, aApiRunConfig.iHasProgramCounter); logged = OstPrint(attributes, KStringDesc16);//TPtrC16((const TUint16*)KBigData16, KBigSize16) __RETURN_STACK_SIZE(aApiRunConfig.iDoStack, stackbase, before, aApiRunResults.iApiStackUsage); } #endif break; case EUptPrintTDesC16_huge: #ifndef __KERNEL_MODE__ { __MARK_INITIAL_STACK(aApiRunConfig.iDoStack, stackbase, before); TTraceContext attributes(KComponentId, KGroupId, aApiRunConfig.iHasContext, aApiRunConfig.iHasProgramCounter); logged = OstPrint(attributes, KStringDescHuge16);//TPtrC16((const TUint16*)KHugeData16, KHugeSize16) __RETURN_STACK_SIZE(aApiRunConfig.iDoStack, stackbase, before, aApiRunResults.iApiStackUsage); } #endif break; case EUptTraceTDesC8_big: case EUptKernelTraceDesc8_big: { __MARK_INITIAL_STACK(aApiRunConfig.iDoStack, stackbase, before); TTraceContext attributes(KComponentId, KGroupId, aApiRunConfig.iHasContext, aApiRunConfig.iHasProgramCounter); logged = OstTrace(attributes, KTraceId, KStringDesc8);//TPtrC8((const TUint8*)KBigData8, KBigSize8)); __RETURN_STACK_SIZE(aApiRunConfig.iDoStack, stackbase, before, aApiRunResults.iApiStackUsage); } break; case EUptTraceTDesC8_huge: case EUptKernelTraceDesc8_huge: { __MARK_INITIAL_STACK(aApiRunConfig.iDoStack, stackbase, before); TTraceContext attributes(KComponentId, KGroupId, aApiRunConfig.iHasContext, aApiRunConfig.iHasProgramCounter); logged = OstTrace(attributes, KTraceId, KStringDescHuge8);//TPtrC8((const TUint8*)KHugeData8, KHugeSize8)); __RETURN_STACK_SIZE(aApiRunConfig.iDoStack, stackbase, before, aApiRunResults.iApiStackUsage); } break; case EUptTraceTDesC16_big: #ifndef __KERNEL_MODE__ { __MARK_INITIAL_STACK(aApiRunConfig.iDoStack, stackbase, before); TTraceContext attributes(KComponentId, KGroupId, aApiRunConfig.iHasContext, aApiRunConfig.iHasProgramCounter); logged = OstTrace(attributes, KTraceId, KStringDesc16);//TPtrC16((const TUint16*)KBigData16, KBigSize16)); __RETURN_STACK_SIZE(aApiRunConfig.iDoStack, stackbase, before, aApiRunResults.iApiStackUsage); } #endif break; case EUptTraceTDesC16_huge: #ifndef __KERNEL_MODE__ { __MARK_INITIAL_STACK(aApiRunConfig.iDoStack, stackbase, before); TTraceContext attributes(KComponentId, KGroupId, aApiRunConfig.iHasContext, aApiRunConfig.iHasProgramCounter); logged = OstTrace(attributes, KTraceId, KStringDescHuge16);//TPtrC16((const TUint16*)KHugeData16, KHugeSize16)); __RETURN_STACK_SIZE(aApiRunConfig.iDoStack, stackbase, before, aApiRunResults.iApiStackUsage); } #endif break; case EUptPrintfchar: case EUptKernelPrintfchar: { __MARK_INITIAL_STACK(aApiRunConfig.iDoStack, stackbase, before); TTraceContext attributes(KComponentId, KGroupId, aApiRunConfig.iHasContext, aApiRunConfig.iHasProgramCounter); logged = OstPrintf(attributes, KPrintfCStyleString); __RETURN_STACK_SIZE(aApiRunConfig.iDoStack, stackbase, before, aApiRunResults.iApiStackUsage); } break; case EUptPrintfTRefByValueTDesC8: case EUptKernelPrintfTRefByValueTDesC8: { __MARK_INITIAL_STACK(aApiRunConfig.iDoStack, stackbase, before); TTraceContext attributes(KComponentId, KGroupId, aApiRunConfig.iHasContext, aApiRunConfig.iHasProgramCounter); logged = OstPrintf(attributes, KDesC8Formatted,2); __RETURN_STACK_SIZE(aApiRunConfig.iDoStack, stackbase, before, aApiRunResults.iApiStackUsage); } break; case EUptPrintfTRefByValueTDesC16: #ifndef __KERNEL_MODE__ { __MARK_INITIAL_STACK(aApiRunConfig.iDoStack, stackbase, before); TTraceContext attributes(KComponentId, KGroupId, aApiRunConfig.iHasContext, aApiRunConfig.iHasProgramCounter); logged = OstPrintf(attributes, KDesCFormatted16,2); __RETURN_STACK_SIZE(aApiRunConfig.iDoStack, stackbase, before, aApiRunResults.iApiStackUsage); } #endif break; case EUptTrace: case EUptKernelTrace: { __MARK_INITIAL_STACK(aApiRunConfig.iDoStack, stackbase, before); TTraceContext attributes(KComponentId, KGroupId, aApiRunConfig.iHasContext, aApiRunConfig.iHasProgramCounter); logged = OstTrace(attributes, KTraceId); __RETURN_STACK_SIZE(aApiRunConfig.iDoStack, stackbase, before, aApiRunResults.iApiStackUsage); } break; case EUptTraceTUint32: case EUptKernelTraceTUint32: { __MARK_INITIAL_STACK(aApiRunConfig.iDoStack, stackbase, before); TTraceContext attributes(KComponentId, KGroupId, aApiRunConfig.iHasContext, aApiRunConfig.iHasProgramCounter); logged = OstTrace(attributes, KTraceId, KData1); __RETURN_STACK_SIZE(aApiRunConfig.iDoStack, stackbase, before, aApiRunResults.iApiStackUsage); } break; case EUptTraceTUint32TUint32: case EUptKernelTraceTUint32TUint32: { __MARK_INITIAL_STACK(aApiRunConfig.iDoStack, stackbase, before); TTraceContext attributes(KComponentId, KGroupId, aApiRunConfig.iHasContext, aApiRunConfig.iHasProgramCounter); logged = OstTrace(attributes, KTraceId, KData1, KData2); __RETURN_STACK_SIZE(aApiRunConfig.iDoStack, stackbase, before, aApiRunResults.iApiStackUsage); } break; case EUptTraceTAnySmallStruct: case EUptKernelTraceTAnySmallStruct: { __MARK_INITIAL_STACK(aApiRunConfig.iDoStack, stackbase, before); TTraceContext attributes(KComponentId, KGroupId, aApiRunConfig.iHasContext, aApiRunConfig.iHasProgramCounter); logged = OstTrace(attributes, KTraceId, KSmallData, KSmallSize); __RETURN_STACK_SIZE(aApiRunConfig.iDoStack, stackbase, before, aApiRunResults.iApiStackUsage); } break; case EUptTraceTAnyBigStruct: case EUptKernelTraceTAnyBigStruct: { __MARK_INITIAL_STACK(aApiRunConfig.iDoStack, stackbase, before); TTraceContext attributes(KComponentId, KGroupId, aApiRunConfig.iHasContext, aApiRunConfig.iHasProgramCounter); logged = OstTrace(attributes, KTraceId, KBigData8, KBigSize8); __RETURN_STACK_SIZE(aApiRunConfig.iDoStack, stackbase, before, aApiRunResults.iApiStackUsage); } break; case EUptTraceTAnyHugeStruct: case EUptKernelTraceTAnyHugeStruct: { __MARK_INITIAL_STACK(aApiRunConfig.iDoStack, stackbase, before); TTraceContext attributes(KComponentId, KGroupId, aApiRunConfig.iHasContext, aApiRunConfig.iHasProgramCounter); logged = OstTrace(attributes, KTraceId, KHugeData8, KHugeSize8); __RETURN_STACK_SIZE(aApiRunConfig.iDoStack, stackbase, before, aApiRunResults.iApiStackUsage); } break; case EUptTraceTemplatedSmallStruct: case EUptKernelTraceTemplatedSmallStruct: { __MARK_INITIAL_STACK(aApiRunConfig.iDoStack, stackbase, before); TTraceContext attributes(KComponentId, KGroupId, aApiRunConfig.iHasContext, aApiRunConfig.iHasProgramCounter); logged = OstTrace(attributes, KTraceId, KStructForTemplated); __RETURN_STACK_SIZE(aApiRunConfig.iDoStack, stackbase, before, aApiRunResults.iApiStackUsage); } break; case EUptTraceTemplatedBigStruct: case EUptKernelTraceTemplatedBigStruct: { __MARK_INITIAL_STACK(aApiRunConfig.iDoStack, stackbase, before); TTraceContext attributes(KComponentId, KGroupId, aApiRunConfig.iHasContext, aApiRunConfig.iHasProgramCounter); logged = OstTrace(attributes, KTraceId, KBigData8); __RETURN_STACK_SIZE(aApiRunConfig.iDoStack, stackbase, before, aApiRunResults.iApiStackUsage); } break; case EUptTraceTemplatedHugeStruct: case EUptKernelTraceTemplatedHugeStruct: { __MARK_INITIAL_STACK(aApiRunConfig.iDoStack, stackbase, before); TTraceContext attributes(KComponentId, KGroupId, aApiRunConfig.iHasContext, aApiRunConfig.iHasProgramCounter); logged = OstTrace(attributes, KTraceId, KHugeData8); __RETURN_STACK_SIZE(aApiRunConfig.iDoStack, stackbase, before, aApiRunResults.iApiStackUsage); } break; case EUptIsTraceActive: case EUptKernelIsTraceActive: { __MARK_INITIAL_STACK(aApiRunConfig.iDoStack, stackbase, before); TTraceContext attributes(KComponentId, KGroupId, aApiRunConfig.iHasContext, aApiRunConfig.iHasProgramCounter); logged = IsTraceActive(attributes); __RETURN_STACK_SIZE(aApiRunConfig.iDoStack, stackbase, before, aApiRunResults.iApiStackUsage); } break; case UPTTraceTest: case UPTKernelTraceTest: { __MARK_INITIAL_STACK(aApiRunConfig.iDoStack, stackbase, before); SanityFoo(); __RETURN_STACK_SIZE(aApiRunConfig.iDoStack, stackbase, before, aApiRunResults.iApiStackUsage); } break; case UPTKernelNegativeFunctionalityTest: { logged = OstTrace(TTraceContext(KComponentId+1, KGroupId+1, aApiRunConfig.iHasContext, aApiRunConfig.iHasProgramCounter), KTraceId); logged = OstTrace(TTraceContext(KComponentId+2, KGroupId+2, aApiRunConfig.iHasContext, aApiRunConfig.iHasProgramCounter), KTraceId); } break; case UPTKernelMultipleFunctionalityTest: { logged = OstTrace(TTraceContext(KComponentId, KGroupId, aApiRunConfig.iHasContext, aApiRunConfig.iHasProgramCounter), KTraceId); logged = OstTrace(TTraceContext(KComponentId + 1, KGroupId, aApiRunConfig.iHasContext, aApiRunConfig.iHasProgramCounter), KTraceId); logged = OstTrace(TTraceContext(KComponentId + 2, KGroupId, aApiRunConfig.iHasContext, aApiRunConfig.iHasProgramCounter), KTraceId); logged = OstTrace(TTraceContext(KComponentId, KGroupId + 2, aApiRunConfig.iHasContext, aApiRunConfig.iHasProgramCounter), KTraceId); logged = OstTrace(TTraceContext(KComponentId + 2, KGroupId + 2, aApiRunConfig.iHasContext, aApiRunConfig.iHasProgramCounter), KTraceId); logged = OstTrace(TTraceContext(KComponentId + 1, KGroupId + 2, aApiRunConfig.iHasContext, aApiRunConfig.iHasProgramCounter), KTraceId); logged = OstTrace(TTraceContext(KComponentId, KGroupId + 1, aApiRunConfig.iHasContext, aApiRunConfig.iHasProgramCounter), KTraceId); } break; case BTraceFiltered4: { __MARK_INITIAL_STACK(aApiRunConfig.iDoStack, stackbase, before); logged = BTraceFiltered4(KGroupId,0 ,KComponentId); __RETURN_STACK_SIZE(aApiRunConfig.iDoStack, stackbase, before, aApiRunResults.iApiStackUsage); } break; case BTraceFiltered8: { __MARK_INITIAL_STACK(aApiRunConfig.iDoStack, stackbase, before); logged = BTraceFiltered8(KGroupId,0 ,KComponentId,KData1); __RETURN_STACK_SIZE(aApiRunConfig.iDoStack, stackbase, before, aApiRunResults.iApiStackUsage); } break; case BTraceFiltered12: { __MARK_INITIAL_STACK(aApiRunConfig.iDoStack, stackbase, before); logged = BTraceFiltered12(KGroupId,0 ,KComponentId,KData1,KData2); __RETURN_STACK_SIZE(aApiRunConfig.iDoStack, stackbase, before, aApiRunResults.iApiStackUsage); } break; case BTraceFilteredBig: { __MARK_INITIAL_STACK(aApiRunConfig.iDoStack, stackbase, before); logged = BTraceFilteredBig(KGroupId,0 ,KComponentId,KHugeData8,sizeof(KHugeData8)); __RETURN_STACK_SIZE(aApiRunConfig.iDoStack, stackbase, before, aApiRunResults.iApiStackUsage); } break; case BTrace0: { __MARK_INITIAL_STACK(aApiRunConfig.iDoStack, stackbase, before); logged = BTrace0(KGroupId,0 ); __RETURN_STACK_SIZE(aApiRunConfig.iDoStack, stackbase, before, aApiRunResults.iApiStackUsage); } break; case BTrace4: { __MARK_INITIAL_STACK(aApiRunConfig.iDoStack, stackbase, before); logged = BTrace4(KGroupId,0 ,KData1); __RETURN_STACK_SIZE(aApiRunConfig.iDoStack, stackbase, before, aApiRunResults.iApiStackUsage); } break; case BTrace8: { __MARK_INITIAL_STACK(aApiRunConfig.iDoStack, stackbase, before); logged = BTrace8(KGroupId,0 ,KData1, KData2); __RETURN_STACK_SIZE(aApiRunConfig.iDoStack, stackbase, before, aApiRunResults.iApiStackUsage); } break; case BTrace12: { __MARK_INITIAL_STACK(aApiRunConfig.iDoStack, stackbase, before); logged = BTrace12(KGroupId,0 ,KData1, KData2, KData3); __RETURN_STACK_SIZE(aApiRunConfig.iDoStack, stackbase, before, aApiRunResults.iApiStackUsage); } break; case UPTKernelBaseline: case UPTBaseline: { __MARK_INITIAL_STACK(aApiRunConfig.iDoStack, stackbase, before); __RETURN_STACK_SIZE(aApiRunConfig.iDoStack, stackbase, before, aApiRunResults.iApiStackUsage); } break; case EOstTraceDef0: { /** Preprocessor level for all traces on. This should not be used from traces */ #define OST_TRACE_CATEGORY_ALL 0xFFFFFFFF __MARK_INITIAL_STACK(aApiRunConfig.iDoStack, stackbase, before); OstTraceDef0( OST_TRACE_CATEGORY_ALL, TRACE_FATAL, TEST_OstTraceDef0, "EOstTraceDef0" ) ; logged = EFalse; __RETURN_STACK_SIZE(aApiRunConfig.iDoStack, stackbase, before, aApiRunResults.iApiStackUsage); } break; case EOstTraceDef1: { /** Preprocessor level for all traces on. This should not be used from traces */ #define OST_TRACE_CATEGORY_ALL 0xFFFFFFFF __MARK_INITIAL_STACK(aApiRunConfig.iDoStack, stackbase, before); OstTraceDef1( OST_TRACE_CATEGORY_ALL, TRACE_FATAL, TEST_OstTraceDef1, "EOstTraceDef1 - %u" , KData1) ; logged = EFalse; __RETURN_STACK_SIZE(aApiRunConfig.iDoStack, stackbase, before, aApiRunResults.iApiStackUsage); } break; case EOstTraceDefData: { /** Preprocessor level for all traces on. This should not be used from traces */ #define OST_TRACE_CATEGORY_ALL 0xFFFFFFFF //const TAny* y = &KData1; __MARK_INITIAL_STACK(aApiRunConfig.iDoStack, stackbase, before); OstTraceDefData( OST_TRACE_CATEGORY_ALL, TRACE_FATAL, TEST_OstTraceDefData, "EOstTraceDefData", &KData1, sizeof(KData1) ) ; logged = EFalse; __RETURN_STACK_SIZE(aApiRunConfig.iDoStack, stackbase, before, aApiRunResults.iApiStackUsage); } break; case EOstTraceDefExt1: { /** Preprocessor level for all traces on. This should not be used from traces */ #define OST_TRACE_CATEGORY_ALL 0xFFFFFFFF __MARK_INITIAL_STACK(aApiRunConfig.iDoStack, stackbase, before); OstTraceDefExt1( OST_TRACE_CATEGORY_ALL, TRACE_FATAL, TEST_OstTraceDefExt1, "OstTraceDefExt1 - %s", KDefault8 ) ; logged = EFalse; __RETURN_STACK_SIZE(aApiRunConfig.iDoStack, stackbase, before, aApiRunResults.iApiStackUsage); } break; case EOstTraceDefExt2: { /** Preprocessor level for all traces on. This should not be used from traces */ #define OST_TRACE_CATEGORY_ALL 0xFFFFFFFF __MARK_INITIAL_STACK(aApiRunConfig.iDoStack, stackbase, before); OstTraceDefExt2( OST_TRACE_CATEGORY_ALL, TRACE_FATAL, TEST_OstTraceDefExt2, "OstTraceDefExt2 - %u - %u", KData1 , KData1) ; logged = EFalse; __RETURN_STACK_SIZE(aApiRunConfig.iDoStack, stackbase, before, aApiRunResults.iApiStackUsage); } break; case EOstTraceDefExt3: { /** Preprocessor level for all traces on. This should not be used from traces */ #define OST_TRACE_CATEGORY_ALL 0xFFFFFFFF __MARK_INITIAL_STACK(aApiRunConfig.iDoStack, stackbase, before); OstTraceDefExt3( OST_TRACE_CATEGORY_ALL, TRACE_FATAL, TEST_OstTraceDefExt3, "OstTraceDefExt3 - %u - %u - %u", KData1 , KData1, KData1) ; logged = EFalse; __RETURN_STACK_SIZE(aApiRunConfig.iDoStack, stackbase, before, aApiRunResults.iApiStackUsage); } break; case EOstTraceDefExt4: { /** Preprocessor level for all traces on. This should not be used from traces */ #define OST_TRACE_CATEGORY_ALL 0xFFFFFFFF __MARK_INITIAL_STACK(aApiRunConfig.iDoStack, stackbase, before); OstTraceDefExt4( OST_TRACE_CATEGORY_ALL, TRACE_FATAL, TEST_OstTraceDefExt4, "OstTraceDefExt4 - %u - %u - %u - %u", KData1 , KData1, KData1, KData1) ; logged = EFalse; __RETURN_STACK_SIZE(aApiRunConfig.iDoStack, stackbase, before, aApiRunResults.iApiStackUsage); } break; case EOstTraceDefExt5: { /** Preprocessor level for all traces on. This should not be used from traces */ #define OST_TRACE_CATEGORY_ALL 0xFFFFFFFF __MARK_INITIAL_STACK(aApiRunConfig.iDoStack, stackbase, before); OstTraceDefExt5( OST_TRACE_CATEGORY_ALL, TRACE_FATAL, TEST_OstTraceDefExt5, "OstTraceDefExt5 - %u - %u - %u - %u - %u", KData1, KData1, KData1, KData1, KData1 ) ; logged = EFalse; __RETURN_STACK_SIZE(aApiRunConfig.iDoStack, stackbase, before, aApiRunResults.iApiStackUsage); } break; case EOstTrace0: { /** Preprocessor level for all traces on. This should not be used from traces */ #define OST_TRACE_CATEGORY_ALL 0xFFFFFFFF __MARK_INITIAL_STACK(aApiRunConfig.iDoStack, stackbase, before); OstTrace0( TRACE_FATAL, TEST_OSTTRACE0, "EOstTrace0" ); logged = EFalse; __RETURN_STACK_SIZE(aApiRunConfig.iDoStack, stackbase, before, aApiRunResults.iApiStackUsage); } break; case EOstTrace1: { /** Preprocessor level for all traces on. This should not be used from traces */ #define OST_TRACE_CATEGORY_ALL 0xFFFFFFFF __MARK_INITIAL_STACK(aApiRunConfig.iDoStack, stackbase, before); OstTrace1( TRACE_FATAL, TEST_OSTTRACE1, "EOstTrace1 - %u" , KData1); logged = EFalse; __RETURN_STACK_SIZE(aApiRunConfig.iDoStack, stackbase, before, aApiRunResults.iApiStackUsage); } break; case EOstTraceData: { /** Preprocessor level for all traces on. This should not be used from traces */ #define OST_TRACE_CATEGORY_ALL 0xFFFFFFFF //const TAny* y = &KData1; __MARK_INITIAL_STACK(aApiRunConfig.iDoStack, stackbase, before); OstTraceData( TRACE_FATAL, TEST_OSTTRACEDATA, "EOSTTraceData", &KData1, sizeof(KData1) ); logged = EFalse; __RETURN_STACK_SIZE(aApiRunConfig.iDoStack, stackbase, before, aApiRunResults.iApiStackUsage); } break; case EOstTraceExt1: { /** Preprocessor level for all traces on. This should not be used from traces */ #define OST_TRACE_CATEGORY_ALL 0xFFFFFFFF __MARK_INITIAL_STACK(aApiRunConfig.iDoStack, stackbase, before); OstTraceExt1( TRACE_FATAL, TEST_OSTTRACEEXT1, "OSTTraceExt1 - %hhd", KData8 ) ; logged = EFalse; __RETURN_STACK_SIZE(aApiRunConfig.iDoStack, stackbase, before, aApiRunResults.iApiStackUsage); } break; case EOstTraceExt2: { /** Preprocessor level for all traces on. This should not be used from traces */ #define OST_TRACE_CATEGORY_ALL 0xFFFFFFFF __MARK_INITIAL_STACK(aApiRunConfig.iDoStack, stackbase, before); OstTraceExt2( TRACE_FATAL, TEST_OSTTRACEEXT2, "OSTTraceExt2 - %u - %u", KData1 ,KData1) ; logged = EFalse; __RETURN_STACK_SIZE(aApiRunConfig.iDoStack, stackbase, before, aApiRunResults.iApiStackUsage); } break; case EOstTraceExt3: { /** Preprocessor level for all traces on. This should not be used from traces */ #define OST_TRACE_CATEGORY_ALL 0xFFFFFFFF __MARK_INITIAL_STACK(aApiRunConfig.iDoStack, stackbase, before); OstTraceExt3( TRACE_FATAL, TEST_OSTTRACEEXT3, "OSTTraceExt3 - %u - %u - %u", KData1 ,KData1, KData1) ; logged = EFalse; __RETURN_STACK_SIZE(aApiRunConfig.iDoStack, stackbase, before, aApiRunResults.iApiStackUsage); } break; case EOstTraceExt4: { /** Preprocessor level for all traces on. This should not be used from traces */ #define OST_TRACE_CATEGORY_ALL 0xFFFFFFFF __MARK_INITIAL_STACK(aApiRunConfig.iDoStack, stackbase, before); OstTraceExt4( TRACE_FATAL, TEST_OSTTRACEEXT4, "OSTTraceExt4 - %u - %u - %u - %u", KData1 ,KData1, KData1, KData1) ; logged = EFalse; __RETURN_STACK_SIZE(aApiRunConfig.iDoStack, stackbase, before, aApiRunResults.iApiStackUsage); } break; case EOstTraceExt5: { /** Preprocessor level for all traces on. This should not be used from traces */ #define OST_TRACE_CATEGORY_ALL 0xFFFFFFFF __MARK_INITIAL_STACK(aApiRunConfig.iDoStack, stackbase, before); OstTraceExt5( TRACE_FATAL, TEST_OSTTRACEEXT5, "OSTTraceExt5 - %u - %u - %u - %u - %u", KData1 ,KData1, KData1, KData1, KData1) ; logged = EFalse; __RETURN_STACK_SIZE(aApiRunConfig.iDoStack, stackbase, before, aApiRunResults.iApiStackUsage); } break; case EOstTraceFunctionEntry0: { __MARK_INITIAL_STACK(aApiRunConfig.iDoStack, stackbase, before); OstTraceFunctionEntry0( TEST_OSTTraceFunctionalityEntry0 ); logged = EFalse; __RETURN_STACK_SIZE(aApiRunConfig.iDoStack, stackbase, before, aApiRunResults.iApiStackUsage); } break; case EOstTraceFunctionEntry1: { //const TAny* y = &KData1; __MARK_INITIAL_STACK(aApiRunConfig.iDoStack, stackbase, before); OstTraceFunctionEntry1( TEST_OSTTraceFunctionalityEntry1, KData1 ); logged = EFalse; __RETURN_STACK_SIZE(aApiRunConfig.iDoStack, stackbase, before, aApiRunResults.iApiStackUsage); } break; case EOstTraceFunctionEntryExt: { __MARK_INITIAL_STACK(aApiRunConfig.iDoStack, stackbase, before); OstTraceFunctionEntryExt( TEST_OSTTraceFunctionalityExt, (const TAny*)&KData1 ); logged = EFalse; __RETURN_STACK_SIZE(aApiRunConfig.iDoStack, stackbase, before, aApiRunResults.iApiStackUsage); } break; case EOstTraceFunctionEntryExtCtorInitList: { __MARK_INITIAL_STACK(aApiRunConfig.iDoStack, stackbase, before); TTestCtor testCtorA( 1, 2 ); logged = EFalse; __RETURN_STACK_SIZE(aApiRunConfig.iDoStack, stackbase, before, aApiRunResults.iApiStackUsage); } break; case EOstTraceFunctionEntryExtCtorNoInitList: { __MARK_INITIAL_STACK(aApiRunConfig.iDoStack, stackbase, before); TTestCtor testCtorB( 3 ); logged = EFalse; __RETURN_STACK_SIZE(aApiRunConfig.iDoStack, stackbase, before, aApiRunResults.iApiStackUsage); } break; case EOstTraceFunctionExit0: { __MARK_INITIAL_STACK(aApiRunConfig.iDoStack, stackbase, before); OstTraceFunctionExit0( TEST_OstTraceFunctionExit0 ); logged = EFalse; __RETURN_STACK_SIZE(aApiRunConfig.iDoStack, stackbase, before, aApiRunResults.iApiStackUsage); } break; case EOstTraceFunctionExit1: { //const TAny* y = &KData1; __MARK_INITIAL_STACK(aApiRunConfig.iDoStack, stackbase, before); OstTraceFunctionExit1( TEST_OSTTRACEFUNCTIONEXIT1, KData1 ); logged = EFalse; __RETURN_STACK_SIZE(aApiRunConfig.iDoStack, stackbase, before, aApiRunResults.iApiStackUsage); } break; case EOstTraceFunctionExitExt: { __MARK_INITIAL_STACK(aApiRunConfig.iDoStack, stackbase, before); OstTraceFunctionExitExt( TEST_OSTTRACEFUNCTIONEXITEXT, (const TAny*)&KData1, TInt(0) ); logged = EFalse; __RETURN_STACK_SIZE(aApiRunConfig.iDoStack, stackbase, before, aApiRunResults.iApiStackUsage); } break; case EOstTraceEventStart0: { __MARK_INITIAL_STACK(aApiRunConfig.iDoStack, stackbase, before); OstTraceEventStart0( TEST_OSTTRACEEVENTSTART0, "EOstTraceEventStart0" ); logged = EFalse; __RETURN_STACK_SIZE(aApiRunConfig.iDoStack, stackbase, before, aApiRunResults.iApiStackUsage); } break; case EOstTraceEventStart1: { __MARK_INITIAL_STACK(aApiRunConfig.iDoStack, stackbase, before); OstTraceEventStart1( TEST_OSTTRACEEVENTSTART1, "EOstTraceEventStart1 - %u", KData1 ) ; logged = EFalse; __RETURN_STACK_SIZE(aApiRunConfig.iDoStack, stackbase, before, aApiRunResults.iApiStackUsage); } break; case EOstTraceEventStop: { __MARK_INITIAL_STACK(aApiRunConfig.iDoStack, stackbase, before); OstTraceEventStop( TEST_OSTTRACEEVENTSTOP, "EOstTraceEventStop", TEST_OSTTRACEEVENTSTART0 ); logged = EFalse; __RETURN_STACK_SIZE(aApiRunConfig.iDoStack, stackbase, before, aApiRunResults.iApiStackUsage); } break; case EOstTraceState0: { __MARK_INITIAL_STACK(aApiRunConfig.iDoStack, stackbase, before); OstTraceState0( TEST_OSTTRACESTATE0, "Test State Name", "Test State Value" ); logged = EFalse; __RETURN_STACK_SIZE(aApiRunConfig.iDoStack, stackbase, before, aApiRunResults.iApiStackUsage); } break; case EOstTraceState1: { //const TAny* y = &KData1; __MARK_INITIAL_STACK(aApiRunConfig.iDoStack, stackbase, before); OstTraceState1( TEST_OSTTRACESTATE1, "Test State Name", "Test State Value", KData1 ); logged = EFalse; __RETURN_STACK_SIZE(aApiRunConfig.iDoStack, stackbase, before, aApiRunResults.iApiStackUsage); } break; case EOstTraceData96: { /** Preprocessor level for all traces on. This should not be used from traces */ #define OST_TRACE_CATEGORY_ALL 0xFFFFFFFF __MARK_INITIAL_STACK(aApiRunConfig.iDoStack, stackbase, before); OstTraceData( TRACE_FATAL, TEST_OSTTRACEDATA96, "EOSTTraceData96", KBigData8, KBigSize8 ); logged = EFalse; __RETURN_STACK_SIZE(aApiRunConfig.iDoStack, stackbase, before, aApiRunResults.iApiStackUsage); } break; case EOstTraceData1000: { /** Preprocessor level for all traces on. This should not be used from traces */ #define OST_TRACE_CATEGORY_ALL 0xFFFFFFFF __MARK_INITIAL_STACK(aApiRunConfig.iDoStack, stackbase, before); OstTraceData( TRACE_FATAL, TEST_OSTTRACEDATA1000, "EOSTTraceData1000", KHugeData8, KHugeSize8 ); logged = EFalse; __RETURN_STACK_SIZE(aApiRunConfig.iDoStack, stackbase, before, aApiRunResults.iApiStackUsage); } break; default: error = KErrNotSupported; break; } //if the "trace" is in fact not an actual trace and trace not sent - this is a true result TBool realTrace = ETrue; switch(aApiRunConfig.iApiId) { case UPTTraceTest: case UPTKernelTraceTest: case UPTKernelNegativeFunctionalityTest: case UPTKernelMultipleFunctionalityTest: case UPTBaseline: case UPTKernelBaseline: case UPTFooUserTime: case UPTFooKernelTime: realTrace = EFalse; break; default: break; } //ensure correct error values for the current test configurations are returned to the test framework if(!logged) { if(error!=KErrNotSupported) error = KErrGeneral; } else error = KErrNone; //if trace has been disabled and trace not sent - this is a true result #ifdef TE_UPT_TRACE_DISABLED if(error == KErrGeneral) error = KErrNone; #endif if(error == KErrGeneral && realTrace == EFalse) error = KErrNone; //returns KErrNone if logged, KErrNotLogged if not logged, KErrGeneral if any other problem... return error; }