installationservices/swcomponentregistry/test/tscrapparc/source/tscrapparcserver.cpp
changeset 33 8110bf1194d1
parent 25 98b66e4fb0be
--- a/installationservices/swcomponentregistry/test/tscrapparc/source/tscrapparcserver.cpp	Mon May 03 12:38:03 2010 +0300
+++ b/installationservices/swcomponentregistry/test/tscrapparc/source/tscrapparcserver.cpp	Fri May 14 15:58:48 2010 +0300
@@ -83,16 +83,40 @@
     return err;
     }
 
+TBool CScrApparcTestServer::IsPerformanceTestStep(const TDesC& aStepName, TPtrC& aStrippedName)
+    {
+    _LIT(KPerformanceStepKeyWord, "Performance-");
+    if (KErrNotFound == aStepName.FindF(KPerformanceStepKeyWord()))
+        {
+        aStrippedName.Set(aStepName);
+        return EFalse;
+        }
+    
+    TInt len = KPerformanceStepKeyWord().Length();
+    aStrippedName.Set(aStepName.Mid(len));
+    return ETrue;
+    }
+
 CTestStep* CScrApparcTestServer::CreateTestStep(const TDesC& aStepName)    
     {    
     CTestStep* testStep = NULL;
     
-    if (aStepName == KScrApplicationRegistrationViewSubsessionStep)
-        testStep = new CScrGetApplicationRegistrationViewSubsessionStep();
-           
-    if (aStepName == KScrMultipleSubsessionsForAppRegistryViewStep)
+    TBool performanceStep = EFalse;
+    TPtrC strippedStepName;
+    performanceStep = IsPerformanceTestStep(aStepName, strippedStepName);
+    
+    if (strippedStepName == KScrApplicationRegistrationViewSubsessionStep)
+        testStep = new CScrGetApplicationRegistrationViewSubsessionStep();           
+    else if (strippedStepName == KScrMultipleSubsessionsForAppRegistryViewStep)
         testStep = new CScrMultipleSubsessionsForAppRegistryViewStep();
     
+    if (performanceStep && (strippedStepName == KScrApplicationRegistrationViewSubsessionStep))
+        {
+        // Currently we support performace testing for only CScrGetApplicationRegistrationViewSubsessionStep
+        CScrGetApplicationRegistrationViewSubsessionStep* scrTestStep = dynamic_cast<CScrGetApplicationRegistrationViewSubsessionStep*>(testStep);
+        scrTestStep->MarkAsPerformanceStep();
+        }
+    
     return testStep;
     }