(file) Return to Group1.txt CVS log (file) (dir) Up to [RizwankCVS] / geekymedia_web / twiki / data / WineDev

  1 rizwank 1.2 %META:TOPICINFO{author="MarvChiang" date="1109083914" format="1.0" version="1.15"}%
  2 rizwank 1.1 %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>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<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             <td bgcolor=FFFFCC><ul><li>  Initial schedule</li>
 23 rizwank 1.1 				 <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             <tr>
 44 rizwank 1.1 <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 rizwank 1.2 <td valign=top bgcolor=CCDDFF><b>2005-3-4</b></td>
 53 rizwank 1.1 <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 rizwank 1.2 <td valign=top bgcolor=CCDDFF><b>2005-3-11</b></td>
 61 rizwank 1.1 <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             </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 rizwank 1.1 </li>
 83             <li> Successfully ran notepad.exe.so
 84             </li>
 85             </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 rizwank 1.1 </li>
104             </uL>
105             
106             <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 rizwank 1.1  
125             <li>Decided on which Winsock APIs to test.  We are using the
126               following functions because they are fundamental for creating
127               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 rizwank 1.1 
146             <pre>
147             1. Request the following Winsock versions for WORD wVersionRequested:
148             	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 rizwank 1.1 <li>
167             Test cases for socket():
168             <pre>
169               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 rizwank 1.1   1. Successful Bind
188             		a. TCP
189             		b. UDP
190               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 rizwank 1.1   1 success - return 0
209             	  a. TCP
210             	  b. UDP
211               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 rizwank 1.1 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             	  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 rizwank 1.1 	  d. invalud namelen
251             	  e. socket parameter is a listening socket
252             	  f. socket already connected
253             	  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 rizwank 1.1 2. Failure 
272             	  a. Pass invalid socket descriptor to generate WSAENOTSOCK error.
273             	  b. Call the fucntion before initialization to generate WSANOTINITIALIZED.
274             	  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 rizwank 1.1 	  d.  invalid descriptor
293             	  e.  socket was marked 'non-blocking' even though recv() will block 
294             	  f.	message was too large(truncated)
295             	  g.  bind was not successfully called earlier
296             </pre>
297             </li>
298             
299 rizwank 1.2 <li>
300             Test cases for WSAAsyncSelect():
301             <pre>
302               1. Success - returns 0
303               2. Fail - returns SOCKET_ERROR
304             	  a.  WAStartup was not called successfullly
305             	  b.  invalid socket
306             	  c.  invalud handler
307             </pre>
308             </li>
309             
310             </ul>
311 rizwank 1.1 
312             
313             
314             
315 rizwank 1.2 <p />
316             <strong>2005-02-18:</strong>
317             <ul>
318             <li>The debugging phase is taking longer than expected, mainly because our 
319             tests have to call 9 APIs, which is considerably more than Dan's
320              original suggestion of 2 or 3.  We also underestimated the complexity of testing asynchronous I/O with 
321             winsock, and have been trying to resolve asynchronous-specific API issues.  Finally, we've spent some time trying to simulate inputs/environments for certain 
322             tests cases that are not straight-forward (for example: network is not 
323             ready; too many processes accessing a socket, etc)
324             
325             We are currently proposing a schedule revision.  We would like to extend our current milestone to next week due to the above issues.  This will not impact our final submission since we have allocated almost two weeks at the end for debugging.  Our goal is to be done with the Windows conformance code by early next week so that we can still maintain a generous buffer and stay ahead.
326             
327             
328             </li>
329             </uL>
330             
331             
332             <p />
333             <strong>2005-02-22:</strong>
334             <ul>
335             <li>
336 rizwank 1.2 Finished programming client and server test apps in Visual Studio using asynchronous I/O.  Currently the application sends out 100 bytes in 32 byte chunks.  More updates on this soon.
337             </li>
338 rizwank 1.1 </ul>
339             

Rizwan Kassim
Powered by
ViewCVS 0.9.2