diff -r 000000000000 -r a41df078684a kerneltest/e32test/bench/t_desfnc.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/kerneltest/e32test/bench/t_desfnc.cpp Mon Oct 19 15:55:17 2009 +0100 @@ -0,0 +1,405 @@ +// Copyright (c) 1996-2009 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of the License "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: +// e32test\bench\t_desfnc.cpp +// +// + +#include "t_userbm.h" +#include +#include + +_LIT(KCompare16, "abcdefghijklmnopqrstuvwxyz123456"); +_LIT(KCompare16_2, "ABcdEfGhijklmnopqrstUVWxYZ123456"); +_LIT(KMatch16, "qrstu"); +_LIT(KMatch16_2, "qRStU"); +const TDesC16& KString16 = KCompare16_2(); +const TUint16* KCharData16 = KString16.Ptr(); +TChar KChar; + +_LIT8(KCompare8, "abcdefghijklmnopqrstuvwxyz123456"); +_LIT8(KCompare8_2, "ABcdEfGhijklmnopqrstUVWxYZ123456"); +_LIT8(KMatch8, "qrstu"); +_LIT8(KMatch8_2, "qRStU"); +const TDesC8& KString8 = KCompare8_2(); +const TUint8* KCharData8 = KString8.Ptr(); + +void InitDataL() + { + } + +// 16 bit descriptors + +// Original t_desbm benchmarks first +DEFINE_USER_BENCHMARK(TDes16_Num, + TBuf16<32> buf, + buf.Num(0x35241525)); + +DEFINE_USER_BENCHMARK(TDes16_Num_RadixHex, + TBuf16<256> buf, + buf.Num(0x35241525,EHex)); + +DEFINE_USER_BENCHMARK(TDes16_Num_RadixDecimal, + TBuf16<256> buf, + buf.Num(0x35241525,EDecimal)); + +DEFINE_USER_BENCHMARK(TDes16_Num_RadixOctal, + TBuf16<256> buf, + buf.Num(0x35241525,EOctal)); + +DEFINE_USER_BENCHMARK(TDes16_Num_RadixBinary, + TBuf16<256> buf, + buf.Num(0x35241525,EBinary)); + +DEFINE_USER_BENCHMARK(TDesC16_Compare, + TBuf16<256> buf(KCompare16); TBuf16<256> str(KCompare16), + buf.Compare(str)); + +DEFINE_EXTRA_BENCHMARK(TDesC16_CompareC, + TBuf16<256> buf(KCompare16); TBuf16<256> str(KCompare16_2), + buf.CompareC(str)); + +DEFINE_USER_BENCHMARK(TDesC16_CompareF, + TBuf16<256> buf(KCompare16); TBuf16<256> str(KCompare16_2), + buf.CompareF(str)); + +DEFINE_USER_BENCHMARK(TDesC16_Match, + TBuf16<256> buf(KCompare16); TBuf16<256> str(KMatch16), + buf.Match(str)); + +DEFINE_USER_BENCHMARK(TDesC16_MatchF, + TBuf16<256> buf(KCompare16); TBuf16<256> str(KMatch16_2), + buf.MatchF(str)); + + +DEFINE_EXTRA_BENCHMARK(TDes16_Append_TChar, + TBuf16<256> buf(KCompare16), + buf.SetLength(32); buf.Append(KChar)); + +DEFINE_EXTRA_BENCHMARK(TDes16_Append_TDesC16, + TBuf16<256> buf(KCompare16), + buf.SetLength(32); buf.Append(KString16)); + +DEFINE_EXTRA_BENCHMARK(TDes16_Append_pTUint16, + TBuf16<256> buf(KCompare16), + buf.SetLength(32); buf.Append(KCharData16, 32)); + +DEFINE_EXTRA_BENCHMARK(TDes16_Copy_TDesC16, + TBuf16<256> buf, + buf.Copy(KString16)); + +DEFINE_EXTRA_BENCHMARK(TDes16_Copy_pTUint16, + TBuf16<256> buf, + buf.Copy(KCharData16)); + +DEFINE_EXTRA_BENCHMARK(TDes16_Copy_pTUint16_TInt, + TBuf16<256> buf, + buf.Copy(KCharData16, 32)); + +DEFINE_EXTRA_BENCHMARK(TDes16_Fill, + TBuf16<256> buf(KCompare16), + buf.Fill(KChar)); + +DEFINE_EXTRA_BENCHMARK(TDes16_FillZ, + TBuf16<256> buf(KCompare16), + buf.FillZ()); + +DEFINE_EXTRA_BENCHMARK(TDes16_LeftTPtr, + TBuf16<256> buf(KCompare16), + buf.LeftTPtr(10)); + +DEFINE_EXTRA_BENCHMARK(TDes16_RightTPtr, + TBuf16<256> buf(KCompare16), + buf.RightTPtr(10)); + +DEFINE_EXTRA_BENCHMARK(TDes16_MidTPtr, + TBuf16<256> buf(KCompare16), + buf.MidTPtr(10)); + +DEFINE_EXTRA_BENCHMARK(TDes16_PtrZ, + TBuf16<256> buf(KCompare16), + buf.PtrZ()); + +DEFINE_EXTRA_BENCHMARK(TDes16_SetLength, + TBuf16<256> buf(KCompare16), + buf.SetLength(10)); + +DEFINE_EXTRA_BENCHMARK(TDes16_SetMax, + TBuf16<256> buf(KCompare16), + buf.SetMax()); + +DEFINE_EXTRA_BENCHMARK(TDes16_ZeroTerminate, + TBuf16<256> buf(KCompare16), + buf.ZeroTerminate()); + +DEFINE_EXTRA_BENCHMARK(TDesC16_AtC, + , + KString16[10]); + +DEFINE_EXTRA_BENCHMARK(TDesC16_Left, + , + KString16.Left(10)); + +DEFINE_EXTRA_BENCHMARK(TDesC16_Right, + , + KString16.Right(10)); + +DEFINE_EXTRA_BENCHMARK(TDesC16_Mid, + , + KString16.Mid(10)); + +DEFINE_EXTRA_BENCHMARK(TDesC16_Locate, + , + KString16.Locate(KChar)); + +DEFINE_EXTRA_BENCHMARK(TDesC16_LocateReverse, + , + KString16.LocateReverse(KChar)); + +DEFINE_EXTRA_BENCHMARK(TDesC16_Ptr, + , + KString16.Ptr()); + +DEFINE_EXTRA_BENCHMARK(TPtr16_TPtr16, + TPtr16 p(NULL, 0), + new (&p) TPtr16(NULL, 0)); + +DEFINE_EXTRA_BENCHMARK(TPtr16_TPtr16_2, + TPtr16 p(NULL, 0), + new (&p) TPtr16(NULL, 0, 0)); + +DEFINE_EXTRA_BENCHMARK(TPtrC16_TPtrC16, + TPtrC16 p, + new (&p) TPtrC16()); + +DEFINE_EXTRA_BENCHMARK(TPtrC16_TPtrC16_2, + TPtrC16 p, + new (&p) TPtrC16(KString16)); + +DEFINE_EXTRA_BENCHMARK(TPtrC16_TPtrC16_3, + TPtrC16 p, + new (&p) TPtrC16(KCharData16)); + +DEFINE_EXTRA_BENCHMARK(TPtrC16_TPtrC16_4, + TPtrC16 p, + new (&p) TPtrC16(KCharData16, 32)); + +DEFINE_EXTRA_BENCHMARK(TBufBase16_TBufBase16_1, + TBuf16<256> b, + new (&b) TBuf16<256>()); + +DEFINE_EXTRA_BENCHMARK(TBufBase16_TBufBase16_2, + TBuf16<256> b, + new (&b) TBuf16<256>(32)); + +DEFINE_EXTRA_BENCHMARK(TBufBase16_TBufBase16_3, + TBuf16<256> b, + new (&b) TBuf16<256>(KCharData16)); + +DEFINE_EXTRA_BENCHMARK(TBufBase16_TBufBase16_4, + TBuf16<256> b, + new (&b) TBuf16<256>(KString16)); + +DEFINE_EXTRA_BENCHMARK(TBufCBase16_TBufBaseC16_1, + TBufC16<256> b, + new (&b) TBufC16<256>()); + +DEFINE_EXTRA_BENCHMARK(TBufCBase16_TBufBaseC16_2, + TBufC16<256> b, + new (&b) TBufC16<256>(KCharData16)); + +DEFINE_EXTRA_BENCHMARK(TBufCBase16_TBufBaseC16_3, + TBufC16<256> b, + new (&b) TBufC16<256>(KString16)); + +// 8 bit descriptors + +DEFINE_EXTRA_BENCHMARK(TDes8_Num, + TBuf8<32> buf, + buf.Num(0x35241525)); + +DEFINE_EXTRA_BENCHMARK(TDes8_Num_RadixHex, + TBuf8<256> buf, + buf.Num(0x35241525,EHex)); + +DEFINE_EXTRA_BENCHMARK(TDes8_Num_RadixDecimal, + TBuf8<256> buf, + buf.Num(0x35241525,EDecimal)); + +DEFINE_EXTRA_BENCHMARK(TDes8_Num_RadixOctal, + TBuf8<256> buf, + buf.Num(0x35241525,EOctal)); + +DEFINE_EXTRA_BENCHMARK(TDes8_Num_RadixBinary, + TBuf8<256> buf, + buf.Num(0x35241525,EBinary)); + +DEFINE_EXTRA_BENCHMARK(TDesC8_Compare, + TBuf8<256> buf(KCompare8); TBuf8<256> str(KCompare8), + buf.Compare(str)); + +DEFINE_EXTRA_BENCHMARK(TDesC8_CompareC, + TBuf8<256> buf(KCompare8); TBuf8<256> str(KCompare8_2), + buf.CompareC(str)); + +DEFINE_EXTRA_BENCHMARK(TDesC8_CompareF, + TBuf8<256> buf(KCompare8); TBuf8<256> str(KCompare8_2), + buf.CompareF(str)); + +DEFINE_EXTRA_BENCHMARK(TDesC8_Match, + TBuf8<256> buf(KCompare8); TBuf8<256> str(KMatch8), + buf.Match(str)); + +DEFINE_EXTRA_BENCHMARK(TDesC8_MatchF, + TBuf8<256> buf(KCompare8); TBuf8<256> str(KMatch8_2), + buf.MatchF(str)); + +DEFINE_EXTRA_BENCHMARK(TDes8_Append_TChar, + TBuf8<256> buf(KCompare8), + buf.SetLength(32); buf.Append(KChar)); + +DEFINE_EXTRA_BENCHMARK(TDes8_Append_TDesC8, + TBuf8<256> buf(KCompare8), + buf.SetLength(32); buf.Append(KString8)); + +DEFINE_EXTRA_BENCHMARK(TDes8_Append_pTUint8, + TBuf8<256> buf(KCompare8), + buf.SetLength(32); buf.Append(KCharData8, 32)); + +DEFINE_EXTRA_BENCHMARK(TDes8_Copy_TDesC8, + TBuf8<256> buf, + buf.Copy(KString8)); + +DEFINE_EXTRA_BENCHMARK(TDes8_Copy_pTUint8, + TBuf8<256> buf, + buf.Copy(KCharData8)); + +DEFINE_EXTRA_BENCHMARK(TDes8_Copy_pTUint8_TInt, + TBuf8<256> buf, + buf.Copy(KCharData8, 32)); + +DEFINE_EXTRA_BENCHMARK(TDes8_Fill, + TBuf8<256> buf(KCompare8), + buf.Fill(KChar)); + +DEFINE_EXTRA_BENCHMARK(TDes8_FillZ, + TBuf8<256> buf(KCompare8), + buf.FillZ()); + +DEFINE_EXTRA_BENCHMARK(TDes8_LeftTPtr, + TBuf8<256> buf(KCompare8), + buf.LeftTPtr(10)); + +DEFINE_EXTRA_BENCHMARK(TDes8_RightTPtr, + TBuf8<256> buf(KCompare8), + buf.RightTPtr(10)); + +DEFINE_EXTRA_BENCHMARK(TDes8_MidTPtr, + TBuf8<256> buf(KCompare8), + buf.MidTPtr(10)); + +DEFINE_EXTRA_BENCHMARK(TDes8_PtrZ, + TBuf8<256> buf(KCompare8), + buf.PtrZ()); + +DEFINE_EXTRA_BENCHMARK(TDes8_SetLength, + TBuf8<256> buf(KCompare8), + buf.SetLength(10)); + +DEFINE_EXTRA_BENCHMARK(TDes8_SetMax, + TBuf8<256> buf(KCompare8), + buf.SetMax()); + +DEFINE_EXTRA_BENCHMARK(TDes8_ZeroTerminate, + TBuf8<256> buf(KCompare8), + buf.ZeroTerminate()); + +DEFINE_EXTRA_BENCHMARK(TDesC8_AtC, + , + KString8[10]); + +DEFINE_EXTRA_BENCHMARK(TDesC8_Left, + , + KString8.Left(10)); + +DEFINE_EXTRA_BENCHMARK(TDesC8_Right, + , + KString8.Right(10)); + +DEFINE_EXTRA_BENCHMARK(TDesC8_Mid, + , + KString8.Mid(10)); + +DEFINE_EXTRA_BENCHMARK(TDesC8_Locate, + , + KString8.Locate(KChar)); + +DEFINE_EXTRA_BENCHMARK(TDesC8_LocateReverse, + , + KString8.LocateReverse(KChar)); + +DEFINE_EXTRA_BENCHMARK(TDesC8_Ptr, + , + KString8.Ptr()); + +DEFINE_EXTRA_BENCHMARK(TPtr8_TPtr8, + TPtr8 p(NULL, 0), + new (&p) TPtr8(NULL, 0)); + +DEFINE_EXTRA_BENCHMARK(TPtr8_TPtr8_2, + TPtr8 p(NULL, 0), + new (&p) TPtr8(NULL, 0, 0)); + +DEFINE_EXTRA_BENCHMARK(TPtrC8_TPtrC8, + TPtrC8 p, + new (&p) TPtrC8()); + +DEFINE_EXTRA_BENCHMARK(TPtrC8_TPtrC8_2, + TPtrC8 p, + new (&p) TPtrC8(KString8)); + +DEFINE_EXTRA_BENCHMARK(TPtrC8_TPtrC8_3, + TPtrC8 p, + new (&p) TPtrC8(KCharData8)); + +DEFINE_EXTRA_BENCHMARK(TPtrC8_TPtrC8_4, + TPtrC8 p, + new (&p) TPtrC8(KCharData8, 32)); + +DEFINE_EXTRA_BENCHMARK(TBufBase8_TBufBase8_1, + TBuf8<256> b, + new (&b) TBuf8<256>()); + +DEFINE_EXTRA_BENCHMARK(TBufBase8_TBufBase8_2, + TBuf8<256> b, + new (&b) TBuf8<256>(32)); + +DEFINE_EXTRA_BENCHMARK(TBufBase8_TBufBase8_3, + TBuf8<256> b, + new (&b) TBuf8<256>(KCharData8)); + +DEFINE_EXTRA_BENCHMARK(TBufBase8_TBufBase8_4, + TBuf8<256> b, + new (&b) TBuf8<256>(KString8)); + +DEFINE_EXTRA_BENCHMARK(TBufCBase8_TBufBaseC8_1, + TBufC8<256> b, + new (&b) TBufC8<256>()); + +DEFINE_EXTRA_BENCHMARK(TBufCBase8_TBufBaseC8_2, + TBufC8<256> b, + new (&b) TBufC8<256>(KCharData8)); + +DEFINE_EXTRA_BENCHMARK(TBufCBase8_TBufBaseC8_3, + TBufC8<256> b, + new (&b) TBufC8<256>(KString8));