sysstatemgmt/systemstateplugins/test/tunitgsapolicy/src/tgsa_step_startup.cpp
branchRCL_3
changeset 22 8cb079868133
parent 21 ccb4f6b3db21
equal deleted inserted replaced
21:ccb4f6b3db21 22:8cb079868133
     1 // Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies).
     1 // Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
     2 // All rights reserved.
     2 // All rights reserved.
     3 // This component and the accompanying materials are made available
     3 // This component and the accompanying materials are made available
     4 // under the terms of "Eclipse Public License v1.0"
     4 // under the terms of "Eclipse Public License v1.0"
     5 // which accompanies this distribution, and is available
     5 // which accompanies this distribution, and is available
     6 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
     6 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
    25 #include "ssmdebug.h"
    25 #include "ssmdebug.h"
    26 #include <e32uid.h>
    26 #include <e32uid.h>
    27 #include <ssm/ssmcommandlist.h>
    27 #include <ssm/ssmcommandlist.h>
    28 #include <ssm/ssmsubstates.hrh>
    28 #include <ssm/ssmsubstates.hrh>
    29 #include <ssm/ssmcommand.h>
    29 #include <ssm/ssmcommand.h>
    30 #include <ssmsubstateext.hrh>
       
    31 
    30 
    32 
    31 
    33 #ifdef SYMBIAN_SSM_GRACEFUL_SHUTDOWN
    32 #ifdef SYMBIAN_SSM_GRACEFUL_SHUTDOWN
    34 TSsmCommandType ArrCriticalStartUp[] = {ESsmCmdPublishSystemState,  //r_cmd_publishstate
    33 TSsmCommandType ArrCriticalStartUp[] = { ESsmCmdCustomCommand,ESsmCmdPublishSystemState,ESsmCmdStartProcess, ESsmCmdStartProcess, ESsmCmdStartProcess, ESsmCmdStartProcess,ESsmCmdStartProcess, ESsmCmdSetPAndSKey, ESsmCmdStartProcess, ESsmCmdStartProcess, ESsmCmdStartProcess, ESsmCmdLoadSup };
    35                                         ESsmCmdStartProcess,        //r_cmd_sysagt
       
    36                                         ESsmCmdCustomCommand,       //r_cmd_initpskeys
       
    37                                         ESsmCmdCustomCommand,       //r_cmd_checkuserdrive
       
    38                                         ESsmCmdCustomCommand,       //r_cmd_deltempfiles
       
    39                                         ESsmCmdStartProcess,        //r_cmd_reservedisk
       
    40                                         ESsmCmdStartProcess,        //r_cmd_sysmon
       
    41                                         ESsmCmdStartProcess,        //r_cmd_ssmutilsrv
       
    42                                         ESsmCmdMultipleWait         //r_cmd_multiwaitforever
       
    43                                         };
       
    44 #else
    34 #else
    45 TSsmCommandType ArrCriticalStartUp[] = { ESsmCmdCustomCommand,ESsmCmdPublishSystemState,ESsmCmdStartProcess, ESsmCmdStartProcess, ESsmCmdStartProcess, ESsmCmdStartProcess,ESsmCmdStartProcess, ESsmCmdSetPAndSKey, ESsmCmdStartProcess, ESsmCmdStartProcess, ESsmCmdStartProcess };
    35 TSsmCommandType ArrCriticalStartUp[] = { ESsmCmdCustomCommand,ESsmCmdPublishSystemState,ESsmCmdStartProcess, ESsmCmdStartProcess, ESsmCmdStartProcess, ESsmCmdStartProcess,ESsmCmdStartProcess, ESsmCmdSetPAndSKey, ESsmCmdStartProcess, ESsmCmdStartProcess, ESsmCmdStartProcess };
    46 #endif
    36 #endif
    47 TSsmCommandType ArrDynamicStartUp[] = {ESsmCmdPublishSystemState, ESsmCmdStartProcess, ESsmCmdStartProcess, ESsmCmdStartApp, ESsmCmdMultipleWait, ESsmCmdSetPAndSKey};
    37 TSsmCommandType ArrDynamicStartUp[] = {ESsmCmdPublishSystemState, ESsmCmdStartProcess, ESsmCmdStartProcess, ESsmCmdStartApp, ESsmCmdMultipleWait, ESsmCmdSetPAndSKey};
    48 TSsmCommandType ArrNetworkingStartUp[] = { ESsmCmdPublishSystemState,ESsmCmdStartProcess, ESsmCmdStartProcess, ESsmCmdStartProcess };
    38 TSsmCommandType ArrNetworkingStartUp[] = { ESsmCmdPublishSystemState,ESsmCmdStartProcess, ESsmCmdStartProcess, ESsmCmdStartProcess };
    49 #ifdef TEST_SSM_GRACEFUL_OFFLINE
    39 #ifdef TEST_SSM_GRACEFUL_OFFLINE
    50 TSsmCommandType ArrNonCriticalStartUp[] = { ESsmCmdSetPAndSKey, ESsmCmdSetPAndSKey,ESsmCmdSetPAndSKey,ESsmCmdPublishSystemState ,ESsmCmdStartProcess,ESsmCmdStartProcess,ESsmCmdStartProcess,ESsmCmdStartProcess,ESsmCmdStartProcess,ESsmCmdStartProcess,ESsmCmdAMAStarter};
    40 TSsmCommandType ArrNonCriticalStartUp[] = { ESsmCmdSetPAndSKey, ESsmCmdSetPAndSKey,ESsmCmdSetPAndSKey,ESsmCmdPublishSystemState ,ESsmCmdStartProcess,ESsmCmdStartProcess,ESsmCmdStartProcess,ESsmCmdStartProcess,ESsmCmdStartProcess,ESsmCmdStartProcess,ESsmCmdAMAStarter};
    51 #else
    41 #else
    52 TSsmCommandType ArrNonCriticalStartUp[] = { ESsmCmdCustomCommand,       //r_cmd_sastate
    42 TSsmCommandType ArrNonCriticalStartUp[] = { ESsmCmdPublishSystemState ,ESsmCmdStartProcess,ESsmCmdStartProcess,ESsmCmdStartProcess,ESsmCmdStartProcess,ESsmCmdStartProcess,ESsmCmdStartProcess,ESsmCmdAMAStarter};
    53                                             ESsmCmdPublishSystemState,  //r_cmd_publishstate
       
    54                                             ESsmCmdSetPAndSKey,         //r_cmd_psstate
       
    55                                             ESsmCmdCustomCommand,       //r_cmd_startupmode
       
    56                                             ESsmCmdLoadSup,             //r_cmd_loadpowersup
       
    57                                             ESsmCmdCustomCommand,       //r_cmd_rfsfirstboot
       
    58                                             ESsmCmdCustomCommand,       //r_cmd_rfsdeep
       
    59                                             ESsmCmdCustomCommand,       //r_cmd_rfsnormal
       
    60                                             ESsmCmdCustomCommand,       //r_cmd_initclkeys
       
    61                                             ESsmCmdCustomCommand,       //r_cmd_initramdrive
       
    62                                             ESsmCmdStartProcess,        //r_cmd_wserv
       
    63                                             ESsmCmdStartProcess,        //r_cmd_splash
       
    64                                             ESsmCmdStartProcess,        //r_cmd_tzsrv
       
    65                                             ESsmCmdStartProcess,        //r_cmd_mediator
       
    66                                             ESsmCmdStartProcess,        //r_cmd_hwrmsrv
       
    67                                             ESsmCmdCustomCommand,       //r_cmd_rtc
       
    68                                             ESsmCmdMultipleWait,        //r_cmd_multiwaitforever1
       
    69                                             ESsmCmdStartProcess,        //r_cmd_dbrecovery
       
    70                                             ESsmCmdStartProcess,        //r_cmd_accsrv
       
    71                                             ESsmCmdCustomCommand,       //r_cmd_selectlanguage
       
    72                                             ESsmCmdMultipleWait,        //r_cmd_multiwaitforever2
       
    73                                             ESsmCmdLoadSup,             //r_cmd_loadlocalesup
       
    74                                             ESsmCmdLoadSup,             //r_cmd_loadcollation
       
    75                                             ESsmCmdLoadSup,             //r_cmd_loadregion
       
    76                                             ESsmCmdLoadSup,             //r_cmd_loaduilanguage
       
    77                                             ESsmCmdCustomCommand,       //r_cmd_aknstart
       
    78                                             ESsmCmdWaitForApparcInit,   //r_cmd_apparc_init
       
    79                                             ESsmCmdCustomCommand        //r_cmd_rfspostui
       
    80                                             };
       
    81 #endif
    43 #endif
    82 TSsmCommandType ArrCriticalAppsStartUp[] = {ESsmCmdCustomCommand,       //r_cmd_sastate
       
    83                                             ESsmCmdPublishSystemState,  //r_cmd_publishstate
       
    84                                             ESsmCmdSetPAndSKey,         //r_cmd_psstate
       
    85                                             ESsmCmdCustomCommand,       //r_cmd_selftest
       
    86                                             ESsmCmdStartProcess,        //r_cmd_cfserver
       
    87                                             ESsmCmdStartApp,            //r_cmd_sysap
       
    88                                             ESsmCmdStartProcess,        //r_cmd_profmon
       
    89                                             ESsmCmdMultipleWait         //r_cmd_multiwaitforever
       
    90                                             };
       
    91 
    44 
    92 CGsaStartupTest::~CGsaStartupTest()
    45 CGsaStartupTest::~CGsaStartupTest()
    93 	{
    46 	{
    94 	}
    47 	}
    95 
    48 
   168  void CGsaStartupTest::doTestPrepareCommandListL()
   121  void CGsaStartupTest::doTestPrepareCommandListL()
   169 	{
   122 	{
   170 	INFO_PRINTF1(_L("> CGsaStartupTest::doTestPrepareCommandListL"));
   123 	INFO_PRINTF1(_L("> CGsaStartupTest::doTestPrepareCommandListL"));
   171 	TestPrepareCommandListL(ESsmStartup ,ESsmStartupSubStateCriticalStatic, KErrNone);
   124 	TestPrepareCommandListL(ESsmStartup ,ESsmStartupSubStateCriticalStatic, KErrNone);
   172 	TestPrepareCommandListL(ESsmStartup ,KSsmAnySubState, KErrNone);
   125 	TestPrepareCommandListL(ESsmStartup ,KSsmAnySubState, KErrNone);
       
   126 	TestPrepareCommandListL(ESsmStartup ,ESsmStartupSubStateCriticalDynamic, KErrNone);
       
   127 	TestPrepareCommandListL(ESsmStartup ,ESsmStartupSubStateNetworkingCritical, KErrNone);
   173 	TestPrepareCommandListL(ESsmStartup ,ESsmStartupSubStateNonCritical, KErrNone);
   128 	TestPrepareCommandListL(ESsmStartup ,ESsmStartupSubStateNonCritical, KErrNone);
   174 	TestPrepareCommandListL(ESsmStartup ,ESsmStateStartingCriticalApps, KErrNone); //ESsmStateStartingCriticalApps = 0x31
       
   175 	TestPrepareCommandListL(ESsmStartup ,100, KErrNotFound);
   129 	TestPrepareCommandListL(ESsmStartup ,100, KErrNotFound);
   176 	}
   130 	}
   177 
   131 
   178 /**
   132 /**
   179 Old Test CaseID 		AFSS-GSA-0013
   133 Old Test CaseID 		AFSS-GSA-0013
   183 void CGsaStartupTest::doTestCommandListL()
   137 void CGsaStartupTest::doTestCommandListL()
   184 	{
   138 	{
   185 	INFO_PRINTF1(_L("> CGsaStartupTest::doTestCommandListL"));
   139 	INFO_PRINTF1(_L("> CGsaStartupTest::doTestCommandListL"));
   186 
   140 
   187 	TestCommandListL(ESsmStartup, ESsmStartupSubStateCriticalStatic, sizeof(ArrCriticalStartUp) / sizeof(ArrCriticalStartUp[0]));
   141 	TestCommandListL(ESsmStartup, ESsmStartupSubStateCriticalStatic, sizeof(ArrCriticalStartUp) / sizeof(ArrCriticalStartUp[0]));
       
   142 	TestCommandListL(ESsmStartup, KSsmAnySubState, sizeof(ArrCriticalStartUp) / sizeof(ArrCriticalStartUp[0]));
       
   143 	TestCommandListL(ESsmStartup, ESsmStartupSubStateCriticalDynamic, sizeof(ArrDynamicStartUp) / sizeof(ArrDynamicStartUp[0]));
       
   144 	TestCommandListL(ESsmStartup, ESsmStartupSubStateNetworkingCritical, sizeof(ArrNetworkingStartUp) / sizeof(ArrNetworkingStartUp[0]));
   188 	TestCommandListL(ESsmStartup, ESsmStartupSubStateNonCritical, sizeof(ArrNonCriticalStartUp) / sizeof(ArrNonCriticalStartUp[0]));
   145 	TestCommandListL(ESsmStartup, ESsmStartupSubStateNonCritical, sizeof(ArrNonCriticalStartUp) / sizeof(ArrNonCriticalStartUp[0]));
   189 	TestCommandListL(ESsmStartup, ESsmStateStartingCriticalApps, sizeof(ArrCriticalAppsStartUp) / sizeof(ArrCriticalAppsStartUp[0]));	
       
   190 	}
   146 	}
   191 
   147 
   192 /**
   148 /**
   193 Old Test CaseID 		AFSS-GSA-0014
   149 Old Test CaseID 		AFSS-GSA-0014
   194 New Test CaseID 		DEVSRVS-SSPLUGINS-GSA-0010
   150 New Test CaseID 		DEVSRVS-SSPLUGINS-GSA-0010
   198 void CGsaStartupTest::doTestGetNextStateL()
   154 void CGsaStartupTest::doTestGetNextStateL()
   199 	{
   155 	{
   200 	CGsaStatePolicyStartup* policy = CreateAndInitializeStartUpPolicyLC();
   156 	CGsaStatePolicyStartup* policy = CreateAndInitializeStartUpPolicyLC();
   201 
   157 
   202 	TSsmState state(ESsmStartup, KSsmAnySubState);
   158 	TSsmState state(ESsmStartup, KSsmAnySubState);
   203 	TSsmState result(ESsmStartup, ESsmStartupSubStateNonCritical);
   159 	TSsmState result(ESsmStartup, ESsmStartupSubStateCriticalDynamic);
   204 	// KSsmAnySubState (KSsmAnySubState) will return ESsmStartupSubStateNonCritical only for the first time, 
   160 	// KSsmAnySubState (KSsmAnySubState) will return ESsmStartUpSubStateCriticalDynamic only for the first time, 
   205 	// next call will always return the next sub state for transition.
   161 	// next call will always return the next sub state for transition.
   206 	TestGetNextState(policy, state, KErrNone, result);
   162 	TestGetNextState(policy, state, KErrNone, result);
   207 
   163 
   208 	TSsmState firstState(ESsmStartup, ESsmStartupSubStateCriticalStatic);
   164 	TSsmState firstState(ESsmStartup, ESsmStartupSubStateCriticalStatic);
   209 	TSsmState firstResult(ESsmStartup, ESsmStartupSubStateNonCritical);
   165 	TSsmState firstResult(ESsmStartup, ESsmStartupSubStateCriticalDynamic);
   210 	TestGetNextState(policy, firstState, KErrNone, firstResult);
   166 	TestGetNextState(policy, firstState, KErrNone, firstResult);
   211 
   167 
   212 	TSsmState secondState(ESsmStartup, ESsmStartupSubStateNonCritical);
   168 	TSsmState secondState(ESsmStartup, ESsmStartupSubStateCriticalDynamic);
   213 	TSsmState secondResult(ESsmStartup, ESsmStateStartingCriticalApps);
   169 	TSsmState secondResult(ESsmStartup, ESsmStartupSubStateNetworkingCritical);
   214 	TestGetNextState(policy, secondState, KErrNone, secondResult);
   170 	TestGetNextState(policy, secondState, KErrNone, secondResult);
   215 
   171 
   216 	TSsmState thirdState(ESsmStartup, ESsmStateStartingCriticalApps);
   172 	TSsmState thirdState(ESsmStartup, ESsmStartupSubStateNetworkingCritical);
   217 	TSsmState thirdResult(ESsmStartup, ESsmStateSelfTestOK);
   173 	TSsmState thirdResult(ESsmStartup, ESsmStartupSubStateNonCritical);
   218 	TestGetNextState(policy, thirdState, KErrNone, thirdResult);
   174 	TestGetNextState(policy, thirdState, KErrNone, thirdResult);
       
   175 #ifdef __WINS__
       
   176 	TSsmState fourthState(ESsmStartup, ESsmStartupSubStateNonCritical);
       
   177 	TSsmState fourthResult(ESsmNormal, KSsmAnySubState);
       
   178 	TestGetNextState(policy, fourthState, KErrNone, fourthResult);
       
   179 #else
       
   180 	TSsmState fourthState(ESsmStartup, ESsmStartupSubStateNonCritical);
       
   181 	TSsmState fourthResult(ESsmStartup, 0x48);//Added 0x48 sub-state for new test for ARMV5 
       
   182 	TestGetNextState(policy, fourthState, KErrNone, fourthResult);
       
   183 	//This new state test Added for the one more sub-state available in ARMV5 compare to WINSCW
       
   184 	TSsmState fourthToNextState(ESsmStartup, 0x48);
       
   185 	TSsmState fourthToNextStateResult(ESsmNormal, KSsmAnySubState);
       
   186 	TestGetNextState(policy, fourthToNextState, KErrNone, fourthToNextStateResult);
       
   187 #endif
       
   188 
       
   189 	TSsmState fifthState(ESsmStartup, KSsmAnySubState);
       
   190 	TSsmState fifthResult(ESsmStartup, ESsmStartupSubStateCriticalDynamic);
       
   191 	// KSsmAnySubState (0xffff) will return ESsmStartUpSubStateCriticalDynamic only for the first time, 
       
   192 	// next call will always return the next sub state for transition.
       
   193 	TestGetNextState(policy, fifthState, KErrNone, fifthResult);
       
   194 	
       
   195 	//Commented this test because CGsaStatePolicyStartup::GETNExtstate panicks if substate is unknown
       
   196 	//TSsmState unknownState(ESsmStartup, 100);
       
   197 	//TSsmState knownResult(ESsmStartup, 0);
       
   198 	//TestGetNextState(policy, unknownState, KErrNone, knownResult);
   219 
   199 
   220 	CleanupStack::PopAndDestroy(policy);
   200 	CleanupStack::PopAndDestroy(policy);
   221 	}
   201 	}
   222 
   202 
   223 /**
   203 /**