2014-01-28 Dmitry Timoshkov dmitry@baikal.ru
Zhenbo Li litimetal@gmail.com wrote:
ret = SHFileOperationA(&shfo); todo_wine ok(ret == 1026 || ret == ERROR_FILE_NOT_FOUND || /* Vista */ broken(ret == ERROR_SUCCESS), /* NT4 */ "Expected 1026 or ERROR_FILE_NOT_FOUND, got %d\n", ret);
- todo_wine
- ok(GetLastError() == 0 ||
broken(GetLastError()==ERROR_FILE_NOT_FOUND), /* win 2000 */
"gle = %d\n", GetLastError() );
Thank you for reviewing my patch.
'ret == ERROR_SUCCESS (0)' case is marked as broken above, so using broken for 'GetLastError() == 0' instead of ERROR_FILE_NOT_FOUND would match that behaviour. Same comment applies for other added tests.
I don't think so.
I think we can divide windows versions to 2 group: a) 2000 or before b) xp or later
For group a, they behave as
broken(ret == ERROR_SUCCESS)
implied, but their GetLastError() were remained as ERROR_FILE_NOT_FOUND
For group b, their 'ret' value isn't 0, but GetLastError() is set to 0.
In general I don't think that adding last error tests for SHFileOperation is very useful because 1) this API returns error codes directly 2) according to the tests both returned error codes and set last error values differ in almost every Windows version, so it's very unlikely that there is an app that depends on this.
You're right. As wine's documents[1] said,
However, undocumented behavior should not be tested for unless there is
an application that relies on this behavior, and in that case the test should mention that application, or unless one can strongly expect applications to rely on this behavior
There are many 'todo_wine' marks in shell32 test, and it really caused bugs(like 34324). Maybe such test cases can contribute to further development?
[1]: http://www.winehq.org/docs/winedev-guide/testing-what