Paul Vriens : kernel32/tests: Fix some test failures on WinMe.

Alexandre Julliard julliard at winehq.org
Tue Sep 29 11:09:08 CDT 2009


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

Author: Paul Vriens <Paul.Vriens.Wine at gmail.com>
Date:   Tue Sep 29 10:14:23 2009 +0200

kernel32/tests: Fix some test failures on WinMe.

---

 dlls/kernel32/tests/file.c |   25 +++++++++++++++++++------
 1 files changed, 19 insertions(+), 6 deletions(-)

diff --git a/dlls/kernel32/tests/file.c b/dlls/kernel32/tests/file.c
index e2ad49d..5219f79 100644
--- a/dlls/kernel32/tests/file.c
+++ b/dlls/kernel32/tests/file.c
@@ -1860,10 +1860,11 @@ static void test_FindNextFileA(void)
     ok ( err == ERROR_NO_MORE_FILES, "GetLastError should return ERROR_NO_MORE_FILES\n");
 }
 
-static void test_FindFirstFileExA(void)
+static void test_FindFirstFileExA(FINDEX_SEARCH_OPS search_ops)
 {
     WIN32_FIND_DATAA search_results;
     HANDLE handle;
+    BOOL ret;
 
     if (!pFindFirstFileExA)
     {
@@ -1875,9 +1876,8 @@ static void test_FindFirstFileExA(void)
     _lclose(_lcreat("test-dir\\file1", 0));
     _lclose(_lcreat("test-dir\\file2", 0));
     CreateDirectoryA("test-dir\\dir1", NULL);
-    /* FindExLimitToDirectories is ignored */
     SetLastError(0xdeadbeef);
-    handle = pFindFirstFileExA("test-dir\\*", FindExInfoStandard, &search_results, FindExSearchLimitToDirectories, NULL, 0);
+    handle = pFindFirstFileExA("test-dir\\*", FindExInfoStandard, &search_results, search_ops, NULL, 0);
     if (handle == INVALID_HANDLE_VALUE && GetLastError() == ERROR_CALL_NOT_IMPLEMENTED)
     {
         win_skip("FindFirstFileExA is not implemented\n");
@@ -1894,7 +1894,18 @@ static void test_FindFirstFileExA(void)
     ok(FindNextFile(handle, &search_results), "Fetching third file failed\n");
     ok(CHECK_NAME(search_results.cFileName), "Invalid third entry - %s\n", search_results.cFileName);
 
-    ok(FindNextFile(handle, &search_results), "Fetching fourth file failed\n");
+    SetLastError(0xdeadbeef);
+    ret = FindNextFile(handle, &search_results);
+    if (!ret && (GetLastError() == ERROR_NO_MORE_FILES) && (search_ops == FindExSearchLimitToDirectories))
+    {
+        skip("File system supports directory filtering\n");
+        /* Results from the previous call are not cleared */
+        ok(strcmp(search_results.cFileName, "dir1") == 0, "Third entry should be 'dir1' is %s\n", search_results.cFileName);
+        FindClose( handle );
+        goto cleanup;
+    }
+
+    ok(ret, "Fetching fourth file failed\n");
     ok(CHECK_NAME(search_results.cFileName), "Invalid fourth entry - %s\n", search_results.cFileName);
 
     ok(FindNextFile(handle, &search_results), "Fetching fifth file failed\n");
@@ -1902,7 +1913,7 @@ static void test_FindFirstFileExA(void)
 
 #undef CHECK_NAME
 
-    ok(FindNextFile(handle, &search_results) == FALSE, "Fetching sixth file should failed\n");
+    ok(FindNextFile(handle, &search_results) == FALSE, "Fetching sixth file should fail\n");
 
     FindClose( handle );
 
@@ -2804,7 +2815,9 @@ START_TEST(file)
     test_MoveFileW();
     test_FindFirstFileA();
     test_FindNextFileA();
-    test_FindFirstFileExA();
+    test_FindFirstFileExA(0);
+    /* FindExLimitToDirectories is ignored if the file system doesn't support directory filtering */
+    test_FindFirstFileExA(FindExSearchLimitToDirectories);
     test_LockFile();
     test_file_sharing();
     test_offset_in_overlapped_structure();




More information about the wine-cvs mailing list