On Sat, Jul 12, 2008 at 4:11 PM, Nikolay Sivov <[EMAIL PROTECTED]> wrote:
> Changelog:
> - Fix test for PathIterator + make it pass on native and Wine
> ---
> dlls/gdiplus/pathiterator.c | 3 ++-
> dlls/gdiplus/tests/pathiterator.c | 5 +++--
> 2 files changed, 5 insertions(+), 3 deletions(-)
>
> diff --git a/dlls/gdiplus/pathiterator.c b/dlls/gdiplus/pathiterator.c
> index 55b0782..3d3b1dc 100644
> --- a/dlls/gdiplus/pathiterator.c
> +++ b/dlls/gdiplus/pathiterator.c
> @@ -140,7 +140,8 @@ GpStatus WINGDIPAPI
> GdipPathIterNextMarker(GpPathIterator* iterator, INT *result
> /* first call could start with second point as all subsequent, cause
> path couldn't contain only one */
> for(i = iterator->marker_pos + 1; i < iterator->pathdata.Count; i++){
> - if(iterator->pathdata.Types[i] & PathPointTypePathMarker){
> + if((iterator->pathdata.Types[i] & PathPointTypePathMarker) ||
> + (i == iterator->pathdata.Count - 1)){
> *startIndex = iterator->marker_pos;
> if(iterator->marker_pos > 0) (*startIndex)++;
> *endIndex = iterator->marker_pos = i;
> diff --git a/dlls/gdiplus/tests/pathiterator.c
> b/dlls/gdiplus/tests/pathiterator.c
> index 071c1d5..90725dc 100644
> --- a/dlls/gdiplus/tests/pathiterator.c
> +++ b/dlls/gdiplus/tests/pathiterator.c
> @@ -95,7 +95,8 @@ static void test_nextmarker(void)
> GpPath *path;
> GpPathIterator *iter;
> GpStatus stat;
> - INT start, end, result;
> + INT start, end;
> + INT result = (INT)0xdeadbeef;
>
> /* NULL args
> BOOL out argument is local in wrapper class method,
> @@ -114,7 +115,7 @@ static void test_nextmarker(void)
> GdipCreatePathIter(&iter, path);
> stat = GdipPathIterNextMarker(iter, &result, &start, &end);
> expect(Ok, stat);
> - expect(0, result);
> + expect(TRUE, (result == 4) && (start == 0) && (end == 3));
Please break these out into their own tests. Like I said before, they
are independent, and if one of them fails, it's impossible to tell
from the test results which one is wrong. Also, none of the tests
should be (returned == expected) == TRUE. It should simply be
expect(expected, returned).
--
James Hawkins