[NTDLL_APITEST] -Create a copy of the test in testdata and add along three empty...
authorGiannis Adamopoulos <gadamopoulos@reactos.org>
Sun, 15 Jan 2017 11:51:06 +0000 (11:51 +0000)
committerGiannis Adamopoulos <gadamopoulos@reactos.org>
Sun, 15 Jan 2017 11:51:06 +0000 (11:51 +0000)
svn path=/trunk/; revision=73554

rostests/apitests/ntdll/CMakeLists.txt
rostests/apitests/ntdll/RtlDosApplyFileIsolationRedirection_Ustr.c
rostests/apitests/ntdll/ntdll_apitest.exe.local [new file with mode: 0644]
rostests/apitests/ntdll/shell32.dll [new file with mode: 0644]
rostests/apitests/ntdll/test.dll [new file with mode: 0644]

index da8f158..dc80b5c 100644 (file)
@@ -64,3 +64,8 @@ if(NOT MSVC)
 endif()
 
 add_rostests_file(TARGET ntdll_apitest)
 endif()
 
 add_rostests_file(TARGET ntdll_apitest)
+add_rostests_file(TARGET ntdll_apitest SUBDIR testdata)
+# These are empty files
+add_rostests_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/ntdll_apitest.exe.local" SUBDIR testdata)
+add_rostests_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/shell32.dll" SUBDIR testdata)
+add_rostests_file(FILE "${CMAKE_CURRENT_SOURCE_DIR}/test.dll" SUBDIR testdata)
index e215b6e..9a77f04 100644 (file)
@@ -41,7 +41,6 @@ struct test_data Tests[] =
     /* But redirecting gdiplus from a different directory doesn't work */
     {__LINE__, STATUS_SXS_KEY_NOT_FOUND, L"c:\\GDIPLUS.DLL", NULL},
     {__LINE__, STATUS_SXS_KEY_NOT_FOUND, L"c:\\comctl32.DLL", NULL},
     /* But redirecting gdiplus from a different directory doesn't work */
     {__LINE__, STATUS_SXS_KEY_NOT_FOUND, L"c:\\GDIPLUS.DLL", NULL},
     {__LINE__, STATUS_SXS_KEY_NOT_FOUND, L"c:\\comctl32.DLL", NULL},
-#if 0
     /* Redirection based on .local */
     {__LINE__, STATUS_SUCCESS, L"test", EXPECT_IN_SAME_DIR},
     {__LINE__, STATUS_SUCCESS, L"test.dll", EXPECT_IN_SAME_DIR},
     /* Redirection based on .local */
     {__LINE__, STATUS_SUCCESS, L"test", EXPECT_IN_SAME_DIR},
     {__LINE__, STATUS_SUCCESS, L"test.dll", EXPECT_IN_SAME_DIR},
@@ -50,7 +49,6 @@ struct test_data Tests[] =
     {__LINE__, STATUS_SUCCESS, L"shell32", EXPECT_IN_SAME_DIR},
     {__LINE__, STATUS_SUCCESS, L"shell32.dll", EXPECT_IN_SAME_DIR},
     {__LINE__, STATUS_SUCCESS, L"c:\\shell32.dll", EXPECT_IN_SAME_DIR}
     {__LINE__, STATUS_SUCCESS, L"shell32", EXPECT_IN_SAME_DIR},
     {__LINE__, STATUS_SUCCESS, L"shell32.dll", EXPECT_IN_SAME_DIR},
     {__LINE__, STATUS_SUCCESS, L"c:\\shell32.dll", EXPECT_IN_SAME_DIR}
-#endif
 };
 
 void TestRedirection(void)
 };
 
 void TestRedirection(void)
@@ -125,39 +123,33 @@ void TestRedirection(void)
 
 START_TEST(RtlDosApplyFileIsolationRedirection_Ustr)
 {
 
 START_TEST(RtlDosApplyFileIsolationRedirection_Ustr)
 {
-#if 0
-    WCHAR TestPath[MAX_PATH];
-    WCHAR* separator;
-    STARTUPINFOW si = { sizeof(si) };
-    PROCESS_INFORMATION pi;
-    BOOL created;
-    HANDLE file;
-
-    /* Create .local files */
-    GetModuleFileNameW(NULL, TestPath, MAX_PATH);
-
-    wcscat(TestPath, L".local");
-    file = CreateFileW(TestPath, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_FLAG_NO_BUFFERING , NULL);
-    CloseHandle(file);
-    separator = wcsrchr(TestPath, L'\\');
-    separator++;
-    wcscpy(separator, L"test.dll");
-    file = CreateFileW(TestPath, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_FLAG_NO_BUFFERING , NULL);
-    CloseHandle(file);
-    wcscpy(separator, L"shell32.dll");
-    file = CreateFileW(TestPath, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_FLAG_NO_BUFFERING , NULL);
-    CloseHandle(file);
-    *separator = 0;    
-#endif
-    TestRedirection();
-#if 0
-    /*Cleanup*/
-    wcscpy(separator, L"test.dll");
-    DeleteFileW(TestPath);
-    wcscpy(separator, L"shell32.dll");
-    DeleteFileW(TestPath);
-    GetModuleFileNameW(NULL, TestPath, MAX_PATH);
-    wcscat(TestPath, L".local");
-    DeleteFileW(TestPath);
-#endif
+    int argc;
+    char **test_argv;
+    argc = winetest_get_mainargs( &test_argv );
+    if (argc >= 3)
+    {
+        TestRedirection();
+    }
+    else
+    {
+        WCHAR TestPath[MAX_PATH];
+        WCHAR* separator;
+        STARTUPINFOW si = { sizeof(si) };
+        PROCESS_INFORMATION pi;
+        BOOL created;
+
+        GetModuleFileNameW(NULL, TestPath, MAX_PATH);
+        separator = wcsrchr(TestPath, L'\\');
+        separator++;
+        wcscpy(separator, L"testdata\\ntdll_apitest.exe RtlDosApplyFileIsolationRedirection_Ustr DoTest");
+        
+        created = CreateProcessW(NULL, TestPath, NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi);
+        ok(created, "Expected CreateProcess to succeed\n");
+        if (created)
+        {
+            winetest_wait_child_process(pi.hProcess);
+            CloseHandle(pi.hThread);
+            CloseHandle(pi.hProcess);
+        }
+    }
 }
\ No newline at end of file
 }
\ No newline at end of file
diff --git a/rostests/apitests/ntdll/ntdll_apitest.exe.local b/rostests/apitests/ntdll/ntdll_apitest.exe.local
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/rostests/apitests/ntdll/shell32.dll b/rostests/apitests/ntdll/shell32.dll
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/rostests/apitests/ntdll/test.dll b/rostests/apitests/ntdll/test.dll
new file mode 100644 (file)
index 0000000..e69de29