%META:TOPICINFO{author="RizwanKassim" date="1108461409" format="1.0" version="1.15"}% %META:TOPICPARENT{name="WebHome"}% %TOC% ---++ Proposed Timeline
Date Task Description Deliverable Weight(%)
1/20
(complete)
Schedule Come up with a preliminary schedule for the project The schedule in Wiki 1
1/21
(complete)
Project 0 Install Windows and Linux Report on Wiki 2
  Project 1 Build Wine Report on Wiki 2
1/28
(complete)
Project 2 Run base conformance test Test results on Wiki 2
  Select DLL Research candiate DLL's and choose the one we will work on Report on Wiki 1
2/4
(complete)
Design Plan the conformance test, determine most commonly used functions and arguments. Report on Wiki 4
  Alpha Create first Win32 app, add a few function tests. Run in Windows Source 6
2/14 (complete) Beta

Have the most common calls implemented.
Submit to wine-test-devel for review.
Haven't recieved feedback from advisor yet, submission to public list will wait for advisor review.

Source 4
2/18 Presentation

Present Basics of Wine, as well as an introduction to writing compliance tests

Submit to wine-test-devel for review.
Source 3
2/21 Submit Modify based on feedback, and submit to Wine list. Modify based on feedback from the winehq list and resubmit every few days. Source 5
Onwards Submit Continue upgrading test suite, preparing to submit as additional patch once test is accepted. Source 4
  Acceptance Test accepted into winehq source tree  
Finals Final Presentation Show final tests, execution on Win & Linux, as well as eviolution of code over CVS commits Presentation 5
Relevant details can be found here: [[http://groups.yahoo.com/group/wine-test-devel/ Yahoo Wine-Test-Devel Group]] ---++ Presentation Notes
1)What is Wine?
2)Wine in action
3)Wine test in action
4)LZW sample code
5)Overview fdi/fci
6)Why fdi and no fci
7)Show the visio diagram of fdi.h

Show: main create, dummy macros, fake macros, real macros, delete , iscabinet ---++ To Do * Incrementally add test cases to cabinet_fdi.c ---++ Progress as of Given Date *2005-01-21:* * Installed Linux * Built Wine * Successfully ran notepad.exe.so, !WinZip 9 installer, !WinZip 9 *2005-01-25:* * Ran conformance test. Looks successful. Here's the output of 'grep "Test failed" log | sed 's/:.*//' | uniq -c | sort': * Installed MSVC Tools
		 Riz:
	  1 msg.c
	  2 typelib.c
	  3 dsound.c
	  3 dsound8.c
	 34 win.c
	 43 metafile.c
* Logfile attached below. * Screenshot of X-Window running notepad on wine (via SSH) *2005-01-28:*
Conformance Test on SuSe 9.2 
Wine CVS checkout: 01/26/05 

Results:
		 Alex:
	104 input.c
	 16 ds3d8.c
	 16 ds3d.c
	  1 file.c
	  1 propset.c
	  1 url.c
	  1 win.c
	 24 msg.c
	  3 typelib.c 
	  3 dsound8.c
	  3 dsound.c
