Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=50841 Signed-off-by: Gijs Vermeulen gijsvrm@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);
Gijs Vermeulen gijsvrm@gmail.com writes:
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=50841 Signed-off-by: Gijs Vermeulen gijsvrm@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)
In general refcount tests are not very interesting, particularly if they differ between Windows versions. I'd suggest to simply remove them.