1 rizwank 1.1 %META:TOPICINFO{author="MarvChiang" date="1108183528" format="1.0" version="1.9"}%
2 %META:TOPICPARENT{name="WebHome"}%
3 <h2><a name="Proposed_Timeline"> </a> Proposed Timeline </h2>
4
5 <table>
6 <tr>
7
8 <td width=100><u><b>Date</b></u></td> <td><u><b>Weight</b></u></td> <td> <u><b>Project</b></u><br></td>
9 </tr>
10
11 <tr>
12 <td valign=top bgcolor=CCDDFF><b>2005-1-19</b></td>
13 <td align=center valign=top bgcolor=DDFFCC>4%</td>
14 <td bgcolor=FFFFCC><ul><li>Projects 0 and 1</li>
15 <li>Install Linux (Fedora Core 3) on desktop and laptop.</li>
16 <li>Download, build and install WINE.</li></ul></td>
17 </tr>
18
19 <tr>
20 <td valign=top bgcolor=CCDDFF><b>2005-1-21</b></td>
21 <td align=center valign=top bgcolor=DDFFCC>1%</td>
22 rizwank 1.1 <td bgcolor=FFFFCC><ul><li> Initial schedule</li>
23 <li>Submit progress report to TA.</li></ul></td>
24 </tr>
25
26
27
28 <tr>
29 <td valign=top bgcolor=CCDDFF><b>2005-2-2</b></td>
30 <td align=center valign=top bgcolor=DDFFCC>5%</td>
31 <td bgcolor=FFFFCC><ul><li> Finish project 2</li>
32 <li>Research DLLs and choose one.</li></ul></td>
33 </tr>
34
35 <tr>
36 <td valign=top bgcolor=CCDDFF><b>2005-2-11</b></td>
37 <td align=center valign=top bgcolor=DDFFCC>7%</td>
38 <td bgcolor=FFFFCC><ul><li> Design winsock conformance test.</li>
39 <li>Determine common uses of DLL and pick 2-3 functions to test.</li>
40 <li>Come up as many test cases as possible.</li></ul></td>
41 </tr>
42
43 rizwank 1.1 <tr>
44 <td valign=top bgcolor=CCDDFF><b>2005-2-18</b></td>
45 <td align=center valign=top bgcolor=DDFFCC>6%</td>
46 <td bgcolor=FFFFCC><ul><li> Get the expected results.</li>
47 <li>Develop wine32 app with test cases and run it on Windows XP.</li>
48 <li>Record all the outputs.</li></ul></td>
49 </tr>
50
51 <tr>
52 <td valign=top bgcolor=CCDDFF><b>2005-2-25</b></td>
53 <td align=center valign=top bgcolor=DDFFCC>7%</td>
54 <td bgcolor=FFFFCC><ul><li> Run tests on Linux.</li>
55 <li>Run the same tests on Linux.</li>
56 <li>Compare the outputs.</li></ul></td>
57 </tr>
58
59 <tr>
60 <td valign=top bgcolor=CCDDFF><b>2005-3-4</b></td>
61 <td align=center valign=top bgcolor=DDFFCC>3%</td>
62 <td bgcolor=FFFFCC><ul><li> Submit conformance test and bug report to wineHQ.</li>
63 <li>Add more test cases if necessary and resubmit.</li></ul></td>
64 rizwank 1.1 </tr>
65
66 <tr>
67 <td valign=top bgcolor=CCDDFF><b>2005-3-17</b></td>
68 <td align=center valign=top bgcolor=DDFFCC>7%</td>
69 <td bgcolor=FFFFCC><ul><li> Winsock conformance test demo.</li>
70 <li>Conformance test accepted into wineHQ CVS.</li></ul></td>
71 </tr>
72
73 </table>
74
75
76 <h2> Incremental Progress </h2>
77 <strong>2005-01-19:</strong>
78 <ul>
79 <li> Installed Fedora Core 3 on a desktop and laptop
80 </li>
81 <li> Downloaded, Installed, and Built WINE
82 </li>
83 <li> Successfully ran notepad.exe.so
84 </li>
85 rizwank 1.1 </ul>
86
87 <strong>2005-01-20:</strong>
88 <ul><li> Began initial stages of Project 2</li>
89 <li>Ran conformance test suite under WINE.</li>
90 <li>Got more errors and "Test failed" cases than expected - debugging.</li>
91 </ul>
92
93 <strong>2005-01-21:</strong>
94 <ul><li> Created initial schedule</li>
95 <li>Submitted progress report to TA.</li></ul>
96
97 <p />
98 <strong>2005-01-28:</strong>
99 <ul>
100 <li>Researched DLLs and chose Winsock DLL.
101 </li>
102 <li>Chose single thread, non-blocking I/O
103 </li>
104 </uL>
105
106 rizwank 1.1 <p />
107 <strong>2005-02-03:</strong>
108 <ul>
109 <li> Ran conformance test. Didn't get the same results as Dan, but the errors seem to be unrelated to what we're doing. Here's the output of 'grep "Test failed" log | sed 's/:.*//' | uniq -c | sort':
110 </li>
111 <pre>
112 13 generated.c
113 1 url.c
114 2 typelib.c
115 3 file.c
116 </pre>
117 <li> Logfile for conformance test (laptop):
118 <a href="http://www.seas.ucla.edu/~marvin/log">conformance log</a>
119 </li>
120 </ul>
121
122 <strong>2005-02-11:</strong>
123 <ul>
124
125 <li>Decided on which Winsock APIs to test. We are using the
126 following functions because they are fundamental for creating
127 rizwank 1.1 the client/server Winsock model. We may decide to expand to
128 more interesting fucntions if we get a chance. We will be using
129 multi-threaded asynchronous connection using these APIs.
130 </li>
131 <pre>
132 - int WSAStartup( WORD wVersionRequested, LPWSADATA lpWSAData );
133 - SOCKET socket( int af, int type, int protocol );
134 - int bind( SOCKET s, const struct sockaddr* name, int namelen );
135 - int listen( SOCKET s, int backlog );
136 - SOCKET accept( SOCKET s, struct sockaddr* addr, int* addrlen );
137 - int connect( SOCKET s, const struct sockaddr* name, int namelen );
138 - int send( SOCKET s, const char* buf, int len, int flags );
139 - int recv( SOCKET s, char* buf, int len, int flags );
140 </pre>
141
142
143 <li>
144 Test cases for WSAStartup():
145
146 <pre>
147 1. Request the following Winsock versions for WORD wVersionRequested:
148 rizwank 1.1 a. 1.0
149 b. 1.1
150 c. 2.0
151
152 Using the different combinations, generate the error code
153 WSAVERNOTSUPPORTED, and proper version requests.
154
155 2. Pass in a bad pointer for lpWSAData, and generate WSAEFAULT error.
156 3. Remove the Windows Sockets DLL file to attempt to generate the
157 WSASYSNOTREADY error.
158 4. Instantiate two network operations to generate WSAEINPROGRESS
159 error and possibly the WSAEPROCLIM error.
160 5. Record multiple successful calls and verify return code 0.
161 </pre>
162 </li>
163
164
165
166 <li>
167 Test cases for socket():
168 <pre>
169 rizwank 1.1 1 Success - return socket descriptor(no way to verify except that
170 it's != INVALID_SOCKET)
171 a. TCP
172 b. UDP
173 2. Fail - return INVALID_SOCKET
174 a. WAStartup was not called(or failed)
175 b. invalid address
176 c. no more socket descriptors(will try to implement but may not
177 be able to)
178 d. no more buffer(same as above)
179 e. invalid protocol
180 </pre>
181 </li>
182
183
184 <li>
185 Test cases for bind():
186 <pre>
187 1. Successful Bind
188 a. TCP
189 b. UDP
190 rizwank 1.1 2. Error
191 a. return SOCKET_ERROR
192 i. invalud SOCKET descriptor
193 ii. invalid sockaddr struct
194 iii. invalid namelen
195 iv. unsuccessful WAStartup called
196 v. tried to open UDP when SO_BROADCAST is not enabled
197 vi. address is already bound to another process
198 vii. invalud address
199 viii. socket already bound to another address
200 ix. too many connections/not enough buffer -> not sure if this can be done yet
201 </pre>
202 </li>
203
204
205 <li>
206 Test cases for listen():
207 <pre>
208 1 success - return 0
209 a. TCP
210 b. UDP
211 rizwank 1.1 2. fail - return SOCKET_ERROR
212 a. WAStartup not called successfully
213 b. socket's local address is already in use
214 c. socket not bound with bind()
215 d. socket is already connected
216 e. no more socket descriptors available
217 f. No more buffer space
218 g. invalid descriptor
219 </pre>
220 </li>
221
222
223 <li>
224 Test cases for accept():
225 <pre>
226 1. Success - returns a value of type SOCKET (descriptor for new socket)
227 a. TCP
228 b. UDP
229 2. Failure - returns a value of INVALID_SOCKET
230 a. Call before initialization, generating WSANOTINITIALISED error.
231 b. Use a small addrlen for WSAEFAULT error.
232 rizwank 1.1 c. Call during a blocking sockets call to get WSAEINTR error.
233 d. Simulate network failure to get WSAENETDOWN error.
234 e. Use an invalid socket to generate WSAEOPNOTSUPP error.
235 f. Flood the buffer to generate WSAENOBUFS error.
236 </pre>
237 </li>
238
239
240 <li>
241 Test cases for connect():
242 <pre>
243 1. Success - 0 returned
244 a. TCP
245 b. UDP
246 2. Fail - SOCKET_ERROR returned
247 a. WAStartup not called successfully
248 b. socket's local address already in use
249 c. invalid address
250 d. invalud namelen
251 e. socket parameter is a listening socket
252 f. socket already connected
253 rizwank 1.1 g. no buffer space
254 h. invalid descriptor
255 </pre>
256 </li>
257
258
259
260
261
262
263
264
265 <li>
266 Test cases for send():
267 <pre>
268 1. Success - returns number of bytes received(!= SOCKET_ERROR)
269 a. TCP
270 b. UDP
271 2. Failure
272 a. Pass invalid socket descriptor to generate WSAENOTSOCK error.
273 b. Call the fucntion before initialization to generate WSANOTINITIALIZED.
274 rizwank 1.1 c. Create an extremely large input buffer to generate WSAEMSGIZE error.
275 d. Simulate network failure for errors WSAENETDOWN, WSAECONNRESET, WSETIMEDOUT
276 e. Call during blocking Windows call in progress to get WSAEINPROGRESS.
277 </pre>
278 </li>
279
280
281 <li>
282 Test cases for recv():
283 <pre>
284 1. Success - returns number of bytes received(!= SOCKET_ERROR)
285 a. TCP
286 b. UDP
287 for each try to test cases where you get 0 byte(connection closed) and non-0 bytes received
288 2. Fail - returns SOCKET_ERROR
289 a. WAStartup was not called successfullly
290 b. socket not connected
291 c. buf not allocated properly
292 d. invalid descriptor
293 e. socket was marked 'non-blocking' even though recv() will block
294 f. message was too large(truncated)
295 rizwank 1.1 g. bind was not successfully called earlier
296 </pre>
297 </li>
298
299
300
301
302
303 </ul>
304
305 <h2> Grade Spreadsheet </h2>
306
307 * [[%ATTACHURL%/wine1_status.xls][wine1_status.xls]]: WINE 1 - Grade File
308
309 %META:FILEATTACHMENT{name="wine1_status.xls" attr="" comment="WINE 1 - Grade File" date="1108186049" path="C:\Documents and Settings\Mogs\Desktop\wine1_status.xls" size="15360" user="MarvChiang" version="1.2"}%
|