[PATCH] sapi/tests: Update SpResourceManager test expectations for newer Windows.

Gijs Vermeulen gijsvrm at gmail.com
Mon Mar 22 11:47:44 CDT 2021


Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=50841
Signed-off-by: Gijs Vermeulen <gijsvrm at gmail.com>
---
 dlls/sapi/tests/resource.c | 21 +++++++++++----------
 1 file changed, 11 insertions(+), 10 deletions(-)

diff --git a/dlls/sapi/tests/resource.c b/dlls/sapi/tests/resource.c
index cbddaf6323a..e7776c9124a 100644
--- a/dlls/sapi/tests/resource.c
+++ b/dlls/sapi/tests/resource.c
@@ -25,13 +25,14 @@
 
 #include "wine/test.h"
 
-#define EXPECT_REF(obj,ref) _expect_ref((IUnknown*)obj, ref, __LINE__)
-static void _expect_ref(IUnknown *obj, ULONG ref, int line)
+#define EXPECT_REF_BROKEN(obj,ref,brokenref) _expect_ref_broken((IUnknown*)obj, ref, brokenref, __LINE__)
+static void _expect_ref_broken(IUnknown *obj, ULONG ref, ULONG brokenref, int line)
 {
     ULONG rc;
     IUnknown_AddRef(obj);
     rc = IUnknown_Release(obj);
-    ok_(__FILE__,line)(rc == ref, "Unexpected refcount %d, expected %d.\n", rc, ref);
+    ok_(__FILE__,line)(rc == ref || broken(rc == brokenref) /* <Win7 */,
+            "Unexpected refcount %d, expected %d.\n", rc, ref);
 }
 
 static void test_interfaces(void)
@@ -44,25 +45,25 @@ static void test_interfaces(void)
     hr = CoCreateInstance(&CLSID_SpResourceManager, NULL, CLSCTX_INPROC_SERVER,
                           &IID_ISpResourceManager, (void **)&resource_manager);
     ok(hr == S_OK, "Failed to create ISpeechVoice interface: %#x.\n", hr);
-    EXPECT_REF(resource_manager, 1);
+    todo_wine EXPECT_REF_BROKEN(resource_manager, 2, 1);
 
     hr = CoCreateInstance(&CLSID_SpResourceManager, NULL, CLSCTX_INPROC_SERVER,
                           &IID_ISpResourceManager, (void **)&resource_manager2);
     ok(hr == S_OK, "Failed to create ISpeechVoice interface: %#x.\n", hr);
     todo_wine ok(resource_manager2 == resource_manager, "Expected managers to match.\n");
-    todo_wine EXPECT_REF(resource_manager2, 2);
-    todo_wine EXPECT_REF(resource_manager, 2);
+    todo_wine EXPECT_REF_BROKEN(resource_manager2, 3, 2);
+    todo_wine EXPECT_REF_BROKEN(resource_manager, 3, 2);
     if (resource_manager2 == resource_manager) ISpResourceManager_Release(resource_manager2);
-    EXPECT_REF(resource_manager, 1);
+    todo_wine EXPECT_REF_BROKEN(resource_manager, 2, 1);
 
     hr = CoCreateInstance(&CLSID_SpResourceManager, NULL, CLSCTX_INPROC_SERVER,
                           &IID_IUnknown, (void **)&unk);
     ok(hr == S_OK, "Failed to create IUnknown interface: %#x.\n", hr);
     todo_wine ok(unk == (IUnknown *)resource_manager, "Expected unk to match existing manager.\n");
-    todo_wine EXPECT_REF(unk, 2);
-    todo_wine EXPECT_REF(resource_manager, 2);
+    todo_wine EXPECT_REF_BROKEN(unk, 3, 2);
+    todo_wine EXPECT_REF_BROKEN(resource_manager, 3, 2);
     if (unk == (IUnknown *)resource_manager) IUnknown_Release(unk);
-    EXPECT_REF(resource_manager, 1);
+    todo_wine EXPECT_REF_BROKEN(resource_manager, 2, 1);
 
     hr = CoCreateInstance(&CLSID_SpResourceManager, NULL, CLSCTX_INPROC_SERVER,
                           &IID_IDispatch, (void **)&dispatch);
-- 
2.31.0




More information about the wine-devel mailing list