From 9127a5319bb76cdd13ca09906cfcdd4c3faa7450 Mon Sep 17 00:00:00 2001 From: Stanislav Motylkov Date: Mon, 15 Jun 2026 21:32:32 +0300 Subject: [PATCH] [KERNEL32_WINETEST] Move ReactOS-specific tests down a bit Avoid hitting ReactOS interprocess file sharing bugs that are not fixed yet and use a pair of fresh temporary files for testing the function. Addendum to 4e3729f06fe (#9145). CORE-10271 --- modules/rostests/winetests/kernel32/file.c | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/modules/rostests/winetests/kernel32/file.c b/modules/rostests/winetests/kernel32/file.c index 0ebb72714d9..a7a1b7af57e 100644 --- a/modules/rostests/winetests/kernel32/file.c +++ b/modules/rostests/winetests/kernel32/file.c @@ -1237,10 +1237,24 @@ static void test_CopyFileEx(void) ok(!retok, "CopyFileExA unexpectedly succeeded\n"); ok(GetLastError() == ERROR_PATH_NOT_FOUND, "expected ERROR_PATH_NOT_FOUND, got %ld\n", GetLastError()); + ret = DeleteFileA(source); + ok(ret, "DeleteFileA failed with error %ld\n", GetLastError()); + ret = DeleteFileA(dest); + ok(!ret, "DeleteFileA unexpectedly succeeded\n"); #ifdef __REACTOS__ /* Cover ReactOS bug in CORE-10271: * BasepCopyFileExW was handling any set flags as COPY_FILE_FAIL_IF_EXISTS. * This affected CopyFileEx, PrivCopyFileEx, and MoveFileWithProgress */ + ret = GetTempFileNameA(temp_path, prefix, 0, source); + ok(ret != 0, "GetTempFileNameA error %ld\n", GetLastError()); + + ret = GetTempFileNameA(temp_path, prefix, 0, dest); + ok(ret != 0, "GetTempFileNameA error %ld\n", GetLastError()); + + /* Only use the file name as target */ + ret = DeleteFileA(dest); + ok(ret, "DeleteFileA unexpectedly failed\n"); + retok = CopyFileExA(source, dest, NULL, NULL, FALSE, 0); ok(retok, "CopyFileExA unexpectedly failed\n"); ok(GetLastError() == ERROR_SUCCESS, "expected ERROR_SUCCESS, got %ld\n", GetLastError()); @@ -1284,12 +1298,9 @@ static void test_CopyFileEx(void) ok(!retok, "CopyFileExA unexpectedly succeeded\n"); ok(GetLastError() == ERROR_FILE_EXISTS, "expected ERROR_FILE_EXISTS, got %ld\n", GetLastError()); + DeleteFileA(source); DeleteFileA(dest); #endif - ret = DeleteFileA(source); - ok(ret, "DeleteFileA failed with error %ld\n", GetLastError()); - ret = DeleteFileA(dest); - ok(!ret, "DeleteFileA unexpectedly succeeded\n"); } /*