[PATCH] shell32/tests: Do not crash on Win9x, when testing shlfileop
Detlef Riekenberg
wine.dev at web.de
Wed Jul 30 17:48:49 CDT 2008
---
dlls/shell32/tests/shlfileop.c | 93 +++++++++++++++++++++++-----------------
1 files changed, 54 insertions(+), 39 deletions(-)
diff --git a/dlls/shell32/tests/shlfileop.c b/dlls/shell32/tests/shlfileop.c
index 30d3f24..05219de 100644
--- a/dlls/shell32/tests/shlfileop.c
+++ b/dlls/shell32/tests/shlfileop.c
@@ -319,14 +319,17 @@ static void test_delete(void)
ok(file_exists("test1.txt"), "test1.txt should not have been removed\n");
/* try to delete an invalid filename */
- init_shfo_tests();
- shfo.pFrom = "\0";
- shfo.fFlags &= ~FOF_FILESONLY;
- shfo.fAnyOperationsAborted = FALSE;
- ret = SHFileOperation(&shfo);
- ok(ret == ERROR_ACCESS_DENIED, "Expected ERROR_ACCESS_DENIED, got %d\n", ret);
- ok(!shfo.fAnyOperationsAborted, "Expected no aborted operations\n");
- ok(file_exists("test1.txt"), "Expected test1.txt to exist\n");
+ if (0) {
+ /* this crash on win9x */
+ init_shfo_tests();
+ shfo.pFrom = "\0";
+ shfo.fFlags &= ~FOF_FILESONLY;
+ shfo.fAnyOperationsAborted = FALSE;
+ ret = SHFileOperation(&shfo);
+ ok(ret == ERROR_ACCESS_DENIED, "Expected ERROR_ACCESS_DENIED, got %d\n", ret);
+ ok(!shfo.fAnyOperationsAborted, "Expected no aborted operations\n");
+ ok(file_exists("test1.txt"), "Expected test1.txt to exist\n");
+ }
/* try an invalid function */
init_shfo_tests();
@@ -337,18 +340,22 @@ static void test_delete(void)
ok(file_exists("test1.txt"), "Expected test1.txt to exist\n");
/* try an invalid list, only one null terminator */
- init_shfo_tests();
- shfo.pFrom = "";
- shfo.wFunc = FO_DELETE;
- ret = SHFileOperation(&shfo);
- ok(ret == ERROR_ACCESS_DENIED, "Expected ERROR_ACCESS_DENIED, got %d\n", ret);
- ok(file_exists("test1.txt"), "Expected test1.txt to exist\n");
+ if (0) {
+ /* this crash on win9x */
+ init_shfo_tests();
+ shfo.pFrom = "";
+ shfo.wFunc = FO_DELETE;
+ ret = SHFileOperation(&shfo);
+ ok(ret == ERROR_ACCESS_DENIED, "Expected ERROR_ACCESS_DENIED, got %d\n", ret);
+ ok(file_exists("test1.txt"), "Expected test1.txt to exist\n");
+ }
/* delete a dir, and then a file inside the dir, same as
* deleting a nonexistent file
*/
init_shfo_tests();
shfo.pFrom = "testdir2\0testdir2\\one.txt\0";
+ shfo.wFunc = FO_DELETE;
ret = SHFileOperation(&shfo);
ok(ret == ERROR_PATH_NOT_FOUND, "Expected ERROR_PATH_NOT_FOUND, got %d\n", ret);
ok(!file_exists("testdir2"), "Expected testdir2 to not exist\n");
@@ -595,6 +602,8 @@ static void test_copy(void)
init_shfo_tests();
shfo.pFrom = from;
shfo.pTo = to;
+ /* suppress the error-dialog in win9x here */
+ shfo.fFlags |= FOF_NOERRORUI;
set_curr_dir_path(from, "test1.txt\0test2.txt\0");
set_curr_dir_path(to, "test3.txt\0");
retval = SHFileOperation(&shfo);
@@ -604,6 +613,7 @@ static void test_copy(void)
/* try to copy many files to nonexistent directory */
DeleteFile(to);
+ shfo.fFlags &= ~FOF_NOERRORUI;
shfo.fAnyOperationsAborted = FALSE;
retval = SHFileOperation(&shfo);
ok(retval == ERROR_SUCCESS, "Expected ERROR_SUCCESS, got %d\n", retval);
@@ -956,32 +966,37 @@ static void test_copy(void)
ok(DeleteFileA("two.txt"), "Expected file to exist\n");
ok(RemoveDirectoryA("threedir"), "Expected dir to exist\n");
- createTestFile("one.txt");
- createTestFile("two.txt");
-
- /* pTo contains bogus 2nd name longer than MAX_PATH,
- * multiple source files, FOF_MULTIDESTFILES
- * dest dir does not exist
- */
- memset(to, 'a', 2 * MAX_PATH);
- memset(to+MAX_PATH*2, 0, 2);
- lstrcpyA(to, "threedir");
- shfo.pFrom = "one.txt\0two.txt\0";
- shfo.pTo = to;
- shfo.fFlags = FOF_MULTIDESTFILES | FOF_NOCONFIRMATION |
- FOF_SILENT | FOF_NOERRORUI;
- retval = SHFileOperation(&shfo);
- ok(retval == ERROR_CANCELLED ||
- retval == ERROR_SUCCESS, /* win2k3 */
- "Expected ERROR_CANCELLED or ERROR_SUCCESS, got %d\n", retval);
- ok(!DeleteFileA("threedir\\one.txt"), "Expected file to not exist\n");
- ok(!DeleteFileA("threedir\\two.txt"), "Expected file to not exist\n");
- ok(DeleteFileA("one.txt"), "Expected file to exist\n");
- ok(DeleteFileA("two.txt"), "Expected file to exist\n");
- ok(!RemoveDirectoryA("threedir"), "Expected dir to not exist\n");
+ if (0) {
+ /* this crash on win9x */
+ createTestFile("one.txt");
+ createTestFile("two.txt");
+
+ /* pTo contains bogus 2nd name longer than MAX_PATH,
+ * multiple source files, FOF_MULTIDESTFILES
+ * dest dir does not exist
+ */
+
+ memset(to, 'a', 2 * MAX_PATH);
+ memset(to+MAX_PATH*2, 0, 2);
+ lstrcpyA(to, "threedir");
+ shfo.pFrom = "one.txt\0two.txt\0";
+ shfo.pTo = to;
+ shfo.fFlags = FOF_MULTIDESTFILES | FOF_NOCONFIRMATION |
+ FOF_SILENT | FOF_NOERRORUI;
+ retval = SHFileOperation(&shfo);
+ ok(retval == ERROR_CANCELLED ||
+ retval == ERROR_SUCCESS, /* win2k3 */
+ "Expected ERROR_CANCELLED or ERROR_SUCCESS, got %d\n", retval);
+ ok(!DeleteFileA("threedir\\one.txt"), "Expected file to not exist\n");
+ ok(!DeleteFileA("threedir\\two.txt"), "Expected file to not exist\n");
+ ok(DeleteFileA("one.txt"), "Expected file to exist\n");
+ ok(DeleteFileA("two.txt"), "Expected file to exist\n");
+ ok(!RemoveDirectoryA("threedir"), "Expected dir to not exist\n");
+
+ /* file exists in win2k */
+ DeleteFileA("threedir");
+ }
- /* file exists in win2k */
- DeleteFileA("threedir");
createTestFile("one.txt");
createTestFile("two.txt");
--
1.5.4.3
--=-ObIMCOsB3mkYLpyZuQPb--
More information about the wine-patches
mailing list