persistentstorage/sql/TEST/t_sqlperformance2.cpp
branchRCL_3
changeset 15 fcc16690f446
parent 0 08ec8eefde2f
--- a/persistentstorage/sql/TEST/t_sqlperformance2.cpp	Tue May 11 17:49:39 2010 +0300
+++ b/persistentstorage/sql/TEST/t_sqlperformance2.cpp	Tue May 25 14:35:19 2010 +0300
@@ -1,4 +1,4 @@
-// Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2008-2010 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"
@@ -16,6 +16,7 @@
 #include <e32test.h>
 #include <bautils.h>
 #include <sqldb.h>
+#include "t_sqlcmdlineutil.h"
 
 ///////////////////////////////////////////////////////////////////////////////////////
 
@@ -24,11 +25,14 @@
 TFileName		TheDbFileName;
 RFs				TheFs;
 
-TInt TheBlobSize = 1024 * 256;
+TBuf<200> 		TheTestTitle;
+TCmdLineParams 	TheCmdLineParams;
+TBuf8<200> 		TheSqlConfigString;
 
-TBuf<256>  TheCmd;
-TDriveName TheDriveName;
-TParse     TheParse;
+_LIT(KUtf8,  "UTF8 ");
+_LIT(KUtf16, "UTF16");
+
+TInt TheBlobSize = 1024 * 256;
 
 ///////////////////////////////////////////////////////////////////////////////////////
 
