|
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 contains ESock Test cases from section 2 |
|
15 // |
|
16 // |
|
17 |
|
18 // EPOC includes |
|
19 #include <e32base.h> |
|
20 #include <es_sock.h> |
|
21 |
|
22 // Test system includes |
|
23 #include "SocketTestSection2.h" |
|
24 |
|
25 |
|
26 // Test step 2.1 |
|
27 const TDesC& CSocketTest2_1::GetTestName() |
|
28 { |
|
29 _LIT(ret,"Test2.1"); |
|
30 return ret; |
|
31 } |
|
32 |
|
33 enum TVerdict CSocketTest2_1::InternalDoTestStepL( void ) |
|
34 { |
|
35 TVerdict verdict = EPass; |
|
36 |
|
37 Logger().WriteFormat(_L("Test Purpose: Basic Host Resolver")); |
|
38 |
|
39 // connect to esock |
|
40 Logger().WriteFormat(_L("Attempting to connect to socket server")); |
|
41 RSocketServ ss; |
|
42 TInt ret = OptimalConnect(ss); |
|
43 // TInt ret = OptimalConnect(ss); |
|
44 CleanupClosePushL(ss); |
|
45 Logger().WriteFormat(_L("Connect returned %S"), &EpocErrorToText(ret)); |
|
46 TESTL(KErrNone == ret); |
|
47 |
|
48 // find protocol won't work unless protocol is loaded |
|
49 // so force it with a socket open |
|
50 Logger().WriteFormat(_L("Open a socket on Dummy Protocol 1")); |
|
51 RSocket sock; |
|
52 ret = sock.Open(ss,_L("Dummy Protocol 1")); |
|
53 Logger().WriteFormat(_L("Open returned %S"), &EpocErrorToText(ret)); |
|
54 TESTL(KErrNone == ret); |
|
55 sock.Close(); |
|
56 |
|
57 // find a handle to dummy protocol 2 |
|
58 Logger().WriteFormat(_L("Finding dummy protocol 2")); |
|
59 TProtocolDesc protoInfo; |
|
60 ret = ss.FindProtocol(_L("Dummy Protocol 2"), protoInfo); |
|
61 Logger().WriteFormat(_L("FindProtocol returned %S"), &EpocErrorToText(ret)); |
|
62 TESTL(KErrNone == ret); |
|
63 |
|
64 // open host resolver |
|
65 Logger().WriteFormat(_L("Opening host resolver on dummy protocol 2")); |
|
66 RHostResolver hr; |
|
67 ret = hr.Open(ss, protoInfo.iAddrFamily, protoInfo.iProtocol); |
|
68 Logger().WriteFormat(_L("Open returned %S"), &EpocErrorToText(ret)); |
|
69 TESTL(KErrNotSupported == ret); |
|
70 |
|
71 // find a different protocol |
|
72 Logger().WriteFormat(_L("Finding dummy protocol 1")); |
|
73 ret = ss.FindProtocol(_L("Dummy Protocol 1"), protoInfo); |
|
74 Logger().WriteFormat(_L("FindProtocol returned %S"), &EpocErrorToText(ret)); |
|
75 TESTL(KErrNone == ret); |
|
76 |
|
77 // and open host resolver on this one |
|
78 Logger().WriteFormat(_L("Open host resolver on dummy protocol 1")); |
|
79 ret = hr.Open(ss, protoInfo.iAddrFamily, protoInfo.iProtocol); |
|
80 Logger().WriteFormat(_L("Open returned %S"), &EpocErrorToText(ret)); |
|
81 TESTL(KErrNone == ret); |
|
82 |
|
83 // now exercise GetByName |
|
84 Logger().WriteFormat(_L("Trying GetByName for DummyName")); |
|
85 TNameEntry nameEntry; |
|
86 ret = hr.GetByName(_L("DummyName"), nameEntry); |
|
87 Logger().WriteFormat(_L("GetByName returned %S"), &EpocErrorToText(ret)); |
|
88 TESTL(KErrNone == ret); |
|
89 TESTL(nameEntry().iName == _L("Name One")); |
|
90 |
|
91 Logger().WriteFormat(_L("Getting next name entry")); |
|
92 ret = hr.Next(nameEntry); |
|
93 Logger().WriteFormat(_L("Next returned %S"), &EpocErrorToText(ret)); |
|
94 TESTL(KErrNone == ret); |
|
95 TESTL(nameEntry().iName == _L("Name Two")); |
|
96 |
|
97 Logger().WriteFormat(_L("Getting next name entry")); |
|
98 ret = hr.Next(nameEntry); |
|
99 Logger().WriteFormat(_L("Next returned %S"), &EpocErrorToText(ret)); |
|
100 TESTL(KErrEof == ret); |
|
101 |
|
102 // and GetByAddress |
|
103 Logger().WriteFormat(_L("Trying GetByAddress")); |
|
104 TSockAddr a; |
|
105 ret = hr.GetByAddress(a, nameEntry); |
|
106 Logger().WriteFormat(_L("GetByAddress returned %S, port %d"), |
|
107 &EpocErrorToText(ret), nameEntry().iAddr.Port()); |
|
108 TESTL(KErrNone == ret); |
|
109 TESTL(10 == nameEntry().iAddr.Port()); |
|
110 |
|
111 Logger().WriteFormat(_L("Getting next name entry")); |
|
112 ret = hr.Next(nameEntry); |
|
113 Logger().WriteFormat(_L("Next returned %S, port %d"), |
|
114 &EpocErrorToText(ret), nameEntry().iAddr.Port()); |
|
115 TESTL(KErrNone == ret); |
|
116 TESTL(11 == nameEntry().iAddr.Port()); |
|
117 |
|
118 Logger().WriteFormat(_L("Getting next name entry")); |
|
119 ret = hr.Next(nameEntry); |
|
120 Logger().WriteFormat(_L("Next returned %S"), &EpocErrorToText(ret)); |
|
121 TESTL(KErrEof == ret); |
|
122 |
|
123 // Test cancelling host resolver request |
|
124 TRequestStatus stat; |
|
125 Logger().WriteFormat(_L("Trying GetByName")); |
|
126 hr.GetByName(_L("DontComplete"), nameEntry, stat); |
|
127 Logger().WriteFormat(_L("Cancelling request")); |
|
128 hr.Cancel(); |
|
129 User::WaitForRequest(stat); |
|
130 Logger().WriteFormat(_L("Request status is %S"), &EpocErrorToText(stat.Int())); |
|
131 TESTL(KErrCancel == stat.Int()); |
|
132 |
|
133 // Test SetHostName |
|
134 Logger().WriteFormat(_L("Trying SetHostName for Tara")); |
|
135 ret = hr.SetHostName(_L("Tara")); |
|
136 Logger().WriteFormat(_L("SetHostName returned %S"), &EpocErrorToText(ret)); |
|
137 TESTL(KErrNone == ret); |
|
138 |
|
139 Logger().WriteFormat(_L("Trying SetHostName for Nemesis")); |
|
140 ret = hr.SetHostName(_L("Nemesis")); |
|
141 Logger().WriteFormat(_L("SetHostName returned %S"), &EpocErrorToText(ret)); |
|
142 TESTL(KErrNotSupported == ret); |
|
143 |
|
144 // Test SetHostName/GetHostName |
|
145 Logger().WriteFormat(_L("Trying GetHostName")); |
|
146 TBuf<100> name; |
|
147 ret = hr.GetHostName(name); |
|
148 Logger().WriteFormat(_L("GetHostName returned %S, name was '%S'"), |
|
149 &EpocErrorToText(ret), &name); |
|
150 TESTL(KErrNone == ret); |
|
151 TESTL(_L("PDummyHostName") == name); |
|
152 |
|
153 Logger().WriteFormat(_L("Close host resolver")); |
|
154 hr.Close(); |
|
155 |
|
156 CleanupStack::Pop(&ss); |
|
157 ss.Close(); |
|
158 return verdict; |
|
159 } |
|
160 |
|
161 |