Results: * [[%ATTACHURL%/log][log]]: Suse 9.2 conformance test * [[%ATTACHURL%/errors.txt][errors.txt]]: Errors in the Suse 9.2 Conformance Test This may look like a lot of errors but from looking at them it's clear they focus on video, sound, and mouse events. This install is on a laptop and SuSe is having some "issues" with the video card and the touchpad. *Chosen DLL*
We have decided to work on cabinet.dll. Cabinet was one of the recommended DLLs by Dan, and handles decompression routines for the Microsoft .CAB format. While this DLL isn't as highly used as others, such as Wsock32, the [[http://msdn.microsoft.com/library/default.asp?url=/library/en-us/devnotes/winprog/developer_notes.asp CabinetSDK]] that it implements is used in many install routines - providing a detailed test of the API would be beneficial to ensuring Wine's overall compatability. *2005-01-31:* One sleepless night led to a total recompile of wine for me on linux.ucla.edu. (linux.ucla.edu runs debian-stable, which runs an older version of libungif than 'should' be allowed by wine's autoconf - the bug report to Wine-Devel and follow ups can be found in LugWine) The log files for my installs and compiles for reference. * [[%ATTACHURL%/Jan31.cvs.txt][Jan31.cvs.txt]]: Jan 31 Wine Rebuild - CVS log * [[%ATTACHURL%/Jan31.configure.txt][Jan31.configure.txt]]: Jan 31 Wine Rebuild - Configure log * [[%ATTACHURL%/config.log][config.log]]: Jan 31 Wine Rebuild - config.log * [[%ATTACHURL%/config.status][config.status]]: Jan 31 Wine Rebuild - config.status * [[%ATTACHURL%/Jan31.depend.txt][Jan31.depend.txt]]: Jan 31 Wine Rebuild - 'make depend' log * [[%ATTACHURL%/Jan31.make-wogif.txt][Jan31.make-wogif.txt]]: Jan 31 Wine Rebuild - 'make' log * [[%ATTACHURL%/Jan31.depend2.txt][Jan31.depend2.txt]]: Jan 31 Wine Rebuild - 'make depend' log #2 - post gif_lib.h fix * [[%ATTACHURL%/Jan31.make.txt][Jan31.make.txt]]: Jan 31 Wine Rebuild - 'make' log #2 - post gif_lib.h fix *2005-02-02:* With gif_lib.h fix: 1 typelib.c 3 dsound.c 3 dsound8.c 8 marshal.c 11 win.c *2005-02-03:* Successfully compiled the lzexpand test using MS headers on WindowsXP.
Test ran successfully. [[%ATTACHURL%/lzexpand_main.exe][lzexpand_main.exe]]: WinXP compilation of lzexpand test ---++ Alpha *2005-02-03:* Cabinet includes 2 interfaces. The File Compression Interface in FCI.h and the File Decompression Interface in FDI.h By looking at fci.c we found that the functionaliry of FCI is essentialy not implemented in Wine. This file, which should hold the implementation of the FCI interface is essentially full for FIXME's. FDI however, being the more important, as programs actually use it, is implemented. Therefore we have descided to focus on the FDI interface at the moment.       _Short Description of Functions:_
      FDICreate-Creates an FDI context.
      FDIIsCabinet-Determines if a file is a cabinet and if so returns information about it.
      FDICopy-Extracts a file from a cabinet.
      FDIDestroy-Destroys an FDI context.
Furthermore there are nine callback functions that the user must provide inorder for the FDI to work. These functions deal primarily with memory and file I/O and having the user provide them allows the interface to be used in a wide range of applications, and on nontraditional devices. [[%ATTACHURL%/FCI-FDI.DOC][FCI-FDI.DOC]]: FCI and FDI SDK Documentation
[[%ATTACHURL%/FDI.H][FDI.H]]: File Decompression Interface header
[[%ATTACHURL%/FDI_wine.H][FDI_wine.H]]: Wine version of FDI header file
[[%ATTACHURL%/fci.c][fci.c]]: Wine (Non)Implementation of FCI *2005-02-04:* Created an Alpha Test which excersises a small subset of the functionality.
Refer to http://www.geekymedia.com/viewcvs/cgi/viewcvs.cgi/group3/wine/dlls/cabinet/tests/ for the source code of the Makefile and cabinet_fdi.c Alpha results are fine on Windows.
Results on Linux-wine
[rizwank@xorn ~/win..cabinet/tests]$make
../../../tools/winegcc/winegcc -B../../../tools/winebuild -mconsole cabinet_fdi.o testlist.o -o cabinet_test.exe.so -L../../../libs/port -lwine_port -L../../../dlls -L../../../libs -lkernel32 -L/home/rizwank/lib
cabinet_fdi.o: In function `TestDestroy':
/home/rizwank/wine/dlls/cabinet/tests/cabinet_fdi.c:122: undefined reference to `FDIDestroy'
/home/rizwank/wine/dlls/cabinet/tests/cabinet_fdi.c:123: undefined reference to `FDIDestroy'
/home/rizwank/wine/dlls/cabinet/tests/cabinet_fdi.c:124: undefined reference to `FDIDestroy'
cabinet_fdi.o: In function `TestCreate':
/home/rizwank/wine/dlls/cabinet/tests/cabinet_fdi.c:135: undefined reference to `FDICreate'
/home/rizwank/wine/dlls/cabinet/tests/cabinet_fdi.c:148: undefined reference to `FDICreate'
/home/rizwank/wine/dlls/cabinet/tests/cabinet_fdi.c:161: undefined reference to `FDICreate'
testlist.o: In function `get_tls_data':
/home/rizwank/wine/dlls/cabinet/tests/testlist.c(.data+0x4): undefined reference to `func_cabinet_fdi'
collect2: ld returned 1 exit status
winegcc: gcc failed.
make: *** [cabinet_test.exe.so] Error 2

Obviously there is some header confusion. -- Main.RizwanKassim - 26 Jan 2005 * [[%ATTACHURL%/oldlog.txt][oldlog.txt]]: Rizwan's Earlier Wine Conformance Test * [[%ATTACHURL%/log.txt][log.txt]]: Rizwan's Current Wine Conformance Test * [[%ATTACHURL%/TESTFDI.C][TESTFDI.C]]: TestFDI from MS - For REFERENCE ONLY * [[%ATTACHURL%/FDI_wine.H][FDI_wine.H]]: Wine version of FDI header file * [[%ATTACHURL%/fci.c][fci.c]]: Wine Implementation of FCI ---++ Beta *2005-02-11*
Offered an update to CVS with numerous changes and some significant questions onto the onward direction of our code bases. [[http://groups.yahoo.com/group/wine-test-devel/message/70 Message to wine-test-devel]].

Channeling work with Alex --- will post CHANGELOG to code after final commit on the 14th.
-- Main.RizwanKassim - 11 Feb 2005

*2005-02-14*

Added much "meat" to the code
Streamlined some of the information printing by making a function to print all cabinet info
Made a function to check that all the cabinet info is correct.
The test now has fully working implementations of all I/O related functions, though changes in how files are treated will likely happen
Implemented FDICopy and part of the notify function that it uses, code is now able to look at a cabinet and extract files from it. *2005-02-14*
Above link to wine-test-devel message, looking at the appropriate CVS diffs since Feb 94 will show the significant change in our project at this point. (see below for links) The four core functions of fdicreate are now implemented, and we have live extraction of files as well. In addition, I've written [[http://www.geekymedia.com/viewcvs/cgi/viewcvs.cgi/group3/wine/dlls/cabinet/tests/hexify.sh hexify.sh]] to convert any given file into a C array automagically to handle the file encapsulation behavior that we've seen in the [[http://www.winehq.com/hypermail/wine-patches/2004/11/0182.html lzexpand demo]] that we've been shown. We planned to write a class emulating _open, _read, _write, etc for virtual files, but realized the following: * Can't write classes in C * Shouldn't spend a ton of time emulating those functions if we can 'buy' them (no luck yet) * Still pending advisors input on whether to virtualize files or not Other major changes in this version (versus the last): * [[http://www.geekymedia.com/viewcvs/cgi/viewcvs.cgi/group3/wine/dlls/cabinet/tests/ Sample]] Cab files for extraction testing * [[http://www.geekymedia.com/viewcvs/cgi/viewcvs.cgi/group3/wine/dlls/cabinet/tests/compile.bat Compilation script ]] * Comparison Diffs * [[http://www.geekymedia.com/viewcvs/cgi/viewcvs.cgi/group3/wine/dlls/cabinet/tests/cabinet_fdi.c.diff?r1=text&tr1=1.5&r2=text&tr2=2.4&diff_format=l Overall diff for Alpha->Beta]] * [[http://www.geekymedia.com/viewcvs/cgi/viewcvs.cgi/group3/wine/dlls/cabinet/tests/cabinet_fdi.c.diff?r1=text&tr1=1.5&r2=text&tr2=2.0&diff_format=l Diff between Alpha->Advisor Review Submission]] - The test cabinets, single virtual file, adding 'quiet' memory functions, real&fake open, close, read, added TestInfo function testing FDIIsCabinet. * [[http://www.geekymedia.com/viewcvs/cgi/viewcvs.cgi/group3/wine/dlls/cabinet/tests/cabinet_fdi.c.diff?r1=text&tr1=2.0&r2=text&tr2=2.2&diff_format=h Diff for Alex]] -- See his notes above on his work * [[http://www.geekymedia.com/viewcvs/cgi/viewcvs.cgi/group3/wine/dlls/cabinet/tests/cabinet_fdi.c.diff?r1=text&tr1=2.2&r2=text&tr2=2.4&diff_format=h Diff for Rizwan 2]] -- Added extended virtual file capabilities, minor changes and cleanup. * [[http://www.geekymedia.com/viewcvs/cgi/viewcvs.cgi/group3/wine/dlls/cabinet/tests/cabinet_fdi.c?r1=2.3 Versioning]] for reference : * Version 1.5 - 02/04 submission * Version 2.0 - Submission to Advisor * Version 2.2 - Alex's submission * Version 2.4 - Rizwan's next submission

Currently am [[http://groups.yahoo.com/group/wine-test-devel/message/72 discussing presentiation plans]] with group. Attaching compiled test executable BETA. -- Main.RizwanKassim - 14 Feb 2005 * [[%ATTACHURL%/cabinet_fdi.exe][cabinet_fdi.exe]]: CabinetFDI Test - Beta %META:FILEATTACHMENT{name="oldlog.txt" attr="" comment="Rizwan's Earlier Wine Conformance Test" date="1106984958" path="C:\cygwin\home\rizwank\oldlog.txt" size="41" user="RizwanKassim" version="1.1"}% %META:FILEATTACHMENT{name="log.txt" attr="" comment="Rizwan's Current Wine Conformance Test" date="1106985141" path="C:\cygwin\home\rizwank\log.txt" size="68876" user="RizwanKassim" version="1.1"}% %META:FILEATTACHMENT{name="log" attr="" comment="Suse 9.2 conformance test" date="1106990916" path="log" size="87782" user="AleksandrLiber" version="1.1"}% %META:FILEATTACHMENT{name="errors.txt" attr="" comment="Erros for Suse 9.2" date="1106990958" path="errors.txt" size="4557" user="AleksandrLiber" version="1.1"}% %META:FILEATTACHMENT{name="Wine3GradeSheet.xls" attr="" comment="Grade Sheet" date="1107564278" path="Z:\Wine3GradeSheet.xls" size="15360" user="RizwanKassim" version="1.2"}% %META:FILEATTACHMENT{name="TESTFDI.C" attr="" comment="TestFDI from MS - For REFERENCE ONLY" date="1107498433" path="C:\temp\user\cab\SAMPLES\TESTFDI\TESTFDI.C" size="9347" user="RizwanKassim" version="1.1"}% %META:FILEATTACHMENT{name="FCI-FDI.DOC" attr="" comment="FCI and FDI SDK Documentation" date="1107498473" path="C:\temp\user\cab\DOCS\FCI-FDI.DOC" size="59106" user="RizwanKassim" version="1.1"}% %META:FILEATTACHMENT{name="FDI.H" attr="" comment="File Decompression Interface header" date="1107510990" path="FDI.H" size="47309" user="AleksandrLiber" version="1.1"}% %META:FILEATTACHMENT{name="lzexpand_main.exe" attr="" comment="WinXP compilation of lzexpand test" date="1107511057" path="lzexpand_main.exe" size="32768" user="AleksandrLiber" version="1.1"}% %META:FILEATTACHMENT{name="FDI_wine.H" attr="" comment="Wine version of FDI header file" date="1107512348" path="FDI_wine.H" size="10491" user="AleksandrLiber" version="1.1"}% %META:FILEATTACHMENT{name="fci.c" attr="" comment="Wine Implementation of FCI" date="1107512386" path="fci.c" size="3588" user="AleksandrLiber" version="1.1"}% %META:FILEATTACHMENT{name="cabinet_fdi.exe" attr="" comment="CabinetFDI Test - Beta" date="1108461286" path="U:\wine\dlls\cabinet\tests\cabinet_fdi.exe" size="86016" user="RizwanKassim" version="1.1"}%