Nikolay Sivov : gdiplus: Add some tests for pathiterator, fix leaks.

Alexandre Julliard julliard at winehq.org
Fri Oct 17 07:25:40 CDT 2008


Module: wine
Branch: master
Commit: dee8657be43f2f4e3411ee1a1394ad14fadff919
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=dee8657be43f2f4e3411ee1a1394ad14fadff919

Author: Nikolay Sivov <bunglehead at gmail.com>
Date:   Thu Oct 16 20:31:25 2008 +0400

gdiplus: Add some tests for pathiterator, fix leaks.

---

 dlls/gdiplus/tests/pathiterator.c |   53 ++++++++++++++++++++++++++++++++++--
 1 files changed, 50 insertions(+), 3 deletions(-)

diff --git a/dlls/gdiplus/tests/pathiterator.c b/dlls/gdiplus/tests/pathiterator.c
index 79ce879..eddb24e 100644
--- a/dlls/gdiplus/tests/pathiterator.c
+++ b/dlls/gdiplus/tests/pathiterator.c
@@ -459,8 +459,6 @@ static void test_nextsubpath(void)
     INT start, end, result;
     BOOL closed;
 
-    GdipCreatePath(FillModeAlternate, &path);
-
     /* empty path */
     GdipCreatePath(FillModeAlternate, &path);
     GdipCreatePathIter(&iter, path);
@@ -471,8 +469,8 @@ static void test_nextsubpath(void)
     expect(Ok, stat);
     expect(0, result);
     expect(TRUE, closed);
-    GdipCreatePathIter(&iter, path);
 
+    GdipDeletePathIter(iter);
     GdipDeletePath(path);
 }
 
@@ -500,6 +498,55 @@ static void test_nextpathtype(void)
     expect(InvalidParameter, stat);
     stat = GdipPathIterNextPathType(iter, NULL, &type, &start, &end);
     expect(InvalidParameter, stat);
+    stat = GdipPathIterNextPathType(iter, &result, &type, NULL, NULL);
+    expect(InvalidParameter, stat);
+
+    /* empty path */
+    start = end = result = (INT)0xdeadbeef;
+    stat = GdipPathIterNextPathType(iter, &result, &type, &start, &end);
+    todo_wine expect(Ok, stat);
+    expect((INT)0xdeadbeef, start);
+    expect((INT)0xdeadbeef, end);
+    todo_wine expect(0, result);
+    GdipDeletePathIter(iter);
+
+    /* single figure */
+    GdipAddPathLine(path, 0.0, 0.0, 10.0, 30.0);
+    GdipCreatePathIter(&iter, path);
+    start = end = result = (INT)0xdeadbeef;
+    type = 255; /* out of range */
+    stat = GdipPathIterNextPathType(iter, &result, &type, &start, &end);
+    todo_wine expect(Ok, stat);
+    expect((INT)0xdeadbeef, start);
+    expect((INT)0xdeadbeef, end);
+    expect(255, type);
+    todo_wine expect(0, result);
+    GdipDeletePathIter(iter);
+
+    GdipAddPathEllipse(path, 0.0, 0.0, 35.0, 70.0);
+    GdipCreatePathIter(&iter, path);
+    start = end = result = (INT)0xdeadbeef;
+    type = 255; /* out of range */
+    stat = GdipPathIterNextPathType(iter, &result, &type, &start, &end);
+    todo_wine expect(Ok, stat);
+    expect((INT)0xdeadbeef, start);
+    expect((INT)0xdeadbeef, end);
+    expect(255, type);
+    todo_wine expect(0, result);
+    GdipDeletePathIter(iter);
+
+    /* closed */
+    GdipClosePathFigure(path);
+    GdipCreatePathIter(&iter, path);
+    start = end = result = (INT)0xdeadbeef;
+    type = 255; /* out of range */
+    stat = GdipPathIterNextPathType(iter, &result, &type, &start, &end);
+    todo_wine expect(Ok, stat);
+    expect((INT)0xdeadbeef, start);
+    expect((INT)0xdeadbeef, end);
+    expect(255, type);
+    todo_wine expect(0, result);
+    GdipDeletePathIter(iter);
 
     GdipDeletePath(path);
 }




More information about the wine-cvs mailing list