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