[WTSAPI32_WINETEST] Import from Wine Staging 1.7.37. CORE-9246
authorAmine Khaldi <amine.khaldi@reactos.org>
Mon, 11 May 2015 12:58:10 +0000 (12:58 +0000)
committerAmine Khaldi <amine.khaldi@reactos.org>
Mon, 11 May 2015 12:58:10 +0000 (12:58 +0000)
svn path=/trunk/; revision=67661

rostests/winetests/CMakeLists.txt
rostests/winetests/wtsapi32/CMakeLists.txt [new file with mode: 0644]
rostests/winetests/wtsapi32/testlist.c [new file with mode: 0644]
rostests/winetests/wtsapi32/wtsapi.c [new file with mode: 0644]

index a300ab4..e5c61b7 100644 (file)
@@ -119,6 +119,7 @@ add_subdirectory(wmiutils)
 add_subdirectory(ws2_32)
 add_subdirectory(wscript)
 add_subdirectory(wshom)
+add_subdirectory(wtsapi32)
 add_subdirectory(xcopy)
 add_subdirectory(xinput1_3)
 add_subdirectory(xmllite)
diff --git a/rostests/winetests/wtsapi32/CMakeLists.txt b/rostests/winetests/wtsapi32/CMakeLists.txt
new file mode 100644 (file)
index 0000000..e5a6533
--- /dev/null
@@ -0,0 +1,6 @@
+
+add_definitions(-DUSE_WINE_TODOS)
+add_executable(wtsapi32_winetest wtsapi.c testlist.c)
+set_module_type(wtsapi32_winetest win32cui)
+add_importlibs(wtsapi32_winetest wtsapi32 msvcrt kernel32)
+add_cd_file(TARGET wtsapi32_winetest DESTINATION reactos/bin FOR all)
diff --git a/rostests/winetests/wtsapi32/testlist.c b/rostests/winetests/wtsapi32/testlist.c
new file mode 100644 (file)
index 0000000..8c215f4
--- /dev/null
@@ -0,0 +1,12 @@
+/* Automatically generated by make depend; DO NOT EDIT!! */
+
+#define STANDALONE
+#include <wine/test.h>
+
+extern void func_wtsapi(void);
+
+const struct test winetest_testlist[] =
+{
+    { "wtsapi", func_wtsapi },
+    { 0, 0 }
+};
diff --git a/rostests/winetests/wtsapi32/wtsapi.c b/rostests/winetests/wtsapi32/wtsapi.c
new file mode 100644 (file)
index 0000000..dd5c8e8
--- /dev/null
@@ -0,0 +1,95 @@
+/*
+ * Copyright 2014 Stefan Leichter
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+#include <stdarg.h>
+#include <stdlib.h>
+#include <windef.h>
+#include <winbase.h>
+#include <wine/winternl.h>
+#include <wtsapi32.h>
+
+#include "wine/test.h"
+
+static void test_WTSEnumerateProcessesW(void)
+{
+    BOOL found = FALSE, ret;
+    DWORD count, i;
+    PWTS_PROCESS_INFOW info;
+    WCHAR *pname, nameW[MAX_PATH];
+
+    GetModuleFileNameW(NULL, nameW, MAX_PATH);
+    for (pname = nameW + lstrlenW(nameW); pname > nameW; pname--)
+    {
+        if(*pname == '/' || *pname == '\\')
+        {
+            pname++;
+            break;
+        }
+    }
+
+    info = NULL;
+    SetLastError(0xdeadbeef);
+    ret = WTSEnumerateProcessesW(WTS_CURRENT_SERVER_HANDLE, 1, 1, &info, &count);
+    ok(!ret, "expected WTSEnumerateProcessesW to fail\n");
+    ok(GetLastError()== ERROR_INVALID_PARAMETER, "expected ERROR_INVALID_PARAMETER got: %d\n", GetLastError());
+    if (info) WTSFreeMemory(info);
+
+    info = NULL;
+    SetLastError(0xdeadbeef);
+    ret = WTSEnumerateProcessesW(WTS_CURRENT_SERVER_HANDLE, 0, 0, &info, &count);
+    ok(!ret, "expected WTSEnumerateProcessesW to fail\n");
+    ok(GetLastError()== ERROR_INVALID_PARAMETER, "expected ERROR_INVALID_PARAMETER got: %d\n", GetLastError());
+    if (info) WTSFreeMemory(info);
+
+    info = NULL;
+    SetLastError(0xdeadbeef);
+    ret = WTSEnumerateProcessesW(WTS_CURRENT_SERVER_HANDLE, 0, 2, &info, &count);
+    ok(!ret, "expected WTSEnumerateProcessesW to fail\n");
+    ok(GetLastError()== ERROR_INVALID_PARAMETER, "expected ERROR_INVALID_PARAMETER got: %d\n", GetLastError());
+    if (info) WTSFreeMemory(info);
+
+    SetLastError(0xdeadbeef);
+    ret = WTSEnumerateProcessesW(WTS_CURRENT_SERVER_HANDLE, 0, 1, NULL, &count);
+    ok(!ret, "expected WTSEnumerateProcessesW to fail\n");
+    ok(GetLastError()== ERROR_INVALID_PARAMETER, "expected ERROR_INVALID_PARAMETER got: %d\n", GetLastError());
+
+    info = NULL;
+    SetLastError(0xdeadbeef);
+    ret = WTSEnumerateProcessesW(WTS_CURRENT_SERVER_HANDLE, 0, 1, &info, NULL);
+    ok(!ret, "expected WTSEnumerateProcessesW to fail\n");
+    ok(GetLastError()== ERROR_INVALID_PARAMETER, "expected ERROR_INVALID_PARAMETER got: %d\n", GetLastError());
+    if (info) WTSFreeMemory(info);
+
+    count = 0;
+    info = NULL;
+    SetLastError(0xdeadbeef);
+    ret = WTSEnumerateProcessesW(WTS_CURRENT_SERVER_HANDLE, 0, 1, &info, &count);
+    ok(ret || broken(!ret), /* fails on Win2K with error ERROR_APP_WRONG_OS */
+        "expected WTSEnumerateProcessesW to succeed; failed with %d\n", GetLastError());
+    for(i = 0; ret && i < count; i++)
+    {
+        found = found || !lstrcmpW(pname, info[i].pProcessName);
+    }
+    ok(found || broken(!ret), "process name %s not found\n", wine_dbgstr_w(pname));
+    if (info) WTSFreeMemory(info);
+}
+
+START_TEST (wtsapi)
+{
+    test_WTSEnumerateProcessesW();
+}