Recently, I helped a student at Harvey Mudd college write and submit a conformance test for the lzexpand dll: http://www.winehq.com/hypermail/wine-cvs/2004/11/0164.html I picked lzexpand.dll since (lacking a GUI) it seemed simple to test.
Now I'm putting together a reusable lab project for other colleges, at http://kegel.com/wine/sweng, and am trying to pick a few good DLLs for the students to write tests for. (I plan ask the students to send me their patches so I can review them before they post them on wine-patches.)
Clearly, I shouldn't ask anyone to write a conformance test for a huge DLL in a term, so I guess I'll focus on on the DLLs with under 100 functions. And I'd like to skip DLLs that have GUIs, so I guess I'll omit any where the word HWND occurs. That leaves the following 53 DLLs or VxDs:
amstream atl cabinet capi2032 cards cfgmgr32 comcat crypt32 d3dx8 d3dxof dbghelp devenum dinput8 dmband dmcompos dmscript dmsynth dmusic32 dplayx dpnet dpnhpast dswave dxdiagn dxerr8 dxerr9 glu32 iccvid icmp ifsmgr.vxd imagehlp itss mmdevldr.vxd monodebg.vxd msdmo mshtml msimg32 msisys msnet32 msvidc32 mswsock olepro32 olesvr qcap secur32 vdhcp.vxd vmm.vxd vnbt.vxd vnetbios.vxd vtdapi.vxd vwin32.vxd win32s winaspi wsock32
That's a small enough list that I can start guessing at which ones are worth writing tests for. Let's see, how 'bout the following 12:
amstream atl cabinet crypt32 dplayx dpnet icmp imagehlp itss mswsock winaspi wsock32
Are any of those obviously poor choices for writing a conformance test? Or are there others that are obviously good choices, but that I missed?
Thanks, Dan
Dan Kegel wrote:
That's a small enough list that I can start guessing at which ones are worth writing tests for. Let's see, how 'bout the following 12:
amstream atl cabinet crypt32 dplayx dpnet icmp imagehlp itss mswsock winaspi wsock32
Are any of those obviously poor choices for writing a conformance test? Or are there others that are obviously good choices, but that I missed?
Well, there's still plenty of test cases that can be written for each DLL. Ideally we start from the bottom (ntdll, kernel, gdi, etc) with our test cases so that we can fix code in the dlls and programs that depend on those dlls.
Following that line of thought, imagehlp (used by winedbg), cabinet (used by msi and setupapi), wsock32 and crypt32 seem like good choices.
Mike
Well, there's still plenty of test cases that can be written for each DLL. Ideally we start from the bottom (ntdll, kernel, gdi, etc) with our test cases so that we can fix code in the dlls and programs that depend on those dlls.
Following that line of thought, imagehlp (used by winedbg), cabinet (used by msi and setupapi), wsock32 and crypt32 seem like good choices.
since most of the symbol (& debug information) part of imagehlp has been moved to dbghelp, I'd say dbghelp might be a better candidate than imagehlp (and winedbg uses directly dbghelp, not imagehlp)
(it only remains in imagehlp the PE manipulation stuff, which is not really used IMO).
regarding the others DLL, I'd back up Mike suggestion, adding the socket DLLs as well
A+
Eric Pouech wrote:
Well, there's still plenty of test cases that can be written for each DLL. Ideally we start from the bottom (ntdll, kernel, gdi, etc) with our test cases so that we can fix code in the dlls and programs that depend on those dlls.
Following that line of thought, imagehlp (used by winedbg), cabinet (used by msi and setupapi), wsock32 and crypt32 seem like good choices.
since most of the symbol (& debug information) part of imagehlp has been moved to dbghelp, I'd say dbghelp might be a better candidate than imagehlp (and winedbg uses directly dbghelp, not imagehlp)
(it only remains in imagehlp the PE manipulation stuff, which is not really used IMO).
regarding the others DLL, I'd back up Mike suggestion, adding the socket DLLs as well
Thanks for the info. I've updated my list at http://kegel.com/wine/sweng/#project3 - Dan