authenticationservices/authenticationserver/test/tAuthSvr/src/step_multithreaded.cpp
changeset 102 deec7e509f66
parent 94 0e6c5a9328b5
child 108 ca9a0fc2f082
--- a/authenticationservices/authenticationserver/test/tAuthSvr/src/step_multithreaded.cpp	Thu Aug 19 11:18:56 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,233 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of the License "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:  Multi threaded tests on AuthServer.
-*
-*/
-
-
-#include "tAuthSvrStep.h"
-#include "authserver/authclient.h"
-#include "authserver/authmgrclient.h"
-
-
-
-using namespace AuthServer;
-
-//Active object for registration
-class CMultiThreadedRegisterActive : public CActive
-    {
-    public:
-     CMultiThreadedRegisterActive(RAuthMgrClient& aClient, HBufC* aIdentityString, CIdentity*& aResult) : 
-         CActive(EPriorityNormal),
-         iFirstTime(true),
-         iClient(aClient), 
-         iResult(aResult),
-         iIdentityString(aIdentityString),
-         iErr(KErrNone)
-        {
-        CActiveScheduler::Add(this);
-        }
-    ~CMultiThreadedRegisterActive()
-        {
-        delete iIdentityString; 
-        }
-    void doReg()
-        {
-        SetActive();        
-        TRequestStatus* status = &iStatus;
-        User::RequestComplete(status, KErrNone);
-        iFirstTime = ETrue;
-        }
-        void DoCancel() 
-        {
-        }
-     void RunL() 
-        {
-        iErr = iStatus.Int();
-        if (iFirstTime)
-            {
-            SetActive();
-            iStatus = KRequestPending;
-            iClient.RegisterIdentityL(iResult, *iIdentityString, iStatus);
-            iFirstTime = false;
-            }
-        else
-            {
-            iErr = iStatus.Int();
-            RDebug::Printf("iErr = %d", iErr);
-            CActiveScheduler::Stop();
-            }
-        }
-        
-    TBool iFirstTime;
-    RAuthMgrClient& iClient;
-    CIdentity*& iResult;
-    HBufC* iIdentityString;
-    TInt iErr;
-    };
-
-CTMultiThreaded::~CTMultiThreaded()
-	{}
-
-CTMultiThreaded::CTMultiThreaded(CTAuthSvrServer& aParent): iParent(aParent)
-
-	{
-	
-	SetTestStepName(KTMultiThreadedTest);
-	}
-
-TVerdict CTMultiThreaded::doTestStepPreambleL()
-
-	{
-	CTStepActSch::doTestStepPreambleL();	
-	return TestStepResult();
-	}
-
-TVerdict CTMultiThreaded::doTestStepPostambleL()
-
-    {
-    
-    CTStepActSch::doTestStepPostambleL();
-    return TestStepResult();
-    }
-
-TVerdict CTMultiThreaded::doTestStepL()
-	{
-	SetTestStepResult(EPass);
-	Logger().ShareAuto();
-	//Initialize AuthServer.
-	InitAuthServerFromFileL();  
-	
-	
-	//Setup two threads which request for registration concurrently.    
-	//Create first thread.
-	RThread firstThread;
-	TInt err(0);
-	TThreadParams firstThreadParams;
-	err = firstThread.Create( _L("First Thread"), (TThreadFunction)runMultiThreadedTest, 
-                                    KDefaultStackSize, KMinHeapSize, 1024*1024 /*Max heap size*/, &firstThreadParams);
-	if(err != KErrNone)
-	    {
-	    ERR_PRINTF2(_L("Couldn't start first thread. Error = %d"), err);
-	    SetTestStepResult(EFail);
-	    return TestStepResult();
-	    }
-	    
-	// Setup the requeststatus for firstThread completion notification.
-	TRequestStatus firstThreadFinishStatus;
-	firstThread.Logon(firstThreadFinishStatus);
-	
-	
-	
-	//Setup the second thread similarly.
-	RThread secondThread;
-	TThreadParams secondThreadParams;
-    err = secondThread.Create( _L("Second Thread"), (TThreadFunction)runMultiThreadedTest, 
-									KDefaultStackSize, KMinHeapSize, 1024*1024 /*Max heap size*/, &secondThreadParams);
-    if(err != KErrNone)
-        {
-        ERR_PRINTF2(_L("Couldn't start second thread. Error = %d"), err);
-        SetTestStepResult(EFail);
-        return TestStepResult();
-        }
-        
-    // Setup the requeststatus for secondThread completion notification.
-    TRequestStatus secondThreadFinishStatus;
-    secondThread.Logon(secondThreadFinishStatus);
-    
-    //Resume both threads.
-	firstThread.Resume();   
-	secondThread.Resume();   
-	
-	//Wait for either request to complete.
-	User::WaitForRequest(firstThreadFinishStatus, secondThreadFinishStatus );     
-	
-	//Now, wait for the unfinished thread.
-	User::WaitForRequest(firstThreadFinishStatus == KRequestPending? firstThreadFinishStatus:secondThreadFinishStatus);
-	
-	INFO_PRINTF1(_L("Both Threads completed."));
-	INFO_PRINTF2(_L("First thread completed with %d."), firstThreadParams.result);
-	INFO_PRINTF2(_L("Second thread completed with %d."), secondThreadParams.result);
-	
-	if((firstThreadParams.result != KErrServerBusy && secondThreadParams.result != KErrNone) &&
-	        (firstThreadParams.result != KErrNone && secondThreadParams.result != KErrServerBusy))
-	    {
-	    SetTestStepResult(EFail);
-	    }
-	firstThread.Close();
-	secondThread.Close();
-	return TestStepResult();
-	}
-
-
-
-void CTMultiThreaded::runMultiThreadedTest(TThreadParams* aParams)
-    {
-    CTrapCleanup* cleanup = CTrapCleanup::New();
-    CActiveScheduler* sched(0);
-    
-    TRAPD(err, sched = new (ELeave) CActiveScheduler);
-    if(err != KErrNone)
-        {
-        delete cleanup;
-        User::Exit(err);
-        }
-    CActiveScheduler::Install(sched); 
-   
-    
-    /* Switch case can be added here to generalize this function to run any method.
-     * For now, only registration is called.
-     */
-    
-    TRAPD(ret,doRegisterL(*aParams));
-	
-	RDebug::Printf("doRegisterL returned %d", ret);
-    
-    delete cleanup;
-    delete sched;
-    }
-
-
-void CTMultiThreaded::doRegisterL(TThreadParams& aParams)
-    {
-    _LIT(KIdString, "User1");
-    
-    RAuthMgrClient client;
-    User::LeaveIfError(client.Connect());
-    CleanupClosePushL(client);
-    
-    HBufC* identityString = KIdString().AllocLC();
-    CIdentity* identity1 = 0;
-    
-    CMultiThreadedRegisterActive* active = new (ELeave)CMultiThreadedRegisterActive(client, identityString, identity1);
-    CleanupStack::PushL(active);
-    active->doReg();
-    CActiveScheduler::Start();
-    
-    //Store the error code in aParams.
-    aParams.result = active->iErr;
-    if(aParams.result == KErrNone)
-        {
-        RDebug::Printf("Registered new Identity! Id = %x", identity1->Id());
-        }
-    else
-        {
-        RDebug::Printf("Registration Failed !");
-        }
-    
-    delete identity1;
-    
-    CleanupStack::Pop(3, &client);
-    }
-