[MPR_WINETEST] Sync with Wine Staging 3.17. CORE-15127
[reactos.git] / modules / rostests / winetests / mpr / mpr.c
index c8ca244..3e5ca09 100644 (file)
@@ -51,16 +51,19 @@ static void test_WNetGetUniversalName(void)
 
         ok(info_size == sizeof(buffer), "Got wrong size: %u\n", info_size);
 
-        fail_size = 0;
+        fail_size = 1;
         ret = WNetGetUniversalNameA(driveA, UNIVERSAL_NAME_INFO_LEVEL,
                 buffer, &fail_size);
         if(drive_type == DRIVE_REMOTE)
-            todo_wine ok(ret == WN_BAD_VALUE, "WNetGetUniversalNameA failed: %08x\n", ret);
+        {
+            todo_wine ok(ret == WN_BAD_VALUE || ret == WN_MORE_DATA, "WNetGetUniversalNameA failed: %08x\n", ret);
+            ok(fail_size > 1, "Got %d\n", fail_size);
+        }
         else
             ok(ret == WN_NOT_CONNECTED || ret == WN_NO_NET_OR_BAD_PATH,
                 "(%s) WNetGetUniversalNameW gave wrong error: %u\n", driveA, ret);
 
-        fail_size = sizeof(driveA) / sizeof(char) - 1;
+        fail_size = ARRAY_SIZE(driveA) - 1;
         ret = WNetGetUniversalNameA(driveA, UNIVERSAL_NAME_INFO_LEVEL,
                 buffer, &fail_size);
         if(drive_type == DRIVE_REMOTE)
@@ -114,7 +117,7 @@ static void test_WNetGetRemoteName(void)
                 buffer, &fail_size);
         if(drive_type == DRIVE_REMOTE)
             todo_wine
-            ok(ret == WN_BAD_VALUE, "WNetGetUniversalNameA failed: %08x\n", ret);
+            ok(ret == WN_BAD_VALUE || ret == WN_MORE_DATA, "WNetGetUniversalNameA failed: %08x\n", ret);
         else
             ok(ret == WN_NOT_CONNECTED || ret == WN_NO_NET_OR_BAD_PATH,
                 "(%s) WNetGetUniversalNameA gave wrong error: %u\n", driveA, ret);
@@ -125,15 +128,14 @@ static void test_WNetGetRemoteName(void)
         ret = WNetGetUniversalNameA(driveA, REMOTE_NAME_INFO_LEVEL,
                 NULL, &info_size);
 
-        if(((GetVersion() & 0x8000ffff) == 0x00000004) || /* NT40 */
-           (drive_type == DRIVE_REMOTE))
+        if(drive_type == DRIVE_REMOTE)
             todo_wine
-            ok(ret == WN_BAD_POINTER, "WNetGetUniversalNameA failed: %08x\n", ret);
+            ok(ret == WN_BAD_POINTER || ret == WN_BAD_VALUE, "WNetGetUniversalNameA failed: %08x\n", ret);
         else
             ok(ret == WN_NOT_CONNECTED || ret == WN_BAD_VALUE,
                 "(%s) WNetGetUniversalNameA gave wrong error: %u\n", driveA, ret);
 
-        fail_size = sizeof(driveA) / sizeof(char) - 1;
+        fail_size = ARRAY_SIZE(driveA) - 1;
         ret = WNetGetUniversalNameA(driveA, REMOTE_NAME_INFO_LEVEL,
                 buffer, &fail_size);
         if(drive_type == DRIVE_REMOTE)
@@ -282,8 +284,9 @@ static void test_WNetUseConnection(void)
         strcpy(netRes->lpRemoteName, "\\\\127.0.0.1\\c$");
         bufSize = 0;
         ret = pWNetUseConnectionA(NULL, netRes, NULL, NULL, 0, NULL, &bufSize, &outRes);
-        if (ret == ERROR_ALREADY_ASSIGNED) continue;
+        if (ret != ERROR_ALREADY_ASSIGNED) break;
     }
+    if (ret == ERROR_ALREADY_ASSIGNED) goto end;    /* no drives available */
     todo_wine ok(ret == WN_SUCCESS, "Unexpected return: %u\n", ret);
     ok(bufSize == 0, "Unexpected buffer size: %u\n", bufSize);
     if (ret == WN_SUCCESS) WNetCancelConnectionA(drive, TRUE);
@@ -308,6 +311,7 @@ static void test_WNetUseConnection(void)
     ok(bufSize == 4, "Unexpected buffer size: %u\n", bufSize);
     if (ret == WN_SUCCESS) WNetCancelConnectionA(drive, TRUE);
 
+end:
     HeapFree(GetProcessHeap(), 0, netRes);
 }