From: Bernhard Übelacker bernhardu@mailbox.org
--- dlls/propsys/tests/propsys.c | 34 ++++++++++++++++++---------------- 1 file changed, 18 insertions(+), 16 deletions(-)
diff --git a/dlls/propsys/tests/propsys.c b/dlls/propsys/tests/propsys.c index 76d6c866546..d5387210658 100644 --- a/dlls/propsys/tests/propsys.c +++ b/dlls/propsys/tests/propsys.c @@ -1728,7 +1728,7 @@ static void test_PropVariantToString(void) memset(bufferW, 0, sizeof(bufferW)); }
-#define check_PropVariantToBSTR(type, member, value, expect_str) \ +#define check_PropVariantToBSTR(type, member, value, expect_str, broken_str) \ do \ { \ PROPVARIANT check_propvar_ = {.vt = (type), .member = (value)}; \ @@ -1741,7 +1741,9 @@ do \ \ if (check_hr_ == S_OK) \ { \ - ok_(__FILE__, __LINE__)(!wcscmp(check_bstr_, (expect_str)), \ + ok_(__FILE__, __LINE__)( \ + !wcscmp(check_bstr_, (expect_str)) || \ + (broken_str && broken(!wcscmp(check_bstr_, (broken_str)))), \ "Unexpected bstr %s.\n", debugstr_w(check_bstr_)); \ SysFreeString(check_bstr_); \ } \ @@ -1764,21 +1766,21 @@ static void test_PropVariantToBSTR(void)
todo_wine { - check_PropVariantToBSTR(VT_BOOL, boolVal, TRUE, L"1"); - check_PropVariantToBSTR(VT_R4, fltVal, 0.125f, L"0.125"); - check_PropVariantToBSTR(VT_R8, dblVal, 0.456, L"0.456"); + check_PropVariantToBSTR(VT_BOOL, boolVal, TRUE, L"1", NULL); + check_PropVariantToBSTR(VT_R4, fltVal, 0.125f, L"0.125", L"5.13920855624402E-315" /* Win 7 */ ); + check_PropVariantToBSTR(VT_R8, dblVal, 0.456, L"0.456", NULL); } - check_PropVariantToBSTR(VT_I1, cVal, -123, L"-123"); - check_PropVariantToBSTR(VT_I2, iVal, -456, L"-456"); - check_PropVariantToBSTR(VT_I4, lVal, -789, L"-789"); - check_PropVariantToBSTR(VT_I8, hVal.QuadPart, -101112, L"-101112"); - check_PropVariantToBSTR(VT_UI1, bVal, 205, L"205"); - check_PropVariantToBSTR(VT_UI2, uiVal, 57005, L"57005"); - check_PropVariantToBSTR(VT_UI4, ulVal, 0xdeadbeef, L"3735928559"); - check_PropVariantToBSTR(VT_UI8, uhVal.QuadPart, 0xdeadbeefdeadbeef, L"16045690984833335023"); - check_PropVariantToBSTR(VT_CLSID, puuid, (CLSID *)&dummy_guid, dummy_guid_str); - check_PropVariantToBSTR(VT_LPSTR, pszVal, (char *)topic, topicW); - check_PropVariantToBSTR(VT_LPWSTR, pwszVal, (WCHAR *)topicW, topicW); + check_PropVariantToBSTR(VT_I1, cVal, -123, L"-123", NULL); + check_PropVariantToBSTR(VT_I2, iVal, -456, L"-456", NULL); + check_PropVariantToBSTR(VT_I4, lVal, -789, L"-789", NULL); + check_PropVariantToBSTR(VT_I8, hVal.QuadPart, -101112, L"-101112", NULL); + check_PropVariantToBSTR(VT_UI1, bVal, 205, L"205", NULL); + check_PropVariantToBSTR(VT_UI2, uiVal, 57005, L"57005", NULL); + check_PropVariantToBSTR(VT_UI4, ulVal, 0xdeadbeef, L"3735928559", NULL); + check_PropVariantToBSTR(VT_UI8, uhVal.QuadPart, 0xdeadbeefdeadbeef, L"16045690984833335023", NULL); + check_PropVariantToBSTR(VT_CLSID, puuid, (CLSID *)&dummy_guid, dummy_guid_str, NULL); + check_PropVariantToBSTR(VT_LPSTR, pszVal, (char *)topic, topicW, NULL); + check_PropVariantToBSTR(VT_LPWSTR, pwszVal, (WCHAR *)topicW, topicW, NULL);
PropVariantInit(&propvar); propvar.vt = VT_FILETIME;