systemhealthmanagement/systemhealthmgr/test/tsysmon/src/tsysmon_steposrestarttest.cpp
branchRCL_3
changeset 22 8cb079868133
parent 21 ccb4f6b3db21
child 23 c26be94c8889
--- a/systemhealthmanagement/systemhealthmgr/test/tsysmon/src/tsysmon_steposrestarttest.cpp	Tue Aug 31 16:29:05 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,232 +0,0 @@
-// Copyright (c) 2010 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:
-//
-
-/**
- @file
- @test
- @internalComponent - Internal Symbian test code
-*/
-
-#include "testprocgoodsession.h"
-#include "tsysmon_steposrestarttest.h"
-#include <ssm/ssmstate.h>
-#include <ssm/ssmdomaindefs.h>
-#include <ssm/ssmstateawaresession.h>
-#include <sysmonclisess.h>
-#include <startupproperties.h>
-#include <e32cmn.h>
-#include <f32file.h>
-
-_LIT(KSysMonDontRendezvousRunCountFile, "C:\\testdata\\runcounts\\tsysmon_app_dontrendezvous.exe");
-
-CStepOSRestart::CStepOSRestart(const TDesC& aTestName): iTestName(aTestName)
-	{
-    if (aTestName == KCTestCaseCriticalNoRetries)
-        SetTestStepName(KCTestCaseCriticalNoRetriesStep);
-    else if (aTestName == KCTestCaseRestartOS)
-        SetTestStepName(KCTestCaseRestartOSStep);
-    else
-        {
-        // If the test script is none of the above then we would fail the test
-        TEST(KErrArgument);
-        }
-	}
-
-CStepOSRestart::~CStepOSRestart()
-    {
-    iSsmStateAwareSess.Close();
-    if (iAsyncCallbackForStartTest)
-        delete iAsyncCallbackForStartTest;
-    if(iAsyncCallbackForStopScheduler)
-        delete iAsyncCallbackForStopScheduler;
-    }
-
-void CStepOSRestart::StateChanged(TSsmState aSsmState)
-    {
-  
-    }
-void CStepOSRestart::CallStopSchedulerL()
-	{
-	TSsmState currenState;
-	currenState = iSsmStateAwareSess.State();
-
-	TUint16 currentMainState = currenState.MainState();
-	// Active scheduler is stopped once the system goes into shutdown state, else it issues a request for callback again
-	// Once the system gets into normal state start the state transition test
-	if (currentMainState == ESsmFail || currentMainState == ESsmShutdown)
-		{
- 		RDebug::Print(_L("\nStateTran Test: Stop Active Scheduler\n"));
- 		TInt runCount = CSysMonTestHelper::ReadRunCountL(KSysMonDontRendezvousRunCountFile);
- 		if((iTestName == KCTestCaseCriticalNoRetries) && (1 != runCount))
- 		    SetTestStepResult(EFail);
- 		else if((iTestName == KCTestCaseRestartOS) && (2 != runCount))
- 		    SetTestStepResult(EFail);
-		CActiveScheduler::Stop();
-		}
-	else
-		{
-		iAsyncCallbackForStopScheduler->CallBack();
-		}
-	}
-
-static TInt StopScheduler(TAny* aStateTranFromNormal)
- 	{
- 	CStepOSRestart* stateTran = reinterpret_cast<CStepOSRestart*>(aStateTranFromNormal);
- 	TRAPD(err,stateTran->CallStopSchedulerL());
- 	return err;
- 	}
-
-
-TVerdict CStepOSRestart::doTestStepL()
-	{
-    TInt err =0;
-    if (iTestName == KCTestCaseCriticalNoRetries)
-        {
-        TRAP(err, TestCriticalNoRetriesL());
-        }
-    else if (iTestName == KCTestCaseRestartOS)
-        {
-        TRAP(err, TestRestartOSL());
-        }
-    TEST(KErrNone == err);
-    return TestStepResult();    
-	}
-
-void CStepOSRestart::TestCriticalNoRetriesL()
-    {
-	CActiveScheduler* sched=new(ELeave) CActiveScheduler;
-	CleanupStack::PushL(sched);
-	CActiveScheduler::Install(sched);
-
-	RSysMonSession sysmon;
-	sysmon.OpenL();
-	CleanupClosePushL(sysmon);
-
-	CStartupProperties* props = CStartupProperties::NewLC(_L("tsysmon_app_dontrendezvous.exe"), KNullDesC);
-	props->SetMonitored(ETrue);
-	props->SetStartupType(EStartProcess);
-	props->SetStartMethod(EWaitForStart);
-	props->SetNoOfRetries(1);
-	props->SetTimeout(0);
-	props->SetRecoveryParams(ECriticalNoRetries, 0);
-
-	RProcess slave1;
-	slave1.Create(_L("tsysmon_app_dontrendezvous.exe"), _L("5000"));
-	CleanupClosePushL(slave1);
-
-	TSsmState currenState;
-	// Connects to RSsmStateAwareSession in order to enquire about the current system state
-	TInt err = iSsmStateAwareSess.Connect(KSM2UiServicesDomain3);
-	TEST(err == KErrNone);
-	if (err == KErrNone)
-		RDebug::Print(_L("\nStateTran Test: RSsmStateAwareSession sess Connect %d\n"), err);
-	else
-		{
-		RDebug::Print(_L("\nStateTran Test: RSsmStateAwareSession sess Connect Failed\n"));	
-		User::Leave(err);
-		}
-
-	currenState = iSsmStateAwareSess.State();
-
-	RDebug::Print(_L("\nStateTran Test: Current System State is %d\n"), currenState.MainState());
-	TEST(currenState.MainState() == ESsmNormal);
-
-	iAsyncCallbackForStopScheduler =  new(ELeave) CAsyncCallBack(CActive::EPriorityIdle);
-	TCallBack stopSchedulerCallback(StopScheduler, this);
-	iAsyncCallbackForStopScheduler->Set(stopSchedulerCallback);
-
-	// call the callback function which keeps looping until the system state gets into fail state.
-	iAsyncCallbackForStopScheduler->CallBack();
-
-	// Notifier used to get the notification when system gets to fail state
-	CSsmStateAwareSession* notif_for_failstate = CSsmStateAwareSession::NewLC(KSM2UiServicesDomain3);
-	notif_for_failstate->AddSubscriberL(*this);
-
-    TRequestStatus status;
-    slave1.Rendezvous(status);
-    slave1.Resume();
-    User::WaitForRequest(status);
-	// Register with SysMon
-	sysmon.MonitorL(*props, slave1);
-	slave1.Terminate(KErrNone);
-
-	sched->Start();
-
-	CleanupStack::PopAndDestroy(5);
-	}
-
-void CStepOSRestart::TestRestartOSL()
-    {
-    CActiveScheduler* sched=new(ELeave) CActiveScheduler;
-    CleanupStack::PushL(sched);
-    CActiveScheduler::Install(sched);
-
-    RSysMonSession sysmon;
-    sysmon.OpenL();
-    CleanupClosePushL(sysmon);
-
-    CStartupProperties* props = CStartupProperties::NewLC(_L("tsysmon_app_dontrendezvous.exe"), KNullDesC);
-    props->SetMonitored(ETrue);
-    props->SetStartupType(EStartProcess);
-    props->SetStartMethod(EWaitForStart);
-    props->SetNoOfRetries(1);
-    props->SetTimeout(0);
-    props->SetRecoveryParams(ERestartOS, 0);
-
-    RProcess slave1;
-    slave1.Create(_L("tsysmon_app_dontrendezvous.exe"), _L("5000"));
-    CleanupClosePushL(slave1);
-
-    TSsmState currenState;
-    // Connects to RSsmStateAwareSession in order to enquire about the current system state
-    TInt err = iSsmStateAwareSess.Connect(KSM2UiServicesDomain3);
-    TEST(err == KErrNone);
-    if (err == KErrNone)
-        RDebug::Print(_L("\nStateTran Test: RSsmStateAwareSession sess Connect %d\n"), err);
-    else
-        {
-        RDebug::Print(_L("\nStateTran Test: RSsmStateAwareSession sess Connect Failed\n")); 
-        User::Leave(err);
-        }
-
-    currenState = iSsmStateAwareSess.State();
-
-    RDebug::Print(_L("\nStateTran Test: Current System State is %d\n"), currenState.MainState());
-    TEST(currenState.MainState() == ESsmNormal);
-
-    iAsyncCallbackForStopScheduler =  new(ELeave) CAsyncCallBack(CActive::EPriorityIdle);
-    TCallBack stopSchedulerCallback(StopScheduler, this);
-    iAsyncCallbackForStopScheduler->Set(stopSchedulerCallback);
-
-    // call the callback function which keeps looping until the system state gets into fail state.
-    iAsyncCallbackForStopScheduler->CallBack();
-
-    // Notifier used to get the notification when system gets to fail state
-    CSsmStateAwareSession* notif_for_failstate = CSsmStateAwareSession::NewLC(KSM2UiServicesDomain3);
-    notif_for_failstate->AddSubscriberL(*this);
-
-    TRequestStatus status;
-    slave1.Rendezvous(status);
-    slave1.Resume();
-    User::WaitForRequest(status);
-    // Register with SysMon
-    sysmon.MonitorL(*props, slave1);
-    slave1.Terminate(KErrNone);
-
-    sched->Start();
-
-    CleanupStack::PopAndDestroy(5);
-    }
-