@@ -69,20 +73,16 @@
     {
     TInt err = TheFs.Connect();
     TEST2(err, KErrNone);
-    //Get the drive number from the database file name
-	err = TheParse.Set(TheDbFileName, NULL, NULL);
-	TEST2(err, KErrNone);
-	TPtrC driveName = TheParse.Drive();
-	TEST(driveName.Length() > 0);
-	TInt driveNumber = -1;
-	err = RFs::CharToDrive(driveName[0], driveNumber);
+    //
+    TInt driveNumber = -1;
+	err = RFs::CharToDrive(TheCmdLineParams.iDriveName[0], driveNumber);
 	TEST2(err, KErrNone);
 	TDriveNumber driveNo = static_cast <TDriveNumber> (driveNumber);
 	TDriveInfo driveInfo;
 	err = TheFs.Drive(driveInfo, driveNo);
 	TEST2(err, KErrNone);
     //Create the test directory
-	err = TheFs.MkDir(TheParse.DriveAndPath());
+	err = TheFs.MkDirAll(TheDbFileName);
 	TEST(err == KErrNone || err == KErrAlreadyExists);
     //Print drive info and the database name 
 	_LIT(KType1, "Not present");
@@ -130,7 +130,7 @@
 void CreateTestDb()
 	{
 	(void)RSqlDatabase::Delete(TheDbFileName);
-	TInt err = TheDb.Create(TheDbFileName);
+	TInt err = TheDb.Create(TheDbFileName, &TheSqlConfigString);
 	TEST2(err, KErrNone);
 	err = TheDb.Exec(_L8("CREATE TABLE A(B BLOB)"));
 	TEST2(err, 1);
@@ -531,7 +531,7 @@
 	(void)RSqlDatabase::Delete(TheDbFileName);	
 	}
 
-void DoReadBlobIncrL(TDes8& aDes)
+void DoReadBlobIncrL(TDes8& aDes, TInt aMaxLength)
 	{
 	TTime t1, t2, t3, t4;
 	
@@ -547,7 +547,7 @@
 	openTime = t2.MicroSecondsFrom(t1);
 		
 	t3.HomeTime();
-	strm.ReadL(aDes);
+	strm.ReadL(aDes, aMaxLength);
 	t4.HomeTime();
 
 	readTime = t4.MicroSecondsFrom(t3);
@@ -563,7 +563,7 @@
 	TEST(data != NULL);
 	TPtr8 dataptr = data->Des();
 	
-	TRAPD(err, DoReadBlobIncrL(dataptr));
+	TRAPD(err, DoReadBlobIncrL(dataptr, TheBlobSize));
 	TEST2(err, KErrNone);
 	TEST2(dataptr.Length(), TheBlobSize);
 	
@@ -661,7 +661,7 @@
 	t5.HomeTime();
 	err = strm.ColumnBinary(stmt, 0);
 	TEST2(err, KErrNone);
-	TRAP(err, strm.ReadL(dataptr));
+	TRAP(err, strm.ReadL(dataptr, TheBlobSize));
 	t6.HomeTime();
 	TEST2(err, KErrNone);
 	TEST2(dataptr.Length(), TheBlobSize);
@@ -746,6 +746,7 @@
 	const TInt KBufLen = 32768; // 32Kb
 	HBufC8* buf = HBufC8::NewL(KBufLen);
 	TPtr8 dataPtr =	buf->Des();
+	dataPtr.SetLength(KBufLen);
 	dataPtr.Fill('A', KBufLen);	
 	
 	CreateTestDb();
@@ -812,6 +813,7 @@
 	const TInt KBufLen = 32768; // 32Kb
 	HBufC8* buf = HBufC8::NewL(KBufLen);
 	TPtr8 dataPtr =	buf->Des();
+	dataPtr.SetLength(KBufLen);
 	dataPtr.Fill('A', KBufLen);	
 	
 	CreateTestDb();
@@ -889,6 +891,7 @@
 	TInt bufLen = TheBlobSize; 
 	HBufC8* buf = HBufC8::NewL(bufLen);
 	TPtr8 dataPtr =	buf->Des();
+	dataPtr.SetLength(bufLen);
 	dataPtr.Fill('Z', bufLen);	
 	
 	CreateTestDb();
@@ -953,6 +956,7 @@
 	TInt bufLen = TheBlobSize;
 	HBufC8* buf = HBufC8::NewL(bufLen);
 	TPtr8 dataPtr =	buf->Des();
+	dataPtr.SetLength(bufLen);
 	dataPtr.Fill('Z', bufLen);	
 	
 	CreateTestDb();
@@ -1024,6 +1028,7 @@
 	TInt bufLen = TheBlobSize; 
 	HBufC8* buf = HBufC8::NewL(bufLen);
 	TPtr8 dataPtr =	buf->Des();
+	dataPtr.SetLength(bufLen);
 	dataPtr.Fill('A', bufLen);	
 	
 	CreateTestDb();
@@ -1104,10 +1109,14 @@
 
 void DoTests()
 	{
-	TheTest.Start(_L("@SYMTestCaseID:SYSLIB-SQL-UT-4084 SQL, BLOB write, performance tests\r\n"));
+	TheTestTitle.Format(_L("@SYMTestCaseID:SYSLIB-SQL-UT-4084 SQL, BLOB write, performance tests, encoding: \"%S\", page size: %d\r\n"), 
+			TheCmdLineParams.iDbEncoding == TCmdLineParams::EDbUtf16 ? &KUtf16 : &KUtf8, TheCmdLineParams.iPageSize);
+	TheTest.Start(TheTestTitle);
 	BlobWriteTest();
 	
-	TheTest.Next(_L("@SYMTestCaseID:SYSLIB-SQL-UT-4085 SQL, BLOB read, performance tests\r\n"));
+	TheTestTitle.Format(_L("@SYMTestCaseID:SYSLIB-SQL-UT-4085 SQL, BLOB read, performance tests, encoding: \"%S\", page size: %d\r\n"), 
+			TheCmdLineParams.iDbEncoding == TCmdLineParams::EDbUtf16 ? &KUtf16 : &KUtf8, TheCmdLineParams.iPageSize);
+	TheTest.Next(TheTestTitle);
 	BlobReadTest();
 
 	TheTest.Printf(_L("==================================================================\r\n"));
@@ -1117,33 +1126,41 @@
 	
 	TheBlobSize = 1024 * 1024 + 128 * 1024;//1.125Mb 
 
-	TheTest.Next(_L("@SYMTestCaseID:SYSLIB-SQL-UT-4115 SQL, sequential BLOB writes, performance tests\r\n"));
+	TheTestTitle.Format(_L("@SYMTestCaseID:SYSLIB-SQL-UT-4115 SQL, sequential BLOB writes, performance tests, encoding: \"%S\", page size: %d\r\n"), 
+			TheCmdLineParams.iDbEncoding == TCmdLineParams::EDbUtf16 ? &KUtf16 : &KUtf8, TheCmdLineParams.iPageSize);
+	TheTest.Next(TheTestTitle);
 	TRAPD(err, SequentialWriteTestL());
 	TEST2(err, KErrNone);
 	
-	TheTest.Next(_L("@SYMTestCaseID:SYSLIB-SQL-UT-4116 SQL, transaction sequential BLOB writes, performance tests\r\n"));
+	TheTestTitle.Format(_L("@SYMTestCaseID:SYSLIB-SQL-UT-4116 SQL, transaction sequential BLOB writes, performance tests, encoding: \"%S\", page size: %d\r\n"), 
+			TheCmdLineParams.iDbEncoding == TCmdLineParams::EDbUtf16 ? &KUtf16 : &KUtf8, TheCmdLineParams.iPageSize);
+	TheTest.Next(TheTestTitle);
 	TRAP(err, TransSequentialWriteTestL());
 	TEST2(err, KErrNone);
 		
 	TheBlobSize = 256 * 1024 ; // 256Kb
 		
-	TheTest.Next(_L("@SYMTestCaseID:SYSLIB-SQL-UT-4117 SQL, whole BLOB write, performance tests\r\n"));
+	TheTestTitle.Format(_L("@SYMTestCaseID:SYSLIB-SQL-UT-4117 SQL, whole BLOB write, performance tests, encoding: \"%S\", page size: %d\r\n"), 
+			TheCmdLineParams.iDbEncoding == TCmdLineParams::EDbUtf16 ? &KUtf16 : &KUtf8, TheCmdLineParams.iPageSize);
+	TheTest.Next(TheTestTitle);
 	TRAP(err, WholeWriteTestL());
 	TEST2(err, KErrNone);
 	
-	TheTest.Next(_L("@SYMTestCaseID:SYSLIB-SQL-UT-4118 SQL, transaction whole BLOB write, performance tests\r\n"));
+	TheTestTitle.Format(_L("@SYMTestCaseID:SYSLIB-SQL-UT-4118 SQL, transaction whole BLOB write, performance tests, encoding: \"%S\", page size: %d\r\n"), 
+			TheCmdLineParams.iDbEncoding == TCmdLineParams::EDbUtf16 ? &KUtf16 : &KUtf8, TheCmdLineParams.iPageSize);
+	TheTest.Next(TheTestTitle);
 	TRAP(err, TransWholeWriteTestL());
 	TEST2(err, KErrNone);
 	
-	TheTest.Next(_L("@SYMTestCaseID:SYSLIB-SQL-UT-4119 SQL, whole BLOB read, performance tests\r\n"));
+	TheTestTitle.Format(_L("@SYMTestCaseID:SYSLIB-SQL-UT-4119 SQL, whole BLOB read, performance tests, encoding: \"%S\", page size: %d\r\n"), 
+			TheCmdLineParams.iDbEncoding == TCmdLineParams::EDbUtf16 ? &KUtf16 : &KUtf8, TheCmdLineParams.iPageSize);
+	TheTest.Next(TheTestTitle);
 	TRAP(err, WholeReadTestL());
 	TEST2(err, KErrNone);
 	
 #endif//!defined __WINS__ && !defined __WINSCW__ && !defined _DEBUG
 	}
 
-//Usage: "t_sqlperformance2 [<drive letter>:]"
-
 TInt E32Main()
 	{
 	TheTest.Title();
@@ -1153,17 +1170,11 @@
 
 	__UHEAP_MARK;
 
-	User::CommandLine(TheCmd);
-	TheCmd.TrimAll();
-	if(TheCmd.Length() > 0)
-		{
-		TheDriveName.Copy(TheCmd);
-		}
+	GetCmdLineParamsAndSqlConfigString(TheTest, _L("t_sqlperformance2"), TheCmdLineParams, TheSqlConfigString);
+	_LIT(KDbName, "c:\\test\\t_sqlperformance2.db");
+	PrepareDbName(KDbName, TheCmdLineParams.iDriveName, TheDbFileName);
 
-	_LIT(KDbName, "c:\\test\\t_sqlperformance2.db");
-	TheParse.Set(TheDriveName, &KDbName, 0);
-	const TDesC& dbFilePath = TheParse.FullName();
-	TheDbFileName.Copy(dbFilePath);
+	TheTest.Printf(_L("==Databases: %S\r\n"), &TheDbFileName); 
 	
 	TestEnvInit();
 	DoTests();