-- v3: shell32: Fix FO_MOVE when destination has conflicting directory. shell32/tests: Add tests for moving dir(s) to destination(s) with conflicting dir.
From: Spencer Wallace spencerwallace@esri.com
--- dlls/shell32/tests/shlfileop.c | 191 +++++++++++++++++++++++++++++++++ 1 file changed, 191 insertions(+)
diff --git a/dlls/shell32/tests/shlfileop.c b/dlls/shell32/tests/shlfileop.c index 097e99fd113..1f7c390b295 100644 --- a/dlls/shell32/tests/shlfileop.c +++ b/dlls/shell32/tests/shlfileop.c @@ -129,6 +129,15 @@ static void init_shfo_tests(void) CreateDirectoryA("testdir2\nested", NULL); createTestFile("testdir2\one.txt"); createTestFile("testdir2\nested\two.txt"); + CreateDirectoryA("testdir4", NULL); + CreateDirectoryA("testdir4\nested", NULL); + CreateDirectoryA("testdir4\nested\subnested", NULL); + createTestFile("testdir4\nested\2.txt"); + createTestFile("testdir4\nested\subnested\3.txt"); + CreateDirectoryA("testdir6", NULL); + CreateDirectoryA("testdir6\nested", NULL); + CreateDirectoryA("testdir8", NULL); + CreateDirectoryA("testdir8\nested", NULL); }
/* cleans after tests */ @@ -155,6 +164,38 @@ static void clean_after_shfo_tests(void) RemoveDirectoryA("testdir2\test4.txt"); RemoveDirectoryA("testdir2\nested"); RemoveDirectoryA("testdir2"); + DeleteFileA("testdir4\nested\subnested\3.txt"); + DeleteFileA("testdir4\nested\two.txt"); + DeleteFileA("testdir4\nested\2.txt"); + RemoveDirectoryA("testdir4\nested\subnested"); + RemoveDirectoryA("testdir4\nested"); + RemoveDirectoryA("testdir4"); + DeleteFileA("testdir6\testdir2\nested\two.txt"); + DeleteFileA("testdir6\testdir2\one.txt"); + DeleteFileA("testdir6\nested\subnested\3.txt"); + DeleteFileA("testdir6\nested\nested\two.txt"); + DeleteFileA("testdir6\nested\two.txt"); + DeleteFileA("testdir6\nested\2.txt"); + DeleteFileA("testdir6\two.txt"); + RemoveDirectoryA("testdir6\testdir2\nested"); + RemoveDirectoryA("testdir6\nested\subnested"); + RemoveDirectoryA("testdir6\nested\nested"); + RemoveDirectoryA("testdir6\testdir2"); + RemoveDirectoryA("testdir6\subnested"); + RemoveDirectoryA("testdir6\nested"); + RemoveDirectoryA("testdir6"); + DeleteFileA("testdir8\nested\subnested\3.txt"); + DeleteFileA("testdir8\nested\nested\subnested\3.txt"); + DeleteFileA("testdir8\nested\nested\2.txt"); + DeleteFileA("testdir8\subnested\3.txt"); + DeleteFileA("testdir8\nested\2.txt"); + DeleteFileA("testdir8\2.txt"); + RemoveDirectoryA("testdir8\nested\nested\subnested"); + RemoveDirectoryA("testdir8\nested\nested"); + RemoveDirectoryA("testdir8\nested\subnested"); + RemoveDirectoryA("testdir8\subnested"); + RemoveDirectoryA("testdir8\nested"); + RemoveDirectoryA("testdir8"); RemoveDirectoryA("c:\testdir3"); DeleteFileA("nonexistent\notreal\test2.txt"); RemoveDirectoryA("nonexistent\notreal"); @@ -1993,9 +2034,159 @@ static void test_move(void) clean_after_shfo_tests(); init_shfo_tests();
+ /* test moving dir to destination containing dir of the same name */ + set_curr_dir_path(from, "testdir2\nested\0"); + set_curr_dir_path(to, "testdir4\0"); + retval = SHFileOperationA(&shfo); + ok(!retval, "got %ld\n", retval); + ok(!shfo.fAnyOperationsAborted, "fAnyOperationsAborted %d\n", shfo.fAnyOperationsAborted); + + todo_wine ok(!dir_exists("testdir2\nested"), "dir should be moved\n"); + todo_wine ok(!file_exists("testdir2\nested\two.txt"), "file should be moved\n"); + + ok(dir_exists("testdir4\nested"), "dir should exist\n"); + todo_wine ok(file_exists("testdir4\nested\two.txt"), "file should exist\n"); + ok(file_exists("testdir4\nested\2.txt"), "file should exist\n"); + + clean_after_shfo_tests(); + init_shfo_tests(); + + /* test moving empty dir to destination containing dir of the same name */ + DeleteFileA("testdir2\nested\two.txt"); + set_curr_dir_path(from, "testdir2\nested\0"); + set_curr_dir_path(to, "testdir4\0"); + retval = SHFileOperationA(&shfo); + ok(!retval, "got %ld\n", retval); + ok(!shfo.fAnyOperationsAborted, "fAnyOperationsAborted %d\n", shfo.fAnyOperationsAborted); + + todo_wine ok(!dir_exists("testdir2\nested"), "dir should be moved\n"); + + ok(dir_exists("testdir4\nested"), "dir should exist\n"); + ok(file_exists("testdir4\nested\2.txt"), "file should exist\n"); + + clean_after_shfo_tests(); + init_shfo_tests(); + + /* test moving multiple dirs to destination containing dir of the same name */ + set_curr_dir_path(from, "testdir2\nested\0testdir4\nested\0"); + set_curr_dir_path(to, "testdir6\0"); + retval = SHFileOperationA(&shfo); + ok(!retval, "got %ld\n", retval); + ok(!shfo.fAnyOperationsAborted, "fAnyOperationsAborted %d\n", shfo.fAnyOperationsAborted); + + todo_wine ok(!dir_exists("testdir2\nested"), "dir should be moved\n"); + todo_wine ok(!file_exists("testdir2\nested\two.txt"), "file should be moved\n"); + + todo_wine ok(!dir_exists("testdir4\nested"), "dir should be moved\n"); + todo_wine ok(!file_exists("testdir4\nested\2.txt"), "file should be moved\n"); + todo_wine ok(!dir_exists("testdir4\nested\subnested"), "dir should be moved\n"); + todo_wine ok(!file_exists("testdir4\nested\subnested\3.txt"), "file should be moved\n"); + + ok(dir_exists("testdir6\nested"), "dir should exist\n"); + todo_wine ok(file_exists("testdir6\nested\two.txt"), "file should exist\n"); + todo_wine ok(file_exists("testdir6\nested\2.txt"), "file should exist\n"); + todo_wine ok(dir_exists("testdir6\nested\subnested"), "dir should exist\n"); + todo_wine ok(file_exists("testdir6\nested\subnested\3.txt"), "file should exist\n"); + + clean_after_shfo_tests(); + init_shfo_tests(); + memcpy(&shfo2, &shfo, sizeof(SHFILEOPSTRUCTA)); shfo2.fFlags |= FOF_MULTIDESTFILES;
+ /* test moving dir to destination containing dir of the same name with FOF_MULTIDESTFILES set */ + set_curr_dir_path(from, "testdir2\nested\0"); + set_curr_dir_path(to, "testdir6\0"); + retval = SHFileOperationA(&shfo2); + ok(!retval, "got %ld\n", retval); + ok(!shfo.fAnyOperationsAborted, "fAnyOperationsAborted %d\n", shfo.fAnyOperationsAborted); + + todo_wine ok(!dir_exists("testdir2\nested"), "dir should be moved\n"); + todo_wine ok(!file_exists("testdir2\nested\two.txt"), "file should be moved\n"); + + ok(!file_exists("testdir6\nested\two.txt"), "file should not exist\n"); + ok(dir_exists("testdir6\nested"), "dir should exist\n"); + todo_wine ok(file_exists("testdir6\two.txt"), "file should exist\n"); + + clean_after_shfo_tests(); + init_shfo_tests(); + + /* same as above, without 'nested' in from path */ + set_curr_dir_path(from, "testdir2\0"); + set_curr_dir_path(to, "testdir6\0"); + retval = SHFileOperationA(&shfo2); + ok(!retval, "got %ld\n", retval); + ok(!shfo.fAnyOperationsAborted, "fAnyOperationsAborted %d\n", shfo.fAnyOperationsAborted); + + ok(!dir_exists("testdir2\nested"), "dir should be moved\n"); + ok(!file_exists("testdir2\nested\two.txt"), "file should be moved\n"); + + ok(!file_exists("testdir6\two.txt"), "file should not exist\n"); + ok(dir_exists("testdir6\nested"), "dir should exist\n"); + todo_wine ok(file_exists("testdir6\nested\two.txt"), "file should exist\n"); + + clean_after_shfo_tests(); + init_shfo_tests(); + + /* test moving multiple dirs to multiple destinations containing dir of the same name */ + set_curr_dir_path(from, "testdir2\nested\0testdir4\nested\0"); + set_curr_dir_path(to, "testdir6\0testdir8\0"); + retval = SHFileOperationA(&shfo2); + ok(!retval, "got %ld\n", retval); + ok(!shfo.fAnyOperationsAborted, "fAnyOperationsAborted %d\n", shfo.fAnyOperationsAborted); + + todo_wine ok(!dir_exists("testdir2\nested"), "dir should be moved\n"); + todo_wine ok(!file_exists("testdir2\nested\two.txt"), "file should be moved\n"); + + todo_wine ok(!dir_exists("testdir4\nested"), "dir should be moved\n"); + todo_wine ok(!file_exists("testdir4\nested\2.txt"), "file should be moved\n"); + + ok(!file_exists("testdir6\nested\two.txt"), "file should not exist\n"); + ok(!file_exists("testdir6\nested\2.txt"), "file should not exist\n"); + ok(dir_exists("testdir6\nested"), "dir should exist\n"); + todo_wine ok(file_exists("testdir6\two.txt"), "file should exist\n"); + + ok(!dir_exists("testdir8\nested\subnested"), "dir should not exist\n"); + ok(!file_exists("testdir8\nested\subnested\3.txt"), "file should not exist\n"); + ok(!file_exists("testdir8\nested\two.txt"), "file should not exist\n"); + ok(!file_exists("testdir8\nested\2.txt"), "file should not exist\n"); + ok(dir_exists("testdir8\nested"), "dir should exist\n"); + todo_wine ok(dir_exists("testdir8\subnested"), "dir should exist\n"); + todo_wine ok(file_exists("testdir8\subnested\3.txt"), "file should exist\n"); + todo_wine ok(file_exists("testdir8\2.txt"), "file should exist\n"); + + clean_after_shfo_tests(); + init_shfo_tests(); + + /* same as above, but include subdir in destinations */ + set_curr_dir_path(from, "testdir2\nested\0testdir4\nested\0"); + set_curr_dir_path(to, "testdir6\nested\0testdir8\nested\0"); + retval = SHFileOperationA(&shfo2); + ok(!retval, "got %ld\n", retval); + ok(!shfo.fAnyOperationsAborted, "fAnyOperationsAborted %d\n", shfo.fAnyOperationsAborted); + + ok(!dir_exists("testdir2\nested"), "dir should be moved\n"); + ok(!file_exists("testdir2\nested\two.txt"), "file should be moved\n"); + + ok(!dir_exists("testdir4\nested"), "dir should be moved\n"); + ok(!file_exists("testdir4\nested\2.txt"), "file should be moved\n"); + + ok(dir_exists("testdir6\nested"), "dir should exist\n"); + todo_wine ok(file_exists("testdir6\nested\two.txt"), "file should exist\n"); + ok(!file_exists("testdir6\nested\2.txt"), "file should not exist\n"); + ok(!file_exists("testdir6\two.txt"), "file should not exist\n"); + + ok(!dir_exists("testdir8\subnested"), "dir should not exist\n"); + ok(!file_exists("testdir8\2.txt"), "file should not exist\n"); + ok(!file_exists("testdir8\nested\two.txt"), "file should not exist\n"); + ok(dir_exists("testdir8\nested"), "dir should exist\n"); + todo_wine ok(file_exists("testdir8\nested\2.txt"), "file should exist\n"); + todo_wine ok(dir_exists("testdir8\nested\subnested"), "dir should exist\n"); + todo_wine ok(file_exists("testdir8\nested\subnested\3.txt"), "file should exist\n"); + + clean_after_shfo_tests(); + init_shfo_tests(); + set_curr_dir_path(from, "test1.txt\0test2.txt\0test4.txt\0"); set_curr_dir_path(to, "test6.txt\0test7.txt\0test8.txt\0"); ok(!SHFileOperationA(&shfo2), "Move many files\n");
From: Spencer Wallace spencerwallace@esri.com
--- dlls/shell32/shlfileop.c | 52 ++++++++++++++++++++++++- dlls/shell32/tests/shlfileop.c | 70 +++++++++++++++------------------- 2 files changed, 80 insertions(+), 42 deletions(-)
diff --git a/dlls/shell32/shlfileop.c b/dlls/shell32/shlfileop.c index a7e88c813d2..b861d20ccb4 100644 --- a/dlls/shell32/shlfileop.c +++ b/dlls/shell32/shlfileop.c @@ -1382,12 +1382,55 @@ static int delete_files(LPSHFILEOPSTRUCTW lpFileOp, const FILE_LIST *flFrom) return ERROR_SUCCESS; }
-/* moves a file or directory to another directory */ +/* moves a directory to another directory */ +static void move_dir_to_dir(LPSHFILEOPSTRUCTW lpFileOp, const FILE_ENTRY *feFrom, const FILE_ENTRY *feTo) +{ + WCHAR szFrom[MAX_PATH], szDestPath[MAX_PATH]; + + /* Windows doesn't combine path when FOF_MULTIDESTFILES is set */ + if (lpFileOp->fFlags & FOF_MULTIDESTFILES) + lstrcpyW(szDestPath, feTo->szFullPath); + else + PathCombineW(szDestPath, feTo->szFullPath, feFrom->szFilename); + + szDestPath[lstrlenW(szDestPath) + 1] = '\0'; + + /* If destination directory already exists, append source directory + with wildcard and restart SHFileOperationW */ + if (PathFileExistsW(szDestPath)) + { + SHFILEOPSTRUCTW fileOp; + + PathCombineW(szFrom, feFrom->szFullPath, L"*.*"); + szFrom[lstrlenW(szFrom) + 1] = '\0'; + + fileOp = *lpFileOp; + fileOp.pFrom = szFrom; + fileOp.pTo = szDestPath; + fileOp.fFlags &= ~FOF_MULTIDESTFILES; /* we know we're moving to one dir */ + + /* Don't ask the user about overwriting files when he accepted to overwrite the + folder. FIXME: this is not exactly what Windows does - e.g. there would be + an additional confirmation for a nested folder */ + fileOp.fFlags |= FOF_NOCONFIRMATION; + + if (!SHFileOperationW(&fileOp)) + RemoveDirectoryW(feFrom->szFullPath); + return; + } + else + { + SHNotifyMoveFileW(feFrom->szFullPath, szDestPath); + } +} + +/* moves a file to another directory */ static void move_to_dir(LPSHFILEOPSTRUCTW lpFileOp, const FILE_ENTRY *feFrom, const FILE_ENTRY *feTo) { WCHAR szDestPath[MAX_PATH];
PathCombineW(szDestPath, feTo->szFullPath, feFrom->szFilename); + szDestPath[lstrlenW(szDestPath) + 1] = '\0'; SHNotifyMoveFileW(feFrom->szFullPath, szDestPath); }
@@ -1448,7 +1491,12 @@ static int move_files(LPSHFILEOPSTRUCTW lpFileOp, const FILE_LIST *flFrom, const }
if (fileDest->bExists && IsAttribDir(fileDest->attributes)) - move_to_dir(lpFileOp, entryToMove, fileDest); + { + if (IsAttribDir(entryToMove->attributes)) + move_dir_to_dir(lpFileOp, entryToMove, fileDest); + else + move_to_dir(lpFileOp, entryToMove, fileDest); + } else SHNotifyMoveFileW(entryToMove->szFullPath, fileDest->szFullPath); } diff --git a/dlls/shell32/tests/shlfileop.c b/dlls/shell32/tests/shlfileop.c index 1f7c390b295..f191a3016c0 100644 --- a/dlls/shell32/tests/shlfileop.c +++ b/dlls/shell32/tests/shlfileop.c @@ -170,28 +170,18 @@ static void clean_after_shfo_tests(void) RemoveDirectoryA("testdir4\nested\subnested"); RemoveDirectoryA("testdir4\nested"); RemoveDirectoryA("testdir4"); - DeleteFileA("testdir6\testdir2\nested\two.txt"); - DeleteFileA("testdir6\testdir2\one.txt"); DeleteFileA("testdir6\nested\subnested\3.txt"); - DeleteFileA("testdir6\nested\nested\two.txt"); DeleteFileA("testdir6\nested\two.txt"); DeleteFileA("testdir6\nested\2.txt"); DeleteFileA("testdir6\two.txt"); - RemoveDirectoryA("testdir6\testdir2\nested"); RemoveDirectoryA("testdir6\nested\subnested"); - RemoveDirectoryA("testdir6\nested\nested"); - RemoveDirectoryA("testdir6\testdir2"); RemoveDirectoryA("testdir6\subnested"); RemoveDirectoryA("testdir6\nested"); RemoveDirectoryA("testdir6"); DeleteFileA("testdir8\nested\subnested\3.txt"); - DeleteFileA("testdir8\nested\nested\subnested\3.txt"); - DeleteFileA("testdir8\nested\nested\2.txt"); DeleteFileA("testdir8\subnested\3.txt"); DeleteFileA("testdir8\nested\2.txt"); DeleteFileA("testdir8\2.txt"); - RemoveDirectoryA("testdir8\nested\nested\subnested"); - RemoveDirectoryA("testdir8\nested\nested"); RemoveDirectoryA("testdir8\nested\subnested"); RemoveDirectoryA("testdir8\subnested"); RemoveDirectoryA("testdir8\nested"); @@ -2041,11 +2031,11 @@ static void test_move(void) ok(!retval, "got %ld\n", retval); ok(!shfo.fAnyOperationsAborted, "fAnyOperationsAborted %d\n", shfo.fAnyOperationsAborted);
- todo_wine ok(!dir_exists("testdir2\nested"), "dir should be moved\n"); - todo_wine ok(!file_exists("testdir2\nested\two.txt"), "file should be moved\n"); + ok(!dir_exists("testdir2\nested"), "dir should be moved\n"); + ok(!file_exists("testdir2\nested\two.txt"), "file should be moved\n");
ok(dir_exists("testdir4\nested"), "dir should exist\n"); - todo_wine ok(file_exists("testdir4\nested\two.txt"), "file should exist\n"); + ok(file_exists("testdir4\nested\two.txt"), "file should exist\n"); ok(file_exists("testdir4\nested\2.txt"), "file should exist\n");
clean_after_shfo_tests(); @@ -2059,7 +2049,7 @@ static void test_move(void) ok(!retval, "got %ld\n", retval); ok(!shfo.fAnyOperationsAborted, "fAnyOperationsAborted %d\n", shfo.fAnyOperationsAborted);
- todo_wine ok(!dir_exists("testdir2\nested"), "dir should be moved\n"); + ok(!dir_exists("testdir2\nested"), "dir should be moved\n");
ok(dir_exists("testdir4\nested"), "dir should exist\n"); ok(file_exists("testdir4\nested\2.txt"), "file should exist\n"); @@ -2074,19 +2064,19 @@ static void test_move(void) ok(!retval, "got %ld\n", retval); ok(!shfo.fAnyOperationsAborted, "fAnyOperationsAborted %d\n", shfo.fAnyOperationsAborted);
- todo_wine ok(!dir_exists("testdir2\nested"), "dir should be moved\n"); - todo_wine ok(!file_exists("testdir2\nested\two.txt"), "file should be moved\n"); + ok(!dir_exists("testdir2\nested"), "dir should be moved\n"); + ok(!file_exists("testdir2\nested\two.txt"), "file should be moved\n");
- todo_wine ok(!dir_exists("testdir4\nested"), "dir should be moved\n"); - todo_wine ok(!file_exists("testdir4\nested\2.txt"), "file should be moved\n"); - todo_wine ok(!dir_exists("testdir4\nested\subnested"), "dir should be moved\n"); - todo_wine ok(!file_exists("testdir4\nested\subnested\3.txt"), "file should be moved\n"); + ok(!dir_exists("testdir4\nested"), "dir should be moved\n"); + ok(!file_exists("testdir4\nested\2.txt"), "file should be moved\n"); + ok(!dir_exists("testdir4\nested\subnested"), "dir should be moved\n"); + ok(!file_exists("testdir4\nested\subnested\3.txt"), "file should be moved\n");
ok(dir_exists("testdir6\nested"), "dir should exist\n"); - todo_wine ok(file_exists("testdir6\nested\two.txt"), "file should exist\n"); - todo_wine ok(file_exists("testdir6\nested\2.txt"), "file should exist\n"); - todo_wine ok(dir_exists("testdir6\nested\subnested"), "dir should exist\n"); - todo_wine ok(file_exists("testdir6\nested\subnested\3.txt"), "file should exist\n"); + ok(file_exists("testdir6\nested\two.txt"), "file should exist\n"); + ok(file_exists("testdir6\nested\2.txt"), "file should exist\n"); + ok(dir_exists("testdir6\nested\subnested"), "dir should exist\n"); + ok(file_exists("testdir6\nested\subnested\3.txt"), "file should exist\n");
clean_after_shfo_tests(); init_shfo_tests(); @@ -2101,12 +2091,12 @@ static void test_move(void) ok(!retval, "got %ld\n", retval); ok(!shfo.fAnyOperationsAborted, "fAnyOperationsAborted %d\n", shfo.fAnyOperationsAborted);
- todo_wine ok(!dir_exists("testdir2\nested"), "dir should be moved\n"); - todo_wine ok(!file_exists("testdir2\nested\two.txt"), "file should be moved\n"); + ok(!dir_exists("testdir2\nested"), "dir should be moved\n"); + ok(!file_exists("testdir2\nested\two.txt"), "file should be moved\n");
ok(!file_exists("testdir6\nested\two.txt"), "file should not exist\n"); ok(dir_exists("testdir6\nested"), "dir should exist\n"); - todo_wine ok(file_exists("testdir6\two.txt"), "file should exist\n"); + ok(file_exists("testdir6\two.txt"), "file should exist\n");
clean_after_shfo_tests(); init_shfo_tests(); @@ -2123,7 +2113,7 @@ static void test_move(void)
ok(!file_exists("testdir6\two.txt"), "file should not exist\n"); ok(dir_exists("testdir6\nested"), "dir should exist\n"); - todo_wine ok(file_exists("testdir6\nested\two.txt"), "file should exist\n"); + ok(file_exists("testdir6\nested\two.txt"), "file should exist\n");
clean_after_shfo_tests(); init_shfo_tests(); @@ -2135,25 +2125,25 @@ static void test_move(void) ok(!retval, "got %ld\n", retval); ok(!shfo.fAnyOperationsAborted, "fAnyOperationsAborted %d\n", shfo.fAnyOperationsAborted);
- todo_wine ok(!dir_exists("testdir2\nested"), "dir should be moved\n"); - todo_wine ok(!file_exists("testdir2\nested\two.txt"), "file should be moved\n"); + ok(!dir_exists("testdir2\nested"), "dir should be moved\n"); + ok(!file_exists("testdir2\nested\two.txt"), "file should be moved\n");
- todo_wine ok(!dir_exists("testdir4\nested"), "dir should be moved\n"); - todo_wine ok(!file_exists("testdir4\nested\2.txt"), "file should be moved\n"); + ok(!dir_exists("testdir4\nested"), "dir should be moved\n"); + ok(!file_exists("testdir4\nested\2.txt"), "file should be moved\n");
ok(!file_exists("testdir6\nested\two.txt"), "file should not exist\n"); ok(!file_exists("testdir6\nested\2.txt"), "file should not exist\n"); ok(dir_exists("testdir6\nested"), "dir should exist\n"); - todo_wine ok(file_exists("testdir6\two.txt"), "file should exist\n"); + ok(file_exists("testdir6\two.txt"), "file should exist\n");
ok(!dir_exists("testdir8\nested\subnested"), "dir should not exist\n"); ok(!file_exists("testdir8\nested\subnested\3.txt"), "file should not exist\n"); ok(!file_exists("testdir8\nested\two.txt"), "file should not exist\n"); ok(!file_exists("testdir8\nested\2.txt"), "file should not exist\n"); ok(dir_exists("testdir8\nested"), "dir should exist\n"); - todo_wine ok(dir_exists("testdir8\subnested"), "dir should exist\n"); - todo_wine ok(file_exists("testdir8\subnested\3.txt"), "file should exist\n"); - todo_wine ok(file_exists("testdir8\2.txt"), "file should exist\n"); + ok(dir_exists("testdir8\subnested"), "dir should exist\n"); + ok(file_exists("testdir8\subnested\3.txt"), "file should exist\n"); + ok(file_exists("testdir8\2.txt"), "file should exist\n");
clean_after_shfo_tests(); init_shfo_tests(); @@ -2172,7 +2162,7 @@ static void test_move(void) ok(!file_exists("testdir4\nested\2.txt"), "file should be moved\n");
ok(dir_exists("testdir6\nested"), "dir should exist\n"); - todo_wine ok(file_exists("testdir6\nested\two.txt"), "file should exist\n"); + ok(file_exists("testdir6\nested\two.txt"), "file should exist\n"); ok(!file_exists("testdir6\nested\2.txt"), "file should not exist\n"); ok(!file_exists("testdir6\two.txt"), "file should not exist\n");
@@ -2180,9 +2170,9 @@ static void test_move(void) ok(!file_exists("testdir8\2.txt"), "file should not exist\n"); ok(!file_exists("testdir8\nested\two.txt"), "file should not exist\n"); ok(dir_exists("testdir8\nested"), "dir should exist\n"); - todo_wine ok(file_exists("testdir8\nested\2.txt"), "file should exist\n"); - todo_wine ok(dir_exists("testdir8\nested\subnested"), "dir should exist\n"); - todo_wine ok(file_exists("testdir8\nested\subnested\3.txt"), "file should exist\n"); + ok(file_exists("testdir8\nested\2.txt"), "file should exist\n"); + ok(dir_exists("testdir8\nested\subnested"), "dir should exist\n"); + ok(file_exists("testdir8\nested\subnested\3.txt"), "file should exist\n");
clean_after_shfo_tests(); init_shfo_tests();
Hi,
It looks like your patch introduced the new failures shown below. Please investigate and fix them before resubmitting your patch. If they are not new, fixing them anyway would help a lot. Otherwise please ask for the known failures list to be updated.
The tests also ran into some preexisting test failures. If you know how to fix them that would be helpful. See the TestBot job for the details:
The full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=147381
Your paranoid android.
=== debian11b (64 bit WoW report) ===
user32: input.c:4305: Test succeeded inside todo block: button_down_hwnd_todo 1: got MSG_TEST_WIN hwnd 00000000007100E2, msg WM_LBUTTONDOWN, wparam 0x1, lparam 0x320032