[PATCH v5 1/2] find.exe/tests: Add test for multiple files at once

Fabian Maurer dark.shadow4 at web.de
Tue Apr 28 12:19:51 CDT 2020


Signed-off-by: Fabian Maurer <dark.shadow4 at web.de>
---
 programs/find/tests/find.c | 51 ++++++++++++++++++++++++++++++++++++++
 1 file changed, 51 insertions(+)

diff --git a/programs/find/tests/find.c b/programs/find/tests/find.c
index b8345034b5..a15b5d2966 100644
--- a/programs/find/tests/find.c
+++ b/programs/find/tests/find.c
@@ -264,6 +264,56 @@ static void run_find_unicode_(const BYTE *input, int input_len, const BYTE *out_
         run_find_stdin_(wstr_quoted_test, input, input_len, out_expected_mangled, out_expected_mangled_len, exitcode_expected, file, line);
 }

+static void run_find_file_multi(void)
+{
+    char path_temp_file1[MAX_PATH];
+    char path_temp_file2[MAX_PATH];
+    char path_temp_file3[MAX_PATH];
+    char path_temp_dir[MAX_PATH];
+    HANDLE handle_file;
+    WCHAR commandline_new[MAX_PATH];
+    char out_expected[500];
+    const char* input = "ab\nbd";
+
+    GetTempPathA(ARRAY_SIZE(path_temp_dir), path_temp_dir);
+    GetTempFileNameA(path_temp_dir, "", 0, path_temp_file1);
+    GetTempFileNameA(path_temp_dir, "", 0, path_temp_file2);
+    GetTempFileNameA(path_temp_dir, "", 0, path_temp_file3);
+    handle_file = CreateFileA(path_temp_file1, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, 0, NULL);
+    write_to_handle(handle_file, (BYTE*)input, strlen(input));
+    CloseHandle(handle_file);
+    handle_file = CreateFileA(path_temp_file2, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, 0, NULL);
+    write_to_handle(handle_file, (BYTE*)input, strlen(input));
+    CloseHandle(handle_file);
+
+    wsprintfW(commandline_new, L"\"b\" C:\\doesnotexist1 %hs C:\\doesnotexist1 %hs C:\\doesnotexist1 %hs",  path_temp_file1, path_temp_file2, path_temp_file3);
+
+    /* Keep file open during the test */
+    handle_file = CreateFileA(path_temp_file3, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, 0, NULL);
+
+    CharUpperA(path_temp_file1);
+    CharUpperA(path_temp_file2);
+    CharUpperA(path_temp_file3);
+    wsprintfA(out_expected,
+        "File not found - C:\\DOESNOTEXIST1\r\n"
+        "\r\n---------- %s\r\n"
+        "ab\r\nbd\r\n"
+        "File not found - C:\\DOESNOTEXIST1\r\n"
+        "\r\n---------- %s\r\n"
+        "ab\r\nbd\r\n"
+        "File not found - C:\\DOESNOTEXIST1\r\n"
+        "File not found - %s\r\n",
+        path_temp_file1, path_temp_file2, path_temp_file3);
+
+    todo_wine
+    run_find_stdin_(commandline_new, (BYTE*)"", 0, (BYTE*)out_expected, strlen(out_expected), 0, __FILE__, __LINE__);
+
+    CloseHandle(handle_file);
+    DeleteFileA(path_temp_file1);
+    DeleteFileA(path_temp_file2);
+    DeleteFileA(path_temp_file3);
+}
+
 static void test_errors(void)
 {
     run_find_stdin_str("",       "", "FIND: Parameter format not correct\r\n", 2);
@@ -411,6 +461,7 @@ START_TEST(find)
     else
     {
         test_errors();
+        run_find_file_multi();
     }
     test_singleline_without_switches();
     test_multiline();
--
2.26.2




More information about the wine-devel mailing list