persistentstorage/centralrepository/test/t_oomcenrepsrv.cpp
changeset 55 44f437012c90
parent 0 08ec8eefde2f
--- a/persistentstorage/centralrepository/test/t_oomcenrepsrv.cpp	Mon Sep 27 11:59:56 2010 +0100
+++ b/persistentstorage/centralrepository/test/t_oomcenrepsrv.cpp	Tue Oct 19 16:26:13 2010 +0100
@@ -1,4 +1,4 @@
-// Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
+// Copyright (c) 2005-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"
@@ -11,7 +11,6 @@
 // Contributors:
 //
 // Description:
-// t_oomcenrep.cpp
 // 
 //
 
@@ -29,7 +28,7 @@
 #include <bautils.h>
 
 LOCAL_D RFs					TheFs;
-LOCAL_D RTest				TheTest (_L ("t_oomcenrep.exe"));
+LOCAL_D RTest				TheTest (_L ("t_oomcenrepsrv.exe"));
 
 #ifdef __SECURE_DATA__
 _LIT(KInstallDirFile,			"c:\\private\\10202BE9\\persists\\installdir.bin");
@@ -43,6 +42,10 @@
 _LIT(KRomUpgradeRev2File,		"z:\\private\\10202BE9\\11111112.txu");
 _LIT(KUpgradeFile,				"c:\\private\\10202BE9\\11111111.txt");
 
+_LIT(KRomUpgradeFile2,          "z:\\private\\10202BE9\\11111113.txi");
+_LIT(KUpgradeFile2,             "c:\\private\\10202BE9\\11111113.txt");
+_LIT(KPersistedUpgradeFile2,    "c:\\private\\10202BE9\\persists\\11111113.cre");
+
 _LIT(KInstallOnlyFile,			"z:\\private\\10202BE9\\11111110.cri");
 _LIT(KInstallOnlyUpgradeFile,	"z:\\private\\10202BE9\\11111110.cru");
 _LIT(KInstallFile,				"c:\\private\\10202BE9\\11111110.cre");
@@ -58,6 +61,11 @@
 
 static TUid KCurrentTestUid;
 
+//Burst rate for __UHEAP_SETBURSTFAIL
+#ifdef _DEBUG
+const TInt KBurstRate = 20;
+#endif
+
 ///////////////////////////////////////////////////////////////////////////////////////
 //Test macroses and functions
 LOCAL_C void CheckL(TInt aValue, TInt aLine)
