Hello,
As I'm working on bug 25207, I found that previous test code (test_move() in shlfileop.c) had some disadvantages
1. Duplicate tests 2. Legacy test code (for Win98 or NT4) 3. Lack of test for Vista or later Windows Versions
As more applications are depending on the new behaviours introduced in Vista, IMHO, we should focus on Vista's new behaviour. So I rewrote test_move() to remove code for win98, mark xp behaviour as broken, and expect Vista's behaviour. My next step is to re-implement FO_MOVE operation of SHFileOperation to fix bug 25207.
Any suggestion for this? Thank you.
On Thursday, September 3, 2015, Zhenbo Li litimetal@gmail.com wrote:
Hello,
As I'm working on bug 25207, I found that previous test code (test_move() in shlfileop.c) had some disadvantages
- Duplicate tests
- Legacy test code (for Win98 or NT4)
- Lack of test for Vista or later Windows Versions
As more applications are depending on the new behaviours introduced in Vista, IMHO, we should focus on Vista's new behaviour. So I rewrote test_move() to remove code for win98, mark xp behaviour as broken, and expect Vista's behaviour. My next step is to re-implement FO_MOVE operation of SHFileOperation to fix bug 25207.
Any suggestion for this?
Hi, I dislike the idea of removing tests because they are obsolete but that is just my opinion. At least I like to keep winsock running in NT4.
What I have done in patches that reached similar issues is to detect the OS using a specific test that you are sure differs between OS and then use if/else to separate the tests. This reduces the amount of broken required, broken can be a vilain sometimes because it does not specify which OS is failing.
Best wishes, Bruno
Hi Bruno,
Thanks for your comments.
2015-09-03 16:04 GMT+08:00 Bruno Jesus 00cpxxx@gmail.com:
Hi, I dislike the idea of removing tests because they are obsolete but that is just my opinion. At least I like to keep winsock running in NT4.
Do you know how I can get the test result in NT4? I have no idea about that.
What I have done in patches that reached similar issues is to detect the OS using a specific test that you are sure differs between OS and then use if/else to separate the tests. This reduces the amount of broken required, broken can be a vilain sometimes because it does not specify which OS is failing.
How about this soultion? ok(retval == value1 || broken(retval == value2) || broken(retval == value3) ...) switch(retval) { case value1:... case value2:... case value3:... }
In this way, we can find the difference between OSs.
On Thu, Sep 3, 2015 at 10:17 PM, Zhenbo Li litimetal@gmail.com wrote:
Hi Bruno,
Thanks for your comments.
2015-09-03 16:04 GMT+08:00 Bruno Jesus 00cpxxx@gmail.com:
Hi, I dislike the idea of removing tests because they are obsolete but that is just my opinion. At least I like to keep winsock running in NT4.
Do you know how I can get the test result in NT4? I have no idea about that.
Not really, I run tests manually. I don't think you should bother about that.
What I have done in patches that reached similar issues is to detect the OS using a specific test that you are sure differs between OS and then use if/else to separate the tests. This reduces the amount of broken required, broken can be a vilain sometimes because it does not specify which OS is failing.
How about this soultion? ok(retval == value1 || broken(retval == value2) || broken(retval == value3) ...) switch(retval) { case value1:... case value2:... case value3:... }
In this way, we can find the difference between OSs.
What I was thinking was more simple like:
retval = test_with_known_os_difference(); if(retval = VISTA_RESULT) { //all >= vista tests } else { //all xp + old broken tests }
Others may have different opinion, this is just the way I do =)