psmservices/psmserver/tsrc/PsmTestModule/src/PSMTestBlocks.cpp
changeset 63 09d657f1ee00
parent 0 4e1aa6a622a0
child 61 8cb079868133
--- a/psmservices/psmserver/tsrc/PsmTestModule/src/PSMTestBlocks.cpp	Wed Aug 18 11:03:14 2010 +0300
+++ b/psmservices/psmserver/tsrc/PsmTestModule/src/PSMTestBlocks.cpp	Thu Sep 02 21:48:26 2010 +0300
@@ -28,7 +28,7 @@
 
 #include <psmsrvdomaincrkeys.h>
 #include <centralrepository.h>
-
+#include "psmclientimpl.h"
 #include "PSMTest.h"
 
 
@@ -126,7 +126,16 @@
         ENTRY( "OpenClosePerformanceChange", CPSMTest::OpenClosePerformanceChange ),
         ENTRY( "OpenClosePerformanceEnd", CPSMTest::OpenClosePerformanceEnd ),
         ENTRY( "ChangePsmPerformance", CPSMTest::ChangePsmPerformance ),
-        ENTRY( "ChangeSettingsPerformance", CPSMTest::ChangeSettingsPerformance )
+
+#ifdef _DEBUG 
+        //OOM tests for psm server
+        ENTRY( "OOMChangePsmInit", CPSMTest::OOMNotifyPowerSaveModeChangeInitL ),
+        ENTRY( "OOMCancelPsm", CPSMTest::OOMCancelPowerSaveModeChangeL ),
+        ENTRY( "OOMBackupAndGetSettings", CPSMTest::OOMPsmBackupAndGetSettingsL ),
+        ENTRY( "OOMGetSettings", CPSMTest::OOMPsmGetSettingsL ),
+        ENTRY( "OOMBackupSettings", CPSMTest::OOMPsmBackupSettingsL ),
+#endif  //_DEBUG       
+        ENTRY( "ChangeSettingsPerformance", CPSMTest::ChangeSettingsPerformance )    
         };
 
     const TInt count = sizeof( KFunctions ) / 
@@ -1242,6 +1251,160 @@
 //
 CPSMTestObserver::~CPSMTestObserver()
     {
-    }
+    }   
 */
