From 1ba24fbfc484e1432e1bf8b5004d78d064793d32 Mon Sep 17 00:00:00 2001 From: Amine Khaldi Date: Sun, 19 Jul 2015 13:17:08 +0000 Subject: [PATCH 1/1] [FUSION_WINETEST] Sync with Wine Staging 1.7.47. CORE-9924 svn path=/trunk/; revision=68430 --- rostests/winetests/fusion/asmname.c | 52 ++++++++++++++++++++++++++--- 1 file changed, 48 insertions(+), 4 deletions(-) diff --git a/rostests/winetests/fusion/asmname.c b/rostests/winetests/fusion/asmname.c index 8dd782d8c9c..673400b03f8 100644 --- a/rostests/winetests/fusion/asmname.c +++ b/rostests/winetests/fusion/asmname.c @@ -430,12 +430,12 @@ static void test_CreateAssemblyNameObject(void) broken(hr == E_INVALIDARG), /* .NET 1.x */ "Expected FUSION_E_INVALID_NAME, got %08x\n", hr); + str[0] = 'a'; size = MAX_PATH; - str[0] = '\0'; hr = IAssemblyName_GetName(name, &size, str); - ok(hr == S_OK, "Expected S_OK, got %08x\n", hr); - ok(!str[0], "Expected empty name\n"); - ok(size == 0, "Expected 0, got %d\n", size); + ok(hr == S_OK, "got %08x\n", hr); + ok(str[0] == 'a', "got %c\n", str[0]); + ok(!size, "got %u\n", size); hi = 0xbeefcace; lo = 0xcafebabe; @@ -466,6 +466,26 @@ static void test_CreateAssemblyNameObject(void) broken(hr == S_OK), /* .NET 1.x */ "Expected FUSION_E_INVALID_NAME, got %08x\n", hr); + size = 0; + hr = IAssemblyName_GetName(name, &size, NULL); + ok(hr == E_NOT_SUFFICIENT_BUFFER, "got %08x\n", hr); + ok(size == 1, "got %u\n", size); + + if (0) /* crash */ + { + str[0] = '\0'; + hr = IAssemblyName_GetName(name, NULL, str); + ok(hr == E_NOT_SUFFICIENT_BUFFER, "got %08x\n", hr); + ok(!str[0], "got %c\n", str[0]); + } + + size = 0; + str[0] = '\0'; + hr = IAssemblyName_GetName(name, &size, str); + ok(hr == E_NOT_SUFFICIENT_BUFFER, "got %08x\n", hr); + ok(!str[0], "got %c\n", str[0]); + ok(size == 1, "got %u\n", size); + size = MAX_PATH; str[0] = '\0'; hr = IAssemblyName_GetName(name, &size, str); @@ -497,12 +517,36 @@ static void test_CreateAssemblyNameObject(void) ok(hr == S_OK, "Expected S_OK, got %08x\n", hr); ok(name != NULL, "Expected non-NULL name\n"); + size = 0; + hr = IAssemblyName_GetDisplayName(name, NULL, &size, 0); + ok(hr == E_NOT_SUFFICIENT_BUFFER, "got %08x\n", hr); + ok(size == 5, "got %u\n", size); + + size = 3; + hr = IAssemblyName_GetDisplayName(name, NULL, &size, 0); + ok(hr == E_NOT_SUFFICIENT_BUFFER || broken(hr == E_INVALIDARG), "got %08x\n", hr); + ok(size == 5 || broken(size == 3), "got %u\n", size); + + size = 3; + str[0] = 'a'; + hr = IAssemblyName_GetDisplayName(name, str, &size, 0); + ok(hr == E_NOT_SUFFICIENT_BUFFER, "got %08x\n", hr); + ok(str[0] == 'a', "got %c\n", str[0]); + ok(size == 5, "got %u\n", size); + size = MAX_PATH; hr = IAssemblyName_GetDisplayName(name, str, &size, ASM_DISPLAYF_FULL); ok(hr == S_OK, "Expected S_OK, got %08x\n", hr); ok_aw("wine", str); ok(size == 5, "Expected 5, got %d\n", size); + size = 0; + str[0] = 0; + hr = IAssemblyName_GetName(name, &size, str); + ok(hr == E_NOT_SUFFICIENT_BUFFER, "got %08x\n", hr); + ok(!str[0], "got %c\n", str[0]); + ok(size == 5, "got %u\n", size); + size = MAX_PATH; str[0] = '\0'; hr = IAssemblyName_GetName(name, &size, str); -- 2.17.1