author | hgs |
Tue, 19 Oct 2010 16:26:13 +0100 | |
changeset 55 | 44f437012c90 |
parent 0 | 08ec8eefde2f |
permissions | -rw-r--r-- |
55 | 1 |
// Copyright (c) 1998-2010 Nokia Corporation and/or its subsidiary(-ies). |
0
08ec8eefde2f
Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
2 |
// All rights reserved. |
08ec8eefde2f
Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
3 |
// This component and the accompanying materials are made available |
08ec8eefde2f
Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
4 |
// under the terms of "Eclipse Public License v1.0" |
08ec8eefde2f
Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
5 |
// which accompanies this distribution, and is available |
08ec8eefde2f
Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
6 |
// at the URL "http://www.eclipse.org/legal/epl-v10.html". |
08ec8eefde2f
Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
7 |
// |
08ec8eefde2f
Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
8 |
// Initial Contributors: |
08ec8eefde2f
Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
9 |
// Nokia Corporation - initial contribution. |
08ec8eefde2f
Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
10 |
// |
08ec8eefde2f
Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
11 |
// Contributors: |
08ec8eefde2f
Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
12 |
// |
08ec8eefde2f
Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
13 |
// Description: |
08ec8eefde2f
Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
14 |
// |
08ec8eefde2f
Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
15 |
|
08ec8eefde2f
Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
16 |
#include <d32dbms.h> |
08ec8eefde2f
Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
17 |
#include <s32file.h> |
08ec8eefde2f
Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
18 |
#include <e32test.h> |
08ec8eefde2f
Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
19 |
#include <e32math.h> |
08ec8eefde2f
Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
20 |
#include <e32svr.h> |
08ec8eefde2f
Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
21 |
#include <hal.h> |
08ec8eefde2f
Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
22 |
#include <d32dbmsconstants.h> |
55 | 23 |
#include "t_dbcmdlineutil.h" |
0
08ec8eefde2f
Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
24 |
|
55 | 25 |
TCmdLineParams TheCmdLineParams; |
26 |
TFileName TheDbFileName; |
|
27 |
RFile TheLogFile; |
|
28 |
RTest TheTest(_L("t_dbbench")); |
|
29 |
RDbNamedDatabase TheDatabase; |
|
30 |
RDbView TheView; |
|
31 |
RFs TheFs; |
|
0
08ec8eefde2f
Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
32 |
|
55 | 33 |
TBuf<250> TheLogLine; |
34 |
TBuf8<250> TheLogLine8; |
|
0
08ec8eefde2f
Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
35 |
|
08ec8eefde2f
Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
36 |
const TPtrC KTableName=_S("Test"); |
08ec8eefde2f
Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
37 |
const TPtrC KColCluster=_S("Cluster"); |
08ec8eefde2f
Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
38 |
const TPtrC KColXcluster=_S("xCluster"); |
08ec8eefde2f
Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
39 |
const TPtrC KColRandom=_S("Random"); |
08ec8eefde2f
Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
40 |
const TPtrC KColXrandom=_S("xRandom"); |
55 | 41 |
const TInt KRecords=2000; |
0
08ec8eefde2f
Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
42 |
|
08ec8eefde2f
Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
43 |
struct TTest |
08ec8eefde2f
Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
44 |
{ |
08ec8eefde2f
Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
45 |
const TText* iName; |
08ec8eefde2f
Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
46 |
const TText* iQuery; |
08ec8eefde2f
Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
47 |
}; |
55 | 48 |
|
0
08ec8eefde2f
Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
49 |
const TTest KQuery[]= |
08ec8eefde2f
Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
50 |
{ |
08ec8eefde2f
Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
51 |
{_S("project"),_S("select cluster,xcluster,random,xrandom from test")}, |
08ec8eefde2f
Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
52 |
{_S("restrict 1"),_S("select * from test where cluster=0")}, |
08ec8eefde2f
Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
53 |
{_S("restrict 2"),_S("select * from test where xrandom=0")}, |
08ec8eefde2f
Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
54 |
{_S("restrict 3"),_S("select * from test where xcluster<500 and xrandom <500")}, |
08ec8eefde2f
Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
55 |
{_S("order 1"),_S("select * from test order by xrandom")}, |
08ec8eefde2f
Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
56 |
{_S("order 2"),_S("select * from test order by cluster")}, |
08ec8eefde2f
Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
57 |
{_S("all 1"),_S("select * from test where random<500 order by xrandom")}, |
08ec8eefde2f
Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
58 |
{_S("all 2"),_S("select * from test where xcluster<500 order by xrandom")}, |
08ec8eefde2f
Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
59 |
{_S("all 3"),_S("select * from test where xcluster<500 order by xcluster")}, |
08ec8eefde2f
Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
60 |
{_S("all 4"),_S("select * from test where xcluster<500 and xrandom<200 order by xcluster")} |
08ec8eefde2f
Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
61 |
}; |
08ec8eefde2f
Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
62 |
|
55 | 63 |
/////////////////////////////////////////////////////////////////////////////////////// |
64 |
||
65 |
void TestEnvDestroy() |
|
66 |
{ |
|
67 |
TheView.Close(); |
|
68 |
TheDatabase.Close(); |
|
69 |
if(TheCmdLineParams.iLogFileName.Length() > 0) |
|
70 |
{ |
|
71 |
(void)TheLogFile.Flush(); |
|
72 |
TheLogFile.Close(); |
|
73 |
} |
|
74 |
//T_BENCH.DB cannot be deleted here, because it is used by T_DBCOMP test! |
|
75 |
TheFs.Close(); |
|
76 |
} |
|
77 |
||
78 |
/////////////////////////////////////////////////////////////////////////////////////// |
|
79 |
//Test macros and functions |
|
80 |
void Check1(TInt aValue, TInt aLine) |
|
81 |
{ |
|
82 |
if(!aValue) |
|
83 |
{ |
|
84 |
TestEnvDestroy(); |
|
85 |
TheTest.Printf(_L("*** Line %d. Expression evaluated to false\r\n"), aLine); |
|
86 |
TheTest(EFalse, aLine); |
|
87 |
} |
|
88 |
} |
|
89 |
void Check2(TInt aValue, TInt aExpected, TInt aLine) |
|
90 |
{ |
|
91 |
if(aValue != aExpected) |
|
92 |
{ |
|
93 |
TestEnvDestroy(); |
|
94 |
TheTest.Printf(_L("*** Line %d, Expected error: %d, got: %d\r\n"), aLine, aExpected, aValue); |
|
95 |
TheTest(EFalse, aLine); |
|
96 |
} |
|
97 |
} |
|
98 |
#define TEST(arg) ::Check1((arg), __LINE__) |
|
99 |
#define TEST2(aValue, aExpected) ::Check2(aValue, aExpected, __LINE__) |
|
100 |
||
101 |
/////////////////////////////////////////////////////////////////////////////////////// |
|
102 |
||
103 |
TInt FastCounterFrequency() |
|
104 |
{ |
|
105 |
static TInt freq = 0; |
|
106 |
if(freq == 0) |
|
107 |
{ |
|
108 |
TEST2(HAL::Get(HAL::EFastCounterFrequency, freq), KErrNone); |
|
109 |
} |
|
110 |
return freq; |
|
111 |
} |
|
112 |
||
113 |
//Prints the test case title and execution time in microseconds |
|
114 |
void PrintResult(const TDesC& aTitle, TUint32 aStartTicks, TUint32 aEndTicks, TInt aIterations = 0) |
|
115 |
{ |
|
116 |
TInt freq = FastCounterFrequency(); |
|
117 |
TInt64 diffTicks = (TInt64)aEndTicks - (TInt64)aStartTicks; |
|
118 |
if(diffTicks < 0) |
|
119 |
{ |
|
120 |
diffTicks = KMaxTUint32 + diffTicks + 1; |
|
121 |
} |
|
122 |
const TInt KMicroSecIn1Sec = 1000000; |
|
123 |
TInt32 us = (diffTicks * KMicroSecIn1Sec) / freq; |
|
124 |
if(aIterations > 0) |
|
125 |
{ |
|
126 |
us /= aIterations; |
|
127 |
} |
|
128 |
TheTest.Printf(_L("%S: %d us\r\n"), &aTitle, us); |
|
129 |
if(TheCmdLineParams.iLogFileName.Length() > 0) |
|
130 |
{ |
|
131 |
TheLogLine.Format(_L("%S¬%d¬us\r\n"), &aTitle, us); |
|
132 |
TheLogLine8.Copy(TheLogLine); |
|
133 |
(void)TheLogFile.Write(TheLogLine8); |
|
134 |
} |
|
135 |
} |
|
136 |
||
137 |
//Calculates time in microseconds |
|
138 |
TInt CalcTime(TUint32 aStartTicks, TUint32 aEndTicks) |
|
139 |
{ |
|
140 |
TInt freq = FastCounterFrequency(); |
|
141 |
TInt64 diffTicks = (TInt64)aEndTicks - (TInt64)aStartTicks; |
|
142 |
if(diffTicks < 0) |
|
143 |
{ |
|
144 |
diffTicks = KMaxTUint32 + diffTicks + 1; |
|
145 |
} |
|
146 |
const TInt KMicroSecIn1Sec = 1000000; |
|
147 |
TInt32 us = (diffTicks * KMicroSecIn1Sec) / freq; |
|
148 |
return us; |
|
149 |
} |
|
150 |
||
151 |
/////////////////////////////////////////////////////////////////////////////////////// |
|
152 |
||
153 |
/** |
|
154 |
Create the database: keep the code 050 compatible |
|
155 |
||
156 |
@SYMTestCaseID SYSLIB-DBMS-CT-0577 |
|
157 |
@SYMTestCaseDesc Benchmark Tests. Creation of a local Database test |
|
158 |
@SYMTestPriority Medium |
|
159 |
@SYMTestActions Attempt to test RDbNamedDatabase::CreateTable(),RDbNamedDatabase::CreateIndex(), |
|
160 |
RDbNamedDatabase::Compact(),RDbView::Prepare() functions |
|
161 |
@SYMTestExpectedResults Test must not fail |
|
162 |
@SYMREQ REQ0000 |
|
163 |
*/ |
|
164 |
void CreateDatabaseL() |
|
165 |
{ |
|
166 |
TInt err = TheDatabase.Replace(TheFs, TheDbFileName); |
|
167 |
TEST2(err, KErrNone); |
|
168 |
||
169 |
CDbColSet* set = CDbColSet::NewLC(); |
|
170 |
TDbCol col(KColCluster,EDbColInt32); |
|
171 |
col.iAttributes=col.ENotNull; |
|
172 |
set->AddL(col); |
|
173 |
col.iName=KColXcluster; |
|
174 |
set->AddL(col); |
|
175 |
col.iName=KColRandom; |
|
176 |
set->AddL(col); |
|
177 |
col.iName=KColXrandom; |
|
178 |
set->AddL(col); |
|
179 |
||
180 |
err = TheDatabase.CreateTable(KTableName, *set); |
|
181 |
TEST2(err, KErrNone); |
|
182 |
CleanupStack::PopAndDestroy(set); |
|
183 |
||
184 |
TUint32 ticksStart = User::FastCounter(); |
|
185 |
err = TheView.Prepare(TheDatabase,_L("select * from test"),TheView.EInsertOnly); |
|
186 |
TEST2(err, KErrNone); |
|
187 |
TheDatabase.Begin(); |
|
188 |
TInt jj=0; |
|
189 |
for (TInt ii=0;ii<KRecords;++ii) |
|
190 |
{ |
|
191 |
TheView.InsertL(); |
|
192 |
jj=(jj+23); |
|
193 |
if (jj>=KRecords) |
|
194 |
jj-=KRecords; |
|
195 |
TheView.SetColL(1,ii); |
|
196 |
TheView.SetColL(2,ii); |
|
197 |
TheView.SetColL(3,jj); |
|
198 |
TheView.SetColL(4,jj); |
|
199 |
TheView.PutL(); |
|
200 |
} |
|
201 |
err = TheDatabase.Commit(); |
|
202 |
TEST2(err, KErrNone); |
|
203 |
TheView.Close(); |
|
204 |
TUint32 ticksEnd = User::FastCounter(); |
|
205 |
PrintResult(_L("Build table"), ticksStart, ticksEnd); |
|
206 |
||
207 |
ticksStart = User::FastCounter(); |
|
208 |
CDbKey* key = CDbKey::NewLC(); |
|
209 |
key->AddL(KColXcluster); |
|
210 |
key->MakeUnique(); |
|
211 |
err = TheDatabase.CreateIndex(KColXcluster,KTableName,*key); |
|
212 |
TEST2(err, KErrNone); |
|
213 |
ticksEnd = User::FastCounter(); |
|
214 |
PrintResult(_L("Cluster index"), ticksStart, ticksEnd); |
|
215 |
||
216 |
ticksStart = User::FastCounter(); |
|
217 |
key->Clear(); |
|
218 |
key->AddL(KColXrandom); |
|
219 |
err = TheDatabase.CreateIndex(KColXrandom,KTableName,*key); |
|
220 |
TEST2(err, KErrNone); |
|
221 |
CleanupStack::PopAndDestroy(key); |
|
222 |
ticksEnd = User::FastCounter(); |
|
223 |
PrintResult(_L("Random index"), ticksStart, ticksEnd); |
|
224 |
||
225 |
ticksStart = User::FastCounter(); |
|
226 |
err = TheDatabase.Compact(); |
|
227 |
ticksEnd = User::FastCounter(); |
|
228 |
PrintResult(_L("Compact"), ticksStart, ticksEnd); |
|
229 |
TEST2(err, KErrNone); |
|
230 |
} |
|
231 |
||
232 |
void Evaluate(const TDesC& aTitle, const TDesC& aSql) |
|
233 |
{ |
|
234 |
TInt m = 1; |
|
235 |
for(;;) |
|
236 |
{ |
|
237 |
TUint32 ticksStart = User::FastCounter(); |
|
238 |
for(TInt i=0; i<m; ++i) |
|
239 |
{ |
|
240 |
TInt err = TheView.Prepare(TheDatabase,aSql,KDbUnlimitedWindow,TheView.EReadOnly); |
|
241 |
TEST2(err, KErrNone); |
|
242 |
err = TheView.EvaluateAll(); |
|
243 |
TEST2(err, KErrNone); |
|
244 |
TheView.Close(); |
|
245 |
} |
|
246 |
TUint32 ticksEnd = User::FastCounter(); |
|
247 |
TInt us = CalcTime(ticksStart, ticksEnd); |
|
248 |
if(us > 100000) |
|
249 |
{ |
|
250 |
PrintResult(aTitle, ticksStart, ticksEnd, m); |
|
251 |
return; |
|
252 |
} |
|
253 |
m *= 4; |
|
254 |
} |
|
255 |
} |
|
256 |
||
0
08ec8eefde2f
Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
257 |
/** |
08ec8eefde2f
Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
258 |
@SYMTestCaseID SYSLIB-DBMS-CT-0578 |
08ec8eefde2f
Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
259 |
@SYMTestCaseDesc Benchmark Test.Querying a local Database Test |
08ec8eefde2f
Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
260 |
@SYMTestPriority Medium |
08ec8eefde2f
Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
261 |
@SYMTestActions Evaluate SELECT queries on the created database |
08ec8eefde2f
Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
262 |
@SYMTestExpectedResults Test must not fail |
08ec8eefde2f
Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
263 |
@SYMREQ REQ0000 |
08ec8eefde2f
Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
264 |
*/ |
55 | 265 |
void Queries() |
0
08ec8eefde2f
Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
266 |
{ |
55 | 267 |
for(TUint ii=0;ii<sizeof(KQuery)/sizeof(KQuery[0]);++ii) |
0
08ec8eefde2f
Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
268 |
{ |
55 | 269 |
Evaluate(TPtrC(KQuery[ii].iName), TPtrC(KQuery[ii].iQuery)); |
0
08ec8eefde2f
Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
270 |
} |
08ec8eefde2f
Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
271 |
} |
08ec8eefde2f
Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
272 |
|
55 | 273 |
void BenchTestL() |
0
08ec8eefde2f
Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
274 |
{ |
55 | 275 |
TheTest.Start(_L("@SYMTestCaseID:SYSLIB-DBMS-CT-0577 RDbNamedDatabase performance test")); |
0
08ec8eefde2f
Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
276 |
CreateDatabaseL(); |
55 | 277 |
|
278 |
TheTest.Next(_L(" @SYMTestCaseID:SYSLIB-DBMS-CT-0578 SQL queries performance test")); |
|
0
08ec8eefde2f
Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
279 |
Queries(); |
55 | 280 |
|
281 |
TheDatabase.Close(); |
|
0
08ec8eefde2f
Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
282 |
} |
08ec8eefde2f
Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
283 |
|
55 | 284 |
void TestEnvInit() |
0
08ec8eefde2f
Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
285 |
{ |
55 | 286 |
TInt err = TheFs.Connect(); |
287 |
TEST2(err, KErrNone); |
|
288 |
||
289 |
err = TheFs.MkDirAll(TheDbFileName); |
|
290 |
TEST(err == KErrNone || err == KErrAlreadyExists); |
|
291 |
||
292 |
if(TheCmdLineParams.iLogFileName.Length() > 0) |
|
0
08ec8eefde2f
Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
293 |
{ |
55 | 294 |
err = TheLogFile.Replace(TheFs, TheCmdLineParams.iLogFileName, EFileRead | EFileWrite); |
295 |
TEST2(err, KErrNone); |
|
296 |
LogConfig(TheLogFile, TheCmdLineParams); |
|
0
08ec8eefde2f
Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
297 |
} |
55 | 298 |
} |
299 |
||
300 |
TInt E32Main() |
|
301 |
{ |
|
302 |
TheTest.Title(); |
|
303 |
||
304 |
CTrapCleanup* tc = CTrapCleanup::New(); |
|
305 |
TheTest(tc != NULL); |
|
0
08ec8eefde2f
Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
306 |
|
55 | 307 |
GetCmdLineParams(TheTest, _L("t_dbbench"), TheCmdLineParams); |
308 |
_LIT(KDbName, "c:\\dbms-tst\\t_bench.db"); |
|
309 |
PrepareDbName(KDbName, TheCmdLineParams.iDriveName, TheDbFileName); |
|
310 |
TheTest.Printf(_L("==Database: %S\r\n"), &TheDbFileName); |
|
0
08ec8eefde2f
Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
311 |
|
08ec8eefde2f
Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
312 |
__UHEAP_MARK; |
55 | 313 |
|
314 |
TestEnvInit(); |
|
315 |
TRAPD(err, BenchTestL()); |
|
316 |
TEST2(err, KErrNone); |
|
317 |
TestEnvDestroy(); |
|
318 |
||
0
08ec8eefde2f
Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
319 |
__UHEAP_MARKEND; |
08ec8eefde2f
Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
320 |
|
55 | 321 |
User::Heap().Check(); |
322 |
||
323 |
TheTest.End(); |
|
324 |
TheTest.Close(); |
|
325 |
||
326 |
delete tc; |
|
327 |
||
328 |
return KErrNone; |
|
0
08ec8eefde2f
Revision: 201003
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
329 |
} |