Alexandre Julliard : gdi32/tests: Add a few more path tests.
Alexandre Julliard
julliard at winehq.org
Wed Jun 15 11:39:42 CDT 2016
Module: wine
Branch: master
Commit: bd53a012b4f8bf2fdb6f6c97157e929ab52fdde5
URL: http://source.winehq.org/git/wine.git/?a=commit;h=bd53a012b4f8bf2fdb6f6c97157e929ab52fdde5
Author: Alexandre Julliard <julliard at winehq.org>
Date: Thu Jun 16 00:25:03 2016 +0900
gdi32/tests: Add a few more path tests.
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/gdi32/tests/path.c | 53 ++++++++++++++++++++++++++++++++++++++++++++-----
1 file changed, 48 insertions(+), 5 deletions(-)
diff --git a/dlls/gdi32/tests/path.c b/dlls/gdi32/tests/path.c
index 223a027..f7ed012 100644
--- a/dlls/gdi32/tests/path.c
+++ b/dlls/gdi32/tests/path.c
@@ -38,6 +38,7 @@ static void test_path_state(void)
BYTE buffer[sizeof(BITMAPINFO) + 256 * sizeof(RGBQUAD)];
BITMAPINFO *bi = (BITMAPINFO *)buffer;
HDC hdc;
+ HRGN rgn;
HBITMAP orig, dib;
void *bits;
BOOL ret;
@@ -139,6 +140,12 @@ static void test_path_state(void)
"wrong error %u\n", GetLastError() );
SetLastError( 0xdeadbeef );
+ rgn = PathToRegion( hdc );
+ ok( !rgn, "PathToRegion succeeded\n" );
+ ok( GetLastError() == ERROR_CAN_NOT_COMPLETE || broken(GetLastError() == 0xdeadbeef),
+ "wrong error %u\n", GetLastError() );
+
+ SetLastError( 0xdeadbeef );
ret = EndPath( hdc );
ok( !ret, "SelectClipPath succeeded\n" );
ok( GetLastError() == ERROR_CAN_NOT_COMPLETE || broken(GetLastError() == 0xdeadbeef),
@@ -202,6 +209,15 @@ static void test_path_state(void)
AbortPath( hdc );
BeginPath( hdc );
+ Rectangle( hdc, 1, 1, 10, 10 ); /* region needs some contents */
+ SetLastError( 0xdeadbeef );
+ rgn = PathToRegion( hdc );
+ ok( !rgn, "PathToRegion succeeded\n" );
+ ok( GetLastError() == ERROR_CAN_NOT_COMPLETE || broken(GetLastError() == 0xdeadbeef),
+ "wrong error %u\n", GetLastError() );
+
+ AbortPath( hdc );
+ BeginPath( hdc );
ret = CloseFigure( hdc );
ok( ret, "CloseFigure failed\n" );
@@ -211,39 +227,66 @@ static void test_path_state(void)
EndPath( hdc );
ret = WidenPath( hdc );
ok( ret, "WidenPath failed\n" );
+ ok( GetPath( hdc, NULL, NULL, 0 ) != -1, "path deleted\n" );
AbortPath( hdc );
BeginPath( hdc );
EndPath( hdc );
ret = FlattenPath( hdc );
ok( ret, "FlattenPath failed\n" );
+ ok( GetPath( hdc, NULL, NULL, 0 ) != -1, "path deleted\n" );
AbortPath( hdc );
BeginPath( hdc );
EndPath( hdc );
ret = StrokePath( hdc );
ok( ret, "StrokePath failed\n" );
+ ok( GetPath( hdc, NULL, NULL, 0 ) == -1, "path not deleted\n" );
- AbortPath( hdc );
BeginPath( hdc );
EndPath( hdc );
ret = FillPath( hdc );
ok( ret, "FillPath failed\n" );
+ ok( GetPath( hdc, NULL, NULL, 0 ) == -1, "path not deleted\n" );
- AbortPath( hdc );
BeginPath( hdc );
EndPath( hdc );
ret = StrokeAndFillPath( hdc );
ok( ret, "StrokeAndFillPath failed\n" );
+ ok( GetPath( hdc, NULL, NULL, 0 ) == -1, "path not deleted\n" );
- AbortPath( hdc );
BeginPath( hdc );
Rectangle( hdc, 1, 1, 10, 10 ); /* region needs some contents */
EndPath( hdc );
ret = SelectClipPath( hdc, RGN_OR );
ok( ret, "SelectClipPath failed\n" );
+ ok( GetPath( hdc, NULL, NULL, 0 ) == -1, "path not deleted\n" );
+
+ BeginPath( hdc );
+ EndPath( hdc );
+ SetLastError( 0xdeadbeef );
+ ret = SelectClipPath( hdc, RGN_OR );
+ todo_wine ok( !ret, "SelectClipPath succeeded on empty path\n" );
+ ok( GetLastError() == 0xdeadbeef, "wrong error %u\n", GetLastError() );
+ ok( GetPath( hdc, NULL, NULL, 0 ) == -1, "path not deleted\n" );
+
+ BeginPath( hdc );
+ Rectangle( hdc, 1, 1, 10, 10 ); /* region needs some contents */
+ EndPath( hdc );
+ rgn = PathToRegion( hdc );
+ ok( rgn != 0, "PathToRegion failed\n" );
+ DeleteObject( rgn );
+ ok( GetPath( hdc, NULL, NULL, 0 ) == -1, "path not deleted\n" );
+
+ BeginPath( hdc );
+ EndPath( hdc );
+ SetLastError( 0xdeadbeef );
+ rgn = PathToRegion( hdc );
+ todo_wine ok( !rgn, "PathToRegion succeeded on empty path\n" );
+ ok( GetLastError() == 0xdeadbeef, "wrong error %u\n", GetLastError() );
+ DeleteObject( rgn );
+ ok( GetPath( hdc, NULL, NULL, 0 ) == -1, "path not deleted\n" );
- AbortPath( hdc );
BeginPath( hdc );
EndPath( hdc );
SetLastError( 0xdeadbeef );
@@ -257,7 +300,7 @@ static void test_path_state(void)
EndPath( hdc );
SetLastError( 0xdeadbeef );
ret = EndPath( hdc );
- ok( !ret, "SelectClipPath succeeded\n" );
+ ok( !ret, "EndPath succeeded\n" );
ok( GetLastError() == ERROR_CAN_NOT_COMPLETE || broken(GetLastError() == 0xdeadbeef),
"wrong error %u\n", GetLastError() );
More information about the wine-cvs
mailing list