17 #include <bautils.h> |
17 #include <bautils.h> |
18 #include "SqlSrvMain.h" |
18 #include "SqlSrvMain.h" |
19 #include "SqlSrvStartup.h" |
19 #include "SqlSrvStartup.h" |
20 #include "SqlSrvUtil.h" |
20 #include "SqlSrvUtil.h" |
21 |
21 |
|
22 _LIT(KCfgDb1ConfigFilePath, "c:\\private\\10281e17\\cfg[10281E17]t_sqlstartup1.db.02"); // config file version 2 for t_sqlstartup1.db |
|
23 _LIT(KCfgDb2ConfigFilePath, "c:\\private\\10281e17\\cfg[10281E17]t_sqlstartup2.db.05"); // config file version 5 for t_sqlstartup2.db |
|
24 |
22 /////////////////////////////////////////////////////////////////////////////////////// |
25 /////////////////////////////////////////////////////////////////////////////////////// |
23 |
26 |
24 RTest TheTest(_L("t_sqlstartup test")); |
27 RTest TheTest(_L("t_sqlstartup test")); |
|
28 |
|
29 RFs TheFs; |
25 |
30 |
26 static TInt TheProcessHandleCount = 0; |
31 static TInt TheProcessHandleCount = 0; |
27 static TInt TheThreadHandleCount = 0; |
32 static TInt TheThreadHandleCount = 0; |
28 static TInt TheAllocatedCellsCount = 0; |
33 static TInt TheAllocatedCellsCount = 0; |
29 |
34 |
114 //////////////////////////////////////////////////////////////////////////////////////////////////////////// |
122 //////////////////////////////////////////////////////////////////////////////////////////////////////////// |
115 |
123 |
116 static void CreateAndDestroySqlServerL() |
124 static void CreateAndDestroySqlServerL() |
117 { |
125 { |
118 CSqlServer* server = CSqlServer::NewLC(); |
126 CSqlServer* server = CSqlServer::NewLC(); |
|
127 //Drive C: to the RSqlDriveSpaceCol object. This will allow "reserve drive space" construct/destroy code to be tested. |
|
128 RSqlDriveSpaceCol& drvcol = server->DriveSpaceCol(); |
|
129 drvcol.AddL(EDriveC); |
119 CleanupStack::PopAndDestroy(server); |
130 CleanupStack::PopAndDestroy(server); |
120 } |
131 } |
121 |
132 |
122 static CSqlServer* CreateSqlServerL() |
133 static CSqlServer* CreateSqlServerL() |
123 { |
134 { |
316 name3[2] = TChar(0x0000); |
327 name3[2] = TChar(0x0000); |
317 rc = UTF16ZToUTF8Z(name3, bufout); |
328 rc = UTF16ZToUTF8Z(name3, bufout); |
318 TEST(!rc); |
329 TEST(!rc); |
319 } |
330 } |
320 |
331 |
|
332 /** |
|
333 @SYMTestCaseID PDS-SQL-UT-4175 |
|
334 @SYMTestCaseDesc Test for DEF144937: SQL, SQL server, the code coverage can be improved in some areas. |
|
335 @SYMTestPriority High |
|
336 @SYMTestActions The test creates a SQL server instance and performs some basic operations with |
|
337 RSqlDriveSpaceCol object owned by the server, such as: adding a new drive, |
|
338 getting an access to the reserved drive space, releasing the access. |
|
339 @SYMTestExpectedResults Test must not fail |
|
340 @SYMDEF DEF144937 |
|
341 */ |
|
342 void ReserveDriveSpaceTest() |
|
343 { |
|
344 CSqlServer* srv = NULL; |
|
345 TRAPD(err, srv = CreateSqlServerL()); |
|
346 TEST2(err, KErrNone); |
|
347 |
|
348 RSqlDriveSpaceCol& drvcol = srv->DriveSpaceCol(); |
|
349 TRAP(err, drvcol.AddL(EDriveC)); |
|
350 TEST2(err, KErrNone); |
|
351 |
|
352 CSqlDriveSpace* drvspace = drvcol.Find(EDriveZ); |
|
353 TEST(!drvspace); |
|
354 drvspace = drvcol.Find(EDriveC); |
|
355 TEST(drvspace != NULL); |
|
356 |
|
357 TDriveNumber drvnum = drvspace->Drive(); |
|
358 TEST2(drvnum, EDriveC); |
|
359 //It is safe to call GetAccessL() more than once. The access is reference counted. |
|
360 TRAP(err, drvspace->GetAccessL()); |
|
361 TEST2(err, KErrNone); |
|
362 TRAP(err, drvspace->GetAccessL()); |
|
363 TEST2(err, KErrNone); |
|
364 //It is safe if ReleaseAccess() call count do not match GetAccessL() call count. |
|
365 drvspace->ReleaseAccess(); |
|
366 drvspace->ReleaseAccess(); |
|
367 drvspace->ReleaseAccess(); |
|
368 // |
|
369 drvcol.ResetAndDestroy(); |
|
370 delete srv; |
|
371 } |
|
372 |
|
373 void DoCreateCfgFile(const TDesC& aFileName, const TDesC8& aData) |
|
374 { |
|
375 RFile file; |
|
376 TInt err = file.Create(TheFs, aFileName, EFileRead | EFileWrite); |
|
377 TEST2(err, KErrNone); |
|
378 err = file.Write(aData); |
|
379 file.Close(); |
|
380 TEST2(err, KErrNone); |
|
381 } |
|
382 |
321 void DoTests() |
383 void DoTests() |
322 { |
384 { |
323 CActiveScheduler* scheduler = new CActiveScheduler; |
385 CActiveScheduler* scheduler = new CActiveScheduler; |
324 TEST(scheduler != NULL); |
386 TEST(scheduler != NULL); |
325 CActiveScheduler::Install(scheduler); |
387 CActiveScheduler::Install(scheduler); |
326 |
388 |
|
389 //Adding two db config files will allow CDbConfigFiles construct/destroy code also to be tested in the OOM tests. |
|
390 TInt err = TheFs.Connect(); |
|
391 TEST2(err, KErrNone); |
|
392 DoCreateCfgFile(KCfgDb1ConfigFilePath, _L8("CREATE INDEX idx ON table1(i1);")); |
|
393 DoCreateCfgFile(KCfgDb2ConfigFilePath, _L8("CREATE INDEX idx1 ON table1(i1);CREATE INDEX idx2 ON table2(i2)")); |
|
394 |
327 TheTest.Start(_L(" @SYMTestCaseID:PDS-SQL-UT-4159 SQL server startup OOM test")); |
395 TheTest.Start(_L(" @SYMTestCaseID:PDS-SQL-UT-4159 SQL server startup OOM test")); |
328 SqlServerStartupOomTest(); |
396 SqlServerStartupOomTest(); |
329 |
397 |
330 TheTest.Next (_L(" @SYMTestCaseID:PDS-SQL-UT-4160 CSqlServer::GetBackUpListL() OOM test")); |
398 TheTest.Next (_L(" @SYMTestCaseID:PDS-SQL-UT-4160 CSqlServer::GetBackUpListL() OOM test")); |
331 GetBackupListOomTest(); |
399 GetBackupListOomTest(); |