Here is another one on my win2k sp3 box. All tests compiled with cygwin
atom.c:81: Test failed: succeeded adding ff74 atom.c:84: Test failed: succeeded adding ff74 atom.c:81: Test failed: succeeded adding ff75 atom.c:84: Test failed: succeeded adding ff75 atom.c:81: Test failed: succeeded adding ff76 atom.c:84: Test failed: succeeded adding ff76 atom.c:81: Test failed: succeeded adding ff77 atom.c:84: Test failed: succeeded adding ff77 atom.c:81: Test failed: succeeded adding ff78 atom.c:84: Test failed: succeeded adding ff78 atom.c:81: Test failed: succeeded adding ff79 atom.c:84: Test failed: succeeded adding ff79 atom.c:81: Test failed: succeeded adding ff7a atom.c:84: Test failed: succeeded adding ff7a atom.c:81: Test failed: succeeded adding ff7b atom.c:84: Test failed: succeeded adding ff7b atom.c:81: Test failed: succeeded adding ff7c atom.c:84: Test failed: succeeded adding ff7c atom.c:81: Test failed: succeeded adding ff7d atom.c:84: Test failed: succeeded adding ff7d atom.c:81: Test failed: succeeded adding ff7e atom.c:84: Test failed: succeeded adding ff7e atom.c:81: Test failed: succeeded adding ff7f atom.c:84: Test failed: succeeded adding ff7f atom.c:81: Test failed: succeeded adding ff80 atom.c:84: Test failed: succeeded adding ff80 atom.c:81: Test failed: succeeded adding ff81 atom.c:84: Test failed: succeeded adding ff81 atom.c:81: Test failed: succeeded adding ff82 atom.c:84: Test failed: succeeded adding ff82 atom.c:81: Test failed: succeeded adding ff83 atom.c:84: Test failed: succeeded adding ff83 atom.c:81: Test failed: succeeded adding ff84 atom.c:84: Test failed: succeeded adding ff84 atom.c:81: Test failed: succeeded adding ff85 atom.c:84: Test failed: succeeded adding ff85 atom.c:81: Test failed: succeeded adding ff86 atom.c:84: Test failed: succeeded adding ff86 atom.c:81: Test failed: succeeded adding ff87 atom.c:84: Test failed: succeeded adding ff87 atom.c:81: Test failed: succeeded adding ff88 atom.c:84: Test failed: succeeded adding ff88 atom.c:81: Test failed: succeeded adding ff89 atom.c:84: Test failed: succeeded adding ff89 atom.c:81: Test failed: succeeded adding ff8a atom.c:84: Test failed: succeeded adding ff8a atom.c:81: Test failed: succeeded adding ff8b atom.c:84: Test failed: succeeded adding ff8b atom.c:81: Test failed: succeeded adding ff8c atom.c:84: Test failed: succeeded adding ff8c atom.c:81: Test failed: succeeded adding ff8d atom.c:84: Test failed: succeeded adding ff8d atom.c:81: Test failed: succeeded adding ff8e atom.c:84: Test failed: succeeded adding ff8e atom.c:81: Test failed: succeeded adding ff8f atom.c:84: Test failed: succeeded adding ff8f atom.c:81: Test failed: succeeded adding ff90 atom.c:84: Test failed: succeeded adding ff90 atom.c:81: Test failed: succeeded adding ff91 atom.c:84: Test failed: succeeded adding ff91 atom.c:81: Test failed: succeeded adding ff92 atom.c:84: Test failed: succeeded adding ff92 atom.c:81: Test failed: succeeded adding ff93 atom.c:84: Test failed: succeeded adding ff93 atom.c:81: Test failed: succeeded adding ff94 atom.c:84: Test failed: succeeded adding ff94 atom.c:81: Test failed: succeeded adding ff95 atom.c:84: Test failed: succeeded adding ff95 atom.c:81: Test failed: succeeded adding ff96 atom.c:84: Test failed: succeeded adding ff96 atom.c:81: Test failed: succeeded adding ff97 atom.c:84: Test failed: succeeded adding ff97 atom.c:81: Test failed: succeeded adding ff98 atom.c:84: Test failed: succeeded adding ff98 atom.c:81: Test failed: succeeded adding ff99 atom.c:84: Test failed: succeeded adding ff99 atom.c:81: Test failed: succeeded adding ff9a atom.c:84: Test failed: succeeded adding ff9a atom.c:81: Test failed: succeeded adding ff9b atom.c:84: Test failed: succeeded adding ff9b atom.c:81: Test failed: succeeded adding ff9c atom.c:84: Test failed: succeeded adding ff9c atom.c:81: Test failed: succeeded adding ff9d atom.c:84: Test failed: succeeded adding ff9d atom.c:81: Test failed: succeeded adding ff9e atom.c:84: Test failed: succeeded adding ff9e atom.c:81: Test failed: succeeded adding ff9f atom.c:84: Test failed: succeeded adding ff9f atom.c:81: Test failed: succeeded adding ffa0 atom.c:84: Test failed: succeeded adding ffa0 atom.c:81: Test failed: succeeded adding ffa1 atom.c:84: Test failed: succeeded adding ffa1 atom.c:81: Test failed: succeeded adding ffa2 atom.c:84: Test failed: succeeded adding ffa2 atom.c:81: Test failed: succeeded adding ffa3 atom.c:84: Test failed: succeeded adding ffa3 atom.c:81: Test failed: succeeded adding ffa4 atom.c:84: Test failed: succeeded adding ffa4 atom.c:81: Test failed: succeeded adding ffa5 atom.c:84: Test failed: succeeded adding ffa5 atom.c:81: Test failed: succeeded adding ffa6 atom.c:84: Test failed: succeeded adding ffa6 atom.c:81: Test failed: succeeded adding ffa7 atom.c:84: Test failed: succeeded adding ffa7 atom.c:81: Test failed: succeeded adding ffa8 atom.c:84: Test failed: succeeded adding ffa8 atom.c:81: Test failed: succeeded adding ffa9 atom.c:84: Test failed: succeeded adding ffa9 atom.c:81: Test failed: succeeded adding ffaa atom.c:84: Test failed: succeeded adding ffaa atom.c:81: Test failed: succeeded adding ffab atom.c:84: Test failed: succeeded adding ffab atom.c:81: Test failed: succeeded adding ffac atom.c:84: Test failed: succeeded adding ffac atom.c:81: Test failed: succeeded adding ffad atom.c:84: Test failed: succeeded adding ffad atom.c:81: Test failed: succeeded adding ffae atom.c:84: Test failed: succeeded adding ffae atom.c:81: Test failed: succeeded adding ffaf atom.c:84: Test failed: succeeded adding ffaf atom.c:81: Test failed: succeeded adding ffb0 atom.c:84: Test failed: succeeded adding ffb0 atom.c:81: Test failed: succeeded adding ffb1 atom.c:84: Test failed: succeeded adding ffb1 atom.c:81: Test failed: succeeded adding ffb2 atom.c:84: Test failed: succeeded adding ffb2 atom.c:81: Test failed: succeeded adding ffb3 atom.c:84: Test failed: succeeded adding ffb3 atom.c:81: Test failed: succeeded adding ffb4 atom.c:84: Test failed: succeeded adding ffb4 atom.c:81: Test failed: succeeded adding ffb5 atom.c:84: Test failed: succeeded adding ffb5 atom.c:81: Test failed: succeeded adding ffb6 atom.c:84: Test failed: succeeded adding ffb6 atom.c:81: Test failed: succeeded adding ffb7 atom.c:84: Test failed: succeeded adding ffb7 atom.c:81: Test failed: succeeded adding ffb8 atom.c:84: Test failed: succeeded adding ffb8 atom.c:81: Test failed: succeeded adding ffb9 atom.c:84: Test failed: succeeded adding ffb9 atom.c:81: Test failed: succeeded adding ffba atom.c:84: Test failed: succeeded adding ffba atom.c:81: Test failed: succeeded adding ffbb atom.c:84: Test failed: succeeded adding ffbb atom.c:81: Test failed: succeeded adding ffbc atom.c:84: Test failed: succeeded adding ffbc atom.c:81: Test failed: succeeded adding ffbd atom.c:84: Test failed: succeeded adding ffbd atom.c:81: Test failed: succeeded adding ffbe atom.c:84: Test failed: succeeded adding ffbe atom.c:81: Test failed: succeeded adding ffbf atom.c:84: Test failed: succeeded adding ffbf atom.c:81: Test failed: succeeded adding ffc0 atom.c:84: Test failed: succeeded adding ffc0 atom.c:81: Test failed: succeeded adding ffc1 atom.c:84: Test failed: succeeded adding ffc1 atom.c:81: Test failed: succeeded adding ffc2 atom.c:84: Test failed: succeeded adding ffc2 atom.c:81: Test failed: succeeded adding ffc3 atom.c:84: Test failed: succeeded adding ffc3 atom.c:81: Test failed: succeeded adding ffc4 atom.c:84: Test failed: succeeded adding ffc4 atom.c:81: Test failed: succeeded adding ffc5 atom.c:84: Test failed: succeeded adding ffc5 atom.c:81: Test failed: succeeded adding ffc6 atom.c:84: Test failed: succeeded adding ffc6 atom.c:81: Test failed: succeeded adding ffc7 atom.c:84: Test failed: succeeded adding ffc7 atom.c:81: Test failed: succeeded adding ffc8 atom.c:84: Test failed: succeeded adding ffc8 atom.c:81: Test failed: succeeded adding ffc9 atom.c:84: Test failed: succeeded adding ffc9 atom.c:81: Test failed: succeeded adding ffca atom.c:84: Test failed: succeeded adding ffca atom.c:81: Test failed: succeeded adding ffcb atom.c:84: Test failed: succeeded adding ffcb atom.c:81: Test failed: succeeded adding ffcc atom.c:84: Test failed: succeeded adding ffcc atom.c:81: Test failed: succeeded adding ffcd atom.c:84: Test failed: succeeded adding ffcd atom.c:81: Test failed: succeeded adding ffce atom.c:84: Test failed: succeeded adding ffce atom.c:81: Test failed: succeeded adding ffcf atom.c:84: Test failed: succeeded adding ffcf atom.c:81: Test failed: succeeded adding ffd0 atom.c:84: Test failed: succeeded adding ffd0 atom.c:81: Test failed: succeeded adding ffd1 atom.c:84: Test failed: succeeded adding ffd1 atom.c:81: Test failed: succeeded adding ffd2 atom.c:84: Test failed: succeeded adding ffd2 atom.c:81: Test failed: succeeded adding ffd3 atom.c:84: Test failed: succeeded adding ffd3 atom.c:81: Test failed: succeeded adding ffd4 atom.c:84: Test failed: succeeded adding ffd4 atom.c:81: Test failed: succeeded adding ffd5 atom.c:84: Test failed: succeeded adding ffd5 atom.c:81: Test failed: succeeded adding ffd6 atom.c:84: Test failed: succeeded adding ffd6 atom.c:81: Test failed: succeeded adding ffd7 atom.c:84: Test failed: succeeded adding ffd7 atom.c:81: Test failed: succeeded adding ffd8 atom.c:84: Test failed: succeeded adding ffd8 atom.c:81: Test failed: succeeded adding ffd9 atom.c:84: Test failed: succeeded adding ffd9 atom.c:81: Test failed: succeeded adding ffda atom.c:84: Test failed: succeeded adding ffda atom.c:81: Test failed: succeeded adding ffdb atom.c:84: Test failed: succeeded adding ffdb atom.c:81: Test failed: succeeded adding ffdc atom.c:84: Test failed: succeeded adding ffdc atom.c:81: Test failed: succeeded adding ffdd atom.c:84: Test failed: succeeded adding ffdd atom.c:81: Test failed: succeeded adding ffde atom.c:84: Test failed: succeeded adding ffde atom.c:81: Test failed: succeeded adding ffdf atom.c:84: Test failed: succeeded adding ffdf atom.c:81: Test failed: succeeded adding ffe0 atom.c:84: Test failed: succeeded adding ffe0 atom.c:81: Test failed: succeeded adding ffe1 atom.c:84: Test failed: succeeded adding ffe1 atom.c:81: Test failed: succeeded adding ffe2 atom.c:84: Test failed: succeeded adding ffe2 atom.c:81: Test failed: succeeded adding ffe3 atom.c:84: Test failed: succeeded adding ffe3 atom.c:81: Test failed: succeeded adding ffe4 atom.c:84: Test failed: succeeded adding ffe4 atom.c:81: Test failed: succeeded adding ffe5 atom.c:84: Test failed: succeeded adding ffe5 atom.c:81: Test failed: succeeded adding ffe6 atom.c:84: Test failed: succeeded adding ffe6 atom.c:81: Test failed: succeeded adding ffe7 atom.c:84: Test failed: succeeded adding ffe7 atom.c:81: Test failed: succeeded adding ffe8 atom.c:84: Test failed: succeeded adding ffe8 atom.c:81: Test failed: succeeded adding ffe9 atom.c:84: Test failed: succeeded adding ffe9 atom.c:81: Test failed: succeeded adding ffea atom.c:84: Test failed: succeeded adding ffea atom.c:81: Test failed: succeeded adding ffeb atom.c:84: Test failed: succeeded adding ffeb atom.c:81: Test failed: succeeded adding ffec atom.c:84: Test failed: succeeded adding ffec atom.c:81: Test failed: succeeded adding ffed atom.c:84: Test failed: succeeded adding ffed atom.c:81: Test failed: succeeded adding ffee atom.c:84: Test failed: succeeded adding ffee atom.c:81: Test failed: succeeded adding ffef atom.c:84: Test failed: succeeded adding ffef atom.c:81: Test failed: succeeded adding fff0 atom.c:84: Test failed: succeeded adding fff0 atom.c:81: Test failed: succeeded adding fff1 atom.c:84: Test failed: succeeded adding fff1 atom.c:81: Test failed: succeeded adding fff2 atom.c:84: Test failed: succeeded adding fff2 atom.c:81: Test failed: succeeded adding fff3 atom.c:84: Test failed: succeeded adding fff3 atom.c:81: Test failed: succeeded adding fff4 atom.c:84: Test failed: succeeded adding fff4 atom.c:81: Test failed: succeeded adding fff5 atom.c:84: Test failed: succeeded adding fff5 atom.c:81: Test failed: succeeded adding fff6 atom.c:84: Test failed: succeeded adding fff6 atom.c:81: Test failed: succeeded adding fff7 atom.c:84: Test failed: succeeded adding fff7 atom.c:81: Test failed: succeeded adding fff8 atom.c:84: Test failed: succeeded adding fff8 atom.c:81: Test failed: succeeded adding fff9 atom.c:84: Test failed: succeeded adding fff9 atom.c:81: Test failed: succeeded adding fffa atom.c:84: Test failed: succeeded adding fffa atom.c:81: Test failed: succeeded adding fffb atom.c:84: Test failed: succeeded adding fffb atom.c:81: Test failed: succeeded adding fffc atom.c:84: Test failed: succeeded adding fffc atom.c:81: Test failed: succeeded adding fffd atom.c:84: Test failed: succeeded adding fffd atom.c:81: Test failed: succeeded adding fffe atom.c:84: Test failed: succeeded adding fffe atom.c:81: Test failed: succeeded adding ffff atom.c:84: Test failed: succeeded adding ffff atom.c:110: Test failed: bad buffer contents atom.c:112: Test failed: GlobalGetAtomNameW succeeded on short buffer atom.c:116: Test failed: succeded atom.c:118: Test failed: succeded atom.c:120: Test failed: succeded atom.c:122: Test failed: succeded atom.c:140: Test failed: bad length 0 atom.c:143: Test failed: bad buffer contents aaaaaaaaaaha?xA
"Steven Edwards" Steven_Ed4153@yahoo.com wrote:
Here is another one on my win2k sp3 box.
Same here.
All tests compiled with cygwin
Atom test was compiled with ms vc.
atom.c:81: Test failed: succeeded adding ff74 atom.c:84: Test failed: succeeded adding ff74 atom.c:81: Test failed: succeeded adding ff75 atom.c:84: Test failed: succeeded adding ff75 atom.c:81: Test failed: succeeded adding ff76 atom.c:84: Test failed: succeeded adding ff76 atom.c:81: Test failed: succeeded adding ff77
[skipped]
atom.c:81: Test failed: succeeded adding ffff atom.c:84: Test failed: succeeded adding ffff
I have no failures above.
atom.c:110: Test failed: bad buffer contents atom.c:112: Test failed: GlobalGetAtomNameW succeeded on short buffer atom.c:116: Test failed: succeded atom.c:118: Test failed: succeded
Same failures here.
atom.c:120: Test failed: succeded
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ I have no this one.
atom.c:122: Test failed: succeded atom.c:140: Test failed: bad length 0 atom.c:143: Test failed: bad buffer contents aaaaaaaaaaha?xA
Same failures here.
One more problem I have is an infinite loop in test_delete_atom() function on the line while (!GlobalDeleteAtom( atom ));
This is correct. According to Platform SDK docs GlobalDeleteAtom() always returns (ATOM)0. But documented way of detecting failure of the GlobalDeleteAtom() call doesn't work for me on w2k sp3 either:
"To determine whether the function has failed, call SetLastError(ERROR_SUCCESS) before calling GlobalDeleteAtom, then call GetLastError. If the last error code is still ERROR_SUCCESS, GlobalDeleteAtom has succeeded."
The question is: do we have to really worry about this? Is it Microsoft, who have broken atom APIs, and not we? Can anybody run atom tests on some other Windows platform other than Windows2000 SP3 (SP0, SP1, SP2 are fine) and report here the result?
Same failures here.
One more problem I have is an infinite loop in test_delete_atom() function on the line while (!GlobalDeleteAtom( atom ));
This is correct. According to Platform SDK docs GlobalDeleteAtom() always returns (ATOM)0. But documented way of detecting failure of the GlobalDeleteAtom() call doesn't work for me on w2k sp3 either:
"To determine whether the function has failed, call SetLastError(ERROR_SUCCESS) before calling GlobalDeleteAtom, then call GetLastError. If the last error code is still ERROR_SUCCESS, GlobalDeleteAtom has succeeded."
The question is: do we have to really worry about this? Is it Microsoft, who have broken atom APIs, and not we? Can anybody run atom tests on some other Windows platform other than Windows2000 SP3 (SP0, SP1, SP2 are fine) and report here the result?
My counter parts and I in the ReactOS project have been wondering the the same. We started with the goal of Windows NT 4.0 compatiblity in mind but would like to adopt more 2k-isms like wdm and such so we are changing our target. ATM ReactOS bombs very nicely on the kernel32_tests so having a stable target for regressions that both WINE and ReactOS can share would be a good thing.
Thanks Steven
"Steven Edwards" Steven_Ed4153@yahoo.com wrote:
The question is: do we have to really worry about this? Is it Microsoft, who have broken atom APIs, and not we? Can anybody run atom tests on some other Windows platform other than Windows2000 SP3 (SP0, SP1, SP2 are fine) and report here the result?
My counter parts and I in the ReactOS project have been wondering the the same. We started with the goal of Windows NT 4.0 compatiblity in mind but would like to adopt more 2k-isms like wdm and such so we are changing our target. ATM ReactOS bombs very nicely on the kernel32_tests so having a stable target for regressions that both WINE and ReactOS can share would be a good thing.
Okay, I went ahead and tried to figure out what happens.
As a result, now I have fixed atom conformance test along with fixes to make Wine behave exactly as Windows 2000.
Conformance test was run under Win98,Me and Windows 2000 and has been fixed to produce 0 failures under win2000. Behaviour of some functions is very different between 98/Me and 2000. Win98 and WinMe behave equally.
I'm not sending it to wine-patches because I'm not sure that we need all that tests for 98/Me and 2000 differences. In any case we will not be able to emulate behaviour of all Windows platforms.
"Dmitry Timoshkov" dmitry@baikal.ru writes:
Conformance test was run under Win98,Me and Windows 2000 and has been fixed to produce 0 failures under win2000. Behaviour of some functions is very different between 98/Me and 2000. Win98 and WinMe behave equally.
There are still a number of failures under NT 4.
I'm not sending it to wine-patches because I'm not sure that we need all that tests for 98/Me and 2000 differences. In any case we will not be able to emulate behaviour of all Windows platforms.
I don't think we should try, or even test for it. If Windows behaves differently in all versions then we can behave as we like. And there is no point in adding tests for that, at least until we find an app that depends on the platform differences.
"Alexandre Julliard" julliard@winehq.com wrote:
Conformance test was run under Win98,Me and Windows 2000 and has been fixed to produce 0 failures under win2000. Behaviour of some functions is very different between 98/Me and 2000. Win98 and WinMe behave equally.
There are still a number of failures under NT 4.
May I see a log? Do I need to fix them, or someone with NT4 around should look at it?
I'm not sending it to wine-patches because I'm not sure that we need all that tests for 98/Me and 2000 differences. In any case we will not be able to emulate behaviour of all Windows platforms.
I don't think we should try, or even test for it. If Windows behaves differently in all versions then we can behave as we like. And there is no point in adding tests for that, at least until we find an app that depends on the platform differences.
I asssume we should adhere win2000 behaviour. Am I right? I'll remove redundant tests for unicode_OS and resubmit patch then.
One more question: should we add a point out in the test that tests are platform specific?
"Dmitry Timoshkov" dmitry@baikal.ru writes:
May I see a log? Do I need to fix them, or someone with NT4 around should look at it?
Here's what I get (note that some of these already exist in the current version):
atom.c:55:Unicode APIs are supported atom.c:102: Test failed: succeeded adding c000 atom.c:111: Test failed: succeeded adding c000 atom.c:102: Test failed: succeeded adding c001 atom.c:111: Test failed: succeeded adding c001 [etc....] atom.c:102: Test failed: succeeded adding ffff atom.c:111: Test failed: succeeded adding ffff atom.c:136: Test failed: GlobalGetAtomNameA succeeded on short buffer atom.c:172: Test failed: succeded atom.c:203: Test failed: succeded atom.c:208: Test failed: succeded atom.c:257: Test failed: infinite loop atom.c:285: Test failed: delete atom succeded atom.c:303: Test failed: add succeded atom.c:308: Test failed: find succeded atom.c:322: Test failed: add succeded atom.c:324: Test failed: find succeded atom: 229529 tests executed, 0 marked as todo, 32778 failures.
And this is what I get with your codepage test:
codepage.c:39: Test failed: should return an error and not touch buffer codepage.c:46: Test failed: should return an error and not touch buffer codepage: 4 tests executed, 0 marked as todo, 2 failures.
I asssume we should adhere win2000 behaviour. Am I right? I'll remove redundant tests for unicode_OS and resubmit patch then.
We don't necessarily have to adhere to win2000. We can choose the behavior that makes the most sense, or that is the fastest.
One more question: should we add a point out in the test that tests are platform specific?
Not sure what you mean; the tests must not be platform specific, they must work on all platforms. Things that only work on a given platform don't need to be tested for, since it's very unlikely that apps depend on them (and we can add a test once we find such an app).
Dmitry, what version of windows did you emulate to have these results ?
Here's what I get (note that some of these already exist in the current version):
___________________________________________________________ Do You Yahoo!? -- Une adresse @yahoo.fr gratuite et en français ! Yahoo! Mail : http://fr.mail.yahoo.com
"Sylvain Petreolle" spetreolle@yahoo.fr wrote:
Dmitry, what version of windows did you emulate to have these results ?
Win2000.
--- Dmitry Timoshkov dmitry@baikal.ru a écrit : > "Sylvain Petreolle" spetreolle@yahoo.fr wrote:
Dmitry, what version of windows did you emulate to have these
results ?
Win2000.
Ok, I just wanted to know. They pass for me with RH 7.3 updated configured with "win2k".
___________________________________________________________ Do You Yahoo!? -- Une adresse @yahoo.fr gratuite et en français ! Yahoo! Mail : http://fr.mail.yahoo.com
"Alexandre Julliard" julliard@winehq.com wrote:
May I see a log? Do I need to fix them, or someone with NT4 around should look at it?
Here's what I get (note that some of these already exist in the current version):
atom.c:55:Unicode APIs are supported atom.c:102: Test failed: succeeded adding c000 atom.c:111: Test failed: succeeded adding c000 atom.c:102: Test failed: succeeded adding c001 atom.c:111: Test failed: succeeded adding c001 [etc....] atom.c:102: Test failed: succeeded adding ffff atom.c:111: Test failed: succeeded adding ffff atom.c:136: Test failed: GlobalGetAtomNameA succeeded on short buffer atom.c:172: Test failed: succeded atom.c:203: Test failed: succeded atom.c:208: Test failed: succeded atom.c:257: Test failed: infinite loop atom.c:285: Test failed: delete atom succeded atom.c:303: Test failed: add succeded atom.c:308: Test failed: find succeded atom.c:322: Test failed: add succeded atom.c:324: Test failed: find succeded atom: 229529 tests executed, 0 marked as todo, 32778 failures.
Probably NT4 just doesn't set last error here. But we have to check for last error values, because it will be very hard to track down this problem if some application chokes on it. What do we have to do? Drop the test for last error? That's not an option IMO.
And this is what I get with your codepage test:
codepage.c:39: Test failed: should return an error and not touch buffer codepage.c:46: Test failed: should return an error and not touch buffer codepage: 4 tests executed, 0 marked as todo, 2 failures.
This should be investigated. Win2000 apparently has more strict tests for parameter validation and I don't see a reason why we shouldn't do the same.
I asssume we should adhere win2000 behaviour. Am I right? I'll remove redundant tests for unicode_OS and resubmit patch then.
We don't necessarily have to adhere to win2000. We can choose the behavior that makes the most sense, or that is the fastest.
One more question: should we add a point out in the test that tests are platform specific?
Not sure what you mean; the tests must not be platform specific, they must work on all platforms. Things that only work on a given platform don't need to be tested for, since it's very unlikely that apps depend on them (and we can add a test once we find such an app).
I have a suggestion then. How about removing conflicting tests but make Wine behave as win2000 (and actually as described in MSDN)?
"Dmitry Timoshkov" dmitry@baikal.ru writes:
Probably NT4 just doesn't set last error here. But we have to check for last error values, because it will be very hard to track down this problem if some application chokes on it. What do we have to do? Drop the test for last error? That's not an option IMO.
Such an application would die on NT4 too, so it's unlikely to exist. And yes, if the error codes are not set consistently under Windows then there is no point in testing them, we might as well drop the test.
This should be investigated. Win2000 apparently has more strict tests for parameter validation and I don't see a reason why we shouldn't do the same.
Because it hurts performance, and any app that depends on the strict validation will die on NT4 anyway. Plus it will hide potential bugs in our code.
I have a suggestion then. How about removing conflicting tests but make Wine behave as win2000 (and actually as described in MSDN)?
There is no reason to try to be more compatible than Windows itself. It just creates extra work and doesn't improve our compatibility at all. Our time is much better spent fixing things where we actually need to be compatible.
"Alexandre Julliard" julliard@winehq.com wrote:
I have a suggestion then. How about removing conflicting tests but make Wine behave as win2000 (and actually as described in MSDN)?
There is no reason to try to be more compatible than Windows itself. It just creates extra work and doesn't improve our compatibility at all. Our time is much better spent fixing things where we actually need to be compatible.
I mostly agree. But...
1. MS eventually will drop support for NT4 someday (as they did for Win95) and it's better IMO to have it mind now than try to catch up later.
2. What to do with GlobalGetAtomName on short buffer and GlobalDeleteAtom tests which behave differently under different Windows implementations? Drop them altogether?
"Dmitry Timoshkov" dmitry@baikal.ru writes:
- MS eventually will drop support for NT4 someday (as they did for Win95)
and it's better IMO to have it mind now than try to catch up later.
Sure, once applications start depending on Win2000 features/bugs we'll have to implement them. But we don't know yet which of these features will be important; and implementing every single one of them is a huge waste of time since the vast majority of them will never matter.
- What to do with GlobalGetAtomName on short buffer and GlobalDeleteAtom
tests which behave differently under different Windows implementations? Drop them altogether?
Yes. If a test does not behave consistently, it means it doesn't test an exported feature of the API, but just a random side effect. These tests are useless and should be dropped, unless we identify an app that relies on the side effect.