Signed-off-by: Nikolay Sivov nsivov@codeweavers.com --- dlls/ole32/tests/Makefile.in | 2 + dlls/ole32/tests/compobj.c | 81 ++++++++++++++++++++++++++--------- dlls/ole32/tests/testlib.c | 17 ++++++++ dlls/ole32/tests/testlib.spec | 1 + 4 files changed, 80 insertions(+), 21 deletions(-) create mode 100644 dlls/ole32/tests/testlib.c create mode 100644 dlls/ole32/tests/testlib.spec
diff --git a/dlls/ole32/tests/Makefile.in b/dlls/ole32/tests/Makefile.in index 6bf57e3e41..8f116147a1 100644 --- a/dlls/ole32/tests/Makefile.in +++ b/dlls/ole32/tests/Makefile.in @@ -15,4 +15,6 @@ C_SRCS = \ propvariant.c \ stg_prop.c \ storage32.c \ + testlib.c \ + testlib.spec \ usrmarshal.c diff --git a/dlls/ole32/tests/compobj.c b/dlls/ole32/tests/compobj.c index ea5ea35a11..5e72eb650e 100644 --- a/dlls/ole32/tests/compobj.c +++ b/dlls/ole32/tests/compobj.c @@ -82,9 +82,7 @@ static LONG (WINAPI * pRegOverridePredefKey)(HKEY key, HKEY override);
static BOOL (WINAPI *pActivateActCtx)(HANDLE,ULONG_PTR*); static HANDLE (WINAPI *pCreateActCtxW)(PCACTCTXW); -static BOOL (WINAPI *pDeactivateActCtx)(DWORD,ULONG_PTR); static BOOL (WINAPI *pIsWow64Process)(HANDLE, LPBOOL); -static void (WINAPI *pReleaseActCtx)(HANDLE);
#define ok_ole_success(hr, func) ok(hr == S_OK, func " failed with error 0x%08x\n", hr) #define ok_more_than_one_lock() ok(cLocks > 0, "Number of locks should be > 0, but actually is %d\n", cLocks) @@ -98,6 +96,8 @@ static const GUID IID_Testiface3 = { 0x42222222, 0x1234, 0x1234, { 0x12, 0x34, 0 static const GUID IID_Testiface4 = { 0x52222222, 0x1234, 0x1234, { 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0 } }; static const GUID IID_Testiface5 = { 0x62222222, 0x1234, 0x1234, { 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0 } }; static const GUID IID_Testiface6 = { 0x72222222, 0x1234, 0x1234, { 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0 } }; +static const GUID IID_Testiface7 = { 0x82222222, 0x1234, 0x1234, { 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0 } }; +static const GUID IID_Testiface8 = { 0x92222222, 0x1234, 0x1234, { 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0 } }; static const GUID IID_TestPS = { 0x66666666, 0x8888, 0x7777, { 0x66, 0x66, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55 } };
DEFINE_GUID(CLSID_testclsid, 0xacd014c7,0x9535,0x4fac,0x8b,0x53,0xa4,0x8c,0xa7,0xf4,0xd7,0x26); @@ -214,6 +214,26 @@ static BOOL create_manifest_file(const char *filename, const char *manifest) return TRUE; }
+static void extract_resource(const char *name, const char *type, const char *path) +{ + DWORD written; + HANDLE file; + HRSRC res; + void *ptr; + + file = CreateFileA(path, GENERIC_READ|GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, 0, 0); + ok(file != INVALID_HANDLE_VALUE, "Failed to create a file at %s, error %d.\n", path, GetLastError()); + + res = FindResourceA(NULL, name, type); + ok(res != 0, "Failed to find resource.\n"); + ptr = LockResource(LoadResource(GetModuleHandleA(NULL), res)); + WriteFile(file, ptr, SizeofResource(GetModuleHandleA(NULL), res), &written, NULL); + ok(written == SizeofResource(GetModuleHandleA(NULL), res), "Failed to write file.\n" ); + CloseHandle(file); +} + +static char testlib[MAX_PATH]; + static HANDLE activate_context(const char *manifest, ULONG_PTR *cookie) { WCHAR path[MAX_PATH]; @@ -235,7 +255,7 @@ static HANDLE activate_context(const char *manifest, ULONG_PTR *cookie) "handle == INVALID_HANDLE_VALUE, error %u\n", GetLastError()); if (handle == INVALID_HANDLE_VALUE) { - win_skip("activation context generation failed, some tests will be skipped\n"); + win_skip("activation context generation failed, some tests will be skipped. Error %d\n", GetLastError()); handle = NULL; }
@@ -260,6 +280,15 @@ static HANDLE activate_context(const char *manifest, ULONG_PTR *cookie) return handle; }
+static void deactivate_context(HANDLE handle, ULONG_PTR cookie) +{ + BOOL ret; + + ret = DeactivateActCtx(0, cookie); + ok(ret, "Failed to deactivate context, error %d.\n", GetLastError()); + ReleaseActCtx(handle); +} + static const char actctx_manifest[] = "<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">" "<assemblyIdentity version="1.2.3.4" name="Wine.Test" type="win32"" @@ -294,6 +323,10 @@ static const char actctx_manifest[] = " iid="{22222222-1234-1234-1234-56789abcdef0}"" " proxyStubClsid32="{66666666-8888-7777-6666-555555555555}"" " />" +" <comInterfaceProxyStub " +" name="Iifaceps5"" +" iid="{82222222-1234-1234-1234-56789abcdef0}"" +" />" "</file>" " <comInterfaceExternalProxyStub " " name="Iifaceps2"" @@ -367,8 +400,7 @@ static void test_ProgIDFromCLSID(void) hr = ProgIDFromCLSID(&IID_Testiface6, &progid); ok(hr == REGDB_E_CLASSNOTREG && progid == NULL, "got 0x%08x, progid %p\n", hr, progid);
- pDeactivateActCtx(0, cookie); - pReleaseActCtx(handle); + deactivate_context(handle, cookie); } }
@@ -434,8 +466,7 @@ static void test_CLSIDFromProgID(void) ok(!IsEqualCLSID(&clsid, &CLSID_StdFont) && !IsEqualCLSID(&clsid, &CLSID_NULL) && !IsEqualCLSID(&clsid, &clsid1), "got %s\n", wine_dbgstr_guid(&clsid));
- pDeactivateActCtx(0, cookie); - pReleaseActCtx(handle); + deactivate_context(handle, cookie); } }
@@ -725,8 +756,14 @@ static void test_CoGetClassObject(void) ok(hr == S_OK, "got 0x%08x\n", hr); IUnknown_Release(pUnk);
- pDeactivateActCtx(0, cookie); - pReleaseActCtx(handle); + hr = CoGetClassObject(&IID_Testiface7, CLSCTX_INPROC_SERVER, NULL, &IID_IUnknown, (void **)&pUnk); + todo_wine + ok(hr == 0x80001235, "Unexpected hr %#x.\n", hr); + + hr = CoGetClassObject(&IID_Testiface8, CLSCTX_INPROC_SERVER, NULL, &IID_IUnknown, (void **)&pUnk); + ok(hr == REGDB_E_CLASSNOTREG, "Unexpected hr %#x.\n", hr); + + deactivate_context(handle, cookie); }
CoUninitialize(); @@ -1267,6 +1304,11 @@ static void test_CoGetPSClsid(void) ok(hr == S_OK, "got 0x%08x\n", hr); ok(IsEqualGUID(&clsid, &GUID_NULL), "got clsid %s\n", wine_dbgstr_guid(&clsid));
+ memset(&clsid, 0xaa, sizeof(clsid)); + hr = CoGetPSClsid(&IID_Testiface7, &clsid); + ok(hr == S_OK, "Failed to get PS CLSID, hr %#x.\n", hr); + ok(IsEqualGUID(&clsid, &IID_Testiface7), "Unexpected CLSID %s.\n", wine_dbgstr_guid(&clsid)); + /* register same interface and try to get CLSID back */ hr = CoRegisterPSClsid(&IID_Testiface, &IID_Testiface4); ok(hr == S_OK, "got 0x%08x\n", hr); @@ -1275,8 +1317,7 @@ static void test_CoGetPSClsid(void) ok(hr == S_OK, "got 0x%08x\n", hr); ok(IsEqualGUID(&clsid, &IID_Testiface4), "got clsid %s\n", wine_dbgstr_guid(&clsid));
- pDeactivateActCtx(0, cookie); - pReleaseActCtx(handle); + deactivate_context(handle, cookie); }
if (pRegDeleteKeyExA && @@ -1533,11 +1574,9 @@ static void test_CoRegisterClassObject(void) if ((handle = activate_context(actctx_manifest, &ctxcookie))) { hr = CoGetClassObject(&CLSID_WineOOPTest, CLSCTX_INPROC_SERVER, NULL, &IID_IClassFactory, (void**)&pcf); -todo_wine - ok(hr == HRESULT_FROM_WIN32(ERROR_MOD_NOT_FOUND), "got 0x%08x\n", hr); + ok(hr == 0x80001234, "Unexpected hr %#x.\n", hr);
- pDeactivateActCtx(0, ctxcookie); - pReleaseActCtx(handle); + deactivate_context(handle, ctxcookie); }
hr = CoGetClassObject(&CLSID_WineOOPTest, CLSCTX_INPROC_SERVER, NULL, &IID_IClassFactory, (void**)&pcf); @@ -2264,8 +2303,7 @@ static void test_OleRegGetMiscStatus(void) ok(hr == S_OK, "got 0x%08x\n", hr); ok(status == 0, "got 0x%08x\n", status);
- pDeactivateActCtx(0, cookie); - pReleaseActCtx(handle); + deactivate_context(handle, cookie); } }
@@ -2332,8 +2370,7 @@ static void test_OleRegGetUserType(void) CoTaskMemFree(str); }
- pDeactivateActCtx(0, cookie); - pReleaseActCtx(handle); + deactivate_context(handle, cookie); }
/* test using registered CLSID */ @@ -3789,9 +3826,7 @@ static void init_funcs(void)
pActivateActCtx = (void*)GetProcAddress(hkernel32, "ActivateActCtx"); pCreateActCtxW = (void*)GetProcAddress(hkernel32, "CreateActCtxW"); - pDeactivateActCtx = (void*)GetProcAddress(hkernel32, "DeactivateActCtx"); pIsWow64Process = (void*)GetProcAddress(hkernel32, "IsWow64Process"); - pReleaseActCtx = (void*)GetProcAddress(hkernel32, "ReleaseActCtx"); }
static DWORD CALLBACK implicit_mta_proc(void *param) @@ -3869,6 +3904,10 @@ START_TEST(compobj) return; }
+ GetCurrentDirectoryA(ARRAY_SIZE(testlib), testlib); + lstrcatA(testlib, "\testlib.dll"); + extract_resource("testlib.dll", "TESTDLL", testlib); + if (!pCreateActCtxW) win_skip("Activation contexts are not supported, some tests will be skipped.\n");
diff --git a/dlls/ole32/tests/testlib.c b/dlls/ole32/tests/testlib.c new file mode 100644 index 0000000000..d28147b750 --- /dev/null +++ b/dlls/ole32/tests/testlib.c @@ -0,0 +1,17 @@ +#include <stdio.h> +#include <windows.h> +#include <initguid.h> + +DEFINE_GUID(CLSID_WineOOPTest, 0x5201163f, 0x8164, 0x4fd0, 0xa1, 0xa2, 0x5d, 0x5a, 0x36, 0x54, 0xd3, 0xbd); +DEFINE_GUID(IID_Testiface7, 0x82222222, 0x1234, 0x1234, 0x12, 0x34, 0x56, 0x78, 0x9a, 0xbc, 0xde, 0xf0); + +HRESULT WINAPI DllGetClassObject(REFCLSID clsid, REFIID riid, void **obj) +{ + if (IsEqualGUID(clsid, &CLSID_WineOOPTest)) + return 0x80001234; + + if (IsEqualGUID(clsid, &IID_Testiface7)) + return 0x80001235; + + return E_NOTIMPL; +} diff --git a/dlls/ole32/tests/testlib.spec b/dlls/ole32/tests/testlib.spec new file mode 100644 index 0000000000..8737274e9c --- /dev/null +++ b/dlls/ole32/tests/testlib.spec @@ -0,0 +1 @@ +@ stdcall DllGetClassObject(ptr ptr ptr)
Signed-off-by: Nikolay Sivov nsivov@codeweavers.com --- dlls/ole32/compobj.c | 36 ++++++++++++++++++++---------------- 1 file changed, 20 insertions(+), 16 deletions(-)
diff --git a/dlls/ole32/compobj.c b/dlls/ole32/compobj.c index c5a36059b9..4e48f6add6 100644 --- a/dlls/ole32/compobj.c +++ b/dlls/ole32/compobj.c @@ -145,19 +145,25 @@ struct progidredirect_data ULONG clsid_offset; };
+enum class_reg_data_origin +{ + CLASS_REG_ACTCTX, + CLASS_REG_REGISTRY, +}; + struct class_reg_data { + enum class_reg_data_origin origin; union { struct { - struct comclassredirect_data *data; - void *section; + const WCHAR *module_name; + DWORD threading_model; HANDLE hactctx; } actctx; HKEY hkey; } u; - BOOL hkey; };
struct registered_psclsid @@ -1408,7 +1414,7 @@ static BOOL get_object_dll_path(const struct class_reg_data *regdata, WCHAR *dst { DWORD ret;
- if (regdata->hkey) + if (regdata->origin == CLASS_REG_REGISTRY) { DWORD keytype; WCHAR src[MAX_PATH]; @@ -1437,12 +1443,10 @@ static BOOL get_object_dll_path(const struct class_reg_data *regdata, WCHAR *dst { static const WCHAR dllW[] = {'.','d','l','l',0}; ULONG_PTR cookie; - WCHAR *nameW;
*dst = 0; - nameW = (WCHAR*)((BYTE*)regdata->u.actctx.section + regdata->u.actctx.data->name_offset); ActivateActCtx(regdata->u.actctx.hactctx, &cookie); - ret = SearchPathW(NULL, nameW, dllW, dstlen, dst, NULL); + ret = SearchPathW(NULL, regdata->u.actctx.module_name, dllW, dstlen, dst, NULL); DeactivateActCtx(0, cookie); return *dst != 0; } @@ -2990,7 +2994,7 @@ HRESULT WINAPI CoRegisterClassObject(
static enum comclass_threadingmodel get_threading_model(const struct class_reg_data *data) { - if (data->hkey) + if (data->origin == CLASS_REG_REGISTRY) { static const WCHAR wszThreadingModel[] = {'T','h','r','e','a','d','i','n','g','M','o','d','e','l',0}; static const WCHAR wszApartment[] = {'A','p','a','r','t','m','e','n','t',0}; @@ -3014,7 +3018,7 @@ static enum comclass_threadingmodel get_threading_model(const struct class_reg_d return ThreadingModel_No; } else - return data->u.actctx.data->model; + return data->u.actctx.threading_model; }
static HRESULT get_inproc_class_object(APARTMENT *apt, const struct class_reg_data *regdata, @@ -3098,7 +3102,7 @@ HRESULT WINAPI DECLSPEC_HOTPATCH CoGetClassObject( REFCLSID rclsid, DWORD dwClsContext, COSERVERINFO *pServerInfo, REFIID iid, LPVOID *ppv) { - struct class_reg_data clsreg; + struct class_reg_data clsreg = { 0 }; IUnknown *regClassObject; HRESULT hres = E_UNEXPECTED; APARTMENT *apt; @@ -3144,10 +3148,10 @@ HRESULT WINAPI DECLSPEC_HOTPATCH CoGetClassObject( { struct comclassredirect_data *comclass = (struct comclassredirect_data*)data.lpData;
+ clsreg.u.actctx.module_name = (WCHAR *)((BYTE *)data.lpSectionBase + comclass->name_offset); clsreg.u.actctx.hactctx = data.hActCtx; - clsreg.u.actctx.data = data.lpData; - clsreg.u.actctx.section = data.lpSectionBase; - clsreg.hkey = FALSE; + clsreg.u.actctx.threading_model = comclass->model; + clsreg.origin = CLASS_REG_ACTCTX;
hres = get_inproc_class_object(apt, &clsreg, &comclass->clsid, iid, !(dwClsContext & WINE_CLSCTX_DONT_HOST), ppv); ReleaseActCtx(data.hActCtx); @@ -3197,7 +3201,7 @@ HRESULT WINAPI DECLSPEC_HOTPATCH CoGetClassObject( if (SUCCEEDED(hres)) { clsreg.u.hkey = hkey; - clsreg.hkey = TRUE; + clsreg.origin = CLASS_REG_REGISTRY;
hres = get_inproc_class_object(apt, &clsreg, rclsid, iid, !(dwClsContext & WINE_CLSCTX_DONT_HOST), ppv); RegCloseKey(hkey); @@ -3233,7 +3237,7 @@ HRESULT WINAPI DECLSPEC_HOTPATCH CoGetClassObject( if (SUCCEEDED(hres)) { clsreg.u.hkey = hkey; - clsreg.hkey = TRUE; + clsreg.origin = CLASS_REG_REGISTRY;
hres = get_inproc_class_object(apt, &clsreg, rclsid, iid, !(dwClsContext & WINE_CLSCTX_DONT_HOST), ppv); RegCloseKey(hkey); @@ -5171,7 +5175,7 @@ HRESULT Handler_DllGetClassObject(REFCLSID rclsid, REFIID riid, LPVOID *ppv) WCHAR dllpath[MAX_PATH+1];
regdata.u.hkey = hkey; - regdata.hkey = TRUE; + regdata.origin = CLASS_REG_REGISTRY;
if (get_object_dll_path(®data, dllpath, ARRAY_SIZE(dllpath))) {
Signed-off-by: Huw Davies huw@codeweavers.com
Signed-off-by: Nikolay Sivov nsivov@codeweavers.com --- dlls/ole32/compobj.c | 41 ++++++++++++++++++++++++++++++++++++-- dlls/ole32/tests/compobj.c | 1 - 2 files changed, 39 insertions(+), 3 deletions(-)
diff --git a/dlls/ole32/compobj.c b/dlls/ole32/compobj.c index 4e48f6add6..0dc0d39c22 100644 --- a/dlls/ole32/compobj.c +++ b/dlls/ole32/compobj.c @@ -3138,7 +3138,9 @@ HRESULT WINAPI DECLSPEC_HOTPATCH CoGetClassObject(
if (CLSCTX_INPROC & dwClsContext) { + ASSEMBLY_FILE_DETAILED_INFORMATION *file_info = NULL; ACTCTX_SECTION_KEYED_DATA data; + const CLSID *clsid = NULL;
data.cbSize = sizeof(data); /* search activation context first */ @@ -3151,11 +3153,46 @@ HRESULT WINAPI DECLSPEC_HOTPATCH CoGetClassObject( clsreg.u.actctx.module_name = (WCHAR *)((BYTE *)data.lpSectionBase + comclass->name_offset); clsreg.u.actctx.hactctx = data.hActCtx; clsreg.u.actctx.threading_model = comclass->model; + clsid = &comclass->clsid; + } + else if (FindActCtxSectionGuid(FIND_ACTCTX_SECTION_KEY_RETURN_HACTCTX, NULL, + ACTIVATION_CONTEXT_SECTION_COM_INTERFACE_REDIRECTION, rclsid, &data)) + { + ACTIVATION_CONTEXT_QUERY_INDEX query_index; + SIZE_T required_len = 0; + + query_index.ulAssemblyIndex = data.ulAssemblyRosterIndex - 1; + query_index.ulFileIndexInAssembly = 0; + + QueryActCtxW(0, data.hActCtx, &query_index, FileInformationInAssemblyOfAssemblyInActivationContext, + NULL, 0, &required_len); + if (required_len) + { + file_info = heap_alloc(required_len); + if (file_info) + { + if (QueryActCtxW(0, data.hActCtx, &query_index, FileInformationInAssemblyOfAssemblyInActivationContext, + file_info, required_len, &required_len)) + { + clsreg.u.actctx.module_name = file_info->lpFileName; + clsreg.u.actctx.hactctx = data.hActCtx; + clsreg.u.actctx.threading_model = ThreadingModel_Both; + clsid = rclsid; + } + else + heap_free(file_info); + } + } + } + + if (clsreg.u.actctx.hactctx) + { clsreg.origin = CLASS_REG_ACTCTX;
- hres = get_inproc_class_object(apt, &clsreg, &comclass->clsid, iid, !(dwClsContext & WINE_CLSCTX_DONT_HOST), ppv); - ReleaseActCtx(data.hActCtx); + hres = get_inproc_class_object(apt, &clsreg, clsid, iid, !(dwClsContext & WINE_CLSCTX_DONT_HOST), ppv); + ReleaseActCtx(clsreg.u.actctx.hactctx); apartment_release(apt); + heap_free(file_info); return hres; } } diff --git a/dlls/ole32/tests/compobj.c b/dlls/ole32/tests/compobj.c index 5e72eb650e..a6d26678f4 100644 --- a/dlls/ole32/tests/compobj.c +++ b/dlls/ole32/tests/compobj.c @@ -757,7 +757,6 @@ static void test_CoGetClassObject(void) IUnknown_Release(pUnk);
hr = CoGetClassObject(&IID_Testiface7, CLSCTX_INPROC_SERVER, NULL, &IID_IUnknown, (void **)&pUnk); - todo_wine ok(hr == 0x80001235, "Unexpected hr %#x.\n", hr);
hr = CoGetClassObject(&IID_Testiface8, CLSCTX_INPROC_SERVER, NULL, &IID_IUnknown, (void **)&pUnk);
Hi,
While running your changed tests, I think I found new failures. Being a bot and all I'm not very good at pattern recognition, so I might be wrong, but could you please double-check?
Full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=58639
Your paranoid android.
=== w8 (32 bit report) ===
ole32: compobj.c:2672: Test failed: WaitForSingleObject failed compobj.c:3035: Test failed: WaitForSingleObject failed
=== w1064v1809 (32 bit report) ===
ole32: compobj.c:2787: Test failed: WaitForSingleObject failed
Signed-off-by: Huw Davies huw@codeweavers.com
Hi,
While running your changed tests, I think I found new failures. Being a bot and all I'm not very good at pattern recognition, so I might be wrong, but could you please double-check?
Full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=58637
Your paranoid android.
=== w8 (32 bit report) ===
ole32: compobj.c:2929: Test failed: expected message 1024, received none compobj.c:2931: Test failed: PeekMessageA failed: 1400
=== wvistau64 (task log) ===
Task errors: TestBot process got stuck or died unexpectedly The previous 1 run(s) terminated abnormally
=== w1064v1809 (32 bit report) ===
ole32: marshal.c:4366: Test failed: server pid was 0x0 instead of 0x1a18 marshal.c:4368: Test failed: server tid was 0x430003 instead of 0x1538 marshal.c:4403: Test failed: server pid was 0x0 instead of 0x1a18 marshal.c:4405: Test failed: server tid was 0x430003 instead of 0x1538 marshal.c:4475: Test failed: server pid was 0x1538 instead of 0x1a18 marshal.c:4477: Test failed: server tid was 0x430003 instead of 0x1538 marshal.c:4509: Test failed: server pid was 0x1538 instead of 0x1a18 marshal.c:4511: Test failed: server tid was 0x430003 instead of 0x1538 marshal.c:4442: Test failed: server pid was 0x1538 instead of 0x1a18 marshal.c:4444: Test failed: server tid was 0x430003 instead of 0x1538 marshal.c:4366: Test failed: server pid was 0x0 instead of 0x1a18 marshal.c:4368: Test failed: server tid was 0x430005 instead of 0x1538 marshal.c:4403: Test failed: server pid was 0x0 instead of 0x1a18 marshal.c:4405: Test failed: server tid was 0x430005 instead of 0x1538 marshal.c:4475: Test failed: server pid was 0x1538 instead of 0x1a18 marshal.c:4477: Test failed: server tid was 0x430005 instead of 0x1538 marshal.c:4509: Test failed: server pid was 0x1538 instead of 0x1a18 marshal.c:4511: Test failed: server tid was 0x430005 instead of 0x1538 marshal.c:4442: Test failed: server pid was 0x1538 instead of 0x1a18 marshal.c:4444: Test failed: server tid was 0x430005 instead of 0x1538 marshal.c:4366: Test failed: server pid was 0x0 instead of 0x1a18 marshal.c:4368: Test failed: server tid was 0x430005 instead of 0x1538 marshal.c:4403: Test failed: server pid was 0x0 instead of 0x1a18 marshal.c:4405: Test failed: server tid was 0x430005 instead of 0x1538 marshal.c:4475: Test failed: server pid was 0x1538 instead of 0x1a18 marshal.c:4477: Test failed: server tid was 0x430005 instead of 0x1538 marshal.c:4509: Test failed: server pid was 0x1538 instead of 0x1a18 marshal.c:4511: Test failed: server tid was 0x430005 instead of 0x1538 marshal.c:4442: Test failed: server pid was 0x1538 instead of 0x1a18 marshal.c:4444: Test failed: server tid was 0x430005 instead of 0x1538
=== w1064v1809_2scr (32 bit report) ===
ole32: marshal.c:4366: Test failed: server pid was 0x0 instead of 0x1b30 marshal.c:4368: Test failed: server tid was 0x3 instead of 0x18b8 marshal.c:4403: Test failed: server pid was 0x0 instead of 0x1b30 marshal.c:4405: Test failed: server tid was 0x3 instead of 0x18b8 marshal.c:4475: Test failed: server pid was 0x18b8 instead of 0x1b30 marshal.c:4477: Test failed: server tid was 0x3 instead of 0x18b8 marshal.c:4509: Test failed: server pid was 0x18b8 instead of 0x1b30 marshal.c:4511: Test failed: server tid was 0x3 instead of 0x18b8 marshal.c:4442: Test failed: server pid was 0x18b8 instead of 0x1b30 marshal.c:4444: Test failed: server tid was 0x3 instead of 0x18b8 marshal.c:4366: Test failed: server pid was 0x0 instead of 0x1b30 marshal.c:4368: Test failed: server tid was 0x5 instead of 0x18b8 marshal.c:4403: Test failed: server pid was 0x0 instead of 0x1b30 marshal.c:4405: Test failed: server tid was 0x5 instead of 0x18b8 marshal.c:4475: Test failed: server pid was 0x18b8 instead of 0x1b30 marshal.c:4477: Test failed: server tid was 0x5 instead of 0x18b8 marshal.c:4509: Test failed: server pid was 0x18b8 instead of 0x1b30 marshal.c:4511: Test failed: server tid was 0x5 instead of 0x18b8 marshal.c:4442: Test failed: server pid was 0x18b8 instead of 0x1b30 marshal.c:4444: Test failed: server tid was 0x5 instead of 0x18b8 marshal.c:4366: Test failed: server pid was 0x0 instead of 0x1b30 marshal.c:4368: Test failed: server tid was 0x5 instead of 0x18b8 marshal.c:4403: Test failed: server pid was 0x0 instead of 0x1b30 marshal.c:4405: Test failed: server tid was 0x5 instead of 0x18b8 marshal.c:4475: Test failed: server pid was 0x18b8 instead of 0x1b30 marshal.c:4477: Test failed: server tid was 0x5 instead of 0x18b8 marshal.c:4509: Test failed: server pid was 0x18b8 instead of 0x1b30 marshal.c:4511: Test failed: server tid was 0x5 instead of 0x18b8 marshal.c:4442: Test failed: server pid was 0x18b8 instead of 0x1b30 marshal.c:4444: Test failed: server tid was 0x5 instead of 0x18b8
=== w1064v1809_ar (32 bit report) ===
ole32: marshal.c:4366: Test failed: server pid was 0x0 instead of 0x1820 marshal.c:4368: Test failed: server tid was 0x3 instead of 0x1a28 marshal.c:4403: Test failed: server pid was 0x0 instead of 0x1820 marshal.c:4405: Test failed: server tid was 0x3 instead of 0x1a28 marshal.c:4475: Test failed: server pid was 0x1a28 instead of 0x1820 marshal.c:4477: Test failed: server tid was 0x3 instead of 0x1a28 marshal.c:4509: Test failed: server pid was 0x1a28 instead of 0x1820 marshal.c:4511: Test failed: server tid was 0x3 instead of 0x1a28 marshal.c:4442: Test failed: server pid was 0x1a28 instead of 0x1820 marshal.c:4444: Test failed: server tid was 0x3 instead of 0x1a28 marshal.c:4366: Test failed: server pid was 0x0 instead of 0x1820 marshal.c:4368: Test failed: server tid was 0x5 instead of 0x1a28 marshal.c:4403: Test failed: server pid was 0x0 instead of 0x1820 marshal.c:4405: Test failed: server tid was 0x5 instead of 0x1a28 marshal.c:4475: Test failed: server pid was 0x1a28 instead of 0x1820 marshal.c:4477: Test failed: server tid was 0x5 instead of 0x1a28 marshal.c:4509: Test failed: server pid was 0x1a28 instead of 0x1820 marshal.c:4511: Test failed: server tid was 0x5 instead of 0x1a28 marshal.c:4442: Test failed: server pid was 0x1a28 instead of 0x1820 marshal.c:4444: Test failed: server tid was 0x5 instead of 0x1a28 marshal.c:4366: Test failed: server pid was 0x0 instead of 0x1820 marshal.c:4368: Test failed: server tid was 0x5 instead of 0x1a28 marshal.c:4403: Test failed: server pid was 0x0 instead of 0x1820 marshal.c:4405: Test failed: server tid was 0x5 instead of 0x1a28 marshal.c:4475: Test failed: server pid was 0x1a28 instead of 0x1820 marshal.c:4477: Test failed: server tid was 0x5 instead of 0x1a28 marshal.c:4509: Test failed: server pid was 0x1a28 instead of 0x1820 marshal.c:4511: Test failed: server tid was 0x5 instead of 0x1a28 marshal.c:4442: Test failed: server pid was 0x1a28 instead of 0x1820 marshal.c:4444: Test failed: server tid was 0x5 instead of 0x1a28
=== w1064v1809_he (32 bit report) ===
ole32: marshal.c:4366: Test failed: server pid was 0x0 instead of 0x19e4 marshal.c:4368: Test failed: server tid was 0x3 instead of 0x1b2c marshal.c:4403: Test failed: server pid was 0x0 instead of 0x19e4 marshal.c:4405: Test failed: server tid was 0x3 instead of 0x1b2c marshal.c:4475: Test failed: server pid was 0x1b2c instead of 0x19e4 marshal.c:4477: Test failed: server tid was 0x3 instead of 0x1b2c marshal.c:4509: Test failed: server pid was 0x1b2c instead of 0x19e4 marshal.c:4511: Test failed: server tid was 0x3 instead of 0x1b2c marshal.c:4442: Test failed: server pid was 0x1b2c instead of 0x19e4 marshal.c:4444: Test failed: server tid was 0x3 instead of 0x1b2c marshal.c:4366: Test failed: server pid was 0x0 instead of 0x19e4 marshal.c:4368: Test failed: server tid was 0x5 instead of 0x1b2c marshal.c:4403: Test failed: server pid was 0x0 instead of 0x19e4 marshal.c:4405: Test failed: server tid was 0x5 instead of 0x1b2c marshal.c:4475: Test failed: server pid was 0x1b2c instead of 0x19e4 marshal.c:4477: Test failed: server tid was 0x5 instead of 0x1b2c marshal.c:4509: Test failed: server pid was 0x1b2c instead of 0x19e4 marshal.c:4511: Test failed: server tid was 0x5 instead of 0x1b2c marshal.c:4442: Test failed: server pid was 0x1b2c instead of 0x19e4 marshal.c:4444: Test failed: server tid was 0x5 instead of 0x1b2c marshal.c:4366: Test failed: server pid was 0x0 instead of 0x19e4 marshal.c:4368: Test failed: server tid was 0x5 instead of 0x1b2c marshal.c:4403: Test failed: server pid was 0x0 instead of 0x19e4 marshal.c:4405: Test failed: server tid was 0x5 instead of 0x1b2c marshal.c:4475: Test failed: server pid was 0x1b2c instead of 0x19e4 marshal.c:4477: Test failed: server tid was 0x5 instead of 0x1b2c marshal.c:4509: Test failed: server pid was 0x1b2c instead of 0x19e4 marshal.c:4511: Test failed: server tid was 0x5 instead of 0x1b2c marshal.c:4442: Test failed: server pid was 0x1b2c instead of 0x19e4 marshal.c:4444: Test failed: server tid was 0x5 instead of 0x1b2c
=== w1064v1809_ja (32 bit report) ===
ole32: marshal.c:4366: Test failed: server pid was 0x0 instead of 0x194c marshal.c:4368: Test failed: server tid was 0x3 instead of 0x1bc4 marshal.c:4403: Test failed: server pid was 0x0 instead of 0x194c marshal.c:4405: Test failed: server tid was 0x3 instead of 0x1bc4 marshal.c:4475: Test failed: server pid was 0x1bc4 instead of 0x194c marshal.c:4477: Test failed: server tid was 0x3 instead of 0x1bc4 marshal.c:4509: Test failed: server pid was 0x1bc4 instead of 0x194c marshal.c:4511: Test failed: server tid was 0x3 instead of 0x1bc4 marshal.c:4442: Test failed: server pid was 0x1bc4 instead of 0x194c marshal.c:4444: Test failed: server tid was 0x3 instead of 0x1bc4 marshal.c:4366: Test failed: server pid was 0x0 instead of 0x194c marshal.c:4368: Test failed: server tid was 0x5 instead of 0x1bc4 marshal.c:4403: Test failed: server pid was 0x0 instead of 0x194c marshal.c:4405: Test failed: server tid was 0x5 instead of 0x1bc4 marshal.c:4475: Test failed: server pid was 0x1bc4 instead of 0x194c marshal.c:4477: Test failed: server tid was 0x5 instead of 0x1bc4 marshal.c:4509: Test failed: server pid was 0x1bc4 instead of 0x194c marshal.c:4511: Test failed: server tid was 0x5 instead of 0x1bc4 marshal.c:4442: Test failed: server pid was 0x1bc4 instead of 0x194c marshal.c:4444: Test failed: server tid was 0x5 instead of 0x1bc4 marshal.c:4366: Test failed: server pid was 0x0 instead of 0x194c marshal.c:4368: Test failed: server tid was 0x5 instead of 0x1bc4 marshal.c:4403: Test failed: server pid was 0x0 instead of 0x194c marshal.c:4405: Test failed: server tid was 0x5 instead of 0x1bc4 marshal.c:4475: Test failed: server pid was 0x1bc4 instead of 0x194c marshal.c:4477: Test failed: server tid was 0x5 instead of 0x1bc4 marshal.c:4509: Test failed: server pid was 0x1bc4 instead of 0x194c marshal.c:4511: Test failed: server tid was 0x5 instead of 0x1bc4 marshal.c:4442: Test failed: server pid was 0x1bc4 instead of 0x194c marshal.c:4444: Test failed: server tid was 0x5 instead of 0x1bc4
=== w1064v1809_zh_CN (32 bit report) ===
ole32: marshal.c:4366: Test failed: server pid was 0x0 instead of 0x1908 marshal.c:4368: Test failed: server tid was 0x3 instead of 0x1afc marshal.c:4403: Test failed: server pid was 0x0 instead of 0x1908 marshal.c:4405: Test failed: server tid was 0x3 instead of 0x1afc marshal.c:4475: Test failed: server pid was 0x1afc instead of 0x1908 marshal.c:4477: Test failed: server tid was 0x3 instead of 0x1afc marshal.c:4509: Test failed: server pid was 0x1afc instead of 0x1908 marshal.c:4511: Test failed: server tid was 0x3 instead of 0x1afc marshal.c:4442: Test failed: server pid was 0x1afc instead of 0x1908 marshal.c:4444: Test failed: server tid was 0x3 instead of 0x1afc marshal.c:4366: Test failed: server pid was 0x0 instead of 0x1908 marshal.c:4368: Test failed: server tid was 0x5 instead of 0x1afc marshal.c:4403: Test failed: server pid was 0x0 instead of 0x1908 marshal.c:4405: Test failed: server tid was 0x5 instead of 0x1afc marshal.c:4475: Test failed: server pid was 0x1afc instead of 0x1908 marshal.c:4477: Test failed: server tid was 0x5 instead of 0x1afc marshal.c:4509: Test failed: server pid was 0x1afc instead of 0x1908 marshal.c:4511: Test failed: server tid was 0x5 instead of 0x1afc marshal.c:4442: Test failed: server pid was 0x1afc instead of 0x1908 marshal.c:4444: Test failed: server tid was 0x5 instead of 0x1afc marshal.c:4366: Test failed: server pid was 0x0 instead of 0x1908 marshal.c:4368: Test failed: server tid was 0x5 instead of 0x1afc marshal.c:4403: Test failed: server pid was 0x0 instead of 0x1908 marshal.c:4405: Test failed: server tid was 0x5 instead of 0x1afc marshal.c:4475: Test failed: server pid was 0x1afc instead of 0x1908 marshal.c:4477: Test failed: server tid was 0x5 instead of 0x1afc marshal.c:4509: Test failed: server pid was 0x1afc instead of 0x1908 marshal.c:4511: Test failed: server tid was 0x5 instead of 0x1afc marshal.c:4442: Test failed: server pid was 0x1afc instead of 0x1908 marshal.c:4444: Test failed: server tid was 0x5 instead of 0x1afc
=== w1064v1809 (64 bit report) ===
ole32: marshal.c:4366: Test failed: server pid was 0x0 instead of 0x1a18 marshal.c:4368: Test failed: server tid was 0x3 instead of 0x159c marshal.c:4403: Test failed: server pid was 0x0 instead of 0x1a18 marshal.c:4405: Test failed: server tid was 0x3 instead of 0x159c marshal.c:4475: Test failed: server pid was 0x159c instead of 0x1a18 marshal.c:4477: Test failed: server tid was 0x3 instead of 0x159c marshal.c:4509: Test failed: server pid was 0x159c instead of 0x1a18 marshal.c:4511: Test failed: server tid was 0x3 instead of 0x159c marshal.c:4442: Test failed: server pid was 0x159c instead of 0x1a18 marshal.c:4444: Test failed: server tid was 0x3 instead of 0x159c marshal.c:4366: Test failed: server pid was 0x0 instead of 0x1a18 marshal.c:4368: Test failed: server tid was 0x5 instead of 0x159c marshal.c:4403: Test failed: server pid was 0x0 instead of 0x1a18 marshal.c:4405: Test failed: server tid was 0x5 instead of 0x159c marshal.c:4475: Test failed: server pid was 0x159c instead of 0x1a18 marshal.c:4477: Test failed: server tid was 0x5 instead of 0x159c marshal.c:4509: Test failed: server pid was 0x159c instead of 0x1a18 marshal.c:4511: Test failed: server tid was 0x5 instead of 0x159c marshal.c:4442: Test failed: server pid was 0x159c instead of 0x1a18 marshal.c:4444: Test failed: server tid was 0x5 instead of 0x159c marshal.c:4366: Test failed: server pid was 0x0 instead of 0x1a18 marshal.c:4368: Test failed: server tid was 0x5 instead of 0x159c marshal.c:4403: Test failed: server pid was 0x0 instead of 0x1a18 marshal.c:4405: Test failed: server tid was 0x5 instead of 0x159c marshal.c:4475: Test failed: server pid was 0x159c instead of 0x1a18 marshal.c:4477: Test failed: server tid was 0x5 instead of 0x159c marshal.c:4509: Test failed: server pid was 0x159c instead of 0x1a18 marshal.c:4511: Test failed: server tid was 0x5 instead of 0x159c marshal.c:4442: Test failed: server pid was 0x159c instead of 0x1a18 marshal.c:4444: Test failed: server tid was 0x5 instead of 0x159c
=== wvistau64_fr (task log) ===
Task errors: The previous 1 run(s) terminated abnormally
=== w1064v1809 (32 bit report) ===
ole32: 1a0c:ole2: unhandled exception c0000005 at 004413F2
=== w1064v1809_2scr (32 bit report) ===
ole32: 1a7c:ole2: unhandled exception c0000005 at 004413F2
=== w1064v1809_ar (32 bit report) ===
ole32: 18e0:ole2: unhandled exception c0000005 at 004413F2
=== w1064v1809_he (32 bit report) ===
ole32: 1a3c:ole2: unhandled exception c0000005 at 004413F2
=== w1064v1809_ja (32 bit report) ===
ole32: 18b8:ole2: unhandled exception c0000005 at 004413F2
=== w1064v1809_zh_CN (32 bit report) ===
ole32: 181c:ole2: unhandled exception c0000005 at 004413F2
=== w1064v1809 (64 bit report) ===
ole32: 1a64:ole2: unhandled exception c0000005 at 0000000000436F0B
=== wvistau64_fr (task log) ===
Task errors: The previous 1 run(s) terminated abnormally