dpnet/test: Share code between tests.
Signed-off-by: Alistair Leslie-Hughes <leslie_alistair@hotmail.com> Signed-off-by: Erich E. Hoover <erich.e.hoover@wine-staging.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
9e54ae767e
commit
afe438a8d0
|
@ -22,6 +22,8 @@
|
|||
#include <dplay8.h>
|
||||
#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;
|
||||
|
|
|
@ -24,9 +24,10 @@
|
|||
#include <dplobby8.h>
|
||||
#include <winver.h>
|
||||
#define COBJMACROS
|
||||
#include <netfw.h>
|
||||
#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;
|
||||
|
|
|
@ -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
|
|
@ -24,6 +24,8 @@
|
|||
#include <netfw.h>
|
||||
#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;
|
||||
|
|
Loading…
Reference in New Issue