This behavior goes back to at least Windows XP.
Signed-off-by: Francois Gouget <fgouget(a)codeweavers.com>
---
v2: Added the todo_wine since it does not match the Windows behavior.
An alternative would be to mark the Windows behavior as broken.
There's a good argument to be made about it since it does not match
the documentation. But then the documentation is known to often be
wrong and Windows' behavior has not wavered since Windows XP so it's
not like this behavior is a bug that will be fixed. This is why I
opted for documenting the Windows behavior and showing that Wine
diverges.
dlls/gdi32/tests/metafile.c | 15 +++++++--------
1 file changed, 7 insertions(+), 8 deletions(-)
diff --git a/dlls/gdi32/tests/metafile.c b/dlls/gdi32/tests/metafile.c
index 6adafa37b82..3d0e45e10a6 100644
--- a/dlls/gdi32/tests/metafile.c
+++ b/dlls/gdi32/tests/metafile.c
@@ -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());
--
2.20.1