Jinoh Kang : kernel32/tests: Test deletion of synchronization objects after handle close.

Alexandre Julliard julliard at winehq.org
Mon Jul 18 15:45:51 CDT 2022


Module: wine
Branch: master
Commit: e613992cee2310dc4485a00f00db8ace165d913b
URL:    https://gitlab.winehq.org/wine/wine/-/commit/e613992cee2310dc4485a00f00db8ace165d913b

Author: Jinoh Kang <jinoh.kang.kr at gmail.com>
Date:   Tue Jul 19 00:00:18 2022 +0900

kernel32/tests: Test deletion of synchronization objects after handle close.

---

 dlls/kernel32/tests/sync.c | 46 ++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 46 insertions(+)

diff --git a/dlls/kernel32/tests/sync.c b/dlls/kernel32/tests/sync.c
index 93cae1c84d5..60180194b7a 100644
--- a/dlls/kernel32/tests/sync.c
+++ b/dlls/kernel32/tests/sync.c
@@ -182,6 +182,51 @@ static void test_signalandwait(void)
     CloseHandle(file);
 }
 
+static void test_temporary_objects(void)
+{
+    HANDLE handle;
+
+    SetLastError(0xdeadbeef);
+    handle = CreateMutexA(NULL, FALSE, "WineTestMutex2");
+    ok(handle != NULL, "CreateMutex failed with error %ld\n", GetLastError());
+    CloseHandle(handle);
+
+    SetLastError(0xdeadbeef);
+    handle = OpenMutexA(READ_CONTROL, FALSE, "WineTestMutex2");
+    ok(!handle, "OpenMutex succeeded\n");
+    ok(GetLastError() == ERROR_FILE_NOT_FOUND, "wrong error %lu\n", GetLastError());
+
+    SetLastError(0xdeadbeef);
+    handle = CreateSemaphoreA(NULL, 0, 1, "WineTestSemaphore2");
+    ok(handle != NULL, "CreateSemaphore failed with error %ld\n", GetLastError());
+    CloseHandle(handle);
+
+    SetLastError(0xdeadbeef);
+    handle = OpenSemaphoreA(READ_CONTROL, FALSE, "WineTestSemaphore2");
+    ok(!handle, "OpenSemaphore succeeded\n");
+    ok(GetLastError() == ERROR_FILE_NOT_FOUND, "wrong error %lu\n", GetLastError());
+
+    SetLastError(0xdeadbeef);
+    handle = CreateEventA(NULL, FALSE, FALSE, "WineTestEvent2");
+    ok(handle != NULL, "CreateEvent failed with error %ld\n", GetLastError());
+    CloseHandle(handle);
+
+    SetLastError(0xdeadbeef);
+    handle = OpenEventA(READ_CONTROL, FALSE, "WineTestEvent2");
+    ok(!handle, "OpenEvent succeeded\n");
+    ok(GetLastError() == ERROR_FILE_NOT_FOUND, "wrong error %lu\n", GetLastError());
+
+    SetLastError(0xdeadbeef);
+    handle = CreateWaitableTimerA(NULL, FALSE, "WineTestWaitableTimer2");
+    ok(handle != NULL, "CreateWaitableTimer failed with error %ld\n", GetLastError());
+    CloseHandle(handle);
+
+    SetLastError(0xdeadbeef);
+    handle = OpenWaitableTimerA(READ_CONTROL, FALSE, "WineTestWaitableTimer2");
+    ok(!handle, "OpenWaitableTimer succeeded\n");
+    ok(GetLastError() == ERROR_FILE_NOT_FOUND, "wrong error %lu\n", GetLastError());
+}
+
 static void test_mutex(void)
 {
     DWORD wait_ret;
@@ -2825,6 +2870,7 @@ START_TEST(sync)
 
     test_QueueUserAPC();
     test_signalandwait();
+    test_temporary_objects();
     test_mutex();
     test_slist();
     test_event();




More information about the wine-cvs mailing list