@@ -872,7 +880,7 @@
 
 LOCAL_C void StartupUpgradeL(TBool aIsSetup)
 {
-	if(aIsSetup)
+    if(aIsSetup)
 		{
 		// Set up files for test
 		RFs fs;
@@ -886,17 +894,16 @@
 		if((err!=KErrNone)&&(err!=KErrNotFound))
 			User::Leave(err);
 
-		// Cause directory listing with no files to be written
-		CCentRepSWIWatcher*	swiWatcher = CCentRepSWIWatcher::NewL(TServerResources::iFs);
-		delete swiWatcher;
-
 		User::LeaveIfError(fm->Copy(KPersistsFileNoUpgrade, KPersistsFile));
 		User::LeaveIfError(fm->Attribs(KPersistsFile,0,KEntryAttReadOnly,TTime(0)));
 
 		User::LeaveIfError(fm->Copy(KRomUpgradeRev1File, KUpgradeFile));
 		User::LeaveIfError(fm->Attribs(KUpgradeFile,0,KEntryAttReadOnly,TTime(0)));
+		
+		User::LeaveIfError(fm->Copy(KRomUpgradeFile2, KUpgradeFile2));
+		User::LeaveIfError(fm->Attribs(KUpgradeFile2,0,KEntryAttReadOnly,TTime(0)));
 
-		CleanupStack::PopAndDestroy(2); // fs and fm
+		CleanupStack::PopAndDestroy(2, &fs); //fm and fs
 		}
 	else
 		{
@@ -995,14 +1002,14 @@
 		(*atestFuncL)(ETrue);
 
 		if (aOOMMode)
-			__UHEAP_SETFAIL(RHeap::EDeterministic, ++tryCount);
+		    __UHEAP_SETBURSTFAIL(RAllocator::EBurstFailNext, ++tryCount, KBurstRate);
 
 		TRAP(err, (*atestFuncL)(EFalse));
 		if (err!=KErrNoMemory)
 			TESTKErrNoneL(err);
 
 		if (aOOMMode)
-			__UHEAP_SETFAIL(RHeap::ENone, 0);
+		    __UHEAP_RESET;
 
 		// check that no handles have leaked
 		TInt endProcessHandleCount;
@@ -1055,12 +1062,12 @@
 		RThread().HandleCount(startProcessHandleCount, startThreadHandleCount);
 
 		if (aOOMMode)
-			__UHEAP_SETFAIL(RHeap::EDeterministic, ++tryCount);
+		    __UHEAP_SETBURSTFAIL(RAllocator::EBurstFailNext, ++tryCount, KBurstRate);
 
 		TRAP(err, (theTest->*testFuncL)());
 
 		if (aOOMMode)
-			__UHEAP_SETFAIL(RHeap::ENone, 0);
+		    __UHEAP_RESET;
 
 		if (err!=KErrNoMemory)
 			TESTKErrNoneL(err);
@@ -1120,12 +1127,12 @@
 		(theTest->*aTestFuncL)(ETrue);
 
 		if (aOOMMode)
-			__UHEAP_SETFAIL(RHeap::EDeterministic, ++tryCount);
+		    __UHEAP_SETBURSTFAIL(RAllocator::EBurstFailNext, ++tryCount, KBurstRate);
 
 		TRAP(err, (theTest->*aTestFuncL)(EFalse));
 
 		if (aOOMMode)
-			__UHEAP_SETFAIL(RHeap::ENone, 0);
+		    __UHEAP_RESET;
 
 		if (err!=KErrNoMemory)
 			TESTKErrNoneL(err);
@@ -1275,8 +1282,11 @@
 	CleanupStack::PushL(heap);
 	TUint8 creVersion;
 	heap->CreateRepositoryFromCreFileL(TServerResources::iFs,_L("c:\\private\\10202be9\\persists\\88880000.cre"),creVersion);
+#ifdef SYMBIAN_INCLUDE_APP_CENTRIC
+	TESTL(creVersion==KPersistFormatSupportsPma);
+#else	
 	TESTL(creVersion==KPersistFormatSupportsIndMetaIndicator);
-
+#endif
 	CleanupStack::PopAndDestroy(2,test);
 	TServerResources::Close();
 	}
@@ -1321,6 +1331,8 @@
 	{
 	TheTest.Next (_L (" @SYMTestCaseID:SYSLIB-CENTRALREPOSITORY-LEGACY-T_OOMCENREP-0001 Starting CENREPSRV OOM Test "));
 	RFs fs;
+	TEntry entry;
+	TInt err;
 	User::LeaveIfError(fs.Connect());
 	CleanupClosePushL(fs);
 	CFileMan* fm = CFileMan::NewL(fs);
@@ -1360,7 +1372,10 @@
 
 	// Simulate SWI events before server startup
 	DoOOMNoServReposL(&StartupUpgradeL, _L("Startup Upgrade Basic Test"), EFalse);
-	DoOOMNoServReposL(&StartupDowngradeL, _L("Startup Downgrade Basic Test"), EFalse);
+    err = fs.Entry(KPersistedUpgradeFile2, entry);
+    TEST2L(err, KErrNone); // the installed keyspace (11111113.txt) should be persisted on start up.
+	
+    DoOOMNoServReposL(&StartupDowngradeL, _L("Startup Downgrade Basic Test"), EFalse);
 	DoOOMNoServReposL(&StartupUninstallL,_L("Startup Uninstall Basic Test"), EFalse);
 
 	//OOM Test aOOMMode=ETrue
@@ -1397,7 +1412,7 @@
 
 	// Delete files from bur dir
 	User::LeaveIfError(fm->Attribs(KPersistsFileNoUpgrade,0,KEntryAttReadOnly,TTime(0)));
-	TInt err=fs.Delete(KPersistsFileNoUpgrade);
+	err=fs.Delete(KPersistsFileNoUpgrade);
 	if((err!=KErrNone)&&(err!=KErrNotFound))
 		User::Leave(err);