[gdiplus_winetest]
[reactos.git] / rostests / winetests / gdiplus / pen.c
index d2f33f0..0bdf280 100644 (file)
@@ -33,21 +33,28 @@ static void test_startup(void)
     Status status;
     struct GdiplusStartupInput gdiplusStartupInput;
     ULONG_PTR gdiplusToken;
+    int gpversion;
 
-    gdiplusStartupInput.GdiplusVersion              = 1;
     gdiplusStartupInput.DebugEventCallback          = NULL;
     gdiplusStartupInput.SuppressBackgroundThread    = 0;
     gdiplusStartupInput.SuppressExternalCodecs      = 0;
 
-    status = GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NULL);
-    expect(Ok, status);
-    GdiplusShutdown(gdiplusToken);
-
-    gdiplusStartupInput.GdiplusVersion = 2;
-
-    status = GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NULL);
-    expect(UnsupportedGdiplusVersion, status);
-    GdiplusShutdown(gdiplusToken);
+    for (gpversion=1; gpversion<256; gpversion++)
+    {
+        gdiplusStartupInput.GdiplusVersion = gpversion;
+        status = GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NULL);
+        ok(status == Ok || status == UnsupportedGdiplusVersion,
+            "GdiplusStartup returned %x\n", status);
+        GdiplusShutdown(gdiplusToken);
+        if (status != Ok)
+        {
+            gpversion--;
+            break;
+        }
+    }
+
+    ok(gpversion > 0 && gpversion <= 2, "unexpected gdiplus version %i\n", gpversion);
+    trace("gdiplus version is %i\n", gpversion);
 
     status = GdipCreatePen1((ARGB)0xffff00ff, 10.0f, UnitPixel, &pen);
 
@@ -219,7 +226,8 @@ static void test_dasharray(void)
     /* Try to set with count = 0. */
     GdipSetPenDashStyle(pen, DashStyleDot);
     status = GdipSetPenDashArray(pen, dashes, 0);
-    expect(OutOfMemory, status);
+    ok(status == OutOfMemory || status == InvalidParameter,
+       "Expected OutOfMemory or InvalidParameter, got %.8x\n", status);
     GdipGetPenDashStyle(pen, &style);
     expect(DashStyleDot, style);