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 /** |