mirror of
https://github.com/reactos/reactos.git
synced 2025-01-03 21:09:19 +00:00
[FUSION_WINETEST]
* Sync with Wine 1.5.26. svn path=/trunk/; revision=58928
This commit is contained in:
parent
5ffb258f8a
commit
074fd31218
6 changed files with 207 additions and 47 deletions
|
@ -1,7 +1,5 @@
|
|||
|
||||
add_definitions(
|
||||
-D__ROS_LONG64__
|
||||
-D_DLL -D__USE_CRTIMP)
|
||||
add_definitions(-D__ROS_LONG64__)
|
||||
|
||||
list(APPEND SOURCE
|
||||
asmcache.c
|
||||
|
|
|
@ -16,17 +16,25 @@
|
|||
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
*/
|
||||
|
||||
#define WIN32_NO_STATUS
|
||||
#define _INC_WINDOWS
|
||||
#define COM_NO_WINDOWS_H
|
||||
|
||||
#define COBJMACROS
|
||||
#define INITGUID
|
||||
|
||||
#include <stdio.h>
|
||||
|
||||
#include <windows.h>
|
||||
#include <mscoree.h>
|
||||
//#include <windows.h>
|
||||
#include <windef.h>
|
||||
#include <winbase.h>
|
||||
#include <winver.h>
|
||||
#include <objbase.h>
|
||||
//#include <mscoree.h>
|
||||
#include <fusion.h>
|
||||
#include <corerror.h>
|
||||
|
||||
#include "wine/test.h"
|
||||
#include <wine/test.h>
|
||||
|
||||
typedef struct _tagASSEMBLY ASSEMBLY;
|
||||
|
||||
|
@ -1011,6 +1019,18 @@ static void test_QueryAssemblyInfo(void)
|
|||
'_','M','S','I','L','\\','w','i','n','e','\\',
|
||||
'1','.','0','.','0','.','0','_','_','2','d','0','3','6','1','7','b',
|
||||
'1','c','3','1','e','2','f','5','\\',0};
|
||||
static const WCHAR wine2[] = {
|
||||
'w','i','n','e',',','v','e','r','s','i','o','n','=','1','.','0','.','0','.','1',',',
|
||||
'p','u','b','l','i','c','K','e','y','T','o','k','e','n','=',
|
||||
'2','d','0','3','6','1','7','b','1','c','3','1','e','2','f','5',',',
|
||||
'c','u','l','t','u','r','e','=','n','e','u','t','r','a','l',0};
|
||||
static const WCHAR nullpublickey[] = {
|
||||
'm','s','c','o','r','l','i','b','.','d','l','l',',','v','e','r','s','i','o','n','=','0','.','0','.',
|
||||
'0','.','0',',','c','u','l','t','u','r','e','=','n','e','u','t','r','a','l',',',
|
||||
'p','u','b','l','i','c','K','e','y','T','o','k','e','n','=','n','u','l','l',0};
|
||||
static const WCHAR nullpublickey1[] = {
|
||||
'm','s','c','o','r','l','i','b','.','d','l','l',',',
|
||||
'p','u','b','l','i','c','K','e','y','T','o','k','e','n','=','n','u','L','l',0};
|
||||
|
||||
size = MAX_PATH;
|
||||
hr = pGetCachePath(ASM_CACHE_GAC, asmpath, &size);
|
||||
|
@ -1363,6 +1383,36 @@ static void test_QueryAssemblyInfo(void)
|
|||
"Assembly path was changed\n");
|
||||
ok(info.cchBuf == MAX_PATH, "Expected MAX_PATH, got %d\n", info.cchBuf);
|
||||
|
||||
/* display name is "wine,version=1.0.0.1,publicKeyToken=2d03617b1c31e2f5,culture=neutral" */
|
||||
INIT_ASM_INFO();
|
||||
lstrcpyW(name, wine2);
|
||||
hr = IAssemblyCache_QueryAssemblyInfo(cache, QUERYASMINFO_FLAG_GETSIZE,
|
||||
name, &info);
|
||||
ok(hr == HRESULT_FROM_WIN32(ERROR_FILE_NOT_FOUND),
|
||||
"Expected HRESULT_FROM_WIN32(ERROR_FILE_NOT_FOUND), got %08x\n", hr);
|
||||
ok(info.cbAssemblyInfo == sizeof(ASSEMBLY_INFO),
|
||||
"Expected sizeof(ASSEMBLY_INFO), got %d\n", info.cbAssemblyInfo);
|
||||
ok(info.dwAssemblyFlags == 0, "Expected 0, got %08x\n", info.dwAssemblyFlags);
|
||||
ok(info.uliAssemblySizeInKB.u.HighPart == 0,
|
||||
"Expected 0, got %d\n", info.uliAssemblySizeInKB.u.HighPart);
|
||||
ok(info.uliAssemblySizeInKB.u.LowPart == 0,
|
||||
"Expected 0, got %d\n", info.uliAssemblySizeInKB.u.LowPart);
|
||||
ok(!lstrcmpW(info.pszCurrentAssemblyPathBuf, empty),
|
||||
"Assembly path was changed\n");
|
||||
ok(info.cchBuf == MAX_PATH, "Expected MAX_PATH, got %d\n", info.cchBuf);
|
||||
|
||||
/* display name is "mscorlib.dll,version=0.0.0.0,culture=neutral,publicKeyToken=null" */
|
||||
INIT_ASM_INFO();
|
||||
lstrcpyW(name, nullpublickey);
|
||||
hr = IAssemblyCache_QueryAssemblyInfo(cache, 0, name, &info);
|
||||
ok(hr == FUSION_E_PRIVATE_ASM_DISALLOWED, "got %08x\n", hr);
|
||||
|
||||
/* display name is "mscorlib.dll,publicKeyToken=nuLl" */
|
||||
INIT_ASM_INFO();
|
||||
lstrcpyW(name, nullpublickey1);
|
||||
hr = IAssemblyCache_QueryAssemblyInfo(cache, 0, name, &info);
|
||||
ok(hr == FUSION_E_PRIVATE_ASM_DISALLOWED, "got %08x\n", hr);
|
||||
|
||||
/* display name is "wine, Culture=neutral" */
|
||||
INIT_ASM_INFO();
|
||||
lstrcpyW(name, wine);
|
||||
|
@ -1394,24 +1444,18 @@ static void test_QueryAssemblyInfo(void)
|
|||
lstrcatW(name, badculture);
|
||||
hr = IAssemblyCache_QueryAssemblyInfo(cache, QUERYASMINFO_FLAG_GETSIZE,
|
||||
name, &info);
|
||||
todo_wine
|
||||
{
|
||||
ok(hr == HRESULT_FROM_WIN32(ERROR_FILE_NOT_FOUND),
|
||||
"Expected HRESULT_FROM_WIN32(ERROR_FILE_NOT_FOUND), got %08x\n", hr);
|
||||
ok(info.dwAssemblyFlags == 0, "Expected 0, got %08x\n", info.dwAssemblyFlags);
|
||||
}
|
||||
ok(hr == HRESULT_FROM_WIN32(ERROR_FILE_NOT_FOUND),
|
||||
"Expected HRESULT_FROM_WIN32(ERROR_FILE_NOT_FOUND), got %08x\n", hr);
|
||||
ok(info.dwAssemblyFlags == 0, "Expected 0, got %08x\n", info.dwAssemblyFlags);
|
||||
ok(info.cbAssemblyInfo == sizeof(ASSEMBLY_INFO),
|
||||
"Expected sizeof(ASSEMBLY_INFO), got %d\n", info.cbAssemblyInfo);
|
||||
ok(info.uliAssemblySizeInKB.u.HighPart == 0,
|
||||
"Expected 0, got %d\n", info.uliAssemblySizeInKB.u.HighPart);
|
||||
ok(info.uliAssemblySizeInKB.u.LowPart == 0,
|
||||
"Expected 0, got %d\n", info.uliAssemblySizeInKB.u.LowPart);
|
||||
todo_wine
|
||||
{
|
||||
ok(!lstrcmpW(info.pszCurrentAssemblyPathBuf, empty),
|
||||
"Assembly path was changed\n");
|
||||
ok(info.cchBuf == MAX_PATH, "Expected MAX_PATH, got %d\n", info.cchBuf);
|
||||
}
|
||||
ok(!lstrcmpW(info.pszCurrentAssemblyPathBuf, empty),
|
||||
"Assembly path was changed\n");
|
||||
ok(info.cchBuf == MAX_PATH, "Expected MAX_PATH, got %d\n", info.cchBuf);
|
||||
|
||||
/* display name is "wine, PublicKeyTokens=2d03617b1c31e2f5" */
|
||||
INIT_ASM_INFO();
|
||||
|
|
|
@ -16,18 +16,26 @@
|
|||
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
*/
|
||||
|
||||
#define WIN32_NO_STATUS
|
||||
#define _INC_WINDOWS
|
||||
#define COM_NO_WINDOWS_H
|
||||
|
||||
#define COBJMACROS
|
||||
|
||||
#include <stdio.h>
|
||||
|
||||
#include <windows.h>
|
||||
//#include <windows.h>
|
||||
#include <windef.h>
|
||||
#include <winbase.h>
|
||||
#include <winreg.h>
|
||||
#include <winnls.h>
|
||||
#include <shlwapi.h>
|
||||
#include <mscoree.h>
|
||||
//#include <mscoree.h>
|
||||
#include <fusion.h>
|
||||
#include <corerror.h>
|
||||
//#include <corerror.h>
|
||||
|
||||
#include "wine/test.h"
|
||||
#include "wine/list.h"
|
||||
#include <wine/test.h>
|
||||
#include <wine/list.h>
|
||||
|
||||
static HRESULT (WINAPI *pCreateAssemblyEnum)(IAssemblyEnum **pEnum,
|
||||
IUnknown *pUnkReserved,
|
||||
|
|
|
@ -16,16 +16,25 @@
|
|||
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
*/
|
||||
|
||||
#define WIN32_NO_STATUS
|
||||
#define _INC_WINDOWS
|
||||
#define COM_NO_WINDOWS_H
|
||||
|
||||
#define COBJMACROS
|
||||
|
||||
#include <stdio.h>
|
||||
//#include <stdio.h>
|
||||
#include <stdarg.h>
|
||||
|
||||
#include <windows.h>
|
||||
#include <mscoree.h>
|
||||
//#include <windows.h>
|
||||
#include <windef.h>
|
||||
#include <winbase.h>
|
||||
#include <winnls.h>
|
||||
#include <objbase.h>
|
||||
//#include <mscoree.h>
|
||||
#include <fusion.h>
|
||||
#include <corerror.h>
|
||||
|
||||
#include "wine/test.h"
|
||||
#include <wine/test.h>
|
||||
|
||||
/* ok-like statement which takes two unicode strings or one unicode and one ANSI string as arguments */
|
||||
static CHAR string1[MAX_PATH];
|
||||
|
@ -891,6 +900,107 @@ static void test_CreateAssemblyNameObject(void)
|
|||
ok(hr == FUSION_E_INVALID_NAME,
|
||||
"Expected FUSION_E_INVALID_NAME, got %08x\n", hr);
|
||||
ok(name == (IAssemblyName *)0xdeadbeef, "Expected 0xdeadbeef, got %p\n", name);
|
||||
|
||||
/* no spaces */
|
||||
to_widechar(namestr, "wine,version=1.0.0.0");
|
||||
name = (IAssemblyName *)0xdeadbeef;
|
||||
hr = pCreateAssemblyNameObject(&name, namestr, CANOF_PARSE_DISPLAY_NAME, NULL);
|
||||
ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
|
||||
ok(name != NULL, "Expected non-NULL name\n");
|
||||
hi = lo = 0xdeadbeef;
|
||||
hr = IAssemblyName_GetVersion(name, &hi, &lo);
|
||||
ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
|
||||
ok(hi == 65536, "Expected 536, got %u\n", hi);
|
||||
ok(lo == 0, "Expected 0, got %u\n", lo);
|
||||
IAssemblyName_Release(name);
|
||||
|
||||
/* quoted values */
|
||||
to_widechar(namestr, "wine, version=\"1.0.0.0\",culture=\"en\"");
|
||||
name = (IAssemblyName *)0xdeadbeef;
|
||||
hr = pCreateAssemblyNameObject(&name, namestr, CANOF_PARSE_DISPLAY_NAME, NULL);
|
||||
ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
|
||||
ok(name != NULL, "Expected non-NULL name\n");
|
||||
hi = lo = 0xdeadbeef;
|
||||
hr = IAssemblyName_GetVersion(name, &hi, &lo);
|
||||
ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
|
||||
ok(hi == 65536, "Expected 65536, got %u\n", hi);
|
||||
ok(lo == 0, "Expected 0, got %u\n", lo);
|
||||
IAssemblyName_Release(name);
|
||||
}
|
||||
|
||||
static void test_IAssemblyName_IsEqual(void)
|
||||
{
|
||||
static const WCHAR wine1[] =
|
||||
{'w','i','n','e',0};
|
||||
static const WCHAR wine2[] =
|
||||
{'w','i','n','e',',','v','e','r','s','i','o','n','=','1','.','0','.','0','.','0',0};
|
||||
static const WCHAR wine3[] =
|
||||
{'w','i','n','e',',','v','e','r','s','i','o','n','=','1','.','0','.','0','.','0',',',
|
||||
'c','u','l','t','u','r','e','=','n','e','u','t','r','a','l',0};
|
||||
static const WCHAR wine4[] =
|
||||
{'w','i','n','e',',','v','e','r','s','i','o','n','=','1','.','0','.','0','.','0',',',
|
||||
'c','u','l','t','u','r','e','=','e','n',0};
|
||||
static const WCHAR wine5[] =
|
||||
{'w','i','n','e',',','v','e','r','s','i','o','n','=','1','.','0','.','0','.','0',',',
|
||||
'p','u','b','l','i','c','K','e','y','T','o','k','e','n','=','1','2','3','4','5','6',
|
||||
'7','8','9','0','a','b','c','d','e','f',0};
|
||||
HRESULT hr;
|
||||
IAssemblyName *name1, *name2;
|
||||
|
||||
hr = pCreateAssemblyNameObject( &name1, wine1, CANOF_PARSE_DISPLAY_NAME, NULL );
|
||||
ok( hr == S_OK, "got %08x\n", hr );
|
||||
|
||||
hr = pCreateAssemblyNameObject( &name2, wine1, CANOF_PARSE_DISPLAY_NAME, NULL );
|
||||
ok( hr == S_OK, "got %08x\n", hr );
|
||||
|
||||
if (0) { /* crashes on some old version */
|
||||
hr = IAssemblyName_IsEqual( name1, NULL, 0 );
|
||||
ok( hr == S_FALSE, "got %08x\n", hr );
|
||||
|
||||
hr = IAssemblyName_IsEqual( name1, NULL, ASM_CMPF_IL_ALL );
|
||||
ok( hr == S_FALSE, "got %08x\n", hr );
|
||||
}
|
||||
|
||||
hr = IAssemblyName_IsEqual( name1, name1, ASM_CMPF_IL_ALL );
|
||||
ok( hr == S_OK, "got %08x\n", hr );
|
||||
|
||||
hr = IAssemblyName_IsEqual( name1, name2, ASM_CMPF_IL_ALL );
|
||||
ok( hr == S_OK, "got %08x\n", hr );
|
||||
|
||||
IAssemblyName_Release( name2 );
|
||||
hr = pCreateAssemblyNameObject( &name2, wine2, CANOF_PARSE_DISPLAY_NAME, NULL );
|
||||
ok( hr == S_OK, "got %08x\n", hr );
|
||||
|
||||
hr = IAssemblyName_IsEqual( name1, name2, ASM_CMPF_IL_ALL );
|
||||
ok( hr == S_OK, "got %08x\n", hr );
|
||||
|
||||
IAssemblyName_Release( name2 );
|
||||
hr = pCreateAssemblyNameObject( &name2, wine3, CANOF_PARSE_DISPLAY_NAME, NULL );
|
||||
ok( hr == S_OK, "got %08x\n", hr );
|
||||
|
||||
hr = IAssemblyName_IsEqual( name1, name2, ASM_CMPF_IL_ALL );
|
||||
ok( hr == S_OK, "got %08x\n", hr );
|
||||
|
||||
IAssemblyName_Release( name1 );
|
||||
hr = pCreateAssemblyNameObject( &name1, wine4, CANOF_PARSE_DISPLAY_NAME, NULL );
|
||||
ok( hr == S_OK, "got %08x\n", hr );
|
||||
|
||||
hr = IAssemblyName_IsEqual( name1, name2, ASM_CMPF_IL_ALL );
|
||||
ok( hr == S_FALSE, "got %08x\n", hr );
|
||||
|
||||
IAssemblyName_Release( name1 );
|
||||
hr = pCreateAssemblyNameObject( &name1, wine1, CANOF_PARSE_DISPLAY_NAME, NULL );
|
||||
ok( hr == S_OK, "got %08x\n", hr );
|
||||
|
||||
IAssemblyName_Release( name2 );
|
||||
hr = pCreateAssemblyNameObject( &name2, wine5, CANOF_PARSE_DISPLAY_NAME, NULL );
|
||||
ok( hr == S_OK, "got %08x\n", hr );
|
||||
|
||||
hr = IAssemblyName_IsEqual( name1, name2, ASM_CMPF_IL_ALL );
|
||||
ok( hr == S_OK, "got %08x\n", hr );
|
||||
|
||||
IAssemblyName_Release( name1 );
|
||||
IAssemblyName_Release( name2 );
|
||||
}
|
||||
|
||||
START_TEST(asmname)
|
||||
|
@ -902,4 +1012,5 @@ START_TEST(asmname)
|
|||
}
|
||||
|
||||
test_CreateAssemblyNameObject();
|
||||
test_IAssemblyName_IsEqual();
|
||||
}
|
||||
|
|
|
@ -16,10 +16,20 @@
|
|||
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
*/
|
||||
|
||||
#include <windows.h>
|
||||
#include <stdarg.h>
|
||||
|
||||
#define WIN32_NO_STATUS
|
||||
#define _INC_WINDOWS
|
||||
#define COM_NO_WINDOWS_H
|
||||
|
||||
//#include <windows.h>
|
||||
#include <windef.h>
|
||||
#include <winbase.h>
|
||||
#include <winnls.h>
|
||||
#include <objbase.h>
|
||||
#include <fusion.h>
|
||||
|
||||
#include "wine/test.h"
|
||||
#include <wine/test.h>
|
||||
|
||||
static HMODULE hmscoree;
|
||||
|
||||
|
@ -30,14 +40,6 @@ static HRESULT (WINAPI *pLoadLibraryShim)(LPCWSTR szDllName, LPCWSTR szVersion,
|
|||
static HRESULT (WINAPI *pGetCORVersion)(LPWSTR pbuffer, DWORD cchBuffer,
|
||||
DWORD *dwLength);
|
||||
|
||||
static CHAR string1[MAX_PATH], string2[MAX_PATH];
|
||||
|
||||
#define ok_w2(format, szString1, szString2) \
|
||||
\
|
||||
WideCharToMultiByte(CP_ACP, 0, szString1, -1, string1, MAX_PATH, NULL, NULL); \
|
||||
WideCharToMultiByte(CP_ACP, 0, szString2, -1, string2, MAX_PATH, NULL, NULL); \
|
||||
ok(!lstrcmpA(string1, string2), format, string1, string2)
|
||||
|
||||
static BOOL init_functionpointers(void)
|
||||
{
|
||||
HRESULT hr;
|
||||
|
@ -127,14 +129,14 @@ static void test_GetCachePath(void)
|
|||
lstrcpyW(path, nochange);
|
||||
hr = pGetCachePath(ASM_CACHE_GAC, path, NULL);
|
||||
ok(hr == E_INVALIDARG, "Expected E_INVALIDARG, got %08x\n", hr);
|
||||
ok_w2("Expected \"%s\", got \"%s\"\n", nochange, path);
|
||||
ok( !lstrcmpW( nochange, path ), "Expected %s, got %s\n", wine_dbgstr_w(nochange), wine_dbgstr_w(path));
|
||||
|
||||
/* get the cache path */
|
||||
lstrcpyW(path, nochange);
|
||||
size = MAX_PATH;
|
||||
hr = pGetCachePath(ASM_CACHE_GAC, path, &size);
|
||||
ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
|
||||
ok_w2("Expected \"%s\", got \"%s\"\n", cachepath, path);
|
||||
ok( !lstrcmpW( cachepath, path ), "Expected %s, got %s\n", wine_dbgstr_w(cachepath), wine_dbgstr_w(path));
|
||||
|
||||
/* pcchPath has no room for NULL terminator */
|
||||
lstrcpyW(path, nochange);
|
||||
|
@ -142,7 +144,7 @@ static void test_GetCachePath(void)
|
|||
hr = pGetCachePath(ASM_CACHE_GAC, path, &size);
|
||||
ok(hr == HRESULT_FROM_WIN32(ERROR_INSUFFICIENT_BUFFER),
|
||||
"Expected HRESULT_FROM_WIN32(ERROR_INSUFFICIENT_BUFFER), got %08x\n", hr);
|
||||
ok_w2("Expected \"%s\", got \"%s\"\n", nochange, path);
|
||||
ok( !lstrcmpW( nochange, path ), "Expected %s, got %s\n", wine_dbgstr_w(nochange), wine_dbgstr_w(path));
|
||||
|
||||
lstrcpyW(cachepath, windir);
|
||||
lstrcatW(cachepath, backslash);
|
||||
|
@ -156,7 +158,7 @@ static void test_GetCachePath(void)
|
|||
broken(hr == E_INVALIDARG), /* .NET 1.1 */
|
||||
"Expected S_OK, got %08x\n", hr);
|
||||
if (hr == S_OK)
|
||||
ok_w2("Expected \"%s\", got \"%s\"\n", cachepath, path);
|
||||
ok( !lstrcmpW( cachepath, path ), "Expected %s, got %s\n", wine_dbgstr_w(cachepath), wine_dbgstr_w(path));
|
||||
|
||||
if (pGetCORVersion)
|
||||
{
|
||||
|
@ -191,7 +193,7 @@ static void test_GetCachePath(void)
|
|||
size = MAX_PATH;
|
||||
hr = pGetCachePath(ASM_CACHE_ZAP, path, &size);
|
||||
ok(hr == S_OK, "Expected S_OK, got %08x\n", hr);
|
||||
ok_w2("Expected \"%s\", got \"%s\"\n", cachepath, path);
|
||||
ok( !lstrcmpW( cachepath, path ), "Expected %s, got %s\n", wine_dbgstr_w(cachepath), wine_dbgstr_w(path));
|
||||
}
|
||||
|
||||
/* two flags at once */
|
||||
|
@ -199,7 +201,7 @@ static void test_GetCachePath(void)
|
|||
size = MAX_PATH;
|
||||
hr = pGetCachePath(ASM_CACHE_GAC | ASM_CACHE_ROOT, path, &size);
|
||||
ok(hr == E_INVALIDARG, "Expected E_INVALIDARG, got %08x\n", hr);
|
||||
ok_w2("Expected \"%s\", got \"%s\"\n", nochange, path);
|
||||
ok( !lstrcmpW( nochange, path ), "Expected %s, got %s\n", wine_dbgstr_w(nochange), wine_dbgstr_w(path));
|
||||
}
|
||||
|
||||
START_TEST(fusion)
|
||||
|
|
|
@ -1,10 +1,7 @@
|
|||
/* Automatically generated file; DO NOT EDIT!! */
|
||||
|
||||
#define WIN32_LEAN_AND_MEAN
|
||||
#include <windows.h>
|
||||
|
||||
#define STANDALONE
|
||||
#include "wine/test.h"
|
||||
#include <wine/test.h>
|
||||
|
||||
extern void func_fusion(void);
|
||||
extern void func_asmname(void);
|
||||
|
|
Loading…
Reference in a new issue