telephonyserver/etelserverandcore/TETEL/TE_ETEL/te_etelsetpriorityclient.cpp
branchopencode
changeset 24 6638e7f4bd8f
parent 0 3553901f7fa8
--- a/telephonyserver/etelserverandcore/TETEL/TE_ETEL/te_etelsetpriorityclient.cpp	Mon May 03 13:37:20 2010 +0300
+++ b/telephonyserver/etelserverandcore/TETEL/TE_ETEL/te_etelsetpriorityclient.cpp	Thu May 06 15:10:38 2010 +0100
@@ -1,436 +1,436 @@
-// Copyright (c) 2007-2009 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"
-// 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:
-//
-
-#include "TE_EtelBase.h"
-#include "te_etelsetpriorityclient.h"
-
-CTestSetPrClientCapNsidPosCheck::CTestSetPrClientCapNsidPosCheck()
-/** Each test step initialises it's own name
-*/
-	{
-	SetTestStepName(_L("TestSetPrClientCapNsidPosCheck"));
-	}
-
-enum TVerdict CTestSetPrClientCapNsidPosCheck::doTestStepL()
-//
-// Test connecting Positive check of Capability and SID check for SetPriorityClient API
-//
-	{
-	INFO_PRINTF1(_L("Test connecting Capability and SID check for SetPriorityClient API"));
-	RTelServer first;
-	TInt ret=first.Connect();
-	INFO_PRINTF2(_L("RTelServer::Connect returned %d."),ret);
-	TESTCHECK(ret, KErrNone);
-	INFO_PRINTF1(_L("Capability and SID check of setpriorityclient API"));
-	ret=first.SetPriorityClient();
-	TESTCHECK(ret,KErrNone);
-	INFO_PRINTF2(_L("first call of RTelServer::SetPriorityClient %d."),ret);
-	return TestStepResult();
-	}
-	
-CTestSetPrClientCapNsidNegCheck::CTestSetPrClientCapNsidNegCheck()
-/** Each test step initialises it's own name
-*/
-	{
-	SetTestStepName(_L("TestSetPrClientCapNsidNegCheck"));
-	}
-
-enum TVerdict CTestSetPrClientCapNsidNegCheck::doTestStepL()
-//
-// Test connecting Negative check of Capability and SID check for SetPriorityClient API
-//
-	{
-	INFO_PRINTF1(_L("Test connecting Capability and SID check for SetPriorityClient API"));
-	RTelServer first;
-	TInt ret=first.Connect();
-	INFO_PRINTF2(_L("RTelServer::Connect returned %d."),ret);
-	TESTCHECK(ret, KErrNone);
-	INFO_PRINTF1(_L("Capability and SID check of setpriorityclient API"));
-	ret=first.SetPriorityClient();
-	TESTCHECK(ret,KErrPermissionDenied);
-	INFO_PRINTF2(_L("first call of RTelServer::SetPriorityClient %d."),ret);
-	return TestStepResult();
-	}	
-
-CTestSetPrClientMulCallFrSameSes::CTestSetPrClientMulCallFrSameSes()
-/** Each test step initialises it's own name
-*/
-	{
-	SetTestStepName(_L("TestSetPrClientMulCallFrSameSes"));
-	}
-
-enum TVerdict CTestSetPrClientMulCallFrSameSes::doTestStepL()
-//
-// Test connecting Multiple call of setpriorityclient API from the same session
-//
-	{
-	INFO_PRINTF1(_L("Test connecting ultiple call of setpriorityclient API from the same session"));
-	RTelServer first;
-	TInt ret=first.Connect();
-	INFO_PRINTF2(_L("RTelServer::Connect returned %d."),ret);
-	TESTCHECK(ret, KErrNone);
-	INFO_PRINTF1(_L("Multiple call of setpriorityclient API on the same session"));
-	ret=first.SetPriorityClient();
-	TESTCHECK(ret, KErrNone);
-	INFO_PRINTF2(_L("first call of RTelServer::SetPriorityClient in same session  %d."),ret);
-	ret=first.SetPriorityClient();
-	TESTCHECK(ret, KErrAlreadyExists);
-	INFO_PRINTF2(_L("Second call of RTelServer::SetPriorityClient in same session %d."),ret);
-	first.Close();
-	
-	return TestStepResult();
-	}
-//
-CTestSetPrClientMulCallFrDiffSubSes::CTestSetPrClientMulCallFrDiffSubSes()
-/** Each test step initialises it's own name
-*/
-	{
-	SetTestStepName(_L("TestSetPrClientMulCallFrDiffSubSes"));
-	}
-
-enum TVerdict CTestSetPrClientMulCallFrDiffSubSes::doTestStepL()
-//
-// Test connecting Multiple call of setpriorityclient API from the different sub session
-//
-	{
-	INFO_PRINTF1(_L("Test connecting Multiple call of setpriorityclient API on the different sub session"));
-	RTelServer first;
-	TInt ret=first.Connect();
-	INFO_PRINTF2(_L("RTelServer::Connect returned %d."),ret);
-	TESTCHECK(ret, KErrNone);
-	RTelServer second;
-	ret=second.Connect();
-	INFO_PRINTF2(_L("RTelServer::Connect (second) returned %d."),ret);
-	INFO_PRINTF1(_L("Multiple call of setpriorityclient API on the different session"));
-	ret=first.SetPriorityClient();
-	TESTCHECK(ret, KErrNone);
-	INFO_PRINTF2(_L("first call of RTelServer::SetPriorityClient in different session %d."),ret);
-	ret=second.SetPriorityClient();
-	TESTCHECK(ret, KErrAlreadyExists);
-	INFO_PRINTF2(_L("second call of RTelServer::SetPriorityClient in different session %d."),ret);
-	second.Close();
-	first.Close();
-	
-	return TestStepResult();
-	}
-//
-CTestSetPrClientMulCallFrDiffClt::CTestSetPrClientMulCallFrDiffClt()
-/** Each test step initialises it's own name
-*/
-	{
-	SetTestStepName(_L("TestSetPrClientMulCallFrDiffClt"));
-	}
-	
-TInt CTestSetPrClientMulCallFrDiffClt ::FirstThreadFunctiona(TAny*  aThreadData1)
-	{
-	RTelServer server;
-	CTestStep* testStep = static_cast<CTestStep*>(aThreadData1);
-	CTrapCleanup* cleanup;
-	if ((cleanup=CTrapCleanup::New())==NULL)
-		{
-		return KErrGeneral;
-		}
-	TInt ret = server.Connect();
-	testStep->TEST1(ret==KErrNone,ETrue);
-	testStep->INFO_PRINTF2(_L("Thread1 RTelServer::Connect returned %d."),ret);
-	ret=server.SetPriorityClient();
-	testStep->TEST1((ret == KErrNone) || (ret == KErrAlreadyExists), ETrue);
-	testStep->INFO_PRINTF2(_L("Thread1 RTelServer::SetPriorityClient returned %d."),ret);
-	User::After(KETelThreadShutdownGuardPeriod);
-	server.Close();	
-	delete cleanup;
-	return ret;
-	}
-
-TInt CTestSetPrClientMulCallFrDiffClt ::SecondThreadFunctiona(TAny*  aThreadData2)
-	{
-	RTelServer server;
-	CTestStep* testStep = static_cast<CTestStep*>(aThreadData2);
-	CTrapCleanup* cleanup;
-	if ((cleanup=CTrapCleanup::New())==NULL)
-		{
-		return KErrGeneral;	
-		}
-	TInt ret = server.Connect();
-	testStep->TEST1(ret==KErrNone,ETrue);
-	testStep->INFO_PRINTF2(_L("Thread2 RTelServer::Connect returned %d."),ret);
-	ret=server.SetPriorityClient();
-	testStep->TEST1((ret == KErrNone) || (ret == KErrAlreadyExists),ETrue);
-	testStep->INFO_PRINTF2(_L("Thread2 RTelServer::SetPriorityClient returned %d."),ret);
-	server.Close();
-	delete cleanup;
-	return ret;
-	}
-		
-enum TVerdict CTestSetPrClientMulCallFrDiffClt::doTestStepL()
-//
-// Test connecting Multiple call of setpriorityclient API from the different threads
-//
-	{
-	RThread thread1;
-	RThread thread2;
-	TRequestStatus reqStatus1;
-	TRequestStatus reqStatus2;
-	Logger().ShareAuto();
-	INFO_PRINTF1(_L("Test connecting Multiple call of setpriorityclient API from the different threads"));
-	const TInt KStackSize=0x8000;
-	const TInt KHeapSize=0x8000;
-	const TInt KMaxHeapSize=0x80000;
-	_LIT(KFirstThreadName,"FirstThread");
-	_LIT(KSecondThreadName,"SecondThread");
-	TInt res1=thread1.Create(KFirstThreadName, FirstThreadFunctiona,KStackSize,KHeapSize,KMaxHeapSize,(void*)this, EOwnerThread);
-	TESTCHECK(res1, KErrNone);
-	if(res1!=KErrNone)
-		{
-		ERR_PRINTF1(_L("CTestSetPrClientMulCallFrDiffClt:thread1.Create Failed to create a thread1"));
-		SetTestStepResult(EFail);
-		}
-	thread1.Logon(reqStatus1);	//Request 1
-	TInt resu1=(reqStatus1.Int(), KRequestPending);
-	TInt res2=thread2.Create(KSecondThreadName,SecondThreadFunctiona,KStackSize,KHeapSize,KMaxHeapSize,(void*)this, EOwnerThread);
-	TESTCHECK(res2, KErrNone);
-	if(res2!=KErrNone)
-		{
-		ERR_PRINTF1(_L("CTestSetPrClientMulCallFrDiffClt:thread2.Create Failed to create a thread2"));
-		SetTestStepResult(EFail);
-		}
-	thread2.Logon(reqStatus2);	//Request 2
-	TInt resu2=(reqStatus2.Int(), KRequestPending);
-	thread1.Resume();
-	thread2.Resume();
-	User::WaitForRequest(reqStatus1);
-	User::WaitForRequest(reqStatus2);
-	TEST( ((reqStatus1==KErrNone) && (reqStatus2==KErrAlreadyExists)) ||
-		  ((reqStatus2==KErrNone) && (reqStatus1==KErrAlreadyExists)));
-	if (thread1.ExitType() != EExitKill && thread1.ExitReason() != 0)
-		{
-		User::Leave(thread1.ExitReason());
-		}//end of if (iThread1.ExitType() != EExitKill && iThread1.ExitReason() != 0)
-	thread1.Close();
-	INFO_PRINTF2(_L("First thread opened ETel session and returned %d"), res1);
-	if (thread2.ExitType() != EExitKill && thread2.ExitReason() != 0)
-		{
-		User::Leave(thread2.ExitReason());
-		}//end of if (iThread2.ExitType() != EExitKill && iThread2.ExitReason() != 0)
-	thread2.Close();
-	INFO_PRINTF2(_L("Second thread opened ETel session and returned %d"), res2);
-
-	return TestStepResult();
-	}
-	
-CTestSetPrClientV2CapNsidPosCheck::CTestSetPrClientV2CapNsidPosCheck()
-	{
-	SetTestStepName(_L("TestSetPrClientV2CapNsidPosCheck"));
-	}
-	
-enum TVerdict CTestSetPrClientV2CapNsidPosCheck::doTestStepL()
-//
-// Test connecting  Positive check of Capability and SID check for SetPriorityClientV2 API
-//
-	{
-	INFO_PRINTF1(_L("Test connecting Capability and SID check for SetPriorityClientV2 API"));
-	RTelServer first;
-	TInt ret=first.Connect();
-	INFO_PRINTF2(_L("RTelServer::Connect returned %d."),ret);
-	TESTCHECK(ret, KErrNone);
-	INFO_PRINTF1(_L("Capability and SID check of setpriorityclientV2 API"));
-	ret=first.SetPriorityClientV2();
-	TESTCHECK(ret,KErrNone);
-	INFO_PRINTF2(_L("first call of RTelServer::SetPriorityClientV2 %d."),ret);
-	return TestStepResult();
-	}
-	
-CTestSetPrClientV2CapNsidNegCheck::CTestSetPrClientV2CapNsidNegCheck()
-	{
-	SetTestStepName(_L("TestSetPrClientV2CapNsidNegCheck"));
-	}
-	
-enum TVerdict CTestSetPrClientV2CapNsidNegCheck::doTestStepL()
-//
-// Test connecting Negative check of Capability and SID check for SetPriorityClientV2 API
-//
-	{
-	INFO_PRINTF1(_L("Test connecting Capability and SID check for SetPriorityClientV2 API"));
-	RTelServer first;
-	TInt ret=first.Connect();
-	INFO_PRINTF2(_L("RTelServer::Connect returned %d."),ret);
-	TESTCHECK(ret, KErrNone);
-	INFO_PRINTF1(_L("Capability and SID check of setpriorityclientV2 API"));
-	ret=first.SetPriorityClientV2();
-	TESTCHECK(ret,KErrPermissionDenied);
-	INFO_PRINTF2(_L("first call of RTelServer::SetPriorityClientV2 %d."),ret);
-	return TestStepResult();
-	}	
-	
-	
-CTestSetPrClientV2MulCallFrSameSes::CTestSetPrClientV2MulCallFrSameSes()
-	{
-	SetTestStepName(_L("TestSetPrClientV2MulCallFrDiffSubSes"));
-	}
-	
-enum TVerdict CTestSetPrClientV2MulCallFrSameSes::doTestStepL()
-//
-// Test connecting Multiple call of setpriorityclientV2 API from the same session
-//	
-	{
-	INFO_PRINTF1(_L("Test connecting Multiple call of setpriorityclientV2 API from the same session"));
-	RTelServer first;
-	TInt ret=first.Connect();
-	INFO_PRINTF2(_L("RTelServer::Connect returned %d."),ret);
-	TESTCHECK(ret, KErrNone);
-	INFO_PRINTF1(_L("Multiple call of setpriorityclientV2 API on the same session"));
-	ret=first.SetPriorityClientV2();
-	TESTCHECK(ret, KErrNone);
-	INFO_PRINTF2(_L("first call of RTelServer::SetPriorityClientV2 in same session  %d."),ret);
-	ret=first.SetPriorityClientV2();
-	TESTCHECK(ret, KErrAlreadyExists);
-	INFO_PRINTF2(_L("Second call of RTelServer::SetPriorityClientV2 in same session %d."),ret);
-	first.Close();
-	
-	return TestStepResult();
-	}
-	
-CTestSetPrClientV2MulCallFrDiffSubSes::CTestSetPrClientV2MulCallFrDiffSubSes()
-	{
-	SetTestStepName(_L("TestSetPrClientV2MulCallFrDiffSubSes"));
-	}
-	
-enum TVerdict CTestSetPrClientV2MulCallFrDiffSubSes::doTestStepL()
-//
-// Test connecting Multiple call of setpriorityclientV2 API from the different sub session
-//
-	{
-	INFO_PRINTF1(_L("Test connecting Multiple call of setpriorityclientV2 API from the different sub session"));
-	RTelServer first;
-	TInt ret=first.Connect();
-	INFO_PRINTF2(_L("RTelServer::Connect returned %d."),ret);
-	TESTCHECK(ret, KErrNone);
-	RTelServer second;
-	ret=second.Connect();
-	INFO_PRINTF2(_L("RTelServer::Connect (second) returned %d."),ret);
-	INFO_PRINTF1(_L("Multiple call of setpriorityclientV2 API on the different session"));
-	ret=first.SetPriorityClientV2();
-	TESTCHECK(ret, KErrNone);
-	INFO_PRINTF2(_L("first call of RTelServer::SetPriorityClientV2 in different session %d."),ret);
-	ret=second.SetPriorityClientV2();
-	TESTCHECK(ret, KErrAlreadyExists);
-	INFO_PRINTF2(_L("second call of RTelServer::SetPriorityClientV2 in different session %d."),ret);
-	second.Close();
-	first.Close();
-	return TestStepResult();
-	}
-	
-CTestSetPrClientV2MulCallFrDiffClt::CTestSetPrClientV2MulCallFrDiffClt()
-	{
-	SetTestStepName(_L("TestSetPrClientV2MulCallFrDiffClt"));
-	}
-	
-TInt CTestSetPrClientV2MulCallFrDiffClt ::FirstThreadFunctiona(TAny*  aThreadData1)
-	{
-	RTelServer server;
-	CTestStep* testStep = static_cast<CTestStep*>(aThreadData1);
-	CTrapCleanup* cleanup;
-	if ((cleanup=CTrapCleanup::New())==NULL)
-		{
-		return KErrGeneral;	
-		}
-	TInt ret = server.Connect();
-	testStep->TEST1(ret==KErrNone,ETrue);
-	testStep->INFO_PRINTF2(_L("Thread1 RTelServer::Connect returned %d."),ret);
-	ret=server.SetPriorityClientV2();
-	testStep->TEST1(( (ret==KErrAlreadyExists) || (ret==KErrNone) ),ETrue);
-	testStep->INFO_PRINTF2(_L("Thread1 RTelServer::SetPriorityClientV2 returned %d."),ret);
-	User::After(KETelThreadShutdownGuardPeriod);
-	server.Close();	
-	delete cleanup;
-	return ret;
-	}
-	
-TInt CTestSetPrClientV2MulCallFrDiffClt ::SecondThreadFunctiona(TAny*  aThreadData2)
-	{
-	RTelServer server;
-	CTestStep* testStep = static_cast<CTestStep*>(aThreadData2);
-	CTrapCleanup* cleanup;
-	if ((cleanup=CTrapCleanup::New())==NULL)
-		{
-		return KErrGeneral;	
-		}
-	TInt ret = server.Connect();
-	testStep->TEST1(ret==KErrNone,ETrue);
-	testStep->INFO_PRINTF2(_L("Thread2 RTelServer::Connect returned %d."),ret);
-	ret=server.SetPriorityClientV2();
-	testStep->TEST1(( (ret==KErrAlreadyExists) || (ret==KErrNone) ),ETrue);
-	testStep->INFO_PRINTF2(_L("Thread2 RTelServer::SetPriorityClientV2 returned %d."),ret);
-	User::After(KETelThreadShutdownGuardPeriod);
-	server.Close();
-	delete cleanup;
-	return ret;
-	}
-	
-enum TVerdict CTestSetPrClientV2MulCallFrDiffClt::doTestStepL()
-//
-// Test connecting Multiple call of setpriorityclientV2 API from the different threads
-//	
-	{
-	RThread thread1;
-	RThread thread2;
-	TRequestStatus reqStatus1;
-	TRequestStatus reqStatus2;
-	Logger().ShareAuto();
-	INFO_PRINTF1(_L("Test connecting Multiple call of setpriorityclientV2 API from the different threads"));
-	const TInt KStackSize=0x8000;
-	const TInt KHeapSize=0x8000;
-	const TInt KMaxHeapSize=0x80000;
-	_LIT(KFirstThreadName,"FirstThread");
-	_LIT(KSecondThreadName,"SecondThread");
-	TInt res1=thread1.Create(KFirstThreadName, FirstThreadFunctiona,KStackSize,KHeapSize,KMaxHeapSize,(void*)this, EOwnerThread);
-	TESTCHECK(res1, KErrNone);
-	if(res1!=KErrNone)
-		{
-		ERR_PRINTF1(_L("CTestSetPriorityClientc:thread1.Create Failed to create a thread1"));
-		SetTestStepResult(EFail);
-		}
-	thread1.Logon(reqStatus1);	//Request 1
-	TInt resu1=(reqStatus1.Int(), KRequestPending);
-	TInt res2=thread2.Create(KSecondThreadName,SecondThreadFunctiona,KStackSize,KHeapSize,KMaxHeapSize,(void*)this, EOwnerThread);
-	TESTCHECK(res2, KErrNone);
-	if(res2!=KErrNone)
-		{
-		ERR_PRINTF1(_L("CTestSetPriorityClientc:thread2.Create Failed to create a thread2"));
-		SetTestStepResult(EFail);
-		}
-	thread2.Logon(reqStatus2);	//Request 2
-	TInt resu2=(reqStatus2.Int(), KRequestPending);
-	thread1.Resume();
-	User::After(1);
-	thread2.Resume();
-	User::WaitForRequest(reqStatus1);
-	User::WaitForRequest(reqStatus2);
-	TEST( ((reqStatus1==KErrNone) && (reqStatus2==KErrAlreadyExists)) ||
-		  ((reqStatus2==KErrNone) && (reqStatus1==KErrAlreadyExists)));
-	if (thread1.ExitType() != EExitKill && thread1.ExitReason() != 0)
-		{
-		User::Leave(thread1.ExitReason());
-		}//end of if (iThread1.ExitType() != EExitKill && iThread1.ExitReason() != 0)
-	thread1.Close();
-	INFO_PRINTF2(_L("First thread opened ETel session and returned %d"), res1);
-	if (thread2.ExitType() != EExitKill && thread2.ExitReason() != 0)
-		{
-		User::Leave(thread2.ExitReason());
-		}//end of if (iThread2.ExitType() != EExitKill && iThread2.ExitReason() != 0)
-	thread2.Close();
-	INFO_PRINTF2(_L("Second thread opened ETel session and returned %d"), res2);
-	return TestStepResult();
-	}
+// Copyright (c) 2007-2009 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"
+// 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:
+//
+
+#include "TE_EtelBase.h"
+#include "te_etelsetpriorityclient.h"
+
+CTestSetPrClientCapNsidPosCheck::CTestSetPrClientCapNsidPosCheck()
+/** Each test step initialises it's own name
+*/
+	{
+	SetTestStepName(_L("TestSetPrClientCapNsidPosCheck"));
+	}
+
+enum TVerdict CTestSetPrClientCapNsidPosCheck::doTestStepL()
+//
+// Test connecting Positive check of Capability and SID check for SetPriorityClient API
+//
+	{
+	INFO_PRINTF1(_L("Test connecting Capability and SID check for SetPriorityClient API"));
+	RTelServer first;
+	TInt ret=first.Connect();
+	INFO_PRINTF2(_L("RTelServer::Connect returned %d."),ret);
+	TESTCHECK(ret, KErrNone);
+	INFO_PRINTF1(_L("Capability and SID check of setpriorityclient API"));
+	ret=first.SetPriorityClient();
+	TESTCHECK(ret,KErrNone);
+	INFO_PRINTF2(_L("first call of RTelServer::SetPriorityClient %d."),ret);
+	return TestStepResult();
+	}
+	
+CTestSetPrClientCapNsidNegCheck::CTestSetPrClientCapNsidNegCheck()
+/** Each test step initialises it's own name
+*/
+	{
+	SetTestStepName(_L("TestSetPrClientCapNsidNegCheck"));
+	}
+
+enum TVerdict CTestSetPrClientCapNsidNegCheck::doTestStepL()
+//
+// Test connecting Negative check of Capability and SID check for SetPriorityClient API
+//
+	{
+	INFO_PRINTF1(_L("Test connecting Capability and SID check for SetPriorityClient API"));
+	RTelServer first;
+	TInt ret=first.Connect();
+	INFO_PRINTF2(_L("RTelServer::Connect returned %d."),ret);
+	TESTCHECK(ret, KErrNone);
+	INFO_PRINTF1(_L("Capability and SID check of setpriorityclient API"));
+	ret=first.SetPriorityClient();
+	TESTCHECK(ret,KErrPermissionDenied);
+	INFO_PRINTF2(_L("first call of RTelServer::SetPriorityClient %d."),ret);
+	return TestStepResult();
+	}	
+
+CTestSetPrClientMulCallFrSameSes::CTestSetPrClientMulCallFrSameSes()
+/** Each test step initialises it's own name
+*/
+	{
+	SetTestStepName(_L("TestSetPrClientMulCallFrSameSes"));
+	}
+
+enum TVerdict CTestSetPrClientMulCallFrSameSes::doTestStepL()
+//
+// Test connecting Multiple call of setpriorityclient API from the same session
+//
+	{
+	INFO_PRINTF1(_L("Test connecting ultiple call of setpriorityclient API from the same session"));
+	RTelServer first;
+	TInt ret=first.Connect();
+	INFO_PRINTF2(_L("RTelServer::Connect returned %d."),ret);
+	TESTCHECK(ret, KErrNone);
+	INFO_PRINTF1(_L("Multiple call of setpriorityclient API on the same session"));
+	ret=first.SetPriorityClient();
+	TESTCHECK(ret, KErrNone);
+	INFO_PRINTF2(_L("first call of RTelServer::SetPriorityClient in same session  %d."),ret);
+	ret=first.SetPriorityClient();
+	TESTCHECK(ret, KErrAlreadyExists);
+	INFO_PRINTF2(_L("Second call of RTelServer::SetPriorityClient in same session %d."),ret);
+	first.Close();
+	
+	return TestStepResult();
+	}
+//
+CTestSetPrClientMulCallFrDiffSubSes::CTestSetPrClientMulCallFrDiffSubSes()
+/** Each test step initialises it's own name
+*/
+	{
+	SetTestStepName(_L("TestSetPrClientMulCallFrDiffSubSes"));
+	}
+
+enum TVerdict CTestSetPrClientMulCallFrDiffSubSes::doTestStepL()
+//
+// Test connecting Multiple call of setpriorityclient API from the different sub session
+//
+	{
+	INFO_PRINTF1(_L("Test connecting Multiple call of setpriorityclient API on the different sub session"));
+	RTelServer first;
+	TInt ret=first.Connect();
+	INFO_PRINTF2(_L("RTelServer::Connect returned %d."),ret);
+	TESTCHECK(ret, KErrNone);
+	RTelServer second;
+	ret=second.Connect();
+	INFO_PRINTF2(_L("RTelServer::Connect (second) returned %d."),ret);
+	INFO_PRINTF1(_L("Multiple call of setpriorityclient API on the different session"));
+	ret=first.SetPriorityClient();
+	TESTCHECK(ret, KErrNone);
+	INFO_PRINTF2(_L("first call of RTelServer::SetPriorityClient in different session %d."),ret);
+	ret=second.SetPriorityClient();
+	TESTCHECK(ret, KErrAlreadyExists);
+	INFO_PRINTF2(_L("second call of RTelServer::SetPriorityClient in different session %d."),ret);
+	second.Close();
+	first.Close();
+	
+	return TestStepResult();
+	}
+//
+CTestSetPrClientMulCallFrDiffClt::CTestSetPrClientMulCallFrDiffClt()
+/** Each test step initialises it's own name
+*/
+	{
+	SetTestStepName(_L("TestSetPrClientMulCallFrDiffClt"));
+	}
+	
+TInt CTestSetPrClientMulCallFrDiffClt ::FirstThreadFunctiona(TAny*  aThreadData1)
+	{
+	RTelServer server;
+	CTestStep* testStep = static_cast<CTestStep*>(aThreadData1);
+	CTrapCleanup* cleanup;
+	if ((cleanup=CTrapCleanup::New())==NULL)
+		{
+		return KErrGeneral;
+		}
+	TInt ret = server.Connect();
+	testStep->TEST1(ret==KErrNone,ETrue);
+	testStep->INFO_PRINTF2(_L("Thread1 RTelServer::Connect returned %d."),ret);
+	ret=server.SetPriorityClient();
+	testStep->TEST1((ret == KErrNone) || (ret == KErrAlreadyExists), ETrue);
+	testStep->INFO_PRINTF2(_L("Thread1 RTelServer::SetPriorityClient returned %d."),ret);
+	User::After(KETelThreadShutdownGuardPeriod);
+	server.Close();	
+	delete cleanup;
+	return ret;
+	}
+
+TInt CTestSetPrClientMulCallFrDiffClt ::SecondThreadFunctiona(TAny*  aThreadData2)
+	{
+	RTelServer server;
+	CTestStep* testStep = static_cast<CTestStep*>(aThreadData2);
+	CTrapCleanup* cleanup;
+	if ((cleanup=CTrapCleanup::New())==NULL)
+		{
+		return KErrGeneral;	
+		}
+	TInt ret = server.Connect();
+	testStep->TEST1(ret==KErrNone,ETrue);
+	testStep->INFO_PRINTF2(_L("Thread2 RTelServer::Connect returned %d."),ret);
+	ret=server.SetPriorityClient();
+	testStep->TEST1((ret == KErrNone) || (ret == KErrAlreadyExists),ETrue);
+	testStep->INFO_PRINTF2(_L("Thread2 RTelServer::SetPriorityClient returned %d."),ret);
+	server.Close();
+	delete cleanup;
+	return ret;
+	}
+		
+enum TVerdict CTestSetPrClientMulCallFrDiffClt::doTestStepL()
+//
+// Test connecting Multiple call of setpriorityclient API from the different threads
+//
+	{
+	RThread thread1;
+	RThread thread2;
+	TRequestStatus reqStatus1;
+	TRequestStatus reqStatus2;
+	Logger().ShareAuto();
+	INFO_PRINTF1(_L("Test connecting Multiple call of setpriorityclient API from the different threads"));
+	const TInt KStackSize=0x8000;
+	const TInt KHeapSize=0x8000;
+	const TInt KMaxHeapSize=0x80000;
+	_LIT(KFirstThreadName,"FirstThread");
+	_LIT(KSecondThreadName,"SecondThread");
+	TInt res1=thread1.Create(KFirstThreadName, FirstThreadFunctiona,KStackSize,KHeapSize,KMaxHeapSize,(void*)this, EOwnerThread);
+	TESTCHECK(res1, KErrNone);
+	if(res1!=KErrNone)
+		{
+		ERR_PRINTF1(_L("CTestSetPrClientMulCallFrDiffClt:thread1.Create Failed to create a thread1"));
+		SetTestStepResult(EFail);
+		}
+	thread1.Logon(reqStatus1);	//Request 1
+	TInt resu1=(reqStatus1.Int(), KRequestPending);
+	TInt res2=thread2.Create(KSecondThreadName,SecondThreadFunctiona,KStackSize,KHeapSize,KMaxHeapSize,(void*)this, EOwnerThread);
+	TESTCHECK(res2, KErrNone);
+	if(res2!=KErrNone)
+		{
+		ERR_PRINTF1(_L("CTestSetPrClientMulCallFrDiffClt:thread2.Create Failed to create a thread2"));
+		SetTestStepResult(EFail);
+		}
+	thread2.Logon(reqStatus2);	//Request 2
+	TInt resu2=(reqStatus2.Int(), KRequestPending);
+	thread1.Resume();
+	thread2.Resume();
+	User::WaitForRequest(reqStatus1);
+	User::WaitForRequest(reqStatus2);
+	TEST( ((reqStatus1==KErrNone) && (reqStatus2==KErrAlreadyExists)) ||
+		  ((reqStatus2==KErrNone) && (reqStatus1==KErrAlreadyExists)));
+	if (thread1.ExitType() != EExitKill && thread1.ExitReason() != 0)
+		{
+		User::Leave(thread1.ExitReason());
+		}//end of if (iThread1.ExitType() != EExitKill && iThread1.ExitReason() != 0)
+	thread1.Close();
+	INFO_PRINTF2(_L("First thread opened ETel session and returned %d"), res1);
+	if (thread2.ExitType() != EExitKill && thread2.ExitReason() != 0)
+		{
+		User::Leave(thread2.ExitReason());
+		}//end of if (iThread2.ExitType() != EExitKill && iThread2.ExitReason() != 0)
+	thread2.Close();
+	INFO_PRINTF2(_L("Second thread opened ETel session and returned %d"), res2);
+
+	return TestStepResult();
+	}
+	
+CTestSetPrClientV2CapNsidPosCheck::CTestSetPrClientV2CapNsidPosCheck()
+	{
+	SetTestStepName(_L("TestSetPrClientV2CapNsidPosCheck"));
+	}
+	
+enum TVerdict CTestSetPrClientV2CapNsidPosCheck::doTestStepL()
+//
+// Test connecting  Positive check of Capability and SID check for SetPriorityClientV2 API
+//
+	{
+	INFO_PRINTF1(_L("Test connecting Capability and SID check for SetPriorityClientV2 API"));
+	RTelServer first;
+	TInt ret=first.Connect();
+	INFO_PRINTF2(_L("RTelServer::Connect returned %d."),ret);
+	TESTCHECK(ret, KErrNone);
+	INFO_PRINTF1(_L("Capability and SID check of setpriorityclientV2 API"));
+	ret=first.SetPriorityClientV2();
+	TESTCHECK(ret,KErrNone);
+	INFO_PRINTF2(_L("first call of RTelServer::SetPriorityClientV2 %d."),ret);
+	return TestStepResult();
+	}
+	
+CTestSetPrClientV2CapNsidNegCheck::CTestSetPrClientV2CapNsidNegCheck()
+	{
+	SetTestStepName(_L("TestSetPrClientV2CapNsidNegCheck"));
+	}
+	
+enum TVerdict CTestSetPrClientV2CapNsidNegCheck::doTestStepL()
+//
+// Test connecting Negative check of Capability and SID check for SetPriorityClientV2 API
+//
+	{
+	INFO_PRINTF1(_L("Test connecting Capability and SID check for SetPriorityClientV2 API"));
+	RTelServer first;
+	TInt ret=first.Connect();
+	INFO_PRINTF2(_L("RTelServer::Connect returned %d."),ret);
+	TESTCHECK(ret, KErrNone);
+	INFO_PRINTF1(_L("Capability and SID check of setpriorityclientV2 API"));
+	ret=first.SetPriorityClientV2();
+	TESTCHECK(ret,KErrPermissionDenied);
+	INFO_PRINTF2(_L("first call of RTelServer::SetPriorityClientV2 %d."),ret);
+	return TestStepResult();
+	}	
+	
+	
+CTestSetPrClientV2MulCallFrSameSes::CTestSetPrClientV2MulCallFrSameSes()
+	{
+	SetTestStepName(_L("TestSetPrClientV2MulCallFrDiffSubSes"));
+	}
+	
+enum TVerdict CTestSetPrClientV2MulCallFrSameSes::doTestStepL()
+//
+// Test connecting Multiple call of setpriorityclientV2 API from the same session
+//	
+	{
+	INFO_PRINTF1(_L("Test connecting Multiple call of setpriorityclientV2 API from the same session"));
+	RTelServer first;
+	TInt ret=first.Connect();
+	INFO_PRINTF2(_L("RTelServer::Connect returned %d."),ret);
+	TESTCHECK(ret, KErrNone);
+	INFO_PRINTF1(_L("Multiple call of setpriorityclientV2 API on the same session"));
+	ret=first.SetPriorityClientV2();
+	TESTCHECK(ret, KErrNone);
+	INFO_PRINTF2(_L("first call of RTelServer::SetPriorityClientV2 in same session  %d."),ret);
+	ret=first.SetPriorityClientV2();
+	TESTCHECK(ret, KErrAlreadyExists);
+	INFO_PRINTF2(_L("Second call of RTelServer::SetPriorityClientV2 in same session %d."),ret);
+	first.Close();
+	
+	return TestStepResult();
+	}
+	
+CTestSetPrClientV2MulCallFrDiffSubSes::CTestSetPrClientV2MulCallFrDiffSubSes()
+	{
+	SetTestStepName(_L("TestSetPrClientV2MulCallFrDiffSubSes"));
+	}
+	
+enum TVerdict CTestSetPrClientV2MulCallFrDiffSubSes::doTestStepL()
+//
+// Test connecting Multiple call of setpriorityclientV2 API from the different sub session
+//
+	{
+	INFO_PRINTF1(_L("Test connecting Multiple call of setpriorityclientV2 API from the different sub session"));
+	RTelServer first;
+	TInt ret=first.Connect();
+	INFO_PRINTF2(_L("RTelServer::Connect returned %d."),ret);
+	TESTCHECK(ret, KErrNone);
+	RTelServer second;
+	ret=second.Connect();
+	INFO_PRINTF2(_L("RTelServer::Connect (second) returned %d."),ret);
+	INFO_PRINTF1(_L("Multiple call of setpriorityclientV2 API on the different session"));
+	ret=first.SetPriorityClientV2();
+	TESTCHECK(ret, KErrNone);
+	INFO_PRINTF2(_L("first call of RTelServer::SetPriorityClientV2 in different session %d."),ret);
+	ret=second.SetPriorityClientV2();
+	TESTCHECK(ret, KErrAlreadyExists);
+	INFO_PRINTF2(_L("second call of RTelServer::SetPriorityClientV2 in different session %d."),ret);
+	second.Close();
+	first.Close();
+	return TestStepResult();
+	}
+	
+CTestSetPrClientV2MulCallFrDiffClt::CTestSetPrClientV2MulCallFrDiffClt()
+	{
+	SetTestStepName(_L("TestSetPrClientV2MulCallFrDiffClt"));
+	}
+	
+TInt CTestSetPrClientV2MulCallFrDiffClt ::FirstThreadFunctiona(TAny*  aThreadData1)
+	{
+	RTelServer server;
+	CTestStep* testStep = static_cast<CTestStep*>(aThreadData1);
+	CTrapCleanup* cleanup;
+	if ((cleanup=CTrapCleanup::New())==NULL)
+		{
+		return KErrGeneral;	
+		}
+	TInt ret = server.Connect();
+	testStep->TEST1(ret==KErrNone,ETrue);
+	testStep->INFO_PRINTF2(_L("Thread1 RTelServer::Connect returned %d."),ret);
+	ret=server.SetPriorityClientV2();
+	testStep->TEST1(( (ret==KErrAlreadyExists) || (ret==KErrNone) ),ETrue);
+	testStep->INFO_PRINTF2(_L("Thread1 RTelServer::SetPriorityClientV2 returned %d."),ret);
+	User::After(KETelThreadShutdownGuardPeriod);
+	server.Close();	
+	delete cleanup;
+	return ret;
+	}
+	
+TInt CTestSetPrClientV2MulCallFrDiffClt ::SecondThreadFunctiona(TAny*  aThreadData2)
+	{
+	RTelServer server;
+	CTestStep* testStep = static_cast<CTestStep*>(aThreadData2);
+	CTrapCleanup* cleanup;
+	if ((cleanup=CTrapCleanup::New())==NULL)
+		{
+		return KErrGeneral;	
+		}
+	TInt ret = server.Connect();
+	testStep->TEST1(ret==KErrNone,ETrue);
+	testStep->INFO_PRINTF2(_L("Thread2 RTelServer::Connect returned %d."),ret);
+	ret=server.SetPriorityClientV2();
+	testStep->TEST1(( (ret==KErrAlreadyExists) || (ret==KErrNone) ),ETrue);
+	testStep->INFO_PRINTF2(_L("Thread2 RTelServer::SetPriorityClientV2 returned %d."),ret);
+	User::After(KETelThreadShutdownGuardPeriod);
+	server.Close();
+	delete cleanup;
+	return ret;
+	}
+	
+enum TVerdict CTestSetPrClientV2MulCallFrDiffClt::doTestStepL()
+//
+// Test connecting Multiple call of setpriorityclientV2 API from the different threads
+//	
+	{
+	RThread thread1;
+	RThread thread2;
+	TRequestStatus reqStatus1;
+	TRequestStatus reqStatus2;
+	Logger().ShareAuto();
+	INFO_PRINTF1(_L("Test connecting Multiple call of setpriorityclientV2 API from the different threads"));
+	const TInt KStackSize=0x8000;
+	const TInt KHeapSize=0x8000;
+	const TInt KMaxHeapSize=0x80000;
+	_LIT(KFirstThreadName,"FirstThread");
+	_LIT(KSecondThreadName,"SecondThread");
+	TInt res1=thread1.Create(KFirstThreadName, FirstThreadFunctiona,KStackSize,KHeapSize,KMaxHeapSize,(void*)this, EOwnerThread);
+	TESTCHECK(res1, KErrNone);
+	if(res1!=KErrNone)
+		{
+		ERR_PRINTF1(_L("CTestSetPriorityClientc:thread1.Create Failed to create a thread1"));
+		SetTestStepResult(EFail);
+		}
+	thread1.Logon(reqStatus1);	//Request 1
+	TInt resu1=(reqStatus1.Int(), KRequestPending);
+	TInt res2=thread2.Create(KSecondThreadName,SecondThreadFunctiona,KStackSize,KHeapSize,KMaxHeapSize,(void*)this, EOwnerThread);
+	TESTCHECK(res2, KErrNone);
+	if(res2!=KErrNone)
+		{
+		ERR_PRINTF1(_L("CTestSetPriorityClientc:thread2.Create Failed to create a thread2"));
+		SetTestStepResult(EFail);
+		}
+	thread2.Logon(reqStatus2);	//Request 2
+	TInt resu2=(reqStatus2.Int(), KRequestPending);
+	thread1.Resume();
+	User::After(1);
+	thread2.Resume();
+	User::WaitForRequest(reqStatus1);
+	User::WaitForRequest(reqStatus2);
+	TEST( ((reqStatus1==KErrNone) && (reqStatus2==KErrAlreadyExists)) ||
+		  ((reqStatus2==KErrNone) && (reqStatus1==KErrAlreadyExists)));
+	if (thread1.ExitType() != EExitKill && thread1.ExitReason() != 0)
+		{
+		User::Leave(thread1.ExitReason());
+		}//end of if (iThread1.ExitType() != EExitKill && iThread1.ExitReason() != 0)
+	thread1.Close();
+	INFO_PRINTF2(_L("First thread opened ETel session and returned %d"), res1);
+	if (thread2.ExitType() != EExitKill && thread2.ExitReason() != 0)
+		{
+		User::Leave(thread2.ExitReason());
+		}//end of if (iThread2.ExitType() != EExitKill && iThread2.ExitReason() != 0)
+	thread2.Close();
+	INFO_PRINTF2(_L("Second thread opened ETel session and returned %d"), res2);
+	return TestStepResult();
+	}