wmiutils: Add tests.
This commit is contained in:
parent
0199a94329
commit
988ff08754
|
@ -15923,6 +15923,7 @@ wine_fn_config_dll wldap32 enable_wldap32 implib,po
|
|||
wine_fn_config_test dlls/wldap32/tests wldap32_test
|
||||
wine_fn_config_dll wmi enable_wmi
|
||||
wine_fn_config_dll wmiutils enable_wmiutils
|
||||
wine_fn_config_test dlls/wmiutils/tests wmiutils_test
|
||||
wine_fn_config_dll wmvcore enable_wmvcore
|
||||
wine_fn_config_dll wnaspi32 enable_wnaspi32 implib
|
||||
wine_fn_config_dll wow32 enable_win16 implib
|
||||
|
|
|
@ -3098,6 +3098,7 @@ WINE_CONFIG_DLL(wldap32,,[implib,po])
|
|||
WINE_CONFIG_TEST(dlls/wldap32/tests)
|
||||
WINE_CONFIG_DLL(wmi)
|
||||
WINE_CONFIG_DLL(wmiutils)
|
||||
WINE_CONFIG_TEST(dlls/wmiutils/tests)
|
||||
WINE_CONFIG_DLL(wmvcore)
|
||||
WINE_CONFIG_DLL(wnaspi32,,[implib])
|
||||
WINE_CONFIG_DLL(wow32,enable_win16,[implib])
|
||||
|
|
|
@ -0,0 +1,7 @@
|
|||
TESTDLL = wmiutils.dll
|
||||
IMPORTS = ole32
|
||||
|
||||
C_SRCS = \
|
||||
path.c
|
||||
|
||||
@MAKE_TEST_RULES@
|
|
@ -0,0 +1,249 @@
|
|||
/*
|
||||
* Copyright 2012 Hans Leidekker for CodeWeavers
|
||||
*
|
||||
* 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
|
||||
*/
|
||||
|
||||
#define COBJMACROS
|
||||
|
||||
#include <stdarg.h>
|
||||
#include "windows.h"
|
||||
#include "initguid.h"
|
||||
#include "wmiutils.h"
|
||||
#include "wbemcli.h"
|
||||
#include "wine/test.h"
|
||||
|
||||
static const WCHAR path1[] = {0};
|
||||
static const WCHAR path2[] = {'\\',0};
|
||||
static const WCHAR path3[] = {'\\','\\','s','e','r','v','e','r',0};
|
||||
static const WCHAR path4[] = {'\\','\\','s','e','r','v','e','r','\\',0};
|
||||
static const WCHAR path5[] = {'\\','\\','.','\\',0};
|
||||
static const WCHAR path6[] = {'/','/','.','/','r','o','o','t','/','c','i','m','v','2',0};
|
||||
static const WCHAR path7[] =
|
||||
{'/','/','.','/','r','o','o','t','/','c','i','m','v','2',':','W','i','n','3','2','_',
|
||||
'O','p','e','r','a','t','i','n','g','S','y','s','t','e','m',0};
|
||||
static const WCHAR path8[] =
|
||||
{'/','r','o','o','t','/','c','i','m','v','2',':','W','i','n','3','2','_',
|
||||
'O','p','e','r','a','t','i','n','g','S','y','s','t','e','m',0};
|
||||
static const WCHAR path9[] =
|
||||
{'\\','\\','.','\\','r','o','o','t','\\','c','i','m','v','2',':','W','i','n','3','2','_',
|
||||
'O','p','e','r','a','t','i','n','g','S','y','s','t','e','m',0};
|
||||
static const WCHAR path10[] =
|
||||
{'/','\\','.','\\','r','o','o','t','\\','c','i','m','v','2',':','W','i','n','3','2','_',
|
||||
'O','p','e','r','a','t','i','n','g','S','y','s','t','e','m',0};
|
||||
static const WCHAR path11[] =
|
||||
{'/','/','.','\\','r','o','o','t','\\','c','i','m','v','2',':','W','i','n','3','2','_',
|
||||
'O','p','e','r','a','t','i','n','g','S','y','s','t','e','m',0};
|
||||
static const WCHAR path12[] =
|
||||
{'r','o','o','t','\\','c','i','m','v','2',':','W','i','n','3','2','_',
|
||||
'O','p','e','r','a','t','i','n','g','S','y','s','t','e','m',0};
|
||||
static const WCHAR path13[] =
|
||||
{'\\','\\','.','\\','r','o','o','t','\\','c','i','m','v','2',0};
|
||||
static const WCHAR path14[] =
|
||||
{'W','i','n','3','2','_','O','p','e','r','a','t','i','n','g','S','y','s','t','e','m',0};
|
||||
static const WCHAR path15[] =
|
||||
{'r','o','o','t','\\','c','i','m','v','2',0};
|
||||
|
||||
static void test_IWbemPath_SetText(void)
|
||||
{
|
||||
static const struct
|
||||
{
|
||||
const WCHAR *path;
|
||||
ULONG mode;
|
||||
HRESULT ret;
|
||||
int todo;
|
||||
} test[] =
|
||||
{
|
||||
{ path1, 0, WBEM_E_INVALID_PARAMETER },
|
||||
{ path1, WBEMPATH_CREATE_ACCEPT_ALL, S_OK },
|
||||
{ path2, 0, WBEM_E_INVALID_PARAMETER },
|
||||
{ path2, WBEMPATH_CREATE_ACCEPT_ALL, S_OK },
|
||||
{ path3, 0, WBEM_E_INVALID_PARAMETER },
|
||||
{ path3, WBEMPATH_CREATE_ACCEPT_ALL, S_OK },
|
||||
{ path4, 0, WBEM_E_INVALID_PARAMETER },
|
||||
{ path4, WBEMPATH_CREATE_ACCEPT_ALL, S_OK },
|
||||
{ path5, 0, WBEM_E_INVALID_PARAMETER },
|
||||
{ path5, WBEMPATH_CREATE_ACCEPT_ALL, S_OK },
|
||||
{ path6, 0, WBEM_E_INVALID_PARAMETER },
|
||||
{ path6, WBEMPATH_CREATE_ACCEPT_ALL, S_OK },
|
||||
{ path7, 0, WBEM_E_INVALID_PARAMETER },
|
||||
{ path7, WBEMPATH_CREATE_ACCEPT_RELATIVE, S_OK },
|
||||
{ path7, WBEMPATH_CREATE_ACCEPT_ABSOLUTE, S_OK },
|
||||
{ path7, WBEMPATH_CREATE_ACCEPT_ALL, S_OK },
|
||||
{ path7, WBEMPATH_TREAT_SINGLE_IDENT_AS_NS, WBEM_E_INVALID_PARAMETER, 1 },
|
||||
{ path7, WBEMPATH_TREAT_SINGLE_IDENT_AS_NS + 1, S_OK },
|
||||
{ path8, WBEMPATH_CREATE_ACCEPT_RELATIVE, S_OK },
|
||||
{ path8, WBEMPATH_CREATE_ACCEPT_ABSOLUTE, WBEM_E_INVALID_PARAMETER, 1 },
|
||||
{ path8, WBEMPATH_CREATE_ACCEPT_ALL, S_OK },
|
||||
{ path8, WBEMPATH_TREAT_SINGLE_IDENT_AS_NS, WBEM_E_INVALID_PARAMETER, 1 },
|
||||
{ path8, WBEMPATH_TREAT_SINGLE_IDENT_AS_NS + 1, S_OK },
|
||||
{ path9, WBEMPATH_CREATE_ACCEPT_ABSOLUTE, S_OK },
|
||||
{ path10, WBEMPATH_CREATE_ACCEPT_ABSOLUTE, WBEM_E_INVALID_PARAMETER, 1 },
|
||||
{ path11, WBEMPATH_CREATE_ACCEPT_ABSOLUTE, S_OK }
|
||||
};
|
||||
IWbemPath *path;
|
||||
HRESULT hr;
|
||||
UINT i;
|
||||
|
||||
CoInitialize( NULL );
|
||||
hr = CoCreateInstance( &CLSID_WbemDefPath, NULL, CLSCTX_INPROC_SERVER, &IID_IWbemPath, (void **)&path );
|
||||
if (hr != S_OK)
|
||||
{
|
||||
win_skip( "can't create WbemDefPath instance, skipping tests\n" );
|
||||
return;
|
||||
}
|
||||
|
||||
hr = IWbemPath_SetText( path, 0, NULL );
|
||||
ok( hr == WBEM_E_INVALID_PARAMETER, "got %08x\n", hr );
|
||||
|
||||
hr = IWbemPath_SetText( path, WBEMPATH_CREATE_ACCEPT_ALL, NULL );
|
||||
ok( hr == WBEM_E_INVALID_PARAMETER, "got %08x\n", hr );
|
||||
|
||||
for (i = 0; i < sizeof(test)/sizeof(test[0]); i++)
|
||||
{
|
||||
hr = IWbemPath_SetText( path, test[i].mode, test[i].path );
|
||||
if (test[i].todo) todo_wine ok( hr == test[i].ret, "%u got %08x\n", i, hr );
|
||||
else ok( hr == test[i].ret, "%u got %08x\n", i, hr );
|
||||
|
||||
if (test[i].ret == S_OK)
|
||||
{
|
||||
WCHAR buf[128];
|
||||
ULONG len;
|
||||
|
||||
memset( buf, 0x55, sizeof(buf) );
|
||||
len = sizeof(buf)/sizeof(buf[0]);
|
||||
hr = IWbemPath_GetText( path, WBEMPATH_GET_ORIGINAL, &len, buf );
|
||||
ok( hr == S_OK, "%u got %08x\n", i, hr );
|
||||
ok( !lstrcmpW( buf, test[i].path ), "%u unexpected path %s\n", i, wine_dbgstr_w(buf) );
|
||||
ok( len == lstrlenW( test[i].path ) + 1, "%u unexpected length %u\n", i, len );
|
||||
}
|
||||
}
|
||||
|
||||
IWbemPath_Release( path );
|
||||
CoUninitialize();
|
||||
}
|
||||
|
||||
static void test_IWbemPath_GetText(void)
|
||||
{
|
||||
IWbemPath *path;
|
||||
WCHAR buf[128];
|
||||
ULONG len, count;
|
||||
HRESULT hr;
|
||||
|
||||
CoInitialize( NULL );
|
||||
hr = CoCreateInstance( &CLSID_WbemDefPath, NULL, CLSCTX_INPROC_SERVER, &IID_IWbemPath, (void **)&path );
|
||||
if (hr != S_OK)
|
||||
{
|
||||
win_skip( "can't create WbemDefPath instance, skipping tests\n" );
|
||||
return;
|
||||
}
|
||||
|
||||
hr = IWbemPath_GetText( path, 0, NULL, NULL );
|
||||
ok( hr == WBEM_E_INVALID_PARAMETER, "got %08x\n", hr );
|
||||
|
||||
len = sizeof(buf)/sizeof(buf[0]);
|
||||
hr = IWbemPath_GetText( path, 0, &len, NULL );
|
||||
ok( hr == WBEM_E_INVALID_PARAMETER, "got %08x\n", hr );
|
||||
ok( len == sizeof(buf)/sizeof(buf[0]), "unexpected length %u\n", len );
|
||||
|
||||
len = sizeof(buf)/sizeof(buf[0]);
|
||||
memset( buf, 0x55, sizeof(buf) );
|
||||
hr = IWbemPath_GetText( path, 0, &len, buf );
|
||||
ok( hr == S_OK, "got %08x\n", hr );
|
||||
ok( !buf[0], "unexpected buffer contents %s\n", wine_dbgstr_w(buf) );
|
||||
ok( len == 1, "unexpected length %u\n", len );
|
||||
|
||||
hr = IWbemPath_GetText( path, WBEMPATH_GET_ORIGINAL, NULL, NULL );
|
||||
ok( hr == WBEM_E_INVALID_PARAMETER, "got %08x\n", hr );
|
||||
|
||||
len = sizeof(buf)/sizeof(buf[0]);
|
||||
hr = IWbemPath_GetText( path, WBEMPATH_GET_ORIGINAL, &len, NULL );
|
||||
ok( hr == WBEM_E_INVALID_PARAMETER, "got %08x\n", hr );
|
||||
ok( len == sizeof(buf)/sizeof(buf[0]), "unexpected length %u\n", len );
|
||||
|
||||
len = sizeof(buf)/sizeof(buf[0]);
|
||||
memset( buf, 0x55, sizeof(buf) );
|
||||
hr = IWbemPath_GetText( path, WBEMPATH_GET_ORIGINAL, &len, buf );
|
||||
ok( hr == S_OK, "got %08x\n", hr );
|
||||
ok( !buf[0], "unexpected buffer contents %s\n", wine_dbgstr_w(buf) );
|
||||
ok( len == 1, "unexpected length %u\n", len );
|
||||
|
||||
len = sizeof(buf)/sizeof(buf[0]);
|
||||
memset( buf, 0x55, sizeof(buf) );
|
||||
hr = IWbemPath_GetText( path, WBEMPATH_GET_SERVER_TOO, &len, buf );
|
||||
ok( hr == S_OK, "got %08x\n", hr );
|
||||
todo_wine ok( !buf[0], "unexpected buffer contents %s\n", wine_dbgstr_w(buf) );
|
||||
todo_wine ok( len == 1, "unexpected length %u\n", len );
|
||||
|
||||
hr = IWbemPath_SetText( path, WBEMPATH_CREATE_ACCEPT_ALL, path8 );
|
||||
ok( hr == S_OK, "got %08x\n", hr );
|
||||
|
||||
count = 0xdeadbeef;
|
||||
hr = IWbemPath_GetNamespaceCount( path, &count );
|
||||
ok( hr == S_OK, "got %08x\n", hr );
|
||||
ok( count == 2, "got %u\n", count );
|
||||
|
||||
len = sizeof(buf)/sizeof(buf[0]);
|
||||
memset( buf, 0x55, sizeof(buf) );
|
||||
hr = IWbemPath_GetText( path, WBEMPATH_GET_SERVER_TOO, &len, buf );
|
||||
ok( hr == S_OK, "got %08x\n", hr );
|
||||
ok( !lstrcmpW( buf, path9 ), "unexpected buffer contents %s\n", wine_dbgstr_w(buf) );
|
||||
ok( len == lstrlenW( path9 ) + 1, "unexpected length %u\n", len );
|
||||
|
||||
len = sizeof(buf)/sizeof(buf[0]);
|
||||
memset( buf, 0x55, sizeof(buf) );
|
||||
hr = IWbemPath_GetText( path, WBEMPATH_GET_SERVER_AND_NAMESPACE_ONLY, &len, buf );
|
||||
ok( hr == S_OK, "got %08x\n", hr );
|
||||
ok( !lstrcmpW( buf, path13 ), "unexpected buffer contents %s\n", wine_dbgstr_w(buf) );
|
||||
ok( len == lstrlenW( path13 ) + 1, "unexpected length %u\n", len );
|
||||
|
||||
len = sizeof(buf)/sizeof(buf[0]);
|
||||
memset( buf, 0x55, sizeof(buf) );
|
||||
hr = IWbemPath_GetText( path, WBEMPATH_GET_RELATIVE_ONLY, &len, buf );
|
||||
ok( hr == S_OK, "got %08x\n", hr );
|
||||
ok( !lstrcmpW( buf, path14 ), "unexpected buffer contents %s\n", wine_dbgstr_w(buf) );
|
||||
ok( len == lstrlenW( path14 ) + 1, "unexpected length %u\n", len );
|
||||
|
||||
len = sizeof(buf)/sizeof(buf[0]);
|
||||
memset( buf, 0x55, sizeof(buf) );
|
||||
hr = IWbemPath_GetText( path, WBEMPATH_GET_NAMESPACE_ONLY, &len, buf );
|
||||
ok( hr == S_OK, "got %08x\n", hr );
|
||||
ok( !lstrcmpW( buf, path15 ), "unexpected buffer contents %s\n", wine_dbgstr_w(buf) );
|
||||
ok( len == lstrlenW( path15 ) + 1, "unexpected length %u\n", len );
|
||||
|
||||
len = sizeof(buf)/sizeof(buf[0]);
|
||||
memset( buf, 0x55, sizeof(buf) );
|
||||
hr = IWbemPath_GetText( path, 0, &len, buf );
|
||||
ok( hr == S_OK, "got %08x\n", hr );
|
||||
ok( !lstrcmpW( buf, path12 ), "unexpected buffer contents %s\n", wine_dbgstr_w(buf) );
|
||||
ok( len == lstrlenW( path12 ) + 1, "unexpected length %u\n", len );
|
||||
|
||||
hr = IWbemPath_SetText( path, WBEMPATH_CREATE_ACCEPT_ALL, path1 );
|
||||
ok( hr == S_OK, "got %08x\n", hr );
|
||||
|
||||
count = 0xdeadbeef;
|
||||
hr = IWbemPath_GetNamespaceCount( path, &count );
|
||||
ok( hr == S_OK, "got %08x\n", hr );
|
||||
ok( !count, "got %u\n", count );
|
||||
|
||||
IWbemPath_Release( path );
|
||||
CoUninitialize();
|
||||
}
|
||||
|
||||
START_TEST (path)
|
||||
{
|
||||
test_IWbemPath_SetText();
|
||||
test_IWbemPath_GetText();
|
||||
}
|
Loading…
Reference in New Issue