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> |
30 |
31 |
31 |
32 |
32 #ifdef SYMBIAN_SSM_GRACEFUL_SHUTDOWN |
33 #ifdef SYMBIAN_SSM_GRACEFUL_SHUTDOWN |
33 TSsmCommandType ArrCriticalStartUp[] = { ESsmCmdCustomCommand,ESsmCmdPublishSystemState,ESsmCmdStartProcess, ESsmCmdStartProcess, ESsmCmdStartProcess, ESsmCmdStartProcess,ESsmCmdStartProcess, ESsmCmdSetPAndSKey, ESsmCmdStartProcess, ESsmCmdStartProcess, ESsmCmdStartProcess, ESsmCmdLoadSup }; |
34 TSsmCommandType ArrCriticalStartUp[] = {ESsmCmdPublishSystemState, //r_cmd_publishstate |
|
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 }; |
34 #else |
44 #else |
35 TSsmCommandType ArrCriticalStartUp[] = { ESsmCmdCustomCommand,ESsmCmdPublishSystemState,ESsmCmdStartProcess, ESsmCmdStartProcess, ESsmCmdStartProcess, ESsmCmdStartProcess,ESsmCmdStartProcess, ESsmCmdSetPAndSKey, ESsmCmdStartProcess, ESsmCmdStartProcess, ESsmCmdStartProcess }; |
45 TSsmCommandType ArrCriticalStartUp[] = { ESsmCmdCustomCommand,ESsmCmdPublishSystemState,ESsmCmdStartProcess, ESsmCmdStartProcess, ESsmCmdStartProcess, ESsmCmdStartProcess,ESsmCmdStartProcess, ESsmCmdSetPAndSKey, ESsmCmdStartProcess, ESsmCmdStartProcess, ESsmCmdStartProcess }; |
36 #endif |
46 #endif |
37 TSsmCommandType ArrDynamicStartUp[] = {ESsmCmdPublishSystemState, ESsmCmdStartProcess, ESsmCmdStartProcess, ESsmCmdStartApp, ESsmCmdMultipleWait, ESsmCmdSetPAndSKey}; |
47 TSsmCommandType ArrDynamicStartUp[] = {ESsmCmdPublishSystemState, ESsmCmdStartProcess, ESsmCmdStartProcess, ESsmCmdStartApp, ESsmCmdMultipleWait, ESsmCmdSetPAndSKey}; |
38 TSsmCommandType ArrNetworkingStartUp[] = { ESsmCmdPublishSystemState,ESsmCmdStartProcess, ESsmCmdStartProcess, ESsmCmdStartProcess }; |
48 TSsmCommandType ArrNetworkingStartUp[] = { ESsmCmdPublishSystemState,ESsmCmdStartProcess, ESsmCmdStartProcess, ESsmCmdStartProcess }; |
39 #ifdef TEST_SSM_GRACEFUL_OFFLINE |
49 #ifdef TEST_SSM_GRACEFUL_OFFLINE |
40 TSsmCommandType ArrNonCriticalStartUp[] = { ESsmCmdSetPAndSKey, ESsmCmdSetPAndSKey,ESsmCmdSetPAndSKey,ESsmCmdPublishSystemState ,ESsmCmdStartProcess,ESsmCmdStartProcess,ESsmCmdStartProcess,ESsmCmdStartProcess,ESsmCmdStartProcess,ESsmCmdStartProcess,ESsmCmdAMAStarter}; |
50 TSsmCommandType ArrNonCriticalStartUp[] = { ESsmCmdSetPAndSKey, ESsmCmdSetPAndSKey,ESsmCmdSetPAndSKey,ESsmCmdPublishSystemState ,ESsmCmdStartProcess,ESsmCmdStartProcess,ESsmCmdStartProcess,ESsmCmdStartProcess,ESsmCmdStartProcess,ESsmCmdStartProcess,ESsmCmdAMAStarter}; |
41 #else |
51 #else |
42 TSsmCommandType ArrNonCriticalStartUp[] = { ESsmCmdPublishSystemState ,ESsmCmdStartProcess,ESsmCmdStartProcess,ESsmCmdStartProcess,ESsmCmdStartProcess,ESsmCmdStartProcess,ESsmCmdStartProcess,ESsmCmdAMAStarter}; |
52 TSsmCommandType ArrNonCriticalStartUp[] = { ESsmCmdCustomCommand, //r_cmd_sastate |
|
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 }; |
43 #endif |
81 #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 }; |
44 |
91 |
45 CGsaStartupTest::~CGsaStartupTest() |
92 CGsaStartupTest::~CGsaStartupTest() |
46 { |
93 { |
47 } |
94 } |
48 |
95 |
121 void CGsaStartupTest::doTestPrepareCommandListL() |
168 void CGsaStartupTest::doTestPrepareCommandListL() |
122 { |
169 { |
123 INFO_PRINTF1(_L("> CGsaStartupTest::doTestPrepareCommandListL")); |
170 INFO_PRINTF1(_L("> CGsaStartupTest::doTestPrepareCommandListL")); |
124 TestPrepareCommandListL(ESsmStartup ,ESsmStartupSubStateCriticalStatic, KErrNone); |
171 TestPrepareCommandListL(ESsmStartup ,ESsmStartupSubStateCriticalStatic, KErrNone); |
125 TestPrepareCommandListL(ESsmStartup ,KSsmAnySubState, KErrNone); |
172 TestPrepareCommandListL(ESsmStartup ,KSsmAnySubState, KErrNone); |
126 TestPrepareCommandListL(ESsmStartup ,ESsmStartupSubStateCriticalDynamic, KErrNone); |
|
127 TestPrepareCommandListL(ESsmStartup ,ESsmStartupSubStateNetworkingCritical, KErrNone); |
|
128 TestPrepareCommandListL(ESsmStartup ,ESsmStartupSubStateNonCritical, KErrNone); |
173 TestPrepareCommandListL(ESsmStartup ,ESsmStartupSubStateNonCritical, KErrNone); |
|
174 TestPrepareCommandListL(ESsmStartup ,ESsmStateStartingCriticalApps, KErrNone); //ESsmStateStartingCriticalApps = 0x31 |
129 TestPrepareCommandListL(ESsmStartup ,100, KErrNotFound); |
175 TestPrepareCommandListL(ESsmStartup ,100, KErrNotFound); |
130 } |
176 } |
131 |
177 |
132 /** |
178 /** |
133 Old Test CaseID AFSS-GSA-0013 |
179 Old Test CaseID AFSS-GSA-0013 |
137 void CGsaStartupTest::doTestCommandListL() |
183 void CGsaStartupTest::doTestCommandListL() |
138 { |
184 { |
139 INFO_PRINTF1(_L("> CGsaStartupTest::doTestCommandListL")); |
185 INFO_PRINTF1(_L("> CGsaStartupTest::doTestCommandListL")); |
140 |
186 |
141 TestCommandListL(ESsmStartup, ESsmStartupSubStateCriticalStatic, sizeof(ArrCriticalStartUp) / sizeof(ArrCriticalStartUp[0])); |
187 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])); |
|
145 TestCommandListL(ESsmStartup, ESsmStartupSubStateNonCritical, sizeof(ArrNonCriticalStartUp) / sizeof(ArrNonCriticalStartUp[0])); |
188 TestCommandListL(ESsmStartup, ESsmStartupSubStateNonCritical, sizeof(ArrNonCriticalStartUp) / sizeof(ArrNonCriticalStartUp[0])); |
|
189 TestCommandListL(ESsmStartup, ESsmStateStartingCriticalApps, sizeof(ArrCriticalAppsStartUp) / sizeof(ArrCriticalAppsStartUp[0])); |
146 } |
190 } |
147 |
191 |
148 /** |
192 /** |
149 Old Test CaseID AFSS-GSA-0014 |
193 Old Test CaseID AFSS-GSA-0014 |
150 New Test CaseID DEVSRVS-SSPLUGINS-GSA-0010 |
194 New Test CaseID DEVSRVS-SSPLUGINS-GSA-0010 |
154 void CGsaStartupTest::doTestGetNextStateL() |
198 void CGsaStartupTest::doTestGetNextStateL() |
155 { |
199 { |
156 CGsaStatePolicyStartup* policy = CreateAndInitializeStartUpPolicyLC(); |
200 CGsaStatePolicyStartup* policy = CreateAndInitializeStartUpPolicyLC(); |
157 |
201 |
158 TSsmState state(ESsmStartup, KSsmAnySubState); |
202 TSsmState state(ESsmStartup, KSsmAnySubState); |
159 TSsmState result(ESsmStartup, ESsmStartupSubStateCriticalDynamic); |
203 TSsmState result(ESsmStartup, ESsmStartupSubStateNonCritical); |
160 // KSsmAnySubState (KSsmAnySubState) will return ESsmStartUpSubStateCriticalDynamic only for the first time, |
204 // KSsmAnySubState (KSsmAnySubState) will return ESsmStartupSubStateNonCritical only for the first time, |
161 // next call will always return the next sub state for transition. |
205 // next call will always return the next sub state for transition. |
162 TestGetNextState(policy, state, KErrNone, result); |
206 TestGetNextState(policy, state, KErrNone, result); |
163 |
207 |
164 TSsmState firstState(ESsmStartup, ESsmStartupSubStateCriticalStatic); |
208 TSsmState firstState(ESsmStartup, ESsmStartupSubStateCriticalStatic); |
165 TSsmState firstResult(ESsmStartup, ESsmStartupSubStateCriticalDynamic); |
209 TSsmState firstResult(ESsmStartup, ESsmStartupSubStateNonCritical); |
166 TestGetNextState(policy, firstState, KErrNone, firstResult); |
210 TestGetNextState(policy, firstState, KErrNone, firstResult); |
167 |
211 |
168 TSsmState secondState(ESsmStartup, ESsmStartupSubStateCriticalDynamic); |
212 TSsmState secondState(ESsmStartup, ESsmStartupSubStateNonCritical); |
169 TSsmState secondResult(ESsmStartup, ESsmStartupSubStateNetworkingCritical); |
213 TSsmState secondResult(ESsmStartup, ESsmStateStartingCriticalApps); |
170 TestGetNextState(policy, secondState, KErrNone, secondResult); |
214 TestGetNextState(policy, secondState, KErrNone, secondResult); |
171 |
215 |
172 TSsmState thirdState(ESsmStartup, ESsmStartupSubStateNetworkingCritical); |
216 TSsmState thirdState(ESsmStartup, ESsmStateStartingCriticalApps); |
173 TSsmState thirdResult(ESsmStartup, ESsmStartupSubStateNonCritical); |
217 TSsmState thirdResult(ESsmStartup, ESsmStateSelfTestOK); |
174 TestGetNextState(policy, thirdState, KErrNone, thirdResult); |
218 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); |
|
199 |
219 |
200 CleanupStack::PopAndDestroy(policy); |
220 CleanupStack::PopAndDestroy(policy); |
201 } |
221 } |
202 |
222 |
203 /** |
223 /** |