From 0f9283437c98df89f91ec7a49342a4c88c7ef3f3 Mon Sep 17 00:00:00 2001 From: Alexandre Julliard Date: Wed, 5 Nov 2008 19:58:21 +0100 Subject: [PATCH] ntdll/tests: Fix a couple of tests on NT4. --- dlls/ntdll/tests/path.c | 36 +++++++++++++----------------------- 1 file changed, 13 insertions(+), 23 deletions(-) diff --git a/dlls/ntdll/tests/path.c b/dlls/ntdll/tests/path.c index fd6e40fd1e3..9d39cdcd9ab 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) -- 2.11.4.GIT