On Fri, May 23, 2008 at 2:59 AM, Paul Vriens paul.vriens.wine@gmail.com wrote:
Alexander Morozov wrote:
Can someone confirm that after running the devinst tests, the registry on Wine still shows these:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Enum\ROOT\LEGACY_BOGUS (and stuff below)
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Enum\USB\BOGUS (and stuff below)
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\DeviceClasses{6A55B5A4 -3F65-11DB-B704-0011955C2BDB} (and stuff below)
I can confirm this. Diff file with changes after running make devinst.ok is attached.
Ok, so at least it looks we are compatible with Windows :-)
I will check out your suggestion about using SetupDiRemoveDevice (and maybe SetupDiRemoveDeviceInterface) to clean up the registry.
I already found that it doesn't work on NT4 for everything as we have a bogus bogus entry (missing the ClassGUID value). This means you can't even enumerate this one and it won't be covered by the remove calls.
So what about a cleanup_before function that gets rid of everything that's currently bogus in the registry? If we don't do this before we have to cater for existing keys in every test which will clutter the tests I think. If we really want to test existing keys we should do so a part of a normal test.
After that cleanup_before is working we can change the tests to clean up after themselves.
Will the new 'cleanup after' code not delete these invalid entries? One test run is fine to sacrifice for the sake of not cluttering up the tests with temporary cleanup code.