From afe438a8d013c87997b8374f3ef91447bc59c7d9 Mon Sep 17 00:00:00 2001 From: Alistair Leslie-Hughes Date: Tue, 7 Feb 2017 21:27:20 +0000 Subject: [PATCH] dpnet/test: Share code between tests. Signed-off-by: Alistair Leslie-Hughes Signed-off-by: Erich E. Hoover Signed-off-by: Alexandre Julliard --- dlls/dpnet/tests/address.c | 28 +------ dlls/dpnet/tests/client.c | 150 +--------------------------------- dlls/dpnet/tests/dpnet_test.h | 32 ++++++++ dlls/dpnet/tests/server.c | 16 ++-- 4 files changed, 42 insertions(+), 184 deletions(-) create mode 100644 dlls/dpnet/tests/dpnet_test.h diff --git a/dlls/dpnet/tests/address.c b/dlls/dpnet/tests/address.c index 16ba6a736f4..4aed626ad8c 100644 --- a/dlls/dpnet/tests/address.c +++ b/dlls/dpnet/tests/address.c @@ -22,6 +22,8 @@ #include #include "wine/test.h" +#include "dpnet_test.h" + /* {6733C6E8-A0D6-450E-8C18-CEACF331DC27} */ static const GUID IID_Random = {0x6733c6e8, 0xa0d6, 0x450e, { 0x8c, 0x18, 0xce, 0xac, 0xf3, 0x31, 0xdc, 0x27 } }; static const WCHAR localhost[] = {'l','o','c','a','l','h','o','s','t',0}; @@ -353,32 +355,6 @@ static void address_duplicate(void) } } -/* taken from programs/winetest/main.c */ -static BOOL is_stub_dll(const char *filename) -{ - DWORD size, ver; - BOOL isstub = FALSE; - char *p, *data; - - size = GetFileVersionInfoSizeA(filename, &ver); - if (!size) return FALSE; - - data = HeapAlloc(GetProcessHeap(), 0, size); - if (!data) return FALSE; - - if (GetFileVersionInfoA(filename, ver, size, data)) - { - char buf[256]; - - sprintf(buf, "\\StringFileInfo\\%04x%04x\\OriginalFilename", MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US), 1200); - if (VerQueryValueA(data, buf, (void**)&p, &size)) - isstub = !lstrcmpiA("wcodstub.dll", p); - } - HeapFree(GetProcessHeap(), 0, data); - - return isstub; -} - START_TEST(address) { HRESULT hr; diff --git a/dlls/dpnet/tests/client.c b/dlls/dpnet/tests/client.c index a1817a4a867..d2edcbef90e 100644 --- a/dlls/dpnet/tests/client.c +++ b/dlls/dpnet/tests/client.c @@ -24,9 +24,10 @@ #include #include #define COBJMACROS -#include #include "wine/test.h" +#include "dpnet_test.h" + static IDirectPlay8Peer* peer = NULL; static IDirectPlay8Client* client = NULL; static IDirectPlay8LobbiedApplication* lobbied = NULL; @@ -609,153 +610,6 @@ static void test_cleanup_dp_peer(void) CoUninitialize(); } -static BOOL is_process_elevated(void) -{ - HANDLE token; - if (OpenProcessToken( GetCurrentProcess(), TOKEN_QUERY, &token )) - { - TOKEN_ELEVATION_TYPE type; - DWORD size; - BOOL ret; - - ret = GetTokenInformation( token, TokenElevationType, &type, sizeof(type), &size ); - CloseHandle( token ); - return (ret && type == TokenElevationTypeFull); - } - return FALSE; -} - -static BOOL is_firewall_enabled(void) -{ - HRESULT hr, init; - INetFwMgr *mgr = NULL; - INetFwPolicy *policy = NULL; - INetFwProfile *profile = NULL; - VARIANT_BOOL enabled = VARIANT_FALSE; - - init = CoInitializeEx( 0, COINIT_APARTMENTTHREADED ); - - hr = CoCreateInstance( &CLSID_NetFwMgr, NULL, CLSCTX_INPROC_SERVER, &IID_INetFwMgr, - (void **)&mgr ); - ok( hr == S_OK, "got %08x\n", hr ); - if (hr != S_OK) goto done; - - hr = INetFwMgr_get_LocalPolicy( mgr, &policy ); - ok( hr == S_OK, "got %08x\n", hr ); - if (hr != S_OK) goto done; - - hr = INetFwPolicy_get_CurrentProfile( policy, &profile ); - if (hr != S_OK) goto done; - - hr = INetFwProfile_get_FirewallEnabled( profile, &enabled ); - ok( hr == S_OK, "got %08x\n", hr ); - -done: - if (policy) INetFwPolicy_Release( policy ); - if (profile) INetFwProfile_Release( profile ); - if (mgr) INetFwMgr_Release( mgr ); - if (SUCCEEDED( init )) CoUninitialize(); - return (enabled == VARIANT_TRUE); -} - -enum firewall_op -{ - APP_ADD, - APP_REMOVE -}; - -static HRESULT set_firewall( enum firewall_op op ) -{ - static const WCHAR testW[] = {'d','p','n','e','t','_','t','e','s','t',0}; - HRESULT hr, init; - INetFwMgr *mgr = NULL; - INetFwPolicy *policy = NULL; - INetFwProfile *profile = NULL; - INetFwAuthorizedApplication *app = NULL; - INetFwAuthorizedApplications *apps = NULL; - BSTR name, image = SysAllocStringLen( NULL, MAX_PATH ); - - if (!GetModuleFileNameW( NULL, image, MAX_PATH )) - { - SysFreeString( image ); - return E_FAIL; - } - init = CoInitializeEx( 0, COINIT_APARTMENTTHREADED ); - - hr = CoCreateInstance( &CLSID_NetFwMgr, NULL, CLSCTX_INPROC_SERVER, &IID_INetFwMgr, - (void **)&mgr ); - ok( hr == S_OK, "got %08x\n", hr ); - if (hr != S_OK) goto done; - - hr = INetFwMgr_get_LocalPolicy( mgr, &policy ); - ok( hr == S_OK, "got %08x\n", hr ); - if (hr != S_OK) goto done; - - hr = INetFwPolicy_get_CurrentProfile( policy, &profile ); - if (hr != S_OK) goto done; - - INetFwProfile_get_AuthorizedApplications( profile, &apps ); - ok( hr == S_OK, "got %08x\n", hr ); - if (hr != S_OK) goto done; - - hr = CoCreateInstance( &CLSID_NetFwAuthorizedApplication, NULL, CLSCTX_INPROC_SERVER, - &IID_INetFwAuthorizedApplication, (void **)&app ); - ok( hr == S_OK, "got %08x\n", hr ); - if (hr != S_OK) goto done; - - hr = INetFwAuthorizedApplication_put_ProcessImageFileName( app, image ); - if (hr != S_OK) goto done; - - name = SysAllocString( testW ); - hr = INetFwAuthorizedApplication_put_Name( app, name ); - SysFreeString( name ); - ok( hr == S_OK, "got %08x\n", hr ); - if (hr != S_OK) goto done; - - if (op == APP_ADD) - hr = INetFwAuthorizedApplications_Add( apps, app ); - else if (op == APP_REMOVE) - hr = INetFwAuthorizedApplications_Remove( apps, image ); - else - hr = E_INVALIDARG; - -done: - if (app) INetFwAuthorizedApplication_Release( app ); - if (apps) INetFwAuthorizedApplications_Release( apps ); - if (policy) INetFwPolicy_Release( policy ); - if (profile) INetFwProfile_Release( profile ); - if (mgr) INetFwMgr_Release( mgr ); - if (SUCCEEDED( init )) CoUninitialize(); - SysFreeString( image ); - return hr; -} - -/* taken from programs/winetest/main.c */ -static BOOL is_stub_dll(const char *filename) -{ - DWORD size, ver; - BOOL isstub = FALSE; - char *p, *data; - - size = GetFileVersionInfoSizeA(filename, &ver); - if (!size) return FALSE; - - data = HeapAlloc(GetProcessHeap(), 0, size); - if (!data) return FALSE; - - if (GetFileVersionInfoA(filename, ver, size, data)) - { - char buf[256]; - - sprintf(buf, "\\StringFileInfo\\%04x%04x\\OriginalFilename", MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US), 1200); - if (VerQueryValueA(data, buf, (void**)&p, &size)) - isstub = !lstrcmpiA("wcodstub.dll", p); - } - HeapFree(GetProcessHeap(), 0, data); - - return isstub; -} - START_TEST(client) { BOOL firewall_enabled; diff --git a/dlls/dpnet/tests/dpnet_test.h b/dlls/dpnet/tests/dpnet_test.h new file mode 100644 index 00000000000..1de25590bdc --- /dev/null +++ b/dlls/dpnet/tests/dpnet_test.h @@ -0,0 +1,32 @@ +/* + * Copyright 2016 Alistair Leslie-Hughes + * + * 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 + */ +#ifndef __DPNET_PRIVATE_H__ +#define __DPNET_PRIVATE_H__ + +enum firewall_op +{ + APP_ADD, + APP_REMOVE +}; + +extern BOOL is_firewall_enabled(void) DECLSPEC_HIDDEN; +extern BOOL is_process_elevated(void) DECLSPEC_HIDDEN; +extern HRESULT set_firewall( enum firewall_op op ) DECLSPEC_HIDDEN; +extern BOOL is_stub_dll(const char *filename) DECLSPEC_HIDDEN; + +#endif diff --git a/dlls/dpnet/tests/server.c b/dlls/dpnet/tests/server.c index bfc21b0d05c..2f52c588a6a 100644 --- a/dlls/dpnet/tests/server.c +++ b/dlls/dpnet/tests/server.c @@ -24,6 +24,8 @@ #include #include "wine/test.h" +#include "dpnet_test.h" + /* {CD0C3D4B-E15E-4CF2-9EA8-6E1D6548C5A5} */ static const GUID appguid = { 0xcd0c3d4b, 0xe15e, 0x4cf2, { 0x9e, 0xa8, 0x6e, 0x1d, 0x65, 0x48, 0xc5, 0xa5 } }; static WCHAR sessionname[] = {'w','i','n','e','g','a','m','e','s','s','e','r','v','e','r',0}; @@ -182,7 +184,7 @@ static void test_server_info(void) } } -static BOOL is_process_elevated(void) +BOOL is_process_elevated(void) { HANDLE token; if (OpenProcessToken( GetCurrentProcess(), TOKEN_QUERY, &token )) @@ -198,7 +200,7 @@ static BOOL is_process_elevated(void) return FALSE; } -static BOOL is_firewall_enabled(void) +BOOL is_firewall_enabled(void) { HRESULT hr, init; INetFwMgr *mgr = NULL; @@ -231,13 +233,7 @@ done: return (enabled == VARIANT_TRUE); } -enum firewall_op -{ - APP_ADD, - APP_REMOVE -}; - -static HRESULT set_firewall( enum firewall_op op ) +HRESULT set_firewall( enum firewall_op op ) { static const WCHAR dpnsvrW[] = {'c',':','\\','w','i','n','d','o','w','s','\\','s','y','s','t','e','m','3','2','\\', @@ -341,7 +337,7 @@ done: } /* taken from programs/winetest/main.c */ -static BOOL is_stub_dll(const char *filename) +BOOL is_stub_dll(const char *filename) { DWORD size, ver; BOOL isstub = FALSE;