[PATCH] gdi32/tests: MoveToEx() does not return the old point.

Francois Gouget fgouget at codeweavers.com
Thu Nov 21 09:10:12 CST 2019


This behavior goes back to at least Windows XP.
Note that Wine depends on MoveToEx() returning the old point.

Signed-off-by: Francois Gouget <fgouget at codeweavers.com>
---
 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..3920b8c0c43 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 it stopped doing so with Windows XP.
+     */
+    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




More information about the wine-devel mailing list