Alexandre Julliard : ntdll/tests: Fix a couple of tests on NT4.

Alexandre Julliard julliard at winehq.org
Thu Nov 6 08:25:56 CST 2008


Module: wine
Branch: master
Commit: 0f9283437c98df89f91ec7a49342a4c88c7ef3f3
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=0f9283437c98df89f91ec7a49342a4c88c7ef3f3

Author: Alexandre Julliard <julliard at winehq.org>
Date:   Wed Nov  5 19:58:21 2008 +0100

ntdll/tests: Fix a couple of tests on NT4.

---

 dlls/ntdll/tests/path.c |   36 +++++++++++++-----------------------
 1 files changed, 13 insertions(+), 23 deletions(-)

diff --git a/dlls/ntdll/tests/path.c b/dlls/ntdll/tests/path.c
index fd6e40f..9d39cdc 100644
--- a/dlls/ntdll/tests/path.c
+++ b/dlls/ntdll/tests/path.c
@@ -231,6 +231,8 @@ static void test_RtlGetFullPathName_U(void)
         const char *path;
         const char *rname;
         const char *rfile;
+        const char *alt_rname;
+        const char *alt_rfile;
     };
 
     static const struct test tests[] =
@@ -251,8 +253,11 @@ static void test_RtlGetFullPathName_U(void)
             { "c:/test/\\.\\.\\file",        "c:\\test\\file",   "file"},
             { "c:/test\\\\.\\.\\file",       "c:\\test\\file",   "file"},
             { "c:/test\\test1\\..\\.\\file", "c:\\test\\file",   "file"},
-            { "c:///test\\.\\.\\file//",     "c:\\test\\file\\", NULL},
+            { "c:///test\\.\\.\\file//",     "c:\\test\\file\\", NULL,
+                                             "c:\\test\\file",   "file"},  /* nt4 */
             { "c:///test\\..\\file\\..\\//", "c:\\",             NULL},
+            { "c:/test../file",              "c:\\test.\\file",  "file",
+                                             "c:\\test..\\file", "file"},  /* vista */
             { NULL, NULL, NULL}
         };
 
@@ -260,7 +265,6 @@ static void test_RtlGetFullPathName_U(void)
     WCHAR pathbufW[2*MAX_PATH], rbufferW[MAX_PATH];
     CHAR  rbufferA[MAX_PATH], rfileA[MAX_PATH];
     ULONG ret;
-    NTSTATUS status;
     WCHAR *file_part;
     DWORD reslen;
     UINT len;
@@ -270,39 +274,25 @@ static void test_RtlGetFullPathName_U(void)
         len= strlen(test->rname) * sizeof(WCHAR);
         pRtlMultiByteToUnicodeN(pathbufW , sizeof(pathbufW), NULL, test->path, strlen(test->path)+1 );
         ret = pRtlGetFullPathName_U( pathbufW,MAX_PATH, rbufferW, &file_part);
-        ok( ret == len, "Wrong result %d/%d for \"%s\"\n", ret, len, test->path );
+        ok( ret == len || (test->alt_rname && ret == strlen(test->alt_rname)*sizeof(WCHAR)),
+            "Wrong result %d/%d for \"%s\"\n", ret, len, test->path );
         ok(pRtlUnicodeToMultiByteN(rbufferA,MAX_PATH,&reslen,rbufferW,(lstrlenW(rbufferW) + 1) * sizeof(WCHAR)) == STATUS_SUCCESS,
            "RtlUnicodeToMultiByteN failed\n");
-        ok(lstrcmpiA(rbufferA,test->rname) == 0, "Got \"%s\" expected \"%s\"\n",rbufferA,test->rname);
+        ok(!lstrcmpiA(rbufferA,test->rname) || (test->alt_rname && !lstrcmpiA(rbufferA,test->alt_rname)),
+           "Got \"%s\" expected \"%s\"\n",rbufferA,test->rname);
         if (file_part)
         {
             ok(pRtlUnicodeToMultiByteN(rfileA,MAX_PATH,&reslen,file_part,(lstrlenW(file_part) + 1) * sizeof(WCHAR)) == STATUS_SUCCESS,
                "RtlUnicodeToMultiByteN failed\n");
-            ok(test->rfile && !lstrcmpiA(rfileA,test->rfile), "Got \"%s\" expected \"%s\"\n",rfileA,test->rfile);
+            ok((test->rfile && !lstrcmpiA(rfileA,test->rfile)) ||
+               (test->alt_rfile && !lstrcmpiA(rfileA,test->alt_rfile)),
+               "Got \"%s\" expected \"%s\"\n",rfileA,test->rfile);
         }
         else
         {
             ok( !test->rfile, "Got NULL expected \"%s\"\n", test->rfile );
         }
     }
-
-    /* "c:/test../file",              "c:\\test.\\file",  "file"}, */
-    pRtlMultiByteToUnicodeN(pathbufW, sizeof(pathbufW), NULL,
-                            "c:/test../file", strlen("c:/test../file") + 1);
-    ret = pRtlGetFullPathName_U(pathbufW, MAX_PATH, rbufferW, &file_part);
-    ok(ret == strlen("c:\\test.\\file") * sizeof(WCHAR) ||
-       ret == strlen("c:\\test..\\file") * sizeof(WCHAR), /* Vista */
-       "Expected 26 or 28, got %d\n", ret);
-    status = pRtlUnicodeToMultiByteN(rbufferA, MAX_PATH, &reslen, rbufferW,
-                                     (lstrlenW(rbufferW) + 1) * sizeof(WCHAR));
-    ok(status == STATUS_SUCCESS, "RtlUnicodeToMultiByteN failed\n");
-    ok(!lstrcmpiA(rbufferA, "c:\\test.\\file") ||
-       !lstrcmpiA(rbufferA, "c:\\test..\\file"),
-       "Expected \"c:\\test.\\file\" or \"c:\\test..\\file\", got \"%s\"\n", rbufferA);
-    status = pRtlUnicodeToMultiByteN(rfileA, MAX_PATH, &reslen, file_part,
-                                     (lstrlenW(file_part) + 1) * sizeof(WCHAR));
-    ok(status == STATUS_SUCCESS, "RtlUnicodeToMultiByteN failed\n");
-    ok(!lstrcmpiA(rfileA, "file"), "Got \"%s\" expected \"file\"\n", rfileA);
 }
 
 START_TEST(path)




More information about the wine-cvs mailing list