[PATCH] kernel32/tests: Add more directory change notification tests.

Dmitry Timoshkov dmitry at baikal.ru
Mon Nov 5 04:47:12 CST 2018


Signed-off-by: Dmitry Timoshkov <dmitry at baikal.ru>
---
 dlls/kernel32/tests/change.c | 40 ++++++++++++++++++++++++++++++++++--
 1 file changed, 38 insertions(+), 2 deletions(-)

diff --git a/dlls/kernel32/tests/change.c b/dlls/kernel32/tests/change.c
index f4abad48c5..3c8084de64 100644
--- a/dlls/kernel32/tests/change.c
+++ b/dlls/kernel32/tests/change.c
@@ -254,11 +254,12 @@ static void test_FindFirstChangeNotification(void)
 static void test_ffcn(void)
 {
     DWORD filter;
-    HANDLE handle;
+    HANDLE handle, file;
     LONG r;
-    WCHAR path[MAX_PATH], subdir[MAX_PATH];
+    WCHAR path[MAX_PATH], subdir[MAX_PATH], filename[MAX_PATH];
     static const WCHAR szBoo[] = { '\\','b','o','o',0 };
     static const WCHAR szHoo[] = { '\\','h','o','o',0 };
+    static const WCHAR szZoo[] = { '\\','z','o','o',0 };
 
     SetLastError(0xdeadbeef);
     r = GetTempPathW( MAX_PATH, path );
@@ -275,6 +276,9 @@ static void test_ffcn(void)
     lstrcpyW( subdir, path );
     lstrcatW( subdir, szHoo );
 
+    lstrcpyW( filename, path );
+    lstrcatW( filename, szZoo );
+
     RemoveDirectoryW( subdir );
     RemoveDirectoryW( path );
     
@@ -290,6 +294,38 @@ static void test_ffcn(void)
     r = WaitForSingleObject( handle, 0 );
     ok( r == STATUS_TIMEOUT, "should time out\n");
 
+    file = CreateFileW( filename, GENERIC_READ | GENERIC_WRITE, 0, NULL,
+                        CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0 );
+    ok( file != INVALID_HANDLE_VALUE, "CreateFile error %u\n", GetLastError() );
+    CloseHandle(file);
+
+    r = WaitForSingleObject( handle, 0 );
+    ok( r == WAIT_OBJECT_0, "should be ready\n");
+
+    r = WaitForSingleObject( handle, 0 );
+    ok( r == WAIT_OBJECT_0, "should be ready\n");
+
+    r = FindNextChangeNotification(handle);
+    ok( r == TRUE, "find next failed\n");
+
+    r = WaitForSingleObject( handle, 0 );
+    ok( r == STATUS_TIMEOUT, "should time out\n");
+
+    r = DeleteFileW( filename );
+    ok( r == TRUE, "failed to remove file\n");
+
+    r = WaitForSingleObject( handle, 0 );
+    ok( r == WAIT_OBJECT_0, "should be ready\n");
+
+    r = WaitForSingleObject( handle, 0 );
+    ok( r == WAIT_OBJECT_0, "should be ready\n");
+
+    r = FindNextChangeNotification(handle);
+    ok( r == TRUE, "find next failed\n");
+
+    r = WaitForSingleObject( handle, 0 );
+    ok( r == STATUS_TIMEOUT, "should time out\n");
+
     r = CreateDirectoryW( subdir, NULL );
     ok( r == TRUE, "failed to create subdir\n");
 
-- 
2.17.1




More information about the wine-devel mailing list