+#ifdef _DEBUG 
+// -----------------------------------------------------------------------------
+// CPSMTest::OOMNotifyPowerSaveModeChangeInit
+// -----------------------------------------------------------------------------
+//
+TInt CPSMTest::OOMNotifyPowerSaveModeChangeInitL(CStifItemParser& /*aItem*/)
+    {    
+    CPsmClient* psmClient = CPsmClient::NewL( *this );
+    CleanupStack::PushL(psmClient);
+    CPsmClientImpl* psmImpl = static_cast<CPsmClientImpl*> (psmClient);
+	psmImpl->HeapReset();
+	psmImpl->HeapMark();
+    for (TInt allocFailRate = 1;; allocFailRate++)
+        {        
+        psmImpl->SetHeapFailure( allocFailRate );                
+        psmImpl->ChangePowerSaveMode(1);
+        // Wait for mode to change
+        iSchedulerWait.Start();
+        
+        if (iErrorCode == KErrNone)
+            {
+            iErrorCode = KErrNone;            
+            break;            
+            }     
+        }
+	psmImpl->HeapMarkEnd();
+	psmImpl->HeapReset();   
+    CleanupStack::PopAndDestroy(psmClient);
+    return KErrNone;  
+    }
+
+// -----------------------------------------------------------------------------
+// CPSMTest::OOMCancelPowerSaveModeChange
+// -----------------------------------------------------------------------------
+//
+TInt CPSMTest::OOMCancelPowerSaveModeChangeL( CStifItemParser& /*aItem*/ )
+    {
+    CPsmClient* psmClient = CPsmClient::NewL( *this );
+    CleanupStack::PushL(psmClient);
+    CPsmClientImpl* psmImpl = static_cast<CPsmClientImpl*> (psmClient);
+    psmImpl->ChangePowerSaveMode(0);
+    for (TInt allocFailRate = 1;; allocFailRate++)
+        {
+        psmImpl->HeapReset();
+        psmImpl->SetHeapFailure( allocFailRate );
+        psmImpl->HeapMark();        
+        psmImpl->CancelPowerSaveModeChange();        
+        // Wait for mode to change
+        iSchedulerWait.Start();
+        psmImpl->HeapMarkEnd();
+        if (iErrorCode == KErrNone )
+            {
+            iErrorCode = KErrNone;
+            psmImpl->HeapReset();  
+            break;            
+            }       
+        }
+    CleanupStack::PopAndDestroy(psmClient); 
+    return KErrNone;  
+    }
+
+
+// -----------------------------------------------------------------------------
+// CPSMTest::OOMPsmBackupAndGetSettings
+// -----------------------------------------------------------------------------
+//
+TInt CPSMTest::OOMPsmBackupAndGetSettingsL( CStifItemParser& /*aItem*/ )
+    {
+    CPsmClient* psmClient = CPsmClient::NewL( *this );
+    CleanupStack::PushL(psmClient);
+   
+    CPsmClientImpl* psmImpl = static_cast<CPsmClientImpl*> (psmClient);
+    psmImpl->HeapReset();
+    psmImpl->HeapMark(); 
+    for (TInt allocFailRate = 1;; allocFailRate++)
+        {
+        
+        psmImpl->SetHeapFailure( allocFailRate );
+              
+        TInt err = psmImpl->PsmSettings().BackupAndGetSettings( iPsmConfigArray, KCenRepUid2 );
+       
+        if (err == KErrNone)
+            {
+            
+            break;            
+            }         
+        }
+    psmImpl->HeapMarkEnd();
+    psmImpl->HeapReset();  
+    CleanupStack::PopAndDestroy(psmClient);
+    return KErrNone;  
+    }
+
+// -----------------------------------------------------------------------------
+// CPSMTest::OOMPsmGetSettings
+// -----------------------------------------------------------------------------
+//
+TInt CPSMTest::OOMPsmGetSettingsL( CStifItemParser& /*aItem*/ )
+    {
+    CPsmClient* psmClient = CPsmClient::NewL( *this );
+    CleanupStack::PushL(psmClient);
+    CPsmClientImpl* psmImpl = static_cast<CPsmClientImpl*> (psmClient);
+
+    for (TInt allocFailRate = 1;; allocFailRate++)
+        {
+        psmImpl->HeapReset();
+        psmImpl->SetHeapFailure( allocFailRate );
+        psmImpl->HeapMark();       
+        TInt err = psmImpl->PsmSettings().GetSettings( iPsmConfigArray, KCenRepUid2 );
+        psmImpl->HeapMarkEnd();
+        if (err == KErrNone)
+            {
+            psmImpl->HeapReset();  
+            break;            
+            }         
+        }
+    CleanupStack::PopAndDestroy(psmClient);
+    return KErrNone;  
+    }
+
+// -----------------------------------------------------------------------------
+// CPSMTest::OOMPsmBackupSettings
+// -----------------------------------------------------------------------------
+//
+TInt CPSMTest::OOMPsmBackupSettingsL( CStifItemParser& /*aItem*/ )
+    {
+    CPsmClient* psmClient = CPsmClient::NewL( *this );
+    CleanupStack::PushL(psmClient);
+    CPsmClientImpl* psmImpl = static_cast<CPsmClientImpl*> (psmClient);
+	//IGNORE the error of Powersave mode request. If Powersave mode is not enabled the Backupsettings will fail with KErrWrite.
+    psmImpl->ChangePowerSaveMode(1);
+    iSchedulerWait.Start();    
+    RConfigInfoArray psmConfigArray;
+    GenerateConfigArray( psmConfigArray, EPsmsrvModePowerSave, 0 ); 
+    psmImpl->HeapReset();
+    psmImpl->HeapMark();
+    for (TInt allocFailRate = 1;; allocFailRate++)
+        {       
+        psmImpl->SetHeapFailure( allocFailRate );
+        TInt err = psmImpl->PsmSettings().BackupSettings( psmConfigArray, KCenRepUid2 );
+        iLog->Log( _L("PSMTest: BackupSettings- iPsmConfigArray.Count(): %d"), psmConfigArray.Count() );
+        if (err == KErrNone)
+            {            
+            break;            
+            }      
+        }
+    psmImpl->HeapMarkEnd();
+    psmImpl->HeapReset(); 
+    psmConfigArray.Close();   
+    CleanupStack::PopAndDestroy(psmClient);
+    return KErrNone; 
+    }
+
+#endif //_DEBUG     
 //  End of File