On Thu Jul 21 17:24:34 2022 +0000, Piotr Caban wrote:
If you're looking for some hints I'm afraid I don't have any. You're much more familiar with this code than I am. I would probably try to do it this way:
- check if ucrtbase produces the output in the same way (usually it's
better to follow ucrtbase output if there's difference)
- try to implement it so the output is identical as in native
- if it's hard or not possible output something that is valid C++ (but
in this case there should be a test that fails) I'm not sure if we need any special support for it in tests. Probably adding the tests and marking it as todo_wine is good enough. Another option is to introduce something like strcmp_ignore_ws function (that compares all the characters except ' ') and use it for tests marked as white space failures. If anything like strcmp_ignore_ws is introduced, I think it should be used in following way:
todo_wine_if(test[i].flags & TODO_WINE_WS) ok(!strcmp(test[i].out, name), ...); if (test[i].flags & TODO_WINE_WS) ok(!strcmp_ignore_ws(test[i].out, name), ...);
I will take a look on ** case to see if I can find an elegant solution for it. I'll let you know if I find anything.
my point was "what do we do when no simple not-ugly solution for ws only discrepancies is at sight?"
so at least, I'll update the "operator cast" tests with the test I removed, and try to come up with a proposal to ws only changes (and we should also report when the flag is set and we get a correct match (ie without ws changes))