gdiplus: add some tests for pathiterator, fix leaks

Nikolay Sivov bunglehead at gmail.com
Thu Oct 16 12:10:18 CDT 2008


>From 98082e91ae9b179d2111dca52b0c0c1ea3dfffd0 Mon Sep 17 00:00:00 2001
From: Nikolay Sivov <bunglehead at gmail.com>
Date: Thu, 16 Oct 2008 20:31:25 +0400
Subject:  Fix some leaks, add new tests

---
 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);
 }
-- 
1.4.4.4






More information about the wine-patches mailing list