common/tools/ats/smoketest/lbs/lbsclient/src/ctlbsclientpostp93.cpp
changeset 748 e13acd883fbe
child 872 17498133d9ad
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/common/tools/ats/smoketest/lbs/lbsclient/src/ctlbsclientpostp93.cpp	Tue Nov 10 13:50:58 2009 +0000
@@ -0,0 +1,229 @@
+// Copyright (c) 2001-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 "Symbian Foundation License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.symbianfoundation.org/legal/sfl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+
+
+//  INCLUDES
+#include "ctlbsclientpostp93.h"
+#include "ctlbsclientperiodictester.h"
+
+// CONSTANTS
+_LIT(KServiceName1, " aaaaaaaaaaa");
+_LIT(KServiceName2, " bbbbbbbbbbb");
+_LIT(KServiceName3, " ccccccccccc");
+
+// ================= MEMBER FUNCTIONS =======================
+
+// ---------------------------------------------------------
+// Constructor.
+// ---------------------------------------------------------
+CT_LbsClientPosTp93::CT_LbsClientPosTp93(CT_LbsServer& aParent): CT_LbsPortedStepBase(aParent)
+	{  
+	_LIT(KTestName,"TP93 - Periodic Updates, Multiple clients");
+	SetTestStepName(KTestName); 
+	}
+
+// ---------------------------------------------------------
+// Destructor.
+// ---------------------------------------------------------
+CT_LbsClientPosTp93::~CT_LbsClientPosTp93()
+	{
+	}
+
+// ---------------------------------------------------------
+// CT_LbsClientPosTp93::CloseTest
+//
+// (other items were commented in a header).
+// ---------------------------------------------------------
+//
+void CT_LbsClientPosTp93::CloseTest()
+    {
+	iRequestArray.Reset();
+	iNameArray.Reset();
+	iRequestArray.Close();
+	iNameArray.Close();
+
+    }
+
+// ---------------------------------------------------------
+// CT_LbsClientPosTp93::StartL
+//
+// (other items were commented in a header).
+// ---------------------------------------------------------
+//
+void CT_LbsClientPosTp93::StartL()
+    {
+	SetupPsyL(iUidMultiPsy);
+	
+	TPtrC name1(KServiceName1);
+	TPtrC name2(KServiceName2);
+	TPtrC name3(KServiceName3);
+	
+	iNameArray.Append(name1);
+	iNameArray.Append(name2);
+	iNameArray.Append(name3);
+
+	TInt numberOfRuns = 25;
+	TTimeIntervalMicroSeconds interval1 = TTimeIntervalMicroSeconds(1000000);
+	TTimeIntervalMicroSeconds interval3 = TTimeIntervalMicroSeconds(3000000);
+	TTimeIntervalMicroSeconds interval5 = TTimeIntervalMicroSeconds(5000000);
+	TTimeIntervalMicroSeconds interval11 = TTimeIntervalMicroSeconds(11000000);
+	TTimeIntervalMicroSeconds interval13 = TTimeIntervalMicroSeconds(13000000);
+	TTimeIntervalMicroSeconds interval17 = TTimeIntervalMicroSeconds(17000000);
+
+	
+	TUid uid = iUidMultiPsy;
+    TInt errorsFound = KErrNone;
+	
+	CT_LbsClientPeriodicTester* periodicTester1 = 
+					CT_LbsClientPeriodicTester::NewL(interval1, 
+														KServiceName1, 
+														iLog, 
+														uid, 
+														numberOfRuns);
+	CleanupStack::PushL(periodicTester1);
+
+	CT_LbsClientPeriodicTester* periodicTester2 = 
+					CT_LbsClientPeriodicTester::NewL(interval3, 
+														KServiceName2, 
+														iLog, 
+														uid, 
+														numberOfRuns);
+	CleanupStack::PushL(periodicTester2);
+
+	CT_LbsClientPeriodicTester* periodicTester3 = 
+					CT_LbsClientPeriodicTester::NewL(interval5, 
+														KServiceName3, 
+														iLog, 
+														uid, 
+														numberOfRuns);
+	CleanupStack::PushL(periodicTester3);
+
+	periodicTester1->RequestNotification();
+	periodicTester2->RequestNotification();
+	periodicTester3->RequestNotification();
+
+	// Active scheduler is stopped three times.
+	CActiveScheduler::Start();
+	CActiveScheduler::Start();
+	CActiveScheduler::Start();
+
+    if (!periodicTester1->IsCompletedOK() || 
+    		!periodicTester2->IsCompletedOK() || 
+    		!periodicTester3->IsCompletedOK())
+        {
+        _LIT(KErr, "ERROR: periodicTester1-3 returned error");
+        INFO_PRINTF1(KErr);
+        errorsFound++;
+        }
+
+	CleanupStack::PopAndDestroy(3, periodicTester1);
+	
+	CT_LbsClientPeriodicTester* periodicTester4 = 
+						CT_LbsClientPeriodicTester::NewL(interval3, 
+															KServiceName1, 
+															iLog, 
+															uid, 
+															numberOfRuns);
+	CleanupStack::PushL(periodicTester4);
+
+	CT_LbsClientPeriodicTester* periodicTester5 = 
+						CT_LbsClientPeriodicTester::NewL(interval3, 
+															KServiceName2, 
+															iLog, 
+															uid, 
+															numberOfRuns);
+	CleanupStack::PushL(periodicTester5);
+
+	CT_LbsClientPeriodicTester* periodicTester6 = 
+						CT_LbsClientPeriodicTester::NewL(interval3, 
+															KServiceName3, 
+															iLog, 
+															uid, 
+															numberOfRuns);
+	CleanupStack::PushL(periodicTester6);
+
+	periodicTester4->RequestNotification();
+	periodicTester5->RequestNotification();
+	periodicTester6->RequestNotification();
+
+	// Active scheduler is stopped three times.
+	CActiveScheduler::Start();
+	CActiveScheduler::Start();
+	CActiveScheduler::Start();
+
+    if (!periodicTester4->IsCompletedOK() || 
+    		!periodicTester5->IsCompletedOK() || 
+    		!periodicTester6->IsCompletedOK())
+        {
+        _LIT(KErr, "ERROR: periodicTester4-6 returned error");
+        INFO_PRINTF1(KErr);
+        errorsFound++;
+        }
+
+	CleanupStack::PopAndDestroy(3, periodicTester4);
+	
+	CT_LbsClientPeriodicTester* periodicTester7 = 
+						CT_LbsClientPeriodicTester::NewL(interval11, 
+															KServiceName1, 
+															iLog, 
+															uid, 
+															numberOfRuns);
+	CleanupStack::PushL(periodicTester7);
+
+	CT_LbsClientPeriodicTester* periodicTester8 = 
+						CT_LbsClientPeriodicTester::NewL(interval13, 
+															KServiceName2, 
+															iLog, 
+															uid, 
+															numberOfRuns);
+	CleanupStack::PushL(periodicTester8);
+
+	CT_LbsClientPeriodicTester* periodicTester9 = 
+						CT_LbsClientPeriodicTester::NewL(interval17, 
+															KServiceName3, 
+															iLog, 
+															uid, 
+															numberOfRuns);
+	CleanupStack::PushL(periodicTester9);
+
+	periodicTester7->RequestNotification();
+	periodicTester8->RequestNotification();
+	periodicTester9->RequestNotification();
+
+	// Active scheduler is stopped three times.
+	CActiveScheduler::Start();
+	CActiveScheduler::Start();
+	CActiveScheduler::Start();
+
+    if (!periodicTester7->IsCompletedOK() || 
+    		!periodicTester8->IsCompletedOK() || 
+    		!periodicTester9->IsCompletedOK())
+        {
+        _LIT(KErr, "ERROR : periodicTester7-9 returned error");
+        INFO_PRINTF1(KErr);
+        errorsFound++;
+        }
+
+	CleanupStack::PopAndDestroy(3, periodicTester7);
+
+    if (errorsFound != KErrNone)
+        {
+        _LIT(KErr, "Errors returned from some periodicTester");
+        LogErrorAndLeaveL(KErr);
+        }
+	}
+
+// End of File