shell32/tests: Fix test_GetDisplayName() to cope with a left-over test directory.

Francois Gouget fgouget at free.fr
Fri Feb 9 05:41:08 CST 2007


---

The shlfolder test must have been interrupted one day which caused it to 
leave the '~/winetest' directory behind. Ever since it has 
systematically failed because it was trying to create an existing 
directory. This patch makes it more robust.


 dlls/shell32/tests/shlfolder.c |   12 +++++++++---
 1 files changed, 9 insertions(+), 3 deletions(-)

diff --git a/dlls/shell32/tests/shlfolder.c b/dlls/shell32/tests/shlfolder.c
index 15780ee..380ce0c 100644
--- a/dlls/shell32/tests/shlfolder.c
+++ b/dlls/shell32/tests/shlfolder.c
@@ -338,6 +338,7 @@ static void test_GetDisplayName(void)
     HANDLE hTestFile;
     WCHAR wszTestFile[MAX_PATH], wszTestFile2[MAX_PATH], wszTestDir[MAX_PATH];
     char szTestFile[MAX_PATH], szTestDir[MAX_PATH];
+    DWORD attr;
     STRRET strret;
     LPSHELLFOLDER psfDesktop, psfPersonal;
     IUnknown *psfFile;
@@ -364,10 +365,15 @@ static void test_GetDisplayName(void)
 
     PathAddBackslashW(wszTestDir);
     lstrcatW(wszTestDir, wszDirName);
+    /* Use ANSI file functions so this works on Windows 9x */
     WideCharToMultiByte(CP_ACP, 0, wszTestDir, -1, szTestDir, MAX_PATH, 0, 0);
-    result = CreateDirectoryA(szTestDir, NULL);
-    ok(result, "CreateDirectoryA failed! Last error: %u\n", GetLastError());
-    if (!result) return;
+    CreateDirectoryA(szTestDir, NULL);
+    attr=GetFileAttributesA(szTestDir);
+    if (attr == INVALID_FILE_ATTRIBUTES || !(attr & FILE_ATTRIBUTE_DIRECTORY))
+    {
+        ok(0, "unable to create the '%s' directory\n", szTestDir);
+        return;
+    }
 
     lstrcpyW(wszTestFile, wszTestDir);
     PathAddBackslashW(wszTestFile);
-- 
1.4.4.3



More information about the wine-patches mailing list