From eacecfd85eb75e36ec607ec03b46d9ec0377d524 Mon Sep 17 00:00:00 2001 From: Amine Khaldi Date: Mon, 11 May 2015 12:58:10 +0000 Subject: [PATCH] [WTSAPI32_WINETEST] Import from Wine Staging 1.7.37. CORE-9246 svn path=/trunk/; revision=67661 --- rostests/winetests/CMakeLists.txt | 1 + rostests/winetests/wtsapi32/CMakeLists.txt | 6 ++ rostests/winetests/wtsapi32/testlist.c | 12 +++ rostests/winetests/wtsapi32/wtsapi.c | 95 ++++++++++++++++++++++ 4 files changed, 114 insertions(+) create mode 100644 rostests/winetests/wtsapi32/CMakeLists.txt create mode 100644 rostests/winetests/wtsapi32/testlist.c create mode 100644 rostests/winetests/wtsapi32/wtsapi.c diff --git a/rostests/winetests/CMakeLists.txt b/rostests/winetests/CMakeLists.txt index a300ab44b6b..e5c61b76e99 100644 --- a/rostests/winetests/CMakeLists.txt +++ b/rostests/winetests/CMakeLists.txt @@ -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 index 00000000000..e5a653380e2 --- /dev/null +++ b/rostests/winetests/wtsapi32/CMakeLists.txt @@ -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 index 00000000000..8c215f49362 --- /dev/null +++ b/rostests/winetests/wtsapi32/testlist.c @@ -0,0 +1,12 @@ +/* Automatically generated by make depend; DO NOT EDIT!! */ + +#define STANDALONE +#include + +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 index 00000000000..dd5c8e86376 --- /dev/null +++ b/rostests/winetests/wtsapi32/wtsapi.c @@ -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 +#include +#include +#include +#include +#include + +#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(); +}