persistentstorage/sql/TEST/t_sqlstartup.cpp
branchRCL_3
changeset 10 31a8f755b7fe
parent 9 667e88a979d7
child 11 211563e4b919
equal deleted inserted replaced
9:667e88a979d7 10:31a8f755b7fe
    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 
    33 
    38 
    34 ///////////////////////////////////////////////////////////////////////////////////////
    39 ///////////////////////////////////////////////////////////////////////////////////////
    35 
    40 
    36 void DeleteTestFiles()
    41 void DeleteTestFiles()
    37 	{
    42 	{
       
    43 	(void)TheFs.Delete(KCfgDb2ConfigFilePath);
       
    44 	(void)TheFs.Delete(KCfgDb1ConfigFilePath);
       
    45 	TheFs.Close();
    38 	}
    46 	}
    39 
    47 
    40 ///////////////////////////////////////////////////////////////////////////////////////
    48 ///////////////////////////////////////////////////////////////////////////////////////
    41 ///////////////////////////////////////////////////////////////////////////////////////
    49 ///////////////////////////////////////////////////////////////////////////////////////
    42 //Test macros and functions
    50 //Test macros and functions
   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();
   337     GetBackupListFileIoErrorTest();
   405     GetBackupListFileIoErrorTest();
   338 
   406 
   339     TheTest.Next (_L(" @SYMTestCaseID:PDS-SQL-UT-4163 SQL server, UTF conversion test"));
   407     TheTest.Next (_L(" @SYMTestCaseID:PDS-SQL-UT-4163 SQL server, UTF conversion test"));
   340     UtfConversionTest();
   408     UtfConversionTest();
   341 
   409 
       
   410     TheTest.Next (_L(" @SYMTestCaseID:PDS-SQL-UT-4175 Reserve drive space tests"));
       
   411     ReserveDriveSpaceTest();
       
   412     
   342     delete scheduler;
   413     delete scheduler;
   343 	}
   414 	}
   344 
   415 
   345 TInt E32Main()
   416 TInt E32Main()
   346 	{
   417 	{