On Wed, Nov 27, 2019 at 07:55:28PM +0100, Francois Gouget wrote:
On Mon, 25 Nov 2019, Huw Davies wrote: [...]
@@ -2262,16 +2262,15 @@ static void test_mf_Graphics(void) ok( ret, "MoveToEx error %d.\n", GetLastError()); ret = LineTo(hdcMetafile, 2, 2); ok( ret, "LineTo error %d.\n", GetLastError());
- oldpoint.x = oldpoint.y = 11235; ret = MoveToEx(hdcMetafile, 1, 1, &oldpoint); ok( ret, "MoveToEx error %d.\n", GetLastError());
-/* oldpoint gets garbage under Win XP, so the following test would
- work under Wine but fails under Windows:
- ok((oldpoint.x == 2) && (oldpoint.y == 2),
"MoveToEx: (x, y) = (%ld, %ld), should be (2, 2).\n",
oldpoint.x, oldpoint.y);
- */
/* Windows 9x and older may have returned oldpoint as per the
* documentation. But Windows >= XP does not.
*/
todo_wine ok(broken(oldpoint.x == 11235 && oldpoint.y == 11235),
"MoveToEx: oldpoint = (%d, %d), should be (11235, 11235).\n",
oldpoint.x, oldpoint.y);
ret = Ellipse(hdcMetafile, 0, 0, 2, 2); ok( ret, "Ellipse error %d.\n", GetLastError());
I don't think this makes much sense - the condition won't be tested under Wine because of the broken().
Actually broken() only returns true on Windows (my commit message was misleading if not flat out wrong on that count). On Wine it always returns false. This is why the todo_wine is needed.
Exactly, that was my point, broken() immediately returns 0 on Wine and the condition is not evaluated.
So I can understand not wanting to change the behavior of Wine and in that case having a todo_wine we don't intend to fix is a problem. So then I would propose this:
ok((oldpoint.x == 2 && oldpoint.y == 2) || broken(oldpoint.x == 11235 && oldpoint.y == 11235), "MoveToEx: oldpoint = (%d, %d), should be (2, 2).\n", oldpoint.x, oldpoint.y);
I'll resubmit with this option fleshed out.
This would be ok.
Huw.