|
1 // Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies). |
|
2 // All rights reserved. |
|
3 // This component and the accompanying materials are made available |
|
4 // under the terms of "Eclipse Public License v1.0" |
|
5 // which accompanies this distribution, and is available |
|
6 // at the URL "http://www.eclipse.org/legal/epl-v10.html". |
|
7 // |
|
8 // Initial Contributors: |
|
9 // Nokia Corporation - initial contribution. |
|
10 // |
|
11 // Contributors: |
|
12 // |
|
13 // Description: |
|
14 // This main DLL entry point for the TE_ESock.dll |
|
15 // |
|
16 // |
|
17 |
|
18 |
|
19 |
|
20 // EPOC includes |
|
21 #include <e32base.h> |
|
22 |
|
23 // Test system includes |
|
24 #include "TestSuiteEsock.h" |
|
25 #include "esockopenserver.h" |
|
26 #include "EsockCloseServer.h" |
|
27 #include "EsockTestSection1.h" |
|
28 #include "EsockTestSection2.h" |
|
29 #include "EsockTestSection3.h" |
|
30 #include "EsockTestSection4.h" |
|
31 #include "EsockTestSection5.h" |
|
32 #include "EsockTestSection6.h" |
|
33 #include "EsockTestSection7.h" |
|
34 #include "EsockTestSection8.h" |
|
35 #include "EsockTestSection9.h" |
|
36 #include "EsockTestSection10.h" |
|
37 #include "EsockTestSection11.h" |
|
38 #include "EsockTestSection12.h" |
|
39 #include "EsockTestSection13.h" |
|
40 #include "EsockTestSection14.h" |
|
41 #include "EsockTestSection15.h" |
|
42 #include "EsockTestSection16.h" |
|
43 #include "EsockTestSection17.h" |
|
44 #include "EsockTestSection18.h" |
|
45 #include "EsockTestSection19.h" |
|
46 #include "EsockTestSection20.h" |
|
47 #include "EsockTestSection21.h" |
|
48 #include "EsockTestSection22.h" |
|
49 #include "EsockTestSection23.h" |
|
50 #include "EsockTestSection24.h" |
|
51 #include "EsockTestSection25.h" |
|
52 #include "EsockTestSection26.h" |
|
53 #include "EsockTestSection27.h" |
|
54 #include "EsockTestSection28.h" |
|
55 #include "EsockTestSection29.h" |
|
56 |
|
57 _LIT(KServerName,"TE_ESock"); |
|
58 |
|
59 CTestSuiteEsock* CTestSuiteEsock::NewL() |
|
60 /** |
|
61 * @return - Instance of the test server |
|
62 * Called inside the MainL() function to create and start the |
|
63 * CTestServer derived server. |
|
64 */ |
|
65 { |
|
66 CTestSuiteEsock * server = new (ELeave) CTestSuiteEsock(); |
|
67 CleanupStack::PushL(server); |
|
68 |
|
69 // Either use a StartL or ConstructL, the latter will permit |
|
70 // Server Logging. |
|
71 |
|
72 //server->StartL(KServerName); |
|
73 server->ConstructL(KServerName); |
|
74 server->InitialiseL(); |
|
75 CleanupStack::Pop(server); |
|
76 return server; |
|
77 } |
|
78 |
|
79 // Third phase constructor for ESOCK test suite |
|
80 void CTestSuiteEsock::InitialiseL( void ) |
|
81 { |
|
82 TInt ret = User::LoadPhysicalDevice( PDD_NAME ); |
|
83 if ( KErrNone != ret && KErrAlreadyExists != ret ) |
|
84 { |
|
85 User::Leave( ret ); |
|
86 } |
|
87 ret = User::LoadLogicalDevice( LDD_NAME ); |
|
88 if ( KErrNone != ret && KErrAlreadyExists != ret ) |
|
89 { |
|
90 User::Leave( ret ); |
|
91 } |
|
92 // When bootstrapping C32 we have to avoid the PhBkSyncServer being started, since |
|
93 // it needs a different CommDB |
|
94 _LIT(KPhbkSyncCMI, "phbsync.cmi"); |
|
95 ret = StartC32WithCMISuppressions(KPhbkSyncCMI); |
|
96 if ( KErrNone != ret && KErrAlreadyExists != ret ) |
|
97 { |
|
98 User::Leave( ret ); |
|
99 } |
|
100 |
|
101 iTestSuiteHeap = &User::Heap(); |
|
102 } |
|
103 |
|
104 |
|
105 // EKA2 much simpler |
|
106 // Just an E32Main and a MainL() |
|
107 LOCAL_C void MainL() |
|
108 /** |
|
109 * Much simpler, uses the new Rendezvous() call to sync with the client |
|
110 */ |
|
111 { |
|
112 // Leave the hooks in for platform security |
|
113 #if (defined __DATA_CAGING__) |
|
114 RProcess().DataCaging(RProcess::EDataCagingOn); |
|
115 RProcess().SecureApi(RProcess::ESecureApiOn); |
|
116 #endif |
|
117 CActiveScheduler* sched=NULL; |
|
118 sched=new(ELeave) CActiveScheduler; |
|
119 CActiveScheduler::Install(sched); |
|
120 |
|
121 CTestSuiteEsock* testsuite = NULL; |
|
122 // Create the CTestServer derived server |
|
123 |
|
124 TRAPD(err, testsuite=CTestSuiteEsock::NewL()); |
|
125 if(!err) |
|
126 { |
|
127 // Sync with the client and enter the active scheduler |
|
128 RProcess::Rendezvous(KErrNone); |
|
129 sched->Start(); |
|
130 } |
|
131 delete testsuite; |
|
132 delete sched; |
|
133 } |
|
134 |
|
135 |
|
136 GLDEF_C TInt E32Main() |
|
137 /** |
|
138 * @return - Standard Epoc error code on exit |
|
139 */ |
|
140 { |
|
141 CTrapCleanup* cleanup = CTrapCleanup::New(); |
|
142 if(cleanup == NULL) |
|
143 { |
|
144 return KErrNoMemory; |
|
145 } |
|
146 TRAP_IGNORE(MainL()); |
|
147 delete cleanup; |
|
148 return KErrNone; |
|
149 } |
|
150 |
|
151 // destructor |
|
152 CTestSuiteEsock::~CTestSuiteEsock() |
|
153 { |
|
154 // Delete all the sockets we made |
|
155 while(GetSocketListCount()) |
|
156 { |
|
157 CloseSocket(GetSocketListCount()); |
|
158 } |
|
159 |
|
160 // delete iSocketList; |
|
161 iSocketArray.Close(); |
|
162 } |
|
163 |
|
164 |
|
165 void CTestSuiteEsock::CloseSocket(TInt aIndex) |
|
166 { |
|
167 const TInt realIndex = aIndex-1; |
|
168 |
|
169 iSocketArray[realIndex].Close(); |
|
170 iSocketArray.Remove(realIndex); |
|
171 } |
|
172 |
|
173 |
|
174 /** |
|
175 Adds the supplied RSocket reference to the suite's socket container |
|
176 @param RSocket& reference to (just opened) RSocket |
|
177 @return KErrNone if reference successfully added to container, otherwise one of the system error codes. |
|
178 */ |
|
179 TInt CTestSuiteEsock::AddSocketToList(RSocket& aSocket) |
|
180 { |
|
181 RHeap* testStepHeap = User::SwitchHeap(iTestSuiteHeap); |
|
182 TInt res = iSocketArray.Append(aSocket); |
|
183 (void)User::SwitchHeap(testStepHeap); |
|
184 return res; |
|
185 } |
|
186 |
|
187 |
|
188 TInt CTestSuiteEsock::AddSocketToListL(RSocket& aSocket) |
|
189 { |
|
190 User::LeaveIfError(AddSocketToList(aSocket)); |
|
191 return iSocketArray.Count(); |
|
192 } |
|
193 |
|
194 |
|
195 TInt CTestSuiteEsock::GetSocketListCount() |
|
196 { |
|
197 // return iSocketList->Count(); |
|
198 return iSocketArray.Count(); |
|
199 } |
|
200 |
|
201 |
|
202 RSocket& CTestSuiteEsock::GetSocketHandle(TInt aIndex) |
|
203 { |
|
204 return iSocketArray[aIndex-1]; |
|
205 } |
|
206 |
|
207 |
|
208 // make a version string available for test system |
|
209 |
|
210 TPtrC CTestSuiteEsock::GetVersion( void ) |
|
211 { |
|
212 |
|
213 #ifdef _DEBUG |
|
214 _LIT(KTxtVersion,"1.007 (udeb)"); |
|
215 #else |
|
216 _LIT(KTxtVersion,"1.007"); |
|
217 #endif |
|
218 |
|
219 return KTxtVersion(); |
|
220 } |
|
221 |
|
222 CTestStep* CTestSuiteEsock::CreateTestStep(const TDesC& aStepName) |
|
223 /** |
|
224 * @return - A CTestStep derived instance |
|
225 * Implementation of CTestServer pure virtual |
|
226 */ |
|
227 { |
|
228 START_TEST_STEP_LIST |
|
229 // add test steps |
|
230 ADD_TEST_STEP(CEsockTest1_1 ) |
|
231 ADD_TEST_STEP(CEsockTest1_2 ) |
|
232 ADD_TEST_STEP(CEsockTest1_3 ) |
|
233 ADD_TEST_STEP(CEsockTest1_4 ) |
|
234 ADD_TEST_STEP(CEsockTest1_5 ) |
|
235 ADD_TEST_STEP(CEsockTest1_6 ) |
|
236 ADD_TEST_STEP(CEsockTest1_7 ) |
|
237 ADD_TEST_STEP(CEsockTest1_8 ) |
|
238 ADD_TEST_STEP(CEsockTest1_9 ) |
|
239 ADD_TEST_STEP(CEsockTest1_10 ) |
|
240 ADD_TEST_STEP(CEsockTest1_11 ) |
|
241 ADD_TEST_STEP(CEsockTest1_12 ) |
|
242 ADD_TEST_STEP(CEsockTest1_13 ) |
|
243 ADD_TEST_STEP(CEsockTest1_14 ) |
|
244 ADD_TEST_STEP(CEsockTest1_15 ) |
|
245 ADD_TEST_STEP(CEsockTest1_16 ) |
|
246 ADD_TEST_STEP(CEsockTest1_17 ) |
|
247 ADD_TEST_STEP(CEsockTest2_1 ) |
|
248 ADD_TEST_STEP(CEsockTest2_2 ) |
|
249 ADD_TEST_STEP(CEsockTest2_3 ) |
|
250 ADD_TEST_STEP(CEsockTest2_4 ) |
|
251 ADD_TEST_STEP(CEsockTest2_5 ) |
|
252 ADD_TEST_STEP(CEsockTest3_1 ) |
|
253 ADD_TEST_STEP(CEsockTest3_2 ) |
|
254 ADD_TEST_STEP(CEsockTest3_3 ) |
|
255 ADD_TEST_STEP(CEsockTest3_4 ) |
|
256 ADD_TEST_STEP(CEsockTest3_5 ) |
|
257 ADD_TEST_STEP(CEsockTest3_6 ) |
|
258 ADD_TEST_STEP(CEsockTest4_1 ) |
|
259 ADD_TEST_STEP(CEsockTest4_2 ) |
|
260 ADD_TEST_STEP(CEsockTest5_1 ) |
|
261 ADD_TEST_STEP(CEsockTest5_2 ) |
|
262 ADD_TEST_STEP(CEsockTest5_3 ) |
|
263 ADD_TEST_STEP(CEsockTest5_4 ) |
|
264 ADD_TEST_STEP(CEsockTest5_5 ) |
|
265 ADD_TEST_STEP(CEsockTest5_6 ) |
|
266 ADD_TEST_STEP(CEsockTest5_7 ) |
|
267 ADD_TEST_STEP(CEsockTest5_8 ) |
|
268 ADD_TEST_STEP(CEsockTest5_9 ) |
|
269 ADD_TEST_STEP(CEsockTest6_1 ) |
|
270 ADD_TEST_STEP(CEsockTest6_2 ) |
|
271 ADD_TEST_STEP(CEsockTest6_3 ) |
|
272 ADD_TEST_STEP(CEsockTest6_4 ) |
|
273 ADD_TEST_STEP(CEsockTest6_5 ) |
|
274 ADD_TEST_STEP(CEsockTest6_6 ) |
|
275 ADD_TEST_STEP(CEsockTest6_7 ) |
|
276 ADD_TEST_STEP(CEsockTest6_8 ) |
|
277 ADD_TEST_STEP(CEsockTest7_1 ) |
|
278 ADD_TEST_STEP(CEsockTest7_2 ) |
|
279 ADD_TEST_STEP(CEsockTest7_3 ) |
|
280 ADD_TEST_STEP(CEsockTest7_4 ) |
|
281 ADD_TEST_STEP(CEsockTest7_5 ) |
|
282 ADD_TEST_STEP(CEsockTest7_6 ) |
|
283 ADD_TEST_STEP(CEsockTest7_7 ) |
|
284 ADD_TEST_STEP(CEsockTest8_1 ) |
|
285 ADD_TEST_STEP(CEsockTest8_2 ) |
|
286 ADD_TEST_STEP(CEsockTest8_3 ) |
|
287 ADD_TEST_STEP(CEsockTest8_4 ) |
|
288 ADD_TEST_STEP(CEsockTest8_5 ) |
|
289 ADD_TEST_STEP(CEsockTest8_6 ) |
|
290 ADD_TEST_STEP(CEsockTest8_7 ) |
|
291 ADD_TEST_STEP(CEsockTest8_8 ) |
|
292 ADD_TEST_STEP(CEsockTest8_9 ) |
|
293 ADD_TEST_STEP(CEsockTest8_10 ) |
|
294 ADD_TEST_STEP(CEsockTest8_13 ) |
|
295 ADD_TEST_STEP(CEsockTest8_14 ) |
|
296 ADD_TEST_STEP(CEsockTest8_15 ) |
|
297 ADD_TEST_STEP(CEsockTest8_16 ) |
|
298 ADD_TEST_STEP(CEsockTest9_1 ) |
|
299 ADD_TEST_STEP(CEsockTest9_2 ) |
|
300 ADD_TEST_STEP(CEsockTest9_3 ) |
|
301 ADD_TEST_STEP(CEsockTest9_4 ) |
|
302 ADD_TEST_STEP(CEsockTest9_5 ) |
|
303 ADD_TEST_STEP(CEsockTest9_6 ) |
|
304 ADD_TEST_STEP(CEsockTest10_1 ) |
|
305 ADD_TEST_STEP(CEsockTest10_2 ) |
|
306 ADD_TEST_STEP(CEsockTest10_3 ) |
|
307 ADD_TEST_STEP(CEsockTest11_1 ) |
|
308 ADD_TEST_STEP(CEsockTest11_2 ) |
|
309 ADD_TEST_STEP(CEsockTest11_3 ) |
|
310 ADD_TEST_STEP(CEsockTest11_4 ) |
|
311 ADD_TEST_STEP(CEsockTest12_1 ) |
|
312 ADD_TEST_STEP(CEsockTest12_2 ) |
|
313 ADD_TEST_STEP(CEsockTest12_3 ) |
|
314 ADD_TEST_STEP(CEsockTest12_4 ) |
|
315 ADD_TEST_STEP(CEsockTest13_1 ) |
|
316 ADD_TEST_STEP(CEsockTest13_2 ) |
|
317 ADD_TEST_STEP(CEsockTest14_1 ) |
|
318 ADD_TEST_STEP(CEsockTest14_2 ) |
|
319 ADD_TEST_STEP(CEsockTest14_3 ) |
|
320 ADD_TEST_STEP(CEsockTest14_4 ) |
|
321 ADD_TEST_STEP(CEsockTest15_1 ) |
|
322 ADD_TEST_STEP(CEsockTest15_2 ) |
|
323 ADD_TEST_STEP(CEsockTest15_3 ) |
|
324 ADD_TEST_STEP(CEsockTest16_1 ) |
|
325 ADD_TEST_STEP(CEsockTest16_2 ) |
|
326 ADD_TEST_STEP(CEsockTest16_3 ) |
|
327 ADD_TEST_STEP(CEsockTest16_4 ) |
|
328 ADD_TEST_STEP(CEsockTest16_5 ) |
|
329 ADD_TEST_STEP(CEsockTest17_1 ) |
|
330 ADD_TEST_STEP(CEsockTest17_2 ) |
|
331 ADD_TEST_STEP(CEsockTest17_3 ) |
|
332 ADD_TEST_STEP(CEsockTest17_4 ) |
|
333 ADD_TEST_STEP(CEsockTest17_5 ) |
|
334 ADD_TEST_STEP(CEsockTest17_6 ) |
|
335 ADD_TEST_STEP(CEsockTest17_7 ) |
|
336 ADD_TEST_STEP(CEsockTest17_8 ) |
|
337 ADD_TEST_STEP(CEsockTest17_9 ) |
|
338 ADD_TEST_STEP(CEsockTest17_10 ) |
|
339 ADD_TEST_STEP(CEsockTest18_1 ) |
|
340 ADD_TEST_STEP(CEsockTest19_1 ) |
|
341 ADD_TEST_STEP(CEsockTest19_2 ) |
|
342 ADD_TEST_STEP(CEsockTest19_3 ) |
|
343 ADD_TEST_STEP(CEsockTest19_4 ) |
|
344 ADD_TEST_STEP(CEsockTest19_5 ) |
|
345 ADD_TEST_STEP(CEsockTest19_6 ) |
|
346 ADD_TEST_STEP(CEsockTest19_7 ) |
|
347 ADD_TEST_STEP(CEsockTest19_8 ) |
|
348 ADD_TEST_STEP(CEsockTest19_9 ) |
|
349 ADD_TEST_STEP(CEsockTest20_1 ) |
|
350 ADD_TEST_STEP(CEsockTest20_2 ) |
|
351 ADD_TEST_STEP(CEsockTest20_3 ) |
|
352 ADD_TEST_STEP(CEsockTest20_4 ) |
|
353 ADD_TEST_STEP(CEsockTest21_1 ) |
|
354 ADD_TEST_STEP(CEsockTest21_2 ) |
|
355 ADD_TEST_STEP(CEsockTest21_3 ) |
|
356 ADD_TEST_STEP(CEsockTest22_1 ) |
|
357 ADD_TEST_STEP(CEsockTest23_1 ) |
|
358 ADD_TEST_STEP(CEsockTest23_2 ) |
|
359 ADD_TEST_STEP(CEsockTest23_3 ) |
|
360 ADD_TEST_STEP(CEsockTest23_4 ) |
|
361 ADD_TEST_STEP(CEsockTest23_5 ) |
|
362 ADD_TEST_STEP(CEsockTest23_6 ) |
|
363 ADD_TEST_STEP(CEsockTest23_7 ) |
|
364 ADD_TEST_STEP(CEsockTest23_8 ) |
|
365 ADD_TEST_STEP(CEsockTest23_9 ) |
|
366 ADD_TEST_STEP(CEsockTest23_10 ) |
|
367 ADD_TEST_STEP(CEsockTest24_1 ) |
|
368 ADD_TEST_STEP(CEsockTest24_2 ) |
|
369 ADD_TEST_STEP(CEsockTest25_1 ) |
|
370 ADD_TEST_STEP(CEsockTest25_2 ) |
|
371 ADD_TEST_STEP(CEsockTest25_3 ) |
|
372 ADD_TEST_STEP(CEsockTest25_4 ) |
|
373 ADD_TEST_STEP(CEsockTest25_5 ) |
|
374 |
|
375 ADD_TEST_STEP(CEsockTest26_1 ) |
|
376 ADD_TEST_STEP(CEsockTest26_2 ) |
|
377 ADD_TEST_STEP(CEsockTest26_3 ) |
|
378 ADD_TEST_STEP(CEsockTest26_4 ) |
|
379 ADD_TEST_STEP(CEsockTest26_5 ) |
|
380 ADD_TEST_STEP(CEsockTest26_6 ) |
|
381 ADD_TEST_STEP(CEsockTest26_7 ) |
|
382 |
|
383 ADD_TEST_STEP(CEsockTest27_1 ) |
|
384 ADD_TEST_STEP(CEsockTest27_2 ) |
|
385 ADD_TEST_STEP(CEsockTest27_3 ) |
|
386 ADD_TEST_STEP(CEsockTest27_4 ) |
|
387 ADD_TEST_STEP(CEsockTest27_5 ) |
|
388 ADD_TEST_STEP(CEsockTest27_6 ) |
|
389 |
|
390 ADD_TEST_STEP(CEsockTest27_1_ExplConn) |
|
391 ADD_TEST_STEP(CEsockTest27_1_MThread) |
|
392 |
|
393 |
|
394 ADD_TEST_STEP(CEsockTest28_1 ) |
|
395 ADD_TEST_STEP(CEsockTest28_2 ) |
|
396 |
|
397 ADD_TEST_STEP(CEsockTest29) |
|
398 ADD_TEST_STEP(CEsockTest29_10) |
|
399 ADD_TEST_STEP(CEsockTest29_11) |
|
400 |
|
401 ADD_TEST_STEP(CEsockOpenServer ) |
|
402 ADD_TEST_STEP(CEsockCloseServer ) |
|
403 |
|
404 ADD_TEST_STEP(CEsockSendData ) |
|
405 ADD_TEST_STEP(CEsockOpenUdpSocket ) |
|
406 ADD_TEST_STEP(CEsockSendUdpData ) |
|
407 ADD_TEST_STEP(CEsockSendTcpData ) |
|
408 END_TEST_STEP_LIST |
|
409 } |
|
410 |
|
411 |