2009/4/12 James McKenzie jjmckenzie51@earthlink.net:
Nicolas Le Cam wrote:
2009/4/11 Ben Klein shacklein@gmail.com:
2009/4/11 Nicolas Le Cam niko.lecam@gmail.com:
2009/4/11 James Hawkins truiken@gmail.com: Let met explain :
Running test on wine in folder C:\test : works (expected "C:\test" got "C:\test") Running test on wine in folder C:\ : works (expected "C:" got "C:") Running test on wine in folder Z:\home\nlecam\Projects\wine\wine-git\dlls\msi\tests : works (expected "Z:\home\nlecam\Projects\wine\wine-git\dlls\msi\tests" got "Z:\home\nlecam\Projects\wine\wine-git\dlls\msi\tests") Running test on Windows in folder C:\test : works (expected "C:\test" got "C:\test") Running test on Windows in folder C:\ : fails (expected "C:" got "")
This looks to me like it would be dependent on the WAY you run the test.
Running test on Windows in folder X:\Documents And Settings\nlecam\Desktop : fails (expected "X:\Documents And Settings\nlecam\Desktop" got "C:\Documents And Settings\nlecam\Desktop")
This looks like X: is mapped to the same place as C:, and wine's path translation is picking C: first. If that's so, it would also depend on the way you run the test.
Of course, I could be astronomically wrong :D
Hi Ben,
Tests were launched from cmd.exe, current directory was where executable resides.
Those results (blank and X: becomming C:) were from Windows not Wine. X: is a network drive.
I admit I should do more tests, at least :
- launch test from a real drive other than C:\
- launch test from another directory than where executable resides.
- install Windows on another drive than C:, with or without a C:\
drive, to see if it's really SystemDrive that msi takes or just the first drive it can find.
Nicolas:
You should also test the cases that are failing from within Wine as well. We do have the capability to map to a X: drive by mapping a network drive to this letter as well.
It appears that C:\ is not returning a proper value either from Windows (which would not surprise me) or that Wine is not functioning the same as Windows in this case. You cannot mark this 'todo_wine' the code has to be fixed or the test has to be fixed.
James McKenzie
Ok I did more tests, basically msi is only wrong on root drive directories, test is wrong on everything except when run on a local drive where pathes don't exist on a drive before (alphabetically sorted).
On this special test, msi enumerates local drives (and only local drives) and returns the first path that matches what was passed, if nothing match it returns an empty string.
Attached all tests I did. I will try to update my patch to handle every corner cases.