Author: akhaldi
Date: Thu Aug 18 10:30:35 2016
New Revision: 72299
URL:
http://svn.reactos.org/svn/reactos?rev=72299&view=rev
Log:
[OLEAUT32_WINETEST] Sync with Wine Staging 1.9.16. CORE-11866
Modified:
trunk/rostests/winetests/oleaut32/safearray.c
trunk/rostests/winetests/oleaut32/test_tlb.idl
trunk/rostests/winetests/oleaut32/typelib.c
trunk/rostests/winetests/oleaut32/vartype.c
Modified: trunk/rostests/winetests/oleaut32/safearray.c
URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/winetests/oleaut32/safear…
==============================================================================
--- trunk/rostests/winetests/oleaut32/safearray.c [iso-8859-1] (original)
+++ trunk/rostests/winetests/oleaut32/safearray.c [iso-8859-1] Thu Aug 18 10:30:35 2016
@@ -710,7 +710,9 @@
}
if (!pSafeArrayAllocDescriptorEx)
+ {
return;
+ }
for (i=0;i<sizeof(vttypes)/sizeof(vttypes[0]);i++) {
a = NULL;
Modified: trunk/rostests/winetests/oleaut32/test_tlb.idl
URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/winetests/oleaut32/test_t…
==============================================================================
--- trunk/rostests/winetests/oleaut32/test_tlb.idl [iso-8859-1] (original)
+++ trunk/rostests/winetests/oleaut32/test_tlb.idl [iso-8859-1] Thu Aug 18 10:30:35 2016
@@ -23,6 +23,8 @@
#pragma makedep typelib
import "oaidl.idl"; /* needed by widl */
+
+midl_pragma warning ( disable : 2368 )
[uuid(8b05fe77-4a6c-4133-b9cd-8f81747af784)]
library Test
Modified: trunk/rostests/winetests/oleaut32/typelib.c
URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/winetests/oleaut32/typeli…
==============================================================================
--- trunk/rostests/winetests/oleaut32/typelib.c [iso-8859-1] (original)
+++ trunk/rostests/winetests/oleaut32/typelib.c [iso-8859-1] Thu Aug 18 10:30:35 2016
@@ -2902,11 +2902,7 @@
ok(typeattr->cFuncs == 13, "cFuncs = %d\n", typeattr->cFuncs);
ok(typeattr->cVars == 0, "cVars = %d\n", typeattr->cVars);
ok(typeattr->cImplTypes == 1, "cImplTypes = %d\n",
typeattr->cImplTypes);
-#ifdef _WIN64
- if(sys == SYS_WIN32)
- todo_wine ok(typeattr->cbSizeVft == 16 * sizeof(void*), "cbSizeVft =
%d\n", typeattr->cbSizeVft);
- else
-#endif
+ todo_wine_if(is_win64 && sys == SYS_WIN32)
ok(typeattr->cbSizeVft == 16 * sizeof(void*), "cbSizeVft = %d\n",
typeattr->cbSizeVft);
ok(typeattr->cbAlignment == alignment, "cbAlignment = %d\n",
typeattr->cbAlignment);
ok(typeattr->wTypeFlags == 0, "wTypeFlags = %d\n",
typeattr->wTypeFlags);
@@ -2980,11 +2976,7 @@
ok(pfuncdesc->callconv == CC_STDCALL, "got 0x%x\n",
pfuncdesc->callconv);
ok(pfuncdesc->cParams == 0, "got %d\n", pfuncdesc->cParams);
ok(pfuncdesc->cParamsOpt == 0, "got %d\n", pfuncdesc->cParamsOpt);
-#ifdef _WIN64
- if(sys == SYS_WIN32)
- todo_wine ok(pfuncdesc->oVft == 4 * sizeof(void*), "got %d\n",
pfuncdesc->oVft);
- else
-#endif
+ todo_wine_if(is_win64 && sys == SYS_WIN32)
ok(pfuncdesc->oVft == 4 * sizeof(void*), "got %d\n",
pfuncdesc->oVft);
ok(pfuncdesc->cScodes == 0, "got %d\n", pfuncdesc->cScodes);
ok(pfuncdesc->elemdescFunc.tdesc.vt == VT_VOID, "got %d\n",
pfuncdesc->elemdescFunc.tdesc.vt);
@@ -3009,11 +3001,7 @@
ok(pfuncdesc->callconv == CC_STDCALL, "got 0x%x\n",
pfuncdesc->callconv);
ok(pfuncdesc->cParams == 0, "got %d\n", pfuncdesc->cParams);
ok(pfuncdesc->cParamsOpt == 0, "got %d\n", pfuncdesc->cParamsOpt);
-#ifdef _WIN64
- if(sys == SYS_WIN32)
- todo_wine ok(pfuncdesc->oVft == 5 * sizeof(void*), "got %d\n",
pfuncdesc->oVft);
- else
-#endif
+ todo_wine_if(is_win64 && sys == SYS_WIN32)
ok(pfuncdesc->oVft == 5 * sizeof(void*), "got %d\n",
pfuncdesc->oVft);
ok(pfuncdesc->cScodes == 0, "got %d\n", pfuncdesc->cScodes);
ok(pfuncdesc->elemdescFunc.tdesc.vt == VT_VOID, "got %d\n",
pfuncdesc->elemdescFunc.tdesc.vt);
@@ -3038,11 +3026,7 @@
ok(pfuncdesc->callconv == CC_STDCALL, "got 0x%x\n",
pfuncdesc->callconv);
ok(pfuncdesc->cParams == 2, "got %d\n", pfuncdesc->cParams);
ok(pfuncdesc->cParamsOpt == 0, "got %d\n", pfuncdesc->cParamsOpt);
-#ifdef _WIN64
- if(sys == SYS_WIN32)
- todo_wine ok(pfuncdesc->oVft == 6 * sizeof(void*), "got %d\n",
pfuncdesc->oVft);
- else
-#endif
+ todo_wine_if(is_win64 && sys == SYS_WIN32)
ok(pfuncdesc->oVft == 6 * sizeof(void*), "got %d\n",
pfuncdesc->oVft);
ok(pfuncdesc->cScodes == 0, "got %d\n", pfuncdesc->cScodes);
ok(pfuncdesc->elemdescFunc.tdesc.vt == VT_VOID, "got %d\n",
pfuncdesc->elemdescFunc.tdesc.vt);
@@ -3102,11 +3086,7 @@
ok(pfuncdesc->callconv == CC_STDCALL, "got 0x%x\n",
pfuncdesc->callconv);
ok(pfuncdesc->cParams == 2, "got %d\n", pfuncdesc->cParams);
ok(pfuncdesc->cParamsOpt == 0, "got %d\n", pfuncdesc->cParamsOpt);
-#ifdef _WIN64
- if(sys == SYS_WIN32)
- todo_wine ok(pfuncdesc->oVft == 7 * sizeof(void*), "got %d\n",
pfuncdesc->oVft);
- else
-#endif
+ todo_wine_if(is_win64 && sys == SYS_WIN32)
ok(pfuncdesc->oVft == 7 * sizeof(void*), "got %d\n",
pfuncdesc->oVft);
ok(pfuncdesc->cScodes == 0, "got %d\n", pfuncdesc->cScodes);
ok(pfuncdesc->elemdescFunc.tdesc.vt == VT_VOID, "got %d\n",
pfuncdesc->elemdescFunc.tdesc.vt);
@@ -3153,11 +3133,7 @@
ok(pfuncdesc->callconv == CC_STDCALL, "got 0x%x\n",
pfuncdesc->callconv);
ok(pfuncdesc->cParams == 1, "got %d\n", pfuncdesc->cParams);
ok(pfuncdesc->cParamsOpt == 0, "got %d\n", pfuncdesc->cParamsOpt);
-#ifdef _WIN64
- if(sys == SYS_WIN32)
- todo_wine ok(pfuncdesc->oVft == 8 * sizeof(void*), "got %d\n",
pfuncdesc->oVft);
- else
-#endif
+ todo_wine_if(is_win64 && sys == SYS_WIN32)
ok(pfuncdesc->oVft == 8 * sizeof(void*), "got %d\n",
pfuncdesc->oVft);
ok(pfuncdesc->cScodes == 0, "got %d\n", pfuncdesc->cScodes);
ok(pfuncdesc->elemdescFunc.tdesc.vt == VT_VOID, "got %d\n",
pfuncdesc->elemdescFunc.tdesc.vt);
@@ -3195,11 +3171,7 @@
ok(pfuncdesc->callconv == CC_STDCALL, "got 0x%x\n",
pfuncdesc->callconv);
ok(pfuncdesc->cParams == 1, "got %d\n", pfuncdesc->cParams);
ok(pfuncdesc->cParamsOpt == 0, "got %d\n", pfuncdesc->cParamsOpt);
-#ifdef _WIN64
- if(sys == SYS_WIN32)
- todo_wine ok(pfuncdesc->oVft == 9 * sizeof(void*), "got %d\n",
pfuncdesc->oVft);
- else
-#endif
+ todo_wine_if(is_win64 && sys == SYS_WIN32)
ok(pfuncdesc->oVft == 9 * sizeof(void*), "got %d\n",
pfuncdesc->oVft);
ok(pfuncdesc->cScodes == 0, "got %d\n", pfuncdesc->cScodes);
ok(pfuncdesc->elemdescFunc.tdesc.vt == VT_VARIANT, "got %d\n",
pfuncdesc->elemdescFunc.tdesc.vt);
@@ -3237,11 +3209,7 @@
ok(pfuncdesc->callconv == CC_STDCALL, "got 0x%x\n",
pfuncdesc->callconv);
ok(pfuncdesc->cParams == 2, "got %d\n", pfuncdesc->cParams);
ok(pfuncdesc->cParamsOpt == 0, "got %d\n", pfuncdesc->cParamsOpt);
-#ifdef _WIN64
- if(sys == SYS_WIN32)
- todo_wine ok(pfuncdesc->oVft == 10 * sizeof(void*), "got %d\n",
pfuncdesc->oVft);
- else
-#endif
+ todo_wine_if(is_win64 && sys == SYS_WIN32)
ok(pfuncdesc->oVft == 10 * sizeof(void*), "got %d\n",
pfuncdesc->oVft);
ok(pfuncdesc->cScodes == 0, "got %d\n", pfuncdesc->cScodes);
ok(pfuncdesc->elemdescFunc.tdesc.vt == VT_VOID, "got %d\n",
pfuncdesc->elemdescFunc.tdesc.vt);
@@ -3282,11 +3250,7 @@
ok(pfuncdesc->callconv == CC_STDCALL, "got 0x%x\n",
pfuncdesc->callconv);
ok(pfuncdesc->cParams == 1, "got %d\n", pfuncdesc->cParams);
ok(pfuncdesc->cParamsOpt == 0, "got %d\n", pfuncdesc->cParamsOpt);
-#ifdef _WIN64
- if(sys == SYS_WIN32)
- todo_wine ok(pfuncdesc->oVft == 11 * sizeof(void*), "got %d\n",
pfuncdesc->oVft);
- else
-#endif
+ todo_wine_if(is_win64 && sys == SYS_WIN32)
ok(pfuncdesc->oVft == 11 * sizeof(void*), "got %d\n",
pfuncdesc->oVft);
ok(pfuncdesc->cScodes == 0, "got %d\n", pfuncdesc->cScodes);
ok(pfuncdesc->elemdescFunc.tdesc.vt == VT_VOID, "got %d\n",
pfuncdesc->elemdescFunc.tdesc.vt);
@@ -3322,11 +3286,7 @@
ok(pfuncdesc->callconv == CC_STDCALL, "got 0x%x\n",
pfuncdesc->callconv);
ok(pfuncdesc->cParams == 0, "got %d\n", pfuncdesc->cParams);
ok(pfuncdesc->cParamsOpt == 0, "got %d\n", pfuncdesc->cParamsOpt);
-#ifdef _WIN64
- if(sys == SYS_WIN32)
- todo_wine ok(pfuncdesc->oVft == 12 * sizeof(void*), "got %d\n",
pfuncdesc->oVft);
- else
-#endif
+ todo_wine_if(is_win64 && sys == SYS_WIN32)
ok(pfuncdesc->oVft == 12 * sizeof(void*), "got %d\n",
pfuncdesc->oVft);
ok(pfuncdesc->cScodes == 0, "got %d\n", pfuncdesc->cScodes);
ok(pfuncdesc->elemdescFunc.tdesc.vt == VT_BSTR, "got %d\n",
pfuncdesc->elemdescFunc.tdesc.vt);
@@ -3358,11 +3318,7 @@
ok(pfuncdesc->callconv == CC_STDCALL, "got 0x%x\n",
pfuncdesc->callconv);
ok(pfuncdesc->cParams == 1, "got %d\n", pfuncdesc->cParams);
ok(pfuncdesc->cParamsOpt == 0, "got %d\n", pfuncdesc->cParamsOpt);
-#ifdef _WIN64
- if(sys == SYS_WIN32)
- todo_wine ok(pfuncdesc->oVft == 13 * sizeof(void*), "got %d\n",
pfuncdesc->oVft);
- else
-#endif
+ todo_wine_if(is_win64 && sys == SYS_WIN32)
ok(pfuncdesc->oVft == 13 * sizeof(void*), "got %d\n",
pfuncdesc->oVft);
ok(pfuncdesc->cScodes == 0, "got %d\n", pfuncdesc->cScodes);
ok(pfuncdesc->elemdescFunc.tdesc.vt == VT_VOID, "got %d\n",
pfuncdesc->elemdescFunc.tdesc.vt);
@@ -3396,11 +3352,7 @@
ok(pfuncdesc->callconv == CC_STDCALL, "got 0x%x\n",
pfuncdesc->callconv);
ok(pfuncdesc->cParams == 1, "got %d\n", pfuncdesc->cParams);
ok(pfuncdesc->cParamsOpt == 0, "got %d\n", pfuncdesc->cParamsOpt);
-#ifdef _WIN64
- if(sys == SYS_WIN32)
- todo_wine ok(pfuncdesc->oVft == 14 * sizeof(void*), "got %d\n",
pfuncdesc->oVft);
- else
-#endif
+ todo_wine_if(is_win64 && sys == SYS_WIN32)
ok(pfuncdesc->oVft == 14 * sizeof(void*), "got %d\n",
pfuncdesc->oVft);
ok(pfuncdesc->cScodes == 0, "got %d\n", pfuncdesc->cScodes);
ok(pfuncdesc->elemdescFunc.tdesc.vt == VT_VOID, "got %d\n",
pfuncdesc->elemdescFunc.tdesc.vt);
@@ -3432,11 +3384,7 @@
ok(pfuncdesc->callconv == CC_STDCALL, "got 0x%x\n",
pfuncdesc->callconv);
ok(pfuncdesc->cParams == 1, "got %d\n", pfuncdesc->cParams);
ok(pfuncdesc->cParamsOpt == 0, "got %d\n", pfuncdesc->cParamsOpt);
-#ifdef _WIN64
- if(sys == SYS_WIN32)
- todo_wine ok(pfuncdesc->oVft == 15 * sizeof(void*), "got %d\n",
pfuncdesc->oVft);
- else
-#endif
+ todo_wine_if(is_win64 && sys == SYS_WIN32)
ok(pfuncdesc->oVft == 15 * sizeof(void*), "got %d\n",
pfuncdesc->oVft);
ok(pfuncdesc->cScodes == 0, "got %d\n", pfuncdesc->cScodes);
ok(pfuncdesc->elemdescFunc.tdesc.vt == VT_VOID, "got %d\n",
pfuncdesc->elemdescFunc.tdesc.vt);
@@ -3664,11 +3612,7 @@
ok(bindptr.lpfuncdesc->callconv == CC_STDCALL, "got 0x%x\n",
bindptr.lpfuncdesc->callconv);
ok(bindptr.lpfuncdesc->cParams == 8, "got %d\n",
bindptr.lpfuncdesc->cParams);
ok(bindptr.lpfuncdesc->cParamsOpt == 0, "got %d\n",
bindptr.lpfuncdesc->cParamsOpt);
-#ifdef _WIN64
- if(sys == SYS_WIN32)
- todo_wine ok(bindptr.lpfuncdesc->oVft == 6 * sizeof(void*), "got
%x\n", bindptr.lpfuncdesc->oVft);
- else
-#endif
+ todo_wine_if(is_win64 && sys == SYS_WIN32)
ok(bindptr.lpfuncdesc->oVft == 6 * sizeof(void*), "got %x\n",
bindptr.lpfuncdesc->oVft);
ok(bindptr.lpfuncdesc->cScodes == 0, "got %d\n",
bindptr.lpfuncdesc->cScodes);
ok(bindptr.lpfuncdesc->elemdescFunc.tdesc.vt == VT_VOID, "got %d\n",
bindptr.lpfuncdesc->elemdescFunc.tdesc.vt);
@@ -3692,11 +3636,7 @@
ok(typeattr->cFuncs == 1, "cFuncs = %d\n", typeattr->cFuncs);
ok(typeattr->cVars == 0, "cVars = %d\n", typeattr->cVars);
ok(typeattr->cImplTypes == 1, "cImplTypes = %d\n",
typeattr->cImplTypes);
-#ifdef _WIN64
- if(sys == SYS_WIN32)
- todo_wine ok(typeattr->cbSizeVft == 8 * sizeof(void*), "cbSizeVft =
%d\n", typeattr->cbSizeVft);
- else
-#endif
+ todo_wine_if(is_win64 && sys == SYS_WIN32)
ok(typeattr->cbSizeVft == 8 * sizeof(void*), "cbSizeVft = %d\n",
typeattr->cbSizeVft);
ok(typeattr->cbAlignment == alignment, "cbAlignment = %d\n",
typeattr->cbAlignment);
ok(typeattr->wTypeFlags == (TYPEFLAG_FDISPATCHABLE | TYPEFLAG_FDUAL),
"wTypeFlags = 0x%x\n", typeattr->wTypeFlags);
Modified: trunk/rostests/winetests/oleaut32/vartype.c
URL:
http://svn.reactos.org/svn/reactos/trunk/rostests/winetests/oleaut32/vartyp…
==============================================================================
--- trunk/rostests/winetests/oleaut32/vartype.c [iso-8859-1] (original)
+++ trunk/rostests/winetests/oleaut32/vartype.c [iso-8859-1] Thu Aug 18 10:30:35 2016
@@ -5894,6 +5894,16 @@
lcid = MAKELCID(MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US), SORT_DEFAULT);
+ /* NULL IUnknown -> IDispatch */
+ V_VT(&vSrc) = VT_UNKNOWN;
+ V_UNKNOWN(&vSrc) = NULL;
+ VariantInit(&vDst);
+ V_DISPATCH(&vDst) = (void*)0xdeadbeef;
+ hres = VariantChangeTypeEx(&vDst, &vSrc, lcid, 0, VT_DISPATCH);
+ ok(hres == S_OK && V_VT(&vDst) == VT_DISPATCH &&
V_DISPATCH(&vDst) == NULL,
+ "change unk(src,dst): expected 0x%08x,%d,%p, got 0x%08x,%d,%p\n",
+ S_OK, VT_DISPATCH, NULL, hres, V_VT(&vDst), V_DISPATCH(&vDst));
+
V_VT(&vSrc) = VT_UNKNOWN;
V_UNKNOWN(&vSrc) = pu;
@@ -6037,6 +6047,16 @@
pd = &d.IDispatch_iface;
lcid = MAKELCID(MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US), SORT_DEFAULT);
+
+ /* NULL IDispatch -> IUnknown */
+ V_VT(&vSrc) = VT_DISPATCH;
+ V_DISPATCH(&vSrc) = NULL;
+ VariantInit(&vDst);
+ V_UNKNOWN(&vDst) = (void*)0xdeadbeef;
+ hres = VariantChangeTypeEx(&vDst, &vSrc, lcid, 0, VT_UNKNOWN);
+ ok(hres == S_OK && V_VT(&vDst) == VT_UNKNOWN &&
V_UNKNOWN(&vDst) == NULL,
+ "change unk(src,dst): expected 0x%08x,%d,%p, got 0x%08x,%d,%p\n",
+ S_OK, VT_UNKNOWN, NULL, hres, V_VT(&vDst), V_UNKNOWN(&vDst));
V_VT(&vSrc) = VT_DISPATCH;
V_DISPATCH(&vSrc) = pd;